0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PhytoNexa:オフライン対応AI植物病害診断システム

0
Posted at

~ TensorFlow LiteとWorkflow Automationを活用したスマート農業支援システム ~

はじめに

こんにちは、Poojaaです。

私はインドの大学でコンピュータサイエンス工学を専攻している3年生です。現在はJava、Spring Boot、Python、AI技術を中心に学習しており、将来は日本でソフトウェアエンジニアとして働くことを目標にしています。

今回は、個人開発として取り組んだ**「オフライン対応植物病害診断システム」**について紹介します。

植物病害診断システムは数多く存在しますが、多くのシステムは画像をAIで分類し、結果を表示するだけで終了します。

そこで私は、

「診断後の処理まで自動化し、実際の現場でも活用できるシステムを作れないか?」

という考えから、本プロジェクトを開発しました。

本システムでは、TensorFlow Liteを利用したオンデバイスAIに加え、Workflow Automationを組み合わせることで、診断からレポート生成までの流れを自動化しています。


開発背景

農業では、植物病害をできるだけ早く発見することが非常に重要です。

病害の発見が遅れると、

  • 収穫量の減少
  • 品質の低下
  • 被害の拡大

につながる可能性があります。

しかし実際には、

  • 専門知識が必要
  • 毎日の確認が必要
  • 広い農地では確認に時間がかかる

という課題があります。

近年ではAIによる画像認識技術を利用した植物病害診断システムが増えています。

しかし、その多くは診断結果を表示するだけであり、その後のデータ管理や通知などは利用者が手動で行う必要があります。

そこで今回は、

AI診断だけでなく、その後の業務フローまで自動化すること

を目的としてシステムを設計しました。


システム概要

本システムは、

「オフライン環境でも利用可能」

であることを重視しています。

通常の診断処理はすべてスマートフォン上で実行されるため、インターネット接続がなくても病害診断を行うことができます。

インターネットへ接続された場合のみ、Smart Sync機能が動作し、必要な情報をクラウドと同期します。


システム構成

システム全体の流れは以下のようになります。

葉画像撮影
      │
      ▼
画像前処理(224×224)
      │
      ▼
TensorFlow Lite
(オンデバイスAI)
      │
      ▼
病害判定
      │
      ▼
信頼度計算
      │
      ▼
治療方法検索
      │
      ▼
植物健康レポート生成
      │
      ▼
Workflow Automation
      │
 ┌─────────────┴─────────────┐
 ▼                           ▼
データ保存                通知送信
      │
      ▼
ダッシュボード表示

通常の診断処理はすべてスマートフォン内で完結します。

通信可能な場合のみSmart Sync機能が動作し、

  • 天気情報取得
  • AIモデル更新
  • クラウドバックアップ
  • 診断履歴同期

を自動で実行します。


使用技術

今回のプロジェクトでは以下の技術を利用しました。

技術 用途
Python バックエンド開発
TensorFlow Lite オンデバイスAI
OpenCV 画像前処理
Flask Webアプリケーション
HTML / CSS フロントエンド
Workflow Automation 業務フロー自動化
Git / GitHub ソースコード管理

主な機能

本システムには以下の機能があります。

  • 植物葉画像の撮影・アップロード
  • AIによる植物病害診断
  • 信頼度(Confidence Score)の表示
  • 病害に応じた治療方法の表示
  • Plant Health Reportの自動生成
  • Workflow Automationによる業務自動化
  • 診断履歴保存
  • Smart Syncによるクラウド同期

工夫した点

今回最も工夫した点は、

AIモデルだけではなく、システム全体を「オフラインファースト」で設計したことです。

一般的な植物病害診断システムでは、

画像をクラウドへ送信し、

サーバー側でAI推論を行うケースが多くあります。

しかし、その方法では通信環境が必要になります。

本システムでは、

TensorFlow Liteを利用することで、

AI推論をスマートフォン内だけで実行できるようにしました。

これにより、

通信環境がない場所でも診断が可能になります。

さらに、

診断後はWorkflow Automationによって

  • レポート生成
  • データ保存
  • 通知処理

までを自動で実行します。

インターネット接続時のみSmart Syncが動作し、

必要なデータだけをクラウドへ同期する設計としました。

このように、

オフライン性能とオンライン同期を両立させた点

が本プロジェクトの特徴です。


苦労した点

① TensorFlow Liteへの変換

学習済みモデルをTensorFlow Liteへ変換する際、

モデルサイズと推論精度のバランスを調整する必要がありました。

スマートフォン上で高速に動作しながらも十分な精度を維持できるよう改善を繰り返しました。


② 類似病害の分類

病害によっては葉の症状が非常によく似ています。

そのため、

画像前処理や学習データの改善を行い、

分類精度の向上を目指しました。


③ Workflow Automationの設計

AI診断だけではなく、

その後の処理まで自動化するため、

各処理の実行順序やエラー発生時の処理など、

システム全体の設計について何度も見直しました。


④ オフライン設計

ネットワークが利用できない状況でも、

ユーザーが問題なく診断できるよう、

クラウドに依存しない設計を考える必要がありました。

その結果、

通常の診断処理は完全にオフラインで実行し、

通信可能な場合のみ同期を行う構成にしました。


学んだこと

今回の開発を通して、

AIモデルを作ることだけでは、

実際の製品としては十分ではないことを学びました。

利用者にとって重要なのは、

AIの精度だけではなく、

システム全体の使いやすさや運用方法です。

また、

  • TensorFlow LiteによるエッジAI
  • OpenCVを用いた画像処理
  • FlaskによるWeb開発
  • Workflow Automation
  • Git / GitHubによる開発管理

について理解を深めることができました。

今回の開発を通して、

「AIを組み込んだシステム全体を設計すること」

の重要性を実感しました。


今後改善したいこと

今後はさらに実用性を高めるため、

以下の機能を追加したいと考えています。

  • Docker対応
  • AWSへのデプロイ
  • GPSによる圃場管理
  • IoTセンサーとの連携
  • AIモデルの高精度化
  • 病害発生予測
  • 病害の重症度判定
  • 多言語対応
  • LLMを利用した栽培アドバイス機能

おわりに

今回は、

TensorFlow LiteとWorkflow Automationを活用したオフライン対応植物病害診断システム

について紹介しました。

このプロジェクトでは、

単にAIモデルを作成するだけではなく、

「実際の利用シーンを想定したシステム設計」

を意識して開発しました。

まだ改善できる点は多くありますが、

今回の開発を通して、

AI、Web開発、Workflow Automation、システム設計について多くのことを学ぶことができました。

今後も継続して機能を改善し、

より実用的なスマート農業支援システムへ発展させたいと考えています。

最後まで読んでいただき、ありがとうございました!

ご意見や改善点などがありましたら、ぜひコメントで教えていただけると嬉しいです。

よろしくお願いします!

ARCHITECTURE
image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?