[PaddlePaddle/PaddleOCR]PPOCRLabel导出识别结果,发现crop_img的图片变换了方向

2024-05-15 298 views
9

问题相关组件/Related components:PPOCRLabel 如下图,我在PPOCRLabel中对竖直的数据进行标注,导出识别结果后,图片是横着的,也不是全部图片都有这种情况,有些还是按照我的标注格式进行保存的。但很多图片会有这种情况 b457f2ff86e7a1b5315b02394ca78b4 60c765fba123f01aef650d43d4e5244 比如下图这种就是正常保存的 b36d20f1a4e784ded9c5b67f609c924 b0e16c2b669984923fd987fab164b3c

回答

3

标注工具使用了方向分类器,所以会对竖直方向图像进行旋转校正

2

标注工具使用了方向分类器,所以会对竖直方向图像进行旋转校正

你好,请问我可以怎么避免这种情况呢?因为我是想区分0 90 180 270,然后把各方向图片保存再送入方向分类器训练

3

可以把https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.6/PPOCRLabel/PPOCRLabel.py 里面的所有use_angle_cls设置为false,然后重新编译安装

5

可以把https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.6/PPOCRLabel/PPOCRLabel.py 里面的所有use_angle_cls设置为false,然后重新编译安装

你好,我已经按照你说的改了,重新编译了再导出识别结果,还是不行,依旧会帮我转成横的 79192e1ccdec43d9459ab79ee6c9eeb 060f0611588893d0749d0251fbdafc2 ee2baace324aed9c4f7be09053c0604 d10d6d98188aa2e661ad85d839837f1

2

这个也改一下:cls=False再试试呢

5

这个也改一下:cls=False再试试呢

你好,还是不行。PPOCRLabel.py的cls=False和use_angle_cls=False都改了,好奇怪

6

cv2.imdecode 不会处理exif的orientation信息,会导致图片方向不对

3

cv2.imdecode 不会处理exif的orientation信息,会导致图片方向不对

请问这个应该怎么解决呢

2

读取图片的时候加处理 image 或者重新保存一下图片,去掉方向信息

2

读取图片的时候加处理 image 或者重新保存一下图片,去掉方向信息

可是我看了下,我的图片没有exif信息,原图是bmp格式,裁剪成png,然后crop变成jpg d1e76d907a74895c1849d445cf64e7f

1

你可以用cv2.imdecode读一下,看一下图片是否是正的 ,我之前是这个问题

9

这个也改一下:cls=False再试试呢

大佬,想再请教下,文本分类器如果想增加90度和270度的识别,需要修改算法吗?还是直接修改label_list: ['0','90','180','270']就行了?

5

你可以用cv2.imdecode读一下,看一下图片是否是正的 ,我之前是这个问题

好的,谢谢你!

8

这个也改一下:cls=False再试试呢

大佬,想再请教下,文本分类器如果想增加90度和270度的识别,需要修改算法吗?还是直接修改label_list: ['0','90','180','270']就行了?

需要重新训练,改一下网络的输出类别数

7

在那里改没用 要在autoRecognition()这个函数里改

5

注释掉三行代码就行了,代码位置PPOCRLabel/libs/utils.py 屏幕截图 2024-03-05 104825

dst_img_height, dst_img_width = dst_img.shape[0:2] if dst_img_height * 1.0 / dst_img_width >= 1.5: dst_img = np.rot90(dst_img)

这两行代码的意思是判断你的标注框的高除以宽是否超过1.5,如果超过则进行逆时针旋转90度