3D位置姿勢高精度推定
機能
このステップにより、点群モデルを使用して元の点群に対して精確にマッチングし、対象物の更に正確な位置姿勢を出力します。点群モデルの作成については、 点群モデルを作成 をご参照ください。
使用シーン
このステップは 3D位置姿勢低精度推定 に出力された大まかな候補位置姿勢に基づいて実行し、さらに精確なマッチングをし、さらに正確な位置姿勢を出力します(把持位置姿勢として使用可能)。
入力と出力
その他の入力・出力ポートの説明は下表の通りです。
その他の入力ポート | 説明 |
---|---|
大まかな候補位置姿勢 |
候補位置姿勢リスト(通常は、「3D位置姿勢低精度推定」ステップから取得された大まかな位置姿勢です)。 |
対象物のラベル |
通常は、ディープラーニングの関連ステップによって出力された対象物のラベルです(オプション)。 |
対象物の信頼度 |
通常は、ディープラーニングの関連ステップによって出力された対象物の信頼度です(オプション)。 |
その他の出力ポート | 説明 |
---|---|
モデル変換 |
点群モデルをシーン内のワークの点群に変換する際に使用される変換行列のリスト。 |
対象物のラベル |
対象物のラベル(ディープラーニングステップ関連)。 |
対象物の信頼度 |
対象物の信頼度(ディープラーニングステップ関連)。 |
位置姿勢の信頼度 |
対象物の位置姿勢が対応する信頼度リスト。 |
可視化されたカラー点群 |
カラー点群でマッチング結果を表示します。白色点群はシーンの点群を表し、カラー点群はマッチング後の各対象物の点群を表します。白色点群とカラー点群の重なり具合を比較することで、点群モデルのマッチング効果を確認できます。 |
パラメータの説明
パラメータのデバッグレベル
初期値:基本設定
オプション:基本設定、詳細設定
調整説明:二つの異なるパラメータ調整レベルを設定できます。
基本設定
ここで、基本設定(Basic)モードで調整可能なパラメータについて説明します。これらのパラメータは 詳細設定 でも調整できます。
モデル設定
- モデル選択
-
調整説明:右側のドロップダウンボタンをクリックして、モデルファイルと対応する幾何学的中心ファイルをすばやく選択して切り替えることができます。
- モデルファイル
-
調整説明: クリックして、ply形式のモデル点群ファイルを選択します。モデルファイルの作成は点群モデルの生成に関係します。詳しくは、 マッチングモデル・把持位置姿勢エディタ をご参照ください。
- 幾何学的中心ファイル
-
調整説明: をクリックして、json形式の幾何学的中心ファイルを選択します。幾何学的中心ファイルの作成は把持位置姿勢の追加に関係します。詳しくは、 マッチングモデル・把持位置姿勢エディタ をご参照ください。
点群の点が位置する平面の方向を計算
- 点が位置する平面の方向の計算方法
-
初期値:入力点群の法線を使用(Origin)
調整説明:点群の点の方向を計算する方法は4つあります。実際の状況に応じて選択します。
オプション | 調整説明 |
---|---|
入力点群の法線を使用(Origin) |
入力点群の元の法線ベクトルを使用します。 |
StandardMode |
CPUを使用して入力点群の法線ベクトルを再計算します。モデルに法線ベクトルがない場合に使用することをお薦めします。目標点の付近にそれに最も近い点をk個を見つけ、PCA(主成分分析)を使用して最小特徴ベクトルを取得してこの点の法線ベクトルとします。 |
EdgeTangent |
入力されたエッジ点群の接線を計算し、それを法線ベクトルとします。輪郭が鏡像となる異なる物体を判別できます。平面物体のエッジ点群をマッチングする時に使用することをお薦めします。以下の2つの場合に使用されます。 |
1:表・裏を判別します。3D位置姿勢高精度推定(マルチモデル) ステップを使用でき、モデル点群は物体の表・裏モデルです。 |
|
2:表・裏を判別しません。3D位置姿勢高精度推定 ステップは十分です。 |
|
EdgeNormal |
入力されたエッジ点群の法線ベクトルを計算します。平面形状の物体のエッジ点群をマッチングする場合に使用することを推奨します。 |
EdgeTangent または EdgeNormal を使用する時、各エッジ点群に複数の物体がないことを確認してください。つまり、各物体の点群が分割されたことを確認してください。 |
- 選択された隣接点の数
-
初期値:10
調整説明:このパラメータは点の方向にある隣接点の数を計算します。最小値は1です。
対応の設定
初期値: GMM
オプション:GMM、nearest-neighbor
調整説明:このパラメータは局所マッチング方法を選択し、モデル点群とシーンの点群をマッチングします。モデル点群は前のステップで取得したシーンの点群とマッチングするために、設定した範囲によって移動・回転します。
調整の例:ほとんどのシーンでは、 GMM はより優れている外乱耐性とより速いマッチング速度を実現できるのでこのモードを推奨します。特別な場合(GMMでは要求を満たさない時)、最近点( nearest-neighbor )モードを試行してください。
GMMモードパラメータ設定
- マッチングモード
-
初期値:標準
オプション:高速、標準、高精度
調整説明:マッチングモードは3つあり、実際の状況に応じて適切なものを選択してください。
高速:速度が最も速いですが、精度は低いです。 標準:安定的に実行できるモードです。 高精度:高精度を実現できますが、速度が遅いです。
- 反復回数
-
初期値:30
調整説明:反復とは、条件が満たされるまで、特定の命令に対してループを実行することです。反復回数はこのプロセスにコマンドを繰り返す回数を指し、ここで設定するパラメータは反復回数の上限です。この値が大きいほど、マッチング計算する回数は多くなり、実行時間も長くなりますが、マッチング精度は向上します。
- 標準偏差
-
初期値:3.000 mm
調整説明:このパラメータは元位置姿勢の偏差と対応します。この前のステップ( 3D位置姿勢低精度推定 )で処理された元位置姿勢の偏差が大きい、即ちシーンの点群とモデルの点群の偏差が大きいほど、 標準偏差 を大きくしなければなりません。この時、実行速度は速くなります。
調整の例:設定された値が元の位置姿勢より大きい場合に、出力結果に大きな誤差が生じることがあります。下図に示すように、右側の標準偏差は4mmで、初期位置姿勢の偏差よりもはるかに大きいです。左側(初期値)と右側を比較すると、出力の精度が著しく低下しています。通常、このパラメータの値は1mm以下です。
小さいワークのマッチングでは、より良いマッチング結果を得るために、標準偏差を低く調整することを推奨します。
- 標準偏差減衰の更新ステップサイズ
-
初期値:3
調整説明:マッチング処理中、 標準偏差 は最小標準偏差 で設定された値に達するまでどんどん小さくなります。その過程で標準偏差が減衰する回数がこのパラメータの値です。標準誤差が大きい場合に、減衰の回数が多いほど、減衰が安定的に実行できるようになります。普通、このパラメータを調整する必要はありません。
- 多数の対象物のマッチングを高速化
-
初期値:チェックを入れない。
調整説明:シーンに多数の対象物がある場合は、このパラメータにチェックを入れることを推奨します。チェックを入れると、多数の対象物をマッチングする場合はこのステップが高速になりますが、少数の対象物をマッチングする場合は遅くなります。
最近点モードのパラメータ設定
反複設定
- 最近点の検索半径
-
初期値:10.000 mm
有効範囲:[0.0010,+∞)
調整説明:このパラメータは最近点の検索半径を調するために使用されます。その値の設定は入力された元位置姿勢の偏差と対応します。入力された元位置姿勢の偏差が大きい時、即ちシーンの点群とモデルの点群との偏差が大きい時に、このパラメータの値を大きくして最近点の検索半径範囲を広めます。こうしてあらゆる点は最近点を見つけられます。元位置姿勢の偏差が小さい時にこの値を小さくします。このパラメータの最小値は0.001mです。この値より小さい場合、一部分の疎らな点は最近点を見つけられなくて出力の結果に影響が出ます。
- 平均二乗誤差しきい値
-
初期値:0.001
調整説明:誤差の二乗和の平均値を調整します。反復するたびにこの値が記録され、その後の反復ステップの結果を比較するために使用されます。設定した値より小さい誤差の二乗和の平均値が出たら、期待された結果を取得したことになり、反復を中止します。
- ウィンドウサイズ
-
初期値:10
有効範囲:[3,+∞)
調整説明:このパラメータは反復プロセスに誤差変動が小さい連続反復回数です。この値が小さい場合に、局所最適解が起こり得るので最終的なマッチング精度に影響がでます。例えば、ウィンドウには三回の連続反復の結果の誤差が含まれるので、この三回の反復の誤差を比較して誤差変動のトレンドを取得するしかないので全部の最適解(反復回数推奨値を使用して全体は30回の反復があり、後にさらに明らか誤差が小さくなった反復が起こり得る)でなく、一部だけの最適解を取得(二回目の反復の誤差は一回目と三回目より小さい)するかもしれません。
- 対応する点を表示
-
初期値:チェックを入れない
調整説明:チェックを入れれば、毎回の反復に対応する点を表示します。
- 複雑形状の対象物であるか
-
初期値:チェックを入れない
調整説明:対象物が複雑形状の対象物(単純な幾何学的形状ではない)であり、 反復ポイントペアの重みを自動的に計算 が必要な場合は、このパラメータにチェックを入れる必要があります。
- 反復ポイントペアの重みを自動的に計算
-
初期値:チェックを入れない
調整説明:チェックを入れれば、反復ポイントペアの重みを自動的に計算します。マッピングの結果が良くない場合にこれを使用してください。
ポイントペアの除去設定
- 異常ポイントペア除去
-
初期値:チェックを入れない
調整説明:最近点を検索する過程に複数のポイントペアが生じるので、この機能を使用してポイントペアをフィルタリングします。チェックを入れれば、この機能を使用し、 ポイントペア除去シグマ複数しきい値 と ポイントペア角度差のしきい値 パラメータを使用して異常ポイントペアを除去します。 チェックを外すと、その二つのパラメータは無効になります。
- ポイントペア除去シグマ複数しきい値
-
初期値:1.0000
調整説明:シグマ複数しきい値とはペアポイント間の距離分散の倍数の値です。このパラメータはペアポイント間の距離によってフィルタリングします。ペアポイント間の距離がこの範囲を超えたら、このペアポイントは除去されます。
- ポイントペア角度差のしきい値
-
初期値:45°
調整説明:ペアポイントの法線ベクトルの角度がこの値より大きい場合、このペアポイントは除去されます。
- 反復で重みを使用
-
初期値:チェックを入れない
調整説明:チェックを入れれば、モデルの重みがアルゴリズムの反復に使用されるので、重みモデルをより正確にマッチングすることができます。
- 重複ポイントペア除去
-
初期値:チェックを入れない
調整説明:チェックを入れれば、重複ポイントペアを除去して 重複点群タイプ除去 は有効になります。モデル点群の点数がシーンの単一物体の点数より多い場合に使用することを推奨します。
- 重複点群タイプ除去
-
初期値:MinDis
オプション:MinDis、GlobalMin
調整説明:このパラメータはペアポイントの重複対応を削除する方法を選択します。二つの方法があります。
MinDis :対応が重複するポイントペアの間の距離を計算し、距離が最も小さいポイントペアを保持して残りのポイントペアを除去します。 GlobalMin :対応が重複するポイントペアの間の距離の平均値を基準として、この平均値との差が最も小さいポイントペアを保持して、残りのポイントペアを除去します。
サンプリング設定
- サンプリング間隔
-
初期値:5.000 mm
調整説明:モデルとシーンの点群ダウンサンプリングのためのサンプリング間隔です。この値を高くすれば、サンプリングによって取得する点群は少なくなり、モデルマッチングの精度も低下します。
調整の例:下図は0.005(左)と0.025(右)にしたときに取得した点群の結果です。白いのは入力されたシーンの点群です。それらを比較すれば、サンプリング間隔が小さいほど、取得する出力結果は精確になります。
結果検証設定
- 信頼度しきい値
-
初期値:0.5
有効範囲:[0,+∞)
調整説明:結果の検証スコアがこのしきい値よりも大きい場合、結果は有効であると見なされます。高いしきい値有効なマッチングが少なくなることを意味しますが出力の精度は高くなります。低いしきい値は有効なマッチングが多くなることを意味しますが出力の精度は低くなります。
調整の例:下図では、aの 信頼度しきい値 は0.500で、bの値は0.92です。bの点群マッチングの結果はaより精度が高いです。そのため、 信頼度しきい値 が大きいほど、精度の高いマッチングの結果が保持される可能性は高くなります。
しきい値を高くしたら、特に対象物の異なる部分に同じ形状がある場合にマッチングを出力しないこともあります。
- 結果検証の検索半径
-
パラメータ説明:シーン点群とモデル点群の距離がこの値より小さい場合、シーン点群とモデル点群は重なっているとみなされます。重なっている点が多いほど、マッチング結果の検証スコアが高くなります。
初期値:10.000mm
調整説明:このパラメータの値はマッチングスコアに影響します。この値が大きいほど、マッチング結果の検証が甘くなり、位置姿勢のマッチング精度が出なくても位置姿勢のマッチングスコアが高くなります。この値が小さいほど、マッチング結果の検証が厳しくなります。対象物の点群に応じて設定する必要があります。点群がまばらな場合は、パラメータを少し大きく設定する必要があります。
初期の 結果検証の検索半径 値を設定し、ステップを実行して可視化出力ウィンドウで位置姿勢のマッチング効果を確認し、位置姿勢のマッチングスコアと比較します。マッチング効果とマッチングスコアが一致していない場合、実際の状況に応じて 結果検証の検索半径 の値をマッチング効果とマッチングスコアが一致するまで調整することができます。 |
出力設定
- 単一点群の出力結果の数
-
初期値:1
調整説明:この値が大きいほど、マッチング結果の出力は多くなります。
調整の例:このパラメータを調整して異なるマッチング出力結果を取得します。下図の左側はこのパラメータを1にした結果で、右側は4にした結果です。
結果可視化の設定
- マッチング結果を表示
-
初期値:チェックを入れる
調整説明:チェックを入れれば、出力されたモデルとシーンの点群が表示されます。
詳細設定
詳細設定に新たに追加した調整可能なパラメータについて説明します。基本設定と同じパラメータがあれば、 基本設定 をご参照ください。
対称性設定
認識する部品が局所対称性を持つ場合、局所最適解を回避するために、対称性を設定する必要があります。 幾何学的中心点の軸を回転軸として指定することにより、モデルは設定された軸を中心に回転してマッチングし、最適なマッチング結果を取得します。
- 対称回転軸
-
初期値:ROTATE_BY_Z
オプション:ROTATE_BY_X、ROTATE_BY_Y、ROTATE_BY_Z
調整説明:このパラメータは、幾何学的中心の回転軸を選択するために使用されます。
- 対称角度ステップサイズ
-
初期値:360°
調整説明:このパラメータは対称角度を調整します。
調整の例:対象物が対称軸を中心に60°回転する前後で同じように見える場合、その対称角度ステップサイズは60°です。
- 最小回転角度
-
初期値:-180°
調整説明:このパラメータは最小回転角度を調整するために使用されます。
- 最大回転角度
-
初期値:180°
調整説明:このパラメータは最大回転角度を調整するために使用されます。
- 調整の例
-
下図に示すクランクシャフトの場合、その主要部分、つまりボックス内の部分は、Y軸に沿って180°対称です。
対称性が設定されていない場合、下図に示すように、局所的な形状が類似しているため、マッチング結果が局所最適になり、マッチングエラーが発生する可能性があります。
エラー結果を分析すると、モデルはクランクシャフトの中間部分のみにマッチングします。モデルがマッチング中に180°回転した後にマッチングを試行すると、クランクシャフト全体がマッチングします。また、そのマッチングスコアは、回転前のマッチングスコアよりも高くなるはずです。そうすれば、正しい結果を得ることができます。
下図に示すように、対称回転軸をROTATE_BY_Y(幾何学的中心点のY軸)に設定し、対称角度ステップサイズを180°に設定すると、正しいマッチング結果が得られます。
位置姿勢フィルタリング設定
- モデルの回転角度による位置姿勢をフィルタリング
-
パラメータ説明:エッジマッチングモードでは、シーンの点群にマッチングするために点群モデルをある角度だけ回転させる必要がある場合があり、点群モデルの回転角度で位置姿勢が除去されます。モデルの回転角度が「角度差の上限しきい値」を超えると、その位置姿勢は除去されます。
初期値:オフの状態。
- 角度差の上限しきい値
-
詳細については、「モデルの回転角度による位置姿勢をフィルタリング」パラメータの説明をご参照ください。
初期値:135.000°
検証時のモデルの重み
認識する部品の「主体」が類似して「局所」だけが異なった場合、モデルの「局所」の重みを大きくして「局所」のマッチングの結果を出力します。
- モデルの重みファイル
-
調整説明:このファイル(ply形式)は元の点群モデルファイルの一部分の点群で、点群のこの部分は重みが高く、パラメータ 重み値 によって設定されます。
- 重み値
-
初期値:2.0
調整説明:このパラメータは点群に重みを設定します。すべての元点群の重み係数が1とすれば、目標点群にこのパラメータを設定したら、目標点群の重み係数は 1 X このパラメータ になるので、後続のマッチングステップでは強調を実現できます。
- 重み設定の検索半径
-
初期値:3.000 mm
調整説明:このパラメータは点群に重みを増加する過程に検索半径(ミリメートル単位)を設定します。重みの設定は元のモデル点群に基づいて実行し、モデル点群はマッチングに使用される前にダウンサンプリングされるので重み設定が必要な点が移動したり損失したりすることはあります。そのような点の付近の点に重み設定するプロセスに、検索半径を設定する必要はあります。この検索半径はこのパラメータによって設定します。
結果検証設定
- 法線ベクトルの角度偏差を考慮
-
パラメータ説明:マッチング結果を検証する際、シーン点群とモデル点群の対応点との法線ベクトルの角度差を考慮します。チェックを入れると、出力されるマッチの数は減りますが、マッチの精度は向上します。
初期値:チェックを入れない
調整説明:チェックを入れれば、位置姿勢を検証する過程に対応するポイントペアの法線ベクトルの角度差を考慮すので、出力の数が少なくなりますが精度が高くなります。
- スコアに対応する点がシーンの点群に占める比例をかける
-
初期値:チェックを入れない
調整説明:チェックを入れれば、マッチングのスコアに「対応する点がシーンの点群に占める比例」をかけます。1つの点群に複数の物体位置姿勢がある場合に適していません。
結果可視化の設定
- サンプリングされたモデル点群を表示
-
初期値:チェックを入れない
調整説明:チェックを入れれば、出力の結果にサンプリングされたモデル点群が表示されます。現場の状況に応じて設定します。
- サンプリングされたシーンの点群を表示
-
初期値:チェックを入れない
調整説明:チェックを入れれば、出力の結果にサンプリングされたシーンの点群が表示されます。現場の状況に応じて設定します。
- モデルとシーンの点群の対応関係を表示
-
初期値:チェックを入れない
調整説明:チェックを入れれば、出力の結果にモデルとシーンの点群の対応関係が表示されます。現場の状況に応じて設定します。