Windows下PaddleOCR用NCNN部署

1.所用到的ncnn格式的模型文件

 要问这些模型哪里来的,请看下面提示信息:

 2.查看字典函数读取方法

char* readKeysFromAssets()
{std::ifstream ifs("./model/paddleocr_keys.txt");if (!ifs.is_open()){return 0;}ifs.seekg(0, std::ios_base::end);int length = ifs.tellg();ifs.seekg(std::ios_base::beg);char* buff = new char[length + 1]();ifs.read(buff, length + 1);return buff;
}

这个paddleocr_keys.txt 的字符编码格式是可以修改,改为ANSI 格式,这样在cmd行中就不会中文乱码

 3.模型加载函数,分为检测模型和识别模型

int ret = dbNet.load_param("./model/pdocrv2.0_det-op.param");if (ret != 0){return false;}ret = crnnNet.load_param("./model/pdocrv2.0_rec-op.param");if (ret != 0){return false;}}// init bin{int ret = dbNet.load_model("./model/pdocrv2.0_det-op.bin");if (ret != 0){return false;}ret = crnnNet.load_model("./model/pdocrv2.0_rec-op.bin");if (ret != 0){return false;}}

4.模型推理主要函数

void PaddleOCRNcnn_Detect(bool use_gpu, cv::Mat& rgb)
{std::vector<TextBox> objects;objects = getTextBoxes(rgb, 0.4, 0.3, 2.0);std::vector<cv::Mat> partImages = getPartImages(rgb, objects);std::vector<TextLine> textLines = getTextLines(partImages);if (textLines.size() > 0){for (int i = 0; i < textLines.size(); i++)objects[i].text = textLines[i].text;}if (objects.size() > 0){for (size_t i = 0; i < objects.size(); i++){float x0 = objects[i].boxPoint[0].x;float y0 = objects[i].boxPoint[0].y;float x1 = objects[i].boxPoint[1].x;float y1 = objects[i].boxPoint[1].y;float x2 = objects[i].boxPoint[2].x;float y2 = objects[i].boxPoint[2].y;float x3 = objects[i].boxPoint[3].x;float y3 = objects[i].boxPoint[3].y;cv::line(rgb, cv::Point(x0, y0), cv::Point(x1, y1), cv::Scalar(0, 0, 255), 2, 8);cv::line(rgb, cv::Point(x1, y1), cv::Point(x2, y2), cv::Scalar(0, 0, 255), 2, 8);cv::line(rgb, cv::Point(x2, y2), cv::Point(x3, y3), cv::Scalar(0, 0, 255), 2, 8);cv::line(rgb, cv::Point(x3, y3), cv::Point(x0, y0), cv::Scalar(0, 0, 255), 2, 8);cv::putTextZH(rgb,textLines[i].text.c_str(),cv::Point(x1, y1),CV_RGB(255, 255, 255),20);}}
}

5.OCR识别推理的结果

 我只是个代码搬运工,需要下载代码的地址。

https://download.csdn.net/download/huzhifei/88016666

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/14422.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

以太网数据链路层相关技术(六)

目录 一、概述 二、MAC地址 2.1 概述 2.2 MAC地址的意义 三、共享介质型网络与非共享介质网络 四、VLAN技术 一、概述 在各设备之间的数据传输时&#xff0c;物理层和数据链路层是必不可少的。其中&#xff0c;物理层的通信媒介包括双绞线电缆、同轴电缆、光纤、电波以及…

1763_gcc编译c语言makefile自动生成工具的Perl实现_Linux

全部学习汇总&#xff1a; GreyZhang/g_makefile: Learn makefile from all kinds of tutorials on the web. Happy hacking and lets find an common way so we may dont need to touch makefile code any more! (github.com) 其实&#xff0c;调试完这个之后觉得之前Windows上…

docker环境部署postgres版本nacos

1、docker安装postgres 执行命令&#xff1a;docker pull postgres 拉取最新版postgres 2、查看postgres镜像是否安装成功: docker imags(查看镜像)&#xff0c;可以看到已经拉取到了最新版本 的postgres镜像 3、编辑一个docker-compose.yml文件&#xff0c;账号是postgres&a…

DynaSLAM 2018论文翻译

Dynaslam:动态场景下的跟踪、建图和图像修复 摘要-场景刚性假设是SLAM算法的典型特征。这种强假设限制了大多数视觉SLAM系统在人口稠密的现实环境中的使用&#xff0c;而这些环境是服务机器人或自动驾驶汽车等几个相关应用的目标。 在本文中&#xff0c;我们提出了一个基于ORB…

【网络安全带你练爬虫-100练】第11练:xpath快速定位提取数据

目录 一、目标1&#xff1a;使用etree解析数据 二、目标2&#xff1a;使用xpath爬取指定数据 三、目标3&#xff1a;提取指定数据 四、网络安全小圈子 一、目标1&#xff1a;使用etree解析数据 其余的不用过多介绍&#xff0c;前面的练习都给大家已经过了一遍 def get_page…

Skywalking高级使用

Skywalking高级使用 RPC调用监控Mysql调用监控Skywalking常用插件获取追踪ID过滤指定的端点告警功能Skywalking原理Open Tracing介绍 RPC调用监控 Skywalking(6.5.0)支持的RPC框架有以下几种&#xff1a; (1) Dubbo 2.5.4 -> 2.6.0 (2) Dubbox 2.8.4 (3) Apache Dubbo 2.7.…

Windows mingw64 最简易 安装配置

其实挺简单一件事 很多教程都搞复杂了 自己写一个 只需要两步 1. 下载压缩包并解压 2. 配置环境变量 (1). GitHub 下载地址 Releases niXman/mingw-builds-binaries GitHub 如果GitHub下载太慢可以来这里加速 或者用地址2 GitHub Proxy 代理加速 (ghproxy.com) (2). 下…

Vue3的使用--002

Vue3包含vue2的语法&#xff0c;学习vue3就行。 前提要求&#xff0c; 安装大于node.js15.0。 创建Vue 项目 &#xff1a; npm init Vuelastest : 这一执行将会安装并执行create-vue, 他是Vue 官方的脚手架工具。你将会看到一些Typescript 和测试支持之类的可选功能提示&…

VTK STL 体积 表面积测量 最短路径 读取中文路径

目录 开发环境&#xff1a; vtkMassProperties 三、中文路径 数据读取 开发环境&#xff1a; 系统&#xff1a;Win10 VTK&#xff1a;8.2.0 Qt&#xff1a;5.12.4 一、结构化对象 体积 面积 vtkMassProperties VTK 计算体积和面积的主要类 vtkMassProperties vtkSm…

ArcGis Pro如何通过C#进行插件开发?

文章目录 0.引言1.开发工具准备2.VS&#xff08;C#&#xff09;创建ArcGIS Pro模块加载项3.编译并使用ArcGis Pro插件 0.引言 ArcGIS Pro插件&#xff08;Add-ins&#xff09;可以让用户更加容易的自定义和扩展ArcGIS Pro应用程序&#xff0c;它创建一系列自定义工具提供了一个…

[论文笔记] Gemini: A Computation-Centric Distributed Graph Processing System

Gemini: A Computation-Centric Distributed Graph Processing System Gemini: 以计算为中心的分布式图处理系统 [Paper] [Slides] [Code] OSDI’16 摘要 提出了 Gemini, 一个分布式图处理系统, 应用了多种针对计算性能的优化以在效率之上构建可扩展性. Gemini 采用: 稀疏-…

web3创业有哪些机会及具体案列(二)

目录 1. 去中心化金融&#xff08;DeFi&#xff09;&#xff1a;2. 去中心化身份验证和数字身份&#xff1a;3. 去中心化市场和电子商务&#xff1a;4. 区块链游戏和虚拟资产&#xff1a;5. 数据隐私和安全&#xff1a;6. 去中心化社交媒体&#xff1a;7. 去中心化能源交易&…