原来输入的形状不是由这里的术语决定的:
input: "data" input_shape { dim: 1 dim: 3 dim: 224 dim: 224 } input: "im_info" input_shape { dim: 1 dim: 3 }
将输入dim更改为任意大小后,如424:
input: "data" input_shape { dim: 1 dim: 3 dim: 424 dim: 424 } input: "im_info" input_shape { dim: 1 dim: 3 }
测试AP不会改变一点,表示已完成一些修改,因此图像大小不在此处确定 input_shape 在 test.prototxt ,然后我深入研究代码,在这里找到行:
input_shape
test.prototxt
net.blobs['data'].reshape(*(blobs['data'].shape))
之前 :
forward_kwargs = {'data': blobs['data'].astype(np.float32, copy=False)} if cfg.TEST.HAS_RPN: forward_kwargs['im_info'] = blobs['im_info'].astype(np.float32, copy=False) else: forward_kwargs['rois'] = blobs['rois'].astype(np.float32, copy=False) blobs_out = net.forward(**forward_kwargs)
和blobs ['data']。形状是输入图像的大小,调整大小进程,宽度为600 :(我不在这里发布所有行)
im_scale = float(cfg.TEST.MAX_SIZE) / float(im_size_max) im = cv2.resize(im_orig, None, None, fx=im_scale, fy=im_scale, interpolation=cv2.INTER_LINEAR)