一键部署Flask+PaddleOCR通用OCR服务指南

需积分: 0 40 下载量 155 浏览量 更新于2024-11-21 1 收藏 8KB ZIP 举报
资源摘要信息:"基于Flask+PaddleOCR实现的通用OCR服务" 1. Flask框架介绍: Flask是一个轻量级的Web应用框架,用于Python语言编写。它的设计哲学是“用最少的力气做更多的事情”,因此,Flask适合构建小到中型的Web应用。它提供了丰富的扩展支持,便于开发者根据需求定制应用。Flask支持诸如模板渲染、表单处理、HTTP请求分发等Web开发的核心功能,并且易于上手,快速开发。 2. PaddleOCR项目概述: PaddleOCR是百度飞桨(PaddlePaddle)开源的一个OCR(Optical Character Recognition,光学字符识别)工具库,旨在提供一套简单易用、灵活高效的OCR工具库。PaddleOCR集成了百度自研的深度学习模型,支持多种语言的文字检测和识别,包括中文、英文、法语等,并且可以应用于票据、表格等多种场景。PaddleOCR采用了端到端的识别方法,能够快速准确地从各种图像中提取文本信息。 3. 通用OCR服务构建: 资源描述中提到,通过封装PaddleOCR,并结合Flask框架,搭建了一个可以对外提供OCR服务的Web应用。这意味着用户可以通过发送HTTP请求到Flask搭建的API接口,实现对图片中文本信息的提取。这种服务化的设计使得OCR功能可以在不同的应用场景中被重复利用,例如验证码识别、图片信息提取等。 4. Docker与Docker-Compose的使用: 为了简化部署过程,提供了使用docker-compose一键部署的解决方案。Docker是一个开源的应用容器引擎,它可以将应用程序和应用程序所依赖的环境打包成一个轻量级、可移植的容器。Docker-Compose是一个用来定义和运行多容器Docker应用程序的工具。通过编写一个docker-compose.yml文件,可以一次性创建和启动多个容器,极大地方便了服务的部署和扩展。 5. 应用场景和使用人群: 文档指出,这项资源适用于验证码识别和提取图片中的文本。验证码识别在自动化登录和反作弊场景中尤为重要,而图片中的文本提取则适用于数据录入、信息整理等业务。服务的主要使用人群是爬虫工程师,他们通常需要从网页中提取大量文本信息,有了这项服务,可以大幅提高信息提取的效率和准确性。 6. 性能和服务器配置建议: 由于OCR服务在处理图片时需要消耗一定的计算资源,文档中建议服务器性能配置不低于4核8G。这意味着在进行部署时,需要考虑到服务器的CPU、内存等硬件资源,以确保服务能够高效稳定地运行。在实际应用中,还可能需要根据实际的用户量和图片处理量来调整服务器配置,以应对不同的工作负载。 7. 关键技术点总结: - Flask框架为OCR服务提供了Web接口的快速开发能力。 - PaddleOCR提供了强大的OCR功能,包括文字检测和识别。 - Docker和Docker-Compose简化了应用和服务的部署过程。 - 对于验证码识别和图片文本提取等场景,提供了专门的解决方案。 - 高性能服务器配置对于保证OCR服务的稳定性至关重要。 综合以上知识点,我们可以看出,该资源是一个高度集成的技术方案,结合了机器学习、Web开发、容器化部署等多个领域的技术,为需要OCR功能的用户提供了一个便捷、高效的解决方案。
171 浏览量
【资源说明】 基于Flask对PaddleOCR进行部署项目源码+项目操作说明(方便调用).zip ## 目录说明 ``` - caches:上传过来识别的图片 - post - test-post.py:服务请求代码 - demo.jpg:测试图片 - templates:前端界面 - server.py:server端 ``` ## 本地使用 1. csdn下载本项目代码; 2. 安装好本地需要的环境(`paddlepaddle`、`paddleocr`、以及[requirements.txt](https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.5/requirements.txt)); 3. 根据需求,修改`server.py`第97行`IP`(如果本地测试,建议`127.0.0.1`,如果云端部署,建议`0.0.0.0`); 4. 在此文件夹下启用服务: ``` python server.py ''' * Debugger is active! * Debugger PIN: 109-572-001 * Running on http://127.0.0.1:8090/ (Press CTRL+C to quit) ''' ``` 4. 根据输出访问:`http://ip:8090/` ,如果页面可以访问,即表示服务正常启动,可以做请求; ![](./images/2.jpg) 5. 进入`post`文件夹下,修改第4行`url`为上述输出`url`,修改第5行请求的图片名称,终端运行: ``` python test-post.py ''' { "服务状态": "success", "识别时间": "3.2900s", "识别结果": [ "健康宝", "2022年06月02日", "19:38:23", "未见异常②", "④核酸", "阴性", "时间", "#疫苗", "查看", "名", "姓", "李*", "身份证号", "61***", "**28", "查询时间", "06-0214:30", "失效时间", "06-0224:00", "返回首页", ] } ''' ``` ## 云端部署 1. 修改代码`IP`; 2. 放行服务器服务端口,如:8090; > 在一台2核2G的服务器上,服务结果可在2s内返回。 ## 参数说明 - `use_angle_cls true`设置使用方向分类器识别180度旋转文字; - `use_gpu false`设置不使用GPU; - 单独使用检测:设置`rec`为`false`; - 单独使用识别:设置`det`为`false`; - paddleocr默认使用PP-OCRv3模型(`ocr_version=PP-OCRv3`),如需使用其他版本可通过设置参数`ocr_version`,具体版本说明如下: | 版本名称 | 版本说明 | | -------- | -------------------------------------------------- | | PP-OCRv3 | 支持中、英文检测和识别,方向分类器,支持多语种识别 | | PP-OCRv2 | 支持中英文的检测和识别,方向分类器,多语言暂未更新 | | PP-OCR | 支持中、英文检测和识别,方向分类器,支持多语种识别 | - PaddleOCR目前支持80个语种,可以通过修改`lang`参数进行切换,对于英文模型,指定`lang=en`,常用的多语言简写包括: | 语种 | 缩写 | | 语种 | 缩写 | | 语种 | 缩写 | | -------- | ----------- | ---- | -------- | ---- 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!