0と1の狭間に生きる日記

PDA/PCとか3DCGプログラムとかゲームとかバーチャルリアリティメカ、そんな感じで。

モバイル環境 NotePC: Vaio-SZ95/ VGN-UX91S/ Gigabyte M528
PDA: Axim x50V / iPAQ h4150
Watch: ABACUS WristPDA with PalmOS
PHS: Willcom 03
Digital Camera: EOS KissX2 / DMX-C1 Xacti
GPS: Holux M-241
Handy Warmer: HAKKIN WARMER 3R

2012-08-29 The backstage of date with Hatsune Miku――まだデートは大変です

 先月に動画初音ミクとデートしてみた」を公開してから、その反響に驚きつつも、

気力を使い果たしてしばらくぼーっとすごしていました(^^;; 中身の技術について聞かせてほしい、

という話もちらほらあったので、MOM12が終わり、DIVA fも発売される今、少し書き残しておこうかなと・・・

前回日記からもう2年近く経っているのに愕然としますねorz

写真や文章の捕捉などは逐次行っていきます


技術的に見た場合、今回のシステムを実現するのに手を動かした主な点は以下の部分になります

  1. 背景とCGを重ね合わせるためのリアルタイムな位置合わせ
  2. 環境によるCGの遮蔽を実現するための奥行き情報の付加
  3. 障害物(手)の検出によるバーチャル物体への干渉

 MMDモデルアニメーション表示については、以前の動画と同様ARTK_Alive!を使用させて頂きました。

オリジナル版では物理演算テクスチャ対応だったのですが、その後更新が行われたARTK_MMDの

アップデートの取り込みや、自前で勢いに任せて色々と手を入れた結果、自分でもどこをどこまで

いじったのか分からないくらい魔改造になってしまいました・・・

 なお、今回の動画に全く関係ないのですが、OpenNI準拠スケルトン位置情報を取り込む

ことで、いわゆる「俺がミクだ!」的なモーショントラッキング機能も実装しています(参照)。

このARTK_Alive!の更新分だけでも公開したいと思っているのですが、なかなかデバッグ

ライブラリ化のパワーが足りてなくて実現できていません。ごめんなさいorz

 とりあえず、主に手を動かした部分についてちょっとずつ紹介していきます


1.リアルタイム位置合わせ

f:id:Alcyone:20120730030558j:image:w360

青い点が使用点、黄色い点が外れ点です


動画内でも紹介している通り、位置あわせ技術自体はPTAMとかKinect Fusion(kinfu)等、

非常に高性能な実装が既に存在します。今回敢えて自前で作った理由としては、建前上

 というものです。何だかんだといいつつ、本音では車輪の再発明なのは承知の上で、出来合いの

ライブラリを使うだけでアルゴリズムを知った気になるのはどうなのか?というのが最大の理由でした。


 基本的な動作アルゴリズムはICP(Iterative Closest Point)に準じる手法で、ベースはICPの中でも

古典ともいえるのArunらの手法をまず実装しました。ICPにおける最大の課題として、対応点の誤り

による位置、姿勢破綻が挙げられますが、これを防ぐために対応点はRGB画像特徴点から抽出しています

バージョンでは固有値でコーナー検出し、LK法でトラッキングした特徴点に対応する奥行き点同士を対応

させています。量より質、というストラテジーですね。その反面、テクスチャレスなシーンへのロバスト性には

限界があります(とはいえ、kinfuも計測領域が少なすぎたり、背景が平坦な場合破綻します)。この部分は、

高速化も含めて改善の余地がある部分ですね。真面目にやるならば、再初期化機能考慮してWasington大学のHenryらの手法

で行われているようなSIFTやSURFで行うことも考えられますが、なにぶん重いのが難点ですね・・・


 その他、床面検出・補正や、ドリフト防止の簡易的な三次元位置マッピングなど、細かい工夫を加えた上で

組み込んでいますポイントとしては、自分バーチャルキャラクターの相対的な位置関係の表現に位置あわせ

を使う場合は、多少のずれを気にするよりも、ウォークスルーさせて破綻さえしなければ大丈夫、と開き直った

ことです。精密さを要求する場合の位置合わせからすると論外ですが、用途次第ではこういった実装もありなのかな、

言い訳してみます(^^;;


 なお、動画ではカクカクしているという指摘を多数頂いているのですが、これは動画キャプチャソフトの介在が

最大の問題で、実は現状の最適化していない実装でも30fpsの維持は実現できています(1フレーム25ms程度で処理)。

なお、高速化を頑張る体力的余裕がなかったため、動作環境マウスコンピュータ製のNEXTGEAR i300(Core i7

3612QM 2.1〜3.1GHz)という軽自動車V8エンジンを積んだようなモバイルノートPCを使用しています

一応、Core2Duo世代のノートPCでも2.5GHz位あれば30fpsは出せるはず・・・です(自信無し)。


2.奥行き情報の付加

 これは簡単ですね。OpenNIによるRGB画像、Depth画像の重ね合わせ機能を用いて、Depth値をRGB画像上に重ね描き

した上でCGを描画しています。Xtionの性能に依存している部分ですが、エッジ部分が若干ずれたり、荒れていたり

するのが現状の課題です。


3.バーチャル物体への干渉

 これも、Xtionによる奥行き検出で、一定以内の距離範囲内にある障害物を検出し、この障害物位置を球体と

仮定してBullet Physicsに反映させています。球体の仮定はやや乱暴に過ぎると思いますが、思いのほか自然

干渉できます。それよりも、Xtionの最小計測距離のほうが課題です。動画では思いっきり手を伸ばしていますが、

ああしないと手を検出できません。YUV変換による肌色抽出も試みたのですが、XtionのRGBカメラの性能の低さに

挫折しました・・・。25000円もしたのに、その辺のWebカメラにも画質で劣るのは凹みますorz


 以上のように、その道の人から見ればなあんだ、と思われる位に特別な事は何もしていません。この動画

一番の貢献としては、一人でもこの位のARシステムが作れる位、世の中の技術的素地が出来てきているという事に

気づいてもらえた、という事ではないかと思います。又、MMDの関連ライブラリモデル、モーションなどの揃い具合は、

正直言って日本が一番恵まれた環境にいるのではないかと感じました。リソースを使用させていただいた皆さん、

改めてありがとうございました!


 まだまだ、どんな環境でも動作するほどロバストではないし、やりたい事とやれる事のギャップは埋まって

いないと感じでいます。ですが、要素技術がいつの間にか進歩するか、あるいは自分で頑張るか、いずれにせよ

この辺は時間の問題だと思います


 今後の展開についてはまだまだ未定ですが、皆さんに何か感じてもらえるものを作っていければと思っています

あと最後に、事後報告になって申し訳ありませんが、Make: Ogaki Meeting 2012にて本システムの展示をさせてもらいました。

見に来て頂いた方々、どうもありがとうございました!

アンドルーアンドルー 2012/09/29 08:12 私の名前は私がアメリカに住んでいると私はあなたが仮想の女の子を作成方法を学習したいと思いアンドリューです。
あなたは私と一緒にあなたの知識を共有するのを厭わない場合はandrewgaupp91@gmail.comで私にメールしてください

My name is Andrew I live in America and I would like to learn how you created the virtual girl.
If you are willing to share your knowledge with me please email me at andrewgaupp91@gmail.com

andrewandrew 2012/09/29 08:22 I can't speak or write Japaneses very well so please forgive me if that last comment doesn't make any sense. I hope you know how to read English because I really want to know how you created the virtual girl. If your willing to tell me how you created the virtual girl please email me at andrewgaupp91@gmail.com

Jo Fuertes-KnightJo Fuertes-Knight 2014/10/10 23:21 Hey, I'd really love to use this video in a documentary I'm making for VICE.com all about love in the digital age, but I need your permission. If you could please email me at jo.fuertes-knight@vice.com to explain further and confirm usage of this video, that'd be great!

Thank you

Jo

Jo Fuertes-KnightJo Fuertes-Knight 2014/10/10 23:21 Hey, I'd really love to use this video in a documentary I'm making for VICE.com all about love in the digital age, but I need your permission. If you could please email me at jo.fuertes-knight@vice.com to explain further and confirm usage of this video, that'd be great!

Thank you

Jo

Dat LieuDat Lieu 2015/06/01 10:57 Hi, I am really interested with your work and i'm working with unity + AR(use Vuforia) too, but just begining. Do you mind if i ask you for share your experience about how to work with AR environment, because i just can work with AR marker? If you are willing to share your knowledge with me please email me at lieutandat@gmail.com
Looking forward to hearing from you soon.

2010-11-26 Make: Tokyo Meeting 06お疲れ様でした!

[][][]来場ありがとうございました

終わって一週間も経って今更感満載ですが、来ていただいた皆様、本当にありがとうございました

リアルで作ったものを展示できる場を提供して頂いて、Make:の方々にも感謝仕切りです。ニコニコ動画Youtubeのように、動画という形で公開できるのもそうですが、個々人がこうして色んな形で情報発信できるいい時代になったものですね。


展示では、位置合わせをもっと完璧にやっておくべきだったと反省しましたorz Wiiリモコンのヘッドトラッキング、Qinect、それぞれ単体では想定どおりに動いていただけに、調整が甘かったのが悔やまれます・・・。ちなみに、Qinectは可視光を使っている関係で、明るい場での使用には限界があるのですが、今回は下から照射する(つまり、手の裏は必ず影で暗くなる)ことで計測できるよう工夫していました。種を明かせば単純な話ですが、デモの構成を考えるときには、足りない頭で相当悩みぬいてようやく決まりました(^^;;; お蔭様で好評のデモとなったようで、考えた甲斐もあったかなと。これにてQinectも無事に成仏させられそうです。3次元形状計測そのものの用途では、まだ使える環境もありそうですが・・・。


#今後は例のごとくどうするか未定ですが、また面白い物を作れたらいいかなと。MTM06と同時にKinectも発売されたこと

#でもあるし、これからは深度センサーをどう作るか?ではなく、どう使うか?が問われていきそうですね。

2010-11-14 告知:Make: Tokyo Meeting 06に出展します!!

[][][]「Qinect(Project Qatal改)」出展してみます

もう開催まで一週間もありませんが、再びオライリー社が主催するものづくりイベントMake: Tokyo Meeting 06」への出展を「あるしおうね」名義で行います。今回も同じセンサー「Qinect」を使用しますが、見せ方は全くの別物になっています。


D


例のごとくコピペ+αですが詳細は以下のとおりです。


日時: 2010年11月20日(土)12:00-18:00、21日(日)10:00-17:00

会場: 東京工業大学 大岡山キャンパス東京都目黒区大岡山2-12-1)

※Qinectはメイン会場の体育館ニコニコ技術部関連)での展示になります。

交通東急大井町線目黒線大岡山駅」徒歩1分

参加費: 無料

主催株式会社オライリー・ジャパン

共催: 東京工業大学多摩美術大学 情報デザイン学科


前回と打って変わって明るい場所での展示になるため、ちょっと不安がありますが、原理的にちょっとした対策を施しているので、多分大丈夫だと思います(適当

Qinect本体そのものは、ちょっとした精度向上程度の改良に留まっていますが、今回初音ミクジャンケンができるように、テンプレートマッチングを実装しました。ただ、手の回転にかなり弱いので、あまり精度はよくないですorz


#Kinectは展示当日に発売されますが、こういう物も将来発売されるかも、という期待を持ちつつ

#展示を見てもらえると幸いです(^^

#もちろん、今回もコアな技術話のほうも歓迎です!ジャンケン認識適当すぎて申し訳ないレベルですが・・・

[][][]「Qinect」を作ってみて気がついたこと

告知とは違うので、ちょっと別トピックにしてみました。純粋技術的な話なので、興味のない方は読み飛ばし推奨です(^^;; 動画の中で紹介している「Milo and Kate」ですが、Qinectよろしくあのデモを実現するには、シンプルかつ大きな問題として


  • 人が近いと認識できないんじゃないか?

ということです。Qinectでは、センサーを上向きに設置して特定用途専用にしてしまいましたが、Kinectは横向き設置のため、どうしてもある一定以上(最低1m〜?)の距離を置く必要があります。これはKinect視野角の限界によるもので、確かPrimeSense社のリファレンス仕様から読んだ限りでは57°だったと記憶しています。


二つカメラを使うようなステレオ計測の場合、基本的には広視野角のカメラを使えば、歪みによる精度劣化はあるものの、ある程度広い視野を見ることもできます。が、Kinect赤外線投影方式の場合、対象上に投影されたパターン撮影する必要があるため、角度が付けば付くほど暗い光しか返ってこないことになります(撮影対象は理想的なRambert反射では「ない」ため)。つまり、現状のKinectのような方式そのままの場合撮影範囲をより広く取るのは容易ではありません。ただし、もし自分が理解しているKinectの深度センサー原理が正しければ、Kinectを多重使用して解決することはできそうです(同じ箇所に二つ以上赤外線を当てても計測できる・・・はず)。

Kinectは、コストパフォーマンスから見て最良の妥協点を探って作られたもの(実際に三次元計測の確実性は半端無く高い)とは思いますが、以前の日記で指摘したように、日本の平均的住居では狭すぎる、という問題が出てきそうですね。どういう構成なら制限を改良できるか?というのを考えるのも面白そうです。

ありあり 2010/11/26 11:44 MTM06お疲れさまでした。
長話をさせて頂きまして、ありがとうございました。
#体格が邪魔で通路を塞いじゃってたかも。。。懺悔。
コントローラなしで操作できるのって、すごく未来を感じられました。
キネクトも販売されるようになりましたが、ちょっと日本では設置が難しいようで残念です。もっと視野角が広角になればと切に願います。
次は、ステレオ3D&ARでミク展示とかいかがでしょうか?
(勝手にもりあがってすみません。)
でわでわ〜。

AlcyoneAlcyone 2010/11/27 01:54 展示を見に来ていただき、ありがとうございました〜。Kinectは、必ずしも全身トラッキングだけが用途ではないと思うので、ソフトを作る側の工夫も必要ですね。
デモについては、ARへの拡張も考えてます(=ARtoolkitを使う、という意味に限らず)。立体視は、対応モニターを手に入れるか、モニターを(手工作で)対応させるかになりますが、後者だと一大作業になりそうですorz

2010-11-09 こつこつ進行中

[][][]ニュースKinect早くもハック成功

先日11/4に、北米で先行発売されたKinectですが、もう解析されているのですね・・・。びっくりしました。

既に、深度センサーの計測値まで取得できているようで。人体の関節モデル情報も含めたユーザーサイドのドライバリリースされるのも、時間の問題のようです。

D

自分もいじってみたかったのですが、あまりに2週間+αという時間は長すぎますね。日本にまだ入っていないことが悔やまれますorz

[][]MTM06準備中

Make:Tokyo Meeting06(MTM06)に向けて、せかせかと「Qinect」ことProject Qatal改のデモシステムを作り続けている今日この頃です。ほぼ今回のデモは完成させることができました。あとは調整を残すのみというところです。まだ全体完成版の動画はできていないのですが、部分部分については、ちょこまかと簡単に動画をアップしてみました。

D

D

この辺を使いながら、某バーチャルキャラクターを、画面からほんの少しだけ出てきてもらうデモを公開する予定です。詳細は次回を括目して待て?(疑問系)

#Kinectユーザーサイドドライバで自由に使えるようになれば、性能的に不十分なQinectもいよいよお役御免ですね。

#三度目の今回が、このシステム最後の晴れ舞台になりそうです。せめて目一杯の性能が出せるよう頑張ります。

2010-09-09 再び時は経ち

社会人になってからというもの、ふと気がつくと平気で数ヶ月経ってますねorz

引越しもあったりでばたばたしていて、日記存在すら忘れていました(駄目人間)。


Project Natal改め、Kinectも11/20に発売決定したようで。

日々忙しいのは相変わらずですが、せっかくなので、発売までにまた何かしてみようかなと決意表明してみます(^^;;

Click Here!