2.2 数据集与预处理 (一)

深度学习 数据集 自动驾驶 数据预处理 开源数据集
深度学习算法依赖于大量数据来训练神经网络,数据集在模型训练中至关重要。数据集通常由训练数据、验证数据和测试数据组成,分别用于模型训练、超参数调整和最终性能评估。文章介绍了多个经典的开源数据集,如NPO、DRNO、KITTI及其子集、Cityscapes、ORFD等,这些数据集广泛应用于自动驾驶和计算机视觉研究,涵盖了不同天气、环境和路面状况。数据集的选择和构建对模型性能有直接影响,研究人员常根据任务需求制作或调整数据集。开源数据集为研究提供了重要基础,读者可通过相关资源获取并使用这些数据集。
文章内容
思维导图
常见问题
社交分享

目前,基于深度学习的人工智能算法通常被称为数据驱动型算法。这是因为这些算法依赖于大量的数据来训练神经网络,从而使其学习数据中的模式和特征,并在未见过的数据上做出预测或执行任务。因此,数据集在深度学习中起着至关重要的作用,是训练深度学习模型所需的基础。近年来,人工智能算法的进度也离不开数据集的增长和完善。然而,读者在实际情况中有时无法找到完美契合任务的开源数据集。在实际应用中,研究人员往往需要根据任务需求制作数据集。本节首先将介绍在自动驾驶场景分割任务中经典的开源数据集,之后介绍如何构建新的数据集。

2.2.1 数据集组成

一个数据集往往由训练数据、验证数据和测试数据组成。训练数据是用于训练深度学习模型的数据。由于深度学习模型从训练数据中学习特征和能力,因此,训练数据对深度学习模型的性能和泛化能力具有直接的重要影响。一般来说,更大更多样化的训练数据通常能够带来更好的性能。验证数据是指在训练过程中,用来评估模型性能的数据。通常根据验证结果调整超参数或模型结构,以优化模型的泛化能力。测试数据是指在训练和验证之后,用来评估模型的最终性能的独立的数据。通常,测试数据应该与训练和验证数据集有明显的差异,以确保模型的泛化能力。虽然验证数据和测试数据都是评估模型的性能,然而他们发挥的作用却是不同的。验证数据是训练算法过程中的一部分,而测试数据是测试算法性能的一部分。

用一个学生考试的例子来形象的理解三部分数据之间的关系。训练数据可以理解为学习过程中的练习题。学生通过大量做练习题来掌握课堂学习的知识。验证数据可以理解为学校组织的测验。教师通过考试来判断学生是否掌握知识,并根据学生的掌握情况,即使调整教学计划。测试数据可以理解为最终的期末考试。

注意:部分数据集没有提供验证数据,仅提供了训练数据和测试数据。使用这种数据集时,可以跳过验证环节或者再次分割出一部分数据作为验证数据。

2.2.2 经典数据集介绍

  • **NPO数据集:**该数据集的数据由固定在汽车上的ZED深度相机采集。为保证相机能清晰拍摄车辆周围环境,汽车的行驶速度控制在10km/h和30km/h之间,以避免车辆行驶速度过快而导致相机采集的图像模糊。此外,作者在不同时间、不同天气和不同环境中采集数据,以保证数据集中包含车辆行驶的主要天气以及常见环境,例如晴朗天气、下雪天气、逆光环境,光线昏暗环境、冰雪路面、积水路面等。作者从全部数据集中选取5000组含有负障碍物和正障碍物的数据,以左视图为基准进行人工标注图像中障碍物的像素级标签。由于采集数据的环境中大量物体距离相机较远,导致ZED相机生成的深度图存在大量缺失像素。为了解决这个问题,利用左右视图通过视差图像生成网络LEAStereo生成视差图像添加到数据集中。在NPO数据集中,共有2960张图像采集自城市和2040张图像采集自乡村。按天气分类,数据集中有4213张图像在晴天采集,有583张图像在下雪天采集,以及有204张图像在多云的天气采集。按路面状况分类,数据集中有1535张图像在含有雪或者积水的路面采集,有3465张图像在干燥路面采集。在NPO数据集中,共人工标注含有负障碍物的图像4596张,含有正障碍物的图像3105张。负障碍物和正障碍物含有的像素数量之比如图2-22所示。其中,由于在自动驾驶场景中主要以路面和道路周围的环境为主,因此正障碍物和负障碍物所占的面积比较小。最终,在全部数据中,仅标注了3.1%的像素。其中在所有标注的像素中,负障碍物占比24.5%,正障碍物占比75.5%。NPO数据集的图像和标注示例如图2-8所示。

图2-8 NPO数据集的图像和标注示例(左到右:RGB图像、视差图像、深度图像、真值)

  • **DRNO数据集:**该数据集应用于可行驶区域与负障碍物分割任务。该数据集与NPO数据集的具有相同的原始数据。作者从9个图像序列中每5张图像标注一张图像,总计标注8752张图像。在标注过程中,可行使区域标注车辆能够以正常速度行驶的区域,负障碍物标注道路上能够影响车辆行驶速度的坑洞和裂缝等。由于负障碍物是路面的特殊情况,因此相对于可行驶区域的标注的结果中具有较多像素点,而负障碍物的标注结果仅有少量的像素点,仅占全部标注像素点的0.2%。在DRNO数据集中,标注的像素点占全部像素点的32.6%。在整个数据集中,有3018张图像采集自城市,有5734张图像采集自乡村。根据路面状况将数据集划分成常规干燥路面、有积雪覆盖或者有积水的路面。其中,常规干燥路面有3691张图像,积雪覆盖或者积水的路面有5061张图像。DRNO数据集的图像和标注示例如图2-9所示。

图2-9 DRNO数据集的图像和标注示例

注意:NPO数据集和DRNO数据集是本书中主要使用的数据集。为了更好的跟随书中的进度和操作,建议读者从GitHub资源中下载这两个数据集。

  • **KITTI数据集:**该数据集是一个广泛用于自动驾驶和计算机视觉研究的数据集,由德国卡尔斯鲁厄理工学院和丰田欧洲研究中心合作创建。该数据集以“Karlsruhe Institute of Technology and Toyota Technological Institute”(KITTI)命名。数据集中包含了各种用于自动驾驶和计算机视觉研究的场景数据,主要包括图像数据、激光雷达数据、标定数据和位姿数据。KITTI数据集被广泛应用于自动驾驶、目标检测、图像分割、光流估计、点云分割、障碍物识别、三维重建等领域的研究和算法评估。由于其丰富的数据类型和真实的场景,KITTI数据集已经成为自动驾驶和计算机视觉研究的重要基准之一。
  • KITTI-ROAD数据集:该数据集是自动驾驶领域里著名的KITTI数据集的一个子集,用于对交通场景中的路面进行分割。该数据集中有RGB图像和点云数据,均采集自城市场景。数据集中的训练集含有289张图像,测试集含有290张图像。图中给出了KITTI-ROAD数据集的RGB图像示例。需要注意的是,为了保证各网络在数据测试时结果的真实性与公正性,仅可以下载训练集。研究人员需要通过上传训练完成的网络来使用测试集测试网络性能。图2-8左侧给出了该数据集中的图像示例。
  • **KITTI-Semantic数据集:**该数据集是KITTI数据集的一个子集,也是经典的用于交通场景分割任务的数据集。该数据集含有200对训练数据和200对测试数据。图2-8右侧给出了KITTI-Semantic数据集的RGB图像示例。

图2-10 KITTI-ROAD数据集(左)和KITTI-Semantic数据集(右)图像示例

  • **Cityscapes数据集:**该数据集是Cordts等提出的用于城市交通场景语义分割的数据集。该数据集含有5000张具有精细像素级别标签的RGB图像和视差图像以及20000张具有粗略像素级别标签的RGB图像和视差图像。该数据集中的图像在不同季节采集自欧洲50个城市,具有一定的代表性。但是,该数据集中的数据未采集自恶劣天气,例如雨天或者雪天。图2-9左侧给出了Cityscapes数据集的RGB图像和视差图像重叠的示例。作者标注图像时定义了30个类别,最终根据类别的常见性剩余了19个类别用于评估数据集。作者将5000张具有精细像素级别标签的RGB图像中的2975张图像分类成训练集, 1525张图像分类为测试集,500张图像分类为验证集。
  • **ORFD数据集:**该数据集是Min等使用相机和激光雷达在户外场景中采集的用于可行驶区域分割的数据集。作者提供了三类目标的像素级别标签,包括可行驶区域、不可行使区域以及不可到达区域。该数据集中含有12198对RGB图像和激光雷达点云数据。图2-9右侧给出了ORFD数据集中的RGB图像示例。

图2-11 Cityscapes数据集(左)和ORFD数据集(右)的图像示例

  • **高速公路数据集:**该数据集是Kim等制作了用于高速公路场景中目标分割的RGB图像数据集。该数据集含有1200张具有像素级别标签的RGB图像。这1200张图像由20段含有60帧图像的视频片段组成。作者提供了含有道路类别在内的10类目标的标签。图2-10左侧给出了该数据集中的图像示例。
  • **Puddle-1000数据集:**该数据集Han等针对道路上的水坑分割问题,通过ZED相机采集数据并制作的数据集。作者从城市和乡村场景采集图像,并且手动标注了985张图像中的水坑的标签。这985张图像中有357张图像来自城市场景,628张图像来自乡村场景。图2-10右侧给出了该数据集中的图像示例。

图2-12 高速公路数据集(左)和Puddle-1000数据集(右)的图像示例

  • **多光谱道路数据集:**该数据集是Lu等开源的数据集。数据集中的数据采分别集自城市和乡村场景,并且标注了语义级的道路标签,用于多模态道路分割任务。该数据集由3799组含有像素级别标签的RGB图像和近红外图像的数据组成。近红外图像在600nm到960nm之间25个不同的波段下采集。图2-11左侧给出了该数据集中的RGB图像与近红外图像示例。
  • **MFNet数据集:**该数据集是Ha等制作的用于通过融合RGB图像和热图像对交通场景的目标进行分割的数据集。该数据集是首个用于交通场景分割的RGB图像和热图像的数据集。数据集中含有820对采集自日间场景的图像数据和749对采集自夜晚场景的图像数据。作者人工标注了汽车、色锥、车辆禁行栏、护栏、行人、自行车、马路边沿、减速带等8类目标。作者根据2:1:1的比例将所有的数据划分为训练集、验证集和测试集。图2-11右侧给出了该数据集中的RGB图像与热图像示例。由于MFNet数据集具有一定的代表性,因此众多的RGB图像与热图像融合的算法都使用了MFNet数据集。

图2-13 多光谱道路数据集(左2)和MFNet数据集(右2)的图像示例

注意:本小节介绍的数据集均为开源的数据集,读者可以通过开源的作者提供的网址下载并使用这些数据集。为了方便读者,本书的GitHub资源库中也提供了部分数据集的下载方式。

思维导图生成中,请稍候...

问题 1: 为什么数据集在深度学习中如此重要?
回答: 数据集是训练深度学习模型的基础,模型通过从数据中学习模式和特征来做出预测或执行任务。数据集的规模和质量直接影响模型的性能和泛化能力。

问题 2: 数据集通常由哪些部分组成?
回答: 数据集通常由训练数据、验证数据和测试数据组成。训练数据用于训练模型,验证数据用于评估和调整模型,测试数据用于最终评估模型的性能。

问题 3: 验证数据和测试数据有什么区别?
回答: 验证数据用于训练过程中评估模型性能并调整超参数,而测试数据用于在训练完成后独立评估模型的最终性能。

问题 4: NPO数据集的主要特点是什么?
回答: NPO数据集包含5000组图像,涵盖不同天气和路面状况,主要用于自动驾驶场景中的负障碍物和正障碍物分割。数据集中包含RGB图像、视差图像和深度图像,并进行了像素级标注。

问题 5: DRNO数据集与NPO数据集有何关系?
回答: DRNO数据集与NPO数据集使用相同的原始数据,但DRNO数据集专注于可行驶区域与负障碍物分割任务,标注了车辆能够正常行驶的区域以及影响行驶的坑洞和裂缝。

问题 6: KITTI数据集在自动驾驶研究中的作用是什么?
回答: KITTI数据集是自动驾驶和计算机视觉研究的重要基准,包含图像、激光雷达、标定和位姿数据,广泛应用于目标检测、图像分割、三维重建等领域。

问题 7: Cityscapes数据集的特点是什么?
回答: Cityscapes数据集包含5000张精细像素级标签的RGB图像和视差图像,采集自欧洲50个城市的不同季节,但未包含恶劣天气数据。

问题 8: MFNet数据集的独特之处是什么?
回答: MFNet数据集是首个用于交通场景分割的RGB图像和热图像数据集,包含日间和夜晚场景的图像数据,标注了8类目标,具有代表性。

问题 9: 如何获取这些开源数据集?
回答: 这些数据集可以通过开源作者提供的网址下载,本书的GitHub资源库中也提供了部分数据集的下载方式。

问题 10: 如果数据集没有提供验证数据,该如何处理?
回答: 如果数据集没有提供验证数据,可以跳过验证环节,或者从训练数据中再次分割出一部分数据作为验证数据。