3D位置姿勢高精度推定(マルチモデル)

機能

複数のモデルを使用してシーン内の物体に対して位置姿勢の高精度推定を実行し、対象物のより正確な把持位置姿勢を出力します。

使用シーン

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

入力と出力

3d fine matching multiple models input and output

パラメータの説明

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

初期値:基本設定

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

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

  • Basic は基本設定で、一部のパラメータを調整できます。

  • Advanced は詳細設定で、より多くのパラメータを調整できます。

基本設定

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

モデルと把持位置姿勢の設定

モデルファイル(必須)

初期値:model.ply

調整説明:ply形式のモデル点群です。複数のファイルパスを入力することができます。ファイル名の間にセミコロンを入力してください。

幾何学的中心ファイル(必須)

調整説明:json形式の幾何学的中心ファイルです。複数のファイルパスを入力することができます。ファイル名の間にセミコロンを入力してください。

モデルラベルファイル(選択可能)

調整説明:json形式のモデルラベルファイルです。複数のファイルパスを入力できます。ファイル名の間にセミコロンを入力してください。

調整の例:各パラメータにファイルを同じ順序で入力してください。下図に示すように、 モデルラベルファイル に先に正面モデルのファイルパスを入力したら、 モデルファイル幾何学的中心ファイル にも先に正面モデルのファイルパス(positive)を入力してください。

3d fine matching multiple models model labelfile

設定後に出力された点群は下図に示すように、物体の正面モデルも裏面モデルもシーンの点群に正確にマッチングできます。

3d fine matching multiple models multiple template 3dmatching

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

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

初期値:入力点群の法線を使用(Origin)

調整説明:点群の点の方向を計算する方法は四つあります。実際のニーズに応じて選択します。

オプション 調整説明

入力点群の法線を使用(Origin)

入力された点群の元の法線ベクトルを使用します。

StandardMode

CPUを使用して入力された点群の法線ベクトルを再計算します。モデルに法線ベクトルがない場合に使用することをお勧めします。目標点の付近に目標点にもっとも近いk個の点を検索して、PCA(主成分分析)を使用して最小の固有ベクトルを取得してこの点の法線ベクトルとします。

EdgeTangent

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

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

正面・裏面を判別しません。3D位置姿勢高精度推定 ステップは十分です。

EdgeNormal

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

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

選択された隣接点の数

初期値:10

調整説明:点が位置する平面の方向を計算するために使用する隣接点の数です。最小値は1です。

対応の設定

初期値: GMM

オプション:GMMnearest-neighbor

調整説明:このパラメータは局所マッチング方法を選択し、モデル点群とシーンの点群をマッチングします。モデル点群は前のステップで取得したシーンの点群とマッチングするために、設定した範囲によって移動・回転します。

調整の例:ほとんどのシーンでは、 GMM はより優れている外乱耐性とより速いマッチング速度を実現できるのでこのモードをお勧めします。ごく一部の場合に最近点( nearest-neighbor )モードを使用してもいいです。

GMMモードパラメータ設定

マッチングモード

初期値:Standard

オプション:高速、標準、高精度

調整説明:マッチングモードは3つあり、実際の状況に応じて適切なものを選択してください。

  • 高速:速度は速いですが精度は低いです。

  • 標準:安定的に実行するモードです。

  • 高精度:精度が高いですが実行速度は遅いです。

反復回数

初期値:30

調整説明:反復とは、条件を満たす結果が出るまである指定を繰り返し実行することです。反復回数とはこの過程に指令を実行する回数です。ここで設定するのは反復回数の上限で、大きく設定すればマッチングの実行回数も多くなり、かかる時間も長くなりますが、マッチングの精度が向上します。

標準偏差

初期値:3.000 mm

調整説明:前のステップ( 3D位置姿勢低精度推定 )で処理された大まかな位置姿勢の偏差が大きい、即ち、シーンの点群とモデルの点群の偏差が大きい場合、 標準偏差 を大きくしてください。そうすると実行の速度も速くなります。

調整の例:大まかな位置姿勢の偏差に応じて設定します。大まかな位置姿勢の偏差よりも大きく設定したら、誤差が極めて大きい結果を出力することがあります。したがって普通は0.01m以下に設定してください。

標準偏差減衰の更新ステップサイズ

初期値:3

調整説明:マッチング処理中、 標準偏差最小標準偏差 で設定された値に達するまでどんどん小さくなります。その過程で標準偏差が減衰する回数がこのパラメータの値です。標準誤差が大きい場合に、減衰の回数が多いほど、減衰が安定的に実行できるようになります。普通、このパラメータを調整する必要はありません。

最小標準偏差

初期値:0.001

調整説明: 標準偏差 の最小値、つまり減衰後に達した最小値です。

反復に重みを使用

初期値:チェックを入れない

調整説明:チェックを入れれば、モデルの重みがアルゴリズムの反復に使用されるので、重みモデルをより正確にマッチングすることができます。

最近点モードのパラメータ設定

反複設定

反復回数

初期値:30

調整説明:反復とは、条件を満たす結果が出るまである指定を繰り返し実行することです。反復回数 とはこの過程に指令を実行する回数です。最近点モードでは、計算がアルゴリズムの精度要件を満たす時、反復は中止します。ここで設定するのは反復回数の上限で、大きくすればマッチングの実行回数も多くなり、かかる時間も長くなりますが、マッチングの精度が向上します。

最近点の検索半径

初期値:10.000 mm

調整説明:このパラメータは最近点の検索半径(ミリメートル単位)を調整するために使用されます。その値の設定は入力された元位置姿勢の偏差と対応します。入力された大まかな位置姿勢の偏差が大きい場合に、つまりシーンの点群とモデル点群の偏差が大きい場合に、この値を大きくして最近点の検索範囲を広くします。これは、各点にそれぞれ最近点を検索するためです。大まかな位置姿勢の偏差よが小さい場合、この値を小さくしてください。設定可能な最小値は0.001です。この下限値より小さいと、一部の疎らな点に最近点を検索できなく、出力に結果に影響が出ることがあります。

調整の例:下図のbに示すように、大まかな位置姿勢の偏差が大きくて、このパラメータの最小値が0.001である場合に、不完全なマッチングの結果が出ます。下図のaに示すように、このパラメータを0.01に設定したら、検索範囲が広くなり、より完全なマッチング結果を出力することになります。

3d fine matching multiple models nearestneighbor smallradius
平均二乗誤差しきい値

初期値:0.001

調整説明:誤差の二乗和の平均値を調整します。反復するたびにこの値が記録され、その後の反復ステップの結果を比較するために使用されます。設定した値より小さい誤差の二乗和の平均値が出たら、期待された結果を取得したことになり、反復を中止します。

ウィンドウサイズ

初期値:10

調整説明:反復の過程に誤差の変動が小さい連続反復の回数で、最小値は3です。この値が小さすぎると一部だけの最適解が出てきて最終的なマッチング精度に影響が出る可能性があります。例えば、ウィンドウには3回連続の反復の結果しかない場合、この3回だけの反復の誤差を比較して誤差変動のトレンドを把握します。こうすれば全体でなく、一部だけの最適解を取得するかもしれません。

対応する点を表示

初期値:チェックを入れない

調整説明:チェックを入れたら、毎回反復実行中に対応する点を表示します。

複雑形状の対象物であるか

初期値:チェックを入れない

調整説明:対象物が複雑形状の物体(シンプルな幾何学的形状ではなく)で、かつ 反復ポイントペアの重みを自動的に計算 を使用すれば、このパラメータにチェックを入れてください。

反復ポイントペアの重みを自動的に計算

初期値:チェックを入れない

調整説明:チェックを入れれば、反復ポイントペアの重みを自動的に計算します。マッチングの結果が良くない対象物にこれを使用することをお勧めします。

ポイントペアの除去設定

異常ポイントペア除去

初期値:チェックを入れない

調整説明:最近点を検索する過程に複数のポイントペアが生じるので、この機能を使用してポイントペアをフィルタリングします。チェックを入れれば、この機能を使用して下記の ポイントペア除去シグマ複数しきい値ポイントペア角度差のしきい値 パラメータを調整して異常ポイントペアを除去します。チェックを外すと、この二つのパラメータは機能しません。

ポイントペア除去シグマ複数しきい値

初期値:1.0000

調整説明:シグマ複数しきい値とは、ポイントペアの距離の分散の倍数です。ポイントペアの距離によってフィルタリングを行います。距離がこの値を超えたポイントペアは除去されます。

ポイントペア角度差のしきい値

初期値:45°

調整説明:ペアポイントの法線ベクトルの角度がこの値より大きい場合、このペアポイントは除去されます。

反復で重みを使用

初期値:チェックを入れない

調整説明:チェックを入れれば、モデルの重みがアルゴリズムの反復に使用されるので、重みモデルをより正確にマッチングすることができます。

重複ポイントペア除去

初期値:チェックを入れない

調整説明:チェックを入れれば、重複ポイントペアを除去して 重複点群タイプ除去 は有効になります。モデル点群の点数がシーンの単一物体の点数より多い場合に使用することをお勧めします。

重複点群タイプ除去

初期値:MinDis

オプション:MinDis、GlobalMin

調整説明:このパラメータはペアポイントの重複対応を削除する方法を選択します。二つの方法があります。

MinDis :対応が重複するポイントペアの間の距離を計算し、距離が最も小さいポイントペアを保持して残りのポイントペアを除去します。 GlobalMin :対応が重複するポイントペアの間の距離の平均値を基準として、この平均値との差が最も小さいポイントペアを保持して、残りのポイントペアを除去します。

サンプリング設定

サンプリング間隔

初期値:5.000 mm

調整説明:モデルとシーンの点群をダウンサンプリングするためのサンプリング間隔(ミリメートル単位)です。この値を高くすれば、サンプリングによって取得する点群は少なくなり、モデルマッチングの精度も低下します。

調整の例:下記の2つの画像はそれぞれ0.0128と0.01に設定したときに取得した点群を示します。白いのは入力されたシーンの点群です。二枚の画像を比較して、サンプリング間隔を小さく設定すれば(上の画像)、より正確な結果が出力されることが分かります。

3d fine matching multiple models 3d matching sampling
3d fine matching multiple models multiple template 3dfinematching
検索点数

初期値:20

調整説明: パラメータの調整レベル を「詳細設定」にしたときにこのパラメータを調整できます。互換性のためにこのパラメータを保持し、サンプリングの過程に検索する点数を調整するために使用します。

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

モデルの回転角度による位置姿勢をフィルタリング

パラメータ説明:エッジマッチングモードでは、シーンの点群にマッチングするために点群モデルをある角度だけ回転させる必要がある場合があり、点群モデルの回転角度で位置姿勢が除去されます。モデルの回転角度が「角度差の上限しきい値」を超えると、その位置姿勢は除去されます。

初期値:オフの状態。

角度差の上限しきい値

詳細については、「モデルの回転角度による位置姿勢をフィルタリング」パラメータの説明をご参照ください。

初期値:135.000°

検証設定

信頼度しきい値

初期値:0.5

有効範囲:[0,+∞)

調整説明:結果の検証スコアがこのしきい値よりも大きい場合、結果は有効であると見なされます。この値が高いほど、結果はより正確になる傾向があります。

結果評価の検索半径

初期値:10.000 mm

有効範囲:[0,+∞)

調整説明:このパラメータは、信頼度を計算するときの検索半径(ミリメートル単位)です。対象物の点群に応じて設定する必要があります。点群がまばらな場合は、このパラメータを上げる必要があります。

出力設定

単一点群の出力結果の数

初期値:1

調整説明:この値が大きいほど、マッチング結果の出力は多くなります。

調整の例:下図は初期値で、1つの点群から1つの結果を出力しています。

3d fine matching multiple models multiple singleoutput

このパラメータを4に設定すると、下図のように、より多くのマッチング結果が出力されるようになります。

3d fine matching multiple models multiple fouroutput

結果可視化の設定

マッチング結果を表示

初期値:チェックを入れる

調整説明:チェックを入れれば、出力されたモデルとシーンの点群が表示されます。

詳細設定

ここでは、詳細設定(Advanced)に追加された調整可能なパラメータについて説明します。基本設定(Basic)と重なる内容は、 基本設定 をご参照ください。

対称性設定

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

対称回転軸

初期値:ROTATE_BY_Z

オプション:ROTATE_BY_X、ROTATE_BY_Y、ROTATE_BY_Z

調整説明:このパラメータは、幾何学的中心の回転軸を選択するために使用されます。

対称角度ステップサイズ

初期値:360°

調整説明:対称角度を調整します。 最小回転角最大回転角 に変更する角度ステップサイズです。

調整の例:対象物が対称軸を中心に60°回転する前後で同じように見える場合、その対称角度ステップサイズは60°です。

最小回転角度

初期値:-180°

調整説明:このパラメータは最小回転角度を調整するために使用されます。

最大回転角度

初期値:180°

調整説明:このパラメータは最大回転角度を調整するために使用されます。

調整の例

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

3d fine matching multiple models 3d fine matching add example1
3d fine matching multiple models 3d fine matching add example2

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

3d fine matching multiple models 3d fine matching add example3

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

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

3d fine matching multiple models 3d fine matching add example4

検証時のモデルの重み

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

モデルの重みファイル

調整説明:このファイル(ply形式)は元の点群モデルファイルにある一部の点群です。この一部の点群は高い重みがあり、 重み値 を使用して設定します。現場では扱う部品に応じて選択します。

重み値

初期値:2.0

調整説明:点群に重み値を設定します。単位はありません。大まかな点群の重み係数がいずれも1とすれば、目標点群にこのパラメータを設定したら、目標点群の重み係数は 1 X このパラメータ になり、後続のマッチングステップでそれを強調することになります。

重み設定の検索半径

初期値:3.000 mm

調整説明:このパラメータは点群に重みを増加する過程に検索半径(ミリメートル単位)を設定します。重みの設定は元のモデル点群に対する処理で、モデル点群をマッチングに使用する前にダウンサンプリングするため、重みを設定する点は位置変動、またはロスすることがあります。ロスした点の付近の点に対して重みを設定する過程に検索半径を設定する必要があり、この検索半径はこのパラメータを使用して設定します。

調整の例

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

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

検証設定

結果評価時の点から法線ベクトルへの角度偏差を考慮

初期値:チェックを入れない

調整説明:チェックを入れれば、位置姿勢を検証する過程に対応するポイントペアの法線ベクトルの角度差を考慮しますので、出力の数が少なくなりますが精度が高くなります。

スコアに対応する点がシーンの点群に占める比例をかける

初期値:チェックを入れない

調整説明:チェックを入れれば、マッチングのスコアに「対応する点がシーンの点群に占める比例」をかけます。1つの点群に複数の物体位置姿勢がある場合に適していません。

結果可視化の設定

サンプリングされたモデル点群を表示

初期値:チェックを入れない

調整説明:チェックを入れれば、出力の結果にサンプリングされたモデル点群が表示されます。現場の状況に応じて設定します。

サンプリングされたシーンの点群を表示

初期値:チェックを入れない

調整説明:チェックを入れれば、出力の結果にサンプリングされたシーンの点群が表示されます。現場の状況に応じて設定します。

モデルとシーンの点群の対応関係を表示

初期値:チェックを入れない

調整説明:チェックを入れれば、出力の結果にモデルとシーンの点群の対応関係が表示されます。現場の状況に応じて設定します。