めざせスカウター! hololensによる特定個人の 顔認識アプリ制作とその課題
TRANSCRIPT
めざせスカウター!HoloLensによる特定個人の顔認識アプリ制作とその課題
ABC2017 SpringMR/VRトラック(4201 T5)16:30 ~ 16:55
東京工業大学 情報理工学院 数理計算科学系岩崎謙汰 高橋良希
目次
• 自己紹介
• 今回作りたかったモノ
• ARとMRの違い、MR開発の難しさ
• Basic idea
• アプリの全体像
• まとめ
自己紹介
• 東京工業大学 M2 岩崎謙汰
• 研究:SNSのグラフサンプリング
• 趣味:電車で30分プログラミング先週作ったゲーム3本
• Unityエンジニア/クライアント側担当
• AR/MR開発で楽しく暮らしたい
自己紹介
• 東京工業大学 M1 高橋良希
• 研究:分散機械学習
• 趣味:Caffeによる画像認識アプリ開発Raspberry Piアプリ開発
• サーバー側担当
今回作りたかったモノ
出典 wayohoo.net
スカウター
出典: http://sekkachi.blog.jp/archives/1039744030.html
相手の戦闘力などの情報をレンズ(?)のUI上に表示する
スカウター作りたい!と思い立つ。しかし…
出典: http://eiga.com/movie/83224/
オーグマーすげー!超かっこいい!作りたい!
めざせスカウター!HoloLensによる特定個人の顔認識アプリ制作とその課題
東京工業大学 情報理工学院 数理計算科学系岩崎謙汰 高橋良希
オーグマー!
ABC2017 SpringMR/VRトラック(4201 T5)16:30 ~ 16:55
人の頭上に名前を表示するアプリを制作する
目標
出典: http://www.matolabel.net/archives/68231429.html出典 http://anicul.jp/saogekijyouos/
人の頭上に名前を表示
リアルと関連づいた3D空間上に配置する
人の頭上に名前を表示するアプリを制作する
今回のポイント
3D空間上に配置する2DのUI上ではなく
ARとMR
今回こっち!
3D空間に仮想オブジェクトを配置する方法
• ARマーカーを使用する (Vuforiaなど)→ 人間の顔をマーカーにするのは難しい
• 仮想空間上に現実と同じ部屋&物のモデルを配置する→ めちゃくちゃ大変 & 汎用性が低い
•HoloLensのジェスチャーで配置する→ 実際コレが多い気がする、しかし今回は自動でやりたい
•GPSから場所を推定する→ 全ての人間/物体がGPSを持っているわけでは…
3D空間に仮想オブジェクトを配置する方法
• ARマーカーを使用する (Vuforiaなど)→ 人間の顔をマーカーにするのは難しい
• 仮想空間上に現実と同じ部屋&物のモデルを配置する→ めちゃくちゃ大変 & 汎用性が低い
•HoloLensのジェスチャーで配置する→ 実際コレが多い気がする、しかし自動でやりたい
•GPSから場所を推定する→ 全ての人間/物体がGPSを持っているわけでは…
意外と難しい!
なぜ難しい? HoloLensが見ている世界
2D (画像) 3D
解析のしやすさ 解析しやすい 当たり判定のみ
奥行きの判定 わかりにくい わかる
どちらも見ている人間どれ?
どれくらい遠くにいる?
噛み合せたい!
解決策: 顔の中心の座標に向けてRayを飛ばす
出典: http://tsubakit1.hateblo.jp/entry/2017/02/22/230100
画像解析でクラス名と顔の中心の座標を取得
Ex)クラス名: yoshiki顔の中心の標: (600,300)
顔の中心の座標へRayを飛ばす
この衝突点はyoshikiだとわかる
yoshiki
デモ
考察
•概ね、頭の上に移動しようとしている…?
•認識できるのは研究室メンバーのみだが、顔認識の精度は改善の余地あり。
•被写体が動くと頭の上から外れやすい。
•もっとなめらかに動かしたいが、これ以上早くしようとするとアプリが落ちる。
(現在 HTTP通信とSpatialMappingの更新頻度を1秒に1回にしている)
アプリの全体像
HoloLens 被写体
① Webカメラから画像を取得
サーバー
③ OpenCVで顔の中心の座標の取得
④ Deep Learningによる識別
⑥ 顔の中心の座標にRayを飛ばし、頭上の座標を推定
⑦ 3D空間上にラベルを表示
出典: http://tsubakit1.hateblo.jp/entry/2017/02/22/230100
yoshiki
HoloLensから画像をサーバーに送る
• HoloLens側は画像撮って送って返ってきた情報を載せるだけにしたい!
• WebCameraから画像を取得する
• HTTP通信で画像をサーバーに送る
↑普段のUnityの書き方と同じ
↓HoloLens特有設定
• Capabilitiesチェックを忘れない
学習用研究室メンバの画像収集学生室
枚数
研究室メンバ
205枚タグ付け
Raspberry Piによる自動収集
ん?少ない人がいるぞ?
バックエンド処理
人間がタグ付け
学習済みモデル
HTTP通信
画像出典:https://www.raspberrypi.org/, https://www.microsoft.com/ja-jp/hololens
学習アプリケーション
名前確率
Deep Learningによる識別
OpenCVによる顔検出(顔の中心座標計算)
座標Caffe
学習
205枚x6クラス
820枚x6クラス
Neural Network (Alex net)
Pre-trainedNetwork
回転・ぼかしによる増強
精度変化
まとめ
•人の頭の上に研究室メンバーの名前を表示するアプリを制作した。
•MR開発で大事なこと→リアル世界の認知と3D空間上の配置をどう組み立てるか
•ハードウェアの進歩が先か、エンジニアのアイデアが先か
•MR開発これからも楽しんでいきたいです!
補足説明
•今回使用した技術など
•HoloLens開発: Windows10, Unity5.6.0
•サーバーサイド: Python
•DeepLearnig: Caffe