real famliy – Real Baby – Real Family http://blog.shirai.la/baby IVRC2016にてLavai Virtual Awardを受賞したチーム「明るい家族計画」です。2人の体験者から未来の赤ちゃんの顔を推定し、リアルフェイス育児体験ができるコンテンツ「Real baby / Real family」を制作しています。 Wed, 28 Feb 2018 23:25:00 +0000 ja hourly 1 https://wordpress.org/?v=5.1.6 dlibでopencvを使いたい http://blog.shirai.la/baby/opencv_and_dlib/ Fri, 21 Oct 2016 12:45:14 +0000 http://blog.shirai.la/baby/?p=171 dlibをopencvと一緒に使うとき便利なメソッドがあったので、備忘録作成。

 

dlibで処理を行った後、使い慣れたopencvにデータを渡したいなーということがあると思います。

そのようなときはこうします。

1 dlibのデータをopencvに渡したいとき。

dlibで画像を表すクラスはdlib::array2d<dlib::bgr_pixel>です。

それをMatクラスに渡すには「dlib/opencv.h」をインクルードして、

cv::Mat cvimage = dlib::toMat(dlibimage);

みたいに書きます。

2 opencvのデータをdlibに渡したいとき。

Matクラスをarray2d<bgr_pixel>に渡すには以下のようにします。

「dlib/opencv.h」をインクルードして、

dlib::array2d<dlib::bgr_pixel> dlibimage;

assign_image(dlibimage, cv_image<bgr_pixel>(cvimage));

みたいに書きます。

以上備忘録

]]>
HTC Vive ゼロレイテンシー通信!? http://blog.shirai.la/baby/baby-project_07/ Sat, 17 Sep 2016 16:54:29 +0000 http://blog.shirai.la/baby/?p=66 こんにちは。
明るい家族計画の望月です。

HTC ViveのUDP通信に成功しました。

初期の段階では、UNETを使うのかUDPを使うのか決まらず、どちらも試してみました。

UNETを試した際に、SteamVR pluginのGameObjectをそのまま生成すると、1つのシーンで2つ以上のSteamVRが存在してしまいます。
これによりデバイスの取り合いが起こり、そのままでは使用できません。また、この競合を回避しようにも大幅なレイテンシーにより実用とはいきませんでした。

よって、今回はUNETを使用するのではなくUDP通信によりお互いのViveのpositionとrotationを送りあうようにして解決しました。
注意しなければならないのが、お互いにデータを送り付けているだけなので、基本的には同期処理はしていません。
(今回はほとんど同スペックのPCをローカルの有線接続しているので、致命的なエラーは出ないだろうという考えです。ネット経由で使うときにはまた違ったやり方でないとレイテンシー問題があるかもしれません)

これにより送受信におけるデータ量と、受信のタイミングもこちらでコントロールできるので最終段階では100~120fpsで描画することに成功しました。
したがって、遅延は10ms以下となるので「ゼロレイテンシー」といえるのではないかと。

最後にViveコントローラーの位置に手のAssetをつけて、遊んでみました(通称:ゼロレイテンシー芸人)。

補足として、SteamVRのルームセットアップを的確に行うと、現実での位置とVR空間上の位置が一致するのですが、
それをしてしまうと、VR空間上で相手に触れたときに現実でも相手に触れてしまい、デバック中に怪我人が出てしまうので、今回はこんな感じで….

9/19 我妻追記

]]>
チーム明るい家族計画とは?real//baby real/familyとは http://blog.shirai.la/baby/contents/ Sun, 11 Sep 2016 02:00:48 +0000 http://blog.shirai.la/baby/?p=71 チーム明るい家族計画の錦澤です。チーム明るい家族計画の展示「Real / baby Real / family」内容について説明します。本コンテンツは、リアルフェイス育児シミュレーターとしています。realbaby

(右のはポスターです)

 

IVRC公式へのリンクはこちらです。→ivrc.net/2016/visitors/#precompe

 

本体験の見どころは、大きく3つあります。

  1. 体験者の顔画像からその赤ちゃんを予測します。
  2. 体験者は最大2人です。
  3. 体験終了後に母子手帳を発行します。

 

未来の赤ん坊予測ーーーー!

img_0858img_0840nisiki_agatuma_baby

上の画像は二人の顔から生まれた赤ちゃんです!

キャワワ!(小並感)

 

2人プレイーーーー!

%ef%bc%92%e4%ba%ba%e4%bd%93%e9%a8%93

極低遅延通信(ゼロレイテンシー)!

2人でVRコンテンツが体験できるとか胸熱だろ!

パートナーと協力して赤ちゃんをあやそう!

2人の仲がより深まるかも!?

母子手帳ーーーーーー!

%e6%af%8d%e5%ad%90%e6%89%8b%e5%b8%b3

体験の記念に母子手帳をプレゼントするよ!

中身は体験してからのO・TA・NO・SHI・MI❤

 

みなさん「Real / baby Real / family」を是非体験してみてください!

Twitter[https://twitter.com/IVRC_realbaby]

]]>
Maya迷走中 http://blog.shirai.la/baby/baby-project_06/ Mon, 29 Aug 2016 21:15:41 +0000 http://blog.shirai.la/baby/?p=45 こんにちは。
明るい家族計画の望月です。

2D画像の処理がトントン拍子で進み、平均顔を使ってβ版を作ろうという話になりましたが、ここで問題発生!

2D画像をどうやって3Dに起こすのか…

Kinectで赤ちゃん人形の顔を撮影し、MeshmixerやMeshLabで加工したり、
babydoll_mesh

Point Cloud Libraryというライブラリを使い、顔のメッシュを生成したりしました。
Point Cloud Libraryは点群情報と画像情報の両方を保持できるフォーマット(.ply)を使用できたので少しだけ便利でした。
pcl

最終的にたどり着いたのが、Mayaを使用し、赤ちゃんの正面画像と横画像からメッシュを生成していく方法です。
2016-08-19
2016-08-23
2016-08-23 (1)
2016-08-30
2016-08-30 (1)

しかし、作成したメッシュをUnityにエクスポートした際にメッシュの情報が欠損し、使い物にならない結果に…
mesh
どうやら法線が裏返っておかしくなってるようで、手直しに非常に手間がかかり、これ以上はメッシュに時間を割けないので、球体に顔画像を張ることで対処。最初の段階でメッシュに関しては考えていなかったことも非常に時間を取らされてしまった感じがあり、今回のことから、妥協点を見つけるということや、ある程度やってみて、実装が非常に難しい(時間がかかる)と感じたことからは手を引く潔さが大切だと思いました。迷宮入りしそうになったときは、目に見えるタスクから終わらせること、初心に返ることを心がけ、メッシュにとりかかる前の目標であるβ版制作にとりかかろうと思います。
2016-08-29 (2)

↑球体を若干潰したオブジェクトに顔画像を張ると、見た目が改善されます!

]]>
顔の特徴点取得できました! http://blog.shirai.la/baby/project_05/ Mon, 29 Aug 2016 18:31:33 +0000 http://blog.shirai.la/baby/?p=39 こんにちは。
明るい家族計画の望月です。

今回はdlibというC++のライブラリを使用しました。
dlibは画像処理や機械学習などの機能を持ち、顔の特徴点を取得するのに使用しました。

特徴点取得の参考画像がこちらです。
landmark

dlibに用意されている学習データを用いることで顔画像領域の切り出し、ランドマークの検出などが行えます。ちなみにOpenCVを用いても顔画像を切り出すことは可能ですが、それよりも精度よく顔画像を切り出すことができます。

またランドマークはdlibによって、ソートされて出力されるので、モーフィングなどで重要な対応点なども簡単に調べることができます。dlib_face_landmark_point

こんな感じで対応点をソートしてくれます。

ただdlibの導入は少し面倒なのでCMakeの使い方には慣れておいたほうが良いかもしれません。

まだ慣れていないのもありますが構文もかなり難しいです。

また、特徴点が取得できたので、赤ちゃんの平均顔画像も作成しました。
平均顔画像の作成にはOpenCVを使用しました。
baby_face.ave

平均顔の赤ちゃんは非常に可愛いです。
この可愛い赤ちゃん画像から若年変化について考えていきたいと思います。

]]>
ハッカソン2日目「α版製作」 http://blog.shirai.la/baby/baby-project_03/ Mon, 29 Aug 2016 18:30:15 +0000 http://blog.shirai.la/baby/?p=19 こんにちは。
明るい家族計画の望月です。

7月23日、24日に行ったハッカソンの2日目の様子です。2日目の目標は「Wiiリモコンの値で赤ちゃんを制御」、「Mayaで作成したオブジェクトをUnityで読み込み」、「赤ちゃんをViveで制御」です。Mayaで作成したオブジェクトの読み込みは錦澤君が事前にベットのモデルを作成してきてくれていたので、スムーズに行うことができました。球体の読み込みは200*200頂点くらいのものから若干重くなった気がしましたが、許容範囲内でした。
IMG_3175

Wiiリモコンによる制御は、加速度センサの値を取得し、そこから角度を割り出し赤ちゃん(Unityちゃん)と同期。赤ちゃん人形の服の中にWiiリモコンを隠し完成。出来上がったのがこちらです。

Viveによる制御では、素晴らしいものを生み出してしまいました。なにやらサマーレッスン(ロリ)みたいなもので、これを基盤に商品にできそうなイメージでした。プログラム的には、ハッカソン1日目に行ったSteamVRの応用で、あとはHMDを被ったときに違和感がないかどうか調整して完成です。

今回のハッカソンでわかったことはViveが凄いということと、赤ちゃんをどう可愛いと思わせるかが大切だと思いました。今回はUnitychanの迫力が強すぎたということもあると思うので、完成品ではUnitychanを上回れるような作品作りをしていきたいと思います。

© Unity Technologies Japan/UCL
]]>
ハッカソン1日目「Unity勉強会」 http://blog.shirai.la/baby/baby-project_02/ Mon, 29 Aug 2016 18:30:10 +0000 http://blog.shirai.la/baby/?p=14 こんにちは。
明るい家族計画の望月です。

7月23日、24日に行ったハッカソンの1日目の様子です。1日目の目標は「unityを触ること」、「SteamVRの使い方」でしたが、とても良い流れで進んで行き、Kinect v2にも少し触れることができたので、1日目は大成功でした。

浅野君が作成してきてくれたスライドを元に作業を進めた結果、午後までかかる見通しのブロック崩し完成が午前中で終了してしまったため、その後、一足先に午後のSteamVRを我妻君主導のもと勉強しました。
IMG_3166
その後、先ほどUnityで製作したブロック崩しをViveで操作できるようにしたのがこちらです。

一段落したのち、ゲークリで途中抜けしていた浅野君と合流し、来来亭で昼飯兼夕飯を食べ、Kinectを触るはずが、Kinectを動かすために必要なSDK(ver2.0)がWindows7では動かないことが判明し、Windows10にアップグレード。なんとかKinectを動かし、サンプルプログラムから赤ちゃんを3Dスキャンしました。
IMG_3171
赤ちゃんの深度がうまく読み取れているのか疑問が生じましたが、隣に移ってる人の深度はしっかり読み取れていたので一安心。人形程度の凹凸だとあまりよくないようですが、人間相手なら十分使い物になると思います。

ソフトウェア的なことはここまでで終わりですが、夜に合流した武田君とパソコンを組み立てて、1日目は解散しました。余談ですが最近のBIOSがしっかりしすぎていて、すこし驚きました。
IMG_3172
IMG_3174

]]>
ハッカソン発表会とα版レビュー http://blog.shirai.la/baby/baby-project_04/ Mon, 29 Aug 2016 18:30:07 +0000 http://blog.shirai.la/baby/?p=26 こんにちは。
明るい家族計画の望月です。

前回のハッカソンで作成したwiiリモコンを使った赤ちゃん制御を改良し、HMDで制御できるようにしました。
発表会の様子も載せておきます。

ゲームデザインのより深いところを考えられるような発表会になりました。
「可愛い」についての論文を読みつつ、顔画像についても挑戦していきたいと思います。

© Unity Technologies Japan/UCL
]]>
赤ちゃんプロジェクト始動 http://blog.shirai.la/baby/baby-project_01/ Mon, 29 Aug 2016 18:30:03 +0000 http://blog.shirai.la/baby/?p=8 初めまして。
明るい家族計画の望月と申します。

IVRCに応募した企画書が無事当選し、今後はプロトタイプ制作に励みたいと思います。

今回はチームメンバーと企画について紹介していこうと思います。

明るい家族計画のリーダーであり、”Real baby / Real family”の立案者。Blogの記事は主に私が書いていきます。

顔技術担当。顔に対する情熱が凄まじい。この企画の要。

コンテンツ担当。企画書制作以降からチームに加わって頂き、Unityを自由に使いこなす。別プロジェクトにも参加しているようで多忙。

    • 我妻 大樹

ハードウェア系、VR技術担当。別学科からの参戦で、上記3人とは持っている技術が違うため、話しているだけでとても勉強になる。

以上のメンバーでIVRCのプロトタイプ制作に挑んでいきます。

最後に企画紹介

タイトル
「Real baby / Real family」
概要
これは新しい家族の愛を体験できるVRです。お友達やカップル、同性のお友達の顔画像を合成し、赤ちゃんの顔画像を生成します。HMDを装着したまま、赤ちゃん人形をあやしてみましょう。きっと、体験者は子供とパートナーをかけがえのない存在として認識することができ、未来のコンピュータと人間の関わりについて深く考えることができるでしょう。

企画書はこちらから

赤ちゃんを作るVRです。唯一無二の存在を作り上げれるように頑張っていきたいと思います。

]]>