当前位置: 首页 > news >正文

Visual Studio中部署PaddleOCRv5 (借助ncnn框架)

PaddleOCRv5_ncnn

PaddleOCRv5 在Visual Studio中进行图片OCR检测(ncnn框架+open-mobile实现),尝试对nihui的ncnn-android-ppocrv5检测算法的剥离与移植。

本项目Github链接如下:PaddleOCRv5_ncnn

写在前面

本仓库代码是基于nihui的ncnn-android-ppocrv5项目代码而修改的,原仓库代码是部署在Android端的,对于想在其他环境部署来说,需要进行代码剥离和移植。本仓库的代码即是执行该次尝试,尝试在Windows短的Visual Studio中部署该算法。

环境配置

本仓库代码的运行环境如下:

  • Visual Studio 2019

  • ncnn-20250503-windows-vs2019

  • opencv-mobile-3.4.20-windows-vs2019

注:并不需要和本仓库代码的配置环境保持一致,可以根据Visual Studio的版本,下载对应的ncnn和opencv-mobile的版本即可。

推理设置

(1)先在Visual Studio新建一个空白工程,将本仓库代码放到该工程中。

在这里插入图片描述

(2)在工程中载入推理需要依赖的库。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
需要添加的依赖项如下:

ncnn.lib
GenericCodeGen.lib
glslang.lib
glslang-default-resource-limits.lib
MachineIndependent.lib
OSDependent.lib
SPIRV.lib
opencv_core3420.lib
opencv_features2d3420.lib
opencv_highgui3420.lib
opencv_imgproc3420.lib
opencv_photo3420.lib
opencv_video3420.lib

在这里插入图片描述

(3)选择开始执行,应该在工程的Release的目录下可以成功地生成.exe文件。将weights文件夹和测试图像复制到Release下的路径。
在这里插入图片描述

(4)执行推理。

在这里插入图片描述

推理图片的指令如下:

PaddleOCRv5.exe single japan.png     // 推理图像
PaddleOCRv5.exe folder images        // 推理文件夹(多张图像)  

输出结果会保存在output文件夹下。

推理结果

推理结果如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

写在后面

  • 由于原本的opencv不支持中文和其他语言显示,因此使用的是nihui发布的open-mobile,该库可以支持简单的opencv操作,同时支持中文日文等的显示。但是不知道为什么,我无法在windows端成功地调用电脑的摄像头,也就没有办法进行实时推理的测试。
  • 有尝试在ubuntu平台移植算法,由于opencv-mobile库的原因,无法成功编译库,因此也没有办法完整正常推理。
  • 本仓库代码对nihui原始的仓库做了部分修改,选择通过读取.txt字符文件的方式读取字符,而源代码中是将字符一整个写在.h文件中,我觉得会增加编译负担,就进行了修改。

创作不易,如果觉得这个仓库还可以的话,麻烦给一个star,这就是对我最大的鼓励。

Reference

  • ncnn-android-ppocrv5
  • QT-YOLO-OCR-CPP
http://www.dtcms.com/a/293640.html

相关文章:

  • 如何Visual Studio 的配置从 Qt-Debug 切换到 x64-Debug
  • ESP32的ADF详解:5. Streams的API
  • 聊聊 Flutter 在 iOS 真机 Debug 运行出现 Timed out *** to update 的问题
  • GEMINUS 和 Move to Understand a 3D Scene
  • Redis的key过期策略
  • 4.3 激活函数的目的
  • LLM 幻觉一般是由于什么产生的,在模型什么部位产生
  • 计算机组成原理——数据的表示和运算2
  • 手机开启16k Page Size
  • J2EE模式---服务定位器模式
  • JavaEE Spring框架的概述与对比无框架下的优势
  • 关于原车一键启动升级手机控车的核心信息及注意事项
  • 第五章第一节 EXTI 外部中断
  • Adobe全系列下载 官方原版补丁
  • 【Spark征服之路-3.8-Spark-SQL核心编程(七)】
  • 2025獬豸杯WP
  • 用Phi-3 Mini微调实现英文到尤达语翻译
  • 软硬件协同仿真和验证的标准接口协议SCE-MI简介
  • 避坑指南:Windows 11中 Docker 数据卷的存放位置
  • vue+element-ui实现主子表
  • Vue3 面试题及详细答案120道(61-75 )
  • 力扣146:LRU缓存
  • 使用阿里云 ESA 边缘函数转发代理 docker registry
  • 利用aruco标定板标定相机
  • 电商通用话术模板搭建指南:高效转化,服务升级
  • macOS配置maven及报错处理:zsh: permission denied: mvn
  • Transformer输入部分实现
  • 学习 Flutter(五):玩安卓项目实战 - 下
  • springcloud环境和工程搭建
  • 数组算法之【数组中第K个最大元素】