3D位置姿勢高精度推定¶
使用シーン¶
このステップは 3D位置姿勢低精度推定 に出力された大まかな候補位置姿勢に基づいて実行し、さらに精確なマッチングをし、さらに正確な位置姿勢を出力します(把持位置姿勢として使用可能)。
入力と出力¶
パラメータ説明¶
パラメータのデバッグレベル
初期値:基本設定
オプション:基本設定、詳細設定
調整説明:二つの異なるパラメータ調整レベルを設定できます。
基本設定¶
ここで、基本設定モードの調整可能なパラメータについて説明します。これらのパラメータは 詳細設定 でも調整できます。
モデルの設定
- モデル選択
- 調整説明:右側のドロップダウンボタンをクリックして、モデルファイルと対応する幾何学的中心ファイルをすばやく選択して切り替えることができます。
- モデルファイル
- 調整説明:アイコン をクリックして、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調整説明:反復とは要件を満たすまで特定のコマンドを繰り返し実行することです。反復回数はこのプロセスにコマンドを繰り返す回数を指し、ここで設定するパラメータは反復回数の上限です。この値が大きいほど、マッチング計算する回数は多くなり、実行時間も長くなりますが、マッチング精度は向上します。
- 標準偏差
- 初期値:0.005m調整説明:このパラメータは元位置姿勢の偏差と対応します。この前のステップ( 3D位置姿勢低精度推定 )で処理された元位置姿勢の偏差が大きい、即ちシーンの点群とモデルの点群の偏差が大きいほど、 標準偏差 を大きくしなければなりません。この時、実行速度は速くなります。調整の例:設定された値が元の位置姿勢より大きい場合に、出力結果に大きな誤差が生じることがあります。下図に示すように、右側の 標準偏差 は
0.04m
で、その元の位置姿勢よりずっと大きいので、初期値(下図の左側)と比較すれば、出力された結果の精度は大幅に低下します。通常、このパラメータの値は0.01m
以下です。
ヒント
小さいワークのマッチングでは、より良いマッチング結果を得るために、標準偏差を低く調整することをお勧めします。
- 標準偏差減衰の更新ステップサイズ
- 初期値:3調整説明:マッチングのプロセスには、 標準偏差 は 最小標準偏差 に設定した値になるまで小さくなります。このプロセスでは標準偏差減衰の回数はこのパラメータの値です。標準誤差が大きい場合に、減衰の回数が多いほど、減衰のプロセスは安定的になります。普通、このパラメータを調整する必要はありません。
- 多数の対象物のマッチングを高速化
- 初期値:チェックを入れない。調整説明:チェックを入れると、多数の対象物をマッチングする場合はこのステップが高速になりますが、少数の対象物をマッチングする場合は遅くなります。
最近点モードのパラメータ設定
反複設定
- 最近点の検索半径
- 初期値:0.01 m有効範囲:[0.0010,+∞)調整説明:このパラメータは最近点の検索半径を調整し、単位はmです。その値の設定は入力された元位置姿勢の偏差と対応します。入力された元位置姿勢の偏差が大きい時、即ちシーンの点群とモデルの点群との偏差が大きい時に、このパラメータの値を大きくして最近点の検索半径範囲を広めます。こうしてあらゆる点は最近点を見つけられます。元位置姿勢の偏差が小さい時にこの値を小さくします。このパラメータの最小値は
0.001m
です。この値より小さい場合、一部分の疎らな点は最近点を見つけられなくて出力の結果に影響が出ます。 - 平均二乗誤差しきい値
- 初期値:0.001調整説明:このパラメータは平均二乗誤差の値を調整します。反復するたびにこの値は記録され、後続の反復に比較されます。反復の平均二乗誤差の値が設定した値より小さい場合に、反復の目標に達したとみなされて反復を停止します。
- ウィンドウサイズ
- 初期値:10有効範囲:[3,+∞)調整説明:このパラメータは反復プロセスに誤差変動が小さい連続反復回数です。この値が小さい場合に、局所最適解が起こり得るので最終的なマッチング精度に影響がでます。例えば、ウィンドウには三回の連続反復の結果の誤差が含まれるので、この三回の反復の誤差を比較して誤差変動のトレンドを取得するしかないので全部の最適解(反復回数推奨値を使用して全体は30回の反復があり、後にさらに明らか誤差が小さくなった反復が起こり得る)でなく、一部だけの最適解を取得(二回目の反復の誤差は一回目と三回目より小さい)するかもしれません。
- 対応する点を表示
- 初期値:チェックを入れない調整説明:チェックを入れれば、毎回の反復に対応する点を表示します。
- 複雑形状の対象物であるか
- 初期値:チェックを入れない調整説明:対象物が複雑形状の対象物(単純な幾何学的形状ではない)であり、 反復ポイントペアの重みを自動的に計算 が必要な場合は、このパラメータにチェックを入れる必要があります。
- 反復ポイントペアの重みを自動的に計算
- 初期値:チェックを入れないオプション:チェックを入れる/チェックを入れない調整説明:チェックを入れれば、反復ポイントペアの重みを自動的に計算します。マッピングの結果が良くない場合にこれを使用してください。
ポイントペアの除去設定
- 異常ポイントペア除去
- 初期値:チェックを入れない調整説明:最近点の検索プロセスに、複数のポイントペアが出てくるのでこの機能を使用してそれらをフィルタリングします。 チェックを入れれば、この機能を使用し、 ポイントペア除去シグマ複数しきい値 と ポイントペア角度差のしきい値 パラメータを使用して異常ポイントペアを除去します。 チェックを外すと、その二つのパラメータは無効になります。
- ポイントペア除去シグマ複数しきい値
- 初期値:1.0000調整説明:シグマ複数しきい値とはペアポイント間の距離分散の倍数の値です。このパラメータはペアポイント間の距離によってフィルタリングします。ペアポイント間の距離がこの範囲を超えたら、このペアポイントは除去されます。
- ポイントペア角度差のしきい値
- 初期値:45°調整説明:ペアポイントの法線ベクトルの角度がこの値より大きい場合、このペアポイントは除去されます。
- 反復で重みを使用
- 初期値:チェックを入れない調整説明:チェックを入れれば、モデルの重みがアルゴリズムの反復に使用されるので、重みモデルをより正確にマッチングすることができます。
- 重複ポイントペア除去
- 初期値:チェックを入れない調整説明:チェックを入れれば、重複ポイントペアを除去して 重複点群タイプ除去 は機能します。モデル点群の点数がシーンの単一物体の点数より多い場合に使用することをお勧めします。
- 重複点群タイプ除去
- 初期値:MinDisオプション:MinDis、GlobalMin調整説明:このパラメータはペアポイントの重複対応を削除する方法を選択します。二つの方法があります。最小距離 は重複対応するペアポイントの距離を計算し、最小距離のペアポイントを保持し、他の重複ペアポイントを除去します。全体平均値 は各重複対応するペアポイントの距離の平均値を基準にして、この値と差が最も小さいペアポイントを保持し、重複が少ない対応するペアポイントを除去します。
サンプリング設定
- サンプリング間隔
- 初期値:0.005m調整説明:モデルとシーンの点群のダウンサンプリングに使用するサンプリング間隔です。この値が大きいほど、サンプリングで取得する点群は少なくなり、モデル予想の精度は低下します。調整の例:下図は
0.005
(左)と0.025
(右)にしたときに取得した点群の結果です。白いのは入力されたシーンの点群です。それらを比較すれば、サンプリング間隔が小さいほど、取得する出力結果は精確になります。
結果検証設定
- 信頼度しきい値
- 初期値:0.5有効範囲:[0,+∞)調整説明:結果の検証スコアがこの値より大きい場合、結果を有効として出力します。高いしきい値有効なマッチングが少なくなることを意味しますが出力の精度は高くなります。低いしきい値は有効なマッチングが多くなることを意味しますが出力の精度は低くなります。調整の例: 下図では、aの 信頼度しきい値 は
0.500
で、bの値は0.92
です。bの点群マッチングの結果はaより精度が高いです。そのため、 信頼度しきい値 が大きいほど、精度の高いマッチングの結果が保持される可能性は高くなります。注意
しきい値を高くしたら、特に対象物の異なる部分に同じ形状がある場合にマッチングを出力しないこともあります。
- 結果評価の検索半径
- 初期値:0.01 m有効範囲:[0,+∞)調整説明:このパラメータの値は、位置姿勢のマッチングスコアに影響します。この値が大きいほど位置姿勢のマッチング結果の評価が甘くなり、位置姿勢のマッチング精度が出なくても位置姿勢のマッチングスコアが高くなります。この値が小さいほど位置姿勢のマッチング結果の評価が厳しくなります。対象物の点群に応じて設定する必要があります。点群がまばらな場合は、このパラメータを適切に上げることができます。
ちなみに
まずは初期の 結果評価の検索半径 を設定し、ステップを実行して可視化出力ウィンドウで位置姿勢のマッチング効果を確認し、位置姿勢のマッチングスコアと対比します。マッチング効果とマッチングスコアが一致していない場合、実際の状況に応じて 結果評価の検索半径 の値をマッチング効果とマッチングスコアが一致するまで調整することができます。
出力設定
- 単一点群の出力結果の数
- 初期値: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°に設定すると、正しいマッチング結果が得られます。
位置姿勢フィルタリング設定
- モデルの回転角度による位置姿勢をフィルタリング
- パラメータ説明:エッジマッチングモードでは、シーンの点群にマッチングするために点群モデルをある角度だけ回転させる必要がある場合があり、点群モデルの回転角度で位置姿勢が除去されます。モデルの回転角度が「角度差の上限しきい値」を超えると、その位置姿勢は除去されます。初期値:オンの状態。
検証時のモデルの重み
認識する部品の「主体」が類似して「局所」だけが異なった場合、モデルの「局所」の重みを大きくして「局所」のマッチングの結果を出力します。
- モデルの重みファイル
- 調整説明:このファイル(ply形式)は元の点群モデルファイルの一部分の点群で、点群のこの部分は重みが高く、パラメータ 重み値 によって設定されます。
- 重み値
- 初期値:2.0調整説明:このパラメータは点群に重みを設定します。すべての元点群の重み係数が
1
とすれば、目標点群にこのパラメータを設定したら、目標点群の重み係数は \(1 X このパラメータ\) になるので、後続のマッチングステップでは強調を実現できます。 - 重み設定の検索半径
- 初期値:0.0030調整説明:このパラメータは点群に重みを増加する過程に検索半径を設定します。重みの設定は元のモデル点群に基づいて実行し、モデル点群はマッチングに使用される前にダウンサンプリングされるので重み設定が必要な点が移動したり損失したりすることはあります。そのような点の付近の点に重み設定するプロセスに、検索半径を設定する必要はあります。この検索半径はこのパラメータによって設定します。
- 調整の例
この例は、対称性設定の例に続いて説明します。
クランクシャフトの「主体」が類似して「局所」だけが異なった場合、モデルの「局所」の重みを大きくして「局所」のマッチングの結果を出力します。
結果検証設定
- 結果評価時の点から法線ベクトルへの角度偏差を考慮
- 初期値:チェックを入れない調整説明:チェックを入れれば、位置姿勢を検証する過程に対応するポイントペアの法線ベクトルの角度差を考慮すので、出力の数が少なくなりますが精度が高くなります。
- スコアに対応する点がシーンの点群に占める比例をかける
- 初期値:チェックを入れない調整説明:チェックを入れれば、マッチングのスコアに「対応する点がシーンの点群に占める比例」をかけます。1つの点群に複数の物体位置姿勢がある場合に適していません。
結果の可視化設定
- サンプリングされたモデル点群を表示
- 初期値:チェックを入れない調整説明:チェックを入れれば、出力の結果にサンプリングされたモデル点群が表示されます。現場の状況に応じて設定します。
- サンプリングされたシーンの点群を表示
- 初期値:チェックを入れない調整説明:チェックを入れれば、出力の結果にサンプリングされたシーンの点群が表示されます。現場の状況に応じて設定します。
- モデルとシーンの点群の対応関係を表示
- 初期値:チェックを入れない調整説明:チェックを入れれば、出力の結果にモデルとシーンの点群の対応関係が表示されます。現場の状況に応じて設定します。