py-faster-rcnn---demo.py

2018-11-10  本文已影响0人  小松qxs

./tool/demo.py

可传入参数 --gpu --cpu --net(vgg16 or zf)
cfg.TEST.HAS_RPN = True Use RPN for proposals
prototxt : ./models/pascal_voc/下
caffemodel :./data/faster_rcnn_models/下


demo.py文件的主流是黄色箭头、def vis_detections( ) 是紫色箭头、def demo( ) 是浅蓝色箭头、def parse_args() 是红棕色箭头。
其中:scores代表分数;boxes代表目标框对角两个点四个坐标值;dets代表各个框坐标和分数组成的矩阵、inds超过阈值符合要求的窗口对应的下标。

demo函数:

对测试图片提取预选框,并进行非极大值抑制,然后调用def vis_detections 画矩形框。参数:net 测试时使用的网络结构;image_name:图片名称。

scores, boxes = im_detect(net, im): test.py中im_detect,得到网络预测的scores, boxes
CONF_THRESH = 0.8: score 阈值,最后画出候选框时需要,>thresh才会被画出
NMS_THRESH = 0.3: 非极大值抑制的阈值,剔除重复候选框
vis_detections模块: 画出测试图片的bounding boxes, 参数im为测试图片; class_name 为类别名称,在前面定义的 CLASSES 中; dets为非极大值抑制后的bbox和score的数组;thresh是最后score的阈值,高于该阈值的候选框才会被画出来。

im_detect(net, im, boxes=None)函数(./lib/fast_rcnn/test.py)

1、blobs, im_scales = _get_blobs(im, boxes): blobs中data存输入图resize之后的图,im_scales = float(target_size) / float(im_size_min) or float(cfg.TEST.MAX_SIZE) / float(im_size_max) 600 1000
2、im_blob = blobs['data'],blobs['im_info'] = [M, N, imscale] (resize之后的图像是M*N)
3、network forward
4、boxes = rois[:, 1:5] / im_scales[0] : boxes针对原始图像坐标(P*Q)
5、scores = blobs_out['cls_prob']
6、pred_boxes: boxes针对bounding-box regression deltas的修改

上一篇下一篇

猜你喜欢

热点阅读