问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

使用yolov5训练自动驾驶目标检测数据集BDD100K

创作时间:
作者:
@小白创作中心

使用yolov5训练自动驾驶目标检测数据集BDD100K

引用
CSDN
1.
https://blog.csdn.net/qq_37555071/article/details/118934037

BDD100K是伯克利发布的开放式驾驶视频数据集,包含10万个视频和10个任务,旨在评估自动驾驶图像识别算法的进展。本文将详细介绍如何使用YOLOv5训练BDD100K数据集,包括数据预处理、环境配置、模型结构修改、迁移学习、训练过程和性能评估等多个方面。

一、什么是BDD100K

BDD100K是伯克利发布的开放式驾驶视频数据集,其中包含10万个视频和10个任务(因为把交通灯的颜色也区分了出来,实际上是13类分类任务),目的是方便评估自动驾驶图像识别算法的的进展。该数据集具有地理,环境和天气多样性,从而能让模型能够识别多种场景,具备更多的泛化能力。

由于硬件限制,我只里训练其中的图片数据,数据集按Train、Valid、Test三个部分,比例可以按照7:2:1分配,共近10张图片。

二、数据预处理

Bdd100k的标签是由Scalabel生成的JSON格式,虽然伯克利提供Bdd100k数据集的标签查看及标签格式转化工具。由于没有直接从bdd100k转换成YOLO的工具,因此我们首先得使用将bdd100k的标签转换为coco格式,然后再将coco格式转换为yolo格式。

YOLO家族独特的标签数据集格式为:每个图片文件.jpg,都有同一命名的标签文件.txt。标签文件中每个对象独占一行,格式为

<object-class> <x> <y> <width> <height>。

其中:

  • <object-class> 表示对象的类别序号:从0 到 (classes-1)。
  • <x> <y> <width> <height> 参照图片宽度和高度的相对比例(浮点数值),从0.0到1.0。注意: 是矩形的中心,而不是左上角位置。

如下图所示:

(1)bdd 转化为coco格式

我的目的是识别包括不同颜色交通灯在内的所有交通对象,因此我们需要对原版的bdd2coco.py进行一些修改,以获取交通灯颜色并产生新的类别。这是修改完的核心代码:

for label in i['labels']:
    annotation = dict()  
    category=label['category']  
    if (category == "traffic light"):  
        color = label['attributes']['trafficLightColor']  
        category = "tl_" + color  
    if category in id_dict.keys():  
        empty_image = False  
        annotation["iscrow  
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号