参考链接:
https://blog.csdn.net/sinat_33486980/article/details/81045315
https://github.com/endernewton/tf-faster-rcnn
1、下载anaconda,https://www.anaconda.com/download/#linux
目前最新版本是python 3.7,可以选择最新版下载
2、pycharm下载,http://www.jetbrains.com/pycharm/download/#section=linux
可以选择社区版(免费)
3、安装tensorflow(cpu版)
官方的建议是即时你有gpu,但也可以先装一个cpu版,创建环境的命令为:
conda create -n tensorflow python=3.6(一定要指定python版本,python=3.6)
先下载安装包,下载路径为(这里选择1.9是因为faster-rcnn已经用到1.9的内容了):
下载之后,将whl文件重命名为tensorflow-1.9.0-py3-none-linux_x86_64.whl,否则会出现
tensorflow-1.9.0-cp36-cp36m-linux_x86_64.whl is not a supported wheel on this platform.
一样的报错,具体参考https://github.com/tensorflow/tensorflow/issues/1990,然后进入环境并安装tensorflow,执行下面的命令:
source activate tensorflow #激活tensorflow环境
cd /Downloads #切换到whl文件所在文件夹
pip install --ignore-installed --upgrade tensorflow-1.0.0-py3-none-linux_x86_64.whl #不要用sudo pip,也不要用pip3
4、验证安装:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
sess.run(hello)
5、配置faster-rcnn工程:
(1)、Faster-rcnn下载地址:https://github.com/endernewton/tf-faster-rcnn
git clone https://github.com/endernewton/tf-faster-rcnn.git
(2)、运行和修改配置文件(下面相关命令的安装必须是激活tensorflow环境下安装)
cd tf-faster-rcnn/lib
vim setup.py
make clean
make
此时会报以下错误:
python setup.py build_ext --inplace
Traceback (most recent call last):
File "setup.py", line 55, in <module>
CUDA = locate_cuda()
File "setup.py", line 43, in locate_cuda
raise EnvironmentError('The nvcc binary could not be '
OSError: The nvcc binary could not be located in your $PATH. Either add it to your path, or set $CUDAHOME
Makefile:2: recipe for target 'all' failed
make: *** [all] Error 1
由于使用的是CPU运行,因此需要修改::lib/setup.py
(1)注释:#CUDA = locate_cuda()
(2)注释:
# Extension('nms.gpu_nms',
# ['nms/nms_kernel.cu', 'nms/gpu_nms.pyx'],
# library_dirs=[CUDA['lib64']],
# libraries=['cudart'],
# language='c++',
# runtime_library_dirs=[CUDA['lib64']],
# # this syntax is specific to this build system
# # we're only going to use certain compiler args with nvcc and not with gcc
# # the implementation of this trick is in customize_compiler() below
# extra_compile_args={'gcc': ["-Wno-unused-function"],
# 'nvcc': ['-arch=sm_52',
# '--ptxas-options=-v',
# '-c',
# '--compiler-options',
# "'-fPIC'"]},
# include_dirs = [numpy_include, CUDA['include']]
# )
修改后再次make,无报错即可
(3)、安装Python coco API,因为代码运行需要使用coco API来连接coco 数据集
在终端输入一下命令:
cd data
git clone https://github.com/pdollar/coco.git
cd coco/PythonAPI
make
cd ../../..
(4)、运行Demo
(1)、下载预训练模型(voc_0712_80k-110k.tgz)
百度网盘链接:https://pan.baidu.com/s/1mdr3sLGKTgDPn4fMpR-V-w
下载完后放入data文件夹下,使用命令解压:tar xvf voc_0712_80k-110k.tgz
(2)、在根目录新建output文件夹,然后将前面解压出来的预训练模型的四个文件拷贝到该文件夹下
(3)、修改tools/demo.py
将tfmodel = os.path.join('output', demonet, DATASETS[dataset][0], 'default', NETS[demonet][0])
改为:tfmodel = os.path.join('output', NETS[demonet][0])
然后将demo.py拷贝到根目录,再运行demo.py
这时出现以下错误:
Traceback (most recent call last):
File "/home/modao/PycharmProjects/tf-faster-rcnn/tools/demo.py", line 20, in <module>
from model.test import im_detect
File "/home/modao/PycharmProjects/tf-faster-rcnn/tools/../lib/model/test.py", line 24, in <module>
from model.nms_wrapper import nms
File "/home/modao/PycharmProjects/tf-faster-rcnn/tools/../lib/model/nms_wrapper.py", line 12, in <module>
from nms.gpu_nms import gpu_nms
ModuleNotFoundError: No module named 'nms.gpu_nms'
(4)、修改lib/model/nms_wrapper.py
注释:from nms.gpu_nms import gpu_nms
修改force_cpu为:force_cpu=True
再次运行demo.py
成功后会显示:
Loaded network output/res101_faster_rcnn_iter_110000.ckpt
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/000456.jpg
Detection took 59.350s for 300 object proposals
图片检测结果:
正式训练数据请进一下链接: