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

本文详细介绍了如何使用YOLOv5训练BDD100K自动驾驶数据集,包括数据预处理、环境配置、模型结构修改、迁移学习和性能评估,展示了迁移学习在目标检测中的应用和效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、什么是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
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雷恩Layne

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值