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
Copy file name to clipboardExpand all lines: src/diffCheck/registration/globalregistration.hh
+22-11Lines changed: 22 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,8 @@ class GlobalRegistration
11
11
public:
12
12
13
13
/**
14
-
* @brief Compute the "point to point" distance between two point clouds.
14
+
* @brief Compute the "point to point" distance between two point clouds.
15
+
*
15
16
* For every point in the source point cloud it looks in the KDTree of the target point cloud and finds the closest point.
16
17
* It returns a vector of distances, one for each point in the source point cloud.
17
18
* @param source The source diffCheck point cloud
@@ -29,7 +30,8 @@ class GlobalRegistration
29
30
* Very simply, point features are values computed on a point cloud (for example the normal of a point, the curvature, etc.).
30
31
* point features historigrams generalize this concept by computing point features in a local neighborhood of a point, stored as higher-dimentional historigrams.
31
32
*
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
+
* @note The FPFH hyperspace is dependent on the quality of the surface normal estimations at each point (if pc noisy, historigram different).
34
+
*
33
35
* @param source the source diffCheck point cloud
34
36
* @param target the target diffCheck point cloud
35
37
* @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).
@@ -53,16 +55,21 @@ class GlobalRegistration
53
55
54
56
/**
55
57
* @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.
* Little information on this registration method compared to Fast Global Registration Feature Matching.
60
+
* 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 feature historigrams.
61
+
*
62
+
* @note The FPFH hyperspace is dependent on the quality of the surface normal estimations at each point (if pc noisy, historigram different).
63
+
*
59
64
* @param source the source diffCheck point cloud
60
65
* @param target the target diffCheck point cloud
61
66
* @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
67
* @param radiusKDTreeSearch the radius used to search for neighbors in the KDTree. It is used for the calculation of FPFHFeatures
63
68
* @param maxNeighborKDTreeSearch the maximum number of neighbors to search for in the KDTree. It is used for the calculation of FPFHFeatures
64
69
* @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
70
+
* @param maxTupleCount the maximum number of tuples to consider in the FPFH hyperspace
71
+
*
72
+
* @see https://pcl.readthedocs.io/projects/tutorials/en/latest/correspondence_grouping.html (from PCL, not Open3D)
* @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.
84
+
* Correspondances are computed between the source and target point clouds FPFH hyperspaces.
78
85
* Then, a transformation is computed that minimizes the error between the correspondances.
79
86
* If the error is above a certain threshold, the transformation is discarded and a new one is computed.
80
-
81
-
* In practice, Open3D gives little information about the feature correspondence, compared to the FGR methods
82
-
87
+
*
88
+
* @note The FPFH hyperspace is dependent on the quality of the surface normal estimations at each point (if pc noisy, historigram different).
89
+
*
83
90
* @param source the source diffCheck point cloud
84
91
* @param target the target diffCheck point cloud
85
92
* @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).
@@ -97,13 +104,17 @@ class GlobalRegistration
97
104
int correspondenceSetSize = 200);
98
105
/**
99
106
* @brief Ransac registration based on Feature Matching using (Fast) Point Feature Histograms (FPFH) on the source and target point clouds
* 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 feature historigrams.
109
+
*
101
110
* @param source the source diffCheck point cloud
102
111
* @param target the target diffCheck point cloud
103
112
* @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
113
* @param radiusKDTreeSearch the radius used to search for neighbors in the KDTree. It is used for the calculation of FPFHFeatures
105
114
* @param maxNeighborKDTreeSearch the maximum number of neighbors to search for in the KDTree. It is used for the calculation of FPFHFeatures
106
115
* @param maxCorrespondenceDistance the maximum distance between correspondences.
116
+
*
117
+
* @see https://www.open3d.org/docs/release/tutorial/pipelines/global_registration.html#RANSAC (from PCL, not Open3D)
0 commit comments