RDK X5 yolov5目标检测之训练环境搭建
博主环境:
系统:windows 11
GPU:NVIDIA GeForce RTX 3090
IDE:PyCharm Community Edition 2022.2.3
yolov5的训练环境搭参考这个:
https://developer.d-robotics.cc/forumDetail/185446371330059463
onnx转pt方法参考这个:
https://developer.d-robotics.cc/forumDetail/107952931390742029
下面是博主整理,针对yolov5-v2.0版本的尝试。
yolov5-v2.0环境搭建
直接下载修改版本
leaf修改版yolov5-v2.0源码:https://github.com/hachi-leaf/horizon_yolov5
虚拟环境搭建命令如下:
conda create -n yolov5.2.0 python==3.8
使用PyCharm打开工程,并切换到虚拟环境,安装数据包
【备注:yolov5_v2.0_leaf工程的requirements.txt文件中将coremltools组件的安装给屏蔽掉了,这个是需要安装的,不然pt转onnx文件时会报错(虽然也能生成onnx文件)】
pip install -r requirements.txt
博主torch版本是特别指定的,并且是离线安装的,这个包有2G多,在线安装下载太慢了。
pip install torchvision==0.16.2 -f https://download.pytorch.org/whl/torch_stable.html
pip install torch-2.1.2+cu121-cp38-cp38-win_amd64.whl
yolov5-v2.0模型标注
使用标注工具:精灵标注助手
标注工具使用方法参考:https://developer.d-robotics.cc/forumDetail/185446371330059463
全部标注完成,保存并检查后,点击左下角“导出”,选择pascal-voc格式,选择一个路径输出标注数据,确定导出

导出数据如下:

xml转换txt
生成txt文件
修改xml_to_yolo.py文件路径,然后执行即可~
if __name__ == "__main__":
classes = ['box'] # 类别
xml_file = r"E:\\yolos\\4.YOLOv5\\yolov5 2.0\\datasets\\outputs" # xml文件
txt_file = r"E:\\yolos\\4.YOLOv5\\yolov5 2.0\\datasets\\coco\\labels\\train" # txt文件保存位置
convert_annotation(xml_file, txt_file, classes)
目录结构如下:

txt负值修复
修改Labels_corrct.py的path路径,然后执行即可。
验证数据集抽取
修改train_to_val.py文件的路径,然后执行即可
if __name__ == '__main__':
images_train = r"E:\\yolos\\4.YOLOv5\\yolov5 2.0\\datasets\\coco\\images\\train" + "\\" # 源图片文件夹路径
images_val = r'E:\\yolos\\4.YOLOv5\\yolov5 2.0\\datasets\\coco\\images\\val' # 图片移动到新的文件夹路径
moveimg(images_train, images_val)
file_list = os.listdir(images_val)
labels_train = r"E:\\yolos\\4.YOLOv5\\yolov5 2.0\\datasets\\coco\\labels\\train" # 源图片标签路径
labels_val = r"E:\\yolos\\4.YOLOv5\\yolov5 2.0\\datasets\\coco\\labels\\val" # 标签
# 移动到新的文件路径
movelabel(file_list, labels_train, labels_val)
yolov5-v2.0模型训练
权重文件下载
链接: https://pan.baidu.com/s/11fPGD86wXEeEtPiDMEkrcQ?pwd=4m3m
提取码: 4m3m
下载完成后,放在yolov5_v2.0_leaf\weights文件夹中(没有就创建一个)

四个尺寸的权重(s,m,l,x),文件大小依次增大,识别精度依次增大,运算速度依次变得缓慢
训练文件配置
首先来到yolov5_v2.0_leaf目录下的data文件夹,打开voc.yaml,train和val后面的参数分别改成训练集文件夹下的images/train和images/val文件夹绝对路径,nc改为你的目标数量,names改成目标类别,要和打标时的类别一一对应,然后记得保存
train: ../datasets/coco/images/train
val: ../datasets/coco/images/val
# number of classes
nc: 1
# class names
names: ['box']
然后来到yolov5_v2.0_leaf目录下的models文件夹,可以看见有以下文件,分别对应各个尺寸的模型权重
打开yolov5s.yaml文件,只需要把第一行这个nc改成你训练的类别数量就好了,其他的不要动,保存

配置训练参数,在train.py文件中,配置完之后,直接执行train.py文件即可

注意~~

执行train.py期间,就是漫长的训练等待了。。。。
pt模型预测验证
修改detect.py文件的配置如下:

然后就会在工程目录下生成一个output的文件夹,预测结果如下:
