この構成は、アプリケーションに、データの取得や処理に使用するセンサーや認識ミドルウェアの選択の柔軟性を与えてくれます。
Production Chainとは?
Production Nodeの章で、user generator型のProduction Nodeがアプリケーションによって生成される例を見ました。
人体データ(body data)を生成するために、このProduction Nodeは、より低レベルのProduction Nodeであり、センサーから生データを取得するdepth generatorを使いました。
この例で、Production Nodeのシーケンス(user generator -> depth generator)は、人体データを生成するために互いに依存しており、これをProduction Chainと呼びます
異なるベンダーが、同じProduction Node型の実装を提供することができます。
例:
Aブランドがuser generatorの実装を提供しているとし、Bブランドがまた別のuser generatorの実装を提供しているとします。
両方のgeneratorはアプリケーションの開発者が利用可能です。
OpenINは、アプリケーションが、どのモジュールを使用するか、どのProduction Chainを使用するか、定義することを可能にしています。
OpenNIは、登録済みのモジュールから、可能なProduction Chainの組み合わせをすべて列挙します。
アプリケーションは、好ましいブランドや、バージョンなどに従って、そこから1つのChainを選択します。
注:アプリケーションは、chainを特定せず、OpenNIから、最初のchainを取得することも可能です。
普通、アプリケーションは、chainの最上位にのみ興味があります。
これは、アプリケーションにとって使い物になるレベルのデータを提供してくれるnodeだからです。
たとえば、hand point generatorなど。
OpenNIでは、その下にあるchainを意識することなしに、アプリケーションが一つのnodeだけを利用することも可能です。
詳細な設定のために、このchainにアクセスして、個々のnodeを設定することも可能です。
たとえば、前に、OpenNIに複数のモジュール(認識ミドルウェアとデバイス)を登録する例を見ました。
その場合、アプリケーションがuser genertorを要求すると、OpenNIは以下のように、人体データを取得するための4種類のProduction Chainを返します。
・異なるベンダーの供給する、2つの人体認識見取るウェア。
・異なるベンダーの提供する、2つの3Dセンサー。
上図は、この実装中で見つかった、4つの選択可能なProduction chainを表します。
それぞれのChainは、人体認識ミドルウェアと3Dセンサーの可能な組み合わせを表します。
OpenNIは、アプリケーションが上の4つから1つを選択できるようにします。
0 件のコメント:
コメントを投稿