AI coordinator

人工知能 & ロボティクス

サイト運営者

© AI coordinator All rights reserved.

映像からの物体検出(SSD_Keras)に挑戦 for ubuntu

映像からの物体検出

リアルタイム映像からの物体検出に挑戦してみました。

ただし簡単にはできず、色々ハマってえらく苦労したので、同じ悩みを持っている人の助けになればと思い実装までの手順を記事にします。

この手順に則って環境準備から始めて頂ければ、素人でも自分のPC場で映像からの物体検出が実装できるようになります。

それでは始めてみましょう。

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

以下のサイトを参考にさせて頂きました。

SSD: Single Shot MultiBox Detector 高速リアルタイム物体検出デモをKerasで試す

こちらのサイトは素人の筆者でもなんとか実装できるぐらいまで丁寧に説明してくださっていますので、リアルタイムからの物体検出を実行する上で、大変参考になりました。

 

また、これからDeep Learningの勉強をするなら、こちらで紹介する書籍が参考になります。

 

まっさらなubuntu16.4の準備

まっさらな状態から始めましょう。

私はすでに色々なモジュールを組み込んでいたせいか、エラーばかり発生してまともにプログラムが動きませんでした。

そのため、ubuntuのインストールからやり直し、なんとか実装することができました。

無駄に苦労したくない方は、ubuntuをインストールしたまんまの環境を準備してください。

 

ubuntuのインストールはフリーのVirtualBoxで十分事足ります。

ちなみに筆者はimacで実装しました。

 

python3-pipのインストール

ubuntuのインストールが完了したら、python3系のpipのインストールから始めましょう。

ターミナルを起動し、以下のコマンドを打ち込みます。

 

tensorflow-1.1.0のインストール

続いてtensorflow-1.1.0のインストールです。

バージョンは非常に重要です。

これにハマりました。

結局動いたバージョンが、tensorflow-1.1.0でした。

 

今回はGPUを使用しないので、以下のコマンドでtensorflowをインストールしてください。

 

keras-1.2.2のインストール

続いてkeras-1.2.2のインストールです。

最新版のバージョン2をインストールしてしまいますと、全く動きません。

自力で直せない方は、keras-1.2.2をインストールしましょう。

筆者はここでも苦労しました。

結局バージョン2は筆者の実力ではどうにもできませんでした。

 

 

opencvのインストール

opencvはたくさんのコマンドからインストールすることになります。

anacondaの一発インストールではうまく行きませんでした。

 

それに、そこそこ時間がかかります。

imac2012のVirtualBox ubuntuインストール版では約1時間ぐらいかかりました。

以下のコマンドを順番に打ち込んでください。

 

Open Source Computer Vision Libraryのダウンロード

以下のサイトからライブラリーを一式ダンロードします。

ダウンロードが完了したらbuildします。

インストールしましょう。

 

jupyter notebookのインストール

pythonを実行する上で便利なjupyter notebookをインストールしましょう。

 

ssd_kerasのダウンロード

ssd_kerasは映像からの物体検出を可能とするライブラリー群になります。

これを公開してくださった方に感謝ですね。

こちらのライブラリーをダウンロードして、映像からの物体検出を行うことになります。

 

学習済みモデルは個別にサイトからダウンロードする必要があります。

ダウンロードする場所は、以下の画面を参考にしてください

 

クリックして、しばらく読み込みが始まった後に以下の画面が表示されますので、weights_SSD300.hdf5をダウンロードしてください。

これが学習モデルになります。

 

以上で環境準備は完了です。

 

サンプル写真からの物体検出

環境準備が完了したら、早速サンプルソースを使って物体検出を試してみましょう。

さきほどインストールしたjupyter notebookを使用します。

ダウンロードしたssd_kerasディレクトリに移動してjupyter notebookを起動してください。

 

実行するファイルは、SSD.ipynb です。

 

SSD.ipynbを起動したら実行しましょう。

 

するとmatplotlib.pyplotがimportできないと叱られます。

もし上記のようなエラーが発生した場合は、以下のコマンドでmatplotlibをインストールしてください。

 

再度実行し直すと、またまた以下のようなエラーになります。

こちらも上記画像と同じようなエラーになった場合は、h5pyをインストールすれば解消します。

以下のコマンドでインストールしてください。

 

3度目の正直で再度実行し直せば、今度は動くはずです。

無事に動くと以下のようにサンプル画像から物体を検出した画像が表示されます。

 

ここまでできたら、映像からの物体検出ができる条件が整ったことを意味します。

 

早速挑戦。でもその前に

早速、映像の物体検出をやりたいところですが、サンプルソースに誤りがあります。

まずはそれを修正しましょう。

ssd_keras/testing_utils/videotest.pyの87行目に以下のロジックがあります。

このロジックを以下のように修正してください。

物体検出結果をターミナルで確認したい場合は、162行目に以下のprint文を追加してください。

 

続いて動画ファイルの指定です。

動画ファイルの指定は、ssd_keras/testing_utils/videotest_example.pyで指定します。

24行目にファイルのパスを指定しているロジックがありますので、再生したいファイルのパスを指定してください。

 

以上で準備完了です。

 

videotest_example.pyの実行

では動かしてみましょう。

ディレクトリを移動して、videotest_example.pyを起動します。

以下のように映像と物体検出している様子が確認できるはずです。

 

GPU仕様ではないのでFPSが1という、とてつもなく遅い動画となりましたが、なんとか動くはずです。

 

頑張って実装してみてください。

 


その他の物体検出記事はこちらから

 

それではまた。

関連記事

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

20178/8

動体撮影に特化した監視カメラの作成方法

動く物体を検知して写真撮影をする監視カメラ OpenCVを使えば動体撮影に特化した監視カメラを作成することができるのではないかと考え、実装…

20174/25

DeepLearningに必要なソフトウェアのセットアップ

DeepLearningに必要なソフトウェアをubuntuにインストール ubuntuをインストールしたら、次はソフトウェアの環境準備に取…

畳み込みニューラルネットワークを使った画像検出モデルの作成方法

深層学習(ディープラーニング)で画像認識に挑戦 以前の記事でMNISTを使った数字画像認識の学習モデルを作成しました。 でも、やっぱ…

20179/16

Selective Searchを使った映像からの物体検出にチャレンジ

Selective Search 物体検出にチャレンジしている筆者としては、どうやって画像から物体らしき部分を効率よく抽出できるかを日々模…

20176/14

OpenCVで簡単リアルタイム物体検出

OpenCVを使った物体検出 映像からただ単に物体検出を試してみたいだけなら、すぐにでも試せる方法を紹介します。 SSD_keras…

20176/1

jupyter notebookの便利な使い方や起動しなくなった時の対処法

便利なショートカットキー jupyter notebookを便利に使用する上で、最低限知っておけば良いショートカットキーを紹介します。 …

20176/6

大量の画像から顔の部分のみトリミングして保存する方法

OpenCVを使った顔抽出 前回の記事で、OpenCVを使った顔認識を紹介しました。 今回は大量の画像から顔の部分だけをトリミングし…

TensorFlowのオブジェクト検出APIで物体検出に挑戦

TensorFlowで物体検出APIがリリースされたので早速試してみた googleからの新しい物体検出APIがリリースされました。 …

20177/15

SlackからPepperを発話させる超簡単な方法

SlackからPepperを喋らせてみる 久しぶりのPepperネタです。 最近、Slackbotを学習したので、今度はPepper…

20173/5

Pepper用Python 2.7 SDK(WIN)セットアップ方法

コレグラフを使用しなくてもPepperを動かせるPython 2.7 SDKセットアップ方法 Windows編 前回に続き、今回はWind…

ページ上部へ戻る