激光雷达点云投影

本文介绍了如何将3D激光雷达的点云数据投影到2D图片上,包括鸟瞰图(BV)和正视图(FV)的投影过程。内容涉及坐标间对应关系,例如图片坐标与激光雷达坐标的转换,以及正视图的坐标对应关系。此外,还提到了投影约束,如图像像素必须为整数且值在0-255之间,并且点云投影需限制在感兴趣的区域内。最后,展示了投影结果的示例。

3D激光雷达与2D图片投影

激光雷达与投影坐标关系

3D激光雷达向2D图片进行投影主要包括,BV:鸟瞰图,FV:正视图。两种方式都需要考虑图片坐标与激光雷达坐标间的对应关系,其关系如下图所示。

坐标间对应关系

图片坐标
图片坐标,横向为X轴,纵向为Y轴

激光雷达坐标
激光雷达坐标,雷达正前方为X轴正方向,左侧为Y轴正方向,垂直向上Z轴正方向

FV对应关系
正视图坐标对应关系

结合多传感设备以实现高级的感知能力是自动驾驶汽车导航的关键要求。传感器融合用于获取有关周围环境的丰富信息。摄像头和激光雷达传感器的融合可获取精确的范围信息,该信息可以投影到可视图像数据上。这样可以对场景有一个高层次的认识,可以用来启用基于上下文的算法,例如避免碰撞更好的导航。组合这些传感器时的主要挑战是将数据对齐到一个公共域中。由于照相机的内部校准中的误差,照相机与激光雷达之间的外部校准以及平台运动导致的误差,因此这可能很困难。在本文中,我们研究了为激光雷达传感器提供运动校正所需的算法。由于不可能完全消除由于激光雷达的测量值投影到同一里程计框架中而导致的误差,因此,在融合两个不同的传感器时,必须考虑该投影的不确定性。这项工作提出了一个新的框架,用于预测投影到移动平台图像帧(2D)中的激光雷达测量值(3D)的不确定性。所提出的方法将运动校正的不确定性与外部和内部校准中的误差所导致的不确定性相融合。通过合并投影误差的主要成分,可以更好地表示估计过程的不确定性。我们的运动校正算法和提出的扩展不确定性模型的实验结果通过在电动汽车上收集的真实数据进行了演示,该电动汽车配备了可覆盖180度视野的广角摄像头和16线扫描激光雷达
<think>好的,我现在需要解决用户的问题,关于激光雷达点云投影到深度图中的计算公式,特别是(1800×16)这个部分的含义。首先,我得仔细理解用户提供的引用内容,看看有没有相关的信息。 用户提到了几个引用,其中引用[2]提到,对于64线激光雷达投影图像的高设为64,宽设置为1024,因为水平分辨率是0.35度,计算得出360/0.35≈1028,然后取接近的2的n次幂,即1024。这说明图像宽度和水平分辨率有关,而高度对应激光线数。用户的问题是关于(1800×16)的计算公式。这里的16可能对应激光雷达的线数,比如16线雷达。那1800可能和水平方向的分辨率有关。假设水平旋转一周的点数,比如每圈点数=360度/水平角分辨率。如果1800是水平点数,那么水平角分辨率可能是360/1800=0.2度。但为什么是1800呢?可能用户提到的例子中,使用的是16线雷达,所以高度是16。宽度1800可能对应水平点数,比如水平角分辨率为0.2度,360/0.2=1800。这样,投影后的图像尺寸就是1800×16,每个点代表一个特定的垂直和水平角度下的深度值。另外,引用[4]中的投影公式是将3D坐标转换为2D图像坐标,使用fx,fy,cx,cy这些参数,可能涉及相机模型,但激光雷达的球面投影可能不同。根据引用[1],球面投影是将点云投影到空心圆柱体,然后展开为平面图像,可能需要将3D点转换为极坐标,即方位角和俯仰角,映射到图像的x和y坐标。所以,计算公式可能涉及将每个点的方位角θ和俯仰角φ转换为图像的行和列。例如,行号由φ决定,对应不同的激光线;列号由θ决定,对应水平角度。图像宽度是水平方向的分点数,即1800,高度是16线,因此尺寸为1800×16。 需要验证这个逻辑是否正确。比如,16线雷达的垂直角分辨率分布不同,每根线有固定的俯仰角,对应图像的行。水平方向每个采样点的角度间隔决定列数,总列数=360/水平分辨率。如果水平分辨率是0.2度,则360/0.2=1800。因此,1800×16的图像每个像素对应一个特定的方位和俯仰角,存储该方向的深度或反射强度等信息。 总结:公式中的1800是水平方向的分辨率决定的列数,16是激光线数对应的行数,因此图像尺寸为1800×16。</think>激光雷达点云投影到深度图时,$1800 \times 16$ 的计算公式主要体现以下核心参数含义: 1. **水平方向分辨率(宽=1800)** 假设激光雷达水平角分辨率为 $\Delta\theta = 0.2^\circ$,则单圈扫描点数: $$\frac{360^\circ}{0.2^\circ} = 1800$$ 每个点对应水平方位角 $\theta$,形成投影图像的列索引[^1]。 2. **垂直方向线数(高=16)** 16线激光雷达的每条激光束对应固定的俯仰角 $\phi$,垂直方向将点云按俯仰角分配到16行,形成投影图像的行索引[^1]。 3. **深度值映射** 每个像素存储对应方向的径向距离: $$r = \sqrt{X^2 + Y^2 + Z^2}$$ 其中 $(X,Y,Z)$ 是点云坐标,$r$ 作为深度值填充到图像矩阵中[^4]。 ```python def spherical_projection(points, horizontal_res=0.2, num_lines=16): width = int(360 / horizontal_res) # 1800 height = num_lines # 16 depth_image = np.zeros((height, width)) for point in points: X, Y, Z = point r = np.sqrt(X**2 + Y**2 + Z**2) theta = np.degrees(np.arctan2(Y, X)) % 360 phi = np.degrees(np.arctan2(Z, np.sqrt(X**2 + Y**2))) # 根据phi匹配到对应的激光线(行号) row = assign_row_by_elevation(phi, num_lines) col = int(theta / horizontal_res) % width depth_image[row, col] = r return depth_image ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值