Python中文本地OCR识别,tesseract有没有训练好的中文字库?
需要在本地使用 ocr 识别, 但是 tesseract 对中文的支持不怎么好, 查了一下需要训练中文字库。感觉有点麻烦,有没有训练好的字库?或者其他的方法可以实现本地的中文识别。
Python中文本地OCR识别,tesseract有没有训练好的中文字库?
百度和腾讯云都有 ocr 在线识别。
Tesseract有训练好的中文字库,直接安装就能用。
1. 安装Tesseract引擎和中文数据包
# Ubuntu/Debian
sudo apt-get install tesseract-ocr
sudo apt-get install tesseract-ocr-chi-sim # 简体中文
sudo apt-get install tesseract-ocr-chi-tra # 繁体中文
# macOS
brew install tesseract
brew install tesseract-lang # 包含中文
# Windows
# 从 GitHub tesseract-ocr/tessdata 下载 chi_sim.traineddata
# 放到 Tesseract-OCR\tessdata 目录
2. Python代码示例
import pytesseract
from PIL import Image
import requests
from io import BytesIO
# 设置tesseract路径(Windows可能需要)
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
# 方式1:从本地图片识别
def ocr_local_image(image_path):
img = Image.open(image_path)
text = pytesseract.image_to_string(img, lang='chi_sim') # 简体中文
return text
# 方式2:从网络图片识别
def ocr_web_image(image_url):
response = requests.get(image_url)
img = Image.open(BytesIO(response.content))
text = pytesseract.image_to_string(img, lang='chi_sim')
return text
# 使用示例
if __name__ == "__main__":
# 本地图片
result = ocr_local_image("chinese_text.png")
print("识别结果:", result)
# 或者用网络图片
# result = ocr_web_image("https://example.com/chinese.png")
3. 关键参数说明
lang='chi_sim':简体中文模型lang='chi_tra':繁体中文模型lang='chi_sim+eng':中英文混合识别
4. 安装Python库
pip install pytesseract pillow requests
总结:直接用chi_sim数据包就行,识别效果够一般场景用了。
#1 你看清楚楼主说什么了吗……
不存在的,中文识别只有 abbyy 文通和汉王
/s/1c3FuQFQ
不知道能不能用
训练这个东西最好是自己做 除非是标准的印刷体 或者直接像 1 楼说的用云服务不更好
我也有类似的需求,但是都是标准的字体,有没有那种按字体训练好的
如果是标准字体,用 tesseract 3.05 版本,是基于机器学习的方法而不是深度学习,自己准备数据集训练不算难。印刷体可以自己生成对应字体的 tif 文件,人工校对这个工作量不小,真训练过程很快也不难。
4.0 版本是基于 LSTM 的,算是深度学习的方法了,需要的数据集更大也会更慢,而且官方文档写的比较晦涩,需要结合代码和 3.0*的方法一起理解。
现成的,那就是 3 楼推荐的了,花钱买吧。
tesseract 这玩意,做中文识别很淡疼的。针对不同字体训练库最后弄出来很大很大。特别是字体多了之后……
发现现实中本地真正能用的中文 OCR 方案就是调用 Onenote 的组件咯。
https://github.com/tesseract-ocr/tessdata
这里有一些训练好的数据
现在 4.0 还是 alpha 版本,我看了大半天的文档,愣是没看懂怎么训练。
对的,写的比较晦涩,要结合:
training/tesstrain.sh
和
training/tesstrain_utils.sh
看,熟悉 3.0X 的训练,就好理解了。
4.0 最新的 master,用的这里的已经训练好的字库,https://github.com/tesseract-ocr/tessdata_best
识别率感觉还行。
用了, 好一点但是也比较不理想, 谢谢~
请问 windows 下 你们是怎么编译通过的?翻墙?
实测 https://github.com/tesseract-ocr/tessdata_best 的中文训练集较理想,基本满足需求

