资源模板:
【实例详情】
0、安装python的相关包(如果不够,后面根据提示自己添加):
pip install cython pip install opencv-python pip install matplotlib pip install easydict pip install Pillow pip install scipy
1、从github上下载源码:https://github.com/endernewton/tf-faster-rcnn
2、从google云盘中下载测试模型
voc_0712_80k-110k.tgz
(github上和代码中的链接已失效,必须从云盘上下载):https://drive.google.com/drive/folders/0B1_fAEgxdnvJeGg0LWJZZ1N2aDA3、将代码上传到服务器中,解压,然后进入
tf-faster-rcnn-master/lib
目录,执行如下命令:
make clean make cd ..
4、安装Python COCO API,在
tf-faster-rcnn-master
目录下,执行如下命令:
cd data git clone https://github.com/pdollar/coco.git cd coco/PythonAPI make cd ../../..
5、修改文件
tf-faster-rcnn-master/tools/demo.py
,添加 一行代码plt.switch_backend(‘agg‘)
:
import _init_paths from model.config import cfg from model.test import im_detect from model.nms_wrapper import nms from utils.timer import Timer import tensorflow as tf import matplotlib.pyplot as plt import numpy as np import os, cv2 import argparse from nets.vgg16 import vgg16 from nets.resnet_v1 import resnetv1 plt.switch_backend(‘agg‘) # 这里是需要添加的代码 CLASSES = (‘__background__‘, ‘aeroplane‘, ‘bicycle‘, ‘bird‘, ‘boat‘, ‘bottle‘, ‘bus‘, ‘car‘, ‘cat‘, ‘chair‘, ‘cow‘, ‘diningtable‘, ‘dog‘, ‘horse‘,
6、【CPU模式下运行】需要修改
tf-faster-rcnn-master/lib/model/nms_wrapper.py
,修改如下:
from __future__ import absolute_import from __future__ import division from __future__ import print_function from model.config import cfg # from nms.gpu_nms import gpu_nms # 注释掉这一行 from nms.cpu_nms import cpu_nms def nms(dets, thresh, force_cpu=False): """Dispatch to either CPU or GPU NMS implementations.""" if dets.shape[0] == 0: return [] # if cfg.USE_GPU_NMS and not force_cpu: # 注释掉这一行 # return gpu_nms(dets, thresh, device_id=0) # 注释掉这一行 # else: # 注释掉这一行 return cpu_nms(dets, thresh) # 该行顶格
7、【CPU模式下运行】需要修改
tf-faster-rcnn-master/lib/model/config.py
,修改一行代码:
# Use GPU implementation of non-maximum suppression __C.USE_GPU_NMS = False # 将原本的 True 修改为 False
8、【CPU模式下运行】需要修改
tf-faster-rcnn-master/lib/setup.py
,注释如下语句:
··· # CUDA = locate_cuda() # 注释掉这一行 ··· # self.src_extensions.append(‘.cu‘) # 注释掉这一行 ··· ) # 这里有个逗号需要删除 # 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‘]] # 注释掉这一行 # ) # 注释掉这一行
9、解压并放置之前下载的模型,在
tf-faster-rcnn-master
目录下,执行如下命令:
mkdir -p output/res101/voc_2007_trainval+voc_2012_trainval/default
然后将模型 voc_0712_80k-110k.tgz
进行解压,把解压后的四个文件放到刚刚创建好的目录中,完成后的结构如下:
[root@node68 default]# pwd /opt/tensorflow/tf-faster-rcnn-master/output/res101/voc_2007_trainval+voc_2012_trainval/default [root@node68 default]# ls res101_faster_rcnn_iter_110000.ckpt.data-00000-of-00001 res101_faster_rcnn_iter_110000.ckpt.meta res101_faster_rcnn_iter_110000.ckpt.index res101_faster_rcnn_iter_110000.pkl [root@node68 default]#
10、修改
tf-faster-rcnn-master/tools/demo.py
文件,添加一行代码,这样可以生成结果文件图片:
··· plt.axis(‘off‘) plt.tight_layout() plt.draw() plt.savefig("/opt/{}.png".format(class_name)) # 添加一行代码,具体的可以自己定义文件名称 def demo(sess, net, image_name): """Detect object classes in an image using pre-computed object proposals.""" ···
11、运行demo程序,在
tf-faster-rcnn-master
目录下,执行如下命令:
./tools/demo.py
【实例截图】