YOLOv2のリアルタイム物体検出をTensorFlowとPythonで実装する方法

YOLOv2のリアルタイム物体検出をTensorFlowとPythonで実装する方法

YOLO v2をどうしてもPythonで使ってみたかったので作ってみた

こんにちは。

AI coordinatorの清水秀樹です。

数多くあるオブジェクト物体検出の中で、処理速度が最も早い?と言われているYOLO v2を試してみました。

公式サイトの通りやって、環境のセットアップと静止画のオブジェクト物体検出を描画できるところまでは簡単にできましたが、なぜか動画になるとエラーになってしまいました。

そんなわけで、公式サイトのやり方ではイマイチ不良消化のまま先に進めなくなってしまったので、少し思考を変え、静止画でオブジェクト物体検出ができるなら、Pythonでソースコードを組み直せば、リアルタイム映像でもYOLOを試せると考え、実際にPythonで動かせるように作成してみました。

中々苦労しましたが、なんとか実装できたので、その内容を紹介したいと思います。

参考にさせて頂いたサイトの紹介

ちょうど自分がやりたいことに近しいソースコードがGitHubリポジトリに紹介されていたので、参考にさせて頂きました。

上記以外でも、KerasバージョンやChianerバージョンもあるみたいなので、そのうち試してみたいと思います。

 

開発環境

macOS Sierra

Anaconda3-4.2.0-MacOSX-x86_64

python 3.5.2

opencv3 3.1.0

tensorflow 1.1.0

 

YOLO セットアップ方法

いつもセットアップに試行錯誤することが多いのですが、今回は割と簡単に準備できました。

とはいえ、つまずいた部分も少なからずあるので、解消法も含めて紹介します。

 

まずはGithubからクローンしましょう。

そしてクローンしたフォルダに入ります。

続いてYOLOの公式サイトからweightファイルをダウンロードします。

以下画像内のhere(258MB)をクリックするとダウンロードできます。

YOLOv2のリアルタイム物体検出をTensorFlowとPython 画像1

ダウンロードしたら、darkflow-masterフォルダ内にbinフォルダを作成し、binフォルダ内にyolo.weightsを保存しましょう。

 

続いてインストール作業になります。

以下の3つのコマンドうちいずれかでインストールができます。

正直、この3つ違いはよくわかりません。

筆者は一番上を使いました。

 

インストールができたら、早速サンプルソースコードを使って、静止画からのオブジェクト物体検出にチャレンジしてみましょう。

筆者はここで以下のエラーが発生しました。

 

ググって解決策を発見。

以下のコマンドでエラーを解消しました。

 

が・・・・しかし、また別のエラー

 

よく確認してみると、パス名が違うじゃね〜か!!

ではなく、

でした。

パス名を変更して実行すると無事処理が完了。

print(result)の結果から、以下のような情報が出力されました。

JSON形式で結果が返ってくるようです。

 

さて、ここまででセットアップ完了です。

 

リアルタイム映像からのオブジェクト物体検出にチャレンジ

では、目的のtensorflowとPythonを使ったリアルタイム映像からのオブジェクト物体検出にチャレンジしてみたいと思います。

オブジェクトごとに矩形の色を変えてみるなど、ちょっと頑張って作ってみました。

紹介しいているソースコードはPCのwebカメラで動くように作成しています。

また、confidenceが0.6以上のものに対してだけ、矩形するようにしています。

この辺はお好みで変更してください。

 

もちろん動画でも対応可能です。

YOLOv2のリアルタイム物体検出をTensorFlowとPython 画像2

車の中の人まで認識できるところがすごいですね。

ただ、処理速度に関して言うと、筆者の開発環境ではSSD_kerasと大差ない感じでした。

 

まとめ

最近は色々なオブジェクト物体検出方法が紹介されています。

次から次へと色々な技術が紹介されていて、しかも自分のPCでも試せるような時代になっているので、便利な世の中になったなぁ〜なんて感じています。

興味がある方はこのYOLOを使ったオブジェクト物体検出にチャレンジしてみてください。

 

また、これからDeep Learningの勉強をするなら、こちらで紹介する書籍も参考になりますので一読してみることをオススメします。

 それではまた。

この記事の内容について、相談したい方へ

技術選定・実装の進め方・組織での導入など、AI/IoT全般のご相談を受け付けています。

無料相談会(30分・オンライン)

About The Author

Hideki
AI coordinator株式会社 代表取締役/東京海洋大学 産学官連携研究員。AIロボティクスのスタートアップで執行役員CTO 兼 VPoEとして収穫ロボットの開発組織を統括(2026年7月まで)。画像認識関連のAI特許3件取得・1件出願中。現在はAI・ロボティクス・IoTの現場実装を、月額の技術顧問契約で「現場で動くまで」伴走しています。
会社概要 → www.ai-coordinator.co.jp

COMMENTS & TRACKBACKS

  • Comments ( 3 )
  • Trackbacks ( 1 )
  1. darkflow-masterフォルダー内にbinファイルをつくるのではなく、darkflowフォルダー内にbinファイルをつくるのですね。

  2. ソース上のパスの指定方法で、binファイルの保存場所を変更できますね。

  3. darkflowで自前のデータで学習する記事を書いてくれませんか?

  1. […] YOLOv2のリアルタイム物体検出をTensorFlowとPythonで実装する方法 […]