2019/01/02


正月、皆が寝静まった後の時間を使ってリアルタイム物体認識を2本作ってみた。

TensorFlow Lite 版

GitHub - mattn/webcam-detect-tflite
https://github.com/mattn/webcam-detect-tflite

TensorFlow Lite は Google が開発している TensorFlow のモバイル環境向開発環境およびランタイムで今回は C++ で書いた。モデルファイルは toco 等で変換して使用します。本来 TensorFlow Lite は Linux 向けにだけ提供されているけど僕の環境は Windows なので匠の技によりポーティングされている。パフォーマンスはそれほど良くない。

mobilenet ssd というモデルの、座標情報を出力しないモデルを使うと Intel Core i5 なノートPC(メモリ16G)で 4~5fps くらい出る。

スマホ等では自分から物体にカメラを向けるはずなので用途によっては座標情報は必要ないかも。

menoh 版

GitHub - mattn/webcam-detect-menoh
https://github.com/mattn/webcam-detect-menoh

PFN (Preferred Networks) 社が GitHub 上で開発している menoh という DNN 推論ライブラリがあり、これの Go 言語バインディング go-menoh を使ってリアルタイム物体認識を作ってみた。こちらは Go 言語なので以下の3つの goroutine を使って平行処理を行っている。

  • カメラからの画像キャプチャ
  • リサイズと推論
  • 画面描画(メインgroutine)

Intel Core i5 なノートPC 上で vgg16 というモデルを使うと 3fps 程度。resnet50 というもう少し軽いモデルを使うと 6~7fps くらい出る。

Posted at by