1、下载b站 :霹雳吧啦Wz 的代码
github链接:https://github.com/WZMIAOMIAO/deep-learning-for-image-processing
对应视频链接:2-自定义DataSet_哔哩哔哩_bilibili
2、配置环境,安装相应的包。
或者如果有报错可以直接更新重新安装环境所有的包:
pip install --upgrade --force-reinstall -r requirements.txt
如果还是报错可以网上查一下
3、制作好自己的数据集!
如果有coco数据集可以使用脚本一键转VOC数据集
脚本参考:多个xml文件转coco格式、coco转VOC格式(xml)_xml转coco_真的很爱学习的博客-CSDN博客
4、关键!!:将训练数据文件按作者代码来放置
Annotations:所有的xml标注文件
ImageSets:存放Main文件夹
Main:存放两个txt文件,每一行包含一个图像文件的文件名(不带文件后缀)。这里指定的 "val.txt"
文件包含了验证集中所有图像的文件名,它位于 VOC 数据集的根目录下的 VOCdevkit/VOC2012/ImageSets/Main
目录中。
JPEGImages:存放所有图片
修改pascal_voc_classes.json文件里面的类别名称和编号。在这里我只有一类。
以上设置好了之后,完成一大半了。
5、选择训练的网络,我这里使用单个显卡的FPN为例。 设置对应参数。
需要改的参数有:
1)数据的路径
2)如果显卡一般就设置小一点,不然容易out of memerry。
上图设置后自然num_workers就=0了。
然后右键运行即可。
AP表示平均精度,AR表示平均召回率,IoU表示交并比,area表示物体的大小范围,maxDets表示每张图片上最多检测出来的目标数目。
具体来说,该模型的检测结果在IoU从0.5到0.95的范围内平均精度为0.552,在IoU为0.5的情况下精度为0.654,在IoU为0.75的情况下精度为0.629。在物体大小为small、medium、large的情况下,IoU从0.5到0.95的平均精度分别为0、0.026、0.74。在最大检测目标数目为1、10、100的情况下,IoU从0.5到0.95的平均召回率分别为0.214、0.584、0.584,在物体大小为small、medium、large的情况下,IoU从0.5到0.95的平均召回率分别为0、0.108、0.775。这些指标可以用来评价模型的检测性能。
6、训练完成后进行验证:
修改validation.py代码中的这三部分改为自己的就行。
1是类别个数
2是验证的图片位置。位置写不包括VOCdevkit文件。
3为刚刚训练出来的结果,存放在save_weights文件里。
然后右键运行即可。