修士論文の和文要旨 研究科 専攻大学院情報理工学研究科情報 通信工学専攻博士前期課程 氏名春田英和学籍番号 1231074 論文題目 さわれる拡張現実感システムの検討 要 旨 本研究では,AR(Augmented Reality,AR) と様々な入力デバイスを用いた 3DCG モデリングシステムを実装し, さらに物理エンジンと組み合わせることで, さわれる拡張現実感 (AR) システムの有効性を確認した. 拡張現実感は実世界の映像に CG モデルや情報を重畳表示し, 現実世界を拡張したり, 情報を付加する技術である. 近年ではスマートフォンのように, カメラとディスプレイが一体となっている携帯端末が多く普及している為 AR アプリケーションを手軽に体験できる. しかしほとんどの AR アプリでは, ユーザーのできることが見ることだけにとどまっている. そこで AR を使ったアプリの幅を広げるために新しいインタラクションを追加する意義があると考え, 様々なインタラクションの中で " さわる " という操作に着目した. 本研究では, 目的として掲げた " 見るだけでなくさわれる AR" を実現するために, まず CG モデルの全ての頂点を管理する必要がある 3DCG モデリングシステムを実装し, 評価実験を行った. また, 実装するにあたって, 手の指を使った直感的な入力が可能である 2 つのデバイスを使用した.1つ目が KINECT で,2つ目が LEAP motion である. さらに, さわれる AR を使った 1 例として物理エンジンを組み合わせることで, 手の動きによって仮想的な壁を破壊するアプリケーションを実装した. 実験の結果, 両デバイスにおいて CG モデルの形状変形を確認できた. 比較すると,LEAP motion を使用したシステムの方が直感的な操作をできる感覚があった. しかし, 両デバイスを使用した場合ともに, 具体的な物体の形状モデリングが可能と言えるクオリティではなかった. 一方, 物理エンジンを使用したシステムでは拳がまるで CG モデルの壁を破壊するような感覚を得られた. 今回開発した 3DCG モデリングシステムには, 精度,AR の表示に関する問題など複数の研究課題が残っている. 物理エンジンを使用したシステムでは, 物理エンジンの AR との親和性の高さを確認すると共に今後様々な用途に応用できる可能性を見出した.
25 1231074
(Augmented Reality AR) 3DCG CG AR AR AR AR CG 3DCG 2 KINECT LEAP motion AR 1 CG LEAP motion CG 3DCG AR AR
1 1 3 1.1................................. 3 1.2................................. 3 1.3................................. 4 2 5 2.1........................ 5 2.2 ARToolKit.............................. 7 2.2.1...................... 8 3 9 3.1 3DCG..................... 9 3.2 3......................... 9 3.2.1 PHANTOM......................... 10 3.2.2.............. 11 3.2.3 KINECT........................... 14 3.2.4 LEAP motion........................ 15 3.3 :AR-Jig.............. 16 3.3.1............................. 16 3.3.2 AR................. 16 3.4...................... 18 4 3DCG 19 4.1 OpenGL CG........ 19 4.1.1............................. 19 4.1.2............................. 21 4.1.3.................. 21 4.1.4....... 22 4.2 KINECT................... 22 4.2.1......................... 22 4.2.2...................... 23 4.2.3.................. 25 4.2.4 AR..................... 28 4.3 LEAP..................... 37
2 4.3.1......................... 37 4.3.2....................... 38 4.3.3.................. 39 4.3.4 AR..................... 39 5 40 5.1............................ 40 5.2 PhysX................................ 40 5.3 PhysX...................... 41 5.3.1....................... 41 5.3.2.................. 42 6 43 6.1 3DCG..................... 43 6.1.1........................... 43 6.1.2 KINECT............... 43 6.1.3 LEAP motion............ 45 6.1.4.................... 46 6.2................. 46 6.3................................. 48 6.3.1.................. 48 6.3.2 AR.................... 48 6.3.3 AR................ 49 6.3.4............. 49 7 50 7.1................... 50 7.2............................. 51 7.2.1....................... 51 7.2.2 CG...................... 51
3 1 1.1 (CG) HMD (Head Mounted Display) (Augmented Reality AR) [1] AR CG AR CG AR 3 1.2 AR CG 3 AR 3DCG
1 4 1.3 1 AR AR 2 AR 3 3 AR 4 3DCG 3DCG AR 5 PhysX AR 6 3DCG AR 7
5 2 AR 2.1 (AR) CG AR 3DS( 2.1)[2] PlayStation Vita( 2.2)[3] AR 2.1: 3DS AR : [2]
2 6 2.2: PlayStationVita AR :SCE[3] CG AR 3 (1) CG (2) (3) CG 2
2 7 CG 2.2 ARToolKit AR AR 1 ARToolKit[4] AR ARToolKit C
2 8 2.2.1 ARToolKit [5] [X C Y C Z C 1] T [X m Y m Z m 1] T 2.3 2.4 2.3 4 4 3 3 1 2.3: 2.4: [6]
9 3 3 AR 3.1 3DCG 3DCG 3D 3DCG 3DCG 3DCG 3DCG 3 2 3DCG 3.2 3 x-y z x-y-z 3 3
3 10 3.2.1 PHANTOM 3 SensAble PHANTOM[7] 3.1 PHANTOM [8] [9][10] PHAN- TOM 1 3.1: PHANTOM
3 11 3.2.2 [11] ( 3.2) 3.2: ( [11] 1)
3 12 CG 40 3D 3.3 3.4 3.3: ( [11] 11) 3.4: ( [11] 12)
3 13 3.5 3DCG 3.6 3.5: ( [11] 13) 3.6: 3DCG ( [11] 14)
3 14 3.2.3 KINECT 3 KINECT[12] KINECT Xbox360 KINECT 3.7 RGB LED KINECT PC PC KINECT KINECT KINECT SDK 3.7: KINECT
3 15 KINECT KINECT 3.2.4 LEAP motion LEAP motion[13] 2012 LEAP 3 1/100mm 3 60fps 214fps 120fps KINECT 30fps LEAP LEAP 2 LED LED 2 3D 3.8 110 LEAP motion SDK 3 3 LEAP motion KINECT API 3.8: LEAP Motion [14]
3 16 3.3 :AR-Jig 3 [15] 3.3.1 PHANTOM 3 1 2 3 ( 3.9 3.10) 3.3.2 AR AR AR 3.9: AR-Jig ( [15] 1)
3 17 3.10: AR-Jig ( [15] 2) HMD(Head Mounted Display) AR 2 AR 3
3 18 3.4 CG 3 AR 3DCG AR 1 1 AR AR 3DCG
19 4 3DCG 3DCG 3DCG CG AR 4.1 OpenGL CG 4.1.1 CG OpenGL GLUT CG 1 1 1 1 4.1 2 4.2
4 3DCG 20 4.1: (1) 4.2: (2)
4 3DCG 21 4.1.2 GLUT 4.1.3 OpenGL 1. 2. 3. 4. 5. 2 4 6. 7. 8. 9. 5 10. 11. 1
4 3DCG 22 4.1.4 3 3 AR 4.2 KINECT 3 KINECT KINECT 4.2.1 KINECT 4.3 KINECT 2 KINECT web 4.3: (KINECT )
4 3DCG 23 4.2.2 KINECT ( ) KINECT KINECT Jagdish L. Raheja [16] KINECT 640 480 800mm 4000mm 1. 2. 3 3. xy 4. KINECT 5. 3 3 10cm ( 4.4 ) 6. 5 7. 6 2cm 8. 5 6 7 ( 4.5 )
4 3DCG 24 4.4: 4.5:
4 3DCG 25 4.2.3 KINECT KINECT 4.6 1 4.7 ( 4.7 ) 4.6: 4.7:
4 3DCG 26 4.8: x 4.8 y z x ( 4.8 ) KINECT 4.9
4 3DCG 27 4.9: 4.9a) 4.9b) 1 4.9c) 1 1 1 1 4.7
4 3DCG 28 4.2.4 AR AR KINECT AR KINECT KINECT AR AR AR KINECT KINECT AR 4.10 KINECT 4.11 AR 4.10: KINECT [12] 4.11: AR [4]
4 3DCG 29 KINECT AR AR AR AR KINECT AR KINECT 4.12 AR AR KINECT 4.12:
4 3DCG 30 KNIECT 4.13( [17] ) LED 4.13 KINECT x d (x,y) d[x][y] x y 4.13: KINECT (1)( [17] )
4 3DCG 31 4.14: KINECT (2)( [17] ) 4.14 2 x x x x[0] 4.14 x LED 2 x y
4 3DCG 32 4.15: KINECT (3)( [17] ) KINECT x( y) d KINECT 57 47 640 480 i,j 4.15 x x y d tan(57 2) 320(640 2) i (4.1) d tan(43 2) 240(240 2) j (4.2) 2
4 3DCG 33 AR CG CG CG AR KINECT CG CG CG 180 CG KINECT CG AR CG 1 2 AR 2.3 4.16 4.16: ( [5] 6-9)
4 3DCG 34 2 2 (x c y c z c ) 1 (x 1 y 1 z 1 ) 2 (x 2 y 2 z 2 ) T 1 T 2 x c y c z c = T 1 1 T 1 x 1 y 1 z 1 1 x 1 y 1 z 1 1 x 1 y 1 z 1 1, x c = T 2 = T 1 y c z c = T 2 1 x 2 y 2 z 2 1 1 T 2 2.3 4 4 z ( ) CG x 2 y 2 z 2 1 x 2 y 2 z 2 1
4 3DCG 35 4.17: 4.18: AR 1 4.17 4.18 4.18 A 5 A B B C ARToolKit C B B
4 3DCG 36 4.19: CG A B A CG A B B A A A CG 4.19 6
4 3DCG 37 4.3 LEAP 3 LEAP motion LEAP motion SDK KINECT 4.3.1 LEAP motion KINECT LEAP motion 4.20 4.20: (LEAP )
4 3DCG 38 4.3.2 LEAP motion 3.8 API LEAP motion 1. 2. 3. 4. 3 5. 2 4 KINECT API KINECT LEAP motion LEAP motion ID 5 1. 5 ID 2. 3. ID ID 4. 5. 6. 2 5 5 3 LEAP motion
第4章 4.3.3 3DCG モデリングシステムの開発 39 ソフトウェアによる補正 LEAP motion は KINECT を遥かに上回る速度で検出できる そのため 1 フ レームで移動する指の間隔が短くなるのでソフトウェアによる補正は必要ない と判断し 検出した指の座標をそのままユーザー操作の球体の座標への入力値 とした 4.3.4 AR マーカーの構成 LEAP motion を使用した場合の AR マーカーの構成は KINECT とは異なる LEAP motion は KINECT のようにマーカーと離れる必要はないので KINECT のようにデバイス自身がマーカーを認識している必要はなくなる 以上のこと より図 4.21 のようなマーカー構成となった 図 4.21: AR マーカーの構成 (LEAP motion 使用時)
40 5 PhysX PhysX AR AR CG AR AR 3DCG 5.1 ( ) 5.2 PhysX PhysX NVIDIA C OpenGL GLUT
5 41 5.3 PhysX PhysX AR 3DCG PhysX CG 5.3.1 CG PhysX 5.1 PhysX ( ) ( ) 5.1:
5 42 5.3.2 PhysX CG 3DCG PhysX getlinearvelocity get x y z puttosleep setlinearvelocity addforce puttosleep 1 puttosleep
43 6 3DCG AR 6.1 3DCG 3 3DCG CG 6.1.1 OS Windows7 Professional 64bit Intel(R) Core(TM)i7 CPU 920 (RAM) 4GB(2GB 2) GPU NVIDIA Quadro 2000D KINECT for Windows LEAP motion 6.1.2 KINECT KINECT CG 6.1 6.2
第6章 システムの評価 図 6.1: KINECT を使用した場合の初期状態 図 6.2: KINECT を使用した場合のモデリング後 44
6 45 6.1.3 LEAP motion LEAP CG 6.3 6.4 6.3: LEAP motion 6.4: LEAP motion
6 46 6.1: KINECT LEAP motion KINECT LEAP motion 12.5fps 23.5fps 1.3mm 2.2mm 1/100mm 1.2m 0.4m 0.5m 0.5m 6.1.4 LEAP motion KINECT 4.14 1mm KINECT 80cm 1m 20cm 6.2 PhysX AR 6.5 6.6 KINECT LEAP motion LEAP motion 1 51.5 19.5fps
第6章 システムの評価 47 図 6.5: 入力前 図 6.6: 手を動かした後
6 48 6.3 6.3.1 LEAP motion LEAP motion LEAP motion KINECT 2 KINECT fps KINECT 12.5fps LEAP motion 23.5fps fps AR 23fps LEAP motion KINECT LEAP motion ID ID ON/OFF 6.3.2 AR AR CG ( ) 3 AR CG AR
6 49 6.3.3 AR AR AR AR AR CG 6.3.4 CG CG AR
50 7 7.1 3DCG AR 3 AR AR AR KINECT AR CG CG KINECT CG CG KINECT AR LEAP motion KINECT LEAP motion CG LEAP motion 2 AR AR CG AR CG AR
7 51 7.2 7.2.1 CG LEAP motion 7.2.2 CG AR CG HMD CG AR AR
52
53 [1] T. Azuma: A Survey of Augmented Reality. Presence, Vol. 6, No.4, pp.355-385, 1987 [2], 3DS, http://www.nintendo.co.jp/3ds/ [3] SonyComputerEntertainment,PlayStationVita, http://www.jp.playstation.com/psvita/ [4], ARToolKit,. PRMU, 01-232, pp79-86, 2002 [5], ARToolKit,, 2008 [6] http://kougaku-navi.net/artoolkit/ [7] Thomas H. Massie and J. K. Salisbury: The PHANToM Haptic Interface: A Device for Probing Virtual Objects; Proc. ASME Winter Annual Meeting, Symposium on Haptic Interfaces for Virtual Environment and Teleoperator Systems, pp. 295-302 (1994) [8], FreeForm, http://www.nihonbinary.co.jp/ [9] A. D. Gregory, S. A. Ehman, and M. C. Lin, intouch: Interactive Multiresolution Modeling and 3D Painting with a Haptic Interface, In Proceedings of the IEEE Virtual Reality 2000 Conference, pp. 45-49, 2000. [10] M. Foskey, M. A. Otaduy, and M. C. Lin, ArtNova: touch-enabled 3D model design, ACM SIGGRAPH 2005 Courses, 2005. [11],,,,, 16(3), 459-468, 2011-09-30 [12] Microsoft,KINECT,http://www.xbox.com/ja-JP/kinect/ [13] LEAP motion, LEAP motion, https://www.leapmotion.com/
54 [14] LEAP :http://www.slideshare.net/kaorun55/leap-motion- 26477804 [15], : 3 13(2), 151-160, 2008-06-30 [16] Jagdish L. Raheja, Ankit Chaudhary, Kunal Singal Tracking of Fingertips and Centers of Palm Using KINECT, CIMSIM 11 Proceedings of the 2011 Third International Conference on, pp 248-252, 2011 [17] NeaReal http://neareal.net/