基于 PaddleOCR v5/v6 的winform OCR 识别系统演示程序项目简介这是一个基于 C# Windows Forms 的桌面端 OCR光学字符识别应用程序通过集成百度 PaddleOCR v5/v6 系列的onnx模型利用 OpenVINO 推理引擎在本地实现高效的文字检测与识别。用户可通过图形界面选择图片一键完成文字识别并在界面上直观查看识别结果与标注框。算法原理整体 OCR 流水线本项目采用经典的三阶段 OCR 流水线架构输入图片 → 文字检测Det → 方向分类Cls可选 → 文字识别Rec → 输出结果1. 文字检测Detection使用DBDifferentiable Binarization算法进行文字区域检测将输入图片缩放到指定尺寸limit_side_len 960保持长宽比通过轻量级 CNN 骨干网络如 MobileNetV3 / ResNet提取多尺度特征使用 FPNFeature Pyramid Network融合多尺度特征图输出概率图Probability Map通过阈值化det_db_thresh 0.3生成二值图对二值图进行轮廓检测使用 Vatti 裁剪算法进行膨胀det_db_unclip_ratio 1.6得到最终文字区域多边形框过滤置信度低于det_db_box_thresh 0.6的框2. 方向分类Classification可选仅 PPOCRv5 Mobile 模型启用此阶段使用轻量级分类模型判断文字区域是否需要旋转 180°分类阈值cls_thresh 0.93. 文字识别Recognition使用CRNN CTC / Attention架构进行文字识别将检测到的文字区域裁剪并缩放到统一高度rec_img_h 48通过 CNN 提取视觉特征序列使用 RNNBiLSTM编码序列上下文通过 CTCConnectionist Temporal Classification解码输出文字支持批量推理rec_batch_num 4提升效率推理引擎项目通过C封装库C#调用Intel OpenVINO推理引擎支持ONNX 模型格式直接加载CPU 推理默认多线程推理predictor_num 4支持的模型模型名称检测模型识别模型方向分类说明PPOCRv5 MobilePP-OCRv5_mobile_detPP-OCRv5_mobile_rec支持轻量级适合移动端/嵌入式PPOCRv5 ServerPP-OCRv5_server_detPP-OCRv5_server_rec不支持高精度适合服务器部署PPOCRv6 TinyPP-OCRv6_tiny_detPP-OCRv6_tiny_rec不支持最小体积速度最快PPOCRv6 SmallPP-OCRv6_small_detPP-OCRv6_small_rec不支持平衡精度与速度推荐PPOCRv6 MediumPP-OCRv6_medium_detPP-OCRv6_medium_rec不支持较高精度环境要求项目要求操作系统Windows 10/11 x64开发工具Visual Studio 2019 及以上.NET 版本.NET Framework 4.8平台架构x64必须C# 语法版本C# 7.3推理引擎Intel OpenVINO已内置 DLL依赖库opencv_world500.dllOpenCV 5.0 运行时库图像处理Newtonsoft.Json 13.0.1JSON 序列化/反序列化Intel OpenVINO 运行时 DLLopenvino_c.dll、openvino_intel_cpu_plugin.dll 等安装步骤1. 克隆/下载项目gitclone firc-projects from githubcdFIRC2. 安装 Visual Studio确保已安装 Visual Studio 2019 或更高版本并勾选以下工作负载.NET 桌面开发3. 打开项目双击FIRC.sln文件使用 Visual Studio 打开解决方案。4. 配置构建平台在 Visual Studio 顶部工具栏中将解决方案平台切换为x64将解决方案配置切换为Debug或Release(需要将Debug文件全部复制到Release文件夹)5. 确认依赖文件确保bin\x64\Debug\目录下包含以下关键文件opencv_world500.dllopenvino_c.dll及其他 OpenVINO 运行时 DLLNewtonsoft.Json.dllinference/文件夹包含所有 ONNX 模型和字典文件运行步骤1. 编译运行在 Visual Studio 中按F5或点击启动按钮编译运行项目。2. 选择模型在主界面的“模型选择”分组框中选择要使用的 OCR 模型ppocrv5 mobile轻量级移动端模型支持方向分类ppocrv5 server高精度服务器模型ppocrv6 tiny最小体积 v6 模型ppocrv6 small平衡型 v6 模型默认选中ppocrv6 medium中等精度 v6 模型3. 加载模型点击“加载模型”按钮等待状态栏显示模型加载成功信息。首次加载可能需要数秒。4. 上传图片点击“上传图片”按钮从文件对话框中选择待识别的图片文件。支持的格式BMP、JPG/JPEG、PNG、TIFF/TIF5. 执行识别选择图片后会自动触发识别也可手动点击“开始推理”按钮识别完成后左侧图片区域会显示带有红色文字检测框的标注图右侧文本区域显示识别结果及耗时6. 释放模型点击“加载模型”按钮可重新初始化先释放再加载关闭窗口时会自动释放模型资源注意事项必须使用 x64 平台所有依赖 DLLOpenVINO、OpenCV均为 64 位不支持 x86 平台构建。模型文件完整性bin\x64\Debug\inference\目录下的 ONNX 模型文件和字典文件必须完整缺失任一将导致模型加载失败。工作目录程序会从可执行文件所在目录查找inference/文件夹因此请确保从正确的输出目录运行。内存使用Server 模型和 Medium 模型体积较大内存占用相应更高。如内存不足建议使用 Tiny 或 Small 模型。图片格式程序内部将图片转换为 24 位 BGR 格式送入推理引擎支持常见图片格式建议使用清晰、无过度压缩的图片以获得最佳识别效果。CPU 推理性能默认使用 CPU 推理对于大尺寸图片推理时间可能较长。可通过调整limit_side_len、rec_batch_num、predictor_num等参数优化性能。模型切换切换模型后需要重新点击“加载模型”按钮使新模型生效。PPOCRv5 Mobile 方向分类仅 PPOCRv5 Mobile 模型启用了方向分类Cls功能其他模型不启用。如文档存在倒置/旋转文字建议使用 PPOCRv5 Mobile 模型。文件夹结构FIRC/ ├── .vs/ # Visual Studio 项目配置自动生成 ├── Properties/ # 项目属性文件 │ ├── AssemblyInfo.cs # 程序集信息版本号、版权等 │ ├── Resources.Designer.cs # 资源文件设计器代码 │ ├── Resources.resx # 资源文件 │ ├── Settings.Designer.cs # 设置文件设计器代码 │ └── Settings.settings # 应用程序设置 ├── bin/ │ └── x64/ │ └── Debug/ # 编译输出目录x64 Debug │ ├── inference/ # OCR 模型文件目录 │ ├── FIRC.exe # 主程序可执行文件 │ ├── FIRC.exe.config # 程序配置文件 │ ├── opencv_world500.dll # OpenCV 运行时库 │ ├── openvino_c.dll # OpenVINO C API 库 │ ├── openvino_intel_cpu_plugin.dll # OpenVINO CPU 推理插件 │ ├── openvino_intel_gpu_plugin.dll # OpenVINO GPU 推理插件 │ ├── openvino_intel_npu_plugin.dll # OpenVINO NPU 推理插件 │ ├── Newtonsoft.Json.dll # JSON 处理库 │ ├── tbb12.dll # Intel TBB 多线程库 │ └── ... (其他 OpenVINO/TBB 运行时 DLL) ├── imgs/ # 示例测试图片目录 │ ├── 00006737.jpg # 示例图片 │ ├── 00009282.jpg │ ├── 00015504.jpg │ └── ... (更多示例图片) ├── App.config # .NET 应用程序配置文件 ├── FIRC.csproj # C# 项目文件 ├── FIRC.sln # Visual Studio 解决方案文件 ├── Form1.cs # 主窗体业务逻辑 ├── Form1.Designer.cs # 主窗体界面设计代码 ├── Form1.resx # 主窗体资源文件 ├── OCRResult.cs # OCR 识别结果数据模型 └── Program.cs # 程序入口点许可证本项目仅供学习参考使用。
基于C#winform部署ppocrv5和ppocrv6的onnx模型进行OCR文件检测识别
基于 PaddleOCR v5/v6 的winform OCR 识别系统演示程序项目简介这是一个基于 C# Windows Forms 的桌面端 OCR光学字符识别应用程序通过集成百度 PaddleOCR v5/v6 系列的onnx模型利用 OpenVINO 推理引擎在本地实现高效的文字检测与识别。用户可通过图形界面选择图片一键完成文字识别并在界面上直观查看识别结果与标注框。算法原理整体 OCR 流水线本项目采用经典的三阶段 OCR 流水线架构输入图片 → 文字检测Det → 方向分类Cls可选 → 文字识别Rec → 输出结果1. 文字检测Detection使用DBDifferentiable Binarization算法进行文字区域检测将输入图片缩放到指定尺寸limit_side_len 960保持长宽比通过轻量级 CNN 骨干网络如 MobileNetV3 / ResNet提取多尺度特征使用 FPNFeature Pyramid Network融合多尺度特征图输出概率图Probability Map通过阈值化det_db_thresh 0.3生成二值图对二值图进行轮廓检测使用 Vatti 裁剪算法进行膨胀det_db_unclip_ratio 1.6得到最终文字区域多边形框过滤置信度低于det_db_box_thresh 0.6的框2. 方向分类Classification可选仅 PPOCRv5 Mobile 模型启用此阶段使用轻量级分类模型判断文字区域是否需要旋转 180°分类阈值cls_thresh 0.93. 文字识别Recognition使用CRNN CTC / Attention架构进行文字识别将检测到的文字区域裁剪并缩放到统一高度rec_img_h 48通过 CNN 提取视觉特征序列使用 RNNBiLSTM编码序列上下文通过 CTCConnectionist Temporal Classification解码输出文字支持批量推理rec_batch_num 4提升效率推理引擎项目通过C封装库C#调用Intel OpenVINO推理引擎支持ONNX 模型格式直接加载CPU 推理默认多线程推理predictor_num 4支持的模型模型名称检测模型识别模型方向分类说明PPOCRv5 MobilePP-OCRv5_mobile_detPP-OCRv5_mobile_rec支持轻量级适合移动端/嵌入式PPOCRv5 ServerPP-OCRv5_server_detPP-OCRv5_server_rec不支持高精度适合服务器部署PPOCRv6 TinyPP-OCRv6_tiny_detPP-OCRv6_tiny_rec不支持最小体积速度最快PPOCRv6 SmallPP-OCRv6_small_detPP-OCRv6_small_rec不支持平衡精度与速度推荐PPOCRv6 MediumPP-OCRv6_medium_detPP-OCRv6_medium_rec不支持较高精度环境要求项目要求操作系统Windows 10/11 x64开发工具Visual Studio 2019 及以上.NET 版本.NET Framework 4.8平台架构x64必须C# 语法版本C# 7.3推理引擎Intel OpenVINO已内置 DLL依赖库opencv_world500.dllOpenCV 5.0 运行时库图像处理Newtonsoft.Json 13.0.1JSON 序列化/反序列化Intel OpenVINO 运行时 DLLopenvino_c.dll、openvino_intel_cpu_plugin.dll 等安装步骤1. 克隆/下载项目gitclone firc-projects from githubcdFIRC2. 安装 Visual Studio确保已安装 Visual Studio 2019 或更高版本并勾选以下工作负载.NET 桌面开发3. 打开项目双击FIRC.sln文件使用 Visual Studio 打开解决方案。4. 配置构建平台在 Visual Studio 顶部工具栏中将解决方案平台切换为x64将解决方案配置切换为Debug或Release(需要将Debug文件全部复制到Release文件夹)5. 确认依赖文件确保bin\x64\Debug\目录下包含以下关键文件opencv_world500.dllopenvino_c.dll及其他 OpenVINO 运行时 DLLNewtonsoft.Json.dllinference/文件夹包含所有 ONNX 模型和字典文件运行步骤1. 编译运行在 Visual Studio 中按F5或点击启动按钮编译运行项目。2. 选择模型在主界面的“模型选择”分组框中选择要使用的 OCR 模型ppocrv5 mobile轻量级移动端模型支持方向分类ppocrv5 server高精度服务器模型ppocrv6 tiny最小体积 v6 模型ppocrv6 small平衡型 v6 模型默认选中ppocrv6 medium中等精度 v6 模型3. 加载模型点击“加载模型”按钮等待状态栏显示模型加载成功信息。首次加载可能需要数秒。4. 上传图片点击“上传图片”按钮从文件对话框中选择待识别的图片文件。支持的格式BMP、JPG/JPEG、PNG、TIFF/TIF5. 执行识别选择图片后会自动触发识别也可手动点击“开始推理”按钮识别完成后左侧图片区域会显示带有红色文字检测框的标注图右侧文本区域显示识别结果及耗时6. 释放模型点击“加载模型”按钮可重新初始化先释放再加载关闭窗口时会自动释放模型资源注意事项必须使用 x64 平台所有依赖 DLLOpenVINO、OpenCV均为 64 位不支持 x86 平台构建。模型文件完整性bin\x64\Debug\inference\目录下的 ONNX 模型文件和字典文件必须完整缺失任一将导致模型加载失败。工作目录程序会从可执行文件所在目录查找inference/文件夹因此请确保从正确的输出目录运行。内存使用Server 模型和 Medium 模型体积较大内存占用相应更高。如内存不足建议使用 Tiny 或 Small 模型。图片格式程序内部将图片转换为 24 位 BGR 格式送入推理引擎支持常见图片格式建议使用清晰、无过度压缩的图片以获得最佳识别效果。CPU 推理性能默认使用 CPU 推理对于大尺寸图片推理时间可能较长。可通过调整limit_side_len、rec_batch_num、predictor_num等参数优化性能。模型切换切换模型后需要重新点击“加载模型”按钮使新模型生效。PPOCRv5 Mobile 方向分类仅 PPOCRv5 Mobile 模型启用了方向分类Cls功能其他模型不启用。如文档存在倒置/旋转文字建议使用 PPOCRv5 Mobile 模型。文件夹结构FIRC/ ├── .vs/ # Visual Studio 项目配置自动生成 ├── Properties/ # 项目属性文件 │ ├── AssemblyInfo.cs # 程序集信息版本号、版权等 │ ├── Resources.Designer.cs # 资源文件设计器代码 │ ├── Resources.resx # 资源文件 │ ├── Settings.Designer.cs # 设置文件设计器代码 │ └── Settings.settings # 应用程序设置 ├── bin/ │ └── x64/ │ └── Debug/ # 编译输出目录x64 Debug │ ├── inference/ # OCR 模型文件目录 │ ├── FIRC.exe # 主程序可执行文件 │ ├── FIRC.exe.config # 程序配置文件 │ ├── opencv_world500.dll # OpenCV 运行时库 │ ├── openvino_c.dll # OpenVINO C API 库 │ ├── openvino_intel_cpu_plugin.dll # OpenVINO CPU 推理插件 │ ├── openvino_intel_gpu_plugin.dll # OpenVINO GPU 推理插件 │ ├── openvino_intel_npu_plugin.dll # OpenVINO NPU 推理插件 │ ├── Newtonsoft.Json.dll # JSON 处理库 │ ├── tbb12.dll # Intel TBB 多线程库 │ └── ... (其他 OpenVINO/TBB 运行时 DLL) ├── imgs/ # 示例测试图片目录 │ ├── 00006737.jpg # 示例图片 │ ├── 00009282.jpg │ ├── 00015504.jpg │ └── ... (更多示例图片) ├── App.config # .NET 应用程序配置文件 ├── FIRC.csproj # C# 项目文件 ├── FIRC.sln # Visual Studio 解决方案文件 ├── Form1.cs # 主窗体业务逻辑 ├── Form1.Designer.cs # 主窗体界面设计代码 ├── Form1.resx # 主窗体资源文件 ├── OCRResult.cs # OCR 识别结果数据模型 └── Program.cs # 程序入口点许可证本项目仅供学习参考使用。