2024年9月20日

ocr精确识别架构设计(ocr识别准确度)

现阶段根据神经网络算法的OCR技术性,如雨后春笋的在开源平台上窜了出来,如 PaddleOCR、ChineseOCR、ChineseOCR-lite等;

根据具体构建核对,存有如下所示不够:

识别速率层面(一般网络服务器:8核、16G运行内存的场景中),一张A4的图片,主题鲜明前提下,一般一张图片识别速率≥30S图片的层面对识别内容包括较大影响;正常拍摄手法,识别出去内容不容易乱序,而转动90度后,识别实际效果较弱;混合开发能力、多语言适用较弱,一般仅支持python、C ,别的语言必须通过协议对接,如Http Restful通讯协议等;模型优化更新慢;一般一部分开源产品,有可能是大型厂KPI的商品,存有长期不升级更新的状况,而新手自身也不具有提升能力,因而,也让商品进不去产品化情景;

今天分享的OCR开源平台 RapidOCR,适用应用python/c /JAVA/swift/c# 各种语言,同时提供相对应的SDK,适用线下布署或编译;也支持X86/ARM架构的混合开发移殖;

服务平台基本上每一个月都是会对于实体模型识别精确度、识别效率和速率进行相应的提升,并公布有关模型包;

系统软件整体框架全过程

官方网所提供的工程项目实例(C 、Java、.Net、Android、Python等):

RapidOCR├── android # 安卓系统工程项目目录├── api4cpp # c语言混合开发插口库源代码目录,直接使用根下的CMakelists.txt 编译├── assets # 一些演试使用的图片,并不是验证集├── commonlib # 通用性库├── cpp # 根据c 的建筑项目文件夹名称├── datasets # 常见OCR有关数据归纳├── dotnet # .Net程序流程目录├── FAQ.md # 一些互动问答梳理├── images # 一般用图片,二张最典型的测试图,一张是自然场景,另一个为长文本├── include # 编译c语言插口库后的库函数目录├── ios # iPhone服务平台工程项目目录├── jvm # 根据java工程项目目录├── lib # 编译用元件库目录,用以编译c语言插口库用,默认设置并不是提交二进制文件├── ocrweb # 根据python和Flask web├── python # python逻辑推理编码目录├── release # 公布的sdk└── tools # 一些变换脚本制作这类

部署应用方法(Docker方法,这儿奉献Dockerfile):

FROM python:3.7-slim

MAINTAINER "frank"# 更换源RUN apt-get update \ && apt-get install -y g gcc python3-opencv \ && apt-get clean# && rm -rf /var/lib/apt/lists/*

ENV PIPURL "https://mirrors.aliyun.com/pypi/simple"

WORKDIR /opt/ocr

COPY . .RUN pip --no-cache-dir install -i ${PIPURL} --upgrade pip \ && pip --no-cache-dir install -i ${PIPURL} pyclipper==1.2.0 Shapely==1.7.1 onnxruntime==1.7.0 opencv_python==4.5.1.48 six==1.15.0 numpy==1.19.2 Pillow==8.3.0 flask

EXPOSE 9003

WORKDIR /opt/ocr/ocrweb

CMD python main.py

脚本制作实例:

Python版本号(其他版本暂时不例举)

# 适用 对图片 文本检测 方位归类 文字识别from ch_ppocr_mobile_v2_cls import TextClassifierfrom ch_ppocr_mobile_v2_det import TextDetectorfrom ch_ppocr_mobile_v2_rec import TextRecognizer

det_model_path = 'models/ch_ppocr_mobile_v2.0_det_infer.onnx'cls_model_path = 'models/ch_ppocr_mobile_v2.0_cls_infer.onnx'rec_model_path = 'models/ch_ppocr_mobile_v2.0_rec_infer.onnx'

image_path = r'test_images/det_images/1.jpg'

text_sys = TextSystem(det_model_path, rec_model_path, use_angle_cls=True, cls_model_path=cls_model_path)dt_boxes, rec_res = text_sys(image_path)visualize(image_path, dt_boxes, rec_res)

在实践中,同样视频的图片,选用RapidOCR模型识别,速度上,基本上≤5s回到识别结论;

识别实例:

动态性识别图片

C 、JAVA 识别展现

.net 识别展现

有关问题,欢迎在评论区留言提出问题;欢迎各位关注点赞、关心、个人收藏~