yolo3_pytorch 训练voc数据集和训练自己的数据集并进行预测(github代码调试)

训练voc数据集的步骤:

  • ①:首先下载voc数据集,将数据集放在从github中下载的项目中VOCdevkit目录中(直接将数据集拉入到项目中,替代目标文件即可)

源码下载:

https://github.com/bubbliiiing/yolo3-pytorch

(22条消息) 睿智的目标检测26——Pytorch搭建yolo3目标检测平台_Bubbliiiing的学习小课堂-CSDN博客_睿智的目标检测26

下载的目录如下,其中Annotations为标签文件,JPEGImages存放的为图片文件,ImageSets目录下存放的为.txt文件,用于训练和验证。

  • ②:将voc_annotation.py中的annotation_mode = 2设置为2,直接在根目录下生成2007_train.txt和22007_val.txt文件用于训练和验证,完成两个文件的生成之后打开train.py文件
  • ③:其中train.py文件中的参数都是为了训练voc数据集进行设置的。
classes_path = 'model_data/voc_classes.txt'#将classes_path设置为'model_data/voc_classes.txt'

设置完成之后,可以直接运行train.py对voc数据集进行训练

 训练自己数据集的步骤:

  1. 首先需要利用labelme完成数据集的制作,其中制作的数据集需要包含两个部分一个是其中Annotations为标签文件,JPEGImages存放的为图片文件.
  2. 然后运行根目录下的voc_annotation.py文件,用于生成训练需要的txt文件,第一部分的txt是JPEGImages中的txt用于,用于划分测试集,验证集和训练集,第二部分是根目录下的2007_train.txt和2007_val.txt,用于模型的训练
  3. 第一次训练,要修改train.py中的一个参数,即classes_path = 'model_data/类别.txt',其中类别.txt中是我们自己制作的区分类别,例如区分猫和狗,里面的内容为dog cat,每个各占一行。第一次训练只需要修改classes_path中的参数
  4. train.py文件与voc_annotation.py文件的classes_path的参数需要保持一致。

 利用训练好的模型进行预测的步骤:

需要修改根目录下的yolo.py和predict.py文件中的参数。

#--------------------------------------------------------------------------#
#   使用自己训练好的模型进行预测一定要修改model_path和classes_path!
#   model_path指向logs文件夹下的权值文件,classes_path指向model_data下的txt
#
#   训练好后logs文件夹下存在多个权值文件,选择验证集损失较低的即可。
#   验证集损失较低不代表mAP较高,仅代表该权值在验证集上泛化性能较好。
#   如果出现shape不匹配,同时要注意训练时的model_path和classes_path参数的修改
#--------------------------------------------------------------------------#
"model_path"        : 'logs/yolo_weights.pth',
"classes_path"      : 'model_data/类别.txt',

input_shape必须是32的倍数,yolo.py中的classes_path与train.py中的需要保持一致

修改之后,运行predict.py文件,进行预测。

猜你喜欢

转载自blog.csdn.net/qq_44808827/article/details/122683032