from lxml import etree
import cv2
# https://blog.csdn.net/qq_44886601/article/details/135400117
# 读取 xml 文件信息,并返回字典形式
def parse_xml_to_dict(xml):
if len(xml) == 0: # 遍历到底层,直接返回 tag对应的信息
return {xml.tag: xml.text}
result = {}
for child in xml:
child_result = parse_xml_to_dict(child) # 递归遍历标签信息
if child.tag != 'object':
result[child.tag] = child_result[child.tag]
else:
if child.tag not in result: # 因为object可能有多个,所以需要放入列表里
result[child.tag] = []
result[child.tag].append(child_result[child.tag])
return {xml.tag: result}
# xml 标注文件的可视化
def xmlShow(img, xml, save=True):
image = cv2.imread(img)
with open(xml, encoding='gb18030', errors='ignore') as fid: # 防止出现非法字符报错
xml_str = fid.read()
xml = etree.fromstring(xml_str)
data = parse_xml_to_dict(xml)["annotation"] # 读取 xml文件信息
ob = [] # 存放目标信息
for i in data['object']: # 提取检测框
name = str(i['name']) # 检测的目标类别
bbox = i['bndbox']
xmin = int(bbox['xmin'])
ymin = int(bbox['ymin'])
xmax = int(bbox['xmax'])
ymax = int(bbox['ymax'])
tmp = [name, xmin, ymin, xmax, ymax] # 单个检测框
ob.append(tmp)
# 绘制检测框
for name, x1, y1, x2, y2 in ob:
cv2.rectangle(image, (x1, y1), (x2, y2), color=(255, 0, 0), thickness=2) # 绘制矩形框
cv2.putText(image, name, (x1, y1 - 10), fontFace=cv2.FONT_HERSHEY_SIMPLEX,
fontScale=0.5, thickness=1, color=(0, 0, 255))
# 保存图像
if save:
cv2.imwrite('result.png', image)
# # 展示图像
# cv2.imshow('test', image)
# cv2.waitKey()
# cv2.destroyAllWindows()
if __name__ == "__main__":
import os
import random
img_path = './data/train/images/' # 传入图片
image = [os.path.join(img_path, i) for i in os.listdir(img_path)]
r = random.randint(0, len(image) - 1) # 生成随机索引
image_path = image[r]
labels_path = image_path.replace('images', 'labels') # 自动获取对应的 xml 标注文件
labels_path = labels_path.replace('.jpg', '.xml')
xmlShow(img=image_path, xml=labels_path, save=True)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
项目包含:智能小车赛道自动驾驶目标检测数据集(VOC标注格式的xml文件,已经做了训练集和测试集划分),数据保存按照文件夹保存,经测试,可直接用作目标检测数据集,无需额外处理。 图像分辨率为300-500的RGB图片,包含赛道上常见的交通指示牌,用于智能小车的自动驾驶 【数据集介绍】智能小车检测的交通指示牌图像数据,8类别:左转、右转、红灯、绿灯、人行道等8类别 【数据总大小】11MB 【数据集详情】data目录下分为两个目录,train为训练数据、test为测试数据,每个目录下各有两个子文件夹。images存放数据图片,labels目录存放标注文件。训练集共901张jpg图片和901个xml解释文件。训练集共225张jpg图片和225个xml解释文件 【json文件】8类别的json字典文件 为了方便查看数据,提供了可视化py文件,随机传入一张图片即可绘制边界框,并且保存在当前目录。脚本无需更改,可以直接运行!
资源推荐
资源详情
资源评论
收起资源包目录
目标检测数据集:智能小车赛道自动驾驶、交通指示牌目标检测数据集(VOC标注格式的xml文件,已经做了训练集和测试集划分) (2000个子文件)
53.jpg 11KB
790.jpg 11KB
0.jpg 11KB
75.jpg 11KB
1.jpg 11KB
77.jpg 11KB
76.jpg 11KB
788.jpg 11KB
792.jpg 11KB
80.jpg 11KB
74.jpg 11KB
371.jpg 11KB
786.jpg 11KB
81.jpg 11KB
765.jpg 11KB
78.jpg 11KB
91.jpg 11KB
1080.jpg 11KB
789.jpg 11KB
346.jpg 11KB
370.jpg 11KB
766.jpg 11KB
94.jpg 11KB
372.jpg 11KB
95.jpg 11KB
898.jpg 11KB
93.jpg 11KB
56.jpg 11KB
896.jpg 11KB
92.jpg 11KB
85.jpg 11KB
83.jpg 11KB
373.jpg 11KB
1077.jpg 11KB
1081.jpg 11KB
71.jpg 11KB
283.jpg 11KB
87.jpg 11KB
82.jpg 11KB
57.jpg 11KB
366.jpg 11KB
787.jpg 11KB
783.jpg 11KB
96.jpg 11KB
718.jpg 11KB
317.jpg 11KB
1037.jpg 11KB
769.jpg 11KB
374.jpg 11KB
72.jpg 11KB
1083.jpg 11KB
378.jpg 11KB
899.jpg 11KB
58.jpg 11KB
332.jpg 11KB
369.jpg 11KB
706.jpg 11KB
794.jpg 11KB
88.jpg 11KB
333.jpg 11KB
364.jpg 11KB
90.jpg 11KB
367.jpg 11KB
54.jpg 11KB
939.jpg 11KB
376.jpg 11KB
59.jpg 11KB
707.jpg 11KB
73.jpg 11KB
377.jpg 11KB
934.jpg 11KB
380.jpg 11KB
940.jpg 11KB
334.jpg 11KB
751.jpg 11KB
1076.jpg 11KB
330.jpg 11KB
705.jpg 11KB
1040.jpg 11KB
796.jpg 11KB
1075.jpg 11KB
1039.jpg 11KB
767.jpg 11KB
331.jpg 11KB
1070.jpg 11KB
897.jpg 11KB
798.jpg 11KB
89.jpg 11KB
768.jpg 11KB
900.jpg 11KB
1041.jpg 11KB
894.jpg 11KB
52.jpg 10KB
974.jpg 10KB
60.jpg 10KB
963.jpg 10KB
1074.jpg 10KB
847.jpg 10KB
65.jpg 10KB
927.jpg 10KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
听风吹等浪起
- 粉丝: 1w+
- 资源: 1289
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功