这里不再介绍VOC2007数据集,假设你已经制作好了自己的数据集。(我的数据集在其他博客中讲解)
注意:这篇博客是基于上述两篇博客tensorflow和faster rcnn版本的,如果不是用的上面的版本,那很可能这篇博客的方法是行不通的。
训练模型部分:
需要更改的主要有以下地方:
1.在...\Faster-RCNN\data目录下,检查是否有个叫cache的文件夹,每次在训练模型前,建议清空这个文件夹里面的东西。
2.在...\Faster-RCNN\data目录下,将VOCDevkit2007替换成自己的数据集。(如果有需要,以后我在写如何制作自己的VOC数据集)
3.在...\Faster-RCNN\lib\config目录下,有个config.py文件,可以设置一些参数,比如learning_rate、max_iters、batch_size、step_size等等,这个可以根据自己需求改。比如,显卡性能一般的话,可以适当降低batch_size,觉得默认设置的max_iters迭代次数不够的话,可以改成七万等。
4.在...\Faster-RCNN\lib\datasets目录下,有pascal_voc.py文件,这个是必须要更改的,代码中 self._classes要来指定识别的类别,如下所示
self._classes = ('__background__', # always index 0
'aeroplane', 'bicycle', 'bird', 'boat',
'bottle', 'bus', 'car', 'cat', 'chair',
'cow', 'diningtable', 'dog', 'horse',
'motorbike', 'person', 'pottedplant',
'sheep', 'sofa', 'train', 'tvmonitor')
这里需要替换成我们自己的,例如,我做这个深度学习是为了识别和提取大坝要素,因此,我替换成了下面这样
其中,background是需要我们保留的。
5.这样,就可以直接使用train.py训练自己的模型了。
识别部分:
我们已经使用自己的数据集训练得到了模型,接下来就是用模型识别自己的图片。
主要更改内容有以下:
1.在...\Faster-RCNN\data\demo目录下,将demo文件夹下的图片换成自己要识别的图片。
2.在demo.py代码的开头,同样使用了classes指定了识别的类别,默认和pascal_voc.py中是一样的,这里同样需要更改成自己的类别,例如我更改成了:
3.这样,就可以使用demo.py直接识别demo文件夹中包含的图片了。
demo.py中有个类别的数量也要更改,比如原来默认的是21,这里需要改成我们自己定义的类别数量+1,加1是背景。 然后demo.py不显示图片的原因是你在命令行里执行的,将demo.py放到pycharm里或者其他编译器里就好了
如果还有问题,建议看我前一篇博客,确保框架正确安装的基础上,先把demo跑通。
参考博客:
https://blog.csdn.net/leeyisong/article/details/92782825
https://blog.csdn.net/mr_kktian/article/details/78158785
https://blog.csdn.net/weixin_40725491/article/details/80752048
后两个链接有在解释Faster R-CNN:tf-faster-rcnn代码结构