[python]使用OCRLiteOnnx几句代码实现ocr中英文数字识别
我在想现在OCR框有很多,有没有一款小巧且识别精度比较高的ocr框架呢?tesseract简洁但是识别精度不够,paddleocr虽然精度高但是框架庞大,安装paddle环境又比较麻烦,因此找到一款日常足够我们使用而又小巧,推理又快,即使CPU模式下足够我们使用。本人比较喜欢用python处理一些日常任务,因此选python语言实现。首先看看脚本文件夹:
可以看出除了一个封装类py文件基本没什么了,再看看调用方法,即main.py
from OCRLiteOnnx import *srcimg=cv2.imread('test.jpg')
ocr = OCRLiteOnnx()
results = ocr.OCR(srcimg)
for i, res in enumerate(results):point = res['location'].astype(int)cv2.polylines(srcimg, [point], True, (0, 0, 255), thickness=2)print(res['text'])
cv2.namedWindow('OCR', cv2.WINDOW_NORMAL)
cv2.imshow('OCR', srcimg)
cv2.waitKey(0)
cv2.destroyAllWindows()
可以看出除了上面cv2模块实际不超过10行代码就可以实现完整实现ocr。我随便截图试试:
原图:
结果:
总体看识别还不错,这个精度比较满意。至少在中英文数字识别方面十分方便。调用也简单。最后需要依赖:
onnxruntime==1.15.1
opencv-python==4.8.0.76
numpy==1.24.4
pyclipper==1.3.0.post5
pillow==10.4.0
shapely==2.0.1
上面模块基本pip一下就完,没有什么难度,我在python3.8环境安装建议使用python3.8.
最后分享代码下载地址:
https://download.csdn.net/download/FL1623863129/89748873