3D位置姿勢低精度推定(マルチモデル)¶
機能¶
複数のモデルを使用してシーン内の対象物に対して大まかなマッチングを行い、対象物の大まかな候補位置姿勢を出力します。
使用シーン¶
複数のモデルを使用してシーン内の対象物の大まかな位置姿勢を計算します。これは 3D位置姿勢低精度推定 を拡張したステップで、パラメータの調整方法はたいてい同じです。
複数のモデル点群を入力してマッチングを実行できます。マルチモデルのシーンでは、部品の種類を確認または分類するために使用されます。通常、より正確な位置姿勢を取得するために、このステップの後に 3D位置姿勢高精度推定(マルチモデル) を繋ぎます。
入力と出力¶
パラメータの説明¶
モデルと把持位置姿勢の設定
モデルファイルと把持位置ファイルのパスを設定します。
- モデルファイル(必須)
- 初期値:model.ply調整説明:ply形式のモデル点群です。複数のファイルパスを入力することができます。ファイル名の間にセミコロンを入力してください。
- 幾何学的中心ファイル(必須)
- 調整説明:json形式の幾何学的中心ファイルです。複数のファイルパスを入力することができます。ファイル名の間にセミコロンを入力してください。調整の例:各パラメータにファイルを同じ順序で入力してください。 モデルファイル と 幾何学的中心 に同じファイルパスを入力してください。下図に示すように、 ファイル名の間に
;
を入力してください。
点群の点が位置する平面の方向を計算
- 点が位置する平面の方向の計算方法
- 初期値:入力点群の法線を使用(Origin)
オプション |
調整説明 |
入力点群の法線を使用(Origin) |
入力された点群の元の法線ベクトルを使用します。 |
StandardMode |
CPUを使用して入力された点群の法線ベクトルを再計算します。モデルに法線ベクトルがない場合に使用することをお薦めします。目標点の付近に目標点にもっとも近いk個の点を検索して、PCA(主成分分析)を使用して最小の固有ベクトルを取得してこの点の法線ベクトルとします。 |
EdgeTangent |
入力されたエッジ点群の接線を計算し、点群の接線の方向を法線ベクトルとします。輪郭が鏡像となる異なる物体を識別でき、平面形状の物体のエッジ点群をマッチングする場合に使用することをお勧めします。 |
EdgeNormal |
入力されたエッジ点群の法線ベクトルを計算し、この点の接線の方向を法線ベクトルとします。平面形状の物体のエッジ点群をマッチングする場合に使用することをお薦めします。 |
注釈
EdgeTangent または EdgeNormal を使用するとき、各エッジ点群に複数の物体がないこと、つまり各物体の点群がすでに分割されたことを確認してください。
- 選択される隣接点の数
- 初期値:10調整説明:このパラメータは、計算する点の方向に沿う隣接点の数を計算するために使用されます。つまり、 StandardMode のkの値を計算します。
アルゴリズムのタイプ
初期値:SurfaceMatchingEasyModeオプション:SurfaceMatchingEasyMode ,SurfaceMatching調整説明:二つのアルゴリズムのタイプがあります。結果可視化の設定を、どちらのタイプでも調整可能なパラメータに設定します。アルゴリズムのタイプの調整は下図に示すように、正面・裏面モデルを使用してマッチングします。まず、 SurfaceMatchingEasyMode アルゴリズムの調整可能なパラメータについて説明します。SurfaceMatchingEasyMode アルゴリズム:調整可能なパラメータは速度制御と出力設定です。SurfaceMatching アルゴリズム:パラメータをサンプリング設定、投票設定、クラスタリング設定、位置姿勢検証設定に調整できます。
SurfaceMatchingEasyModeパラメータの説明
速度制御
- メイン速度制御パラメータ
- 初期値:2調整説明:このパラメータは、アルゴリズムの速度を調整します。大きくすればアルゴリズムの速度は速くなりますが、マッチングの精度は低下します。この効果は サブ速度制御パラメータ より強いです。有効な範囲は1~6です。調整の例: 下図の左側は、初期値
2
にした結果で、右側は6
にした結果です。このパラメータを大きくすると、マッチング精度が低下します。 - サブ速度制御パラメータ
- 初期値:10調整説明:このパラメータは、アルゴリズムの速度を調整します。大きくすればアルゴリズムの速度は速くなりますが、マッチングの精度は低下します。この効果は メイン速度制御パラメータ より弱いです。有効な範囲は1~20です。調整の例:下図に示すように、左側はが初期値
10
のパラメータを使用した結果で、右側は15
にした結果です。値を大きくしたらマッチングの精度が低下しましたが、その効果はメイン速度制御パラメータより弱いです。
入力設定
- シングル点群の出力の数
- 初期値:3調整説明:各点群のマッチングに出力される結果の数を予測します。値が大きいほど出力される結果は多くなります。調整の例:対比の結果は下図に示します。左はパラメータを
1
にした結果で、右は3
にした結果です。
SurfaceMatchingパラメータの説明
サンプリング設定
- 自動ダウンサンプリング
- 初期値:チェックを入れる調整説明:このパラメータは、自動ダウンサンプリングを使用するかどうかを選択するために使用されます。チェックを入れれば、サンプリングされたモデルの期待点数に基づいてモデル点群のダウンサンプリングの間隔を自動的に調整します。
- サンプリングされたモデルの期待点数
- 初期値:1000調整説明:このパラメータは、サンプリングする点群の点数を調整するために使用されます。 自動ダウンサンプリング にチェックを入れた場合に有効になり、取得する点群の点数はこの値に近いです。この値が小さいほど、サンプリングする点群の点数は少なくなり、位置姿勢推定の精度も低下します。
- モデルサンプリングの最大点数
- 初期値:4000調整説明:ダウンサンプリングされたモデル点群の点数の最大値を調整します。すなわち、ダウンサンプリングされたモデル点群の点の数の上限を設定します。マッチングの効果は良くない場合にこの値を大きくしてください。マッチングの速度を上げたい場合に小さくしてください。
- シーンサンプリングの最大点数
- 初期値:3000調整説明:ダウンサンプリングされたシーン点群の点の最大値を設定します。すなわち、ダウンサンプリングされたシーン点群の点の数の上限を設定します。マッチングの効果は良くない場合にこの値を大きくしてください。マッチングの速度を上げたい場合に小さくしてください。
- サンプリング間隔
- 初期値:0.01調整説明:ダウンサンプリングする点の間の最大距離を調整します。mを単位とします。モデル点群のダウンサンプリング間隔が最小サンプリング間隔より小さい場合に、最小サンプリング間隔を実際のサンプリング間隔とします。この値が大きいほど、サンプリング後に計算に使用する点群の数は少なくなり、マッチングの精度は低下し、アルゴリズムの実行時間は短くなります。調整の例: 下図に示します。上図は初期値
0.01
にした結果で、下図は0.02
にした結果です。 - 最小サンプリング間隔
- 初期値:0.003調整説明:このパラメータは、サンプリング間隔(ミリメートル単位)を計算するために使用されます。 自動ダウンサンプリング にチェックを入れた場合に有効になります。計算したサンプリング間隔がこの値より小さい場合に、この値を実際のサンプリング間隔とします。
投票設定
- 距離の定量化
- 初期値:1調整説明:点と点との間の距離を定量化します。 \(距離間隔 = 距離定量化 × サンプリング間隔\) 、したがってこのパラメータを大きくしたら間隔も大きくなり、マッチングの精度も低下します。
- 角度の定量化
- 初期値:60調整説明:点の法線の角度を定量化します。 \(角度の間隔 = 2 × 3.14 / 角度の定量化\) 、したがってこのパラメータを大きくしたら、角度の間隔は大きくなり、マッチングの精度は低下します。
- 最大投票率
- 初期値值:0.8調整説明:投票の数が最大投票数に占める比率のしきい値を設定します。前のステップで各位置姿勢が対応する投票数を取得し、最大投票数にこのパラメータの値をかけるとしきい値を取得します。投票数がこのしきい値より大きい位置姿勢が保持されてクラスタリングされます。この値が小さいほど、正確なマッチング結果を得る確率も高くなりますが、実行時間も長くなります。このパラメータの有効範囲は0~1です。
- 参考点のサンプリングステップサイズ
- 初期値:5調整説明:参考点のサンプリングステップサイズを調整します。点群では、このステップサイズを間隔としてサンプリングします。この値が大きいほどサンプリングする点は少なくなり、実行の速度は早くなりますが、マッチングの精度は低下します。
- 参考される点のサンプリングステップサイズ
- 初期値:1調整説明:参考される点のサンプリングステップサイズを調整します。点群では、このステップサイズを間隔としてサンプリングします。この値が大きいほどサンプリングする点は少なくなり、実行の速度は早くなりますが、マッチングの精度は低下します。参考点 と 参考される点 とは、ポイントペアになります。サンプリング間隔が大きいほど、参考点と参考される点は少なくなり、ポイントペアも少なくなり、実行の速度は速くなります。参考点 とは、マッチングモデルにあるサンプリングする点です。 参考される点 とはマッチングモデルにないサンプリングする点です。
クラスタリング設定
- クラスタリング比率
- 初期値:0.1調整説明:クラスタリングに使用する位置姿勢が計算によって取得した全ての位置姿勢に占める比率を調整します。いかなる位置姿勢も計算によってスコアが得られ、スコアによって位置姿勢をソートします。このパラメータは、クラスタリングに使用する位置姿勢の比率を決めます。初期値は0.1で、つまり最初の10%の位置姿勢をクラスタリングに使用します。この値が大きいほど、正確なマッチングの結果を得る確率は高くなりますが、実行時間も長くなります。
- 角度差しきい値
- 初期値:15調整説明:このパラメータはクラスタリングのプロセスの角度増量を調整します。最終的な計算結果には、一つの対象物に複数の位置姿勢が計算されることがあります。この場合、パラメータが非常に近い位置姿勢をマージするとき、このパラメータは角度の増量を決めます。このパラメータが大きいほど、角度の差が大きい位置姿勢は最終的な結果にマージされ、精度も低下します。
- 距離差しきい値
- 初期値:0.02調整説明:このパラメータはクラスタリングのプロセスの距離増量を調整します。最終的な計算結果には、一つの対象物に複数の位置姿勢が計算されることがあります。この場合、パラメータが非常に近い位置姿勢をマージするとき、このパラメータは距離の増量を決めます。このパラメータが大きいほど、距離の差が大きい位置姿勢は最終的な結果にマージされ、精度も低下します。
- N個の高いスコアの結果を出力
- 初期値:5調整説明:このパラメータはクラスタリングして取得した複数のマッチング結果にスコアが最も高いN個の結果を最終的な結果として出力します。
位置姿勢検証の設定
- 位置姿勢検証を使用
- 初期値:チェックを入れる調整説明:このパラメータは位置姿勢検証を使用するかを選択するために使用されます。このパラメータにチェックを入れれば、クラスタリングのパラメータは全部無効になります。位置姿勢検証とクラスタリングは、異なる最終的なマッチング結果の検証・フィルタリングする方法なので同時に使用することはできません。
- 隣接点の検索半径
- 初期値:1調整説明:このパラメータは位置姿勢検証のプロセスに検証するエリアのサイズを調整します。ボクセルを単位とします。この値を大きくしたら、位置姿勢検証のエリアは広くなり、最終的な結果を検証するために使用する点は多くなるのでマッチングの精度は低下します。
- ボクセルの長さ
- 初期値:3調整説明:点群がある空間を3Dグリッドにします。このパラメータは3Dグリッドの最小単位(mm)になります。この値を大きくしたら、選択する範囲は広くなり、アルゴリズムの実行速度も速くなりますが、マッチングの精度は低下します。
- シングル点群の出力の数
- 初期値:3調整説明: SurfaceMatching を実行した場合、このパラメータは SurfaceMatchingEasyMode を実行した場合と同じです。調整の例:対比の結果は下図に示します。左はパラメータを
3
にした結果で、右は1
にした結果です。
結果の可視化設定
- ダウンサンプリングされたモデルの点群を表示
- 初期値:チェックを入れない調整説明:ダウンサンプリングするモデル点群を表示します。
- ダウンサンプリングされたシーンの点群を表示
- 初期値:チェックを入れない調整説明:ダウンサンプリングするシーン点群を表示します。
- マッチング結果を表示
- 初期値:チェックを入れる調整説明:マッチングされたモデルとシーンの点群を表示します。