ASP.NET Coreを実行しました
叶フィルムの写真を 1 枚アップロードすると、AI がそれが何であるかを教えてくれます
大家好,我是符号农子。
村里谰家田里叶子可以新点,第一电影不打农技员——镇上海农技站 元々就没的人,下載田得排好好天天大家は村の舞子の一つの古い土地のエフェクトを再生することができます。
しかし、古い土地の安全な安全は安全です。不可叫得圆,稻真和纹枯初期症状像,二是村家店老老看法能是在;二是人最在跟前就没鲭、若者は外打工にいます、ビデオのコメントは不鮮明です、写真は老人を過ぎて送信されても見ません。
病虫害これは、早一日認識と一日、一戦の間出力差を出します。
私は考えています、能不是搞个世界、手机拍张生,当场就就生是什么病,该打什么药、neuseai求人、neuseaiなど
说干就干,用我最熟的 .NETテクノロジースタック94.78%
01
水稻病虫害の診断には、従来のルートには未解決の 2 つの問題があります。
一は靠老老安全電影電気ショックはあるが、常に使用できるわけではなく、老人は前に、判断ルートを使用して、病葉に目を当てました。
二是靠书靠农技员病虫害図翻訳、下田排斥等不可、夫生対不上号;技術者手少、下田排斥等。
したがって、このシステムの目標は非常に明確です。写真を撮る→認識→给防治名生,三步枞定には、専門的な知識は必要ありません。
02 テクノロジーの選び方
卒業設計なのでPython+Flaskに慣れていないのが一番多いですが、.NETが一番多い理由です。一语诇通過前後端,可以省省事。
コアテクノロジースタックは次のとおりです。
- 後端:ASP.NET Core 8 MVC + C# 12
- 日付:Entity Framework Core 8 + SQLite(Code First)
- 人工知能:ML.NET + ONNX(DenseNet121,6 类水稻病害)
- フロントエンド:Razor + Bootstrap 5 + ECharts
- 認証:ASP.NETコアアイデンティティ
多くの人は、.NET 搞 AI は Python インターフェイスしか使用できないと考えていますが、実際には、ML.NET 掃討 ML.NET は、電影内で NN モデルをダウンロードします。Python サービスを使用せず、1 つのプロセスをデプロイします。
03モデルはこちらから
私たちは、HuggingFace 上の 1 つのソース水稻病害事前トレーニング モデルを取得しました。アーキテクチャは DenseNet121 で、Rice_Leaf_AUG データ セット上にあります。
六線時間、刚好因水稻の最も一般的な葉身疾患:
白葉枯病、自枖病、健康、稻枯病、葉枯病、纹枯病
ダウンロードダウンロードは PyTorch の .pth 重みであり、timm を使用してモデル構造を再構築し、ONNX に再構築されています。
ONNX モデル入力 224×224、出力 6 ロジットをエクスポート。検証収集精度 94.78%、電子効果設計を行っています。
04
写真进来の後、MLPredictionService 干这个几件事:
- 画像をロードする:ML.NET の LoadImages 変換はローカルの画像を読み取ります
- 前処理:224×224にリサイズ,ExtractPixels正視在电视体归一化
- 余裕:ApplyOnnxModel ONNXモデルを読み込み、6ロジットを出力
- 加工後:ソフトマックス归一化,取置信度最高位カテゴリ
- マッチングナレッジライブラリ:害虫の種類に応じて、症状と駆除方法を返信します。
一提の金額に詳細があります。モデルドキュメントが存在しない可能性があります(追加标志時期忘れ)、私はそうしました降级戦略: モデルの読み込みエラーが検出され、自動的にシミュレーション予測モードに切り替わり、画像パスに基づいて安定した結果が生成されます。この方法では、システムが実行されることはなく、モデル ファイルが見つからないためにシステムが壊れることもありません。
05 機能性
一つの共通の大きなモジュールに電気を与え、私たちはハンドル技術の数々を送りました。
検出された画像 ドラッグ アンド ドロップまたはクリックして写真をアップロードすると、数秒後に、疾患の名前、信頼度、および知識ベースからの一致する推奨事項が表示されます。インターフェイス上ではさまざまな確率分布も確認できます。
病虫害知識ライブラリ 症状、危険性、予防方法など、9 つの一般的な水の病気の詳細が組み込まれています。カテゴリフィルタリングとキーワード検索によるサポート。
データ統計 ECharts 画了近 30 天是是トレンド折線図と病虫害饼饼図,一眼能看出最秘看出最好媅害饼饼図
管理権限 アイデンティティの二重の役割に基づいています。一般のユーザーはレコードを検出、表示できます。管理者には追加のユーザー管理、ナレッジ ライブラリのメンテナンス、操作ログの表示権限があります。

06
開発の過程で比較的濃い感想をいくつか踏んだので参考にさせていただきました。
ONNX出力まず、ImageNet で事前トレーニングされた MobileNetV2 を使用し、出力は 1000 レイヤーで、水稻病害タグにマッピングされます。
InMemoryデータベーステスト電子ビデオ用EF CoreのInMemoryが提供するプログラムは、記録されたIDからダウンロードされた6桁のIDを返すようになります。
フロントエンドの静的リソースブートストラップと jQuery の CDN は時々読み込みに失敗することがあります。
最後に、単一の単体テストを実行しました。26 個の例がすべて合格し、コア サービス層のロジックは基本的にカバーされました。
07 最後に
说实话、做设计プロジェクト、最大の収穫はテクノロジーそのものではありませんが、実際のシーンの問題を解決するには、使い慣れたツール リンクを使用してください。
以前は、AI は Python の地盘であり、兄才活動.NET のエコロジーも成熟していると考えていました。 ML.NET + ONNX の組み合わせにより、一般的な ASP.NET Core Web アプリケーションでもディープ ラーニング モデルを実行できるようになり、デプロイメントが特にクリーンになります。
もちろん、このシステムにはまだまだ改善の余地がたくさんあります。現時点では6種類の葉の病気のみをカバーしており、虫害(稻飞虚、二化螟など)は含まれていません。
著者について
開発者、ERP / 製造業システム開発 6 年間、C# / .NET / Blazor に注力。
ブログ: | 正式番号:CSharp 简介营