Kinect Sensor v1 のスペックまとめ

マイクロソフトの許可を得て使用しています。Microsoft.com をご覧ください。

ここでは Microsoft Kinect センサー v1 (第一世代) のスペックについてまとめておきたいと思います。 製品版パッケージ、開発者向けパッケージ(PublicPreview)、βパッケージ、XBOX 向けパッケージなどによって、 掲載されている推奨環境やスペックが異なる場合があるので注意してください。 正確な推奨環境やスペックについては公式の情報を参照するのが良いです。 ただし公表された情報と実際の情報とが異なることもあります(公表値の誤り)。

動作(推奨)環境

OSWindows 7 以降
接続USB 2.0
CPUDual Core 2.66 GHz (x86 or x64)
RAM2GB
APPVisualStudio 2010

GPU について

GPU (DirectX) に関する言及はありませんが公式の SDK に含まれるサンプルには DirectX を必要とするものが含まれます。 基本機能である人体の検出などでは GPU は不要です。

ただし対応ソフトウェアの多くが GPU を利用します(公式・非公式を問わず)。 特に立体形状を取得するようなアプリケーションは DirectX を必要とするので、 目的に合わせて利用環境を確認した方が良いでしょう。

その他の情報

v1 では複数(4台まで?)の Kinect が接続できますが、 1 台につき 1 つのアプリケーションしか参照することができません。

ハードウェア

カラー画像解像度RGB_640x480(30fps), RGB_1280x960(12fps) 他
深度画像解像度80x60(30fps), 320x240(30fps), 640x480 (30fps)
深度計測手法Light Coding
深度測定範囲(Default)800~4000mm, (Near)400 ~ 3500mm
カラーの視野(水平) 62 度 (垂直) 48.6 度 (SDK より)
深度の視野(水平) 57 度 (垂直) 43 度 ※公表値(SDKと異なる)
マイクの数4 機
音声フォーマット16kHz 24bit mono ※公表値(SDKと異なる)
チルトモータあり。上下 27 度
加速度センサあり。SDK1.6

カラー画像について

RGB の他に Raw や YUV などを取得することができます。 また赤外線画像も取得することができます。

深度測定範囲について

深度測定範囲は初期状態と Near Mode と呼ばれる状態とで異なります。

カメラ視野について

公開されている骨格追跡が可能な(推奨)範囲と、スペック上の視野とは異なるようです。

Skeletal Tracking - msdn

C++ 向けのライブラリで定数から取得できるカメラの視野の値と、公開されているスペックが異なるようです。

Constants in SDK1.8 - msdn

どちらが正しいかは判断が付きませんが、恐らくハードウェアとしての性能値は SDK の物が正しいと思われます(海外有志による検証結果を見る限り)。 Kinect SDK 1.8 から取得できる FOV の値は次の通りです。

SDK から取得できる FOV の値
NUI_CAMERA_DEPTH_NOMINAL_DIAGONAL_FOV70.0f
NUI_CAMERA_DEPTH_NOMINAL_HORIZONTAL_FOV58.5f
NUI_CAMERA_DEPTH_NOMINAL_VERTICAL_FOV45.6f
NUI_CAMERA_COLOR_NOMINAL_DIAGONAL_FOV73.9f
NUI_CAMERA_COLOR_NOMINAL_HORIZONTAL_FOV62.0f
NUI_CAMERA_COLOR_NOMINAL_VERTICAL_FOV48.6f

Constants in SDK1.8 - msdnより引用

音声フォーマットに注意する

2014.11.30 現在、公式には音声フォーマットは 24bit として表記されていますが、 v1 向けの最新の SDK 1.8 に同梱されるサンプルでは 18bit(2byte) として処理されています。

/// <summary>
/// Number of bytes in each Kinect audio stream sample.
/// </summary>
private const int BytesPerSample = 2;

チルトモータについて

経験的に、チルトモータの角度制御精度はそれほど高くありません。 機構上は 1 度ずつ推移することが可能ですが、コードから監視すると 2 度ずつ推移することが良くあります。 (製品個体に依存するかもしれませんが。)

for XBOX について

Kinect for XBOX 360 製品パッケージでは PC 向けの推奨環境や使用上の注意情報は得られません。 また Kinect for XBOX 360 パッケージを PC などに接続して利用する場合には別途変換用のコネクタが必要です。

Near Mode は for XBOX 360 では利用することができません。 したがって、座った状態のユーザを検出することも出来ないことになります。 顔の検出についても for Windows と比較して精度が悪くなり難しくなると考えて良いでしょう(検証していませんが)。

開発にあたり、Kinect for XBOX 360 を接続している旨が出力されます。

基本スペックは同じですが、内蔵するカメラなど一部のハードウェアが変更されています。 カメラが映し出す範囲が異なるので、いくつかの Kinect を併用するアプリケーションでは注意が必要です。 また for Windows 版と異なり加速度センサがついていません。

ソフトウェア

最大検出人数6人
検出部位数20
音声方向の検出正面から左右に 50 度
音声認識

人物検出について

部位を検出できる人数は 2 人まで。残りの人物は位置だけの推定になります。 仕組み上、人体の検出精度は深度センサーの解像度に依存します。 公表される情報は理想的な環境で 6 人まで検出できるというだけで、 実用的には精々 4 人程度が限度な感じがします。 部位を検出する必要があるなら 2 人以上の人物を測定範囲内に入れない方が良いです。 トラッキングの乱れが生じるためです。

音声方向の検出について

音声方向の検出は本体正面から左右に 50 度ずつ検出することができます。 検出には 2 種類の実装方法がありますが、片方は(BeamAngle) 10 度単位、もう一方は(SourceAngle) 1 度より細かい単位です。 検出した方向の正確性も取得することができます。

Toolkit による顔の追跡

公式の Toolkit を利用することで顔とその動きの検出も可能です。 口や目の開閉状態やそれらの座標を取得することができます。

Reference