处理分辨率较高,但是仍然模糊的情况
我有本电子书是《罗素与分析哲学-现代西方主导思潮的再审思》,这本书中的页面比较模糊,以至于二值化后或者直接OCR识别的效果都很差,所以我想将书弄得清晰一些。
可是运行程序之后发现分辨率超过了程序处理的范围,直接跳过了。
我想是否可以处理这些分辨率虽然较高,但是仍然模糊的情况呢。
发现有参数可以更改,改完之后似乎可以了,正在跑
@echo off
if "%~x1"==".pdf" (
java -jar "%~dp0PDFtool.jar" -e "%~1" --max-wh=2147483647 --min-wh=100
"%~dp0realesrgan-ncnn-vulkan.exe" -i "%~1_img"
) else (
"%~dp0realesrgan-ncnn-vulkan.exe" -i "%~1"
)
pause
处理结果出来了,感觉有点小失望,似乎效果不是太好。
只是处理一页,看看对OCR有没有帮助吧。
OCR之后对比发现,超分辨率后反而劣化了。 不管是从肉眼上看,还是从OCR结果上看,至少对于那本PDF来说该程序没有任何的帮助。
原因是什么呢?有点好奇
@tumuyan 发现该程序的PDF导出图片的机制不行。
如果让程序自动处理PDF,那么最后做出来的结果就是劣化的,如上图所示。
可是如果使用别的软件,比如PDF-XChange Editor导出为tif文件,超分辨率结果就很好
程序自动处理pdf会导致结果劣化.zip
另外发现如果提升gamma,那么效果会更好
自己先导出,然后调整gamma,最后再用这个AI超分辨率,效果相当好。
如果能将前面两个步骤自动化就更好了
一些扫描书为了对文件进行压缩,使用了一些非常巧妙的设计。而不同pdf处理软件在渲染时,会有不同的结果,一键处理只能适应一部分场景。 默认参数会跳过的这些页面,其实就是发现页面分辨率过高,很可能没法自动处理好。
从处理电子书的思路讲,纯文字扫描书理想状态就是是黑白二色的,而原图文字不够黑,AI模型需要考虑兼顾灰阶背景、图示等情况,肯定不会把灰色自动拉成黑色,那显然就是要拉伽玛做预处理。
对于这个模型来说,适当地缩小能产生更好的效果,这是一个非常出乎意料的结果。
处理后的源文件:
放大的效果:
如果进行二值化后再送入模型,可能有更好的效果,但我就不继续尝试了。