OpenCV 4.5.3(日本語機械翻訳)
|
Class, allowing the load and matching 3D models. Typical Use: [詳解]
#include <ppf_match_3d.hpp>
公開メンバ関数 |
|
CV_WRAP | PPF3DDetector () |
空のコンストラクタ。デフォルト引数の設定 |
|
CV_WRAP | PPF3DDetector (const double relativeSamplingStep, const double relativeDistanceStep=0.05, const double numAngles=30) |
void | setSearchParams (const double positionThreshold=-1, const double rotationThreshold=-1, const bool useWeightedClustering=false) |
CV_WRAP void | trainModel (const Mat &Model) |
新しいモデルをトレーニングします。[【詳解】(英語]
|
|
CV_WRAP void | match (const Mat &scene, CV_OUT std::vector< Pose3DPtr > &results, const double relativeSceneSampleStep=1.0/5.0, const double relativeSceneDistance=0.03) |
与えられたシーンに対して、学習されたモデルをマッチングさせます。[【詳解】(英語]
|
|
void | read (const FileNode &fn) |
void | write (FileStorage &fs) const |
限定公開メンバ関数 |
|
void | clearTrainingModels () |
限定公開変数類 |
|
double | angle_step |
double | angle_step_radians |
double | distance_step |
double | sampling_step_relative |
double | angle_step_relative |
double | distance_step_relative |
Mat | sampled_pc |
Mat | ppf |
int | num_ref_points |
hashtable_int * | hash_table |
THash * | hash_nodes |
double | position_threshold |
double | rotation_threshold |
bool | use_weighted_avg |
int | scene_sample_step |
3Dモデルの読み込みとマッチングを行うクラスです。典型的な使用例です。
CV_WRAP cv::ppf_match_3d::PPF3DDetector::PPF3DDetector | ( | const double | relativeSamplingStep, |
const double |
relativeDistanceStep
=
0.05 ,
|
||
const double |
numAngles
=
30 |
||
) |
コンストラクタと引数
[in]. | relativeSamplingStep | オブジェクトの直径に対するサンプリング距離。モデルはまず、効率を上げるために一様にサンプリングされます。この値を小さくすると、モデルの密度が高くなり、より正確なポーズ推定が可能になりますが、モデルが大きくなると、トレーニングに時間がかかります。この値を大きくすると、ポーズ計算の精度は下がりますが、モデルが小さくなり、モデルの生成とマッチングが速くなります。小さな値を使う場合は、メモリの消費量に注意してください。 |
[in]. | relativeDistanceStep | モデルの直径に対するポイントペアの距離の離散化距離です。この値は、ハッシュ化に直接影響します。小さな値を使用すると、離散化が細かすぎて、ハッシュテーブルのビンが曖昧になってしまいます。大きすぎる値を使用すると、特徴ベクトルの識別ができなくなり、異なるポイントペアの特徴が同じビンに割り当てられてしまいます。この引数のデフォルトは、RelativeSamplingStepの値です。ノイズの多いシーンでは、この値を大きくすることで、ノイズの多いポイントに対するマッチングのロバスト性を向上させることができます。 |
[in]. | numAngles | 点のペアの向きの離散化を、角度の細分化の数として設定する。この値は、方位の RelativeDistanceStep に相当します。この値を大きくすると、マッチングの精度が向上しますが、誤った法線方向に対するロバスト性は低下します。値を小さくすると、マッチングの精度は低下しますが、誤った法線方向に対するロバスト性は向上します。法線方向が正確に計算できないような非常にノイズの多いシーンでは、この値を25または20に設定できます。 |
CV_WRAP void cv::ppf_match_3d::PPF3DDetector::match | ( | const Mat & | scene, |
CV_OUT std::vector< Pose3DPtr > & | results, | ||
const double |
relativeSceneSampleStep
=
1.0/5.0 ,
|
||
const double |
relativeSceneDistance
=
0.03 |
||
) |
与えられたシーンに対して、学習されたモデルをマッチングさせます。
[in]. | scene | シーンの点群 |
[out]. | results | 出力ポーズのリスト |
[in]. | relativeSceneSampleStep | relativeSceneDistanceでサンプリングした後、マッチングに使用するシーンポイントの比率。例えば、この値が1.0/5.0に設定されている場合、シーンから5番目のポイントがポーズ推定に使用されます。このパラメータを使用すると、マッチングの速度と精度を簡単にトレードオフすることができます。この値を大きくすると、使用されるポイントが少なくなり、ポーズ計算は速くなりますが、精度は低くなります。値を小さくすると、その逆の効果があります。 |
[in]. | relativeSceneDistance | モデルの直径に対する距離のしきい値を設定します。このパラメータは、トレーニングステージにおけるrelativeSamplingStepに相当します。このパラメータは、relativeSceneSampleStepパラメータによる先行サンプリングのような働きをします。 |
void cv::ppf_match_3d::PPF3DDetector::setSearchParams | ( | const double |
positionThreshold
=
-1 ,
|
const double |
rotationThreshold
=
-1 ,
|
||
const bool |
useWeightedClustering
=
false |
||
) |
探索のためのパラメータの設定
[in]. | positionThreshold | 翻訳の類似性を制御する位置のしきい値。校正/モデルの単位に依存します。 |
[in]. | rotationThreshold | 回転の類似性を制御する位置のしきい値。このパラメータは、角度の差に対するしきい値と考えることができます。 |
[in]. | useWeightedClustering | アルゴリズムのデフォルトでは、重み付けなしでポーズをクラスタリングします。0以外の値を設定すると、ポーズのクラスタリングにおいて、投票数を重みとして考慮し、単純な平均化ではなく、重み付き平均化を行う必要があることを示します。 |
CV_WRAP void cv::ppf_match_3d::PPF3DDetector::trainModel | ( | const Mat & | Model | ) |
新しいモデルをトレーニングします。
[in]. | Model | 法線付きの入力点群(Nx6)。 |
コンストラクタで設定したパラメータを使用して、ダウンサンプリングを行い、新しいモデルを学習します。モデルが学習されると、インスタンスは "match "を呼び出すための準備をします。