ppocr方向分类器记录
官方训练数据预处理代码如下:
(1)官方训练的shape默认是(1,3,48,192)(batch, chanel,height,width)
(2)把原图的高resize到48,然后宽再等比例缩放,要是等比例缩放后的宽大于192则resize到192
(3)缩放后再进行归一化
(4)归一化后再进行填充操作,要是宽比192小则在右边填充0,
def resize_norm_img(self, img):imgC, imgH, imgW = self.cls_image_shapeh = img.shape[0]w = img.shape[1]ratio = w / float(h)if math.ceil(imgH * ratio) > imgW:resized_w = imgWelse:resized_w = int(math.ceil(imgH * ratio))resized_image = cv2.resize(img, (resized_w, imgH))resized_image = resized_image.astype('float32')if self.cls_image_shape[0] == 1:resized_image = resized_image / 255resized_image = resized_image[np.newaxis, :]else:resized_image = resized_image.transpose((2, 0, 1)) / 255resized_image -= 0.5resized_image /= 0.5padding_im = np.zeros((imgC, imgH, imgW), dtype=np.float32)padding_im[:, :, 0:resized_w] = resized_imagereturn padding_im