# 通用OCR识别 ## 1. 任务简介 通用OCR任务用于解决文字识别任务,提取图片中的文字信息以文本形式输出,PP-OCRv4是一个端到端OCR串联系统,可实现CPU上毫秒级的文本内容精准预测,在通用场景上达到开源SOTA,点击右上角 `创建模型产线` 选择配置好的GPU、CPU环境,可以快速体验效果。 基于该产线,产学研界多方开发者已快速落地多个OCR应用,使用场景覆盖通用、制造、金融、交通等各个领域: |<img src="https://github.com/PaddlePaddle/PaddleOCR/raw/release/2.6/doc/imgs_results/ch_ppocr_mobile_v2.0/test_add_91.jpg" style="height: 200px"> | <img src="https://camo.githubusercontent.com/bae9cc60e5ac58a35ef74bebf7dbb27b81d3cf4eacd944980bf54713627ce78d/68747470733a2f2f61692d73747564696f2d7374617469632d6f6e6c696e652e63646e2e626365626f732e636f6d2f39643465626235626638353434626265616266616362666135333935313863386531616536386362633364373466363761336562353736636139343735346132" style="height: 200px"> | |--|---| |<img src="https://github.com/PaddlePaddle/PaddleOCR/raw/release/2.6/doc/imgs_results/PP-OCRv2/PP-OCRv2-pic001.jpg" style="height: 200px"> | <img src="https://github.com/PaddlePaddle/PaddleOCR/raw/release/2.6/doc/imgs_results/PP-OCRv3/en/en_2.png" style="height: 200px"> | ## 2. 模型选择和训练 PP-OCRv4串联系统由文本检测模型和文本识别模型串联完成,首先输入预测图片,经过文本检测模型获取全部的检测框。根据检测框坐标在原图中抠出文本行,并进行矫正,最后将全部文本行送入文本识别模型,得到文本结果。整个流程如下图所示: <img src="https://ai-studio-static-online.cdn.bcebos.com/5afdf912f236487389f431370d5125afc6ae9b6d67824439b77880bab4bd5667" style="height: 200px"> 详细的技术实现可参考阅读:[PP-OCRv4 技术报告](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/doc/doc_ch/PP-OCRv4_introduction.md) 本产线考虑精度和性能的不同需求,提供了 server 和 mobile 两种方案,可点击右上角 `创建模型产线` 体验两种方案的效果。 当通用任务无法满足特定场景时,推荐基于自有数据进行模型训练: | 场景方案 | 检测 mAP(%) | 识别 Acc(%) | GPU 推理耗时(ms) | CPU 推理耗时(ms) | 模型存储大小(M) | 启动训练 | | -------- | ------- | ------ | --------------- | ------------- | ----------- | ------ | | PP-OCRv4-server | 82.69 | 79.20 | 32.59 | 423.91 | 198 | ([文本检测](https://aistudio.baidu.com/aistudio/modelsdetail?modelId=282)/[文本识别](https://aistudio.baidu.com/aistudio/modelsdetail?modelId=270)) | | PP-OCRv4-mobile | 77.79 | 78.20 | 3.12 | 35.47 | 15 | ([文本检测](https://aistudio.baidu.com/aistudio/modelsdetail?modelId=272)/[文本识别](https://aistudio.baidu.com/aistudio/modelsdetail?modelId=281)) | **注:GPU 推理耗时基于 NVIDIA Tesla V100 机器,精度类型为 FP32, CPU 推理速度基于 Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz,线程数为10,精度类型为 FP32。** **注:评估集是PaddleOCR自建的中文数据集,覆盖街景、网图、文档、手写多个场景,其中文本识别包含1.1w张图片,检测包含500张图片。** **如何更新自己模型:** 1. 在`单模型产线中`完成模型评估后,可得到推理模型,具体请进入`开发者模式` ,压缩并下载 `/home/aistudio/output/infer` 目录。 2. 更新本`场景产线`中的模型路径,具体请进入 `开发者模式` 上传推理模型并解压,在工具箱模式中把推理模型目录的绝对路径地址(`{your/path}/infer`)填写在 <设置检测模型文件来源> 中。 ## 3. 模型部署 本模型目前的部署支持情况如下: | 操作系统 | Windows | Windows | Windows | Windows | Linux | Linux | Linux | Linux | | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | | 部署硬件 | NV GPU | NV GPU | X86 CPU | X86 CPU | NV GPU | NV GPU | X86 CPU | X86 CPU | | 接口语言 | C++ | Python | C++ | Python | C++ | Python | C++ | Python | | 支持情况 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 根据实际业务需求选择所需要的操作系统、部署硬件、接口语言等条件后,获取 FastDeploy 部署包,**完成之后到开发者模式下进行下载(文件右击选择下载即可)**,其中包括部署代码和预测模型。 最后就可以参考部署包里面的 README 使用说明,在目标硬件上进行部署啦。 **注意:如果需要手动更新预测模型,可以直接修改部署包中的预测模型。**