记录一下第一次尝试运行Faster R-CNN!
运行环境:win10+pycharm+tensorflow1.13.1+python 3.7+CPU版本
一、下载源码
源码地址:https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3
- 将源码添加到自己创建的文档里(注意各级文档都用英文命名!!!这里我卡了很久,一直报错AttributeError: ‘NoneType’ object has no attribute ‘astype’,原因是我的第一级文件名用了中文)
看了很多教程都说之前版本的只支持Python3.5,不过源码作者已经更新了代码,现在已经能够支持Python3(3.5、3.6、3.7)的所有版本了。还有就是作者建议最好使用GPU版本,如果能安装上GPU版本的肯定是最好的,如果安装的CPU版本的也没事,也能跑得通。
二、环境相关配置
按照源代码作者的“README”步骤一步步来走就行
- 库安装。用“pip”指令安装库,包括cython、python-opencv,easydict等等,反正就是缺啥装啥。
- 运行setup.py。进入命令提示符,进入源码路径下(cd:…\Faster-RCNN-TensorFlow-Python3-master\data\coco\PythonAPI),分别执行下面两条指令:
python setup.py build_ext --inplace
python setup.py build_ext install
注意:coco是微软的哦,所以必须安装vs,否则会报错:error: Unable to find vcvarsall.bat。(我机子上本来就装了vs2019,所以没报错) - 激活tensorflow环境(activate tensorflow)。切换路径cd:…\Faster-RCNN-TensorFlow-Python3-master\lib\utils,执行指令:
python setup.py build_ext --inplace
三、数据集及模型预训练权重下载
因为是第一次尝试运行Faster R-CNN,所以我用的VOC2007数据集进行预训练。
数据集下载地址:
http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar
模型预训练权重下载地址:
http://download.tensorflow.org/models/vgg_16_2016_08_28.tar.gz
- 预训练数据集下载完成后,同时选中三个压缩包一起解压到同一个文件夹VOCdevkit下面,并重命名为VOCdevkit2007,保存至路径:…\data\VOCDevkit2007
- 下载VGG16模型,解压后保存至路径:…\data\imagenet_weights\vgg16.ckpt
(下载完的模型名为vgg_16.ckpt,一定要改为vgg16.ckpt)
四、训练
训练模型的参数可以在Faster-RCNN-TensorFlow-Python3.5-master\lib\config文件夹下的config.py修改,包括训练的总步数、权重衰减、学习率、batch_size等参数。
完成所有上面步骤之后就可以运行程序开始训练啦!(任选一种运行即可)
- 在命令提示符下切换至源码路径:cd:…\Faster-RCNN-TensorFlow-Python3-master,运行指令:
python train.py
- 直接在pycharm运行train.py
最终训练得到的模型保存在根目录下的\default\voc_2007_trainval\default里。(模型生成后就可以运行demo.py了)