前回記事では、Darkflowというオープンソースの物体検出のライブラリを用いました。
理解できない用語があったので、調べたことをまとめてみました。
1.darkflow
darknetをtensorflow環境で動作するようにしたパッケージです。darknetは、YOLOの論文作者が作ったライブラリで手軽にインストールできるが、改造する場合、C言語を理解する必要ががあります。
2.YOLOとは
YOLOは「You Only Live Once」の略称で、物体検出をするアルゴリズムの一つです。その中でも、検出と識別を同時に行うことでリアルタイムに近い処理速度を実現しています。しかし、小さい画像処理の検出には向いていないそうです。小さい処理は、SSD(Single Shot MultiBox Detector)の方が向いています。
物体検出のアルゴリズムについては、下記サイトを読むと参考になります。
物体検出についての歴史まとめ(1)
物体検出の5つの代表的なアーキテクチャの特徴まとめ
2.1.GPU使用有無の違い
darkflowでは、GPUが備わっている環境であれば使用できるそうです。GPUの方が断然早く処理できるみたいです。
【YOLO】GPU使用と非使用でのYOLOの処理速度の違い。
2.2.学習済みモデル
学習済みモデルとは、物体かどうかを予測するために訓練を行い、学習させたモデルのことを指すそうです。
下記は、学習済みモデルの精度、処理速度、書き出し速度の検証をされているサイトです。
YOLOv3で様々な学習済モデルを検証する
2.3.認識できるもの
https://github.com/thtrieu/darkflow.git
のデフォルトで認識できるのは、coco.nameにある80のカテゴリを識別できるそうです。
また、自分で好きなものを学習でさせることもできます。
【Darknet】リアルタイムオブジェクト認識 YOLOをTensorflowで試す
オブジェクト検出 YOLO
Google Colab上でdarknet(YOLO)を使って物体を数える【画像認識】
3.終わりに
簡単ですが、まとめてみました。工夫すれば、処理速度を上げたり、新たな学習データを作ることができることが分かったので、機会があれば試してみます。