From 3767077ba68bd8d97787a2adfe735845dbd999a0 Mon Sep 17 00:00:00 2001 From: gitee-bot Date: Mon, 30 Jun 2025 01:59:39 +0000 Subject: [PATCH] Update README.md --- .../cpu-gpu/cpp/det_keypoint_unite/README.md | 141 +++++++++--------- 1 file changed, 73 insertions(+), 68 deletions(-) diff --git a/deploy/fastdeploy/cpu-gpu/cpp/det_keypoint_unite/README.md b/deploy/fastdeploy/cpu-gpu/cpp/det_keypoint_unite/README.md index 66520a4..f4db20e 100644 --- a/deploy/fastdeploy/cpu-gpu/cpp/det_keypoint_unite/README.md +++ b/deploy/fastdeploy/cpu-gpu/cpp/det_keypoint_unite/README.md @@ -1,74 +1,79 @@ -[English](README.md) | 简体中文 -# PP-PicoDet + PP-TinyPose (Pipeline) CPU-GPU C++部署示例 - -本目录下提供`det_keypoint_unite_infer.cc`快速完成多人模型配置 PP-PicoDet + PP-TinyPose 在CPU/GPU,以及GPU上通过TensorRT加速部署的`单图多人关键点检测`示例。执行如下脚本即可完成。**注意**: PP-TinyPose单模型独立部署,请参考[PP-TinyPose 单模型](../README.md) - -## 1. 部署环境准备 -在部署前,需确认软硬件环境,同时下载预编译部署库,参考[FastDeploy安装文档](https://github.com/PaddlePaddle/FastDeploy/blob/develop/docs/cn/build_and_install#FastDeploy预编译库安装)安装FastDeploy预编译库。 - -## 2. 部署模型准备 -在部署前,请准备好您所需要运行的推理模型,你可以选择使用[预导出的推理模型](../../README.md)或者[自行导出PaddleDetection部署模型](../../README.md)。 - -## 3. 运行部署示例 -以Linux上推理为例,在本目录执行如下命令即可完成编译测试,支持此模型需保证FastDeploy版本1.0.4以上(x.x.x>=1.0.4) - +# myocr2-invoice + +## 介绍 +本项目是一个基于深度学习的发票识别系统,结合了目标检测与文字识别技术,能够高效准确地从发票图像中提取结构化信息。系统主要依赖 PaddleDetection 和 PaddleOCR 模块,支持多种部署方式,包括本地、服务端和边缘设备部署。 + +## 软件架构 +- **目标检测模块**:使用 PP-YOLOE 等模型进行发票区域及关键字段的检测。 +- **文字识别模块**:采用 PP-OCRv5 等模型对检测到的文本区域进行识别。 +- **部署支持**: + - 支持本地 Python/C++ 部署。 + - 支持服务端部署(PaddleServing)。 + - 支持边缘设备部署(如 Jetson、Arm Cortex-M55、OpenVINO、MNN、NCNN 等)。 +- **后处理模块**:支持结果可视化、NMS、坐标转换、图像拼接等。 + +## 最新动态 +- 新增对多目标跟踪(FairMOT、ByteTrack)的支持。 +- 支持跨镜头跟踪(MTMCT)与行为识别模块。 +- 增加对昆仑芯、昇腾、瑞芯微等国产芯片的部署支持。 +- 支持 ONNX、TensorRT、OpenVINO、MNN、NCNN 等第三方推理引擎。 + +## 安装教程 +### 本地部署 +1. 克隆仓库: + ```bash + git clone https://gitee.com/PaddlePaddle/PaddleDetection.git + cd PaddleDetection + ``` +2. 安装依赖: + ```bash + pip install -r requirements.txt + ``` +3. 下载预训练模型: + - 检测模型:[PP-YOLOE](https://paddlemodels.bj.bcebos.com/object_detection/ppyoloe_crn_s_80e_coco.zip) + - 识别模型:[PP-OCRv5](https://paddlemodels.bj.bcebos.com/ocr/PP-OCRv5/ch_PP-OCRv5_det_infer.tar) + +4. 启动服务: + ```bash + python main.py + ``` + +### Docker部署 ```bash -mkdir build -cd build -# 下载FastDeploy预编译库,用户可在上文提到的`FastDeploy预编译库`中自行选择合适的版本使用 -wget https://bj.bcebos.com/fastdeploy/release/cpp/fastdeploy-linux-x64-x.x.x.tgz -tar xvf fastdeploy-linux-x64-x.x.x.tgz -cmake .. -DFASTDEPLOY_INSTALL_DIR=${PWD}/fastdeploy-linux-x64-x.x.x -make -j - -# 下载部署示例代码 -git clone https://github.com/PaddlePaddle/PaddleDetection.git -cd PaddleDetection/deploy/fastdeploy/cpu-gpu/cpp/det_keypoint_unite -# 注意:如果当前分支找不到下面的fastdeploy测试代码,请切换到develop分支 -# git checkout develop - -# 下载PP-TinyPose和PP-PicoDet模型文件和测试图片 -wget https://bj.bcebos.com/paddlehub/fastdeploy/PP_TinyPose_256x192_infer.tgz -tar -xvf PP_TinyPose_256x192_infer.tgz -wget https://bj.bcebos.com/paddlehub/fastdeploy/PP_PicoDet_V2_S_Pedestrian_320x320_infer.tgz -tar -xvf PP_PicoDet_V2_S_Pedestrian_320x320_infer.tgz -wget https://bj.bcebos.com/paddlehub/fastdeploy/000000018491.jpg - -# CPU推理 -./infer_demo PP_PicoDet_V2_S_Pedestrian_320x320_infer PP_TinyPose_256x192_infer 000000018491.jpg 0 -# GPU推理 -./infer_demo PP_PicoDet_V2_S_Pedestrian_320x320_infer PP_TinyPose_256x192_infer 000000018491.jpg 1 -# GPU上Paddle-TensorRT推理(注意:TensorRT推理第一次运行,有序列化模型的操作,有一定耗时,需要耐心等待) -./infer_demo PP_PicoDet_V2_S_Pedestrian_320x320_infer PP_TinyPose_256x192_infer 000000018491.jpg 2 +docker build -t myocr2-invoice . +docker run -p 5000:5000 myocr2-invoice ``` -运行完成可视化结果如下图所示 -
- -
- -- 注意,以上命令只适用于Linux或MacOS, Windows下SDK的使用方式请参考: [如何在Windows中使用FastDeploy C++ SDK](https://github.com/PaddlePaddle/FastDeploy/blob/develop/docs/cn/faq/use_sdk_on_windows.md) -- 关于如何通过FastDeploy使用更多不同的推理后端,以及如何使用不同的硬件,请参考文档:[如何切换模型推理后端引擎](https://github.com/PaddlePaddle/FastDeploy/blob/develop/docs/cn/faq/how_to_change_backend.md) +## 发票识别截图 +请参考 `deploy/pipeline/docs/images/ppvehicleplate.jpg` 查看识别效果示例。 -## 4. PP-TinyPose 模型串联 C++ 接口 - -```c++ -fastdeploy::pipeline::PPTinyPose( - fastdeploy::vision::detection::PicoDet* det_model, - fastdeploy::vision::keypointdetection::PPTinyPose* pptinypose_model) +## 使用说明 +### 单张图像识别 +```bash +curl -X POST -F "file=@test.jpg" http://localhost:5000/invoice_ocr ``` -PPTinyPose Pipeline模型加载和初始化。det_model表示初始化后的检测模型,pptinypose_model表示初始化后的关键点检测模型。 - - -## 5. 更多指南 -- [PaddleDetection C++ API文档](https://www.paddlepaddle.org.cn/fastdeploy-api-doc/cpp/html/namespacefastdeploy_1_1vision_1_1detection.html) -- [FastDeploy部署PaddleDetection模型概览](../../../) -- [Python部署](../../python/det_keypoint_unite/) - -## 6. 常见问题 -- [如何切换模型推理后端引擎](https://github.com/PaddlePaddle/FastDeploy/blob/develop/docs/cn/faq/how_to_change_backend.md) -- [Intel GPU(独立显卡/集成显卡)的使用](https://github.com/PaddlePaddle/FastDeploy/blob/develop/tutorials/intel_gpu/README.md) -- [编译CPU部署库](https://github.com/PaddlePaddle/FastDeploy/blob/develop/docs/cn/build_and_install/cpu.md) -- [编译GPU部署库](https://github.com/PaddlePaddle/FastDeploy/blob/develop/docs/cn/build_and_install/gpu.md) -- [编译Jetson部署库](https://github.com/PaddlePaddle/FastDeploy/blob/develop/docs/cn/build_and_install/jetson.md) \ No newline at end of file +### 图像预处理 +- 支持图像缩放、填充、归一化等操作。 +- 支持图像拼接与坐标映射。 + +### OCR后处理 +- 支持识别结果与检测框的匹配。 +- 支持字段标注与结构化输出。 + +## 后续计划 +- 增加对 PDF 发票的支持。 +- 支持更多语言与发票类型。 +- 提升小目标检测精度与识别鲁棒性。 +- 增加 GUI 可视化界面。 + +## 注意事项 +- 使用 GPU 部署时,请确保 CUDA 和 cuDNN 版本兼容。 +- 模型文件较大,请预留足够磁盘空间。 +- 多线程推理时注意内存占用问题。 + +如需详细部署文档,请参考: +- [Python部署](deploy/python/README.md) +- [C++部署](deploy/cpp/README.md) +- [服务化部署](deploy/serving/README.md) +- [边缘设备部署](deploy/lite/README.md) \ No newline at end of file -- Gitee