3D位置姿勢高精度推定

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

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

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

../../../../_images/function_description3.png

使用シーン

このステップは 3D位置姿勢低精度推定 に出力された候補位置姿勢に基づいて実行し、さらに精確なマッチングをし、さらに正確な位置姿勢を出力します(把持位置姿勢として使用可能)。

入力と出力

../../../../_images/input_and_output29.png

パラメータの説明

パラメータのデバッグレベル

初期値:基本設定

オプション:基本設定、詳細設定

調整説明:二つの異なるパラメータ調整レベルを設定できます。

  • Basic は基本的な調整で、少ない調整可能なパラメータはあります。

  • Advanced は詳細設定で、さらに多い調整可能なパラメータがあります。

基本設定

ここで、基本設定(Basic)モードの調整可能なパラメータについて調整します。これらのパラメータは 詳細設定 で調整してください。

モデルの設定

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

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

点が位置する平面の方向の計算方法
初期値:Origin
調整説明:点群の点の方向を計算する方法は四つあります。実際のニーズに応じて選択します。

オプション

調整説明

Origin

入力点群(図1)の元の法線ベクトルを使用します。

StandardMode

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

EdgeTangent

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

シーン1:表・裏を判別します。 3D位置姿勢高精度推定(マルチモデル) ステップを使用でき、モデル点群は物体の表・裏モデルです。

シーン2:表・裏を判別しません。 3D位置姿勢高精度推定 ステップを使用すればいいです。

EdgeNormal

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

注釈

EdgeTangentEdgeNormal を使用する時、各エッジ点群に複数の物体がないことを確認してください。つまり、各物体の点群が分割されたことを確認してください。

選択された隣接点の数
初期値:10
調整説明:このパラメータは点の方向にある隣接点の数を計算します。最小値は1です。

対応の設定

初期値: GMM
オプション: GMMnearest-neighbor
調整説明:このパラメータは局所マッチング方法を選択し、モデル点群とシーンの点群をマッチングします。モデル点群は前のステップで取得したシーンの点群とマッチングするために、設定した範囲によって移動・回転します。
調整の例:ほとんどの場合に、GMM はさらに良い外乱耐候性があり、さらに速いマッチング速度を実現できるので、このモードをお薦めします。特別な場合(GMMでは要求を満たさない時)、最近点( nearest-neighbor )モードを試行してください。その出力の結果は 図2に示します。
../../../../_images/nearest_neighbor.png

図1 最近点(nearest—neighbor)モードで出力した結果の例(左は入力点群)

GMMモードパラメータ設定

マッチングモード
初期値:標準(Standard)
オプション:高速(HighSpeed)、標準(Standard)、高精度(HighPrecision)
調整説明:マッチングモードは三つあり、ニーズに応じて適切なものを選択してください。
HighSpeed:速度は速いですが精度は低いです。
Standard:安定的に実行するモードです。
HighPrecision:精度が高いですが実行速度は遅いです。
反復回数*
初期値:30
調整説明:反復とは要件を満たすまで特定のコマンドを繰り返し実行することです。反復回数はこのプロセスにコマンドを繰り返す回数を指し、ここで設定するパラメータは反復回数の上限です。この値が大きいほど、マッチング計算する回数は多くなり、実行時間も長くなりますが、マッチング精度は向上します。
標準偏差
初期値:0.005m
調整説明:このパラメータは元位置姿勢の偏差と対応します。この前のステップ( 3D位置姿勢低精度推定 )で処理された元位置姿勢の偏差が大きい、即ちシーンの点群とモデルの点群の偏差が大きいほど、 標準偏差 を大きくしなければなりません。この時、実行速度は速くなります。
調整の例:設定された値が元位置姿勢より大きい場合に、出力結果に大きな誤差が生じることがあります。 図2 に示すように、右図の 標準偏差0.04m で、その元位置姿勢よりずっと大きいので、初期値(左図)と比較すれば、出力された結果の精度は大幅に低下します。普通、このパラメータの値は 0.01m 以下です。
../../../../_images/standard_deviation_gmm.png

図2 標準偏差調整の対比

ヒント

小さいワークのマッチングでは、より良いマッチング結果を得るために、標準偏差を低く調整することをお勧めします。

標準偏差減衰の更新ステップサイズ
初期値:3
調整説明:マッチングのプロセスには、 標準偏差最小標準偏差 に設定した値になるまで小さくなります。このプロセスでは標準偏差減衰の回数はこのパラメータの値です。標準誤差が大きい場合に、減衰の回数が多いほど、減衰のプロセスは安定的になります。普通、このパラメータを調整する必要はありません。
多数の対象物のマッチングを高速化
初期値:チェックを入れない。
調整説明:チェックを入れると、多数の対象物をマッチングする場合はこのステップが高速になりますが、少数の対象物をマッチングする場合は遅くなります。

最近点モード(nearest-neighbor)パラメータ設定

反複設定

最近点の検索半径
初期値:0.01 m
有効範囲:[0.0010,+∞)
調整説明:このパラメータは最近点の捜索半径を調整し、単位はmです。その値の設定は入力された元位置姿勢の偏差と対応します。入力された元位置姿勢の偏差が大きい時、即ちシーンの点群とモデルの点群との偏差が大きい時に、このパラメータの値を大きくして最近点の検査半径範囲を広めます。こうしてあらゆる点は最近点を見つけられます。元位置姿勢の偏差が小さい時にこの値を小さくします。このパラメータの最小値は 0.001m です。この値より小さい場合、一部分の疎らな点は最近点を見つけられなくて出力の結果に影響が出ます。
平均二乗誤差しきい値
初期値:0.001
調整説明:このパラメータは平均二乗誤差の値を調整します。反復するたびにこの値は記録され、後続の反復に比較されます。反復の平均二乗誤差の値が設定した値より小さい場合に、反復の目標に達したとみなされて反復を停止します。
ウィンドウサイズ
初期値:10
有効範囲:[3,+∞)
調整説明:このパラメータは反復プロセスに誤差変動が小さい連続反復回数です。この値が小さい場合に、局所最適解が起こり得るので最終的なマッチング精度に影響がでます。例えば、ウィンドウには三回の連続反復の結果の誤差が含まれるので、この三回の反復の誤差を比較して誤差変動のトレンドを取得するしかないので全部の最適解(反復回数推奨値を使用して全体は30回の反復があり、後にさらに明らか誤差が小さくなった反復が起こり得る)でなく、一部だけの最適解を取得(二回目の反復の誤差は一回目と三回目より小さい)するかもしれません。
対応する点を表示
初期値:チェックを入れない
オプション:チェックを入れる/チェックを入れない
調整説明:チェックを入れれば、毎回の反復に対応する点を表示します。
複雑形状の対象物であるか
初期値:チェックを入れない
オプション:チェックを入れる/チェックを入れない
調整説明:対象物が複雑形状の対象物(単純な幾何学的形状ではない)であり、 反復ポイントペアの重みを自動的に計算 が必要な場合は、これをチェックします。
反復ポイントペアの重みを自動的に計算
初期値:チェックを入れない
オプション:チェックを入れる/チェックを入れない
調整説明: チェックを入れれば、反復ポイントペアの重みを自動的に計算します。マッピングの結果が良くない場合にこれを使用してください。

ポイントペアの除去設定

異常ポイントペア除去
初期値:チェックを入れない
オプション:チェックを入れる/チェックを入れない
調整説明:最近点の検索プロセスに、複数のポイントペアが出てくるのでこの機能を使用してそれらをフィルタリングします。 `チェックを入れれば、この機能を使用し、 ポイントペア除去シグマ複数しきい値ポイントペア角度差のしきい値 パラメータを使用して異常ポイントペアを除去します。 チェックを外すと、その二つのパラメータは無効になります。
ポイントペア除去シグマ複数しきい値
初期値:1.0000
調整説明:シグマ複数しきい値とはペアポイント間の距離分散の倍数の値です。このパラメータはペアポイント間の距離によってフィルタリングします。ペアポイント間の距離がこの範囲を超えたら、このペアポイントは除去されます。
ポイントペア角度差のしきい値
初期値:45°
調整説明:ペアポイントの法線ベクトルの角度がこの値より大きい場合、このペアポイントは除去されます。
反復で重みを使用
初期値:チェックを入れない
オプション:チェックを入れる/チェックを入れない
調整説明:チェックを入れれば、モデルの重みはアルゴリズムの反復に使用されます。
重複ポイントペア除去
初期値:チェックを入れない
オプション:チェックを入れる/チェックを入れない
調整説明:チェックを入れれば、重複ポイントペアを除去します。 重複点群タイプ除去 は有効になります。モデル点群の点数がシーンの単一の物体の点群より多い場合に使用することをお薦めします。
重複点群タイプ除去
初期値:MinDis
オプション:MinDis、GlobalMin
調整説明:このパラメータはペアポイントの重複対応を削除する方法を選択します。二つの方法があります。
最小距離(MinDis) は重複対応するペアポイントの距離を計算し、最小距離のペアポイントを保持し、他の重複ペアポイントを除去します。
全体平均値(GlobalMin) は各重複対応するペアポイントの距離の平均値を基準にして、この値と差が最も小さいペアポイントを保持し、重複が少ない対応するペアポイントを除去します。

サンプリング設定

サンプリング間隔
初期値:0.005m
調整説明:モデルとシーンの点群のダウンサンプリングに使用するサンプリング間隔です。この値が大きいほど、サンプリングで取得する点群は少なくなり、モデル予想の精度は低下します。
調整の例:図30.005 (左)と 0.025 (右)にしたときに取得した点群の結果です。白いのは入力されたシーンの点群です。それらを比較して、サンプリング間隔が小さい(図4)ほど、取得する出力結果は精確になります。
../../../../_images/Output_onetofour.png

図3 小さいサンプリング間隔で出力された結果

結果検証

信頼度しきい値
初期値:0.5
有効範囲:[0,+∞)
調整説明:結果の検証スコアがこの値より大きい場合、結果を有効として出力します。高いしきい値有効なマッチングが少なくなることを意味しますが出力の精度は高くなります。低いしきい値は有効なマッチングが多くなることを意味しますが出力の精度は低くなります。
調整の例: 図4には、aの 信頼度しきい値0.500 で、bの値は 0.92 です。bの点群マッチングの結果はaより精度が高いです。そのため、 信頼度しきい値 が大きいほど、精度の高いマッチングの結果が保持される可能性は高くなります。

注意

しきい値を高くしたら、特に対象物の異なる部分に同じ形状がある場合にマッチングを出力しないこともあります。

../../../../_images/threshold_finematching.png

図4 信頼度しきい値の調整の対比

結果評価の検索半径
初期値:0.01 m
有効範囲:[0,+∞)
調整説明:このパラメータの値は、位置姿勢のマッチングスコアに影響します。この値が大きいほど位置姿勢のマッチング結果の評価が甘くなり、位置姿勢のマッチング精度が出なくても位置姿勢のマッチングスコアが高くなります。この値が小さいほど位置姿勢のマッチング結果の評価が厳しくなります。対象物の点群に応じて設定する必要があります。点群がまばらな場合は、このパラメータを適切に上げることができます。

ちなみに

まずは初期の 結果評価の検索半径 を設定し、ステップを実行して可視化出力ウィンドウで位置姿勢のマッチング効果を確認し、位置姿勢のマッチングスコアと対比します。マッチング効果とマッチングスコアが一致していない場合、実際の状況に応じて 結果評価の検索半径 の値をマッチング効果とマッチングスコアが一致するまで調整することができます。

出力設定

シングル点群の出力結果の数
初期値:1
調整説明:この値が大きいほど、マッチング結果の出力は多くなります。
調整の例:このパラメータを調整して異なるマッチング出力結果を取得します。 図5はこのパラメータを 1 にした結果で、図84 にした結果です。
../../../../_images/default_setting_finematching.png

図5 単一点群の出力結果の初期値にした例

結果可視化の設定

マッチング結果を表示
初期値:チェックを入れる
オプション:チェックを入れる/チェックを入れない
調整説明:チェックを入れれば、出力されたモデルとシーンの点群が表示されます。

詳細設定

詳細設定(Advanced)に新たに追加した調整可能なパラメータについて説明します。基本設定(Basic)と同じパラメータがあれば、 基本設定 をご参照ください。

対称性設定

認識する部品が局所対称性を持つ場合、局所最適解を回避するために、対称性を設定する必要があります。幾何学的中心点の軸を回転軸として指定することにより、モデルは設定された軸を中心に回転してマッチングし、最適なマッチング結果を取得します。

対称回転軸
初期値:ROTATE_BY_Z
オプション:ROTATE_BY_X、ROTATE_BY_Y、ROTATE_BY_Z
調整説明:このパラメータは、幾何学的中心の回転軸を選択するために使用されます。
対称角度ステップサイズ
初期値:360°
調整説明:このパラメータは対称角度を調整します。
調整の例:対象物が対称軸を中心に60°回転する前後で同じように見える場合、その対称角度ステップサイズは60°です。
最小回転角度
初期値:-180°
調整説明:このパラメータは最小回転角度を調整します。
最大回転角度
初期値:180°
調整説明:このパラメータは最大回転角度を調整します。
調整の例

下図に示すクランクシャフトの場合、その主要部分、つまりボックス内の部分は、Y軸に沿って180°対称です。

../../../../_images/3d_fine_matching_add_example1.png
../../../../_images/3d_fine_matching_add_example2.png

対称性が設定されていない場合、下図に示すように、局所的な形状が類似しているため、マッチング結果が局所最適になり、マッチングエラーが発生する可能性があります。

../../../../_images/3d_fine_matching_add_example3.png

エラー結果を分析すると、モデルはクランクシャフトの中間部分のみにマッチングします。モデルがマッチング中に180°回転した後にマッチングを試行すると、クランクシャフト全体がマッチングします。また、そのマッチングスコアは、回転前のマッチングスコアよりも高くなるはずです。そうすれば、正しい結果を得ることができます。

下図に示すように、対称回転軸をROTATE_BY_Y(幾何学的中心点のY軸)に設定し、対称角度ステップサイズを180°に設定すると、正しいマッチング結果が得られます。

../../../../_images/3d_fine_matching_add_example4.png

位置姿勢フィルタリング設定

指定軸の角度に基づいて候補位置姿勢をフィルタリング
初期値:チェックを入れない。
調整説明:制限軸と基準方向との間に大きな角度差(角度差の上限しきい値より大きい)がある位置姿勢は、候補位置姿勢とは見なされません。チェックを入れた後、制限軸、基準方向および角度差の上限しきい値を設定する必要があります。通常、ミラー マッチングの結果に対応する位置姿勢を除外するために使用されます。

検証時のモデルの重み

認識する部品の「主体」が類似して「局所」だけが異なった場合、モデルの「局所」の重みを大きくして「局所」のマッチングの結果を出力します。

モデルの重みファイル
調整説明:このファイル(ply形式)は元の点群モデルファイルの一部分の点群で、点群のこの部分は重みが高く、パラメータ 重み値 によって設定されます。
重み値
初期値:2.0
調整説明:このパラメータは点群に重みを設定します。すべての元点群の重み係数が 1 とすれば、目標点群にこのパラメータを設定したら、目標点群の重み係数は \(1 X このパラメータ\) になるので、後続のマッチングステップでは強調を実現できます。
重み設定の検索半径
初期値:0.0030
調整説明:このパラメータは点群に重みを増加する過程に検索半径を設定します。重みの設定は元のモデル点群に基づいて実行し、モデル点群はマッチングに使用される前にダウンサンプリングされるので重み設定が必要な点が移動したり損失したりすることはあります。そのような点の付近の点に重み設定するプロセスに、検索半径を設定する必要はあります。この検索半径はこのパラメータによって設定します。
調整の例

この例は、対称性設定の例に続いて説明します。

クランクシャフトの「主体」が類似して「局所」だけが異なった場合、モデルの「局所」の重みを大きくして「局所」のマッチングの結果を出力します。

結果検証

結果評価時の点から法線ベクトルへの角度偏差を考慮
初期値:チェックを入れない
オプション:チェックを入れる/チェックを入れない
調整説明:チェックを入れれば、位置姿勢を検証するプロセスに対応するペアポイントの法線ベクトルの角度の差を考えます。その出力は少なくなりますが精度は高くなります。
スコアに対応する点がシーンの点群に占める比例をかける
初期値:チェックを入れない
オプション:チェックを入れる/チェックを入れない
調整説明:チェックを入れれば、マッチングスコアに、シーンの点に【対応する点の比例係数】が乗算されます。点群内の複数の対象物の位置姿勢を推定するのには適していません。

結果可視化の設定

サンプリングされたモデル点群を表示
初期値:チェックを入れない
オプション:チェックを入れる/チェックを入れない
調整説明:チェックを入れれば、出力の結果にサンプリングされたモデル点群が表示されます。実際のニーズに応じて設定してください。
サンプリングされたシーンの点群を表示
初期値:チェックを入れない
オプション:チェックを入れる/チェックを入れない
調整説明:チェックを入れれば、出力の結果にサンプリングされたシーンの点群が表示されます。実際のニーズに応じて設定してください。
モデルとシーンの点群の対応関係を表示
初期値:チェックを入れない
オプション:チェックを入れる/チェックを入れない
調整説明:チェックを入れれば、モデルとシーンの点群の対応関係が表示されます。実際のニーズに応じて設定してください。