这里不再介绍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')

这里需要替换成我们自己的,例如,我做这个深度学习是为了识别和提取大坝要素,因此,我替换成了下面这样

detectron2 训练fasterrcnn 模型_深度学习

其中,background是需要我们保留的。

5.这样,就可以直接使用train.py训练自己的模型了。

识别部分:

我们已经使用自己的数据集训练得到了模型,接下来就是用模型识别自己的图片。

主要更改内容有以下:

1.在...\Faster-RCNN\data\demo目录下,将demo文件夹下的图片换成自己要识别的图片。

2.在demo.py代码的开头,同样使用了classes指定了识别的类别,默认和pascal_voc.py中是一样的,这里同样需要更改成自己的类别,例如我更改成了:

detectron2 训练fasterrcnn 模型_深度学习


3.这样,就可以使用demo.py直接识别demo文件夹中包含的图片了。

demo.py中有个类别的数量也要更改,比如原来默认的是21,这里需要改成我们自己定义的类别数量+1,加1是背景。 然后demo.py不显示图片的原因是你在命令行里执行的,将demo.py放到pycharm里或者其他编译器里就好了

如果还有问题,建议看我前一篇博客,确保框架正确安装的基础上,先把demo跑通。