没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
yolov5分割_我⽤YOLOV5训练⾃动驾驶数据集!并转换为
TensorRT
点击上⽅“CVer”,选择加"星标"置顶
重磅⼲货,第⼀时间送达
本⽂转载⾃:AI深度学习视线
准备数据集
环境配置
配置⽂件修改
训练
推理
转Tensorrt
1
准备数据集
1.1 BDD数据集
BDD100K是最⼤的开放式驾驶视频数据集之⼀,其中包含10万个视频和10个任务,⽬的是⽅便评估⾃动驾驶图像识别算法的的进展。每
个⾼分辨率视频⼀共40秒。该数据集包括超过1000个⼩时的驾驶数据,总共超过1亿帧。这些视频带有GPU / IMU数据以获取轨迹信息。
该数据集具有地理,环境和天⽓多样性,从⽽能让模型能够识别多种场景,具备更多的泛化能⼒。这些丰富的户外场景和复杂的车辆运动使
感知任务更具挑战性。该数据集上的任务包括图像标记,车道检测,可驾驶区域分割,道路对象检测,语义分割,实例分割,多对象检测跟
踪,多对象分割跟踪,领域⾃适应和模仿学习。我们可以在BDD100K数据⽹站上下载数据。
Bdd100k的标签是由Scalabel⽣成的JSON格式。- labels [ ]: - id: int32 - category: string (classification) - manualShape: boolean (whether the shape of the label is created or modified manually) - manualAttributes: boolean (whether the attribute of the label is created or modified manually) - score: float (the confidence or some other ways of measuring the quality of the label.) - attributes: - occluded: boolean - truncated: boolean - trafficLightColor: "red|green|yellow|none" - areaType: "direct | alternative" (for driving area) - laneDirection: "parallel|vertical" (for lanes) - laneStyle: "solid | dashed" (for lanes) - laneTypes: (for lanes) - box2d: - x1: float - y1: float - x2: float - y2: float
道路对象类别包括以下⼏类:
[ "bike", "bus", "car", "motor", "person", "rider", "traffic light", "traffic sign", "train", "truck"]
1.2 YOLO数据格式
每个图⽚⽂件.jpg,都有同⼀命名的标签⽂件.txt。
标签⽂件中每个对象独占⼀⾏,格式为。
其中:
-表⽰对象的类别序号:从0 到 (classes-1)
-参照图⽚宽度和⾼度的相对⽐例(浮点数值),从0.0到1.0
例如: = / 或 = /
注意:是矩形的中⼼,⽽不是左上⾓位置。
如下图所⽰:
YOLO V5的标签⽂件和图像⽂件应位于同⼀⽬录下。
1.3 BDD数据转YOLO格式
Berkerley 提供了提供了Bdd100k数据集的标签查看及标签格 式转化⼯ 具。由于没有直接从数据集的标签 查看及标 签格式转化⼯具。由于没有直接从 bdd100k转换 成转 换成 YOLO的 ⼯的⼯
具,因此我们 ⾸先得使 ⽤将具,因此我们 ⾸先得使 ⽤将 bdd100k的标签转换为的标签转换为 coco格式,然后再将格式,然后再 将 coco格 式转换为格式转换为 yolo格式。格式。
bdd to 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["iscrowd"] = 0 annotation["image_id"] = image['id'] x1 = label['box2d']['x1'] y1 = label['box2d']['y1'] x2 = label['box2d']['x2'] y2 = label['box2d']['y2'] annotation['bbox'] = [x1, y1, x2-x1, y2-y1] annotation['area'] = float((x2 - x1) * (y2 - y1)) annotation['category_id'] = id_dict[category] annotation['ignore'] = 0 annotation['id'] = label['id'] annotation['segmentation'] = [[x1, y1, x1, y2, x2, y2, x2, y1]] annotations.append(annotation)
在完成bdd100k格式到yolo格式的转换后,会获
得bdd100k_labels_images_det_coco_train.json和bdd100k_labels_images_det_coco_val.json两个⽂件。
Coco to yolo
在完成先前的转换之后,我们需要将训练集和验证集的coco格式标签转换为yolo格式。注意需要分别指定训练集和验证集图⽚位置,对应
的coco标签⽂件位置,及⽣成yolo标签的⽬标位置。
config_train ={ "datasets": "COCO", "img_path": "bdd100k_images/bdd100k/images/100k/train", "label": "labels/bdd100k_labels_images_det_coco_train.json", "img_type": ".jpg", "manipast_path": "./", "output_path": "labels/trains/", "cls_list": "bdd100k.names", } config_valid ={
除此之外,我们还得将所有的类别写⼊bdd100k.names⽂件。
personridercarbustruckbikemotortl_greentl_redtl_yellowtl_nonetraffic signtraintl_green
运⾏Bdd_preprocessing中的完整代码可以完成Bdd100k格式标签到YOLO标签格式的转换。
Bdd2coco以及coco2yolo的详细说明可以参看bdd100k代码库和convert2Yolo代码库。
2
环境配置
2.1 官⽅代码
https://github.com/ultralytics/yolov5/tree/v3.0
剩余10页未读,继续阅读
资源评论
zz_ll9023one
- 粉丝: 900
- 资源: 4648
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功