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

Pepperのカメラからリアルタイムに物体検出してみる

以前からチャレンジしてみたかったPepperに搭載されているカメラ映像からの物体検出にチャレンジしてみたので、その内容の紹介になります。

物体を検出できるPepperができれば、その情報から次のアクションを起こすことが可能になるため、Pepperの使用用途が飛躍的に上がるのではないかと考えています。

さらに、リアルタイム映像をPCに映し出すことができればPepperの遠隔操作も可能になるので、さらに使用用途を広げることができるようになります。

Pepperからの映像取得に興味がある方はぜひチャレンジしてみてください。

 

開発環境

MacBook Pro(13-inch,2016)

プロセッサ 2.9 GHz intel Core i5

ubuntu 16.4 LTS

python 2.7.12

OpenCV 3.2.0

pynaoqi-python2.7-2.5.5.5-linux64

Pepper実機

 

今回はubuntuで開発しています。

これは単純にOpenCVがインストールし易かったからです。

macでanacondaなしにOpenCVをインストールすると、なぜかうまくインストールできなかったためです。

anaconda環境ですとPython SDK(pynaoqi-python2.7-2.5.5.5-linux64)が使えませんしね。

 

 

Pepperのカメラを使用しますので、バーチャルペッパーでは確認できません。

Pepper実機での確認になりますので、お持ちでない方はアトリエ秋葉原で試してみてください。

 

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

GitHubのソースコードを参考にさせて頂きました。

こちらのソースコードはPepperのカメラ映像をPCに出力するソースコードになっています。

 

物体検出するソースコード

今回はOpenCVのカスケードファイルを使って人の顔を検出してみました。

OpenCVのカスケードファイルを使った物体検出方法については、以下の記事を参考にしてください。

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

 

以下ソースコードです。

PepperのIPアドレスとカスケードファイルのパス指定を間違えないようにして頂ければ、以下のソースコードそのままで動くと思います。

 

成功すれば、以下の画像のようにPeperのカメラで顔を識別できるようになります。

 

注意点

何度か接続し直していると、カメラ映像を取得できなくなります。

おそらく、unsubscribeメソッドを実行せずにプログラムを終了させることで発生するような気がするのですが、videoDevice.unsubscribe(‘test’)メソッドでビデオモジュールの登録を解除してもエラーが出続けてしまうことがあります。

その場合は、Pepper実機を再起動してください。(これがまた時間がかかる・・・)

 

今後の目標

今回、PepperでOpenCVを使ったリアルタイム映像からの物体検出ができるようになったので、今後はDeepLearning(ディープラーニング)で作成した学習モデルで特定の物体を検出できるようにチャレンジしていきたいと思います。

 

それができるようになれば、例えば人探しをするPepperを作成することだって可能になります。

 


その他のPepperアプリ記事はこちらから

 

それではまた

あなたにオススメの記事

コメント

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

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

PAGE TOP