AI CODE DeepLearning Jetson Python アルゴリズム エッジ 農業

ピーマン農家でないけど、ピーマン検知AIをJetson Nano で作ってみた -AI使う編説明-

農業AI

上記の比較編では、AI使った場合、使わない場合を比較しました

今回は、AIを使ってピーマンを検知する場合にはどうやって作るのか説明します。

AIにはYOLO v3でなく、1つ前のv2を使っているのと、分類は1種類でPimanのみの対応にハードコートされているので、参考程度にしていただければと思います。

使ったデータ、プログラムなどをgithubに置きましたので、それを使って説明します。

自分の環境でデータを集めて、アノテーションなどの作業をした方が、ちゃんと検出するのと作業の手間がわかって良いと思います。

https://github.com/hituji1012/PimanDetect

スポンサーリンク

データ

githubには下記のデータを入れてあります。

データはそのまま使ってもらっても良いですが、学習数が圧倒的に少ないので、違うピーマンで反応するかは不明です。

To GoogleColabCreateLabel...ipybアノテーションしたデータを
CSVに変換
YOLO Tra...ipyb収集、アノテーションしたデータを
学習する
To GoogleDriveannotatedアノテーションしたxmlファイル
images学習用の画像
model_dataYOLOの学習に必要なプログラム
To Jetson nanopiman_detectJetson nanoでピーマン検知するための
プログラムのセット

アノテーション

アノテーションにはLabelImgを使用。Macだとvottでアノテーションしたデータが出力できなかった。

https://github.com/tzutalin/labelImg

インストール方法使い方などは、上記か、他のサイトを参照いただいて、ここでは説明を省きます。

使い方は下記のようにシンプルです。vottよりわかりやすいです。

アノテーションした結果が、To GoogleDriveのannotatedに入っているファイルになります。

GoogleDriveにデータ移動

GoogleDriveに適当なフォルダを作成します。
私の場合Colab Notebooksの中にPiman2のフォルダを作成

To GoogleDriveのデータをフォルダごと作成したフォルダに移動

GoogleColaboratoryで学習

GoogleColaboratoryで、ファイル>ノートブックを開くでダウンロードしたノートブックが開くことができます。

アノテーションデータをCSVファイルに整形

CreateLabelData.ipynbを開いて

  1. Google driveマウント用コードを取得
  2. コード入力で、マウント
  3. フォルダ名をGoogle Driveで新しく作ったフォルダに変更

コードを全て実行すると、label.csvができます。

my_train.txtはYOLO v3ように作ったものですが、こちらは使いません。

学習

YOLO Train Piman.ipynbを開きます

メニューの「編集」「ノートブックの設定」「GPU」の設定は必須です。

Google Driveマウントして、必要なファイルをコピー

特にエラーなければ、学習が始まり、100回繰り返します。lossが1以下くらいになれば、学習できていると思います。

学習が終わるとtiny_weights.h5というファイルがGoogleDriveで作ったフォルダに作成されます。

Jetsonで実行

できたtiny_weights.h5をgithubからダウンロードしたTo Jetson nanoのpiman detectの中に上書きします。

あとは、piman detectフォルダをJetson nanoにコピーして、camera3.pyを実行すれば動作するはずです。

最後に

AIの方が柔軟に検出してくれますし、画像処理みたいに処理自体を考える必要がないのは、メリットかと思います。

なので、ある程度撮影環境を整えて、画像処理で簡単に済ませるのもアリですが、やりたいことによっては、AIを選択する方法もあると思います。

本記事で、Google Colaboratoryを使った位置検出の学習を参考にしていただければと思います。

-AI, CODE, DeepLearning, Jetson, Python, アルゴリズム, エッジ, 農業
-, ,

© 2020 ひつじ工房 Powered by AFFINGER5