床を指しているキネクトがあるとしましょう。
床に 3 つまたは 4 つのオブジェクトを配置した場合、それらのオブジェクトが置かれている平面をどのように判断できますか?
その床にある明るい色の物体をどのように検出できますか?
床を指しているキネクトがあるとしましょう。
床に 3 つまたは 4 つのオブジェクトを配置した場合、それらのオブジェクトが置かれている平面をどのように判断できますか?
その床にある明るい色の物体をどのように検出できますか?
Kinect は、任意の表面からセンサーまでの距離を表すマトリックス deph-map を返します。ピンホール カメラ モデルに従って、各深度測定値を対応する RGB 値に合わせることができます。深度マトリックスの各ピクセルを空間上の X、Y、Z および RGB 値と関連付ける方法を既に知っていると思います。そうでない場合は、さらに調査を行い、深度センサーと RGB カメラの間でステレオ相関がどのように行われるかを理解する必要があります。
ここで 2 つのまったく異なる質問をしました。最初のものは、いくつかの基本的な幾何学の概念で簡単に解決できますが、最初に 2 番目のものを解決して、空間上のオブジェクトの位置を見つける必要があります。
明るい色のオブジェクトを見つける方法はいくつかあります。センサーが静的なシーンを記録する場合は、Background Subsctractionを使用できます。これにより、以前にトレーニングされた背景モデルとは異なる値を持つピクセルを表すバイナリ イメージが生成されます。オブジェクトは背景よりも明るい色を明示的に持つため、単純にThresholding Segmentationを適用できます。RGB をHSL画像に変換し、輝度値を高くするだけです。他にもいくつかの方法があります。問題が解決しない場合は、それらを調べてください。これらの両方の方法に従うと、ブロブを含むバイナリ イメージが返されます。これらのブロブの中心を、明るい色のオブジェクトのマトリックス座標として使用できます。
下の図に示すように、3 つの中央のブロブ A'、B'、および C' を使用して、探している平面を見つけることができます。
説明:平面は、点 (位置) と法線 (方向) として表すことができます。すべてのオブジェクトが見つけようとしている平面に正確にあることを考えると、必要なのは、その平面内の三角形を表す A、B、C の 3 つの点だけです。この三角形の法線は (A - B) x (C - B) に等しく、ここで x は外積を表し、平面と同じです。したがって、あなたの平面は、これらの 3 点とその三角形の法線のいずれかになります。オブジェクトの寸法が大きい場合は、それらを考慮して平面の位置を定義する必要があります。