2011年6月19日日曜日

Capabilities

Capabilities mechanismは、複数のミドルウェアとデバイスをOpenNIに登録できる、という柔軟性を提供します。

OpenNIは、異なるベンダーが能力を変更したり、コンフィグレーションオプションをProduction Nodeに提供するのを許可します。それゆえに、ある種のオプション拡張がOpenNIによって定義されています。

それらのオプション拡張に関するAPIは、「Capabilities」と呼びます。
また、その拡張を実装するかどうか、ベンダーが決めることができます。
Producion Nodeは、ある能力をサポートしているかどうか問い合わせることができます。
その問い合わせは、個々のnodeに対して行われます。

OpenNIは、能力のセットを提供しており、このセットは将来追加される可能性があります。
モジュールは、自分がサポートする能力を宣言することができます。
さらに、Produciton Chainの列挙時、アプリケーションは、特定の能力を必須条件として指定することができます。その場合、指定された能力をサポートするモジュールのみが返されます。

現在サポートされているcapabilities

・Alternative View
マップを生成する型(深度マップ、イメージマップ、IR)に対し、センサーが別の場所にあるかのように、マップデータを変換する能力
「別の場所」は、他のProduction Nodeによって提供され、通常、他のセンサーが出力するマップです。

・Cropping
マップを生成する型(深度マップ、イメージマップ、IR)に対し、フレーム全体ではなく、指定領域のみを出慮kうする能力。
Croppingが有効な場合、生成されるマップのサイズは、より低い解像度となります。
たとえば、map generatorがVGA(640x480)で出力し、アプリケーションが300x200サイズのCroppingを指定した場合、横1行のピクセル配列のサイズは300ピクセルになります。
Croppingは、パフォーマンスチューニングに有効です。

・Frame Sync
2つのフレームデータを生成するセンサー(たとえば、深度センサーとイメージセンサー)に対し、それらのフレームの同期をとることができる能力です。

・Mirror
generatorによって生成されたデータを鏡像反転する能力。Mirroringは、センサーが人物の正面に置かれている場合に有効です。(その場合、センサーが取得したデータは鏡像反転されている、つまり右手が左手の位置にあるため)

・Pose Detection
user generatorの能力で、人物がある特定の位置でポーズをとったことを認識する能力。

・Skeleton
user generatorが、人体のデータを、Skeletonデータとして出力する能力。
このデータは、間接の位置データを含みます。
また、Skeletonの位置をトラッキングする能力、user calibrationの能力も含みます。

・User Position
深度Generatorが、空間の特定の領域に関する出力を活用する能力

・Error State
nodeが、エラー状態であることを通知する能力。
「エラー」とは、実用上、nodeが適切に機能しない状態を言います。

・Lock Aware
nodeが、ある領域の外側をロックする能力。詳しくは、「アプリケーション間のデバイス共有とNodeロック」(Sharing Devices between Applications and Locking Nodes)を見てください。

0 件のコメント:

コメントを投稿