上一篇文章【点云处理】Lidar点云障碍物形状估计(1)讲到使用OpenCV自带的minAreaRect来估计点云的2D形状,这篇文章再来谈谈目前应用也比较多的基于L-Shape的形状估计。L-Shape算法出自论文《Effificient L-Shape Fitting for Vehicle Detection Using Laser Scanners》,在L-Shape方法中将形状估计问题作为一个优化问题来研究,提出了一种高效的基于搜索的优化方法。其基本思想是对于一个待拟合的点云簇,以迭代的方式遍历矩形的所有可能方向。每次迭代时,可以很容易地找到一个指向该方向并包含所有扫描点的矩形。
算法输入待估点云簇中的m个点,输出是拟合矩形四条边的线性表示。矩形的可能方向θ从0°到90°不等,因为矩形的两边是正交的,我们只关心介于0°到90°之间的单条边;另一个方向就是θ+π/2。如果边的表示形式是ax+by=c,那么可以通过第12到15步得到四条边的参数。步骤7(calculate criterion)是评价标准得分,它反映矩形与点的匹配程度。c1和c2是由θ确定的两个正交边上所有点的投影。
算法提供了三个评价标准来选择拟合的矩形:
-
矩形面积最小化;
-
点到边缘贴近度最大化;
-
点到边缘平方误差最小化;
根据我自身的场景,我实验了这3种评价标准,其中VARIANCE标准效果时间较长,效果会差一些。
@AREA
@NEAST
@VARIANCE