最新鱼眼BEV感知 | FPNet:面向泊车场景的失真不敏感多任务算法(TIV 2022)(上)

简介: 本文介绍了一种新的大规模鱼眼数据集 FPD,旨在促进对现实环境中各种环视泊车情况的研究。值得注意的是,作者的FPD对不同的环视感知任务都显示出优秀的特点。此外,作者还提出了实时的失真不敏感的多任务鱼眼感知网络(FPNet) ,通过增强鱼眼失真操作和多任务轻量级设计来改善环视鱼眼 BEV 感知。大量的实验验证了作者的方法的有效性和数据集的异常可推广性。

摘要



泊车场景下的环视鱼眼感知是自动驾驶的基础和关键。泊车场的环境条件不同于一般的公共数据集,如光线不佳和模糊,这对感知性能有很大的影响。大多数现有的基于公共数据集的网络也会受到鱼眼畸变的影响,在这些代客泊车场景中得到次优结果。本文介绍了一种新的大规模鱼眼数据集 FPD,旨在促进对现实环境中各种环视泊车情况的研究。值得注意的是,作者的FPD对不同的环视感知任务都显示出优秀的特点。此外,作者还提出了实时的失真不敏感的多任务鱼眼感知网络(FPNet) ,通过增强鱼眼失真操作和多任务轻量级设计来改善环视鱼眼 BEV 感知。大量的实验验证了作者的方法的有效性和数据集的异常可推广性。


介绍



作为开发高效、安全的高级驾驶辅助系统(ADAS)[1]-[3]的重点,代客泊车近年来越来越受到工业界和研究界的关注[4]-[6]。在各种驾驶辅助应用中,代客泊车是一项必不可少而又具有挑战性的任务。下图1显示了代客泊车期间的几个具有挑战性的场景[7]-[9]。

640.png

此外,泊车场景中的环境条件,如光线不佳和模糊,显著增加了稳健的环境感知的难度[10] ,[11]。与高速公路和城市地区等相对清晰的场景不同,代客泊车旨在将车辆驶入泊车位等下车区域,这些区域在感知上面临着很高的要求[12]。


最近的进展[13] ,[14]展示了用便宜的车载相机取代激光雷达的潜力,这些相机可以在大多数现代车辆上轻易获得[15] ,[16]。特别是,环视鱼眼相机可以提供比针孔相机更广的视场(FoV)[17] 。此外,四个环视鱼眼相机覆盖360度的感知,这弥补了针孔相机的近场感知不足,尤其是在代客泊车的情况下[18]。然而,鱼眼镜片通常表现出明显的径向畸变,导致大量的外观畸变[18] ,[19] ,使周围的识别复杂化。为了充分利用鱼眼范式,更多的研究人员开始探索鱼眼环视感知,如车辆或行人的位置和姿势信息[12] ,[20]。


当前的数据集,如 KITTI [21] ,Cityscapes [22]等,大多采用针孔相机捕捉图像,可以在城市,农村或高速公路驾驶场景下轻松获得清晰可辨的图像。有少量用于自动驾驶的鱼眼数据集[23] ,[24] ,这有助于鱼眼环视的快速发展。Woodscape [23]和 KITTI360[24]收集了大规模的鱼眼数据集,用于地面上的不同感知任务。然而,这些数据集没有充分强调代客泊车场景和鱼眼图像格式。因此,在公共针孔数据集或鱼眼数据集上训练的模型可能显示出次优的性能,因为缺乏足够的训练样本,特别是对于泊车场景。为了扩展代客泊车场景下具有不同遮挡和姿势的环视鱼眼感知任务图像,作者提供了第一个被称为鱼眼泊车数据集(FPD)的泊车场景鱼眼数据集。数据集包括下面几个属性:

  1. 拥有超过40万张鱼眼图像的大规模数量;
  2. 不同泊车场、不同时段及不同泊车条件的高度多样化;
  3. 过滤噪音及冗余图像的高质素;
  4. 不同感知任务的多种标注,例如2D目标检测、3D目标检测、 BEV 感知、深度估计等。


与其他公共自动驾驶数据集[21] ,[25] ,[26]不同,作者的 FPD 数据集侧重于代客泊车环视感知任务,弥补了处理现实世界泊车场场景研究的空白。此外,作者提供了FPD的基线,并提出了实时失真不敏感的多任务网络鱼眼感知网络(FPNet) ,特别是环视鱼眼感知任务,包括2D目标检测,单目3D目标检测,BEV 感知和单目密度深度估计。该网络实现了轻量级和准确性之间的平衡,此外还有一个特殊的模块来解决鱼眼畸变。

作者的贡献总结如下:


  1. 作者建立了第一个鱼眼泊车数据集 FPD,专注于环视鱼眼感知,包括2D目标检测、3D目标检测、 BEV 感知和深度估计。作者贡献的FPD包括超过40万鱼眼图像,并包含有吸引力的特点,为泊车场景。
  2. 作者提出了作者的FPD的基准: 对失真不敏感的多任务框架 FPNet 用于环视感知任务,特别是 BEV 感知任务。FPNet 利用特定的失真模块和轻量级设计实现了实时性、失真不敏感性和准确性。
  3. 综合实验验证了作者收集的FPD数据集的实用性和FPD网络的有效性。


相关工作



自动驾驶数据集


为了满足自动驾驶发展的不断提高的需求,在过去的十年中,先驱者的工作创造了大量的数据集,这些数据集涵盖了大多数自动驾驶任务,比如目标检测,语义分割,深度估计,车道检测,运动估计等等,对自动驾驶做出了惊人的贡献。然而,这些数据集几乎都是针孔相机数据集,具有有限的视场(FoV)。实际上,广泛的视觉任务也采用环视鱼眼相机来监视周围的环境,因为它们的大视场[17]和足够稳定的性能[30]。特别是,自车可以达到360度的感知,而只使用四个鱼眼相机,这有利于大规模生产[31]。此外,全方位相机还能捕捉到360度的视场,它在水平面上覆盖了一个完整的圆[32]。

法雷奥发布了第一个鱼眼数据集 Woodscape [23] ,以鼓励鱼眼模型的发展。但是由于数据保护的限制,Woodscape 并没有公布激光雷达的真值。KITTI360[24]提出了另一个大规模的数据集,包含丰富的传感器信息,包括针孔和鱼眼相机。对于全方位相机时代,业界和学术界为全方位视觉提供了像 Stan-ford2d3D,Matterport3D,360D,PanosUNCG 等数据集。然而,这些数据集通常集中在地上自动驾驶场景,如城市,农村和高速公路。没有公开可用的基准数据集为代客泊车场景。作者的鱼眼泊车数据集(FPD)可以弥补这一空缺,促进研究处理现实世界的泊车场场景。


单目感知任务


自动驾驶涉及各种感知任务,如目标检测或深度估计,以帮助系统覆盖更广泛的应用场景。在这篇文章中,作者主要处理三个任务: 2D目标检测、单目3D检测和单目深度估计。作者可以从3D检测结果推导出 BEV 感知。


  1. 2D目标检测: 2D目标检测作为一个基本的视觉任务。基于CNN的2D目标检测框架包括一阶段检测方法[38] ,[39]和两阶段检测方法[40]-[42]。作为端到端的pipeline,一阶段方法在性能和速度之间实现了显着的平衡,如 SSD 系列[43]-[45] ,YOLO 系列[39] ,[46]和 RetinaNet [38]。此外,两阶段的方法,如 RCNN 系列[42] ,[47] ,[48] ,利用预定义的anchor提高性能以牺牲速度为代价。此外,[49] ,[50]融合多尺度特征图,以改善不同尺度的检测。
  2. 单目3D 检测: 许多先前的工作[14] ,[51]-[53]已经解决了从单目图像中检测3D 目标的固有病态问题。由于缺乏来自图像的深度信息,单目3D 检测比基于激光雷达和多目的检测更难学习。许多工作[54]-[56]通过利用2D-3D 几何约束来提高3D 检测性能来解决这个问题。此外,CenterNet [57]提出了一种基于中心的anchor-free方法,但其准确性受到限制。基于中心序列 SMOKE [58]、 KM3D [59]和 RTM3D [60] ,通过求解一种Perspective-n-Point,辅助目标深度的回归,取得了显著的效果。然而,大多数现有的工作针对针孔相机代替鱼眼相机,其中鱼眼相机具有强烈的径向畸变,并表现出更复杂的投影几何形状[61] ,导致外观畸变[62]。
  3. 单目深度估计: 基于CNN的监督方法[63]-[65]由于其优越的性能,在单目深度估计任务中很受欢迎。作为一个先驱,Eigen 等[66]直接回归深度,采用两个叠加的深度网络进行粗略预测,然后在局部进行细化。然后 Laina 等[67]采用端到端的单 CNN 架构,遵循残差学习。此外,DRO [63]引入了一个深度递归优化器,通过迭代交替更新深度和相机姿态,以最小化特征度量成本。此外,最近的工作[68] ,[69]应用视觉transformer,以改善深度估计。


不同成像传感器的视觉感知


大多数公开感知方法都为针孔图像设计模块 ,这些模块进行透视投影,很少考虑相机的失真问题。然而,当使用广角相机(鱼眼相机或全方位相机)时,研究人员必须考虑失真严重等问题。环视自动驾驶系统通常采用鱼眼相机来实现周围的感知[70]-[75] ,它建立特定的组件来处理失真[76]-[79]。全方位相机揭示了360 ° 全景图中更高的复杂性和扭曲性,全方位图像的感知也处理了大分辨率、图像预处理和知识迁移等引起的扭曲和问题[35] ,[80]-[83]。下表1显示了三个成像传感器的更多比较。

640.png


多任务视觉感知


许多自动驾驶调研通过联合学习不同的子任务来处理复杂的现实世界场景。MultiNet [86]通过一个通用的高效架构完成道路分割、检测和分类任务。NeurAll [88]带来了统一的 CNN 架构,包括目标识别、运动、深度估计和便于视觉 SLAM。Li 等[89]以类似的方式提出了一个统一的端到端框架(MJPNet) ,它在多个子任务之间共享预测。这些研究验证了联合多任务学习在不同自动驾驶情景下的效果。然而,大多数研究集中在无畸变的针孔视觉条件和不经常探索的广角鱼眼相机为基础的感知。OmniDet[12]在鱼眼数据集WoodScape上形成了一个具有六个主要任务的编码器共享框架。整体而言,鱼眼模型具有显著的增长潜力和丰富的情景分布。


鱼眼泊车数据集



本部分详细介绍了作者的鱼眼泊车数据集(FPD) ,包括数据采集和标注过程、数据集描述和显著特征。


数据收集


为了确保自动驾驶场景的多样性,作者共收集了三个城市,超过100个泊车场,两个时段(白天和夜间) ,并从激光雷达捕捉到400多个视频和点云序列。下图2显示了几个作者收集的代客泊车场景的真实鱼眼图像。

640.png


具体来说,作者的主激光雷达采用了 RoboSense RS-Ruby,它具有128线,10Hz 的捕获频率,360度水平视场和 -25至 + 15度垂直视场。此外,作者选择了四个纵目鱼眼 RGB 相机,分辨率为1920 × 1280,捕捉频率为20Hz。下图3演示了这些传感器的安装位置及其生成的图像或点云的性能。


640.png

在数据记录过程中,系统对齐了相机视频和激光雷达点云序列之间的时间戳,符合以下标注要求。除此之外,作者进一步进行传感器的标定,过程分为以下三个步骤。首先,作者可以直接根据镜头的畸变查找表中提供的初始工厂设置来计算相机的内参。其次,作者通过测量设备实现激光雷达和基于自车坐标系的相机的外参(x,y,z,俯仰角,偏航角,滚动角)。再次,通过对投影激光雷达点和图像语义的对齐,进一步校正了相机的外参。如下图5所示,作者通过上述标定将 LiDAR 点投影到图像平面,然后手动调整相机的外参以匹配投影点和语义内容。


640.png


为了覆盖泊车场的各种真实场景,作者人为地安排了各种驾驶场景来收集数据,如图1所示的汽车会车、汽车交叉口相遇和人员环绕一周等,这些都是自动泊车任务中常见但关键的情况。


数据标注


作者以与 KITTI 数据集相同的方式标注数据集[21] ,通过在每个目标的完整点云体周围画一个紧密的边界框。对于冗余的标注,作者并没有涵盖所有目标的连续移动过程。相反,作者删除相似的片段,并用三到五帧的间隔对数据进行标注。此外,作者限制可见范围(15米内) ,所以作者放弃太远的目标。对于被遮挡的目标,如果遮挡率小于80% ,通过根据标注者的经验想象完整的3D包围框来保留3D框。下图6显示了标注标签的几个示例。作者的标注包括八个类别,包括汽车,卡车,行人,骑手,婴儿车,交通锥,摩托车和不泊车标志。

640.png


下图4展示了8个类别的标注演示,其中蓝色边界框表示3D 标注的2D 可视化,从点云平面投影到图像平面。640.png


黄色边界框表示蓝色投影点的外部边界矩形,作为作者的2D目标检测,如图6(b)所示。此外,在稀疏深度图的校正和畸变参数的辅助下,作者将点云投影到单目图像上。然后作者采用深度补全方法 IP-Basic [90]来创建更加稳健的深度真值,如图6(c)所示。


数据集描述


下表2和图7说明了作者的FPD的统计数据。为了统计,作者获得超过400,000个数据,其中一个数据包含四个鱼眼图像和一个带标注的点云。

640.png


此外,一个数据伴随着一个内参,一个外参和一个鱼眼畸变参数。作者可以通过内、外和鱼眼畸变参数对图像进行点云标注,得到2D目标包围框和深度真值。此外,作者将 FPD 分为训练,验证和测试集,比例为5:3:2,数量为210,000,126,000和84,000。白天和夜间场景的比例为2:1。此外,每个泊车场平均有4000个数据组成了超过400,000个标注,其中最常见的类别表示汽车、行人和交通锥,如图7所示。


数据集特性


作为第一个大规模的真实世界的鱼眼数据集,作者的 FPD 显示了以下优秀的特性:

  1. 第一个用于泊车场景的鱼眼数据集: 作者提供了第一个鱼眼数据集 FPD,它集中在泊车场景中的多个自动驾驶任务,也不同于公共数据集的自然场景。泊车场景中的环境条件,如光线不佳和模糊,显著增加了检测难度。关于各种棘手的泊车场景,FPD 可以促进研究处理现实世界的泊车问题。
  2. 数量巨大: 到目前为止,作者的 FPD 包含了超过200个小时的泊车场景视频和点云序列的40多万个数据。在未来,作者将继续收集不同的泊车场,以丰富现有的数据集。
  3. 高质量、多样化: 作者的FPD覆盖三个城市,一百多个不同时期的泊车场,以及不同的泊车案例。此外,作者精心挑选高质量的图像和高分辨率的点云,确保数据集的优势。
  4. 多用途: 作为一个基于点云的数据集,FPD的潜力不仅在于三个任务(即2D目标检测、单目3D目标检测和深度估计) ,还在于其他视觉任务,如点云3D目标检测、2D或3D语义分割、视频目标检测。因此,FPD 是多用途的多种任务。


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


相关文章
|
1月前
|
机器学习/深度学习 JSON 算法
二叉树遍历算法的应用场景有哪些?
【10月更文挑战第29天】二叉树遍历算法作为一种基础而重要的算法,在许多领域都有着不可或缺的应用,它为解决各种复杂的问题提供了有效的手段和思路。随着计算机科学的不断发展,二叉树遍历算法也在不断地被优化和扩展,以适应新的应用场景和需求。
32 0
|
2月前
|
存储 算法 安全
SM2算法的应用场景有哪些?
【10月更文挑战第5天】SM2算法的应用场景有哪些?
130 1
|
2月前
|
监控 算法 数据挖掘
HyperLogLog算法有哪些应用场景呢
【10月更文挑战第19天】HyperLogLog算法有哪些应用场景呢
19 0
|
3月前
|
算法 计算机视觉 Python
Python并查集大揭秘:让你在算法界呼风唤雨,秒杀一切复杂场景!
在编程与算法的广袤天地中,总有一些工具如同神兵利器,能够助你一臂之力,在复杂的问题前游刃有余。今天,我们就来深入探讨这样一件神器——Python并查集(Union-Find),看看它是如何让你在算法界呼风唤雨,轻松应对各种复杂场景的。
75 2
|
3月前
|
算法 调度
贪心算法基本概念与应用场景
尽管贪心算法在许多问题中都非常有效,但它并不总是会产生最优解。因此,在应用贪心算法前,重要的是先分析问题是否适合采用贪心策略。一些问题可能需要通过动态规划或回溯等其他算法来解决,以找到确切的全局最优解。
113 1
|
2月前
|
机器学习/深度学习 自然语言处理 算法
神经网络算法以及应用场景和基本语法
神经网络算法以及应用场景和基本语法
49 0
WK
|
3月前
|
机器学习/深度学习 算法 数据挖掘
PSO算法的应用场景有哪些
粒子群优化算法(PSO)因其实现简单、高效灵活,在众多领域广泛应用。其主要场景包括:神经网络训练、工程设计、电力系统经济调度与配电网络重构、数据挖掘中的聚类与分类、控制工程中的参数整定、机器人路径规划、图像处理、生物信息学及物流配送和交通管理等。PSO能处理复杂优化问题,快速找到全局最优解或近似解,展现出强大的应用潜力。
WK
138 1
|
7天前
|
算法
基于WOA算法的SVDD参数寻优matlab仿真
该程序利用鲸鱼优化算法(WOA)对支持向量数据描述(SVDD)模型的参数进行优化,以提高数据分类的准确性。通过MATLAB2022A实现,展示了不同信噪比(SNR)下模型的分类误差。WOA通过模拟鲸鱼捕食行为,动态调整SVDD参数,如惩罚因子C和核函数参数γ,以寻找最优参数组合,增强模型的鲁棒性和泛化能力。
|
13天前
|
机器学习/深度学习 算法 Serverless
基于WOA-SVM的乳腺癌数据分类识别算法matlab仿真,对比BP神经网络和SVM
本项目利用鲸鱼优化算法(WOA)优化支持向量机(SVM)参数,针对乳腺癌早期诊断问题,通过MATLAB 2022a实现。核心代码包括参数初始化、目标函数计算、位置更新等步骤,并附有详细中文注释及操作视频。实验结果显示,WOA-SVM在提高分类精度和泛化能力方面表现出色,为乳腺癌的早期诊断提供了有效的技术支持。
|
9天前
|
算法
基于GA遗传算法的PID控制器参数优化matlab建模与仿真
本项目基于遗传算法(GA)优化PID控制器参数,通过空间状态方程构建控制对象,自定义GA的选择、交叉、变异过程,以提高PID控制性能。与使用通用GA工具箱相比,此方法更灵活、针对性强。MATLAB2022A环境下测试,展示了GA优化前后PID控制效果的显著差异。核心代码实现了遗传算法的迭代优化过程,最终通过适应度函数评估并选择了最优PID参数,显著提升了系统响应速度和稳定性。