SlideShare a Scribd company logo
1 of 11
Download to read offline
1
HoloLens で OpenCV をどう使うか
レーザーポインター認識で試してみた
2020年7月29日
HoloLensミートアップ vol. 21
自己紹介
2
 角 詩織
 2007~2019 : ソフトウェア開発に従事
 2020 : アビストでHoloLens開発に携わる
 ヴァイテル フランツ
 2009~2016:PostDoc@NIIと千葉大学
 2016~:SE@アビスト
 2018:HoloLensに展示会で出会い ⇒ Wow!
3D CAD AI
AR/MR/XR
• 3Dモデル
• 組図
。。。
• 物体認識
• 空間理解
• 異常検知
。。。
データ アルゴリズム
ソリューション
2019年~
こんなのを作りました:レーザーポインターを認識し距離を表示
3
動画:https://youtu.be/zsmA6J5sJh4
レーザーポイ
ンターの光を
認識
(x,y,z)
座標に測定値
表示
なぜレーザーポインター認識?
4
 ハンドレイより
 正確なポインティングディバイス
 距離計、温度計など、正確の測定器に
よく利用される
 第三者にもわかる
 OpenCV を試してみるのにちょうど
いい例
。。。のように見えるが、
やってみると案外ややこしい!
定番の画像処理
+ ML
ライブラリー
レーザーポインター認識:三つの「壁」
5
① HoloLensカメラデータの取得 ③ レーザーポインター3D座標の特定
カメラ Intrincs,
Extrincs?
Raycast 精度?
② レーザーポインター認識
解像度?
性能?
距離?
ライブラリー?
API?
データ形式?
OpenCV (for Unity) (X,Y,Z)?
(x,y,z)?
① HoloLensカメラデータの取得
6
タスク ライブラリー
開発環境 Unity 2019.4 LTS
GUI MRTK 2.4.0
画像処理 OpenCV for Unity 2.3.9
HoloLensカメラへのアクセス HoloLensCameraStream for Unity
カメラ➞OpenCV画像形式への変換 HoloLens With OpenCVForUnity
Example
・HoloLensCameraStream と
・HoloLens With OpenCVForUnity Exampleは、
コンパイルすることができなかったため、
ソースコードを単純化し、ビルドできるように更新した。
ソースコード
https://github.com/abist-co-ltd/hololens-opencv-laserpointer
なぜか、Unity
2019.4 / MRTK 2.4.0
では動かない!
② レーザーポインター認識
7
ガイド光
(x,y) ?
カメラの画像の中でガイド光の2D 座標 (x,y) を求める
y
x
1080
0
1920
発見したいモノ:
 赤い
 小さい
 周りより明るい
 OpenCV の力を生かしてみよう!
r
x
x
x
0
r r
Laplace(r) =
Laplace(r) << 0
の画素を検知
周りより r が高い
⇒ Laplace(r) < 0
③ レーザーポインターの3D座標の特定
8
intrinsics extrinsics
知りたい
3D ⇒ 2D 投射:
ガイド光の
• 2D 座標 (u,v)
• カメラの姿勢(~extrinsics)
• 性質 (intrinsics):
• カメラの焦点距離
• カメラの工学的中心
• 歪みなど
から該当する (X,Y,Z) 座標を求める
認識した
(u,v) 座標
該当する
(X,Y,Z)?
Raycast
u
v
ちょっと数学が必要ではあるが、
大変な計算は、Windows.Media Runtime API に任せよう
OpenCV で認識した
レーザーポインター 座標
Locatable Camera
Windows Runtime API
• VideoMediaFrame
• MediaFrameReference
Windows Media: 右手座標系 Unity: 左手座標系
z
z
座標系が一致
しなくて
ややこしい!
処理の流
9
Windows Media Runtime API
Unity C# Wrapper
HoloLensCameraStream
OpenCV for Unity Utils OpenCV for Unity
レーザーポインター
認識
3D座標の特定
Unity Scripting API
Unity Scene Update
frame
Mat
変換
frame
Mat
レーザーポインター (u,v)
レーザーポインター
認識
カメラ
[intrinsics]
[extrinstics]
Physics.Raycast
camIntrinsics.UnprojectAtUnitDepth
レーザーポインター (X,Y,Z)
まとめ
10
 わかったこと
 HoloLensのカメラはすごい!
 ノイズ・色収差・モーションブラーが少ない
 3D座標の正確さ
 HoloLensのカメラ処理は大変!
 例・説明が少ない
 2K 画像に性能が足りない
 課題
 性能向上:
 HoloLensのGPUを利用できれば。。。
 リモート画像処理(Jetson Nano、スマートフォンなど)
 空間認識:
 Spatial Awareness 認識距離5mは、どう拡張するか
 ソースコード
https://github.com/abist-co-ltd/hololens-opencv-laserpointer
解像度 HD 2K
最大距離 ~6 m ~10 m
3D座標誤差 < 1 % < 1 %
FPS 28~30 3.5 ~ 8
HoloLens 2 レーザーポインター認識結果
是非お試し
ください。
レーザーポインター
認識チャレンジ
やってみませんか
関連情報
11
 Mixed Reality Locatable Camera
https://docs.microsoft.com/en-us/windows/mixed-reality/locatable-
camera
 別方法:リモートの画像処理:
Introduction to Using OpenCV With Unity
https://www.raywenderlich.com/5475-introduction-to-using-opencv-with-unity

More Related Content

Similar to HoloLens で レーザーポインター認識で試してみた

[MR05] クラウドと AI の力を組み合わせた Microsoft HoloLens のさらなる可能性
[MR05] クラウドと AI の力を組み合わせた Microsoft HoloLens のさらなる可能性[MR05] クラウドと AI の力を組み合わせた Microsoft HoloLens のさらなる可能性
[MR05] クラウドと AI の力を組み合わせた Microsoft HoloLens のさらなる可能性de:code 2017
 
VRとモーショントラッキング
VRとモーショントラッキングVRとモーショントラッキング
VRとモーショントラッキングYuichiro Iio
 
木曜サロン 体感型Mrバーチャルドローン.key
木曜サロン 体感型Mrバーチャルドローン.key木曜サロン 体感型Mrバーチャルドローン.key
木曜サロン 体感型Mrバーチャルドローン.key充彦 保田
 
20160902 unity勉強会発表資料
20160902 unity勉強会発表資料20160902 unity勉強会発表資料
20160902 unity勉強会発表資料WheetTweet
 
創作物による科学コミュニケーション・2018.11版
創作物による科学コミュニケーション・2018.11版創作物による科学コミュニケーション・2018.11版
創作物による科学コミュニケーション・2018.11版2co
 
20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)
20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)
20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)WheetTweet
 
Adobe XDをHoloLensで表示させて考えるいろいろな可能性
Adobe XDをHoloLensで表示させて考えるいろいろな可能性Adobe XDをHoloLensで表示させて考えるいろいろな可能性
Adobe XDをHoloLensで表示させて考えるいろいろな可能性Seigo Tanaka
 
クロスプラットフォーム開発としての「Mixed Reality Toolkit V2」が持つ可能性
クロスプラットフォーム開発としての「Mixed Reality Toolkit V2」が持つ可能性クロスプラットフォーム開発としての「Mixed Reality Toolkit V2」が持つ可能性
クロスプラットフォーム開発としての「Mixed Reality Toolkit V2」が持つ可能性Takahiro Miyaura
 
実録!HoloLens×AI×Azureアプリが開発できるまでの挫折と成功@Tokyo Jazug Night #12
実録!HoloLens×AI×Azureアプリが開発できるまでの挫折と成功@Tokyo Jazug Night #12実録!HoloLens×AI×Azureアプリが開発できるまでの挫折と成功@Tokyo Jazug Night #12
実録!HoloLens×AI×Azureアプリが開発できるまでの挫折と成功@Tokyo Jazug Night #12Tatsuya Sakai
 
赤外線センサーを使ったインタラクティブコンテンツ
赤外線センサーを使ったインタラクティブコンテンツ赤外線センサーを使ったインタラクティブコンテンツ
赤外線センサーを使ったインタラクティブコンテンツTakehisa Ikeda
 
だみとらの作り方 ~制作過程で気づいてしまったVRChat IKの残念な真実~
だみとらの作り方 ~制作過程で気づいてしまったVRChat IKの残念な真実~だみとらの作り方 ~制作過程で気づいてしまったVRChat IKの残念な真実~
だみとらの作り方 ~制作過程で気づいてしまったVRChat IKの残念な真実~Hirokazu Onomichi
 
覗いてみよう。with/afterコロナ時代に輝くMixedRealityの世界。
覗いてみよう。with/afterコロナ時代に輝くMixedRealityの世界。覗いてみよう。with/afterコロナ時代に輝くMixedRealityの世界。
覗いてみよう。with/afterコロナ時代に輝くMixedRealityの世界。Shingo Mori
 
創作物による科学コミュニケーション・2019.12版
創作物による科学コミュニケーション・2019.12版創作物による科学コミュニケーション・2019.12版
創作物による科学コミュニケーション・2019.12版2co
 
HoloLensStartdash_v1.5
HoloLensStartdash_v1.5HoloLensStartdash_v1.5
HoloLensStartdash_v1.5Naoaki Yamaji
 
HoloLensとCognitiveServicesの可能性2018
HoloLensとCognitiveServicesの可能性2018HoloLensとCognitiveServicesの可能性2018
HoloLensとCognitiveServicesの可能性2018Shingo Mori
 
ARマーカーを利用したHoloLens同士の位置合わせ
ARマーカーを利用したHoloLens同士の位置合わせARマーカーを利用したHoloLens同士の位置合わせ
ARマーカーを利用したHoloLens同士の位置合わせTakahiro Miyaura
 
HoloLensの空間音響の可能性を探る
HoloLensの空間音響の可能性を探るHoloLensの空間音響の可能性を探る
HoloLensの空間音響の可能性を探るAkira Hatsune
 
20171104 jaws festa_vr_公開
20171104 jaws festa_vr_公開20171104 jaws festa_vr_公開
20171104 jaws festa_vr_公開Hideki Ojima
 

Similar to HoloLens で レーザーポインター認識で試してみた (20)

[MR05] クラウドと AI の力を組み合わせた Microsoft HoloLens のさらなる可能性
[MR05] クラウドと AI の力を組み合わせた Microsoft HoloLens のさらなる可能性[MR05] クラウドと AI の力を組み合わせた Microsoft HoloLens のさらなる可能性
[MR05] クラウドと AI の力を組み合わせた Microsoft HoloLens のさらなる可能性
 
190210_DLLAB 医療×AIシンポジウム_Holoeyes株式会社 谷口直嗣氏
190210_DLLAB 医療×AIシンポジウム_Holoeyes株式会社 谷口直嗣氏190210_DLLAB 医療×AIシンポジウム_Holoeyes株式会社 谷口直嗣氏
190210_DLLAB 医療×AIシンポジウム_Holoeyes株式会社 谷口直嗣氏
 
VRとモーショントラッキング
VRとモーショントラッキングVRとモーショントラッキング
VRとモーショントラッキング
 
木曜サロン 体感型Mrバーチャルドローン.key
木曜サロン 体感型Mrバーチャルドローン.key木曜サロン 体感型Mrバーチャルドローン.key
木曜サロン 体感型Mrバーチャルドローン.key
 
20160902 unity勉強会発表資料
20160902 unity勉強会発表資料20160902 unity勉強会発表資料
20160902 unity勉強会発表資料
 
創作物による科学コミュニケーション・2018.11版
創作物による科学コミュニケーション・2018.11版創作物による科学コミュニケーション・2018.11版
創作物による科学コミュニケーション・2018.11版
 
20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)
20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)
20160723 unibook lt大会_発表資料(HoloLensのアプリ開発)
 
Adobe XDをHoloLensで表示させて考えるいろいろな可能性
Adobe XDをHoloLensで表示させて考えるいろいろな可能性Adobe XDをHoloLensで表示させて考えるいろいろな可能性
Adobe XDをHoloLensで表示させて考えるいろいろな可能性
 
クロスプラットフォーム開発としての「Mixed Reality Toolkit V2」が持つ可能性
クロスプラットフォーム開発としての「Mixed Reality Toolkit V2」が持つ可能性クロスプラットフォーム開発としての「Mixed Reality Toolkit V2」が持つ可能性
クロスプラットフォーム開発としての「Mixed Reality Toolkit V2」が持つ可能性
 
Immersal event 04/2021
Immersal event 04/2021Immersal event 04/2021
Immersal event 04/2021
 
実録!HoloLens×AI×Azureアプリが開発できるまでの挫折と成功@Tokyo Jazug Night #12
実録!HoloLens×AI×Azureアプリが開発できるまでの挫折と成功@Tokyo Jazug Night #12実録!HoloLens×AI×Azureアプリが開発できるまでの挫折と成功@Tokyo Jazug Night #12
実録!HoloLens×AI×Azureアプリが開発できるまでの挫折と成功@Tokyo Jazug Night #12
 
赤外線センサーを使ったインタラクティブコンテンツ
赤外線センサーを使ったインタラクティブコンテンツ赤外線センサーを使ったインタラクティブコンテンツ
赤外線センサーを使ったインタラクティブコンテンツ
 
だみとらの作り方 ~制作過程で気づいてしまったVRChat IKの残念な真実~
だみとらの作り方 ~制作過程で気づいてしまったVRChat IKの残念な真実~だみとらの作り方 ~制作過程で気づいてしまったVRChat IKの残念な真実~
だみとらの作り方 ~制作過程で気づいてしまったVRChat IKの残念な真実~
 
覗いてみよう。with/afterコロナ時代に輝くMixedRealityの世界。
覗いてみよう。with/afterコロナ時代に輝くMixedRealityの世界。覗いてみよう。with/afterコロナ時代に輝くMixedRealityの世界。
覗いてみよう。with/afterコロナ時代に輝くMixedRealityの世界。
 
創作物による科学コミュニケーション・2019.12版
創作物による科学コミュニケーション・2019.12版創作物による科学コミュニケーション・2019.12版
創作物による科学コミュニケーション・2019.12版
 
HoloLensStartdash_v1.5
HoloLensStartdash_v1.5HoloLensStartdash_v1.5
HoloLensStartdash_v1.5
 
HoloLensとCognitiveServicesの可能性2018
HoloLensとCognitiveServicesの可能性2018HoloLensとCognitiveServicesの可能性2018
HoloLensとCognitiveServicesの可能性2018
 
ARマーカーを利用したHoloLens同士の位置合わせ
ARマーカーを利用したHoloLens同士の位置合わせARマーカーを利用したHoloLens同士の位置合わせ
ARマーカーを利用したHoloLens同士の位置合わせ
 
HoloLensの空間音響の可能性を探る
HoloLensの空間音響の可能性を探るHoloLensの空間音響の可能性を探る
HoloLensの空間音響の可能性を探る
 
20171104 jaws festa_vr_公開
20171104 jaws festa_vr_公開20171104 jaws festa_vr_公開
20171104 jaws festa_vr_公開
 

HoloLens で レーザーポインター認識で試してみた

  • 1. 1 HoloLens で OpenCV をどう使うか レーザーポインター認識で試してみた 2020年7月29日 HoloLensミートアップ vol. 21
  • 2. 自己紹介 2  角 詩織  2007~2019 : ソフトウェア開発に従事  2020 : アビストでHoloLens開発に携わる  ヴァイテル フランツ  2009~2016:PostDoc@NIIと千葉大学  2016~:SE@アビスト  2018:HoloLensに展示会で出会い ⇒ Wow! 3D CAD AI AR/MR/XR • 3Dモデル • 組図 。。。 • 物体認識 • 空間理解 • 異常検知 。。。 データ アルゴリズム ソリューション 2019年~
  • 4. レーザーポイ ンターの光を 認識 (x,y,z) 座標に測定値 表示 なぜレーザーポインター認識? 4  ハンドレイより  正確なポインティングディバイス  距離計、温度計など、正確の測定器に よく利用される  第三者にもわかる  OpenCV を試してみるのにちょうど いい例 。。。のように見えるが、 やってみると案外ややこしい! 定番の画像処理 + ML ライブラリー
  • 5. レーザーポインター認識:三つの「壁」 5 ① HoloLensカメラデータの取得 ③ レーザーポインター3D座標の特定 カメラ Intrincs, Extrincs? Raycast 精度? ② レーザーポインター認識 解像度? 性能? 距離? ライブラリー? API? データ形式? OpenCV (for Unity) (X,Y,Z)? (x,y,z)?
  • 6. ① HoloLensカメラデータの取得 6 タスク ライブラリー 開発環境 Unity 2019.4 LTS GUI MRTK 2.4.0 画像処理 OpenCV for Unity 2.3.9 HoloLensカメラへのアクセス HoloLensCameraStream for Unity カメラ➞OpenCV画像形式への変換 HoloLens With OpenCVForUnity Example ・HoloLensCameraStream と ・HoloLens With OpenCVForUnity Exampleは、 コンパイルすることができなかったため、 ソースコードを単純化し、ビルドできるように更新した。 ソースコード https://github.com/abist-co-ltd/hololens-opencv-laserpointer なぜか、Unity 2019.4 / MRTK 2.4.0 では動かない!
  • 7. ② レーザーポインター認識 7 ガイド光 (x,y) ? カメラの画像の中でガイド光の2D 座標 (x,y) を求める y x 1080 0 1920 発見したいモノ:  赤い  小さい  周りより明るい  OpenCV の力を生かしてみよう! r x x x 0 r r Laplace(r) = Laplace(r) << 0 の画素を検知 周りより r が高い ⇒ Laplace(r) < 0
  • 8. ③ レーザーポインターの3D座標の特定 8 intrinsics extrinsics 知りたい 3D ⇒ 2D 投射: ガイド光の • 2D 座標 (u,v) • カメラの姿勢(~extrinsics) • 性質 (intrinsics): • カメラの焦点距離 • カメラの工学的中心 • 歪みなど から該当する (X,Y,Z) 座標を求める 認識した (u,v) 座標 該当する (X,Y,Z)? Raycast u v ちょっと数学が必要ではあるが、 大変な計算は、Windows.Media Runtime API に任せよう OpenCV で認識した レーザーポインター 座標 Locatable Camera Windows Runtime API • VideoMediaFrame • MediaFrameReference Windows Media: 右手座標系 Unity: 左手座標系 z z 座標系が一致 しなくて ややこしい!
  • 9. 処理の流 9 Windows Media Runtime API Unity C# Wrapper HoloLensCameraStream OpenCV for Unity Utils OpenCV for Unity レーザーポインター 認識 3D座標の特定 Unity Scripting API Unity Scene Update frame Mat 変換 frame Mat レーザーポインター (u,v) レーザーポインター 認識 カメラ [intrinsics] [extrinstics] Physics.Raycast camIntrinsics.UnprojectAtUnitDepth レーザーポインター (X,Y,Z)
  • 10. まとめ 10  わかったこと  HoloLensのカメラはすごい!  ノイズ・色収差・モーションブラーが少ない  3D座標の正確さ  HoloLensのカメラ処理は大変!  例・説明が少ない  2K 画像に性能が足りない  課題  性能向上:  HoloLensのGPUを利用できれば。。。  リモート画像処理(Jetson Nano、スマートフォンなど)  空間認識:  Spatial Awareness 認識距離5mは、どう拡張するか  ソースコード https://github.com/abist-co-ltd/hololens-opencv-laserpointer 解像度 HD 2K 最大距離 ~6 m ~10 m 3D座標誤差 < 1 % < 1 % FPS 28~30 3.5 ~ 8 HoloLens 2 レーザーポインター認識結果 是非お試し ください。 レーザーポインター 認識チャレンジ やってみませんか
  • 11. 関連情報 11  Mixed Reality Locatable Camera https://docs.microsoft.com/en-us/windows/mixed-reality/locatable- camera  別方法:リモートの画像処理: Introduction to Using OpenCV With Unity https://www.raywenderlich.com/5475-introduction-to-using-opencv-with-unity