一、准备代码和预训练权重:
本次训练代码参考:https://github.com/bubbliiiing/yolov4-pytorch
二、准备数据集:
1、标注工具
本次使用的标注工具为lablelimg,安装方式见:https://blog.csdn.net/ssunshining/article/details/109453311
2、准备图片数据:
统一数据为RGB格式图片,大小无所谓能看清目标即可
jpg图片存放在Photo文件夹下(下图中的所有文件都放在mydataset文件夹下):
三、准备标签数据
1、使用labelimg的VOC数据标注格式,标注的.xml文件存放在Annotations文件夹下,标注注完成之后,将标注过的图片移动到JPEGImages文件夹下。
2、运行generate_my_train_TXT.py文件生成可以对应文件名与xml的txt文件
(注意:如果是自己的文件,需要修改路径)
3.运行xparse_myAnnotations.py文件生成训练数据的标签
前边是图片的绝对路径,后边的数字每5个一组(目标的位置+类别),将生成的txt文件复制到mydataset文件夹下面。
(注意需要修改:
)
4.建立类别标签的txt文件,如果类别较少可以手动写入到mydataset文件夹下的obj_class.txt文件中,类别较多可以自己写个python文件写入。
5.运行kmeans_for_anchors.py生成先验框,会自动写入到yolo_anchors.txt文件中
先验框如下,一共9组:
三、训练过程
运行train.py文件,等待运行完成
(注意:需要修改annotation_path为训练标签的路径,classes_path为类别标签的路径,model_path为预训练权重的路径)
每次保存的参数会保存在logs文件夹下
四、测试训练效果
由于本次的训练是过拟合版本直接,直接运行predict.py文件,输入需要检测的图片的路径就可以成功进行检测。
(注意:需要在yolo.py文件中更改以下参数
其中model_path为保存的权重的路径,anchors_path为先验框的txt的路径,classes_path为类别标签的路径,model_image_size和训练有关,和train.py中的input_shape保持一致 ,confidence为置信度大小
)
训练效果展示:
参考资料:
https://www.bilibili.com/video/BV1Q54y1D7vj?t=96&p=12
https://blog.csdn.net/weixin_44791964/article/details/106214657