ハードウェアには、Oculus RiftとCreative Gestureカメラを用いていて、それをThingiverseで公開されているマウンタを使ってつなげました。
ソフトウェアではGesture Cameraで撮影したRGBD画像からPerCライブラリの力を借りて手領域を抽出し、該当点群を少し回転させてOculus RiftのVR空間に重ねて表示しています。
背景にはTHETAのような正距円筒図で作成された360度画像を、Oculusの向きに合わせて展開して表示しています。
ソースコードはgithubに公開しています。
デモに利用した言語はC#で、Unityなどのフレームワークは利用していません。Livet、Oculus SDK、PerC、SharpDX、RiftWrapperを利用して開発を行いました。
3次元メッシュ再構成は、当初はOpenCVやMIConvexHullなどを使ってドロネー三角形分割で行おうと考えていたのですが…
結局実行速度の関係で諦めました。点群が密なことを前提にした独自の(手抜き)アルゴリズムでメッシュの再構成を行っています。その関係で、手のメッシュのエッジで粗い部分が目立ちます。これは今後の課題ですね。また、せっかく手の点群データを持っているので、ゆくゆくはVR内の物体と物理演算をするようなインタラクティブなデモを作ってみたいです。
ニコニコ超会議3の中で開催される、第6回ニコニコ学会βシンポジウムの野生の研究者ポスターセッションでデモを行う予定です。場所はMikujalusのきゅーこんさんの隣になるようです。
Oculus界隈で著名な方のお隣ということで少し緊張してますが… 自分のデモがうまく動くことを祈ってます。
0 件のコメント:
コメントを投稿