作者微信 bishe2022

代码功能演示视频在页面下方,请先观看;如需定制开发,联系页面右侧客服


资源模板:

   【实例详情】


pip install cython
pip install opencv-python
pip install matplotlib
pip install easydict
pip install Pillow
pip install scipy
make clean
make
cd ..
cd data
git clone https://github.com/pdollar/coco.git
cd coco/PythonAPI
make
cd ../../..
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‘,
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)             # 该行顶格
# Use GPU implementation of non-maximum suppression
__C.USE_GPU_NMS = False              # 将原本的 True 修改为 False
 ···
# 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‘]]       # 注释掉这一行
 # )       # 注释掉这一行
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]#
···
    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."""
···
 ./tools/demo.py

   【实例截图】

image.png

Home