1、制作VOC2007格式的数据集
1)将图片数据重命名,命名为数字,
1-383,501-699,800-1076
2)进行标注
利用标注软件labelImg进行标注,Win10上无需安装,直接运行。
自动将标注文件保存到一个文件下,文件名与图片名字默认是一一对应的,标注完成后进行检查,我标注完成的xml文件,Width和Height值都为0,需要统一修改。
修改代码:xml_modify.py,,
注意:上面地址需要改变 path = "E:\\pengpeng\\VOC2007\\Annotations\\"
3)将数据放置成3个文件夹。
VOC2007文件夹下包含3个文件夹:JPEGImages;Annotations;ImageSets;
JPEGImages下放置图片数据;
Annotations下放置xml标注数据;
ImageSets下是Main文件夹,Main文件夹下有4个txt文件;这4个txt文件需要代码自动生成;运行txtcheng.py,自动生成。
注意:xmlfilepath = 'E:\\pengpeng\\VOC2007\\Annotations'
txtsavepath = 'E:\\pengpeng\\\\VOC2007\\ImageSets\\Main'
这两个需要修改成自己的地址。
4)就此,数据集就制作好了
2、训练模型:
运行train.py 在pycharm中设置参数:--dataset_root E:\pengpeng
注意:在运行前,将之前运行的缓存文件都清空。
然后等待运行结果,运行结果自动保存在weights文件夹下。
3、模型精度:
运行eval.py文件:得到算法的总的精度
AP for feng = 0.0610
Mean AP = 0.7749
在pycharm中设置参数 --trained_model ,默认是default='weights/ssd300_xxxx.pth'
4、运行test.py,得到每张图中框的具体细节,写入到一个eval/test1.txt文档中。
5、展示图片检测的效果
进入到demo文件夹下,
修改net.load_weights('../weights/ssd300_fengyxf_64800.pth')
将其修改为最新的训练模型
并且将要测试的新图片放到demo文件夹下的testfile文件下,
运行yxfyxftest.py:得到测试集每张图片探测的具体细节,图片显现,第一张原图显示,第二张是检测的带框图片显示,同时将探测的结果图保存在当前的ouput文件夹中。
并且打印:检测到有缝的图片信息;
例如:
Image name: 164.jpg
PREDICTIONS: Feng number: 1; label: feng score: tensor(0.7311)
如果出现只打印,不显示图片的情况:设置左上角的File下拉菜单的Setting按钮的,将show plots in tool windows的前面的框去掉即可。
增加:2019.8.14
1\如果在有汉字的文件夹下标记图片文件,在修改xml文件时,需要将path的路径值改为英文,不能有中文,否则在修改后的xml文件直接报错。
2、在整理好数据集后,
记得修改3个文件
ssd.py中的分类的数目。
data文件夹下的voc0712.py的标签名字和config.py的分类的数目.
以及train.py保存的模型的名称
才能开始训练train.py