Closed oaifaye closed 4 years ago
base64之前不能简单reshape,需要保留比例reshape,然后补128,可以仿照 core.util.image_preporcess 这个方法,去掉image_paded = image_paded / 255.这一行,然后先调用这个方法,再掉api,精度就恢复了
def image_preporcess(image, target_size, gt_boxes=None):
ih, iw = target_size h, w, _ = image.shape scale = min(iw/w, ih/h) nw, nh = int(scale * w), int(scale * h) image_resized = cv2.resize(image, (nw, nh)) image_paded = np.full(shape=[ih, iw, 3], fill_value=128.0) dw, dh = (iw - nw) // 2, (ih-nh) // 2 image_paded[dh:nh+dh, dw:nw+dw, :] = image_resized # image_paded = image_paded / 255. if gt_boxes is None: return image_paded else: gt_boxes[:, [0, 2]] = gt_boxes[:, [0, 2]] * scale + dw gt_boxes[:, [1, 3]] = gt_boxes[:, [1, 3]] * scale + dh return image_paded, gt_boxes
base64之前不能简单reshape,需要保留比例reshape,然后补128,可以仿照 core.util.image_preporcess 这个方法,去掉image_paded = image_paded / 255.这一行,然后先调用这个方法,再掉api,精度就恢复了
def image_preporcess(image, target_size, gt_boxes=None):