tesseract命令行ocr工具初步测试

相关帖子

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后的效果


测试方法

主要调用工具的思路

  1. pdf 转 图像
  2. 调用tesseract来将每个图像转可搜索pdf
    有一个攻略](How to OCR with Tesseract in Python with Pytesseract and OpenCV?)可以有助于用python完成这件事情
  3. 最后合并所有的pdf
  4. 导出原有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相比还是比较慢的

4 个赞

abbyy 那个方案不错的,Mac 和 Win 上亲测都不错。可以尝试一下

Hello

非常感谢您的鼓励和支持,希望我们能陪伴Marginnote走向更美好的未来。

Kind Regards,
MarginNote-Leah
Support Team