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/15

DeepLearningのモデル可視化方法とmatplotlibで学習の様子を可視化する方法

学習モデルの可視化と学習の様子を可視化してみた 何を今更といった内容の記事です。 DeepLearningにチャレンジしてきた筆者で…

DeepLearningを活用した物体検出(SSD_Keras)を可能とするPepper

SSD_KerasをPepperにも 以前紹介したSSD_Kerasによる物体検出を、いつかPepperにも搭載できたら良いなぁなんて思っ…

映像物体検出(SSD_Keras)を簡単に実装する方法 for maxOS

簡単に映像物体検出を試す方法 以前の記事で、ubuntuを使った映像検出を紹介しましたが、OpenCVの環境構築等に結構戸惑ったので、もっ…

Deep Learningオススメ書籍

これからDeep Learningの勉強をするなら Deep Learningを勉強する上で、参考になる書籍の紹介です。 筆者も当サ…

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

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

誰でもできるtensorflowを使ったサンプル画像認識

tensorflowなら簡単に画像認識ができる tensorflowの入門編として、簡単にサンプルソースを使った画像認識を試してみたので、…

物体検出用SSD_Kerasで使える学習モデルの作成方法

学習モデルの作成 サンプルソースコードのSSD_kerasを使ってリアルタイム映像からの物体検出ができるようになると、自分で学習させたモデ…

20177/25

カメラ映像から動く物体の輪郭検出が簡単にできた話

OpenCVを使って動く物体の輪郭検出をやってみた 今更ながらにOpenCVの凄さを実感しました。 まさか物体の輪郭検出までできると…

20176/3

簡単にできるOpenCVを使った顔検出

画像からの顔検出は意外と簡単 以前から画像に写っている顔の検出ができたら良いなぁって思っていましたが、そう簡単ではないイメージを持っていま…

自然言語解析の形態素解析 janome を使ってみよう

形態素解析 janome とは 簡単に説明しますと、自然言語の文章を意味を持つ最長単位に分割し、品詞を判別することができるライブラリです。…

ページ上部へ戻る