[PaddlePaddle/PaddleOCR]图像中的文字有些淡,可以通过什么方法增强下

2024-05-15 202 views
0
  • 系统环境/System Environment:
  • 版本号/Version:Paddle: PaddleOCR: 问题相关组件/Related components:
  • 运行指令/Command Code:
  • 完整报错/Complete Error Message: 1672129150874 你好,想问下图像中的文字有些淡,可以通过什么方法增强下,paddle里有相应的接口可以用吗,谢谢

回答

7

@andyjpaddle a 老师我对上面这个图片进行超分重建后得到下面这个图像,不是想得到的结果 sr_a 用的命令是:python3 tools/infer_sr.py -c configs/sr/sr_tsrn_transformer_strock.yml -o Global.pretrained_model= /PaddleOCR-release-2.6/sr_tsrn_transformer_strock_train/best_accuracy.pdparams Global.infer_img=doc/imgs_words_en/word_52.png 想问下是哪里的问题

3

这个是针对文本行进行的,可以调研一下其他超分算法哈

6

或者先做一下检测再进行文本行超分

6

paddle里有没有针对整个文本的超分重建的算法或者接口

6

目前还没有,可以自行调研一下相关算法哈,或者去paddlegan的repo里面找下超分相关的

2

@jingsongliujing 但是我需要一个 文本图像质量增强的模型作为预处理,老师知道有合适的模型吗

3

还有就是您说的这个模型怎么用呢

4

这个模型里面本身就有相关的模糊处理,搭配方向分类,而且识别效果还是非常不错的

1

@jingsongliujing 想问下老师,咋使用呢,我只看到模型,不知道具体怎么使用或者调用这个模型

6

实在不想折腾那就试试opencv的锐化

import cv2 as cv
import numpy as np
#USM锐化增强方法(Unsharpen Mask)
#先对原图高斯模糊,用原图减去系数x高斯模糊的图像
#再把值Scale到0~255的RGB像素范围
#优点:可以去除一些细小细节的干扰和噪声,比卷积更真实
#(原图像-w*高斯模糊)/(1-w);w表示权重(0.1~0.9),默认0.6
src = cv.imread("ma.jpg")
cv.imshow("input", src)

# sigma = 5、15、25
blur_img = cv.GaussianBlur(src, (0, 0), 5)
usm = cv.addWeighted(src, 1.5, blur_img, -0.5, 0)
#cv.addWeighted(图1,权重1, 图2, 权重2, gamma修正系数, dst可选参数, dtype可选参数)
cv.imshow("mask image", usm)

h, w = src.shape[:2]
result = np.zeros([h, w*2, 3], dtype=src.dtype)
result[0:h,0:w,:] = src
result[0:h,w:2*w,:] = usm
cv.putText(result, "original image", (10, 30), cv.FONT_ITALIC, 1.0, (0, 0, 255), 2)
cv.putText(result, "sharpen image", (w+10, 30), cv.FONT_ITALIC, 1.0, (0, 0, 255), 2)
#cv.putText(图像名,标题,(x坐标,y坐标),字体,字的大小,颜色,字的粗细)
cv.imshow("sharpen_image", result)

cv.waitKey(0)
cv.destroyAllWindows()
1

我这不单单是图像锐化,主要是对文本图像进行质量增强,先想试下您说的方法,直接运行https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.6/paddleocr.py这个代码就 行了嘛,好像没看到图像输入的地方

9

如果是你是pip安装的话,默认使用的PPocrv3,假如你要换一个模型,那就要拉源码下来进行修改,主要就是修改paddleocr.py的文件,剩下的,你要看需要哪些依赖包,留下就行,源码里面有很多是训练相关的,和推理无关,一般来说,我们主要修改文件里面的第54,55行DEFAULT_OCR_MODEL_VERSION = 'PP-OCRv3',SUPPORT_OCR_MODEL_VERSION = ['PP-OCR', 'PP-OCRv2', 'PP-OCRv3'],还有把那个需要的模型链接替换成我们想要的

5

1672303700041 我就是用的hub,现在是如何通过hub用上你建议的模型ch_ppocr_server_v2.0_rec呢

1

如果是你是pip安装的话,默认使用的PPocrv3,假如你要换一个模型,那就要拉源码下来进行修改,主要就是修改paddleocr.py的文件,剩下的,你要看需要哪些依赖包,留下就行,源码里面有很多是训练相关的,和推理无关,一般来说,我们主要修改文件里面的第54,55行DEFAULT_OCR_MODEL_VERSION = 'PP-OCRv3',SUPPORT_OCR_MODEL_VERSION = ['PP-OCR', 'PP-OCRv2', 'PP-OCRv3'],还有把那个需要的模型链接替换成我们想要的

那就按照我这种做法,如果你想试试超分,可以看这个教程:https://aistudio.baidu.com/aistudio/projectdetail/4654134?channelType=0&channel=0

4

1672306547735 我发现我原来用的模型是orcv3,这个和你说的这个模型哪个效果好些,然后就是这三个模型,默认用哪个模型呢

4

这三个都是蒸馏过的,效果都不算非常好,要用我之前给你说的,那个比较大的模型,这个就要自己把模型链接加到模型列表源码里面了

7

1672308081954 这样写行吗

9

emmm,假如你那个环境有这个模型,会冲突吧,不过你可以试试

9

那咋改成用你建议的这个模型呢