简介
今天说一下该篇论文Efficient L-Shape Fitting for Vehicle Detection Using Laser Scanners主要是讲解关于车辆的点云box拟合的问题,车辆拟合是检测与跟踪较为重要的环节,因此该篇论文提出L-Shape Fitting的拟合方式获取较为鲁棒、稳定的效果,且算法高效。下面我们较为详细的介绍一下该篇论文:
算法模块分析
文末链接该篇论文的C++/Python的代码链接
算法主要流程
L-Shape Fitting主要是对点云聚类后的物体进行障碍物三维尺寸的拟合,即 ( x , y , z , w i d t h , h e i g h t , d e p t h , y a w ) (x,y,z,width,height,depth,yaw) (x,y,z,width,height,depth,yaw)。该论文主要为2个步骤:
- 用高效kd-tree数据结构存储点云,然后通过距离阈值 r r r来进行点云聚类,将点云聚类成为 n n n个点云簇。每个点云簇代表一个障碍物的候选。
- 该算法对box拟合采取基于搜索方式的优化来获取最佳的L-Shape拟合。其主要思想:遍历所有的方向,在每次迭代时候,可以得到该方向的点云簇的矩形;依据该点云簇可以轻易得到所有点到该矩形四条边的距离;依据这些距离将所有的点划分成为两个子集 p p p和 q q q,通过最小二乘来计算误差目标函数。我们计算误差的方式主要有三种:矩形区域面积最小化、点到边最近距离最小化、点到边最小平方误差最小化。
优化标准之矩形区域面积最小化:
代码实现部分:
其中函数入参 c 1 c_1 c1和 c 2 c_2 c2主要是所有点云的三维点 ( x i , y i , z i ) (x_i,y_i,z_i) (xi,yi,zi)去掉 z i z_i zi坐标的二维点 ( x i , y i ) (x_i,y_i) (xi,yi),二维点乘以当前方向的角度 θ θ θ。其中计算公式为:
c 1 = x i c o s θ + y i s i n θ c_1=x_icosθ + y_isinθ c1=xicosθ+yisinθ
c 2 = − x i s i n θ + y i