3D位置姿勢低精度推定

機能のディスクリプション

点群モデルを使用して元の点群に対して大まかにマッチングし、対象物の大まかな候補位置姿勢を出力します。

(点群モデルの作成は 点群モデルを生成 をご参照ください。)

../../../../_images/function_description2.png

使用シーン

通常、シーンの点群で対象物を検出し、その大まかな位置姿勢を取得するために使用されます。このステップはよく 3D位置姿勢高精度推定 と併用されます。

入力と出力

../../../../_images/input_and_output27.png

パラメータの説明

モデルの設定

モデル選択
調整説明:右側のドロップダウンボタンをクリックして、モデルファイルと対応する幾何学的中心ファイルをすばやく選択して切り替えることができます。
../../../../_images/model_chose_introduction.png
モデルファイル
調整説明:アイコン icon_file をクリックして、ply形式のモデル点群ファイルを選択します。モデルファイルの構築は点群モデルの生成に関係します。詳しくは、 マッチングモデル・把持位置姿勢エディタ をご参照ください。
幾何学的中心ファイル
調整説明:アイコン icon_file をクリックして、json形式の幾何学的中心ファイルを選択します。幾何学的中心ファイルの構築は把持位置姿勢追加に関係します。詳しくは、 マッチングモデル・把持位置姿勢エディタ をご参照ください。

点群の点が位置する平面の方向を計算

点が位置する平面の方向の計算方法
初期値:入力点群の法線を使用(Origin)

オプション

調整説明

入力点群の法線を使用(Origin)

入力された点群の元の法線ベクトルを使用します。

StandardMode

CPUを使用して入力点群の法線ベクトルを再計算します。モデルに法線ベクトルがない場合に使用することをお薦めします。目標点の付近にそれに最も近い点をk個を見つけ、PCA(主成分分析)を使用して最小特徴ベクトルを取得してこの点の法線ベクトルとします。

EdgeTangent

入力されたエッジ点群の接線を計算し、それを法線ベクトルとします。外輪郭が鏡像となる異なる物体を判別できます。平面物体のエッジ点群をマッチングする時に使用することをお薦めします。

EdgeNormal

入力されたエッジ点群の法線ベクトルを計算し、その点の接線方向をを法線ベクトルとします。平面物体のエッジ点群をマッチングする時に使用することをお薦めします。

選択された隣接点の数
初期値:10
調整説明:このパラメータは点が位置する平面の方向にある隣接点の数、すなわち StandardMode にした時のk値を計算します。

アルゴリズムのタイプ

初期値:SurfaceMatchingEasyMode
オプション:SurfaceMatchingEasyMode 、SurfaceMatching
調整説明:このアルゴリズムは2つのタイプがあります。結果可視化設定では2つとも調整可能なパラメータに設定します。アルゴリズムのタイプの調整は下図を例として、 SurfaceMatchingEasyMode アルゴリズムの調整可能なパラメータを紹介します。
SurfaceMatchingEasyMode アルゴリズム:調整可能なパラメータは速度制御と出力設定です。
SurfaceMatching アルゴリズム:調整可能なパラメータはサンプリング設定、投票設定、クラスタリング設定、位置姿勢検証の設定です。
../../../../_images/input_clouds.png

SurfaceMatchingEasyModeパラメータの説明

速度制御

メイン速度制御パラメータ
初期値:2
調整説明:このパラメータは、アルゴリズムの速度を調整します。値が大きいほど、アルゴリズムの実行速度は速くなります。ただし、マッチング精度も低下します。 その効果は サブ速度制御パラメータ よりも明らかです。このパラメータの有効範囲は1~6です。
調整の例: 下図に示すように、左は初期値 2 の結果で、右は 6 にした結果です。このパラメータを大きくしたら精度は低下します。
../../../../_images/main_speed_comparisons.png
サブ速度制御パラメータ
初期値:10
調整説明:このパラメータは、アルゴリズムの速度を調整します。値が大きいほど、アルゴリズムの実行速度は速くなります。ただし、マッチング精度も低下します。 その効果は メイン速度制御パラメータ よりも影響が少ないです。このパラメータの有効範囲は1~20です。
調整の例:下図に示すように、左は初期値 10 の結果で、右は 18 にした結果です。このパラメータを大きくしたら精度も低下しますが、影響はメイン速度制御パラメータより弱いです。
../../../../_images/secondary_speed_comparisons.png

入力設定

単一点群の出力結果の数
初期値:3
調整説明:各点群マッチングに出力される結果の数を予想します。この値が大きいほど結果は多くなります。有効範囲は1~∞です。
調整の例:下図に示すように、左は 1 にした結果で、右は初期値 3 にした結果です。
../../../../_images/number_of_output_comparisons.png

SurfaceMatchingパラメータの説明

サンプリング設定

自動ダウンサンプリング
初期値:チェックを入れる
オプション:チェックを入れる/入れない
調整説明:このパラメータは自動ダウンサンプリングを実行するかを決めます。 True に設定したら、サンプリング後の点数の期待値によってモデル点群ダウンサンプリング間隔のパラメータは自動的に調整されます。
サンプリングされたモデルの期待点数
初期値:1000
調整説明:このパラメータはサンプリング点群の点数を調整します。 自動ダウンサンプリングをTrueにしたら有効になります 。取得する点群はこの値に近いです。この値が小さいほど、サンプリング点群の点数は少なくなり、位置姿勢の予測精度も低下します。
モデルサンプリングの最大点数
初期値:4000
調整説明:このパラメータはモデル点群をダウンサンプリングした後の点群の点数の最大値を設定します。すなわち、ダウンサンプリング後のモデル点群の点数に上限を設定することです。マッチングの効果を改善する場合にこのパラメータを大きくし、マッチングの速度を改善する場合に小さくするようお薦めします。
シーンサンプリング最大点数
初期値:3000
調整説明:このパラメータはシーンの点群をダウンサンプリングした後の点群の点数の最大値を設定します。すなわち、ダウンサンプリング後のシーンの点群の点数に上限を設定することで最長実行時間を制限します。このパラメータの値を実際のサンプリング点数より小さくしてはなりません。普通、調整する必要はありませんが、最長実行時間を制限したい場合にこの値を小さくするようお薦めします。
モデル点群サンプリング間隔
初期値:0.01
調整説明:このパラメータはサンプリングする点群にある点の最長距離(単位はm)を調整します。モデル点群ダウンサンプリング間隔が最小サンプリング間隔より小さい場合に、最小サンプリング間隔を実際のサンプリング間隔とします。この値が大きいほど、サンプリング後に計算に使用する点群の点数は少なくなり、マッチング精度も低下しますが、アルゴリズムの実行時間は短縮します。
調整の例:下図に示すように、左は初期値 0.01 にした結果で、右は 0.04 にした結果です。
../../../../_images/sample_intervals.png
最小サンプリング間隔
初期値:0.003
調整説明:このパラメータはサンプリング間隔を計算し、単位はmです。 自動ダウンサンプリングをTrueにしたら有効になります 。計算したサンプリング間隔がこの値より小さい場合に、この値を実際のサンプリング間隔とします。

投票設定

距離の定量化
初期値:1
調整説明:この値は点と点の間の距離を定量化します。 \(距離間隔 = 距離定量化 × サンプリング間隔\) 、従って、この値が大きいほど、マッチングの精度は低下します。
角度の定量化
初期値:60
調整説明:このパラメータは点と点の間のベクトル間の角度を定量化し、単位は°です。 \(角度間隔 = 2 × 3.14 / 角度の定量化\) 、従って、この値が大きいほど、マッチングの精度は向上します。
最大投票率
初期値:0.8
調整説明:このパラメータは投票数が最大投票数に占める比率のしきい値を設定します。前のステップで各位置姿勢の投票数を取得し、その中の最大値にこのパラメータを掛けてしきい値を得ます。投票数がこのしきい値を超えた位置姿勢は保持されてクラスタリングします。この値が小さいほど、正確なマッチングの結果を取得する確率は高くなりますが、実行時間は長くなります。このパラメータの有効範囲は0~1です。
参考点のサンプリングステップサイズ
初期値:5
調整説明:このパラメータは基準点のサンプリングステップサイズを調整します。点群にはこのステップサイズを間隔としてサンプリングします。この値が大きいほど、間隔サンプリングの点は少なくなり、実行速度も速くなりますが、マッチングの精度は低下します。
参考される点のサンプリングステップサイズ
初期値:1
調整説明:このパラメータは参考される点のサンプリングステップサイズを調整します。点群にはこのステップサイズを間隔としてサンプリングします。この値が大きいほど、間隔サンプリングの点は少なくなり、実行速度も速くなりますが、マッチングの精度は低下します。
参考点と参考される点とはペアポイントになります。サンプリング間隔が大きいほど参考点と参考された点は少なくなり、ペアポイントも少なくなり、実行速度は速くなります。
参考点 とはマッチングモデルにあるサンプリング点を指します。 参考される点 とはマッチングモデルにないサンプリング点を指します。

クラスタリング設定

クラスター比
初期値:0.1
調整説明:このパラメータはクラスタリングに使用する位置姿勢が計算して取得した位置姿勢に占める比率を調整します。あらゆる位置姿勢は計算中にスコアが付けられます。そのスコアによって位置姿勢をソートします。このパラメータはクラスタリングに使用する位置姿勢の比率を決めます。初期値 0.1 にしたら、最初の10%の位置姿勢をクラスタリングします。この値が大きいほど、正確なマッチング結果を取得する確率は高くなりますが、実行時間も長くなります。
角度差しきい値
初期値:15
調整説明:このパラメータはクラスタリングのプロセスの角度増量を調整します。最終的な計算結果には、一つの対象物に複数の位置姿勢が計算されることがあります。この場合、パラメータが非常に近い位置姿勢をマージするとき、このパラメータは角度の増量を決めます。このパラメータが大きいほど、角度の差が大きい位置姿勢は最終的な結果にマージされ、精度も低下します。
距離差しきい値
初期値:0.02
調整説明:このパラメータはクラスタリングのプロセスの距離増量を調整します。最終的な計算結果には、一つの対象物に複数の位置姿勢が計算されることがあります。この場合、パラメータが非常に近い位置姿勢をマージするとき、このパラメータは距離の増量を決めます。このパラメータが大きいほど、距離の差が大きい位置姿勢は最終的な結果にマージされ、精度も低下します。
スコアが最も高いN個の結果を出力
初期値:5
調整説明:このパラメータはクラスタリングして取得した複数のマッチング結果にスコアが最も高いN個の結果を最終的な結果として出力します。

位置姿勢検証の設定

位置姿勢検証を使用
初期値:チェックを入れる
オプション:チェックを入れる/入れない
調整説明:このパラメータは位置姿勢検証を使用するかを決めます。このパラメータを True にしたら、クラスタリングのパラメータは全部無効になります。位置姿勢検証とクラスタリングは、異なる最終的なマッチング結果の検証・フィルタリングする方法なので同時に使用することはできません。
隣接点の検索半径
初期値:1
調整説明:このパラメータは位置姿勢検証のプロセスに検証するエリアのサイズを調整します。ボクセルを単位とします。この値を大きくしたら、位置姿勢検証のエリアは広くなり、最終的な結果を検証するために使用する点は多くなるのでマッチングの精度は低下します。
ボクセルの長さ
初期値:3
調整説明:点群がある空間を3Dグリッドにします。このパラメータは3Dグリッドの最小単位(mm)になります。この値を大きくしたら、選択する範囲は広くなり、アルゴリズムの実行速度も速くなりますが、マッチングの精度は低下します。
単一点群の出力結果の数
初期値:3
調整説明: SurfaceMatching アルゴリズムを実行した場合、このパラメータの機能は SurfaceMatchingEasyMode と同じです。
調整の例:下図に示すように、左は 1 にした結果で、右は初期値 3 にした結果です。
../../../../_images/number_of_outputs.png

結果可視化の設定

サンプリングされたモデルの点群を表示
初期値:チェックを入れない
オプション:チェックを入れる/入れない
調整説明:このパラメータはダウンサンプリングされたモデルの点群を表示します。
サンプリングされたシーンの点群を表示
初期値:チェックを入れない
オプション:チェックを入れる/入れない
調整説明:このパラメータはダウンサンプリングされたシーンの点群を表示します。
マッチング結果を表示
初期値:チェックを入れる
オプション:チェックを入れる/入れない
調整説明:このパラメータはマッチングされたモデルとシーンの点群を表示します。