没有合适的资源?快使用搜索试试~ 我知道了~
(2)打开get_map.py文件,可以修改map_mode为01234,但是若修改为4需要注意下注释 (2)数据集问题,小于500的自行考虑增加数据集,同时测
资源详情
资源评论
资源推荐
yolo.py 这个文件是与训练完之后进行预测用的,与训练过程无关。于是当下载了代码和
预训练权重之后,由于预训练权重是在 coco 数据集上训练出来的,于是 yolo.py 里面的
所要去预测的类别的 txt 文件只能指向 coco_classes.txt。虽然 voc 数据集(20 个类)里
面的类在 coco 数据集(80 个类)里面都有,但是如果修改为 voc_classes.txt 就会报错。
载入预训练权重可以预测 voc 里面没有但是 coco 里有的类,比如 umbrella。(如果只想
预测 voc 里面的类,请在代码里面修改,加上类别判定条件即可。)
关于使用预训练权重,比如使用 coco 训练出来的 YOLO 权重,coco 有 80 各类,而自己
的数据集不是 80 各类,其实只有最后输出的三个特征图在通道数上有区别,其他任何
地方都没有区别,所以加载的时候可以通过下面的代码加载匹配的权重:
所以,如果采用迁移学习去训练的话,不管是自己的数据集还是 voc2007+2012 数据集,
首先下载代码与预训练权重(注:如果修改了网络结构的话就没办法用预训练权重
了),参照以下步骤:
(前提要求:标签必须是 VOC 格式的,即 XML 文件。图片必须是 jpg 格式的。Coco 数
据集是 json 格式的标签,可以用程序转成 voc 格式。其他格式的图片也能转为 jpg 格式)
1. 首先删除一些东西:
(1)logs 文件夹下所有权重和日志文件
(2)VOCdevkit/VOC2007/ImageSets/Main 文件夹下的四个 txt 文件
(3)2007_train.txt 和 2007_val.txt 文件
(4)map_out 文件夹。因为保存的是上一次测试的结果,必须删掉。
2. 用 labelimg 制作数据集,原图片需要是 jpg 格式,标签必须是 voc 格式(XML 文件,
且格式必须和 VOC2007+2012 的一样)。可以用 python 函数将 png 格式转成 jpg 格式,
函数在 F 盘的 DataSet_VOC/convert_img.py
3. 将制作的数据集中的图片(只能是 jpg 格式)和标签分别放在 VOCdevkit\VOC2007 文
件夹下的 JPEGImages 文件夹和 Anotations 文件夹下。
4. 在 model_data 文件夹下新建一个 txt 文件,里面是数据集里面的类别,要竖着写,
比如 dog、cat、person......。比如命名为 my_classes.txt。
5. 打开 voc_anotations.py 文件:
(1)修改 annotation_mode = 0
(2)修改 classes_path = 'model_data/my_classes.txt'
(3)运行 voc_anotations.py 生成所需 txt 文件
6. 打开 train.py 文件:
(1)修改 classes_path = 'model_data/my_classes.txt',这个 txt 必须和 voc_annotation.py
里面的 txt 一样!。
(2)model_path = 'model_data/yolo_weights.pth'是加载别人预训练的权重,一般不修改
(要先把这个权重文件下载下来放在对应文件夹下面)
(3)input_shape= [416, 416],可以根据自己数据集图片的大小修改,比如 640,608,320
等,但必须是 32 的倍数
(4)冻结阶段与解冻阶段的参数修改,如 epoch、batch_size、lr 等
(5)Freeze_Train 为 True。利用了迁移学习。
(6)num_workers 在 Windows 下可以设置为 4,但训练程序必须在 main 函数内。
(7)运行 train.py 进行训练,同时会在 logs 文件夹下面保存损失函数信息,文件夹里面
放的是损失函数(包括训练、测试与验证),以及模型权重。
7. 打开 predict.py 文件,利用训练好的权重进行预测:
(1)在预测之前,进入 YOLO()这个类里面调整一些参数:
首先是载入自己训练出的权重和指明数据集类别--->
"model_path" : './logs/ep010-loss62.651-val_loss50.685.pth',
"classes_path" : 'model_data/my_classes.txt',
注:此处类别的 txt 必须和训练的 train.py 文件里的一样。
然后可以调整置信度阈值和 nms_iou 阈值--->
剩余6页未读,继续阅读
狼You
- 粉丝: 27
- 资源: 324
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0