AVM环视系统算法框架

本文详细介绍了AVM(全景环视系统)在自动驾驶领域的应用,包括离线阶段算法pipeline,如鱼眼相机去畸变、投影变换、拼接融合等步骤。文章通过理论与实践结合,探讨了相机标定、畸变表使用、投影变换在生成鸟瞰图过程中的关键作用,以及基于光流的鸟瞰图微调方法。同时,还讨论了3D模型纹理映射,以提升真实感体验。最后,作者分享了在线阶段工程实现的pipeline,并对未来工作进行了展望。
摘要由CSDN通过智能技术生成

“智能汽车生态群"加微信Time-machine-(备注公司+姓名) 

AVM(Around View Monitor),中文:全景环视系统。在自动驾驶领域,AVM属于自动泊车系统的一部分,是一种实用性极高、可大幅提升用户体验和驾驶安全性的功能。AVM已经是一种较为成熟的技术,中高端车型均有部署,但详细讲述AVM系统算法的技术博文并不多。作者在工作中搭建了一套AVM算法框架,有一些效果还不错的demo。撰写本文,主要是想将AVM算法框架中每个算子讲述清楚,与大家共同进步。本博文的风格为理论与实践结合,含有部分代码,适合有一些计算机视觉基础的同学。

关键词:相机联合标定、去畸变、投影变换、鸟瞰图、图像融合、光流、真实感3D模型、纹理映射。

AVM系统概述

AVM汽车环视影像系统如图所示,由安装在前保险杠、后备箱、后视镜上的四个外置鱼眼相机构成。该系统包含的算子按照先后顺序:去畸变、四路鱼眼相机联合标定、投影变换、鸟瞰图微调、拼接融合、3D模型纹理映射等。四路鱼眼捕捉到的图像信息通过上述算子,生成一个2D、3D的全景图。AVM算法又分为离线阶段和在线阶段两部分,在线阶段是对离线阶段的简化,更加适合于工程实现。下面我们来一一讲述。

avm系统示意图

离线阶段算法pipeline

先来粗略浏览下AVM算法Pipeline包含那些算子:

  • 2D AVM

2D AVM Pipeline

  • 3D AVM

3D AVM Pipeline

1.基于畸变表的鱼眼相机去畸变

1.1鱼眼相机畸变模型

我们知道普通相机和广角相机的投影方式一般为透视投影,即通过三角形相似原理,将相机坐标系下三维世界中的物体投影到平面上,这是基于理想的透视投影模型(无畸变)。但实际情况是我们得到的最终图像与理想的透视投影模型有一些区别,即径向畸变(桶形、枕型)、切向畸变。因此相机标定中都会对畸变做矫正。

鱼眼相机的投影方式有很多种假设,例如等距投影、等立体角投影、正交投影、体视投影、线性投影。但是真实的鱼眼相机镜头并不完全遵循上述的这些模型假设。因此Kannala-Brandt提出了一种一般形式的估计,适用于不同类型的鱼眼相机: 

 ,这个也是纳入opencv中的鱼眼相机畸变模型。对照下图: 为光线入射角,  为出射光线在相机归一化平面上或者在相机成像平面上与O之间的距离(在opencv中表示光线在相机归一化平面上的成像位置)。

鱼眼相机模型

相机去畸变通常使用张正友老师的棋盘格标定方法,首先通过矩阵推导得到一个比较好的初始解,然后通过非线性优化得到最优解,包括相机的内参、外参、畸变系数,然后对鱼眼图像做去畸变处理。内参即:

相机内参矩阵

然而,张正友标定法并不适用于我们的场景。

1.2基于厂家畸变表的鱼眼图像去畸变

由于张正友老师的棋盘格标定法是在图像的全局进行拟合得到一个全局的最优解,因此需要保证多次拍摄到的标定板的棋盘格可以覆盖整个图像区域。而我们假设的场景为要求汽车整车上流水线进行标定,即相机已经安装在车上。很显然,由于车身遮挡的原因,很难保证上述条件。另外,棋盘格标定法并不适用于批量生产。因此,我们选择了基于厂家提供的畸变表对鱼眼相机图像进行去畸变。相机厂家都有专业的光学工程师,大厂提供的畸变表通常情况下比较准确。当然,也有一些在畸变表的基础上进行优化的方法,例如[2]中采用最小重投影的方法计算出最优的相机主点位置,然后使用畸变表进行去畸变处理。在其他场景中,还有些同学先标定出相机的内参,然后将内参与畸变表联合使用。下面我们来讲述基于畸变表的去畸变方法:

厂家提供的畸变表

上面的表格展示了相机畸变表的一部分,厂家给出了入射角

从  到  的光线在焦距为f的相机真实成像平面上成像点距离成像平面中心的真实距离,单位为mm。如果想用opencv提供的API做去畸变处理,需要使用厂家提供的焦距f,将换算到相机的归一化平面上去(即除以f)。然后通过多项式拟合的方法,计算出  这几个畸变参数,例如可以使用python的curve_fit库进行多项式拟合。调用Opencv API,m_distortion_coeffs即为多项式拟合的畸变参数。


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值