相关帖子
https://bbs.marginnote.com.cn/t/topic/2821/6?u=tianyilt
背景知识
该帖子意在前人基础上进一步探索pdf ocr的方法,来解决mac版本marginnote没有ocr_pro的问题.具体后果我写在了这里.无法像ios一样享受ocrpro的主要原因是abbyy在mac端收费太贵.因此需要一个开源的免费的ocr工具来解决这一痛点.
这里有很多可供选择方案,今天测试一下tesseract.这是一个google的开源的ocr工具,可以支持将图片转化为可搜索的双层pdf.资料丰富,易于开发.
ocr后的效果
测试方法
主要调用工具的思路
- pdf 转 图像
- 调用tesseract来将每个图像转可搜索pdf
有一个攻略](How to OCR with Tesseract in Python with Pytesseract and OpenCV?)可以有助于用python完成这件事情 - 最后合并所有的pdf
- 导出原有pdf的目录并导入到新的pdf中
tesseract调用参数如下
def ocr_core(file):
pytesseract.pytesseract.tesseract_cmd = r'D:\Program Files\Tesseract-OCR\tesseract.exe'
tessdata_dir_config = r'--psm 7 --oem 3' # psm different segmentation mode
# --tessdata-dir "./" '--oem 3 --psm 7'
pdf = pytesseract.image_to_pdf_or_hocr(file,
extension='pdf',
lang='chi_sim',
config=tessdata_dir_config)
return pdf
选择了传统ocr+lstm的方法,对英文和中文进行
模式采用的是逐行
初步感觉
1有些地方没有被识别为可ocr文本,估计和模式有关
2识别的文字大概长这样 “是 毒气 或 冶 气 引起 了” 不容乐观,不过我们主要问题不是ocr质量,而是pdf可不可以被搜索,ocr质量不高可以用百度接口解决,没法框文字这真的不能忍.但是这样出现大量空格会对做标题链接很有影响,这也是需要研究的地方.
3就算是这个样子,也能够达成我们mac党需要的转化为双层可搜索pdf功能了,有懂js或许可以帮忙开发个插件来转化pdf.我目前在调通了python的版本,还差pdf的合并与目录问题(目前方法是用到外部工具,但是工具都是win10系统下的,不够通用,而且不端对端),有空就改一改完善一下丢github.
4目前程序没有io操作的情况下差不多一页5s,和abbyy相比还是比较慢的