复习
目录
Visualization and data structure
data structure
- 2D distance images
二维图像显示,用灰度来表示深度信息 - Delaunay triangulation
two important criteria- empty circle property(外接圆内无点)
- Largest minimum angle(最小角最大原则)
- Octrees(八叉树)
definition:If it is not an empty tree,there will only be eight or zero sub-nodes in the tree.
Octrees is used to describe 3D space.- the principle of octrees
1.setting maximum recursion depth
2.find the maximum size of the scene and build the first cube with the size
3.put laser points sequentially into cubes that can be contained and have no sub-nodes.
4.If the maximum recursive depth is not reached.the cube is subdivided into eight equal parts,and then all the laser points in the cube are allocated to eight sub-cubes.
5.If it is found that the number of laser points allocated by sub-cube is not zero and moreover the sub-cube is the same as the parent cube,the subdividing is ended.because according to the theory of spatial segmentation,the subdivision space must be allocated less.If the number is the same,subdivision may result infinite cutting.
- the principle of octrees
- kd-tree
按方差从大到小的顺序,每次分割取中位数为界,将点云分成左右数量大致相等的两部分。得以将点云均分在各结点中
k-d tree is a k-dimensional binary search tree
the root node selected during construction of k-d tree will affect the maximum depth of the tree and whether the shape of hyperplane space is balanced.
so how to select the root node
The most common used split-node method :for all sample points,the variance on each dimension is computed,and the one with maximum variance is selected. Then all the points are sorted according to the value of their split dimension,and the one in the middle is chosen as splitting node.
algorithm:
function kdtree(Point pointlist,int depth){
int axis = depth mod k;
select median by axis from pointlist;
var treenode node;
node.location = median;
node.left = kdtree(points in pointlist before median,depth+1);
node.right = kdtree(point in pointlist after median,depth+1);
return node;
Visualization
- 2D image
2D image 有哪些:
height image,distance image,reflectance image,intensity image,color image,point density image,slope image.
2D image in vertical projection
1.definition of the image grid
2.determine the attribute for each grid
3.conversion of the attributes to a grey value or color
用插值方法(interpolation),将点云数据变成二维图像进行显示
- bilinear interpolation 双线性插值:两次线性加权平均。
f
(
R
1
)
≈
x
2
−
x
x
2
−
x
1
f
(
Q
11
)
+
x
−
x
1
x
2
−
x
1
f
(
Q
21
)
f(R_1)\approx\frac{x_2-x}{x_2-x_1}f(Q_{11})+\frac{x-x_1}{x_2-x_1}f(Q_{21})
f(R1)≈x2−x1x2−xf(Q11)+x2−x1x−x1f(Q21)
f
(
R
2
)
≈
x
2
−
x
x
2
−
x
1
f
(
Q
12
)
+
x
−
x
1
x
2
−
x
1
f
(
Q
22
)
f(R_2)\approx\frac{x_2-x}{x_2-x_1}f(Q_{12})+\frac{x-x_1}{x_2-x_1}f(Q_{22})
f(R2)≈x2−x1x2−xf(Q12)+x2−x1x−x1f(Q22)
f
(
P
)
≈
y
2
−
y
y
2
−
y
1
f
(
R
1
)
+
y
−
y
1
y
2
−
y
1
f
(
R
2
)
f(P)\approx\frac{y_2-y}{y_2-y_1}f(R_1)+\frac{y-y_1}{y_2-y_1}f(R_2)
f(P)≈y2−y1y2−yf(R1)+y2−y1y−y1f(R2)
- Panoramic Arrangement(全景显示)
- 3D显示
略
Registration(配准)
definition:point cloud registration is a mathmatical calculation process of transforming large capacity 3D spatial point data sets in two or more coordinate systems into a unified coordinate system.And the key is construction of rotation matrix.
-
Mathmatical Model of rotation matrix
-
Euler angles(欧拉角)
就是用旋转矩阵 R R R进行旋转,同时包括平移,总共6个参数完成的配准。(不用考虑缩放比)
Gimbal lock(万向锁):是指,按照X-Y-Z顺序旋转时,当Y轴旋转90°时,X轴和Z轴的变换结果相同。 -
Angle-Axis(角轴)
definition:In three-dimensional space, rotation can be defined by a single rotation angle and the direction around it. of the unit vector.即按照某一固定向量旋转 -
Unit quaternion(四元数)
略
-
-
Feature target(特征点选择))
- Manual Target(人工目标)
- Iterative Closest Point(迭代最近点) – Fine Registration(精配准)
这是一种基于目标点和紧邻点的方法
两份点云数据的目标点与其紧邻点的点集做匹配计算,从而得到关系。
因此怎么得到紧邻点,怎么选择两份点云数据的同名点都是需要解决的问题。
- Manual Target(人工目标)
-
Global Registration
首尾 -
Corresponding feature recognition
- based on feature plane matching
- based on image feature
Classification
definition:the off terrain points can be used to distinguish vegetation data points and artificial objects,which is called the LiDAR data classification
-
The method of classification
- base on height texture
height texture includes original elevation data,height difference,height change and etc. - fusion of laser echo intensity and laser foot points height
对于不同地物反射强度不同,融合高程采用的分类形式 - variation of height difference using two echoes of laser pulse
对植被研究非常有帮助 - multiple-source fusion
- base on height texture
filtering
definition:to extract the digital elevation model from the point cloud of laser foot point data,it is necessary to remove the off-terrain data foot point,which is called the filtering of LiDAR data
Both filtering and classification should satisfy the two following conditions:
1.When filtering ,important topography feature such as ridges,valleys,gullies and so on should be perserved as complete as possible.
2.Classification should minimize the classification error,including the first type error:rejection the laser foot points that belong to the terrain surface;and the second type error:accepting the laser foot points that not belong to the terrain surface.
-
the methods
- mathmatical morphology method
- Moving window filtering method
- Iterative linear least squares interpolation
- filtering method based on reliable minimum
segmentation
definition:the process of aggregating similar points according to certain similarity principle
- Here is the question.What is certain similarity principle?
- Planarity
the distance-to-plane distance - Surface smoothness
- neighboorhood normal direction
各点的特征向量,基于点位的周围点拟合微分平面,以平面的法向量作为该点的特征向量
- Planarity
Now it comes to segmentation
- method:surface growing
the basic idea is to consider the relationship between the laser point and their spatial neighborhood point,and then to assemble the laser points with similar properties to form a region
fitting
definition:the process of calculating parameters of the feature model from the coordinates of discrete laser points.
-
questions:
- 1.how to eliminate gross error.
- 2.how to get optimal solution.
-
methods:
- 1.least square fitting
- 2.3D hough transform
it`s a image space to parameters space transformation method. - 3.RANdom SAmple Consensus
algorithm:
iterations= 0;
best_consensus_set = null;
best_model = null;
best_error = infinity;
while(iterations<k)
{
maybe_inliers = Random selection of n points from data sets;
maybe_model = Model parameters suitable for maybe_inliers;
consensus_set = maybe_inliers;
for(points that not belong to maybe_inliers in each data set)
if(If the point is suitable for maybe_model and error is less than t)
Add this point to consensus_set;
if(the number of elements in consensus_set is greater than D)
{//we have found a good model,then we need to estimate how the model good is
better_model = model parameters suitable for all these points in consensus_set;
this_error = how better_model fits the measurement of these points;
}
if(this_error<best_error)
{
//we found a better model than before and kept it until a better model appeared.
best_model = better_model;
best_consensus_set = consensus_set;
best_error = this_error;
}
iterations += 1
return best_model,best_consensus_set,best_error;
-
- 4.BAYes SAmple Consensus
增加一个先验概率,优先将概率高的点位纳入maybe_mode and maybe_inliers进行考虑
- 4.BAYes SAmple Consensus