Kinect for Windows SDK betaめも
MicrosoftからKinect for Windows SDK beta がでたので勉強してみようかと思い立ったのででめも。
とりあえずこの資料から
[http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/docs/ProgrammingGuide_KinectSDK.pdf/ProgrammingGuide_KinectSDK.pdf
Kinect for Windows SDK beta の肝の NUI(Natural User Interface) API のデータの肝
- Color data
下の2つから選べる
-
- RGB color
X8R8G8B8の32bitデータ(X8って不定ってこと?)。
-
- YUV color
UYUVのいわゆるYUV422フォーマット。sRGBのγをかけた後のデータ。このときは、解像度640x480, フレームレート15FPS固定。
- Depth data
距離データ。XY方向の解像度は640x480, 320x240, 80x60pixel。Z(奥行き)方向の解像度は13bitでミリメータ単位(スゲェ)。 最も近いオブジェクトまでの距離を表す。 画素値がゼロのときは、Kinectセンサーが何もオブジェ区尾を検出できてないことを表す。 XY座標軸は は物理的な単位ではなく、depth imaging sensor内での画素。
- Player segmentation data
1つKinectセンサー(Kinectセンサーを複数扱うこともできるので)で2人の人間(player)を認識できる。各画素は、playerのインデックスに対応付けられる。 depth dataとplayer segmentation dataがマージされた1つのフレームになる。 距離を表す上位13birのデータと、playerのインデックスを表す下位3bitのデータ。
画像データの取り扱い方は、主に下の2つのうちのどちらか
- モデルをポーリングする
C++ では NuiImageGetNextFrame APIでcolor, depth dataをポーリングする。
- event model
いわゆるイベントドリブン型。スケルトンでイベントが発生したら取り込む?。NuiImageStreamOpen API を使う。
座標空間いろいろ
- Depth Image Space
上のDepth dataを参照のこと
- Skelton space
Depth Image Spaceと違って、距離で表される。右手の法則の座標空間で、Z軸はセンサーに向かう方向、Y軸は上方向、X軸はセンサーに対して(センサーを正面から見たときに)左方向に向かう。
重力の方向を設定することで、XY軸の調整ができるらしい。vNormalToGravity, NUI_SKELETON_FRAME, SkeletonFrame.NormalToGravity。
-
- Floor Determination
スケルトン追跡システムは、背景を分離して人を抽出するために各フレームでフロアープレーンを推測する。
-
- Skeletal Mirroring
通常は左右反転して取り込むけど、反転しないことも可能
waveletで遊んでみた
Haarのウェーブレットを使用。
ウェーブレット変換後のAC成分には +128 のオフセットをつけて画像出力しています。
逆ウェーブレット変換して同じっぽい絵になることは確認したので、
たぶん処理はあってると思う。
ウェーブレット変換係数
原画像 (256x256pixel, 8bit unsigned)
1階層 | 2階層 |
---|---|
3階層 | 4階層 |
5階層 | 6階層 |
7階層 | 8階層 |
おまけ(というか本題のはずなんだけど...orz)
斜めエッジはほとんど抽出できてないから、それをゼロにしてもあんまり違いがわからないですね。
絵が悪かったかなぁ…。
参考文献
#どうでもいいけど、"Daubechies" の読み方は、"ドーブシ" より "ドビュッシー" の方がすっきりする。
らくラジ on Windows7
らくラジをWindows7環境で動かそうとしたら初期化できないとかで文句を言われて、
ラジオが聞けない。
機種はTOSHIBA dynabook Qosmio V65/86L。
を見るとデフォルトで起動するプロセスとバッティングする場合があるらしい msconfigでスターアップ時に起動するソフト([コントロールパネル]->[システムとセキュリティ]->[管理ツール]->[システム構成] のスタートアップタブで確認できます) を切っていろいろやってみたら、
TOSHIBA Remote Control Manager をスタートアップ時に起動しないようにしたら、
問題なくラジオを聞けるようになった。
coLinux で Ubuntu
PCを新調したのでちょっとトライ。
http://d.hatena.ne.jp/wadap/20080121/1200922697
http://scratchpad.fc2web.com/colinux/install-0.7/install-5-1.html
を参考にさせていただいきました。
リンク先と異なるのは
coLinuxをインストールしてcoLinux上のUbuntuにrootでログインするまでは問題なし。
HostPC から coLinux へのpingも通った。
coLinux から HostPC への ping が通らない。
となると怪しいのはHostPCのFireWallかな?
現在のFireWallはウィルスバスター付属のもの。これの設定を変えます。
1922.168.137.1-2 からの接続を許可します。
これで coLinux(192.168.137.2) -> HostPC(192.168.137.1) へのpingも、
coLinuxから外部へのpingも通るようになりました。
今日はここまで。
Rails(とRuby)関連のインストール
昔作った twitter でランニングログをつけるためのサイトをもう一度動かすために環境整理。
- rubugems, rails, rake
http://www.gfd-dennou.org/arch/davis/gfdnavi/doc/install/install-rubygems.htm
- mislav-will_paginate
http://holy.enyou.org/2009/01/27/move-to-mislav-will-paginate/
$ gem1.9.1 install mislav-will_paginate
$ gem1.9.1 install twitter
- gruff
$ gem1.9.1 install gruff
$ apt-get install imagemagick
$ apt-get install libmagick9-dev
$ gem1.9.1 install rmagick
$ gem1.9.1 install mongrel
- sqlite3
$ gem1.9.1 install sqlite3-rubygem1.9.1 install sqlite3-ruby
$ gem1.9.1 install sqlite3-dev
$ apt-get install libsqlite3-dev
$ gem1.9.1 install sqlite3-ruby
Ubuntu Netbook Editionのインストール
Ubuntu Netbook Edition 10.04 を HP Mini 1000 にインストールしたときの記録(…思い出しながら)。
http://www.ubuntu.com/netbook/get-ubuntu/download
からダウンロード
適当なサイズのUSBメモリがないので、PSPに4GBのMSを入れてUSB接続してUSBメモリの代わりにする。
インストール自体は特に書くことなし。
#いやぁ、簡単でいいね。30分もかからなかったのではないでしょうか。
インストールしたソフト達
ruby関連
その他
やったこと
- radikoのタイマー録音
station_id=TBS
rec_sec=7200
filename=hoge
/usr/local/bin/rtmpdump/rtmpdump -vr "rtmpe://radiko.smartstream.ne.jp:1935" \
--playpath "simul-stream" \
--app "$station_id/_defInst_" \
-f "LNX 10,0,45,2" \
--live \
--flv $filename.flv \
--stop $rec_sec
- Podcast server立て
この辺を参照。なぜかアルバムアートワークが参照できない。
http://www.apple.com/jp/itunes/podcasts/specs.html
- NAS をmount
/etc/fstab:
//192.168.X.X/itunes /mnt/nas_itunes cifs rw,uid=ユーザーID,gid=グループID,password=,codepage=utf8,iocharset=utf8 0 0
はまったこと