AI coordinator

人工知能 & ロボティクス

サイト運営者

© AI coordinator All rights reserved.

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

SSD_KerasをPepperにも

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

そしてこの度、アトリエ秋葉原に通い続けたことで何度も実装に苦戦しながらもついに実装することができたので、その内容をソースコードと合わせて紹介したいと思います。

 

物体検出ができるロボットの未来

ロボットが物体を検出できるようになれば、その情報から次のアクションが起こせるようになります。

  1. 人を見つけたら声をかける
  2. 物体を発見したら連絡する
  3. 特定の状況下になったら、写真を撮影して送信する
  4. 特定の人物にお声がけする
  5. 物体や人の数を数える
  6. etc・・・

特にPepperのようなロボットであれば、手軽に様々なことにチャレンジできるようになります。

というかできることなんて無限にあります。

 

人間も目から大量の情報を取得し行動を起こしています。

これがロボットでもできるようになれば、ロボティクスの分野は今後も大きく飛躍していくのではないかと筆者は考えているわけです。

 

相手を記憶して声をかけるといった人としての最低限の挨拶が、いままでのロボットでは容易にできませんでした。

これがDeepLearningの発展のおかげで特定の人物を認識できるようになったわけです。

(もちろん発展途上ですし、まだまだ課題はありますが・・・)

 

これまでのロボットには、人はロボットに対して特に感情を持つことなんてほとんど無かったのではないかと思います。

でも、

「お久しぶりです。XXXさん」

なんていきなり声をかけられたら、少し嬉しいですよね。

そして、そんな風に声をかけられた人にとってそのロボットは、きっとただのロボットではなくなるのではないかと思います。

 

ほんのすこしでもロボットに対して感情が生まれれば、ロボットはひろく受け入れられる存在になっていくのではないかと思っています。

 

・・・・

 

さて、前置きはこれくらいにして、実装方法を簡単に紹介していきたい思います。

 

開発環境

MacBook Pro(13-inch,2016)

プロセッサ 2.9 GHz intel Core i5

ubuntu 16.4 LTS

python 2.7.12

tensorflow-1.0.0

keras 1.2.2

OpenCV 3.2.0

pynaoqi-python2.7-2.5.5.5-linux64

Pepper実機

 

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

ubuntuの方がOpenCVのインストール慣れていたからです。

というかOSXだとうまくインストールできなかったからです。。。誰か教えて。

anacondaが使えれば楽勝なのですが、Pepper用python SDKがanacondaではなぜかエラーになってしまうためanacondaが使えません。

というわけでubuntuを使用しました。

 

あと言うまでもないかもしれませんが、バーチャルペッパーでは確認できません。

実機が必要になりますので、実機を持っていない方はアトリエ秋葉原に行くか、地方の方は近くのアトリエサテライトを探してみてください。

 

Pepperのカメラ画像をPCに表示できるようにする

最初の難関はこれになります。

紹介されているサイトも筆者の知る限りでは2つしかありませんでした。

 

これができないと話になりません。

なぜならSSD_KerasはPC上で実行するからです。

つまりカメラ映像をPCに映し出せないと先に進まないわけですね。

 

Pepperのカメラ映像をリアルタイムにPCに表示するやり方については、以下の記事を参考にしてください。

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

 

学習モデルの準備

これが一番大変です。

今回はSSD_Kerasで既に公開されている学習モデルをそのまま使用しました。

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

 

もし上戸彩さんがPepperの前にいれば、以前作成した美人女優を検出できる学習モデルを使用したのですが・・・

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

 

ソースコード

ツギハギでソースコードを作成しています。

不要なコードも残っていると思います。

ソースコードを綺麗にしていないので読み難くてもご容赦ください。

SSD_Kerasのソースコードを参考にしています。

 

クラス名や学習モデルを指定すれば、上記ソースコードそのままで動くはずです。

無事に目標物が検出されれば、ひとまず成功です。

 

今後のPepperの可能性について

冒頭でも述べた通り、筆者としてはPepperが物体検出をできるようになったことで、次のアクションを容易に選択できるようになったと考えています。

そのため、検出した物体に合わせた次のアクションに繋げることができることで、アプリ作成の幅が大きく広がりを見せた気がします。

筆者も次のアクションを起こせるPepperを開発していきたいと思います。

 

興味がある方はぜひチャレンジして、色々なアプリケーションに組み込んでみてください。

 

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

 


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

 

それではまた。

関連記事

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

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

20178/8

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

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

201710/10

COZMOで楽しくプログラミング!親子で楽しむSTEM教育用ロボット

COZMOってなんだ? この記事はCOZMOを購入してから、コードラボを使ったプログラミング方法や、Pythonでプログラミングができると…

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

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

20174/25

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

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

20178/15

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

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

201710/9

Fine-tuningを使って少ない画像データから効率よく学習モデルを作成する方法

VGG16モデルを使ったFine-tuning 近々、人を認識させる学習モデルを真面目に開発する機会が発生したため、以前からチャレンジして…

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

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

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

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

20176/3

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

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

20177/15

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

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

ページ上部へ戻る