用的https://github.com/endernewton/tf-faster-rcnn
endernewton版本tensorflow实现的faster-rcnn
原来demo.py:实现的是检测一张图片,然后对该图片的每一类检测结果,单独显示。
修改之后:从txt中读取要检测的图片名称,进行批量检测,并把所有类的检测结果都放到一张图上,然后保存到data/result里。
修改的地方:
原来的可视化是用vis_detections(image_name, im, cls, dets, thresh=CONF_THRESH),它把一张图的多类检测结果,每一类单独显示在一张图像上。现在不用他了,直接在代码中打开图片,然后把检测结果遍历,直接画在一张图上。
不能显示在一张图上的原因是,每次调用vis_detections函数,输入的仅仅是单类的检测结果,然后每次打开一张图。而现在是直接打开一张图,一次在图片中输入所有类的检测结果。
具体在下面代码有注释。
#!/usr/bin/env python
"""
https://blog.csdn.net/gusui7202/article/details/83239142
qhy。
"""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
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
from PIL import Image
import numpy as np
import os, cv2
import argparse
from nets.vgg16 import vgg16
from nets.resnet_v1 import resnetv1
CLASSES = ('__background__', # always index 0
'normal bolt','normal bolt-2','normal bolt-3','shim losing','nut losing','nut losing-2','nut losing-3','nut directly loosening','nut directly loosening-2','nut directly loosening-3','nut directly loosening-4','pin loosening','pin closing