15
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Kinect v2 基本まとめノート

Last updated at Posted at 2015-12-24

#1 お世話になってるページや本

▪︎Microsoft Kinect v2まとめ
http://www.naturalsoftware.jp/entry/2015/08/10/120012

▪︎Kinect for Windows v2入門―C++プログラマー向け連載
http://www.buildinsider.net/small/kinectv2cpp

▪︎KINECT for Windows SDKプログラミング Kinect for Windows v2センサー対応版
51Rl4mIaB-L.AC_UL160_SR124,160.jpg

#2 スペック整理

見出し スペック
color画像解像度 1920px × 1080px
colorフレームレート 30fps 15fps(暗所)
Depth画像解像度 512px × 424px
Depthフレームレート 30fps
Depth認識範囲 0.5m ~ 8m
人の検出人数 6人
人の骨格検出 6人
人の検出範囲 0.5m ~ 4.5m

#3 データ取得の流れ

SensorからSourceを取得、
SourceからReaderを開き、
ReaderからFrameを取得、
Frameからデータを取得するという流れ。

http://www.buildinsider.net/small/kinectv2cpp/02
のデータを取得する流れ がわかりやすい。

#3、カラー画像

1920×1080のFull HDの解像度で30fpsで取得。暗所だと15fps。
カラー画像のフォーマット指定可能。
デフォルトはYuy2「Y(輝度)、U(B-Yの色差)、Y(輝度)、U(R-Yの色差)、」でRGBA画像等で欲しい場合はフォーマット指定。

hoge
// 例 Bgra形式
ColorImageFormat colorFormat = ColorImageFormat.Bgra;

Bgra形式の場合
1ピクセル = 8ビット(1バイト×4)
1ラインは1920個あるので1ラインあたりのバイト数は1920*4

#4 Depthデータ
512×424の解像度、
0.5m ~ 8mの範囲で取得可能
骨格認識は0.5m ~ 4,5m
距離の単位はmm(ミリメートル)

1ピクセルあたり16ビットのデータが512×424個並んでいる。
配列の要素にアクセスすることで任意の座標のdepthデータ取得。
Depthデータには0mm ~ 8000mm のデータが入っている。

hoge
var depthText = string.Format("{0}mm", depthBuffer[depthindex]);

よくある2次元白黒深度画像は
視覚的にわかりやすいように
8bit(0~255)の範囲に変換して
距離が近いほど白く(255)、遠いほど黒い(0)みたいに
チューニングして表示している。

#5 bodyIndex

512×424の解像度、
最大同時検出数 6人
bodyIndexデータは1ピクセルあたり8ビットのデータが
512×424個並んでいる。
人を検出していない場合は255(0xFF)、
人を検出している場合は0~5のインデックス値
となるので、検出している部分だけ色を塗って視覚化したりする。

15
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?