You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Documentation on Fast Point Feature Historigrams: https://pcl.readthedocs.io/projects/tutorials/en/latest/fpfh_estimation.html
18
26
19
-
Very simply, point features are values computed on a point cloud (for example the normal of a point, the curvature, etc.).
20
-
point features historigrams generalize this concept by computing point features in a local neighborhood of a point, stored as higher-dimentional historigrams.
21
-
22
-
For example, for a given point, you take all the neighboring points within a given radius, and create a complete graph on those vertices.
23
-
then for each edge of the graph you compute features that are then stored in a historigram of the original center point from which the sphere and the graph where built.
24
-
https://pcl.readthedocs.io/projects/tutorials/en/latest/pfh_estimation.html#pfh-estimation proposes a simple example of such a historigram.
25
-
26
-
PCL's documentation refers to this 2009 TUM PhD thesis (but largely outside the scope of our work): https://mediatum.ub.tum.de/doc/800632/941254.pdf
27
-
28
-
Quite important for us: the resultant hyperspace is dependent on the quality of the surface normal estimations at each point (if pc noisy, historigram different).
29
-
30
-
@param source the source point cloud
31
-
@param target the target point cloud
32
-
@param voxelSize the size of the voxels used to downsample the point clouds
33
-
@param radiusKDTreeSearch the radius used to search for neighbors in the KDTree. It is used for the calculation of FPFHFeatures
34
-
@param maxNeighborKDTreeSearch the maximum number of neighbors to search for in the KDTree. It is used for the calculation of FPFHFeatures
35
-
@param maxCorrespondenceDistance the maximum distance between correspondences.
36
-
@param iterationNumber the number of iterations to run the RanSaC registration algorithm
37
-
@param maxTupleCount the maximum number of tuples to consider in the FPFH hyperspace
27
+
* @brief Fast Global Registration based on Feature Matching using (Fast) Point Feature Histograms (FPFH) on the source and target point clouds
28
+
*
29
+
* Very simply, point features are values computed on a point cloud (for example the normal of a point, the curvature, etc.).
30
+
* point features historigrams generalize this concept by computing point features in a local neighborhood of a point, stored as higher-dimentional historigrams.
31
+
*
32
+
* Quite important for us: the resultant hyperspace is dependent on the quality of the surface normal estimations at each point (if pc noisy, historigram different).
33
+
* @param source the source diffCheck point cloud
34
+
* @param target the target diffCheck point cloud
35
+
* @param voxelSize the size of the voxels used to downsample the point clouds. A higher value will result in a more coarse point cloud (less resulting points).
36
+
* @param radiusKDTreeSearch the radius used to search for neighbors in the KDTree. It is used for the calculation of FPFHFeatures. A higher value will result in heavier computation but potentially more precise.
37
+
* @param maxNeighborKDTreeSearch the maximum number of neighbors to search for in the KDTree. It is used for the calculation of FPFHFeatures. A higher value will result in heavier computation but potentially more precise.
38
+
* @param maxCorrespondenceDistance the maximum distance between correspondences. As parameter of the FastGlobalRegistrationOption options
39
+
* @param iterationNumber the number of iterations to run the RanSaC registration algorithm. A higher value will take more time to compute but increases the chances of finding a good transformation. As parameter of the FastGlobalRegistrationOption options
40
+
* @param maxTupleCount the maximum number of tuples to consider in the FPFH hyperspace. A higher value will result in heavier computation but potentially more precise. As parameter of the FastGlobalRegistrationOption options
41
+
*
42
+
* @see https://pcl.readthedocs.io/projects/tutorials/en/latest/pfh_estimation.html#pfh-estimation for more information on PFH (from PCL, not Open3D)
43
+
* @see https://mediatum.ub.tum.de/doc/800632/941254.pdf for in-depth documentation on the theory
@param voxelSize the size of the voxels used to downsample the point clouds
56
-
@param radiusKDTreeSearch the radius used to search for neighbors in the KDTree. It is used for the calculation of FPFHFeatures
57
-
@param maxNeighborKDTreeSearch the maximum number of neighbors to search for in the KDTree. It is used for the calculation of FPFHFeatures
58
-
@param iterationNumber the number of iterations to run the RanSaC registration algorithm
59
-
@param maxTupleCount the maximum number of tuples to consider in the FPFH hyperspace
55
+
* @brief Fast Global Registration based on Correspondence using (Fast) Point Feature Histograms (FPFH) on the source and target point clouds
56
+
* Little information on this registration method compared to the previous one.
57
+
* If understood correctly, this method finds keypoints in the FPFH hyperspaces of the source and target point clouds and then tries to match them, instead of using all the features.
* @param voxelSize the size of the voxels used to downsample the point clouds. A higher value will result in a more coarse point cloud (less resulting points).
62
+
* @param radiusKDTreeSearch the radius used to search for neighbors in the KDTree. It is used for the calculation of FPFHFeatures
63
+
* @param maxNeighborKDTreeSearch the maximum number of neighbors to search for in the KDTree. It is used for the calculation of FPFHFeatures
64
+
* @param iterationNumber the number of iterations to run the RanSaC registration algorithm
65
+
* @param maxTupleCount the maximum number of tuples to consider in the FPFH hyperspace
Correspondances are computed between the source and target point clouds.
72
-
Then, a transformation is computed that minimizes the error between the correspondances.
73
-
If the error is above a certain threshold, the transformation is discarded and a new one is computed.
76
+
* @brief Ransac registration based on Feature Matching using (Fast) Point Feature Histograms (FPFH) on the source and target point clouds
77
+
* Correspondances are computed between the source and target point clouds.
78
+
* Then, a transformation is computed that minimizes the error between the correspondances.
79
+
* If the error is above a certain threshold, the transformation is discarded and a new one is computed.
74
80
75
-
In practice, Open3D gives little information about the feature correspondence, compared to the FGR methods
76
-
77
-
@param source the source point cloud
78
-
@param target the target point cloud
79
-
@param voxelSize the size of the voxels used to downsample the point clouds
80
-
@param radiusKDTreeSearch the radius used to search for neighbors in the KDTree. It is used for the calculation of FPFHFeatures
81
-
@param maxNeighborKDTreeSearch the maximum number of neighbors to search for in the KDTree. It is used for the calculation of FPFHFeatures
82
-
@param maxCorrespondenceDistance the maximum distance between correspondences.
83
-
@param correspondenceSetSize the number of correspondences to consider in the Ransac algorithm
81
+
* In practice, Open3D gives little information about the feature correspondence, compared to the FGR methods
84
82
83
+
* @param source the source diffCheck point cloud
84
+
* @param target the target diffCheck point cloud
85
+
* @param voxelSize the size of the voxels used to downsample the point clouds. A higher value will result in a more coarse point cloud (less resulting points).
86
+
* @param radiusKDTreeSearch the radius used to search for neighbors in the KDTree. It is used for the calculation of FPFHFeatures
87
+
* @param maxNeighborKDTreeSearch the maximum number of neighbors to search for in the KDTree. It is used for the calculation of FPFHFeatures
88
+
* @param maxCorrespondenceDistance the maximum distance between correspondences.
89
+
* @param correspondenceSetSize the number of correspondences to consider in the Ransac algorithm
* @param voxelSize the size of the voxels used to downsample the point clouds. A higher value will result in a more coarse point cloud (less resulting points).
104
+
* @param radiusKDTreeSearch the radius used to search for neighbors in the KDTree. It is used for the calculation of FPFHFeatures
105
+
* @param maxNeighborKDTreeSearch the maximum number of neighbors to search for in the KDTree. It is used for the calculation of FPFHFeatures
106
+
* @param maxCorrespondenceDistance the maximum distance between correspondences.
0 commit comments