Evolution Software は、ML.NET を使用してヘーゼルナッツの品質を向上させます
顧客
Evolution Software Design, Inc.
製品とサービス
ML.NET
Azure
.NET Core
ASP.NET Core
Entity Framework Core
SignalR
SQL Server
Xamarin
業界
コンサルタント
組織の規模
Small (1-100 の社員)
国/地域
アメリカ合衆国
Evolution Software Design, Inc. は、戦略的テクノロジー ソリューションを通じて、ヘルスケア、e コマース、農業、エンタープライズ アプリケーションを開発することにより、他の組織がテクノロジーをより効果的に適用できるよう支援するコンサルティング会社です。 同社の最近のベンチャーの 1 つはヘーゼルナッツ業界であり、さまざまなヘーゼルナッツ加工会社と提携して、機械学習と ML.NET を使用して農場から消費者までヘーゼルナッツの品質を向上させています。
ML.NET により、既存の .NET と C# のスキルとソフトウェア資産を活用して、アプリケーションに機械学習機能を簡単に追加できるようになりました。アプリケーションの他の部分は Microsoft の技術スタックを使用して開発され、Azure に展開されているため、機械学習モデルの統合は簡単でわかりやすかったです。"
ビジネスの問題
ヘーゼルナッツを人が食べるのに適するようにするには、一定の要件を満たす必要があります。それらの要件の 1 つが、ヘーゼルナッツは "よく乾燥" させ、8.5% から 11.5% の一定のレベルの水分を含むことです。ナッツが販売者に受け入れられるようにするには、正しい水分含有量であることが重要です。水分が少なすぎると、ナッツは収縮しすぎてしまい、多すぎるとカビや腐敗の原因となるからです。
ヘーゼルナッツがこの水分レベルに達するようにするには、収集後にファームから受信ステーションに持ち込まれ、商業用乾燥器に配置します。この乾燥庫最大 50,000 のヘーゼルナッツを保管することができます。
ヘーゼルナッツが目標水分に到達するために乾燥機で費やす必要のある時間を決定することは、エラーが発生しやすい技術である可能性があり、ヘーゼルナッツの種類、バッチの重量、使用されている乾燥機、場所、天気などの複数の変数の影響を受けます。 水分含有量を決定する標準的な方法は、非常に手動のプロセスです。誰かが定期的に乾燥機に送られ、ナッツのバケツをすくい取り、穀粒の重さを量り、乾燥させてから、重量の違いを調べます。 このプロセスは、乾燥プロセス中に数回繰り返されます。乾燥機の状態は、華氏 120 度の空気が時速 100 マイルで吹くと理想的とは言えません。
しばらくこのプロセスを行ってきたユーザーは、サンプリング プロセスを実行せずにヘーゼルナッツの準備ができたことを知っていると思うことがよくあります。これは、不正確な水分レベルと乾燥機間の不整合につながる可能性があり、その結果、受け取りステーションとヘーゼルナッツ加工業者の収益が失われます。
さらに、毎年秋には比較的短い期間に大量のヘーゼルナッツが収穫されて加工されるため (2018 年、参加しているヘーゼルナッツ加工会社は、受入れステーションから 6,800 万ポンドの乾燥ナッツを受け取りました)、24 時間体制で稼働する乾燥機の使用を最適化することには高いビジネス価値があります。
これらのビジネス上の問題に対処するために、ヘーゼルナッツ モニター アプリケーションは ML.NET を使用して、乾燥バッチ内のナッツの水分含有量を予測し、目標レベルに達したときにオペレーターに警告します。
アプリの目標は、乾燥機を操作している人が、ナッツの水分が最適な水分範囲に近づいたことを簡単に把握できるようになり、サンプリングの必要性を減らせるようにすることです。最終的には、ナッツのサンプリングを頻繁に行わなくてもよい状態にしたいと考えています。"
ML.NET を選ぶ理由
機械学習はビジネス上の問題に対処するための興味深い戦略のように見えましたが、これがアプリケーション内でどれほど簡単に実装されるかは不明でした。 ただし、ML.NET のリリースにより実装が劇的に加速し、わずか 4 週間半の開発で、Evolution Software は、35 台の市販の乾燥機でヘーゼルナッツの水分レベルの予測を 2.5 ~ 3% 以内に改善するための最初の機械学習モデルを備えていました。
ML.NET の影響
温度、湿度、気圧などの測定値に加えて、乾燥機を操作するプロセッサーは、モバイルフレンドリーな Web クライアントを使用して、水分レベルの予測値をリアルタイムに確認できるようになりました。通知エンジンは、測定値と予測値の両方に対応しているため、目標とする水分レベルに達した場合に、SMS やメールでメッセージを受け取ることができます。
この追加情報は、携帯電話やその他のデバイスを通して、乾燥工程の状態に関してオペレーターにより高い可視性と自信を提供します。
ソリューション アーキテクチャ
データ処理
このアプリでは、SignalR を使用して、サーバーにデータを受信したときにリアルタイムの更新を取得し、データを SQL データベースに格納します。各乾燥機には複数のセンサーがハブに接続されているため、毎分、次の収集されたデータが REST を通じて ASP.NET Core MVC で実装された Web API に送信されます:
開始時刻と終了時刻、重量、ヘーゼルナッツの種類、構造 (乾燥機)、場所 (乾燥施設) などの予測に必要な追加のデータは、施設の作業者によって手動で収集され、記録されます。
ヘーゼルナッツのサンプルの (トレーニング データに使用される) 湿気レベルは、手動で収集および記録されています:
データ変換と機械学習アルゴリズム
Hazelnut Monitor では、one-hot encoding を使用して、カテゴリー型の特徴量 (ヘーゼルナッツの品種、乾燥機の設置場所、ビン・構造体の番号) を、ML.NET のアルゴリズムで受け入れられるフォーマットである FLOAT データ型に変換し、これらの特徴量と温度デルタ、湿度デルタ、質量を連結します。これらの特徴量列は、高速回帰木アルゴリズム に渡され、ヘーゼルナッツの水分量を予測します。
昨年、トレーニング アルゴリズムはスケジュールされたタスクとして 1 日に 1 回実行され、トレーニングされたモデルは zip ファイルとして Azure Blob Storage にプッシュされました。その後、モデルは Azure App Services キャッシュに読み込まれ、新しいデータで使用され、水分レベルの予測が行われました。今シーズン、Evolution Software はこのプロセスをスケジュールされた Azure 関数に移行する予定です。
クライアント アプリケーション
Hazelnut Monitor は、.NET Core および Aurelia を使用して構築され、Azure でホストされる web ベースのポータルを提供します。これにより、複数の場所での乾燥操作についての分析情報を提供します。 また、特定の測定が有効になっていない場合や、(温度が高温過ぎる、または高温になったなどの)、センサーの誤作動時、またはターゲットとする湿気内容に達したときに、SMS を使用して主要な担当者に警告し、メール通知を送信するルール エンジンと通知システム (Azure Functions を使用) も含まれます。
ML.NET のリリースにより、Evolution Software は機械学習機能を Hazelnut Monitor アプリケーションに簡単に追加できるようになりました。 同社は、既存の .NET および C# のスキルとソフトウェア資産を活用して、ゼロから機能する機械学習モデルに短時間で移行し、それによって対象となるビジネス上の問題に対処することができました。
準備はできましたか?
このステップ バイ ステップ チュートリアルは、あなたのコンピューターで ML.NET を実行するのに役立ちます。