智能汽车感知前端处理难点之图像畸变校正技术浅析
我们知道,摄像头在进行图像拍摄时,最理想的位置是能垂直与拍摄平面的,这样能保证图像能按照原来的几何比重重现。然而在智能驾驶汽车的实际应用中,受到智能车车体结构的限制,车体控制要求摄像头有一定的预瞄距离,摄像头的水平和垂直扫射面通常是成扇形扩张的,且摄像头与地面一般成一定角度安装。这种角度的存在会在图像边缘处造成一定的成像畸变。畸变的结果是在后期图像处理过程中产生一系列如下的类似问题:
1)垂直线被拍摄成斜线导致斜率计算错误;
2)远处的弯道可能由于畸变被压缩导致曲率计算错误等等;
3)对于旁车道车辆状态在识别过程中产生严重的畸变,在后期处理的时候会存在匹配不上的问题;
诸如上面各类问题都是可能存在在整个图像感知中,如果畸变处理不得当会对整个图像质量和后续神经网络识别造成较大的风险。为了满足智能车的实时控制需求,一般需要在实际应用场景中针对摄像头图像畸变提出相应的矫正算法。
01 智能汽车主要的畸变种类
相机畸变包含径向畸变、切向畸变、离⼼畸变、薄棱镜畸变等,智能汽车上的相机畸变主要有径向畸变和切向畸变。
径向畸变分为桶形畸变和枕型畸变。
通常我们智能泊车系统一般采用的环视摄像头由于采用广角拍摄,其对应的畸变类型通常是径向畸变。径向畸变产⽣的主要原因是镜头径向曲率的不规则变化,它会导致图像的扭曲变形,这种畸变的特点是以主点为中⼼,沿径向移动,离的距离越远,产⽣的变形量就越⼤。对于⼀个矩形的严重径向失真需要被较正成理想线性镜头的图像才可以进入后端处理过程。
而行车系统一般采用的前视、侧视、后视摄像头由于采用一般的CMOS工艺摄像头进行拍摄,且由于前侧视摄像头安装过程中可能不能保证透镜与成像面严格平行,同时也可能是由于制造上的缺陷使透镜不与成像平面平行,从而产生切向畸变,这种现象通常发⽣于成像仪被粘贴在摄像机的时候。
径向畸变和切向畸变模型中一共有5个畸变参数,在Opencv中他们被排列成一个5*1的矩阵,依次包含k1、k2、p1、p2、k3,经常被定义为Mat矩阵的形式。
对于畸变矫正来说,这5个参数就是相机标定中需要确定的相机的5个畸变系数。参数k1、k2、k3被称为径向畸变参数,其中k3是可选参数。对于畸变严重的相机(如⻥眼相机),可能还会有k4、k5、k6。切向畸变可以用两个参数p1 和 p2 来表示:至此,得到了共五个参数:K1、K2、K3、P1、P2,这五个参数是消除畸变所必须的,称为畸变向量,也叫相机外参数。
因此,求得这5个参数后,就可以校正由于镜头畸变引起的图像的变形失真,下图显示根据镜头畸变系数校正后的效果:
通过5个畸变系数找到这个点在像素平面上的正确位置公式如下:
畸变后的点可以通过内参矩阵投影到像素平面,得到该点在图像上的正确位置(u,v):
02 图像畸变矫正方法
与相机模型方法论不同,图像去畸变是为了补偿透镜缺陷,对原始图像进行径向/切向去畸变,之后在使用该相机模型。处理图像畸变的方法主要涉及选择何种相机模型进行图像投影。
典型相机模型投影方式有球面模型和柱面模型。
1、鱼眼相机成像畸变矫正
通常类似鱼眼镜头会产生极大的形变,比如普通相机成像过程中,直线投影到像平面上还是一定大小的直线,但是鱼眼相机拍摄的图到像平面上则会变成非常大且长的直线,甚至部分场景下直线检测会被投影到无穷大,因此针孔模型无法为鱼眼镜头建模。
为了将尽可能大的场景投影到有限的图像平面内,鱼眼镜头一版由十几个不同的透镜组合而成,在成像过程中,入射光线经过不同程度的折射,投影到尺寸有限的成像平面上,使得鱼眼镜头与普通镜头相比起来拥有了更大的视野范围。
研究表明鱼眼相机成像时遵循的模型近似为单位球面投影模型。这里我们为了更好的适配相机针孔模型的推导过程,常用的方法是采用投影到球面相机模型过程来进行。
对于鱼眼相机成像过程的分析可以分成两步:
- 三维空间点线性投影到一个球面上,当然这个球面是我们假设的虚拟球面,将其球心看成与相机坐标原点重合。
- 单位球面上的点投影到像平面上,这个过程是非线性的。
如下图表示了一种智驾系统中从鱼眼相机拍摄变换到球面相机的图像处理过程。假设相机坐标系下的点为X=(x,y,z),像素坐标为x=(u,v)。那么它的投影过程表示如下:
1)第一步是用摄像机采集世界坐标系下的三维点,并将图像坐标系下的成像点投影到归一化单位球面坐标上;
2)将相机坐标中心沿着z轴偏离个单位,得到如下:
3)考虑单位球面,将球面进行归一化为1个单位:
4)将球面投影模型变换到针孔模型上,得到相应的主点坐标,以该主点坐标可以建立对应的标准的相机坐标系模型:
2、柱面坐标投影
对于诸如前视、侧视摄像头这样的终端来说,通常捕获的图像主要产生的是切向畸变。切向畸变通常推荐采用柱面相机模型,其优点是指用户可以获得诸如鱼眼相机的全景图中360度范围内任意切换视线,也可以在一个视线上改变视角,来取得接近或远离的效果,同时,柱面全景图像也较为容易处理,因为可以将圆柱面沿轴切开并展开在一个平面上,传统的图像处理方法常常可以直接使用,柱面全景图并不要求照相机的标定十分准确。用户在水平方向上有360度的视角,在垂直方向上也可以做一定的视角变化,但是角度范围则受到限制,由于柱面模型的图像质量均匀,细节真实度更高,应用范围比较广泛。
总体来说,柱面全景图显著优点归纳为以下两点:
1)它的单幅照片的获取方式比立方体形式和球面形式的获取方式简单。普通车载相机(如前视、侧视摄像头)基本就可以获取到原始图像。
2)柱面全景图容易展开为一个矩形图像,可以直接用计算机常用的图像格式进行存储和访问。柱面形式的全景图在垂直方向允许参与者视线的转动角度小于180度,但是绝大多数应用中,水平方向的360度环视场景足以表达空间信息。
这里我们重点讲下如何利用柱面相机对原图像进行畸变矫正处理的算法,实际上这是个从获得虚拟相机到原相机映射关系的过程。这里的虚拟相机是指针对真实图像到生成柱面图的映射关系。
如下图表示了一种智驾系统中从普通车载相机拍摄变换到柱面相机的图像处理过程。其中,获得虚拟相机图⽚的实质就是求虚拟相机到原相机的映射关系,通⽤的过程如下:
首先,对于前/侧视原始视频图像可以设置为目标图像dst img;其中该目标图上的主点(u,v)为基础点进行2D到3D的逆投影变换到目标相机坐标图上,该目标相机可重构出世界坐标系下的该点位置(x,y,z);随后,在三维坐标系下通过投影变换算法得到虚拟相机下对应的原始相机图像Src Camera;在对该原始相机图像进行3D到2D的投影变换就可以得到对应的矫正后的图像Src img(u’,v’),该图像可通过重构的方式恢复出虚拟相机下的原始图像dst img。
从柱面相机模型可以看出柱面相机模型到针孔相机模型的变换公式如下:
如上公式中,其中u,v表示针孔相机平面主点(也叫像素坐标系中的坐标),fx、fy、cx、cy表示由于制造或安装误差产生的两个坐标轴偏斜参数。该主点乘以圆柱坐标系下的半径距离则可以得到相应的投影在柱面坐标上。
ρ来进行多项式近似,柱⾯相机2D->3D空间的过程中是不确定ρ的,当Tdst=Tsrc时,ρ取不同值时,从3D空间->侧视/前视相机2D求得的虚拟相机的映射是相同的;若Tdst!=Tsrc, 得到的虚拟相机的图像随ρ的不同⽽变化。对于给定的柱⾯图2D位置(u,v),在给定ρ的条件下,由如上公式可以计算dst camera柱面坐标系下的3D的相机坐标xc , yc, zc。
Φ用来进行多项式近似,Φ是入射光线和图像平面的夹角,这个值和鱼眼相机的参数很像。
接下来是相机变换过程,总结起来包括如下过程。
首先设置虚拟相机图像分辨率为想要获取的鸟瞰IPM图的分辨率;其中虚拟相机图像的主点为IPM图分辨率的中心(一般假设不设置偏移)。其次,设置虚拟相机的fx、fy以及相机位置,其中高度设置为1,与fx、fy设置方式相对应,可以根据需求修改y的偏移量。由此,则可以根据目标相机dst camera的外参(R,T)dst,把dst camera相机坐标(xc,yc,zc)dst转化为观测坐标系vcs坐标,随后再结合src camera的外参(R,T)src,将VCS坐标转化为src camera相机坐标(xc,yc,zc)src 。
03 总结
由于车载相机通常搭载不同的成像镜头,这种多元件的构造结构使得对于车载相机的折射关系分析不能简单采用原来的针孔相机模型进行适配。特别是对于鱼眼相机来说,由于需要扩大可视范围,这种折射率所带来的图像畸变更是明显。本文我们重点介绍了适配于智能驾驶系统各类不同视觉传感器的去畸变方法,主要通过投影方式将世界坐标系下的图像投影到虚拟球面坐标系和虚拟柱面坐标系下,从而依靠2D—>3D的相机变换来去除畸变。部分算法在长期实践基础上相对于经典去畸变算法有所改进。
以上是智能汽车感知前端处理难点之图像畸变校正技术浅析的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

智能应用控制是Windows11中非常有用的工具,可帮助保护你的电脑免受可能损害数据的未经授权的应用(如勒索软件或间谍软件)的侵害。本文将解释什么是智能应用控制、它是如何工作的,以及如何在Windows11中打开或关闭它。什么是Windows11中的智能应用控制?智能应用控制(SAC)是Windows1122H2更新中引入的一项新安全功能。它与MicrosoftDefender或第三方防病毒软件一起运行,以阻止可能不必要的应用,这些应用可能会减慢设备速度、显示意外广告或执行其他意外操作。智能应用

如此强大的AI模仿能力,真的防不住,完全防不住。现在AI的发展已经达到了这种程度吗?你前脚让自己的五官乱飞,后脚,一模一样的表情就被复现出来,瞪眼、挑眉、嘟嘴,不管多么夸张的表情,都模仿的非常到位。加大难度,让眉毛挑的再高些,眼睛睁的再大些,甚至连嘴型都是歪的,虚拟人物头像也能完美复现表情。当你在左侧调整参数时,右侧的虚拟头像也会相应地改变动作给嘴巴、眼睛一个特写,模仿的不能说完全相同,只能说表情一模一样(最右边)。这项研究来自慕尼黑工业大学等机构,他们提出了GaussianAvatars,这种

本文经自动驾驶之心公众号授权转载,转载请联系出处。原标题:MotionLM:Multi-AgentMotionForecastingasLanguageModeling论文链接:https://arxiv.org/pdf/2309.16534.pdf作者单位:Waymo会议:ICCV2023论文思路:对于自动驾驶车辆安全规划来说,可靠地预测道路代理未来行为是至关重要的。本研究将连续轨迹表示为离散运动令牌序列,并将多智能体运动预测视为语言建模任务。我们提出的模型MotionLM具有以下几个优点:首

《ComputerWorld》杂志曾经写过一篇文章,说“编程到1960年就会消失”,因为IBM开发了一种新语言FORTRAN,这种新语言可以让工程师写出他们所需的数学公式,然后提交给计算机运行,所以编程就会终结。图片又过了几年,我们听到了一种新说法:任何业务人员都可以使用业务术语来描述自己的问题,告诉计算机要做什么,使用这种叫做COBOL的编程语言,公司不再需要程序员了。后来,据说IBM开发出了一门名为RPG的新编程语言,可以让员工填写表格并生成报告,因此大部分企业的编程需求都可以通过它来完成图

身高1.65米,体重55公斤,全身44个自由度,能够快速行走、敏捷避障、稳健上下坡、抗冲击干扰的人形机器人,现在可以带回家了!傅利叶智能的通用人形机器人GR-1已开启预售机器人大讲堂傅利叶智能FourierGR-1通用人形机器人现已开放预售。GR-1拥有高度仿生的躯干构型和拟人化的运动控制,全身44个自由度,具备行走、避障、越障、上下坡、抗干扰、适应不同路面等运动能力,是通用人工智能的理想载体。官网预售页面:www.fftai.cn/order#FourierGR-1#傅利叶智能需要进行改写的内

定位在自动驾驶中占据着不可替代的地位,而且未来有着可期的发展。目前自动驾驶中的定位都是依赖RTK配合高精地图,这给自动驾驶的落地增加了不少成本与难度。试想一下人类开车,并非需要知道自己的全局高精定位及周围的详细环境,有一条全局导航路径并配合车辆在该路径上的位置,也就足够了,而这里牵涉到的,便是SLAM领域的关键技术。什么是SLAMSLAM (Simultaneous Localization and Mapping),也称为CML (Concurrent Mapping and Localiza

轨迹预测近两年风头正猛,但大都聚焦于车辆轨迹预测方向,自动驾驶之心今天就为大家分享顶会NeurIPS上关于行人轨迹预测的算法—SHENet,在受限场景中人类的移动模式通常在一定程度上符合有限的规律。基于这个假设,SHENet通过学习隐含的场景规律来预测一个人的未来轨迹。文章已经授权自动驾驶之心原创!笔者的个人理解由于人类运动的随机性和主观性,当前预测一个人的未来轨迹仍然是一个具有挑战性的问题。然而,由于场景限制(例如平面图、道路和障碍物)以及人与人或人与物体的交互性,在受限场景中人类的移动模式通

近日,华为宣布将于9月推出一款搭载玄玑感知系统的全新智能穿戴新品,预计为华为的最新智能手表。该新品将集成先进的情绪健康监测功能,玄玑感知系统以其六大特性——准确性、全面性、快速性、灵活性、开放性和延展性——为用户提供全方位的健康评估。系统采用超感知模组,优化了多通道光路架构技术,大幅提升了心率、血氧和呼吸率等基础指标的监测精度。此外,玄玑感知系统还拓展了基于心率数据的情绪状态研究,不仅限于生理指标,还能评估用户的情绪状态和压力水平,支持超过60项运动健康指标监测,涵盖心血管、呼吸、神经、内分泌、
