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
調整説明:ダウンサンプリングされたシーン点群の点の最大値を設定します。すなわち、ダウンサンプリングされたシーン点群の点の数の上限を設定します。マッチングの効果は良くない場合にこの値を大きくしてください。マッチングの速度を上げたい場合に小さくしてください。
- モデル点群サンプリング間隔
-
初期値:10.000 mm
調整説明:ダウンサンプリングする点の間の最大距離(ミリメートル単位)を調整します。モデル点群のダウンサンプリング間隔が最小サンプリング間隔より小さい場合に、最小サンプリング間隔を実際のサンプリング間隔とします。この値が大きいほど、サンプリング後に計算に使用する点群の数は少なくなり、マッチングの精度は低下し、アルゴリズムの実行時間は短くなります。
調整の例:下図のように示します。左側は0.01(初期値)にした結果で、右側は0.02にした結果です。
- 最小サンプリング間隔
-
初期値:3.000 mm
調整説明:このパラメータは、サンプリング間隔(ミリメートル単位)を計算するために使用されます。自動ダウンサンプリング にチェックを入れた場合に有効になります。計算したサンプリング間隔がこの値より小さい場合に、この値を実際のサンプリング間隔とします。
投票設定
- 距離の定量化
-
初期値: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にした結果です。
結果可視化の設定
- ダウンサンプリングされたモデルの点群を表示
-
初期値:チェックを入れない
調整説明:このパラメータはダウンサンプリングされたモデルの点群を表示します。
- サンプリングされたシーンの点群を表示
-
初期値:チェックを入れない
調整説明:このパラメータはダウンサンプリングされたシーンの点群を表示します。
- マッチング結果を表示
-
初期値:チェックを入れる
調整説明:このパラメータはマッチングされたモデルとシーンの点群を表示します。