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

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

複数のモデルを使用してシーン内の対象物に対して大まかなマッチングを行い、対象物の大まかな候補位置姿勢を出力します。

使用シーン

複数のモデルを使用してシーン内の対象物の大まかな位置姿勢を計算します。これは 3D位置姿勢低精度推定 を拡張したステップで、パラメータの調整方法はたいてい同じです。複数のモデル点群を入力してマッチングを実行できます。マルチモデルのシーンでは、部品の種類を確認または分類するために使用されます。

これは 3D位置姿勢低精度推定 を拡張したステップで、マルチモデルのシーンで使用されます。通常、より正確な位置姿勢を取得するために、このステップの後に 3D位置姿勢高精度推定(マルチモデル) を繋ぎます。

入力と出力

../../../../_images/input_and_output28.png

パラメータのリスト

調整説明

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

モデルファイル

モデルファイルと幾何学的中心ファイルを選択します

幾何学的中心ファイル

点群の点の方向を計算

点の方向の計算方法

点の方向を計算する方法を選択します(4つの方法あり)

選択された隣接点の数

選択された隣接点の数を選択します

アルゴリズムのタイプ SurfaceMatchingEasyMode

速度制御

メイン・サブ速度制御パラメータを設定します

出力設定

単一点群の出力結果の数を設定する

結果可視化の設定

モデルやシーンの点群、マッチングの結果を表示するかを設定します

アルゴリズムのタイプ SurfaceMatching

サンプリング設定

ダウンサンプリングとサンプリング間隔を設定します

投票設定

定量化や投票を設定します

クラスタリング設定

しきい値やクラスタリングを設定します

位置姿勢検証設定

位置姿勢検証を設定します

結果の可視化設定

モデルやシーンの点群、マッチングの結果を表示するかを設定します

パラメータの説明

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

モデルファイルと把持位置ファイルのパスを設定します。

モデルファイル(必須)
初期値:model.ply
調整説明:ply形式のモデル点群です。複数のファイルパスを入力することができます。ファイル名の間にセミコロンを入力してください。
幾何学的中心ファイル(必須)
調整説明:json形式の幾何学的中心ファイルです。複数のファイルパスを入力することができます。ファイル名の間にセミコロンを入力してください。
調整の例:各パラメータにファイルを同じ順序で入力してください。 モデルファイル幾何学的中心 に同じファイルパスを入力してください。 図1に示すように、 ファイル名の間に を入力してください。
../../../../_images/input_path.png

図1 モデルと把持位置姿勢設定・調整の例

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

点が位置する平面の方向の計算方法
初期値:入力点群の法線を使用(Origin)

オプション

調整説明

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

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

StandardMode

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

EdgeTangent

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

EdgeNormal

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

注釈

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

選択される隣接点の数
初期値:10
調整説明:このパラメータは、計算する点の方向に沿う隣接点の数を計算するために使用されます。つまり、 StandardMode のkの値を計算します。

アルゴリズムのタイプ

初期値:SurfaceMatchingEasyMode
オプション:SurfaceMatchingEasyMode ,SurfaceMatching
調整説明:二つのアルゴリズムのタイプがあります。結果可視化の設定を、どちらのタイプでも調整可能なパラメータに設定します。アルゴリズムのタイプの調整は 図2に示すように、正面・裏面モデルを使用してマッチングします。まず、 SurfaceMatchingEasyMode アルゴリズムの調整可能なパラメータについて説明します。
SurfaceMatchingEasyMode アルゴリズム:調整可能なパラメータは速度制御と出力設定です。
SurfaceMatching アルゴリズム:パラメータをサンプリング設定、投票設定、クラスタリング設定、位置姿勢検証設定に調整できます。
../../../../_images/input_cloud.png

図2 入力された点群の例


SurfaceMatchingEasyModeパラメータの説明

速度制御

メイン速度制御パラメータ
初期値:2
調整説明:このパラメータは、アルゴリズムの速度を調整します。大きくすればアルゴリズムの速度は速くなりますが、マッチングの精度は低下します。この効果は サブ速度制御パラメータ より強いです。有効な範囲は1~6です。
調整の例: 図3-1図3-2に示します。左はが初期値 2 のパラメータを使用した結果で、右は 6 にした結果です。図に示すように、値を大きくしたらマッチングの精度が低下しました。
../../../../_images/main_speed_comparison_1.png

図3-1 正面モデルを使用した結果

../../../../_images/main_speed_comparison_2.png

図3-2 裏面モデルを使用した結果

サブ速度制御パラメータ
初期値:10
調整説明:このパラメータは、アルゴリズムの速度を調整します。大きくすればアルゴリズムの速度は速くなりますが、マッチングの精度は低下します。この効果は サブ速度制御パラメータ より弱いです。有効な範囲は1~20です。
調整の例: 図4-1図4-2に示します。左はが初期値 10 のパラメータを使用した結果で、右は 15 にした結果です。図に示すように、値を大きくしたらマッチングの精度が低下しましたが、その効果はメイン速度制御パラメータより弱いです。
../../../../_images/secondary_speed_comparison_1.png

図4-1 正面モデルを使用した結果

../../../../_images/secondary_speed_comparison_2.png

図4-2 裏面モデルを使用した結果

入力設定

シングル点群の出力の数
初期値:3
調整説明:各点群のマッチングに出力される結果の数を予測します。値が大きいほど出力される結果は多くなります。
調整の例:対比の結果は 図5に示します。左はパラメータを 1 にした結果で、右は 3 にした結果です。
../../../../_images/number_of_output_comparison.png

図5 正面モデルを使用した場合にシングル点群の出力の数を調整した結果


SurfaceMatchingパラメータの説明

サンプリング設定

自動ダウンサンプリング
初期値:チェックを入れる
オプション:チェックを入れる/入れない
調整説明:自動ダウンサンプリングを使用するかどうかを決めます。チェックを入れれば、サンプリングされたモデルの期待点数に基づいてモデル点群のダウンサンプリングの間隔を自動的に調整します。
サンプリングされたモデルの期待点数
初期値:1000
調整説明:サンプリングする点群の点数を調整します。 自動ダウンサンプリングにチェックを入れた場合に有効になり 、取得する点群の点数はこの値に近いです。この値が小さいほど、サンプリングする点群の点数は少なくなり、位置姿勢推定の精度も低下します。
モデルサンプリングの最大点数
初期値:4000
調整説明:ダウンサンプリングされたモデル点群の点数の最大値を調整します。すなわち、ダウンサンプリングされたモデル点群の点の数の上限を設定します。マッチングの効果は良くない場合にこの値を大きくしてください。マッチングの速度を上げたい場合に小さくしてください。
シーンサンプリングの最大点数
初期値:3000
調整説明:ダウンサンプリングされたシーン点群の点の最大値を設定します。すなわち、ダウンサンプリングされたシーン点群の点の数の上限を設定します。マッチングの効果は良くない場合にこの値を大きくしてください。マッチングの速度を上げたい場合に小さくしてください。
サンプリング間隔
初期値:0.01
調整説明:ダウンサンプリングする点の間の最大距離を調整します。mを単位とします。モデル点群のダウンサンプリング間隔が最小サンプリング間隔より小さい場合に、最小サンプリング間隔を実際のサンプリング間隔とします。この値が大きいほど、サンプリング後に計算に使用する点群の数は少なくなり、マッチングの精度は低下し、アルゴリズムの実行時間は短くなります。
調整の例: 図6に示します。上図は初期値 0.01 にした結果で、下図は 0.02 にした結果です。
../../../../_images/sample_interval.png

図6 モデル点群ダウンサンプリング間隔調整の結果

最小サンプリング間隔
初期値:0.003
調整説明:サンプリング間隔を計算します。単位はmです。 自動ダウンサンプリングにチェックを入れた場合に有効になります。 計算したサンプリング間隔がこの値より小さい場合に、この値を実際のサンプリング間隔とします。

投票設定

距離の定量化
初期値: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 を実行した場合と同じです。
調整の例: 図7の左は、初期値 3 にした結果で、右は 1 にした結果です。
../../../../_images/number_of_output.png

図7 positiveモデルのシングル点群の出力結果の数の調整結果

結果の可視化設定

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