惊雷无声 发表于 2026-4-24 09:37:50

全网最新免费开源的ocr笔墨辨认开源项目盘货整理,附项目开源地点,支持离线摆设使用,支持多种语言辨认和API调用以及第三方集成,支持各种证件、发票、通用模子辨认,支持复杂文本、各种图片、文档、长文本等

全网最新免费开源的ocr笔墨辨认开源项目盘货整理,附项目开源地点,支持离线摆设使用,支持多种语言辨认和API调用以及第三方集成,支持各种证件、发票、通用模子辨认,支持复杂文本、各种图片、文档、长文本等。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvNTQ1MmE3YzkzZDMxZDViOTVkZDc5YTM2ZTMwZGEwODQucG5n
OCR(Optical Character Recognition,光学字符辨认)技能可以大概将图像中的笔墨转换为可编辑的文本格式,这一技能在多个范畴有着广泛的应用。以下是OCR技能的一些重要应用场景以及几个盛行的开源项目和它们的特点:
应用场景


[*]证件辨认:用于金融、银行、保险等行业,自动辨认身份证、护照、驾驶证等证件信息。
[*]银行卡辨认:在移动付出绑卡等场景中,自动辨认银行卡号,提拔用户体验。
[*]车牌辨认:在移动警务、停车场管理等场景中,自动辨认车牌号码和车辆特性信息。
[*]手刺辨认:在CRM客户管理体系中,自动辨认手刺内容,便于信息管理。
[*]业务执照辨认:自动辨认业务执照信息,如同一社会光荣代码、公司名称等。
[*]汽车VIN码辨认:在汽车管理、二手车生意业务等范畴,自动辨认车架号。
[*]票据类OCR辨认:自动辨认增值税发票等票据内容,用于财务管理等。
[*]文档笔墨OCR辨认:在图书馆、报社等机构,将纸质文档电子化。
开源项目及特点


[*] Paddle OCR:

[*]特点:轻量级模子,实行速率快;支持中英文辨认;支持倾斜、竖排笔墨辨认;可通过PaddleHub直接使用或练习本身的模子。

[*] CnOCR:

[*]特点:轻量级模子,实行速率快;支持简体中文、繁体中文、英文和数字辨认;自带多个练习好的模子;支持练习本身的模子。

[*] chinese_lite OCR:

[*]特点:超轻量级中文OCR,支持竖排笔墨辨认;模子巨细仅4.7M,实行速率快。

[*] EasyOCR:

[*]特点:支持80多种语言的OCR;可以大概读取自然场景文本和文档中的麋集文本。

[*] Tesseract OCR:

[*]特点:老牌开源OCR引擎,支持多种操纵体系;支持增补练习,但安装使用较为困难。

[*] chineseocr:

[*]特点:基于YOLO3与CRNN实现中文自然场景笔墨检测及辨认;支持多方向笔墨检测;实用于树莓派等装备。

[*] ChineseOCR:

[*]特点:专注于汉字辨认,实用于复杂配景和手写字体;基于TensorFlow构建;提供预练习模子和数据增强技能。

[*] 腾讯云OCR:

[*]特点:基于深度学习技能,支持多种笔墨辨认;提供多种编程语言的SDK和API。

[*] 百度AI开放平台OCR:

[*]特点:支持多种通用场景和20+种语言的高精度笔墨检测和辨认;提供离线SDK和私有化摆设选项。

[*] 阿里云OCR:

[*]特点:支持通用笔墨辨认、卡证辨认、票据辨认等;提供公有云服务、离线辨认SDK和私有化摆设。

这些开源项目和贸易服务展示了OCR技能在不停进步和扩展应用范围,从简朴的文本辨认到复杂场景的多语言、多方向和多格式的辨认,OCR技能正变得越来越强盛和易于使用。
随着科技的发展,OCR场景随处可见,很多APP也集成如身份证辨认,银行卡辨认的功能,包罗微信都支持截图文件中的笔墨提取。现在,各大厂商均有提供各种场景的OCR辨认的API。但是,偶尔间我们也想本身来折腾一下。这时间,就可以借助一些主流开源框架来快速到达我们的目的。
OCR引擎
tesseract
Tesseract,一款由HP实验室开发由Google维护的开源OCR引擎,开源,免费,支持多语言,多平台;
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvYTI3OTUwMzVjODZjNTU2ZmM2ZTFmYTQ0ODQ3NTdkYmYucG5n
​​https://github.com/tesseract-ocr/tesseract.git​​
tesseract.js
js版本的Tesseract OCR,支持一百多种语言,使用也黑白常简朴,可以用npm安装,也可以直接在页面引用js
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvODI1MDVlNWNmNWZhNjdiYmY1ZDE1NTIyYjNjYTRhOTMucG5n
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvMTkxNDE3ZTRlMWZkMzhiYTc5ZGIxZWY3NjZhYWEwMWQucG5n
​​https://github.com/naptha/tesseract.js.git​​
PaddleOCR
PaddleOCR是百度开源一套OCR,旨在打造一套丰富、领先、且实用的OCR工具库,助力开发者练习出更好的模子,并应用落地。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvYmUyNzkxOGZjOTYxZWUwYmZlYTczMzc5ZGI1OWJlMDAucG5n
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvYWE4YjcwNjA1YTMyN2JiZDcxOTNmNDFkY2EwNmVhZWIucG5n
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvMGExNzkwN2QwMDY0OWM5NjM5ZWUyNTNkNTdkYTEwNjkucG5n
​​https://github.com/PaddlePaddle/PaddleOCR.git​​
EasyOCR
EasyOCR是用Python编写基于Tesseract的OCR辨认库,用于图像辨认输出文本,现在支持80多种语言。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvMjU5MmZlMWExNTNmYTc1ZTAyMTc2MGJlN2Y5NWZhZTUucG5n
​​https://github.com/JaidedAI/EasyOCR.git​​
mmocr
MMOCR 是基于 PyTorch 和 mmdetection 的开源工具箱,专注于文本检测,文本辨认以及相应的卑鄙使命,如关键信息提取。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvMWVhMTE3MmEwMDcyMmM2YzhlNzk0MzE1NGFmZDc0NGEucG5n
​​https://github.com/open-mmlab/mmocr.git​​
simple-ocr-opencv
基于opencv 和numpy开源的OCR辨认引擎
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvY2Q3YzhiNjk0YTc4NzdiZGIzZTY2YWU4NWE0Zjk1MWUucG5n
​​https://github.com/goncalopp/simple-ocr-opencv.git​​
OCR工具
OCRmyPDF
OCRmyPDF是基于tesseract-ocr开发、练习的笔墨辨认提取的开源项目
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvODUxZjA3YmMyN2ZkNTM3YzJiYjQxMWUxMzcyNDI2MDMucG5n
​​https://github.com/ocrmypdf/OCRmyPDF.git​​
Umi-OCR
基于 PaddleOCR 实现的一款开源的笔墨辨认工具,
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvZWM2ZDg5ZmEwZTY4YmFlNjk3NjM2NGFkNjAyMjIyNDAucG5n
一样平常开源项目,辨认率肯定没有商用的那么高,只有通过练习本身的字库来进步辨认率。笔墨辨认场景,偶尔间就会涉及到图片处理惩罚,这里又会关联到别的强盛的图像处理惩罚开源项目,如:OpenCV。这些项目中,PaddleOCR相对来说会更符合我们常见的业务场景,也支持我们本身去练习。
   OCR(光学字符辨认)是一种将图像中的笔墨自动转换为可编辑文本的技能。现在,各大厂商均有提供各种场景的OCR辨认的API。但是,也有一些开源的OCR框架和工具,可以支持自我定制和练习,使得开发职员可以大概更加机动地应对差别场景下的OCR需求。
   一、OCR开源工具的长处

   使用OCR开源工具可以使文本辨认更加自动化、高效化和正确化,从而为各种应用场景带来了便利性和实用性。相对于贸易OCR软件,开源OCR工具有以下上风:
   免费使用:没有贸易软件的版权和授权限定,开源OCR工具提供的功能都可以免费使用。
   开放源代码:源代码公开,可以根据必要对其举行修改和定制化。
   机动可扩展:可以根据实际必要选择差别的工具,而且这些工具在差别式样和范畴都有应用实践,具有广泛性和可扩展性。
   二、八大常见的OCR开源工具

   1.Tesseract

   Tesseract是一款由Google维护的开源OCR引擎,开源、免费、支持多语言、多平台。它可以处理惩罚很多范例的图像,而且还支持多种字体和文本结构。
   2.Tesseract.js

   Tesseract.js是一个JavaScript版本的Tesseract OCR,支持100多种语言,使用也非常简朴,可以使用npm安装,也可以直接在页面中引用js。由于是基于JavaScript运行,因此无需举行任何额外的设置。
   3.PaddleOCR

   PaddleOCR是百度开源的一套OCR库,旨在打造一套丰富、领先、实用的OCR工具库,助力开发者练习出更好的模子,并应用落地。PaddleOCR包罗文本检测模子和文本辨认模子两个部门,支持多种语言和复杂情况下的笔墨辨认。
   4.EasyOCR

   EasyOCR是基于Tesseract OCR引擎的OCR辨认库,用于图像辨认输出文本,现在支持80多种语言。别的,EasyOCR还具有更好的文天职列和字检测正确度,而且易于使用和快速摆设。
   5.MMOCR

   MMOCR是基于PyTorch和MMDetection的开源工具箱,专注于文本检测、文本辨认以及相应的卑鄙使命,如关键信息提取。它在各种场景下都具有精彩的性能,可以满意复杂场景下的OCR需求。
   6.simple-ocr-opencv

   simple-ocr-opencv是基于OpenCV和Numpy的OCR辨认引擎。它提供了一种简朴但可靠的方法来处理惩罚常见的OCR使命,可以轻松地集成到您的Python工程中。
   7.OCRmyPDF

   OCRmyPDF是基于Tesseract-OCR开发、练习的笔墨辨认提取的开源项目。它可以将扫描或图像文件中的文本转换为可编辑的PDF文档。
   8.Umi-OCR

   Umi-OCR是基于PaddleOCR实现的一款开源的笔墨辨认工具。它可以快速为您天生高质量的OCR模子,并提供简朴易用的API,支持多种语言和文件格式。它特殊实用于必要举行自界说练习的OCR应用步伐。
   三、八大OCR开源工具根本使用下令

   1.Tesseract

   官方地点:https://github.com/tesseract-ocr/tesseract
   
   <ol class="hljs-ln"><li>
   
      
   
   
      
       git clone https:
       /
       /github.com
       /tesseract-ocr
       /tesseract.git
      
   </li><li>
   
      
   
   
      
       cd tesseract
      
   </li><li>
   
      
   
   
      
       .
       /autogen.sh
      
   </li><li>
   
      
   
   
      
       .
       /configure
      
   </li><li>
   
      
   
   
      
       make
      
   </li><li>
   
      
   
   
      
       sudomake install
      
   </li></ol>
      2.Tesseract.js

   官方地点:https://github.com/naptha/tesseract.js
   
   <ol class="hljs-ln"><li>
   
      
   
   
      
       import
       Tesseract
       from
       'tesseract.js';
      
   </li><li>
   
      
   
   
      
       Tesseract.
       recognize(
       '/path/to/image.png')
      
   </li><li>
   
      
   
   
      
       .
       then(
       function(
       result){
      
   </li><li>
   
      
   
   
      
       console.
       log(result.
       text);
      
   </li><li>
   
      
   
   
      
       })
      
   </li></ol>
      3.PaddleOCR

   官方地点:https://github.com/PaddlePaddle/PaddleOCR
   pip install paddleocr
   使用示例:
   
   <ol class="hljs-ln"><li>
   
      
   
   
      
       import paddleocr
      
   </li><li>
   
      
   
   
      
       # 初始化识别器
      
   </li><li>
   
      
   
   
      
       ocr
       = paddleocr.OCR()
      
   </li><li>
   
      
   
   
      
       # 读取图像文件
      
   </li><li>
   
      
   
   
      
       img_path
       =
       '/path/to/image.png'
      
   </li><li>
   
      
   
   
      
       img
       = paddleocr.
       read_image(img_path)
      
   </li><li>
   
      
   
   
      
       # 进行OCR识别
      
   </li><li>
   
      
   
   
      
       result
       = ocr.ocr(img)
      
   </li><li>
   
      
   
   
      
       # 输出识别结果
      
   </li><li>
   
      
   
   
      
       for
       line
       in result:
      
   </li><li>
   
      
   
   
      
       print(
       line)
      
   </li></ol>
      4.EasyOCR

   官方地点:https://github.com/JaidedAI/EasyOCR
   pip install easyocr
   使用示例:
   
   <ol class="hljs-ln"><li>
   
      
   
   
      
       import easyocr
      
   </li><li>
   
      
   
   
      
       #初始化OCR识别器
      
   </li><li>
   
      
   
   
      
       reader
       = easyocr.Reader([
       'en',
       'ch'])
      
   </li><li>
   
      
   
   
      
       #读取图像文件
      
   </li><li>
   
      
   
   
      
       img_path
       =
       '/path/to/image.png'
      
   </li><li>
   
      
   
   
      
       img
       = easyocr.imgproc.
       read(img_path)
      
   </li><li>
   
      
   
   
      
       #进行OCR识别
      
   </li><li>
   
      
   
   
      
       result
       = reader.readtext(img)
      
   </li><li>
   
      
   
   
      
       #输出识别结果
      
   </li><li>
   
      
   
   
      
       for
       line
       in result:print(
       line)
      
   </li></ol>
      5.MMOCR

   官方地点:https://github.com/open-mmlab/mmocr
   pip install mmocr
   使用示例:
   
   <ol class="hljs-ln"><li>
   
      
   
   
      
       import mmocr
      
   </li><li>
   
      
   
   
      
       # 初始化OCR识别器
      
   </li><li>
   
      
   
   
      
       pipeline
       = mmocr.Pipeline(cnotallow
       =
       'configs/textrecog/detector/tp_det_mv3_db.yml')
      
   </li><li>
   
      
   
   
      
       # 读取图像文件
      
   </li><li>
   
      
   
   
      
       img_path
       =
       '/path/to/image.png'
      
   </li><li>
   
      
   
   
      
       img
       = mmcv.imread(img_path)
      
   </li><li>
   
      
   
   
      
       # 进行OCR识别
      
   </li><li>
   
      
   
   
      
       result
       = pipeline(img)
      
   </li><li>
   
      
   
   
      
       # 输出识别结果
      
   </li><li>
   
      
   
   
      
       for
       line
       in result:
      
   </li><li>
   
      
   
   
      
       print(
       line[
       'text'])
      
   </li></ol>
      6.simple-ocr-opencv

   官方地点:https://github.com/goncalopp/simple-ocr-opencv
   pip install simple-ocr-opencv
   使用示例:
   
   <ol class="hljs-ln"><li>
   
      
   
   
      
       import cv2
      
   </li><li>
   
      
   
   
      
       from simple_ocr
       import OCR
      
   </li><li>
   
      
   
   
      
       # 初始化OCR识别器
      
   </li><li>
   
      
   
   
      
       ocr = OCR()
      
   </li><li>
   
      
   
   
      
       # 读取图像文件
      
   </li><li>
   
      
   
   
      
       img_path =
       '/path/to/image.png'
      
   </li><li>
   
      
   
   
      
       img = cv2.imread(img_path)
      
   </li><li>
   
      
   
   
      
       # 进行OCR识别
      
   </li><li>
   
      
   
   
      
       result = ocr.ocr(img)
      
   </li><li>
   
      
   
   
      
       # 输出识别结果
      
   </li><li>
   
      
   
   
      
       print(result)
      
   </li></ol>
      7.OCRmyPDF

   官方地点:https://github.com/ocrmypdf/OCRmyPDF
   pip install ocrmypdf
   使用示例:
   ocrmypdf /path/to/input.pdf /path/to/output.pdf
      8.Umi-OCR

   官方地点:https://github.com/umi-lib/UMI-OCR
   pip install umi-ocr
   使用示例:
   
   <ol class="hljs-ln"><li>
   
      
   
   
      
       import umi_ocr
      
   </li><li>
   
      
   
   
      
       # 初始化识别器
      
   </li><li>
   
      
   
   
      
       ocr = umi_ocr.OCR()
      
   </li><li>
   
      
   
   
      
       # 读取图像文件
      
   </li><li>
   
      
   
   
      
       img_path =
       '/path/to/image.png'
      
   </li><li>
   
      
   
   
      
       img = umi_ocr.read_image(img_path)
      
   </li><li>
   
      
   
   
      
       # 进行OCR识别
      
   </li><li>
   
      
   
   
      
       result = ocr.ocr(img)
      
   </li><li>
   
      
   
   
      
       # 输出识别结果
      
   </li><li>
   
      
   
   
      
       print(result)
      
   </li></ol>
      四、OCR实际应用场景

   在本文中,我们先容了八种常见的开源OCR框架和工具,包罗Tesseract、Tesseract.js、PaddleOCR、EasyOCR、MMOCR、simple-ocr-opencv、OCRmyPDF和Umi-OCR。这些工具具有差别的特点和上风,可以根据实际必要举行选择。下面列出了这些工具的一些实际应用场景:
   Tesseract:广泛应用于图像辨认和文本转换范畴,如扫描仪、数字化文档等。
   Tesseract.js:用于网页端OCR辨认,可实现将图像中的笔墨转为可编辑文本,实用于在线编辑器、智能表单、在线阅读器等应用场景。
   PaddleOCR:实用于复杂文本场景下的OCR辨认,比如身份证、银行卡、车牌等。
   EasyOCR:实用于文天职列和字检测正确度要求较高的 OCR 应用场景,如手刺辨认、发票辨认、商品标签辨认等。
   MMOCR:实用于中英文肴杂、竖排笔墨、非结构化场景下的OCR辨认,如手写字、表格、小说等。
   simple-ocr-opencv:实用于处理惩罚常见的OCR使命,如身份证、业务执照、车牌等。
   OCRmyPDF:将扫描或图像文件中的文本转换为可编辑的PDF文档,实用于必要编辑PDF文档的场景。
   Umi-OCR:可以资助用户快速天生高质量的OCR模子,并支持多种语言和文件格式。实用于必要自界说练习的OCR应用步伐。
   五、OCR技能国内应用情况

   OCR技能在信创范畴中应用广泛,重要包罗笔墨辨认、表格辨认、印刷体辨认以及各种证件的辨认。随着各种开源OCR工具的出现和不停美满,OCR技能得到了广泛应用,国内OCR技能也已相对成熟,而且得到广泛应用。常见的厂商有图鼎科技、中标信息、神州数码、讯飞OCR等,互联网公司如阿里云、腾讯云也推出了本身的OCR技能产物。
   这些OCR技能可以应用于各个范畴,比方:
   

[*]电子商务:在订单处理惩罚、发票管理、商品辨认等方面的应用,进步服从和正确性。
[*]金融服务:在银行卡、身份证、证券账户等范畴的辨认,可以进步客户体验,低沉工作量和堕落率。
[*]医疗康健:在病历管理、药品羁系、个人隐私信息掩护等方面的应用也非常紧张。
   除此之外,OCR技能还可以用于政务管理、教导、交通运输、安防等各个范畴。应用范围广泛,具有广阔的市场远景。
   固然,OCR技能也存在一些缺陷。比方,一些手写笔墨辨认的正确性尚待进步。在复杂情况下、格式多样化的文档处理惩罚中,OCR技能也大概出现误辨认等题目。别的,OCR技能也必要不停地优化和改进,以顺应新场景的需求并进步产物质量。
   总体来说,OCR技能在信创范畴中将会越来越紧张,而且其应用也会不停扩展和深化。各家厂商可以通过技能创新、算法优化、运营推广等方面进步产物性能和竞争力,为用户带来更好的体验和服务。
   综上所述,OCR技能作为一项紧张的人工智能技能,已经得到了广泛的应用,而且将会越来越紧张。通过使用开源的OCR框架和工具,开发者可以更机动地构建高质量的OCR应用步伐,实现更多实际的场景应用。
   末了,保举一款开源应用开发神器

   关于现在低代码在技能范畴很生动!
       低代码是什么?一组数字技能工具平台,能基于图形化拖拽、参数化设置等更为高效的方式,实现快速构建、数据编排、毗连生态、中台服务等。通过少量代码或不消代码实现数字化转型中的场景应用创新。它能缓解乃至办理巨大的市场需求与传统的开发生产力引发的供需关系抵牾题目,是数字化转型过程中降本增效趋势下的产物。
      这边先容一款好用的低代码平台——JNPF快速开发平台。比年在市场表现和产物竞争力方面表现较为突出,接纳的是最新主流前后分离框架(SpringBoot+Mybatis-plus+Ant-Design+Vue3)。代码天生器依靠性低,机动的扩展本事,可机动实现二次开发。
   以JNPF为代表的企业级低代码平台为了支持更高技能要求的应用开发,从数据库建模、Web API构建到页面计划,与传统软件开发险些没有差别,只是通过低代码可视化模式,淘汰了构建“增编削查”功能的重复劳动,还没有相识过低代码的同伴可以实验相识一下。
   应用体验入口:https://www.jnpfsoft.com/?csdn
   有了它,开发职员在开发过程中就可以轻松上手,充实使用传统开发模式下积聚的履历。以是低代码平台对于步伐员来说,有着很大资助。
       十二款开源OCR开箱测评,笔墨辨认哪家强
OCR(Optical Character Recognition,光学字符辨认)作为信息爆炸期间的“炼金术士”,以其高效且相对正确的性能,在海量纸质文档、扫描件、图片的笔墨信息提取方面发挥着举足轻重的作用。其广泛应用于教导、医疗、交通等多个行业范畴,其紧张性不问可知。然而,现在开源OCR工具种类繁多,差别场景图像的辨认结果却乱七八糟,这给开发职员的选型工作带来了不小的挑衅。为了尽大概全面测试OCR工具的辨认本事,本次测评经心挑选了12款开源OCR工具,在五类差别数据集上举行横向评选,以期为用户提供更为正确、客观的选型参考。
开源OCR先容与评测系列共分为三篇,本文为笔墨辨认本事篇,评测开源OCR根本的笔墨辨认本事,包罗印刷中文、印刷英文、手写中文等三类根本范例,以及复杂自然场景和变形字体两类附加测评;第二篇为结构信息本事篇,对表格、票证等结构化信息的OCR本事举行测评;第三篇为OCR Free评测篇,评测开源多模态大模子对图片信息的提取和分析本事。
本次开源OCR笔墨辨认本事测评选取了12款OCR工具,此中,独立工具有:PaddleOCR、RapidOCR、读光(开源版)、ChineseOCR、EasyOCR、Tesseract、OcrLiteOnnx、Surya、docTR、JavaOCR;文档分析OCR组件:RagFlow、Unstructured。
备注:本次测评均使用OCR工具自身提供的预练习模子举行测试,测试均接纳工具的示例中提供的参数设置。除开源工具以外,选取百度OCR云服务测试结果作为参照。
各OCR工具的测试版本如下:
PaddleOCR V2.7.5
读光OCR
DocTR V0.7.1
Tesseract V5.3.4
ChineseOCR
OcrLiteOnnx V1.6.1
RapidOCR V1.3.22
JavaOCR V1.0
EasyOCR V1.7.0
RAGflow V0.7.0
Unstructured V0.14.0
Surya V0.4.9
百度OCR V2.0
为了全面评测OCR工具各种场景下的辨认和分析本事,本次测评网络整理了多种范例笔墨辨认的图片数据,包罗印刷中英文、自然场景、手写笔墨和验证码等方面数据集,详细笔墨辨认数据集分类如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvMDQxZjg5ZjJmZjUwNmU0MzI0ZDQ0ZDcwOGYwZmFlMzkucG5n
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvOTdmNmU5MGUwYjFjM2NmOWViYWMxMDYzZTMwMzkzYjEucG5n
笔墨辨认本事重要评测OCR工具对笔墨的检测和辨认本事,包罗支持辨认的字符集规模(生僻字),字体形变(字体、艺术字),图像旋转、形变、干扰信息、明暗、暗昧等外部因素影响。
备注:笔墨辨认本事只观察是否正确辨认出字符,不观察笔墨结构信息(即输出结果的笔墨次序)。此中,中文统计粒度为字,英文为单词(区分巨细写),中英文标点符号相互区别。
字符辨认正确率(Precision):正确辨认的字符数/辨认输出总字符数
字符辨认召回率(Recall):正确辨认的字符数/验证集总字符数
字符辨认综合评分(F-Score):2PrecisionRecall/(Precision+Recal)
均匀相应时间:基准样本辨认总时间/样本数目。
测评结果
(1)印刷中文的综合测评结果为:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvODg0MzAwN2I2ZmU5NWFlMGE3MDdiY2RjZWZlMGE0MTgucG5n
(2)印刷英文的综合测评结果为:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvMmY3NjQyNzFiNTBiMzNjM2FmNjQzYzRhZTM3NjA2ZTUucG5n
(3)变形字体的艺术字测评结果为:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvYjM1Mjc4Zjg3YzM0OGRjN2NmNzEwYjdhMGYwMzgzOTIucG5n
(4)自然场景的街景图片测评结果为:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvM2Q0N2EyMjgxYjE0MzRlMDE4NWQ1ZGZkMzM3MjhiMzcucG5n
(5)手写中文的综合测评结果为:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvZTdjMGRiMTllZjNlOGY5NmFiMGVlODVmOGIwOGE4NDUucG5n
印刷中文辨认正确度测试中,综合前三分别是RapidOCR、RagFlow和Surya。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvNDMwMjFmZmEwNDkxNDhmYzViNmRmNWY2OTE0Y2M0ZWUucG5n
在印刷英文辨认正确度测试环节,综合前三分别是Surya、Unstructured和读光OCR,照旧国外开源软件领先。
在各种变形字体(艺术字、验证码等非尺度字体)场景下,由于本次测评仅接纳各OCR工具自身提供的预练习模子举行测试,辨认正确度均较低,如需进步变形字体的正确率必要针对变形字体举行专项练习。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvZDFlYTVkOTc1MzZmOWY5OWI2MTJmMDc5YTk5ODg2OWYucG5n
在复杂多行笔墨的街景场景中,前三名分别是RagFlow、RapidOCR和PaddleOCR,它们的综合评分相当靠近,均略高于70%。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvMjNiODcyMTc0MDFiMDg0ODg1NzM3ZjliMDM3YmZjZTEucG5n
在手写中文辨认场景下,综合前三分别是RapidOCR、ChineseOCR和RagFlow。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvZWRjYzMyMDUxNjc4NTQ3YjhhMGRkZmI0OTZmZGQ4YjAucG5n
在相应时间方面,表现优秀的有OcrLiteOnnx(0.01秒级)、RagFlow(0.1秒级),相应非常快。别的,ChineseOCR、EasyOCR和RapidOCR表现也不错,均匀时间小于1秒。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvYmM1ZmVlODlkMDdkZjI1MDQ4Mzg2ZmE4ZGY2NTE4N2MucG5n
随着大语言模子的快速发展和应用,我们对OCR辨认的需求不再范围于字的辨认,对于结构化信息抽取的需求越来越大。我们将在下一篇将对开源OCR工具的结构分析本事举行评测。同时,针对OCR Free类的大模子,如TextMoneky、DocPedia、UReader、Pix2struct、Donut,以及国内研究的InterVL等,我们筹划开展一次OCR Free类评测,敬请等待。
近来百度飞桨团队推出了一款基于文心大模子的通用图像关键信息抽取工具PP-ChatOCR。它团结了OCR笔墨辨认和文心一言大语言模子,可以在多种场景下提取图像中的关键信息,结果非常惊艳。而传统的OCR辨认技能的正确率轻易受到多种因素影响,比方图像质量、字符结构、字体样式等。但当我们将OCR技能与大语言模子相联适时,可以克制繁杂的规则后处理惩罚,提拔泛化本事,从而可以大概更智能、正确地明白和使用文本信息。(官方阐明)
这里以手机app截图为例,定制化提取此中的感爱好信息。实现OCR模子提取笔墨信息,输入LLM分析其辨认结果直接给出所关注的关键信息——这就是ChatOCR的焦点头脑。
技能方案
笔墨辨认模子:PP-OCRv4;
LLM:百度“文心一言”
开发情况:Python 3.10 + PaddlePaddle深度学习框架
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvZThkMDE2MWY4YmZiNWQ3Y2ExMzYzMGM3YWI3Mjc5MDgucG5n
存在的题目及办理思绪
LLM无法100%正确地辨别图像所属的场景
使用官方给出的思绪,即给出场景列表,让大模子辨认OCR结果属于哪个场景,然后将其作为key去提前写好的few-shot例子中找到对应场景下的信息抽取结果来引导LLM,然后LLM再根据用户提供的关键信息项和OCR结果得到终极的结果。
而这种方式依靠于LLM能正确无误的将OCR结果对应到给定列表中的某一个场景,若OCR结果不属于给定场景列表中的任何一个,大概将其错误的归于其他场景,都会导致关键信息提取失败,前者会使步伐报错,而后者大概导致禁绝确的信息提取结果。(实测非卡证场景辨认不稳固)
办理思绪:取消场景辨认这一步调,直接输入干系例子让LLM学习
大量场景例子无法一次性喂入LLM
LLM学习的例子太多,token数目的增长会导致资源的上升和推理时间的增长。 ———凌驾一次输入题目的2000字数限定
办理思绪:构建多轮对话,逐次学习例子
LLM的影象忘记
多轮对话中bot的回应必要本身写,这个上下文信息会影响到后续的推理结果。对话轮数(例子)越多,LLM对前文的影象越弱,导致忘记使命要求。
办理思绪:in-context learning prompt工程
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvYThkMjk0ZDJmY2JlMDEyZTQ5NDMwYzI5YWUxOGIxMDEucG5n
更换文心一言
参考链接:https://aistudio.baidu.com/projectdetail/6629280
LangChain
一个基于LLM来开发应用步伐的框架,提供Chain接口来继承各种LLM干系模块。可以读取结构化或非结构化数据,然后用LLM来举行信息择要或信息提取。高度集成化,支持浩繁模子和工具。
大型多模态模子(Large Multimodal Model, LMM)
直接使用现在的SOTA LMM来在业务场景下的OCR图片集上fine-tune,然后举行OCR-VQA大概关键信息提取。
论文:On the Hidden Mystery of OCR in Large Multimodal Models, Arxiv 2023.
文章在多个Text及OCR benchmark上测试了现在的LMMs的Zero-Shot迁移性能,给出了使用LMM提拔OCR辨认性能的思绪。
开源大模子汇总
以下仅列出重要的、关键的、常用的大模子。
LLaMA —— Meta 大语言模子
LLaMA 语言模子全称为 “Large Language Model Meta AI”,是 Meta 的全新大型语言模子(LLM),这是一个模子系列,根据参数规模举行了分别(分为 70 亿、130 亿、330 亿和 650 亿参数不等)。
此中 LaMA-13B(130 亿参数的模子)只管模子参数相比 OpenAI 的 GPT-3(1750 亿参数) 要少了十几倍,但在性能上反而可以凌驾 GPT-3 模子。更小的模子也意味着开发者可以在 PC 乃至是智能手机等装备上本地运行类 ChatGPT 如许的 AI 助手,无需依靠数据中央如许的大规模办法。
Stanford Alpaca —— 指令调优的 LLaMA 模子
Stanford Alpaca是一个指令调优的 LLaMA 模子,从 Meta 的大语言模子 LLaMA 7B 微调而来。
Stanford Alpaca 让 OpenAI 的 text-davinci-003 模子以 self-instruct 方式天生 52K 指令依照(instruction-following)样本,以此作为 Alpaca 的练习数据。
在测试中,Alpaca 的很多活动表现都与 text-davinci-003 类似,且只有 7B 参数的轻量级模子 Alpaca 性能可与 GPT-3.5 如许的超大规模语言模子性能媲美。
Lit-LLaMA —— 基于 nanoGPT 的语言模子
Lit-LLaMA 是一个基于 nanoGPT 的 LLaMA 语言模子的实现,支持量化、LoRA 微调、预练习、flash attention、LLaMA-Adapter 微调、Int8 和 GPTQ 4bit 量化。
重要特点:单一文件实现,没有样板代码;在斲丧者硬件上或大规模运行;在数值上等同于原始模子。
Lit-LLaMA以为人工智能应该完全开源并成为团体知识的一部门。但原始的 LLaMA 代码接纳 GPL 答应证,这意味着使用它的任何项目也必须在 GPL 下发布。这 “污染” 了其他代码,克制了与生态体系的集成。Lit-LLaMA使用Apache 2.0协议,永世性地办理了这个题目。
GPT4All —— 基于 LLaMA 的大语言模子
GPT4All是基于 LLaMa 的~800k GPT-3.5-Turbo Generations 练习出来的助手式大型语言模子,这个模子继承了大量干净的助手数据的练习,包罗代码、故事和对话,提供的模子性能靠近text-davinci-003。
给出了多平台的桌面版应用,可以在本地的CPU上运行。同时提供Python的API,可以在本地本身调用下载好的模子完成问答。
Chinese-LLaMA
1、Chinese-LLaMA-Alpaca
在Apache-2.0协议下开源了中文LLaMA模子和指令精调的Alpaca大模子,以进一步促进大模子在中文NLP社区的开放研究。这些模子在原版LLaMA的底子上扩充了中文词表并使用了中文数据举行二次预练习,进一步提拔了中文底子语义明白本事。同时,中文Alpaca模子进一步使用了中文指令数据举行精调,明显提拔了模子对指令的明白和实行本事。文档全面,支持本地推理摆设,还在一连更新。
2、Chinese-Vicuna —— 一个中文低资源的LLaMA+lora方案
A Chinese Instruction-following LLaMA-based Model。项目目的是渴望基于LLaMA+instruction数据构建一个中文的羊驼模子,并资助各人能快速学会使用引入本身的数据,并练习出属于本身的小羊驼(Vicuna)。
方案的上风是参数高效,显卡友好,摆设浅易:
在一张2080Ti(11G)上可以对Llama-7B举行指令微调 (7b-instruct)
在一张3090(24G)上可以对Llama-13B举行指令微调 (13b-instruct)
纵然是长度为2048的对话,在3090上也可以完成Llama-7B的微调;使用5万条数据即可有不错结果 (chatv1)
范畴微调的例子:医学问答 和 法律问答。(medical and legal)
支持qlora-4bit,使用4bit可以在2080Ti上完成13B的练习
可在2080Ti/3090上轻松摆设,支持多卡同时推理,可进一步低沉显存占用
项目包罗
finetune模子的代码
推理的代码
仅使用CPU推理的代码 (使用C++)
下载/转换/量化Facebook llama.ckpt的工具
其他应用
详细文档
3、伶荔 (Linly) —— 大规模中文语言模子
深圳大学与腾讯AI Lab推出。相比已有的中文开源模子,伶荔模子具有以下上风:
在 32*A100 GPU 上练习了差别量级和功能的中文模子,对模子充实练习并提供强盛的 baseline。据知,33B 的 Linly-Chinese-LLAMA 是现在最大的中文 LLaMA 模子。
公开全部练习数据、代码、参数细节以及实验结果,确保项目的可复现性,用户可以选择符合的资源直接用于本身的流程中。
项目具有高兼容性和易用性,提供可用于 CUDA 和 CPU 的量化推理框架,并支持 Huggingface 格式。
现在公开可用的模子有:
Linly-Chinese-LLaMA-2 (7B、13B) 模子:使用 LLaMA2 扩充中文词表,在肴杂语料上举行增量预练习,模子仍在迭代中,将定期更新模子权重。
Linly-Chinese-Falcon(7B): Chinese-Falcon 模子在 Falcon 底子上扩充中文词表,在中英文数据上增量预练习。模子以 Apache License 2.0 协议开源,支持贸易用途。
Linly-Chinese-LLaMA:中文底子模子,基于 LLaMA 在高质量中文语料上增量练习强化中文语言本事,现已开放 7B、13B 和 33B 量级,65B 正在练习中。
Linly-ChatFlow:中文对话模子,在 400 万指令数据聚集上对中文底子模子指令精调,现已开放 7B、13B 对话模子。
Linly-ChatFlow-int4 :ChatFlow 4-bit 量化版本,用于在 CPU 上摆设模子推理。
GLM —— 用于自然语言明白和天生的通用预练习框架
GLM (General Language Model)是清华大学推出的一种使用自回归填空目的举行预练习的通用语言模子,可以针对各种自然语言明白和天生使命举行微调。
GLM 通过添加 2D 位置编码并答应以恣意次序猜测跨度来改进空缺添补预练习,从而在 NLU 使命上得到优于 BERT 和 T5 的性能。同时,GLM 可以通过改变空缺的数目和长度对差别范例的使命举行预练习。在高出 NLU、条件和无条件天生的广泛使命上,GLM 在给定雷同的模子巨细和数据的情况下优于 BERT、T5 和 GPT,并从单一的预练习模子中得到了 1.25 倍 BERT Large 参数的最佳性能,表明其对差别卑鄙使命的通用性。
关于 GLM 的详细形貌可参考论文 GLM: General Language Model Pretraining with Autoregressive Blank Infilling (ACL 2022)
ChatGLM-6B 就是在 GLM 框架的底子上为中文 QA 和对话举行了优化。
ChatGLM-6B —— 中英双语对话语言模子
ChatGLM-6B()是一个开源的、支持中英双语问答的对话语言模子,并针对中文举行了优化。该模子基于 General Language Model (GLM) 架构,具有62亿参数。团结模子量化技能,用户可以在斲丧级的显卡上举行本地摆设(INT4 量化级别下最低只需 6GB 显存)。
ChatGLM-6B 使用了GLM框架,针对中文问答和对话举行了优化。颠末约 1T 标识符的中英双语练习,辅以监督微调、反馈自助、人类反馈强化学习等技能的加持,62亿参数的 ChatGLM-6B 固然规模不及千亿模子,但大大低沉了推理资源,提拔了服从,而且已经能天生相当符合人类偏好的答复。
MLC LLM —— 本地大语言模子
MLC LLM是一种通用办理方案,它答应将任何语言模子本地摆设在各种硬件后端和本地应用步伐上。
别的,MLC LLM 还提供了一个高效的框架,供使用者根据需求进一步优化模子性能。MLC LLM 旨在让每个人都能在个人装备上本地开发、优化和摆设 AI 模子,而无需服务器支持,并通过手机和条记本电脑上的斲丧级 GPU 举行加速。
mPLUG-Owl —— 多模态大语言模子
阿里达摩院提出的多模态 GPT 的模子:mPLUG-Owl,基于 mPLUG 模块化的多模态大语言模子。它不但能明白推理文本的内容,还可以明白视觉信息,而且具备良好的跨模态对齐本事。
论文:https://arxiv.org/abs/2304.14178
DEMO:https://huggingface.co/spaces/MAGAer13/mPLUG-Owl
全网开源最良好的 ocr 笔墨辨认项目:
https://github.com/PaddlePaddle/PaddleOCR
https://github.com/Layout-Parser/layout-parser
https://github.com/Calamari-OCR/calamari
https://github.com/hiroi-sora/Umi-OCR
https://github.com/tesseract-ocr/tesseract
https://github.com/naptha/tesseract.js
https://github.com/ocropus
https://github.com/JaidedAI/EasyOCR
https://github.com/Ucas-HaoranWei/Vary
https://github.com/OpenBMB/MiniCPM-V
页: [1]
查看完整版本: 全网最新免费开源的ocr笔墨辨认开源项目盘货整理,附项目开源地点,支持离线摆设使用,支持多种语言辨认和API调用以及第三方集成,支持各种证件、发票、通用模子辨认,支持复杂文本、各种图片、文档、长文本等