3D Plane fitting algorithms

后端 未结 2 1906
梦毁少年i
梦毁少年i 2021-02-02 04:02

So I\'m working on a project where me and a buddy of mine scanned a room using the KINECTv2 and made a 3D model out of it. The goal is to make it possible to add 3d models of di

2条回答
  •  执念已碎
    2021-02-02 05:04

    I appreciate Rethunk's detailed comments and provide a variant of Local Hough Transform. But first, let me point out that there are a bunch of stackoverflow / stackexchange posts on plane detection or detection of intersecting planes. Some of those are:

    • Fit a plane to a 3D point cloud in C++
    • difference between plane segmentation and plane fitting
    • Plane fitting in a 3d point cloud
    • Fit a plane to 3D point cloud using RANSAC
    • Fast plane fitting to many points
    • https://math.stackexchange.com/questions/1657030/fit-plane-to-3d-data-using-least-squares
    • Best fit plane for 3D data

    The method I'll suggest is explained in detail in a publication at 3DV 2015:

    Local Hough Transform for 3D Primitive Detection, Bertram Drost, Slobodan Ilic, IEEE 3D Vision 2015

    The idea is based on selecting two oriented pairs of points. The orientations of these points are compared to decide whether the points jointly lie on a plane or not. The contributions of all such pairs of points are combined in a local voting space, where the plane is parameterized in a 0-dimensional voting space (an oriented point fully determines the plane). The technique is extendible to different primitives.

    RANSAC is generally inferior to the Hough transform and yet the proposed method can be seen as a hybrid between a global voting scheme and RANSAC. While RANSAC selects multiple random points, enough to fit the target primitive, the proposed method selects only a single point, the reference point.

    I also have another stackexchange post explaining how one could potentially develop a similar method for orthogonal planes.

提交回复
热议问题