项目简介
本项目是基于Python和Faster R-CNN框架的流程图识别系统。其目标是从流程图图像中自动检测并识别基本图形、连接线和文字信息,将这些信息组合成流程图后以JSON格式输出。此外,项目还提供自动化工具用于构建训练数据集,可构建指定大小的数据集来训练Faster R-CNN模型。
项目的主要特性和功能
- 流程图检测:借助Faster R-CNN模型自动检测流程图里的基本图形、连接线和文字信息。
- 流程图重组:依据检测出的信息,用节点和边表示流程图,最终输出为JSON格式。
- 模型训练:提供Faster R-CNN训练数据自动化构建工具,能构建指定大小的训练数据集用于模型训练。
- 多格式支持:支持多种流程图图形和连接线的识别,兼容不同的流程图样式。
- 自动化工具:提供自动化流程图检测工具,方便用户快速进行流程图识别。
安装使用步骤
1. 创建虚拟环境
推荐使用Anaconda创建虚拟环境:
bash
conda create -n flowchart_env python=3.8
conda activate flowchart_env
2. 安装依赖库
- 安装PyTorch:
bash conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
- 安装PaddlePaddle:
bash conda install paddlepaddle-gpu==2.6.1 cudatoolkit=11.7 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge
- 安装PaddleOCR:
bash pip install "paddleocr>=2.0.1"
- 安装其他依赖:
bash pip install -r requirements.txt
3. 下载模型
- 下载Faster R-CNN backbone模型:
bash cd FasterRCNN/backbone wget https://download.pytorch.org/models/fasterrcnn_resnet50_fpn_coco-258fb6c6.pth mv fasterrcnn_resnet50_fpn_coco-258fb6c6.pth fasterrcnn_resnet50_fpn_coco.pth wget https://download.pytorch.org/models/resnet50-19c8e357.pth mv resnet50-19c8e357.pth resnet50.pth
- 下载训练后的流程图检测模型参数:
bash cd FasterRCNN/save_weights wget https://drive.google.com/file/d/17mKO2BUrEiIL32BBhx6M7kVGCO_f7CO1/view?usp=drive_link tar xf flowchart-recognition-based-fasterrcnn.tar.gz
- 下载PaddleOCR模型:
bash mkdir models && cd models mkdir paddleocr && cd paddleocr wget https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_det_infer.tar && tar xf ch_PP-OCRv4_det_infer.tar wget https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_rec_infer.tar && tar xf ch_PP-OCRv4_rec_infer.tar
4. 运行项目
- 将需要识别的图片存放到
images/folder_name
中。 - 运行
main.py
文件:bash python main.py
- 识别结果将保存到
results/folder_name
目录中,JSON格式的结果保存在file_name.json
中。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】