深度学习的工具箱,包括以下内容:
- showLabel.py https://github.com/qianyouqr/DL_utils/blob/main/showLabel.py 显示voc格式的标注框
数据集来自于标注的voc格式的数据集,数据集的目录形式:
使用voc2yolo.py
文件将voc格式的数据集转成yolo格式的数据集。使用方式:
第一步
# step1:
# # 先将voc数据集 转成 yolo格式的数据集['seed','bivalve','broken','diseased','membrance','peel', 'spongy']
# VOC2Yolo(
# class_num={'seed':0,'bivalve':1,'broken':2,'diseased':3,'membrance':4,'peel':5, 'spongy':6}, # 标签种类
# voc_img_path='C:/datasets/orange_v1/VOC2007_all/VOC2007/JPEGImages', # 数据集图片文件夹存储路径
# voc_xml_path='C:/datasets/orange_v1/VOC2007_all/VOC2007/Annotations', # 标签xml文件夹存储路径
# yolo_txt_save_path='C:/datasets/orange_v1/VOC2007_all/VOC2007/YoloLabels' # 将要生成的标注文件 txt文件夹存储路径
# )
把voc_img_path 改成自己voc数据集中保存所有图片的目录
把voc_xml_path 改成自己voc数据集中保存所有标注结果的目录
把yolo_txt_save_path 改成自己定义的 保存转换后的标注文件 的目录
这样执行完第一步后得到了 yolo 格式标注的所有标注文件
第二步,将转换后的yolo格式数据集进行划分。
使用第二步就把第一步的代码注释掉
# step2:
# 所分割的数据集所有的 图片文件目录
img_path = 'C:/datasets/orange_v1/VOC2007/JPEGImages' # 你的图片存放的路径(路径一定是相对于你当前的这个脚本文件而言的)
# 所分割的数据集所有的 标签文件目录
label_path = 'C:/datasets/orange_v1/VOC2007/YoloLabels' # 你的txt文件存放的路径 这个目录是step1中设置的yolo_txt_save_path(路径一定是相对于你当前的这个脚本文件而言的)
split_list = [0.8, 0.15, 0.15] # 数据集划分比例[train:val:test]
# 在方法里面设置 要保存到的目录
split_img(img_path, label_path, split_list)
把img_path 改成自己voc数据集中保存所有图片的目录
把label_path 改成自己定义的 保存转换后的标注文件 的目录,就是yolo标注文件目录
在split_img函数内Data变量设置为yolo数据集的目录,这一步你可以将Data变成传入的参数。
这样执行完第一步后得到了 yolo格式标注的所有标注文件
第三步,修改yolov7代码中的yaml文件
之后调整参数进行训练即可。
真实值标签数据格式:
【类名 left, top, right, bottom】
推理后形成的txt文件格式:
【类名编号 置信度 left, top, right, bottom】
base_path
保存mAP结果的目录:
base_path = 'D:/code/orin_nano/map_result/yolov7'
test_gt_impoved = 'C:/datasets/orange_v3/yolo/labels/test_impoved'
label_path = 'D:/code/orin_nano/best_YoloV7_FP32_result_txt_official'
image_path = 'C:/datasets/orange_v3/yolo/images/test'
用来获取图像的尺度信息。
5. 修改检测类型信息
在cls_name
函数中修改类名字典,类名编号和类名字符串对应关系要和训练时设置的一样。
修改完这些路径信息,执行compute_mAP.py
即可。