メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

pcregisterfgr

R2025b

FGR アルゴリズムを使用した 2 つの点群のレジストレーション

R2022b 以降

    説明

    関数 tform = pcregisterfgr(moving,fixed,gridSize) は、移動点群から固定点群へのレジストレーションを行う剛体変換を返します。

    この関数は、FPFH の特徴に基づく高速グローバル レジストレーション (FGR) アルゴリズムを使用して、点のレジストレーションを行います。

    例

    [tform,rmse] = pcregisterfgr(moving,fixed,gridSize) はさらに、配置されたインライア点間のユークリッド距離の平方根平均二乗誤差を返します。

    [___] = pcregisterfgr(___,MaxIterations=numIterations) は、前述した構文の引数の任意の組み合わせに加え、FGR アルゴリズムの最大反復回数を指定します。

    例

    すべて折りたたむ

    点群データをワークスペースに読み込みます。

    ld = load("livingRoom.mat");
    fixed = ld.livingRoomData{1};
    moving = ld.livingRoomData{2};

    レジストレーションの前に、点群データを可視化します。

    figure
    pcshowpair(moving,fixed,VerticalAxis="Y",VerticalAxisDir="Down") 

    Figure contains an axes object. The axes object contains 2 objects of type scatter.

    FGR レジストレーション アルゴリズムの精度と効率を向上させるために、点群をダウンサンプリングします。

    fixedDownsampled = pcdownsample(fixed,gridNearest=0.05);
    movingDownsampled = pcdownsample(moving,gridNearest=0.05);

    FGR アルゴリズムを使用して、点群のレジストレーションを行います。

    gridSize = 0.1;
    tform = pcregisterfgr(movingDownsampled,fixedDownsampled,gridSize,MaxIterations=100);

    配置を可視化します。

    movingRegistered = pctransform(moving,tform);
    pcshowpair(movingRegistered,fixed,VerticalAxis="Y",VerticalAxisDir="Down");

    Figure contains an axes object. The axes object contains 2 objects of type scatter.

    点群をマージし、マージ結果を可視化します。

    mergeSize = 0.01;
    merged = pcmerge(movingRegistered,fixed,mergeSize);
    figure(Name = "merged point cloud after Fast Global registration");
    pcshow(merged,VerticalAxis="Y",VerticalAxisDir ="Down");

    Figure merged point cloud after Fast Global registration contains an axes object. The axes object contains an object of type scatter.

    入力引数

    すべて折りたたむ

    移動点群。pointCloud (Computer Vision Toolbox) オブジェクトとして指定します。

    固定点群。pointCloud (Computer Vision Toolbox) オブジェクトとして指定します。

    点群間の対応を検索するためのグリッド サイズ。正のスカラーとして指定します。

    データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    FGR アルゴリズムが停止するまでの最大反復回数。正の整数として指定します。

    データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    出力引数

    すべて折りたたむ

    剛体変換。rigidtform3d (Image Processing Toolbox) オブジェクトとして返されます。剛体変換は、移動点群から固定点群へのレジストレーションを行います。rigidtform3d オブジェクトは 3 次元剛体変換を表します。FGR アルゴリズムは、移動点群と固定点群の間の剛体変換を推定します。

    平方根平均二乗誤差。配置されたインライア点間のユークリッド距離を表す正のスカラーとして返されます。誤差の値が低いほど、レジストレーションがより良好であることを示します。

    ヒント

    • レジストレーションの精度と効率を向上させるには、pcdownsample (Computer Vision Toolbox) 関数を使用して点群をダウンサンプリングしてから、pcregisterfgr 関数を使用します。

    • 地上ビークルの点群の場合は、レジストレーションの前に pcfitplane (Computer Vision Toolbox) または segmentGroundFromLidarData を使用して地面を削除することで、パフォーマンスと精度を向上できます。この方法の詳細については、LiDAR データからのマップの作成 (Automated Driving Toolbox)の例の helperProcessPointCloud 関数を参照してください。

    • 2 つより多くの点群をマージするには、pcmerge (Computer Vision Toolbox) 関数の代わりに pccat (Computer Vision Toolbox) 関数を使用できます。

    アルゴリズム

    次の図は、FGR アルゴリズムを使用した点群のレジストレーションのワークフローを示しています。

    Fast Global Registration (FGR) algorithm

    バージョン履歴

    R2022b で導入

    参考

    関数

    オブジェクト

    トピック