自动驾驶系统中摄像头相对地面的在线标定

news2024/11/24 9:44:27

文章:Online Camera-to-ground Calibration for Autonomous Driving

作者:Binbin Li, Xinyu Du, Yao Hu, Hao Yu, and Wende Zhang

编辑:点云PCL

欢迎各位加入知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。

公众号致力于点云处理,SLAM,三维视觉,高精地图等领域相关内容的干货分享,欢迎各位加入,有兴趣的可联系dianyunpcl@163.com。未经作者允许请勿转载,欢迎各位同学积极分享和交流。

摘要

相机与地面的在线标定是一般指实时生成相机与道路平面之间的非刚体变换,现有的解决方案常常利用静态标定,在面对轮胎气压变化、车辆载重体积变化和道路表面多样性等环境变化时存在问题。其他在线解决方案利用道路元素或图像中重叠视图之间的光度一致性,这需要在道路上连续检测特定目标或借助多个摄像头来进行标定。在这项工作中提出了一种在线的单目相机与地面标定解决方案,不需要在行驶过程中使用任何特定目标。通过轮速里程计进行粗到精的地面特征提取,并通过基于滑动窗口的因子图优化来估计相机与地面的标定参数。考虑到驾驶过程中相机与地面之间的非刚性变换,我们提供了衡量标定性能的指标和停止标准,以发布我们满意的标定结果。使用真实的数据进行的广泛实验表明该算法有效,并且优于现有的技术。

介绍

现代车辆配备了各种摄像头,以获取与周围环境相关的丰富语义信息,并将特征统一在共享的鸟瞰图中,以支持可解释的运动规划任务。相机与地面的标定在确定相机坐标和地面坐标之间的特征位置的几何变换方面起着关键作用。它有助于消除相机的透视畸变,提供鸟瞰图表示空间,并且便于估算安装在车辆上的相机与地面上位置之间的距离,这在先进驾驶辅助系统(ADAS)和自动驾驶系统中被广泛应用。

在过去的几十年中,已经提出了许多相机与地面的标定方法。这些方法通常可以分为两类:

(1)静态标定;

(2)行驶过程中的在线标定。

第一类方法通常使用诸如棋盘格或手动标注的地面物体等各种模式,事先计算相机与地面之间的变换关系。然而,由于车辆在道路上行驶时,由于轮胎气压变化、车辆载荷变化、道路表面多样性和部件振动,此类变换是非刚性的。相机与地面的标定应在行驶过程中进行多次,以调整几何投影的变化。例如,由周围视图鱼眼相机捕获的图像在图1(a)中,静态标定在图1(b)中会导致BEV图像不准确。在线标定可以减小变换误差,确保适当地处理投影变化,并生成图1(c)中对齐良好的BEV图像。

d3a347404de4ef7c2403f56e3aa385a4.png

图1. 在给定的环视图鱼眼相机图像(a)中,静态标定包含了大量的相机到地面估计误差,导致BEV图像不匹配(b),但是我们的方法在(c)中生成了一个对齐良好的BEV图像。

第二类现有方法应用在线标定,这需要从道路上提取出特定的几何形状,例如单目相机的消失点和周围视图相机提取的车道标线,或者多个相机之间重叠区域的光度一致性,以辅助标定调整。然而,在各种行驶环境中很难保持这些要求。在这种情况下,需要在使用单个摄像头连续图像的情况下进行相机与地面的标定,而不依赖于任何特定的标定目标。

主要内容

本文采用了一种从粗到精的方法,在车辆行驶在道路上时,通过因子图优化获取地面特征并优化相机到地面的标定参数,而无需使用任何特定的标定目标。利用图像中水平线分离地面和非地面区域,通过轮式测程法预测地面特征的位置,并使用基于几何的方法验证地面特征。对三角测量的地面特征进行平面拟合,以获取地面的法向量和相机到地面的高度,并通过因子图优化进一步改进这些参数,以确定相机到地面的变换关系。考虑到在驾驶过程中相机到地面的非刚性变换,还提出了度量标定性能的指标和停止准则,以确保标定质量。

图2展示了我们的系统框图。主要包含以下模块:首先利用运动学自车模型恢复图像关键帧之间的相对运动,以便进行相机姿态估计和地面点三角测量;其次从关键帧中提取粗糙的地面特征,通过车辆运动进行特征预测,并进一步进行优化地面特征验证过程;然后进行地面平面拟合,获取地面法向量和相机到地面的高度;然后通过因子图优化来细化相机姿态和相机到地面的变换参数,并提出了一个停止标定准则,确定何时发布相机到地面的标定结果。

d8e801adc0c21d1a0711e5f77f75a2b2.png

图2. 系统框架

A. 通过轮速里程计测量的相机运动 

利用CAN总线系统提供的连续车轮里程读数估计车辆随时间的姿态变化,并确定相机关键帧之间的相对运动,以恢复单目相机系统的尺度因子。具体公式推导查看原文。

B. 连续关键帧的地面提取 

地面特征(即车辆所行驶的道路表面上的特征)在相机与地面标定中起着重要作用。在城市/郊区环境中,大多数地面特征位于具有相似纹理的混凝土或沥青道路表面上,这些特征很难提取和匹配。提出了一种新颖的粗到细的地面特征提取架构,用于稳健的相机与地面标定,首先,我们引入地平线提取方法,通过车辆运动预测地面特征的位置,以便进行特征匹配。然后,我们利用几何方法来验证地面特征,并进行地面平面拟合,以获得地面法线向量和相机中心到地面的高度。在进行标定时,选择以稳定速度行驶时的关键帧,这样可以在不同的图像帧之间获得较小的相机姿态变化,有利于标定过程的稳定性,关键帧是指在时间序列中选择的一帧图像,通常表示为时间间隔的起点。从选择的关键帧开始,通过KLT稀疏光流算法提取图像中的角点特征,并进行跟踪。然后通过水平线分割图像,可以筛选位于水平线以下的特征点来选择地面特征,并利用车辆的运动信息进一步预测地面特征在下一个关键帧中的位置,这样,我们可以有效地提取和跟踪地面特征,为后续的相机到地面标定和场景理解提供重要的信息。

dc0600398c349d91562e11bd57e9ebb7.png

图3. 通过车辆运动进行特征预测,这里,Ok是关键帧Ik的相机中心。

07aedc88d5ad4556e9fa29a8b4293230.png

图4. 粗糙的地面特征提取,对于每个特征,通过车辆运动预测其在下一个关键帧中的位置(a)。因此,与没有任何预测的KLT跟踪器中的特征相比,在(b)中我们有更多的、质量更高的匹配特征对。进一步在(d)中从(b)中均匀采样/选择特征以进行计算优化。这里,红色线段的端点表示关键帧Ik和Ik+1之间的匹配特征,绿色线是地平线。

C. 跨关键帧地面优化

采用基于滑动窗口的因子图优化方法来优化相机姿态、地面法向量和相机中心到地面的高度。通过使用单应性变换矩阵,可以将当前关键帧的特征点投影到上一关键帧的图像中。然后,我们通过最小化重投影误差来优化相机姿态和地面参数,以确保在上一关键帧中的特征点与当前关键帧中的投影点之间的一致性。具体来说,我们首先计算从当前关键帧到上一关键帧的相机姿态变换。然后,根据相机姿态变换将当前关键帧的特征点投影到上一关键帧的图像平面上。接下来,我们计算投影点与上一关键帧中的特征点之间的重投影误差,并将其作为优化问题的目标函数。通过最小化这个目标函数,我们可以同时调整相机姿态、地面法向量和相机中心到地面的高度,从而得到更准确的地面参数。通过这种跨关键帧的地面优化方法,可以更好地优化相机姿态和地面参数,提高相机到地面的标定精度,并为后续的路径规划和场景感知任务提供更准确的地面信息。

实验

在各种驾驶场景下使用乘用车实现了我们的算法并进行了大量实验,车辆安装了由四个向下朝向的鱼眼摄像机组成的全景摄像系统(参见图1(a)中的示例),这些摄像机与车轮编码器数据同步。摄像机的帧率为33 Hz,图像分辨率调整为812×540。我们收集了来自不同区域的长序列连续数据,以分析我们算法的效率和鲁棒性(参见表I)。这些数据涵盖了从平坦的铺装地面(FPG)到城市、郊区和农村等不同天气、光照和驾驶条件下的公共道路,FPG数据来自极其平坦的沥青路面,用于验证我们动态标定的基准性能。表I的最后一列表示车辆行驶而不是停车的时间百分比。

c6f722fe7dd3fb2b5b82b6e6aa2b545a.png

图6 我们的方法在具有挑战性的驾驶场景中表现良好,图中的标签与表格I从上到下对应。

6e23e2f362767725b637040b4b789115.png

将我们的方法与现有的最先进方法进行比较,从而定性地检验性能,包括Liu等人[23]、OECS[24]和ROECS[25]在我们的数据集上的性能。首先比较了在FPG数据上的标定性能,并在表II中总结了结果。与我们的对手一样,我们的方法在车辆行驶在FPG上时能够生成连续稳定的相机到地面的标定。因此,我们显示了与地面真实(GT)标定的欧拉角差的平均值,并评估绝对变化量δr、δp和δy。这里,δr、δp和δy分别表示滚转角、俯仰角和偏航角的变化量。表II中的δh列是相机中心到地面的高度位移。在表II中,即使在图像上没有可辨别纹理的混凝土路面上,我们的在线方法也取得了更好的性能。例如,我们的方法在俯仰角、偏航角和高度估计方面分别获得了显著的绝对增益,分别为44.4%、50.0%和71.2%。

90bceecd9ce9e74b605174b59a6ec2db.png

为了展示我们提出的方法的优越性,我们在图7中呈现了(11)和(12)的误差直方图。在图7中获得了不同区间的误差差异,作为我们相对于最先进工作的性能提升的总和。我们的方法在不同水平下具有相对较小的特征转移误差f,并且误差保持在0.83像素以内,这在不同数据序列中保持一致。我们的方法在郊区数据上获得了最低的性能增益44.2%,在城市数据上获得了最高的性能增益67.6%。在从城市到农村地区的公共道路驾驶数据中,与最先进方法相比,我们的方法在误差p方面表现更好。误差p在0.75像素以内变化,并且90.9%的误差在0.67像素以内。在考虑平坦道路条件的情况下,性能提高了12.7%,在郊区数据中获得了最高得分,而在FPG数据中获得了最低得分,为1.59%。 

578b84661070db7aa32331eaf633617b.png

图7. 表I中数据序列的性能直方图。水平轴的值对应于(11)和(12)中的误差,垂直轴是概率密度。请放大查看详细信息。

图8展示了在车辆以高速直行时不同方法生成的鸟瞰图像的视觉结果。我们的方法不依赖于不同摄像头之间的重叠区域或特定物体,获得了较小的特征残差误差,并生成了更好对齐的鸟瞰图像,原因如下:

(1)直行车道标线与车辆行驶方向平行,

(2)摄像头之间的车道标线互相重叠,

(3)道路上的混凝土裂缝在相邻摄像头鸟瞰图像的重叠区域上连接在一起。

e5a21a67ab738afb3817b724168d8516.png

图8. 在行驶过程中城市I数据的示例结果。我们展示了(a)我们的结果,(b)ROECS [25],(c)OECS [24]和(d)Liu等人的结果。

总结

我们提出了一种在线相机到地面无目标标定方法,用于在行驶过程中生成相机坐标与地面坐标之间的非刚体变换。采用了一种新颖的粗到精的架构来选择地面特征,并通过基于几何的方法进行验证。对三角化的地面特征进行平面拟合,以获得地面法向量和相机到地面的高度,然后通过滑动窗口的因子图优化对其进行优化。通过旋转平均确定相机到地面的变换,并提供停止标准来广播满足标定结果的情况。使用从不同天气和驾驶条件下收集的真实数据对我们的算法进行了广泛测试,结果显示我们的方法是有效的,并且优于最先进的技术。在未来,我们将减少因子图优化的运行时间复杂度,并进行可观测性分析,以识别帮助丢弃不需要用于标定计算的姿态和地面特征的退化场景。

更多详细内容后台发送“知识星球”加入知识星球查看更多。

资源

自动驾驶及定位相关分享

【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

自动驾驶中基于光流的运动物体检测

基于语义分割的相机外参标定

综述:用于自动驾驶的全景鱼眼相机的理论模型和感知介绍

高速场景下自动驾驶车辆定位方法综述

Patchwork++:基于点云的快速、稳健的地面分割方法

PaGO-LOAM:基于地面优化的激光雷达里程计

多模态路沿检测与滤波方法

多个激光雷达同时校准、定位和建图的框架

动态的城市环境中杆状物的提取建图与长期定位

非重复型扫描激光雷达的运动畸变矫正

快速紧耦合的稀疏直接雷达-惯性-视觉里程计

基于相机和低分辨率激光雷达的三维车辆检测

用于三维点云语义分割的标注工具和城市数据集

ROS2入门之基本介绍

固态激光雷达和相机系统的自动标定

激光雷达+GPS+IMU+轮速计的传感器融合定位方案

基于稀疏语义视觉特征的道路场景的建图与定位

自动驾驶中基于激光雷达的车辆道路和人行道实时检测(代码开源)

用于三维点云语义分割的标注工具和城市数据集

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

TOF相机原理介绍

TOF飞行时间深度相机介绍

结构化PLP-SLAM:单目、RGB-D和双目相机使用点线面的高效稀疏建图与定位方案

开源又优化的F-LOAM方案:基于优化的SC-F-LOAM

【开源方案共享】ORB-SLAM3开源啦!

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

易扩展的SLAM框架-OpenVSLAM

高翔:非结构化道路激光SLAM中的挑战

基于鱼眼相机的SLAM方法介绍

3D视觉与点云学习星球:主要针对智能驾驶全栈相关技术,3D/2D视觉技术学习分享的知识星球,将持续进行干货技术分享,知识点总结,代码解惑,最新paper分享,解疑答惑等等。星球邀请各个领域有持续分享能力的大佬加入我们,对入门者进行技术指导,对提问者知无不答。同时,星球将联合各知名企业发布自动驾驶,机器视觉等相关招聘信息和内推机会,创造一个在学习和就业上能够相互分享,互帮互助的技术人才聚集群。

以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

6672c32dceff83a1da3bd66c445ab837.png

扫描二维码

                   关注我们

让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入知识星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

分享与合作方式:微信“cloudpoint9527”(备注:姓名+学校/公司+研究方向) 联系邮箱:dianyunpcl@163.com。

为分享的伙伴们点赞吧!

5fca0199563d591320612bc3538bf899.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/575152.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

记录--前端小票打印、网页打印

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一、小票打印 目前市面上的小票打印机大多采用的打印指令集为ESC/POS指令,它可以使用ASCII码、十进制、十六进制来控制打印,我们可以使用它来控制字体大小、打印排版、字体加粗…

如何用 ChatGPT 做数据进阶可视化?(三维交互图与动图视频)

你只需输入数据和需求,结果自然来。 自动可视化 在《如何用 ChatGPT 帮你自动分析数据?》这篇文章里,我已经为你介绍过 Code Interpreter 。它是 ChatGPT 的一个模式,目前还在 alpha 测试阶段。 Code Interpreter 可以接收文件输入…

Android 图片编码之必备技能

在进行 Android 开发时,不可避免地会接触到许多图片格式,例如 JPEG、PNG 等。就以 JPEG 格式为例,它是一种有损压缩模式,使用 YCbCr 的颜色空间来保存色彩信息。当需要在屏幕上显示图片时,会将 JPEG 数据解码成 RGB 进…

淘宝用户体验分析方法论

本专题共10篇内容,包含淘宝APP基础链路过去一年在用户体验数据科学领域(包括商详、物流、性能、消息、客服、旅程等)一些探索和实践经验,本文为该专题第一篇。 在商详页基于用户动线和VOC挖掘用户决策因子带来浏览体验提升&#x…

chatgpt赋能python:Python扫描IP段的简介

Python 扫描 IP 段的简介 Python 是一种广泛应用于数据科学、机器学习、Web 开发等领域的高级编程语言。作为一种通用编程语言,Python 也可以应用于网络安全领域。其中,Python 可以用于扫描 IP 段的网络安全工具开发。 Python 扫描 IP 段 Python 扫描…

5.27下周黄金行情走势预测及开盘操作策略

近期有哪些消息面影响黄金走势?下周黄金多空该如何研判? ​黄金消息面解析:周五(5月26日)黄金大幅下跌,主要受到美国数据影响,美国公布的4月PCE和耐用品订单数据向好,再次强化市场对美联储的鹰派押注。现货…

软件测试之自动化测试【webdriver API】

目录 一、webdriver API 1.元素的定位 2.操作测试对象 3.添加等待 3.1 sleep 强制等待 3.2 隐式等待 3.3 显式等待 4.打印信息 5.浏览器的操作 5.1 浏览器的前进和后退 5.2 浏览器滚动条操作 5.3 浏览器最大化及设置浏览器宽、高 6.键盘按键 7. 鼠标事件 8.定位…

chatgpt赋能python:Python找零-让你的生活更轻松

Python 找零 - 让你的生活更轻松 在我们日常生活中,找零是一个很常见的问题。无论是在超市买东西、给朋友拿钱、或者是做商业交易,都需要进行找零操作。而使用 Python 编程语言,可以让这个问题更加简单易懂,让我们来一起学习 Pyt…

Python中的布尔类型以及布尔值介绍

什么是布尔类型? 布尔类型是一种逻辑类型,它只有两个取值:True(真)和False(假)。在Python中,True和False是内置的布尔类型常量,用于表示真和假的状态。 布尔运算符 在P…

一场九年前的“出发”:奠基多模态,逐鹿大模型

原创:谭婧 全球AI大模型的技术路线,没有多少秘密,就那几条路线,一只手都数得过来。 而举世闻名的GPT-4浑身上下都是秘密。 这两件事并不矛盾。为什么呢? 这就好比,回答“如何制造一台光刻机?”。…

Yolov5/Yolov7涨点技巧:MobileViT移动端轻量通用视觉transformer,MobileViTAttention助力小目标检测,涨点显著

1. MobileViT介绍 论文:https://arxiv.org/abs/2110.02178 现有博客都是将MobileViT作为backbone引入Yolov5,因此存在的问题点是训练显存要求巨大,本文引入自注意力的Vision Transformer(ViTs):MobileViTAttention MobileViT是一种基于Transformers的轻量级模型,它可以用于…

chatgpt赋能python:Python操作手机:SEO指南

Python 操作手机:SEO 指南 在移动设备占据互联网用户市场大头的今天,应用程序的互动变得越来越受欢迎。这就需要我们在开发和优化网站时将手机端无缝集成到我们的计划中。使用 Python 语言可以有效地实现此目标,本文将探讨如何使用 Python 操…

【一篇文章带你掌握HTML中ul、ol和dl列表的使用 - 超详细】

【一篇文章带你掌握HTML中ul、ol和dl列表的使用 - 超详细】_dl标签_China_YF的博客-CSDN博客 前提 在项目开发过程中,列表是非常常见的,因此列表标签也是我们使用相对频繁的标签,但是当我们遇到列表的时候有没有停顿思考一下,我在…

提醒!手机卡注销前,一定要做的四件事!

现在更换手机卡的情况对小伙伴们来说都是家常便饭的事情了,但是很多小伙伴在手机换号的时候,经常忘记解绑以前手机号绑定的一些业务,为此产生了很多不必要的麻烦,今天的这篇文章就是要告诫大家换号之前一定要做的几件事&#xff0…

基于yolov5的双目鱼体长度检测

前言 在水产养殖行业中,鱼体长度是衡量鱼类品质和成熟度的重要指标。然而,传统的鱼体长度测量方法需要手动测量,不仅耗时耗力还容易出现误差。正好最近做了一个基于双目视觉的鱼体检测项目,在这里和大家分享以下思路。 步骤 第一…

跨境电商环境搭建和买家账号培养的关键考虑因素

作为跨境电商环境搭建和买家账号培养的专业技术开发人员,我深知在亚马逊、速卖通、阿里国际、速卖通、美客多、shopee、Lazada、ebay、Temu等平台上运营的卖家面临的挑战 其中,补单是一项关键的工作,它能帮助卖家增加商品列表和评价数量&…

这个 冒泡排序详解过程 我能吹一辈子!!!

文章目录 冒泡排序概念冒泡排序算法思路冒泡排序代码实现冒泡排序优化 冒泡排序概念 冒泡排序是比较基础的排序算法之一,其思想是相邻的元素两两比较,较大的数下沉,较小的数冒起来,这样一趟比较下来,最大(小)值就会排列…

ES2020新语法:可选链操作符

目录 一、前言 二、案例 三、方法一:AND运算符 四、方法二:可选链操作符( ?. ) 1. 语法 2. 可选链与函数调用 3. 处理可选的回调函数或事件处理器 4.可选链和表达式 5.可选链访问数组元素 6.使用空值合并操作符 一、前言 今天看一个实习生写的…

Linux高级---configmap和secret

文章目录 一、ConfigMap1、介绍2、创建configmap3、使用configmap4、引入环境变量的另一种方式 二、Secret1、介绍2、创建secret3、使用secret4、引入环境变量的另一种方式 一、ConfigMap 1、介绍 ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。使…

chatgpt赋能python:Python指定日期处理方法,从入门到实践

Python指定日期处理方法,从入门到实践 Python是一种高级编程语言,因其简单易学和功能强大而深受开发者喜爱。在日常工作中,我们经常需要对日期进行处理和计算。Python提供了丰富的日期和时间处理库,因此我们可以轻松地进行日期处…