RangeNet++ spheracal projection的理解
文章没有对投影进行详细阐述,其实思路很简单:
原文公式如下
直接上图
对于激光点云P,其相对于原点(LIdar 传感器)的位置关系如上图:
先看坐标$u$
$arctan(y/x)$求的是水平方位角,也就是图中的$\alpha$。$arctan(y,x)\pi^{-1}$即对角$\alpha$归一化到[0,2),那么$\frac{1}{2}[1-arctan(y,x)\pi^{-1}$就是归一化到[-1,1),再乘以定义的水平方向的单位宽度,就得到了水平方向的坐标。正中间为0,作负右正。
再看坐标$v$
这个显然就是求垂直方向的坐标了。原理和水平方向一样,区别是由于KITTI使用的Lidar传感器Velodyne HDL-64E是水平旋转扫描,上下角有一个视场角FOV,即论文中的$[f_{up}, f_{down}]$,而不是水平方向是不断转圈,也就是[-180°,180°]。所以在水平角$arctan(z/r)$也就是图中的$\beta$加上$f_{up}$再除以$f$做归一化,余下同上。
这两天仔细分析,发现文章和作者公布的源代码都有表达的问题,正确的公式应该是
$$v=[1-(arcsin(z,r^{-1})-f_{down})f^{-1}]h$$
$u$没有问题