from lxml import etree
import cv2
# 读取 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*600的RGB图片,数据行人口罩检测,可以用来检测人群人脸以及是否佩戴口罩 【数据集介绍】口罩图像数据,2类别:face、mask 【数据总大小】225MB 【数据集详情】data目录下分为两个目录,train为训练数据、test为测试数据,每个目录下各有两个子文件夹。images存放数据图片,labels目录存放标注文件。训练集共2166张图片和2166个xml解释文件。训练集共541张图片和541个xml解释文件 【json文件】2类别的json字典文件 为了方便查看数据,提供了可视化py文件,随机传入一张图片即可绘制边界框,并且保存在当前目录。脚本无需更改,可以直接运行!
资源推荐
资源详情
资源评论
收起资源包目录
目标检测数据集:是否佩戴口罩目标检测数据集(VOC标注格式的xml文件,已经做了训练集和测试集划分) (2000个子文件)
show.py 2KB
test_00004467.xml 3KB
test_00004405.xml 2KB
test_00002330.xml 2KB
test_00000661.xml 2KB
test_00002989.xml 2KB
test_00002006.xml 2KB
test_00000751.xml 2KB
test_00000791.xml 2KB
test_00003047.xml 2KB
test_00001643.xml 2KB
test_00004096.xml 2KB
test_00003066.xml 2KB
test_00003791.xml 2KB
test_00002051.xml 1KB
test_00003616.xml 1KB
test_00001320.xml 1KB
test_00003519.xml 1KB
test_00004465.xml 1KB
test_00000792.xml 1KB
test_00000843.xml 1KB
test_00001642.xml 1KB
test_00004525.xml 1KB
test_00004100.xml 1KB
test_00002756.xml 1KB
test_00000391.xml 1KB
test_00000600.xml 1KB
test_00004495.xml 1KB
test_00003413.xml 1KB
test_00002269.xml 1KB
test_00004651.xml 1KB
test_00001710.xml 1KB
test_00002191.xml 1KB
test_00004471.xml 1KB
test_00004500.xml 1KB
test_00001590.xml 1KB
test_00002345.xml 1KB
test_00003196.xml 1KB
test_00001848.xml 1KB
test_00004926.xml 1KB
test_00002577.xml 1KB
test_00002776.xml 1KB
test_00000609.xml 1KB
test_00003000.xml 1KB
test_00004381.xml 1KB
test_00000518.xml 1KB
test_00001884.xml 1KB
test_00000839.xml 1KB
test_00000425.xml 1KB
test_00000625.xml 1KB
test_00003685.xml 1KB
test_00003573.xml 1KB
test_00001648.xml 1KB
test_00000838.xml 1KB
test_00003733.xml 1KB
test_00002649.xml 1KB
test_00000026.xml 1KB
test_00002336.xml 1KB
test_00000848.xml 1KB
test_00000642.xml 1KB
test_00000778.xml 1KB
test_00004459.xml 1KB
test_00000811.xml 1KB
test_00002267.xml 1KB
test_00003237.xml 1KB
test_00003765.xml 1KB
test_00003936.xml 1KB
test_00001780.xml 1KB
test_00000003.xml 1KB
test_00003061.xml 1KB
test_00004801.xml 1KB
test_00000756.xml 1KB
test_00001081.xml 1KB
test_00000868.xml 1KB
test_00000490.xml 1KB
test_00000866.xml 1KB
test_00002132.xml 1KB
test_00000641.xml 1KB
test_00000935.xml 1KB
test_00000266.xml 1KB
test_00002368.xml 1KB
test_00003613.xml 1024B
test_00001157.xml 1023B
test_00004161.xml 1023B
test_00001952.xml 1023B
test_00001555.xml 1023B
test_00001584.xml 1023B
test_00002843.xml 1023B
test_00000134.xml 1023B
test_00001211.xml 1023B
test_00001166.xml 1022B
test_00001957.xml 1022B
test_00000594.xml 1022B
test_00000282.xml 1021B
test_00000006.xml 1021B
test_00001593.xml 1021B
test_00002840.xml 1020B
test_00003355.xml 1020B
test_00004658.xml 1020B
test_00004134.xml 1020B
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
听风吹等浪起
- 粉丝: 1w+
- 资源: 1426
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功