Faster R-CNN使用RPN生成候选框后,剩下的网络结构和Fast R-CNN中的结构一模一样。在训练过程中,需要训练
两个网络,一个是RPN网络一个是在得到框之后使用的分类网络。通常的做法是交替训练,即在一个batch内,先训练RPN
网络一次,再训练分类网络一次。
二、实战篇
TensorFlow Object Detection API
2017年6月,Google公司开放了TensorFlow Object Detection API。这个项目使用"tensorFlow实现了大多数深度
学习目标检测框架,其中就包括Faster R-CNN。首先介绍如何安装TensorFlow Object Detection API。再介绍如何使用
已经训练好的模型进行物体检测,最后介绍如何训练自己的模型。
(1)安装TensorFlow Object Detection API
在GitHub上,TensorFlow Object Detection API是存放在tensorflow/models项目。
(地址:https://github.com/tensorflow/models)下的。可以通过git来下载tensorflow/models:
git clone https://github.com/tensorflow/models.git
下载tensorflow/models代码后,应该得到一个models文件夹。models交件夹中还有一个research文件夹。
下面的安装命令都是以research文件夹为根目录执行的,所说的目录也都是以research文件夹为相对目录。
TensorFlow Object Detection API必须使用2.6.0以上的protoc进行编译,否则会报错。可以使用命令
protoc --version查看protoc的版本。如果发现版本低于2.6.0或运行命令错误,就需要安装或升级protoc.
使用protoc对proto文件进行编译。具体来说,应当在research文件下,运行下面的命令:
protoc object_detection/protos/*.proto --python_out=.
运行完成后,可以检查object_ detection/protos/文件夹,如果每个proto文件都生成了对应的以py为后缀的python源
代码,就说明编译成功了。
TensorFlow Object Detection API是以Slim为基础实现的,需要将Slim 的目录加入PYTHONPATH后才能正确运行。具体
来说,还是在research文件夹下,执行下面的命令: