line feature

激光数据直线特征有两个问题:

浙江大学熊蓉教授内容
. 哪些点属于这条直线 (分类)
. 已知一条直线的点拟合直线参数(拟合)

直线聚类分割方法

.  incremental line fitting
.  hough transform
.  split and merge

直线特征拟合方法

. LS
. TLS (total least  square)
. ransac

直线模型

直线模型psu

  • 常规-点斜式
  • 这种模型的问题在无法描述斜率无穷大, 即与x轴夹角90°的情况, 如x = 5;
    k反应直线与x轴夹角,范围是[-90,+90], 符合atan(y/x)函数
    点截距直线模型有这个缺陷, 一般式Ax + By +C = 0 更通用

	y = kx + b

LS误差拟合方法, 该方法实际仅仅权衡y方向的误差

	yi = kxi + b + e;

在这里插入图片描述
最小二乘求解
在这里插入图片描述

线性最小二乘问题,分别对k 和 b 求偏导求解;

  • 变形(一般式)
   Ax + By + C = 0 

一般式某点到直线的最短距离为
在这里插入图片描述
有时候我们可以加入约束A2 + B2 = 0;

  • 极坐标, 或者这也不能叫极坐标

这个公式也比较好理解, 可以用辅助线法, 随便在直线取一点p, 假想过p点(x, y) 做垂线rp, 然后做该直线的平行线, 这样两条平行直线 + r + rp 组成一个平行四边形, 求解rp 即是下面公式;

该方法仅适用与没有噪点outlier 的直线, 噪点会增大误差

   xcos + ysin = r

在这里插入图片描述
在这里插入图片描述
OLS or TLS 一般式模型参数拟合解法
最小二乘法直线拟合:Ax+By+C=0
Ax+By+C=0 直线一般式拟合 c++/python
使用计算拟合代码

技巧:

  1. 建立如上图的最小误差公式(带拉格朗日乘子)
  2. 分别对ABClamda 求导, 求导技巧先根据对C求导得到均值的关系, 再对A, B求导;
  3. 求导出来后获取sXX 是否为0, 排除垂直与x轴的情况
  4. A, B也可用求特征值的方法求,再求C; 寻找最小特征值的特征向量, 特征值离0越近, 拟合越好;
  5. 为啥找最小特征值呢, 因为这个矩阵是代表误差的协方差矩阵

一般式拟合code

三种模型互相转换

三种模型其实是可以互相转换的, 对于一般式Ax + By + C = 0 (s.t. A2 + B2 = 1) 和 极坐标式 xcos + ysin = r 其实也一定程度上是等效的,

https://www.有管/watch?v=LxNB7iSaaco
  • ransac 随机一致性采样

对于直线,两点确定一条直线, 采样样本只需要2个点, (样本增加反而需要更多采样次数K)
内点比例w通常是未知的, 有自适应比例w方法
inliers 正确数据
outliers 错误数据
p 采样样本在正确数据的概率(K次采样获得正确样本的概率), 0.99? 0.999
S* 采样样本所求模型M, 得到满足误差内consensus set 一致集

自适应内点比例w的计算方法
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_35508344/article/details/107535351