めざせスカウター! hololensによる特定個人の 顔認識アプリ制作とその課題

Post on 22-Jan-2018

1.977 Views

Category:

Engineering

1 Downloads

Preview:

Click to see full reader

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

top related