AI coordinator

人工知能 & ロボティクス

© AI coordinator All rights reserved.

20179/16

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

Selective Search

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

PepperではOpenCVのカスケードファイルを使用することで、手軽に人の顔や人物の抽出ができました。

R-CNNを「Tensorflow x Pepper」で実装する方法

 

また、動体の物体検出であればフレーム間差分でも取得出来るかと考えています。

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

 

ただ静止画も含めた色々な物体を検出するとなると、もう少し工夫が必要になります。

そこで、物体検出方法について以前から試してみたかったSelective Searchという手法を今回試してみたので、その内容を紹介したいと思います。

簡単に試せるので、興味がある方はチャレンジしてみてください。

 

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

GitHubに紹介されていたソースを使いました。

詳しい説明は以下のサイトを参照ください。

 

環境準備

いつも環境準備で苦労するのですが、今回あっさりできました。

以下のコマンドでselectivesearchをインストールしましょうl

 

mac Python 3.5.2 |Anaconda で開発しています。

 

実行結果

サンプルのソースコードをそのまま使用すると、scikit-imageを使用するように指定されているので、宇宙服を着た女性の画像がいきなり出力されます。

今回一番はまったところはこの画像部分ですね。

自分の好きな画像で試すにはどうすれば良いのかわからず、少し調べ回りました。

結局img=の指定を以下のようにすれば、自分で準備した画像を選択できます。

ただ、デジカメで撮った画像なんかだと、サイズがでかくてエラーとなります。

パラメーターの指定で解決するとは思いますが、よくわからなかったので、読み込ませる画像を適当に縮小して使用しました。

 

以下ソースコード(参考元サイトをほぼそのまま流用)と使用した画像の結果です。

 

なるほどなるほど。

あえて複雑な画像を入力してみましたが、色々な箇所を検出してくれるみたいです。

 

ただし、画像サイズが大きすぎたせいか、結果が出力されるまでに時間がかかりました。

だいたい30秒ぐらいですね。

一般的かどうかわかりませんが、今ままでの経験上、画像認識は画像サイズを縮小して学習モデルを作成することが多いです。

また、認識させたい画像の入力もリサイズ(縮小)して使用することが多いので、さすがに横2000ピクセルは大きすぎるみたいですね。

 

というわけで、横300ピクセルで試してみました。

すると、約1秒で結果が出力されました。

結果が出力されるまで、かなり早くなりましたが、物体検出される箇所も変わるようです。

物体検出領域が随分減り、少し雑?になった感じですね。

 

まあ、当然といえば当然の結果なんだと思います。

より詳細により多くの物体を検出したければ、大きいサイズの画像の方が精度が出るのでしょう。

ただ、処理速度を失う感じになるので、そこはマシンパワーとの相談になるかと思います。

 

映像からの物体検出にチャレンジ

さて、事前準備が完了したので、OpenCVとselectivesearchを使って映像からの物体検出にチャレンジしたいと思います。

以下のソースコードで実装しました。

PCからのwebカメラで実装しています。

画像サイズを小さくしているので、処理速度も中々良い感じです。

実際の出力映像を掲載したいのですが、自宅の部屋の中で実施したので割愛します。

 

興味がある方はぜひお試しあれ。

 

この物体検出領域の抽出については、これからも色々と模索していきたいと思います。

 


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

 

それではまた。

関連記事

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

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

20176/21

カメラ映像からの物体検出

PC内蔵カメラから自分の顔の物体検出をやってみる ほとんど筆者の備忘録的な内容になります。 色々な映像や画像からの物体検出をチャレン…

20178/8

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

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

20177/22

Pepperのカメラ映像からリアルタイムで物体検出する方法

Pepperのカメラからリアルタイムに物体検出してみる 以前からチャレンジしてみたかったPepperに搭載されているカメラ映像からの物体検…

20173/3

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

コレグラフを使用しなくてもPepperを動かせるPython 2.7 SDKセットアップ方法 MAC編 プログラムソースをバリバリ記述しな…

MNISTって何?数字を識別できる学習モデルの作成方法

MNISTとは MNISTとは手書き数字画像60000枚とテスト画像10000枚を集めた画像データセットになります。 ニューラルネッ…

20173/5

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

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

Watson NLCに学習データを投入できるGUIの開発方法

Watson NLCに学習データを投入できる画面をPythonで実装する方法 Watson NLCに学習データを投入できる簡単な画面を開発…

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

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

20178/12

監視カメラで撮影した画像を自動でSlackにアップロードする方法

画像確認はSlackが便利 前回紹介した動体撮影に特化した監視カメラの作成方法で、保存した写真をどうやって簡単に確認できるか模索していたと…

R-CNNを「Tensorflow x Pepper」で実装する方法

アトリエ秋葉原で勉強会を開催 アトリエ秋葉原で勉強会の講師を努めさせて頂きました。 独学でDeepLearningを学んで「Tens…

ページ上部へ戻る