Object Detection in Adverse Weather for Autonomous Driving through Data Merging and YOLOv8
发表期刊:Sensors;发表时间:2023
论文地址
摘要
对于自动驾驶来说,感知是一个主要和必要的元素,它从根本上处理通过传感器对自我车辆环境的洞察。感知是具有挑战性的,它受制于动态的对象和持续的环境变化。由于雪、雨、雾、夜光、沙尘暴、强光等不利天气干扰了感知质量,导致问题变得更加严重。在本工作中,我们试图提高基于摄像头的感知精度,例如在不利天气下与自动驾驶相关的目标检测。提出了基于YOLOv8的恶劣天气环境下目标检测的改进方法,利用融合后的各种恶劣天气数据进行迁移学习。使用两个成熟的**开源数据集(ACDC和Dawn)**及其合并后的数据集,在恶劣天气下检测道路上的主要目标。根据各个数据集、它们的合并版本以及这些数据集的几个子集的特征,从训练中收集一组训练权重。通过评估在前面提到的数据集及其子集上的检测性能,还进行了训练权重之间的比较。评估表明,与YOLOv8基本权重相比,使用自定义数据集进行训练显著提高了检测性能。此外,通过特征相关数据融合技术使用更多的图像,稳步提高了目标检测的性能。
背景及相关工作
引言
自动驾驶给社会带来了许多好处,其中最重要的是安全交通。计算技术的快速发展和传感器的低成本制造对自动驾驶的研究产生了重大影响。自主车辆的自主性根据其操作过程中人的参与程度分为六个级别。它不可避免地依赖于自主子系统,如感知、定位、行为预测、规划、控制等。其中,感知是自动驾驶的重要组成部分,它利用传感器来理解自我车辆的环境。然后,感知结果通过这些环境信息帮助执行后续任务。由于动态物体和持续的环境变化,感知可能是具有挑战性的。此外,由于雪、雨、雾、夜光、沙尘暴等恶劣天气造成的感知质量中断,感知质量变得更差。在这种情况下,研究天气条件导致实现天气不变的感知,并创建一个研究社区来解决这些缺点。地球上任何地方的视觉和知觉都受到各种季节的影响,或者至少在周期性的周期中,昼夜环境不同。在恶劣天气下,传感器通常无法识别车道标线、道路标线、地标、路边单元、交通标志和信号。调查传感器可能出现的天气变化实现可靠的自主性是不可避免的,因为车辆操作的环境意识是至关重要的。
随着机器学习和人工智能技术的发展,深度学习方法正在用更新、更有效的方法取代传统的感知任务,如目标检测、跟踪等。深度学习框架被用来检测雾天条件下的车辆。… 传统的计算机视觉技术和基于深度学习的框架在改善基于图像或视频的相机感知方面都非常有帮助。图像增强、恢复和去模糊是图像或视频可以用来提高视觉质量的方法之一,它们对增强目标检测特别有帮助。现在,通过增加处理能力和更好的存储能力的新机器的到来,增加数据集的数量,可以很容易地提高深度学习框架的性能。数据短缺的问题可以通过图像增强、数据关联等方法来解决,因为每种神经网络方法都依赖于海量的数据。这些数据增长策略正变得越来越受欢迎,用于解决检测性能较差等问题。探测性能在各种天气图像上进行了测试,包括下午晚些时候、日落、黄昏、夜晚和一些不同大小的液滴。然而,主要集中在感知子系统的实时性能上,而不是视觉准确性。
到目前为止,上述讨论表明,已经作出了一些努力,以通过各种方法加强目标检测。通过图像增强、人工数据创建等各种处理来增大数据量是其中较为有效的方法之一。最近对现有的自动驾驶数据集及其覆盖的天气方面的感知的研究仍然存在一些研究空白,例如将所有不同类型的恶劣天气结合在一起。例如,考虑将三种类型的天气–雪、夜光和强光–集成到单个数据集。在上述文章的基础上,我们的研究旨在结合大多数天气特征,分析不同数据集的特征组合对目标检测的影响。此前,除了通常的天气外,几个数据集还提出了雪、雨、夜光、雾、霾、雾霾、沙尘暴、云、阴天等天气情况。工作计划建议整合包含各种气象变量的多个来源的数据集,以天气一致的方式检测与自动驾驶车辆相关的物体。这项研究将有助于确定多个数据集不同的地理区域和气象情况的特征积累的影响。
相关数据集
深提出用于视觉识别的深度神经网络和数据集的最好的例子之一(开创性工作)是ImageNet。
参考文献:ImageNet: A Large-Scale Hierarchical Image Database.
类似地,在过去的十年里,已经提出了各种其他数据集来增强视觉识别结果。假设我们更专注于可比类型数据集在自动驾驶中的有用性。在这种情况下,Kitti、Microsoft Coco、 CitySees数据集对修改自动驾驶车辆领域中视觉感知的有用性做出了重大贡献。
Kitti(参考文献:Are We Ready for Autonomous Driving? The KITTI Vision Benchmark Suite.)、
Microsoft Coco(参考文献:Microsoft COCO: Common Objects in Context.)、
CitySees(参考文献:The Cityscapes Dataset for Semantic Urban Scene Understanding.)
这项研究着眼于具有不同气象特征的特定数据集,以实现对恶劣天气的稳健感知。雾、雨、夜、雪和沙尘暴是恶劣天气的主要因素。这些要素还包括雾霾、薄雾、烟雾、反射的夜间光线、雨夜、沙尘暴、暴雨、沙尘暴、阴天、云层、阴影等子要素。一些数据集试图包括各种气象特征,但只能独立地包括几个不同的天气特征。因此,我们不能接受这些数据集对于不受任何天气影响的感知是完美的,也不能普遍接受它们对每一种恶劣天气都有帮助。因此,我们根据它们的特征、效用和天气特征选择了几个有价值的开放数据集,将它们合并以覆盖所有特征,并创建一个有用的存储库,以消除环境特征中的任何差距。此外,我们知道深度学习方法,即神经网络,非常需要数据;因此,不同数据集的融合可能有助于全局学习有用的特征。关于不利天气的数据集很多,Breakly Deep Drive(BDD)[56]可能是一种有用的资源,可以为这项工作的数据合并做出主要贡献。BDD数据集包括来自从不同的美国城市,包括纽约,伯克利和旧金山的驾驶镜头。除了通常的天气图像外,还有雾、雨、雪、云、阴天和夜间灯光的图像。虽然数据集的图像数量丰富,但根据恶劣天气特征,它包含的图像较少。只有23张雾图像、213张雨图像、765张雪图像和345张夜间图像有助于学习天气特征[57]。因此,我们希望从天气特征的角度选择一些图像较少但特征更密集的完美数据集;然后,我们可以稍后用更正常的天气图像来扩展我们的研究。以这种方式,“具有对应关系的不利条件数据集”数据集[57],也被称为**“ACDC数据集”(https://acdc.vision.ee.ethz.ch/(2023年10月10日访问))**,记录了来自苏黎世(瑞士)的四种天气条件下的4006个相机图像:雨、雾、雪和夜间。“恶劣天气中的车辆探测”数据集[58],也被称为“DAWN数据集”((https://data.mendeley.com/datasets/766ygrbt8y/3,2023年10月10日访问),它只包含从谷歌和必应的网络搜索中收集的1,027张照片,是另一个高度相关的数据集。然而,它被选中是因为它的极端恶劣的天气质量,这可以作为在恶劣条件下进行训练和测试的真实世界的例子。它还包括几张沙尘暴图像,与前面提到的其他数据集相比,这些图像提供了独特的方面。DAWN数据集中标注了车辆、公交车、卡车、摩托车、自行车、行人和骑车人的7,845个边界框,并由LabelMe工具进行了注释。ACDC和DAWN数据集的主要区别功能包括在恶劣天气下拍摄每一张图像。因此,基于以上讨论,现在选择数据集的标准是明确的。然而,我们可以通过从上述数据集中手动选择相关图像来收集它们,这可能很耗时,但与进一步扩展这项工作相关。然而,我们发现ACDC和DAWN数据集对我们的分析最有帮助。
ACDC数据集中的雾、夜、雨和雪图像(分别按列排列)
DAWN数据集中的雾、雨、沙和雪图像(分别按列显示)。
方法
数据收集与标注
这项研究的主要贡献使用了两个数据集,它们都是开源的,可以广泛获取。DAWN数据集主要用于恶劣天气下的目标检测,并为六个类别(汽车、公共汽车、卡车、摩托车、自行车和人)进行了注释。ACDC数据集是为了在恶劣天气下通过图像分割来驱动场景理解而提出的。ACDC数据集已被广泛用于领域适应,如研究数据领域的变化。这些数据集可以在网上获得,以及它们相应的注释。然而,需要一个特殊的标记程序来结合它们。DAWN数据集上的标注与最新版本的YOLO不兼容,即使它们是为基于YOLOv3创建的Darknet架构。例如,DAWN数据集使用LabelMe工具对图像进行注释,从而将人归类为标签1,将自行车归类为标签2,将汽车归类为标签3,依此类推。相反,在COCO数据集上训练的YOLO的最新版本将0分配给人,1分配给自行车,2分配给汽车等。由于迁移学习旨在用于本研究的定制数据培训,因此在迁移学习期间可以接受全新的标签顺序分配。然而,我们遵循了与COCO数据集类似的通用标签流程,该流程与在COCO数据集上训练的任何版本的YOLO兼容。我们计划检测前十个对象,并保留它们在COCO数据集中定义的相应标签,以便为我们打算合并的所有数据集做出唯一的注释。即,将注释定义为:0人、1辆自行车、2辆汽车、3辆摩托车、4架飞机、5辆公共汽车、6列火车、7辆卡车、8艘船和9个红绿灯。虽然我们不希望在道路上行驶时检测到船只或飞机,但我们将它们保留为稀有对象,并更专注于检测车辆、行人、红绿灯等对象。因此,需要对所有图像执行新的注释。添加新标签后,注释与YOLO方法兼容,也可以使用它们的权重。这项研究有助于在恶劣天气下对两个数据集进行注释,以检测主要对象(可可数据集中的前十个对象),以用于自动驾驶。有趣的是,根据我们的了解,在此注释之前,ACDC数据集从未被标记为用于对象检测。声誉良好的数据注释网站makeense.ai(https://www.makesense.ai(2023年10月10日访问))协助了这项工作的手动数据注释。对于YOLOv8,Makeense.ai生成文本格式的标签,而对于Pascal VOC注释(http://host.robots.ox.ac.uk/pascal/VOC/(2023年10月10日访问)),标签是HTML超文本标记语言格式。注释方法平均每张图像需要5分钟,它试图合并所有相关对象,而不考虑大小和距离相机的距离。ACDC数据集中的几张照片(从黎明开始的照片相对较少)从数据集中删除,因为它们不包含任何目标检测对象。
数据处理与合并
在对来自两个数据集的所有相关图像进行标记之后,在训练之前的这项工作中数据处理是至关重要的。通过YOLOv8算法为训练、验证和测试准备了不同版本的数据集。YOLOv8采用640×640和1280×1280两种不同版本的图像大小作为训练输入。由于YOLO算法不包含任何图像处理或增强过程,所有图像处理,包括数据大小调整和增强,都是在RoboFlow网站(https://roboflow.com(2023年10月10日访问))的帮助下进行的,这是YOLOv8方法推荐的网站。Roboflow网站对于执行图像大小调整和放大任务非常有用,这些任务包括水平翻转、垂直翻转、裁剪、灰度、亮度、模糊、旋转、剪切、色调、饱和度、曝光、噪声、裁切、马赛克等。Roboflow网站还有助于将所有图像分别按70%、20%和10%的比例划分为训练、验证和测试图像。在合并数据集之前,将它们划分为训练集、验证集和测试集是至关重要的,因为如果不这样做,可能会导致分离图像的新组合,从而污染评估数据集(测试和验证图像)。相关数据增强技术(裁剪、模糊等)的多种组合作为多个增强型数据集版本执行和处理。因此,在本研究中,不同版本的处理图像的训练结果如下所示。其中,版本一包含没有增大或调整大小的原始数据集,版本二表示大小调整了640×640的图像增强数据集,版本三包含大小调整了640×640的原始数据集(非增强的),版本四表示大小调整了1280×1280的原始数据集,以及版本五包含大小调整了1280×1280的扩展数据集。合并的五个版本的数据集是通过合并来自DAWN和ACDC数据集的五个版本的相应训练、验证和测试图像而创建的。根据其特定的气象特征,DAWN和ACDC数据集子组之间也出现了几个合并结果。验证和测试图像在相同大小的增强或非增强数据版本上是相同的,因为数据增强仅在训练图像上执行。有关更详细的描述,请参见下表。
训练与评估
我们使用基于Google Colab服务的Python编程进行培训,并通过验证和测试对结果进行评估。在这项研究完成之前,YOLO的最新版本是YOLOv8。这种基于深度学习的神经网络模型在目标检测方面比以前的版本更快,并且获得了更好的精度。这项研究使用YOLOv8算法及其预先训练的权重作为骨干,通过迁移学习(https://www.analyticsvidhya.com/blog/2023/02/How-to-Train-a-Customer-DataSet-with-Yolov5/(访问日期:2023年10月10日),对定制数据进行训练。与其他YOLO版本一样,六个关键属性负责使用边界框进行对象检测。关键属性是边界框左上角的x和y坐标,边界框的宽度和高度,概率介于0和1之间的置信度分数,以及类ID。从性能角度来看,YOLOv8已经是一个完美的目标检测算法,这项工作有助于提高恶劣天气下的检测精度。YOLOv8 GitHub存储库[67]协助建立了关于定制数据和其他相关工作的培训(保存培训模型、准确性检查等)。在定制数据的训练过程中,可以使用六个版本的预先训练的权重作为转移学习的基础。对于纳米对象检测,基本权重是‘yolov8n.pt’,对于小对象是‘yolov8s.pt’,对于中型和大型对象依此类推,对于超大型对象是‘yolov8x.pt’。通过训练这些不同的基础重量获得的准确性也被认为有助于选择进一步训练的最佳权重。
由于所有图像都不包含对象,因此将它们从两个数据集的相应文件夹中删除。ACDC数据集被分为2715个训练图像、770个验证图像和383个测试图像。因此,在原始数据集提出的4006张图像中,只使用了3868张图像。曙光数据集被划分为700个训练图像、203个验证图像和100个测试图像。在准确性评估期间,重要的是要记住,验证和测试集中应该存在相同数量的图像和相同的图像,以评估和比较结果。下表提供了有关图像分布的更多详细信息。
数据集的每个不同版本都被训练了32个epoch(V5除外),并在训练期间将大小调整到640×640,而不依赖于它们的输入数据维度。对于YOLOv8方法,所有其他超参数都保持其缺省值。培训过程结束后,根据相应的验证数据对训练绩效进行评估(每次训练后显示结果)。这些结果帮助我们了解合并和关联数据版本的性能。然后,保存训练权重,并在测试集上对性能进行评估。因此,在训练期间首先对相应的验证数据执行权重,然后在相应的测试集上进行测试。然后,还在其他数据版本的测试和验证集上执行保存的权重。详细的工作流程如图所示。
实验结果
(a)验证图像的性能;(b)测试图像的性能
不同版本图像增强的检测性能结果:
使用DAWN、ACDC和合并的数据集在其相应的测试图像上进行训练权重的性能:
(a)DAWN;(b)ACDC;(c)合并;(d)全部
对合并后的数据集进行训练的性能:
各种训练权值对雾测试数据的精度召回(PR)曲线:
(A)“DAWN fog”试验数据上的“DAWN fog”。(B)“ACDC fog”试验数据的“ACDC fog”。©“DAWN fog”试验数据上的“merged fog”。(D)“ACDC fog”测试数据上的“merged fog”。(E)“DAWN fog”试验数据上的“DAWN”。(F)“ACDC fog”测试数据上的“ACDC”。(G)“merged”的“DAWN fog”试验数据。(H)“ACDC fog”测试数据的“merged”。
通过与特征相关的数据融合技术合并更多的图像来逐步提高目标检测结果:
(a)DAWN;(b)ACDC
准确性的局限性。在添加两个图像后,准确率在(a,c)之间提高,在(b,d)之间下降:
YOLOv8‘S基础权重(’yolov8x.pt‘)(左栏)和在合并数据集(V5)上训练的权重(右栏)在测试图像(ACDC,曙光)上的性能结果:
(A)通过‘yolov8x.pt’进行检测。(B)由‘MERGEDv5.pt’检测。不同类型的物体使用不同的颜色(0人(红色)、2辆轿车(橙色)、5辆大巴(浅绿色)、7辆卡车(绿色))。
YOLOv8‘S基础权重(’yolov8x.pt‘)(左列)和合并数据集(V5)上训练的权重(右列)在测试图像(ACDC、曙光)上的性能结果:
两个权重的检测性能结果之间的行式比较(在一对图像上)。(A)通过‘yolov8x.pt’进行检测。(B)由‘MERGEDv5.pt’检测。©通过‘yolov8x.pt’进行检测。(D)由‘MERGEDv5.pt’检测。(E)通过‘yolov8x.pt’进行检测。(F)由‘MERGEDv5.pt’检测。