一文尽览 | 计算机视觉中的鱼眼相机模型及环视感知任务汇总!(下)

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 环视鱼眼摄像机通常用于自动驾驶中的近距离感知,车辆四面的四个鱼眼摄像头足以覆盖车辆周围的360°范围,捕捉整个近距离区域。一些应用场景包括自动泊车、交通拥堵辅助等

原文首发微信公众号【自动驾驶之心】:一个专注自动驾驶与AI的社区(https://mp.weixin.qq.com/s/NK-0tfm_5KxmOfFHpK5mBA



全景相机系统



1.可视化与系统排列


在SVC系统中使用鱼眼摄像机的主要动机是覆盖整个360◦ 车辆周围的近场区域。这是通过四个鱼眼摄像头实现的,其水平视场(hFOV)约为190◦ 垂直视场(vFOV)约为150◦。鱼眼相机具有非常大的角体积覆盖范围,但其角分辨率相对较小,无法在远距离感知较小的物体。因此,它主要用作近处感知传感器,相比之下,典型的远距离前置摄像头的hFOV为120◦ vFOV为60◦,角体积明显较小,但具有更高的角分辨率使其能够感知远处的物体。鱼眼摄像机的大型hFOV可实现360◦ 仅使用四个鱼眼摄像头进行覆盖,大的垂直视场能够捕捉车辆附近的区域。

640.png


一般来说四个摄像头放置在汽车的四个侧面,用蓝色圆圈标记其位置。前摄像头位于汽车的前格栅上,后摄像头通常位于行李箱门把手上。左侧和右侧摄像头位于机翼后视镜下方。它们一起覆盖了整个360度◦ 车辆周围的区域。


2.标定


鱼眼相机的每一个模型都有一组参数(称为内部参数,必须通过标定完成)。此外还有摄像机的外部参数,即摄像机系统在车辆坐标系中的位置和方向[57]、[58]。一般的标定过程为,首先检测图像特征(标定板中的corner),然后是通过最小化点的重投影误差估计内部和外部参数。


离线环境下的标定可以通过OpenCV、OCamCalibOCamCalib[38],[60]、[61],Kalibr[62]–[65],[66]基于棋盘格特征和摄像机间对应关系的提取,提出了车辆上多个鱼眼摄像机的校准过程(内参和外参)。


在车辆的整个使用寿命期间,由于机械部件的磨损,摄像机相对于车辆的姿态可能会漂移。摄像机系统需要使用一类算法自动更新其校准。为了校正在线环境中摄像机姿态的变化,可以最小化相邻摄像机地面投影之间的光度误差[68]。Choi等人的方法利用相邻摄像机捕捉和检测到的相应车道标记来优化初始校准[69]。[70]Ouyang等人提出了一种通过估计车辆里程计优化外部方向的策略,这些算法主要用于校正几何失调,但需要通过离线校准获得的初始位置。Friel等人[71]描述了一种使用单参数鱼眼模型(如等距模型)从汽车视频序列中自动提取鱼眼本质的方法。


3.投影几何


在针孔相机中,平面上的任何一组平行线都会聚在一个消失点上。在针孔相机中,平面上的任何一组平行线都会聚在一个消失点上。这些参数可用于估计内外部参数。对于针孔相机模型,几何问题通常可以使用线性代数来表示。在这种情况下,可以使用霍夫变换检测平行线[72]。所有消失点的集合是该平面的水平线。在真实世界的摄像机系统中,针孔摄像机是摄像机的数学模型,具有光学畸变等形式的误差。这通常适用于畸变较小的窄视场摄像机。对于宽视场摄像机,失真太大,无法作为实际解决方案,并且如果摄像机的FOV大于180◦, 则原始图像中的点与校正图像平面不存在一对一关系。对于鱼眼相机,更好的模型是球面投影面[73]、[74]。在鱼眼图像中,Hughes等人在[30]中描述了如何将这些平行线近似并拟合为用于鱼眼相机确定消失点或水平线的圆或圆锥。这些平行线对应于球面的大圆。相应地,鱼眼相机成像的直线近似为圆锥[75],而鱼眼相机拍摄的平行线收敛于两个消失点(如下图所示)。


640.png


4.球面极几何


立体视觉的几何关系由极线几何描述,可用于后续的深度估计和SFM任务。在针孔相机模型中,穿过两个相机光学中心的线与图像平面的交点定义了称为对极的特殊点,这条线称为基线。通过基线的每个平面在两个图像平面中定义匹配的对极线,一台相机中的一个点位于另一台上的对极线上,反之亦然。这将双视图摄像机设置中对应点的搜索(立体匹配)减少到1D问题。对于全景相机,如fisheye使用球形投影表面代替平面,更直观的方法是讨论对极平面而不是对极线,如下图所示,两台相机对单个3D点的理想观察将位于同一对极平面上,就像针孔情况下它们位于对极线上一样。


640.png


5.校正


鱼眼的常用校正方法如下图所示,(a)显示了标准直线校正,从缺失的水平白线可以观察到近处信息的损失,左边缘和右边缘的区域也丢失,虽然有很大的损失,但这允许使用标准的camera算法。(b)显示了一个立方体近似,其中鱼眼透镜流形表面由一个开放立方体近似,可以解释为鱼眼投影面的分段线性近似。每个平面都是直线校正,因此可以在每个块中使用标准算法。


然而,立方体两个表面上的变形具有较大的变形,因此很难检测到在两个区域上分裂的目标,除此之外,还可以注意到由于在外围重新采样伪影而导致的强烈透视失真和模糊。实际上,常见的矫正过程是使用圆柱面,如图(c)所示,它可以解释为准线性近似,因为它在垂直方向上是线性的,并且曲面在水平方向上具有二次曲率。主要优点是,垂直物体保持垂直,如建筑物上的垂直线所示[77]。因此,扫描线被保留用于在两个连续鱼眼图像(运动立体)之间或鱼眼和窄视场相机(不对称立体)之间水平搜索立体算法。主要缺点是其固有的无法捕获靠近车辆的近场区域。


640.png


鱼眼相机感知任务



640.png


1.语义任务


语义分割


主要为图像中的每个像素(如行人、道路或路缘)指定类别标签的过程,如上图(第2列)所示。与前置摄像头上采用的基于语义分割的经典计算机视觉方法相比,基于CNN的方法最近非常成功[78]。尽管在城市交通场景中,自动驾驶汽车需要更大的视野才能感知周围的情况,尤其是在十字路口。邓等人[79]提出了重叠金字塔池模块(OPPNet),通过使用多个焦距生成各种鱼眼图像及其各自的注释。OPP网络在鱼眼图像上的现有城市交通场景语义分割数据集上进行训练和评估。此外,为了提高模型的泛化性能[79],提出了一种新的缩放增强技术,以增强专门为鱼眼图像设计的数据。


大量实验表明,缩放增强技术和OPP网络在城市交通场景中表现良好。Saez等人[80]引入了一种实时语义分割技术,该技术是有效残差分解网络(ERFNet)[81]对鱼眼道路序列的一种改编,并基于cityscape[82]为鱼眼摄像机生成了一个新的语义分割数据集。邓等人[83]使用环视摄像机处理360°道路场景分割,因为它们被广泛应用于生产车辆中。


为了解决鱼眼图像的失真问题,提出了限制变形卷积(RDC)。通过基于输入特征映射学习卷积滤波器的形状,它们允许有效的几何变换建模。此外,作者还提出了一种放大技术,用于将透视图像转换为鱼眼图像,这有助于创建环绕视图摄像机图像的大规模训练集。还开发了基于RDC的语义分割模型。多任务学习(MTL)体系结构用于通过组合真实世界和变换后的图像来训练真实世界的环视摄像机图像。这些模型在Cityscapes [82], FisheyeCityScapes [84] and SYNTHIA [85] 数据集上进行了训练,并在真实的鱼眼图像上进行了测试。


Yaozu等人[84]提出了一种7自由度(DoF)增强技术,用于将直线透视图像转换为鱼眼图像。它包括世界和鱼眼坐标系(6-DoF)之间的空间关系,以及虚拟鱼眼相机的焦距变化(1-DoF)。在训练阶段,将直线透视图像转换为7自由度的鱼眼图像,以复制具有不同位置、方向和焦距的摄像机拍摄的鱼眼图片,这在处理扭曲的鱼眼数据时提高了模型的准确性和鲁棒性。7自由度增强为鱼眼摄像机的语义分割提供了通用解决方案,并为增强自主驾驶提供了明确的参数设置,并创建了FisheyeCityscapes[84]数据集。


目标检测


在鱼眼图像中,目标检测受到的径向失真影响最大,由于鱼眼图像形成中的固有失真,与光轴成不同角度的目标看起来非常不同(如下图所示)。矩形边界框往往不是目标大小的最佳表示,有时是标准BB框的一半,而框本身是ROI对象的两倍。实例分割提供了对象的精确轮廓,但注释成本更高,还需要BB估计步骤。


FisheyeDet[87]强调了对有用数据集的需要,通过对Pascal VOC数据集应用失真来创建模拟鱼眼数据集[88]。多边形表示和变形形状匹配有助于FisheyeDet,论文提出了无先验鱼眼表示法(NPFRM)来提取自适应失真特征,而不使用透镜图案和校准图案。同时,提出了畸变形状匹配(DSM)策略,以实现鱼眼图像中目标的精确、稳健定位。

640.png


SphereNet[89]及其变体[90]–[92]在球面上形成CNN,并显式编码针对畸变的不变性。SphereNet通过调整卷积滤波器的采样位置并将其环绕在球体上来反转失真,从而实现这一点。现有的透视CNN模型可以使用SphereNet转换为全向场景。此外,水平和垂直方向上的准失真表明鱼眼图像不符合球面投影模型,Yang等人[93]比较了几种利用等矩形投影(ERP)序列作为直接输入数据的检测算法的结果,发现CNN在不将ERP序列投影到正常2D图像的情况下仅产生一定的精度。


FisheyeYOLO[14]、[94]研究了各种表示方法,如定向边界框、椭圆和通用多边形。使用IoU度量和精确的实例分割地ground truth,并提出了一种新的曲线bbox方法,多边形bbox CNN模型将mIoU的相对精度提高了40.3%。


脏污下的感知


全景摄像头直接暴露在外部环境中,容易受到污染。相比之下,前摄像头放在挡风玻璃后面,不太容易受到影响。一般来说,有两种类型的污染:不透明(泥、灰尘、雪)和透明(水、油和油脂)。由于背景能见度有限,尤其是透明污垢可能难以识别,弄脏会导致感知精度显著降低。DirtyGAN[96]建议使用GANs修复真实场景中的不同污渍图案。污垢的边界模糊且定义不明确,因此人工注释可能具有主观性和噪声。Das等人[97]提出了瓷砖级污垢分类,以处理噪声标注并提高计算效率。


从感知的角度来看,有两种处理污垢的方法。一种方法是包括鲁棒性措施以改进感知算法。例如,Sakaridis等人[99]提出了模糊场景感知语义分割。另一种方法是恢复污染区域。泥浆或水滴通常是静态的,或者偶尔具有移动水滴的低频动态。因此,使用基于视频的恢复技术更有效,Porav等人[100]通过使用立体相机和滴水水源来模拟相机镜头上的雨滴,探索了透明污垢模型。Uricar等人[101]提供了环视摄像机的去油数据集基准,使用了三个摄像头,靠近不同程度的污渍,第四个摄像头没有污渍,充当gt。


几何任务


深度估计


先前的运动结构(SfM)方法[106]、[107],通过将网络的视差预测参数化为视图合成步骤期间的非投影操作的深度来估计逆深度。这种参数化不适用于鱼眼相机,因为鱼眼相机会经历较大的扭曲,导致与针孔相机中的对极线相比,对极曲线上出现角度差异。为了采用与针孔相同的方法,需要进一步校正鱼眼图像,但这将导致视野损失。


适用于针孔模型的多视图几何[108]原理投也适用于鱼眼图像,通过从不同的视点观察场景并建立它们之间的对应关系,可以估计潜在的几何结构。值得注意的是,当采用SfM方法时,考虑到CNN输出的范数值比鱼眼相机的角度差异大,因为这将使视图合成操作难以将角度差异参数化为距离。此外,对于大于180°的视场,z值可以(接近)为零或负值,这也会导致模型出现数值问题。


对于激光雷达距离测量,如KITTI,深度预测模型可以在监督下学习。拉维·库马尔(Ravi Kumar)等人[109]采用了类似的方法,证明了利用激光雷达地面真值对鱼眼图像进行训练来预测距离图的能力。尽管如此,激光雷达数据非常稀疏,并且设置良好的校准非常昂贵。为了克服这个问题,FisheyeDistanceNet[110]专注于解决最具挑战性的几何问题之一,即使用基于图像的重建技术对原始鱼眼相机进行距离估计,这是一项具有挑战性的任务,因为2D图像到3D曲面之间的映射是一项复杂的欠约束问题。


深度估计也是一个不适定的问题,因为每个像素有几个潜在的错误深度。UnRectDepthNet[16]引入了一种通用的端到端自监督训练框架,用于估计不同相机模型的原始扭曲图像上的单目深度图。作者展示了原始KITTI和WoodScape数据集框架工作的结果。


SynDistNet[111]学习了语义感知几何表示,可以在自监督学习SfM上下文中消除光度歧义。论文引入了广义鲁棒损失函数[112],该函数显著提高了性能。


视觉里程计


Liu等人[114]描述了鱼眼立体相机的传统直接视觉里程计技术。该技术同时进行摄像机运动估计和半密度重建。pipelines中有两个线程:一个用于跟踪,一个用于mapping,论文使用跟踪线程中的半密集直接图像对齐来估计相机姿态。为了避免极线问题,使用了平面扫描立体算法用于立体匹配和初始化深度。


Cui等人[115]展示了一种使用鱼眼摄像机的大规模实时密集几何mapping技术。摄像机姿态是从GNSS/INS系统获得的,但他们也提出,也可以从视觉惯性里程计(VIO)框架中检索。深度图融合使用通过这些方法检索的相机姿态。Heng等人[116]描述了一种用于鱼眼立体相机的半直接视觉测程算法,在跟踪线程中,它们在估计相机姿态时跟踪定向面片;在mapping线程中,他们估计要跟踪的每个新面片的坐标和曲面法线。曲面法线估计允许从不同的视点跟踪面片。在检测贴片对应的技术中不使用描述符或强描述符匹配,相反,论文采用基于光一致性的方法来寻找贴片对应。


鱼眼摄像机的多种视觉测程方法,包括[117]以及[118]。此外,Geppert等人[117]使用多摄像机视觉惯性里程计框架扩展了大规模环境下的视觉惯性定位技术,从而形成了一个允许准确无漂移姿态估计的系统,拉维·库马尔等人[119]将CNN用于视觉测程任务,该任务在单目距离估计框架中充当辅助任务。


运动分割


运动分割被定义为识别一对序列中独立移动的对象(像素),如车辆和人员,并将其与静态背景分离。MODNet[120]首次探索了自动驾驶应用场景,InstanceMotSeg[121]定义并探索了实例级运动分割。FisheyeMODNet[122]将其扩展到鱼眼摄像机,无需校正,没有明确的运动补偿。Mariotti等人[74]基于车辆里程计[123],使用经典方法完成这项任务。进行光流的球坐标变换,正高度、深度和极线约束适用于该设置,论文还提出了反平行约束,以消除运动视差模糊,这通常发生在汽车平行于ego车辆移动时。


Temporal Tasks


虽然深度和运动等几何任务可以使用多个帧进行训练和推理,但输出仅在一个帧上定义。我们将 Temporal Tasks定义为输出在多个帧上的任务,它通常需要多帧顺序标注。


跟踪


目标跟踪是一项常见的任务,必须跨多个帧关联对象。[124]中探讨了环视摄像机的运动物体检测和跟踪,他们使用经典的基于光流的方法进行跟踪。WEPDTOF[125]是一个最近发布的数据集,用于高架监控装置中鱼眼摄像头的行人检测和跟踪。轨迹预测与跟踪密切相关,在自动驾驶的场景下,特别是在3D鸟瞰空间中进行。PLOP 算法[126]探索了在应用圆柱校正后,在鱼眼前置摄像头上进行车辆轨迹预测。


重识别


重新识别(Re ID)是跨camera检测到对象的关联,还可以包括跨camera的时间关联。Wu等人[127]建议在全景相机上实施车辆识别,并强调两个重大挑战:首先,由于鱼眼失真、遮挡、截断和其他因素,很难在单个摄像机视图中从以前的图像帧中检测到同一车辆。其次,在多摄像头视角下,同一辆车的外观会根据使用的摄像头发生显著变化。论文提供了一种新的质量评估机制,以抵消跟踪box漂移和目标一致性的影响(主要采用基于注意力机制的Re ID网络,然后与空间约束方法配对,以提高不同摄像机的性能)。


SLAM


FisheeySuperpoint[132]为鱼眼图像引入了一种独特的训练和评估方法。作为起点,采用SuperPoint[133],一种自监督关键点检测器和描述符,生成了SOTA的单应性预测结果。论文提出了一个鱼眼自适应框架,用于在未失真的鱼眼图像上进行训练,鱼眼扭曲用于鱼眼图像的自监督训练。通过对单位球体的中间投影相位,鱼眼图像被转换为新的扭曲图像。摄像机的虚拟姿态可以在6-Dof中改变。Tripathi等人[134]探索了环视鱼眼相机使用ORB SLAM pipelines重新定位的问题。


多任务模型


使用相同backbone完成多个任务的特征提取,对于鱼眼相机,Sistu等人[147]提出了一种用于学习目标检测和语义分割的联合MTL模型。主要目标是在芯片上的低功耗嵌入式系统上实现实时性能,这两项任务使用相同的编码器,目标检测采用YOLO v2解码器,而语义分割采用FCN8解码器。Leang等人探索了鱼眼摄像机上两个任务设置的不同任务加权方法[148]。FisheyeMultiNet[149]从基于camera的深度学习算法角度讨论了自动泊车系统的设计和实现。在低功耗嵌入式系统上,FisheyeMultiNet是一个实时多任务深度学习网络,可识别停车所需的所有目标。该装置是一个四摄像头系统,运行速度为15fps,同时执行三项任务:物体检测、语义分割和脏污检测。OmniDet[119]中介绍了仅使用camera对环境近距离感知的整体实时场景理解结构,从一个深度学习模型中学习几何、语义、运动、定位和脏污多项任务,在嵌入式系统上速度60帧/秒。


鱼眼开源数据集



鱼眼相关数据集如下图所示,涉及语义分割、实例分割、2D/3D检测、深度估计、光流、定位、跟踪等任务!!!!

640.png


未来的一些研究方向



论文主要关注了失真感知CNN、处理时间变化、BEV感知、多相机模型、近视场和远视场相机的统一建模等,详细可以关注提出的一些参考文献。


参考



[1] Surround-view Fisheye Camera Perception for Automated Driving: Overview, Survey & Challenges

相关文章
|
6月前
|
机器学习/深度学习 计算机视觉
AIGC核心技术——计算机视觉(CV)预训练大模型
【1月更文挑战第13天】AIGC核心技术——计算机视觉(CV)预训练大模型
607 3
AIGC核心技术——计算机视觉(CV)预训练大模型
|
2月前
|
人工智能 测试技术 API
AI计算机视觉笔记二十 九:yolov10竹签模型,自动数竹签
本文介绍了如何在AutoDL平台上搭建YOLOv10环境并进行竹签检测与计数。首先从官网下载YOLOv10源码并创建虚拟环境,安装依赖库。接着通过官方模型测试环境是否正常工作。然后下载自定义数据集并配置`mycoco128.yaml`文件,使用`yolo detect train`命令或Python代码进行训练。最后,通过命令行或API调用测试训练结果,并展示竹签计数功能。如需转载,请注明原文出处。
|
2月前
|
人工智能 测试技术 PyTorch
AI计算机视觉笔记二十四:YOLOP 训练+测试+模型评估
本文介绍了通过正点原子的ATK-3568了解并实现YOLOP(You Only Look Once for Panoptic Driving Perception)的过程,包括训练、测试、转换为ONNX格式及在ONNX Runtime上的部署。YOLOP由华中科技大学团队于2021年发布,可在Jetson TX2上达到23FPS,实现了目标检测、可行驶区域分割和车道线检测的多任务学习。文章详细记录了环境搭建、训练数据准备、模型转换和测试等步骤,并解决了ONNX转换过程中的问题。
|
4月前
|
自然语言处理 监控 自动驾驶
大模型在自然语言处理(NLP)、计算机视觉(CV)和多模态模型等领域应用最广
【7月更文挑战第26天】大模型在自然语言处理(NLP)、计算机视觉(CV)和多模态模型等领域应用最广
191 11
|
5月前
|
编解码 机器人 测试技术
2024年6月计算机视觉论文推荐:扩散模型、视觉语言模型、视频生成等
6月还有一周就要结束了,我们今天来总结2024年6月上半月发表的最重要的论文,重点介绍了计算机视觉领域的最新研究和进展。
140 8
|
6月前
|
机器学习/深度学习 编解码 人工智能
Vision Mamba:将Mamba应用于计算机视觉任务的新模型
Mamba是LLM的一种新架构,与Transformers等传统模型相比,它能够更有效地处理长序列。就像VIT一样现在已经有人将他应用到了计算机视觉领域,让我们来看看最近的这篇论文“Vision Mamba: Efficient Visual Representation Learning with Bidirectional State Space Models,”
647 7
|
6月前
|
机器学习/深度学习 算法 数据挖掘
计算机视觉五大核心研究任务全解:分类识别、检测分割、人体分析、三维视觉、视频分析
计算机视觉五大核心研究任务全解:分类识别、检测分割、人体分析、三维视觉、视频分析
601 1
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
计算机视觉借助深度学习实现了革命性进步,从图像分类到复杂场景理解,深度学习模型如CNN、RNN重塑了领域边界。
【7月更文挑战第2天】计算机视觉借助深度学习实现了革命性进步,从图像分类到复杂场景理解,深度学习模型如CNN、RNN重塑了领域边界。AlexNet开启新时代,后续模型不断优化,推动对象检测、语义分割、图像生成等领域发展。尽管面临数据隐私、模型解释性等挑战,深度学习已广泛应用于安防、医疗、零售和农业,预示着更智能、高效的未来,同时也强调了技术创新、伦理考量的重要性。
64 1
|
6月前
|
编解码 边缘计算 自然语言处理
2024年5月计算机视觉论文推荐:包括扩散模型、视觉语言模型、图像编辑和生成、视频处理和生成以及图像识别等各个主题
五月发布的计算机视觉领域重要论文涵盖了扩散模型、视觉语言模型、图像生成与编辑及目标检测。亮点包括:1) Dual3D提出双模式推理策略,实现高效文本到3D图像生成;2) CAT3D利用多视图扩散模型创建3D场景,仅需少量图像;3) Hunyuan-DiT是多分辨率的中文理解扩散Transformer,可用于多模态对话和图像生成;4) 通过潜在扩散模型从EEG数据重建自然主义音乐,展示复杂音频重建潜力。此外,还有关于视觉语言模型和图像编辑的创新工作,如BlobGEN用于合成具有控制性的图像。
239 3
|
5月前
|
机器学习/深度学习 算法框架/工具 计算机视觉
ViT模型的出现标志着Transformer架构在计算机视觉中的成功应用
ViT模型的出现标志着Transformer架构在计算机视觉中的成功应用
74 2

热门文章

最新文章