KINECT->BVH->Poserへのpath(20140601)

KinectでのモーションキャプチャからBVHを吐かせて、最終的にposerに読み込ませて自分の好きなアバターで動かそうと思っていた。
参考にしたのは、このサイトだった。これで
うまくいきそうに思えたが、いかんせん2011年10月の記事でもうかなり古いし、加えてOpenNIもサイトをこの4月で閉じた。とりあえず今入手可能なドライバ/アプリケーションで表題に述べたことができるかどうか、試してみた。OSはWindows 7 64bit professional.

1.前準備

    これはリンクにはったサイトとまったく同様、Microsoft Visual c++ 2010 Express、最新のDirectX
    それからMicrosoft XNA Framework Redistributable 4.0とMicrosoft .NET Framework 4をインストールした。
    PC環境をテストモードにするという項目もあったので、一応やったが、これが原因でうまくいったのかどうかは定かではない

2.Microsoft Kinect SDK & OpenNI2
昔のサイトで述べられたOpenNI for Win32bit 1.3.2.1 & Sensor-Win -5.0.3.3の組み合わせでうまく動作しなかったので、
ここでは、OpenNI-Windows-x64-2.2.0.33をインストール。そしてMicrosoftの開発環境を利用すべく、KinectSDK-v1.8-Setupならびに
KinectDeveloperToolkit-v1.8.0-Setupをインストールした。これでKinectを接続すると、デバイスマネージャには、PrimeSenseの配下に、Kinect for Windows Audio Array Control, Kinect for Windows Camera そして Kinect for Windows Security Controlが現れるようになった。
ここまでうまく行くと、Program Files/OpenNI2/Samples/Bin/simpleViewer.exeが動いてぼんやり自分の姿が映る。

3.NiTE2のインストール
NiTEも64bitベースのNiTE-Windows-x64-2.2をダウンロードしてインストール。ここまでできると、Program Files/PrimeSense/NiTE2/Samples/Bin/UserViewer.exeをたたくと、キャリブレーションの後、自分の姿がトレースされることに気づく。ここで注意すべきはKinectが認識するためには、センサから2,3m離れることが大事だ。そうでないといつまでたってもキャリブレーションから進まない。

4.LiveAnimationのインストール
bvhを吐かせるために、LiveAnimationをインストールする。このサイトからダウンロード。数々のバージョンがあり、以前の記述だと
46以前のバージョンでないとPoserが正しく読み込まないとあったが、Poser2014 Proに関しては最新のLiveAnimationでも問題なかった(今回は108をインストールした)。

5.キャプチャ&BVH出力
LiveAnimationを立ち上げたのち、アバターを一つ選んで出現させる。このあと左側の”キネクト”を選びその中からMotionCaptureを選ぶ。自分の姿も横に出てくるので、然るべくKinectにモーションを認識させる。そうするとアバターが同期して動き始めるのでゆっくり体を動かしてモーションデータをサンプルする。画面下にFPS(Frames per Second)の値があり、デフォルトは64となっているが30ぐらいで十分だろう。より少ないとPoserでうまく動かないようだ。取得できたらエクスポート/BVHでファイルに出力する。つま先をつけるなどのオプションは選択しない(poserで読めなくなる)

6.Poserからの読み込み
Poserを立ち上げ、Andy君を表示させ、これに先ほど出力したBVHを読み込ませる。うまくゆけばAndy君は先ほどの自分の動きと似通った動作をするはずだ。

以上です。Good Luck.


ubuntu 3.11 server + PukiWiki1.4.7ではまった

素直に動くものと思っていたら、画面が真っ白なままで全然動かない、
PHP Fatal error: Cannot redeclare hex2bin() in /(some where)/pukiwiki/lib/func.php on line 317
のメッセージ見て気が付いたが、ここに書かれている通り、hex2bin()が組み込み関数になってlib/func.phpの実装とぶつかっていた。リンクの指示の通り修正して動作を始めた。


Loopback

Youtubeなどの教材使って自分の英語の発音などを確かめたいときなど、自分のマイクの声がヘッドフォンにフィードバックして欲しいと思うことがあった。何のことはない。コントロールパネルでサウンドを使い、録音->マイク->聴くをクリックして、このデバイスを聴くを選ぶと、自分の声が聞こえてきた。これでOKだ


Octane renderで背景を透明に

Octaneでレンダリングすると、背景がenvironment テクスチャをぼかした模様が入る。これを透明 or alpha channelにする手はないかと探してみたら、ここ

Yes, in the image controls you can check / uncheck keep environment.

の一文があった。試してみよう


Raspberry Piで古典的情報監視

Paspberry Piで毎分カメラでキャプチャを行う話。

まず普通のwebカメラを導入。ここを参照。motionも導入する。
次にここを参照して、/etc/motion/motion.confを
編集。毎分写真を撮るようにする。

撮れた映像は、/tmp/motion に保存される。すごく枚数が増えるので 消すときにtoo many argumentsなど言われた際は、
sudo find ./ -name ‘*.jpg’ | sudo xargs rm
のようにして、パイプして順に消すようなやりかたを推奨する。
480 X 320で一枚約40kbyte. 1日で1440枚 60Mbyte, 10日で600M, Raspberry Piの残り容量はあと4.4Gbyteあったから
70日ぐらいは動いてくれそうだ。

最後に電源投入時に自動でmotionを起動するためには、
sudo systemctl enable motion.service
としてsystemctlサービスに登録すればよいようだ。(ここ


Dropboxのマルチアカウント

これまでDropboxを愛用してきてる。これには固有のe-mail addressが付き、自分はわりとGlobalなアドレスをDropbox用に利用している。ところが別プロジェクトで自分の仕事用のアドレスで共用フォルダを作成されてしまうといままでアクセスできなかった。ググるとここにやりかたが書いてあった。ポイントは、

    同じPC内に別アカウントを作成し、そのアカウントにそれぞれDropboxを個別にインストールすること、かつそのインストール先を、自分の日頃使うメインアカウントからアクセス可能(例えばパブリック)なところに
    設置すること
    メインアカウントから、陽に各アカウントユーザでDropboxをそれぞれ起動して同期が行われるよう、
    C:\Windows\System32\runas.exe /savecred /user:USERNAME C:\Users\USERNAME\AppData\Roaming\Dropbox\bin\Dropbox.exe
    のようなバッチファイルを用意しておくこと

のようだ。一応これで、本来のDropboxに加え、仕事上の共有フォルダなどにもアクセスできるようになった。


Raspberry Piでリモートカメラ設置

古いWebカメラを設置してみた。セットアップはここここを参照した。
1)lsusb を入力
これで自分のカメラが認識されていたらOK
2)sudo apt-get install motion
でmotionをinstallする
3)/etc/motion/motion.conf
を編集
・backgroundでデーモンを動かすならdaemon off->onにする。(していない)
・control_localhost on->off (制御をlocalhostに限定する->しない)
・webcam_localhost on->off (webcam出力をlocaohostに限定する->しない)
4)起動
sudo service motion start|stop|restart
Webcam portは8081で見れる
このままだと毎秒映っているようだ。