# PaddleOCR-Flask-deploy-main **Repository Path**: reyzhang/PaddleOCR-Flask-deploy-main ## Basic Information - **Project Name**: PaddleOCR-Flask-deploy-main - **Description**: ocr_web端部署自定义模型 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-08-12 - **Last Updated**: 2022-08-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: PaddleOCR, Flask ## README ## 简介 [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) 旨在打造一套丰富、领先、且实用的OCR工具库,助力开发者训练出更好的模型,并应用落地。Flask是一个使用 Python编写的轻量级 Web 应用框架。本项目旨在将PaddleOCR部署在Flask上,方便调用。 ![](./images/1.jpg) ## 目录说明 ``` - caches:上传过来识别的图片 - post - test-post.py:服务请求代码 - demo.jpg:测试图片 - templates:前端界面 - server.py:server端 ``` ## 本地使用 1. 克隆下载本仓库代码; 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`,常用的多语言简写包括: | 语种 | 缩写 | | 语种 | 缩写 | | 语种 | 缩写 | | -------- | ----------- | ---- | -------- | ------ | ---- | -------- | ------ | | 中文 | ch | | 法文 | fr | | 日文 | japan | | 英文 | en | | 德文 | german | | 韩文 | korean | | 繁体中文 | chinese_cht | | 意大利文 | it | | 俄罗斯文 | ru | 全部语种及其对应的缩写列表可查看[多语言模型教程](https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.5/doc/doc_ch/multi_languages.md) ## 服务请求 请求方法:`POST`、`GET` 请求URL: `http://IP:8090/ocr` 请求参数说明: | 参数 | 值 | | ---- | ---------------------------------------------------- | | file | 图像数据,`base64`编码,支持`JPG`、`PNG`、`JPEG`格式 | 返回参数说明: | 参数 | 值 | | -------- | ---------------------------------------- | | 服务状态 | `success`:成功识别;`faild`:无法识别; | | 识别结果 | 列表格式,包含从图片中识别的所有文字信息 | | 识别时间 | 模型识别文字消耗时间 | 代码请求示例: ```python import requests import json url = 'http://IP:8090/ocr' files = {'file': open('./demo.jpg', 'rb')} r = requests.post(url, files=files) print(r.text) ``` ## TODO - [ ] 即将支持PaddleOCR多应用部署;