フルーツでの物体検出をやってみた 【YOLOv5】

Machine Learning

YOLOv5 のデフォルトの学習済みデータを使って物体検出をやってみました。結果を簡単にまとめておきます。フルーツでの物体検出です。

環境: Windows パソコン、USBカメラ(動作確認用)、Anaconda、Python 3.X、YOLOv5 をインストール済み。

背景

2020年に YOLOv5 がリリースされ、2021年4月には YOLOv5-P6 がリリースされています。
YOLOv5 については、以前に、Windows パソコン(GPU 付き)の Anaconda 環境でインストールを試みていました(下記の関連リンク参照)。
Windows パソコンに USB カメラをつなぐと YOLOv5 がすぐに動く状態となっていますので、試しに物体検出をやってみました。結果の画像程度ですがアップしておきます。

物体検出の結果まとめ

設定について

・ フルーツを使った物体認識の結果は、上記の画像に示した通りです。
・ USBカメラのライブ画像を使って YOLO を実行すると、物体検出後、結果が動画で保存されます。
上に挙げた画像は、動画からフレームをいくつか引き抜いて gif 画像化することで、データを軽くしています。
・ 使っている学習モデルは、YOLOv5 のデフォルトのままとしています。
・ 学習モデルで使っている学習対象の種類は 80 種類とのことです。apple、orange、banana あたりは入っているようですが、kiwi、lemon は入っていないようです。(詳細確認中)
https://cocodataset.org/#home

物体検出&物体認識の結果について

・ 赤色のリンゴ apple、黄色のリンゴ、オレンジ orange については、検出結果のラベルが正解となっています。confidence の値も 0.7 の程度、結果も安定しています。物体検出及び物体認識のいずれも良好といえそうです。
・ 黄色のリンゴはたまたま買ってきたものです。色だけをみると他のフルーツと間違えそうですが、よく認識できるなと思う程度に判別ができており、形状も判断していると考えられます。黄色のリンゴは confidence の値が他よりやや低く 0.6 前後となっています。
・ キウイ kiwi とレモン lemon については、学習用データに入っていないようです(確認中)。そのため、orange 等と誤認識しています。confidence の値も 0.2 ~ 0.6 程度となっており、リンゴなどの正解しているフルーツと比べると、相対的に低い値となっています。
とはいえ、果物としての領域抽出(検出)はできているので、特に問題はない結果となっています。機械学習を追加すれば正解するであろうと思われます。
・ カメラを動かしても、遠近を変えても、フルーツの側を動かしても、検出領域が追従します。confidence の値も、上記の画像と同様の結果となっています。
・ パソコンは GPU 付きのものを使っていますが、学習ではなく物体検出であれば、負荷も軽く、特に問題はありません。

その他、所感

・ ネットで kaggle dataset などとして学習データのサンプルを調べると、一般的なフルーツの学習用データには、緑色のリンゴなども入っているようです。(日本では緑色のリンゴはあまり見ないようにも思いますが。)
・ また、実行している Python のスクリプト(detect.py)を調べていけば、各オブジェクトの位置や大きさを取得したり、領域を切り出すこともできそうです。こうしたデータを取得して、さらに別の画像処理やハードウェアの動作処理を追加することも可能そうです。
例えば、安定した光源を設定してカラーバランスと明るさを調整し、カメラの距離・位置を固定して寸法を評価するためのキャリブレーションをすれば、果物の大きさや鮮度を自動判定し、選別も自動で行うなど、応用ができそうです。ほとんどできているようなものだと思います。
・ detect.py のスクリプトに関しては、Raspberry Pi の Tensorflow Lite のライブラリを使って、簡単なスクリプトを自作しています(「静止画でオブジェクト認識」)。関心のある方は関連リンクも参照してください。

まとめ

簡単ですが、YOLO を使った物体検出を行ってみました。
今回は Windows と YOLOv5 の組み合わせとしました。果物や野菜程度であれば、上記の画像のとおり、検出精度は高くできそうです。

ロボットアームのような動くモノがあれば、自動選別のロボットなども実現しそうです。スマート農業、無人野菜工場なども実現できるのではという印象を受けます。

関連リンク
・ YOLOv5 のインストール手順 【Windows & Anaconda】
・ 動作確認済み USB カメラ 【おすすめ】
・ Anaconda Prompt コマンド一覧 【仮想環境設定】
・ 静止画でオブジェクト検出 【Raspberry Pi & Tensorflow Lite】
・ Raspberry Pi で物体検出をやってみた 【Tensorflow Lite】

タイトルとURLをコピーしました