breezedeus / CnSTD

CnSTD: 基于 PyTorch/MXNet 的 中文/英文 场景文字检测(Scene Text Detection)、数学公式检测(Mathematical Formula Detection, MFD)、篇章分析(Layout Analysis)的Python3 包
https://www.breezedeus.com/article/cnocr
Apache License 2.0
658 stars 101 forks source link

cropped_image完全翻转了原文字导致后面的识别失败 #21

Closed runzhangDL closed 2 years ago

runzhangDL commented 3 years ago

通过detect函数返回的信息中,有一些cropped_image被cnocr识别成乱码,把这些array转换为图片发现它们把文字完全翻转过来了

MrCat9 commented 3 years ago

可以看看opencv的版本。我在opencv-python==4.5.1.48下得到的cropped_image与原图上下颠倒了,使用opencv-python==4.1.2.30则不会颠倒。

maodijim commented 3 years ago

没错我用opencv-python=4.5.1.48也发现会上下颠倒 其他版本没试过

cropped_img = np.fliplr(np.flipud(info['cropped_img']))

flip回来能识别但是有些字还是会upside down.

hoodlum1980 commented 3 years ago

关键是毫无规律啊。同一张图片检测出来的 cropped_img, 按照正常思维假定 cropped_img 的扫描顺序是从上到下,从左到右的顺序(即假定 cropped_img 的第一个像素数据是图片左上角,最后一个像素数据是图片的右下角)。保存下来发现有的是正常图像,有的是绕中心点旋转 180 度的图像(相当于在 PS 中水平和垂直方向同时镜像翻转),这是怎么回事?。摸不到规律,我被高懵逼了。检测结果你倒是用统一的扫描顺序啊,这样我可以把他调整到正确的顺序去喂给 cnocr。现在这样简直没法搞。。。。或者你明确告诉我这个 cropped_img 的扫描序也行。。。。我晕。

Lucas-Yang commented 3 years ago

顶,同样遇到这个问题,也正在看中,希望解决的同学可以分享下解决方案

Lucas-Yang commented 3 years ago

关键是毫无规律啊。同一张图片检测出来的 cropped_img, 按照正常思维假定 cropped_img 的扫描顺序是从上到下,从左到右的顺序(即假定 cropped_img 的第一个像素数据是图片左上角,最后一个像素数据是图片的右下角)。保存下来发现有的是正常图像,有的是绕中心点旋转 180 度的图像(相当于在 PS 中水平和垂直方向同时镜像翻转),这是怎么回事?。摸不到规律,我被高懵逼了。检测结果你倒是用统一的扫描顺序啊,这样我可以把他调整到正确的顺序去喂给 cnocr。现在这样简直没法搞。。。。或者你明确告诉我这个 cropped_img 的扫描序也行。。。。我晕。

没有看具体导致图像翻转的原因,但是确实是opencv4.5版本会出现这种情况, 可以换成opencv4.4就不会出现了。后续可以继续看看具体的原因