# ocrClassify **Repository Path**: sevenlusir/ocr-classify ## Basic Information - **Project Name**: ocrClassify - **Description**: 这是一个基于PyQt5和paddleocr开发的OCR(光学字符识别)工具,集成了多种OCR相关功能,包括单张图片识别、标题提取分类、内容关键字分类、关键信息提取等。该工具提供了直观的图形用户界面,方便用户进行OCR相关操作。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-10-13 - **Last Updated**: 2025-02-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: ocr识别, PaddleOCR, 图片信息提取 ## README # OCR图片信息提取工具(针对表格类图片) 项目地址:https://gitee.com/sevenlusir/ocr-classify ## 联系作者 ## 项目概述 这是一个基于PyQt5和paddleocr开发,基于fastdeploy部署的推理引擎,采用ppocrV3模型的OCR工具,提供了多种图像处理和文本提取功能。项目起源为了从大量的图片文档提取出标题和内容,并进行分类。用fastdeploy部署推理引擎,可以方便的切换不同的推理后端,如paddle、trt、openvino等,方便部署到不同的硬件上和扩展其他模型。支持windows10以上的系统。 ![alt text](https://gitee.com/sevenlusir/ocr-classify/raw/master/images/1.jpg) ## 主要功能 ### 本工具所有的工具目的是作为生产快速对图片指定信息提取。即图片信息提取工具。 *** ### 1. 单张图片识别:对单个图片进行OCR识别,并可视化结果。 ![alt text](https://gitee.com/sevenlusir/ocr-classify/raw/master/images/2.jpg) #### ==>可以通过浏览、屏幕截图、拖拽三种方式导入图片 #### ==>显示可视化结果。可以清晰看到识别结果的位置。方便对图片信息提取作为参考 *** ### 2. 标题提取分类:批量处理图片,提取标题关键词并进行分类。 ![alt text](https://gitee.com/sevenlusir/ocr-classify/raw/master/images/3.jpg) #### ==>裁剪开始位置和结束位置,指的比例。比如裁剪开始位置是0.1,结束位置是0.9,则垂直方向裁剪图片的10%到90%。 #### ==>基础宽度。指裁剪后图片的宽度。 #### ==>裁剪的目的是为了加快识别速度。 #### ==>标题识别的关键字,是对区域内进行识别内容进行对比,吻合度80%以上,字符少于两个则认为是符合条件的元素。 #### ==>输出csv文件和分类图片。 *** ### 3. 内容提取分类:批量处理图片,提取内容关键词并进行分类。 ![alt text](https://gitee.com/sevenlusir/ocr-classify/raw/master/images/4.jpg) #### ==>裁剪开始位置和结束位置,指的比例。比如裁剪开始位置是0.1,结束位置是0.9,则垂直方向裁剪图片的10%到90%。 #### ==>基础宽度。指裁剪后图片的宽度。 #### ==>裁剪的目的是为了加快识别速度。 #### ==>内容识别的关键字,是对区域内进行识别内容进行对比,包含关键字的所有元素和包含的内容。 #### ==>输出csv文件和分类图片。 *** ### 4. 图片信息提取:从图片中提取特定的关键信息。 ![alt text](https://gitee.com/sevenlusir/ocr-classify/raw/master/images/5.jpg) #### 裁剪开始位置和结束位置,指的比例。比如裁剪开始位置是0.1,结束位置是0.9,则垂直方向裁剪图片的10%到90%。 #### ==>基础宽度。指裁剪后图片的宽度。 #### ==>裁剪的目的是为了加快识别速度。 #### ==>精确查找和模糊查找。要参考的目标元素,在单张图片识别中的可视化结果检测框中的内容,一字不差就是精确查找。要参考的目标元素,在单张图片识别中的可视化结果检测框中的内容,包含关键字就是模糊查找。 #### ==>关键信息参数:参照单张图片识别可视化的检测框,x_num是基于目标元素的宽度为一个单位,up_num和do_num是基于目标元素的高度为一个单位。绘制出一个查找框。查找区域内所有元素内容。 #### ==>输出csv文件。 #### ==>如图:关键信息:00127,x_num=3,up_num=1,do_num=2。结果:塘角坡黎桂能 ![alt text](https://gitee.com/sevenlusir/ocr-classify/raw/master/images/9.jpg) *** ### 5. 模型参数设置:允许用户自定义OCR模型的参数。 ![alt text](https://gitee.com/sevenlusir/ocr-classify/raw/master/images/6.jpg) #### ==>模型路径:模型文件夹路径。 #### ==>设备:cpu、gpu、kunlunxin。 #### ==>后端:paddle、trt、openvino。 #### ==>显卡ID:0、1、2、3。 #### ==>CPU核心数:根据自己电脑配置填写。 #### ==>批次图片数:根据自己电脑配置填写。默认即可 #### ==>识别批量大小:根据自己电脑配置填写。默认即可 #### ==>竖排文字检测:开启后,可以检测竖排文字。但是会增加推理时间。 ## 安装说明 1. 确保您的系统已安装Python 3.8.20或更高版本。 2. 克隆或下载此项目到本地。安装git。 ``` git clone https://gitee.com/sevenlusir/ocr-classify.git ``` 3. 安装所需的依赖包: ``` fastdeploy部署:cpu: pip install fastdeploy-python -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html #fastdeploy部署:gpu: pip install fastdeploy-gpu-python -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html #GPU部署环境 # 安装conda # 创建虚拟环境 conda create -n vnev_name python=3.8 #环境要求:CUDA >= 11.2 cuDNN >= 8. conda config --add channels conda-forge && conda install cudatoolkit=11.2 cudnn=8.2 pip install PyQt5 pip install pillow pip install levenshtein ``` 4. 下载所需的OCR模型文件,并将它们放置在`models`文件夹中。 ![alt text](https://gitee.com/sevenlusir/ocr-classify/raw/master/images/7.jpg) ## 使用方法 1. 运行主程序: ``` python main.py ``` 2. 在图形界面中选择所需的功能: - 单张图片识别:选择一张图片进行OCR识别。 - 标题提取分类:选择输入文件夹、输出文件夹,设置关键词和裁剪参数。 - 内容提取分类:选择输入文件夹、输出文件夹,设置关键词和裁剪参数。 - 图片信息提取:选择输入文件夹、输出文件夹,设置关键信息参数。 3. 点击"运行"按钮开始处理。 4. 处理完成后,结果将保存在指定的输出文件夹中。 ## 配置文件 项目使用`config.yaml`文件存储配置信息。您可以直接编辑此文件来修改默认设置,或通过图形界面进行更改。 ## 注意事项 - 确保有足够的磁盘空间用于存储处理结果。 - 大量图片处理可能需要较长时间,请耐心等待。 - 如遇到问题,请检查控制台输出的错误信息。 ## 交流和下载 欢迎入群交流: ![alt text](https://gitee.com/sevenlusir/ocr-classify/raw/master/images/qq.jpg) windows10下载地址 ![alt text](https://gitee.com/sevenlusir/ocr-classify/raw/master/images/8.jpg) 欢迎提交问题报告和改进建议。 ## 许可证 本项目采用 MIT 许可证。 MIT License Copyright (c) [year] [fullname] Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.