![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OCR
文章平均质量分 91
三叔家的猫
To be a better man.
展开
-
PPOCRv3模型转pytorch
paddleocr模型转pytorch原创 2022-05-23 12:38:51 · 5130 阅读 · 1 评论 -
使用NCNN在jetson TX2上调用GPU进行推理
NCNN在jetson TX2上调用GPU推理原创 2022-04-28 18:18:01 · 3314 阅读 · 1 评论 -
【工程部署】手把手教你在RKNN上部署OCR服务(下)
序言本篇接上一篇,主要是一些代码实现。一、onnx模型测试代码(python)用于测试所提供的onnx模型文件在没转换时的推理效果:import osimport sysimport cv2import timeimport onnximport mathimport copyimport onnxruntimeimport numpy as npimport pyclipperfrom shapely.geometry import Polygon# PalldeOCR 检原创 2022-03-18 19:26:39 · 10463 阅读 · 18 评论 -
【工程部署】手把手教你在RKNN上部署OCR服务(上)
序言前段时间一直在摸索如何在RKNN上部署paddleOCR的模型,花了好长一段时间,终于把模型部署到了rv1126的NPU上,过程虽然不是很困难,因为在RKNN群中交流过一些OCR部署时遇到的问题,经常有同学看到聊天记录加了我Q问相关问题,趁着最近周末,打算写一篇文章记录下我的部署全过程,作为分享,也方便以后复习、加深印象。一、准备工作硬件支持:PC端主机(ubuntu)系统rv1126板子双头USB线(用于PC和板子间adb调试)软件支持:PC端安装好...原创 2022-03-18 19:22:36 · 8712 阅读 · 24 评论 -
使用RKNN部署CRNN模型踩坑优化历程
序言前段时间使用RKNN部署一个文字识别模型,因为文字识别模型用的是目前最普遍使用的CRNN模型,结构也相对简单:卷积+LSTM+全连接,都是比较元老级别的算子,本来已经部署的过程会很顺利,结果发现还是踩了很多坑。写篇文章记录下踩坑优化过程。一、部署前接到需求后,一开始想到的是直接使用paddleocr开源的通用文字识别模型,paddleocr提供了三个通用的文字识别模型,都是基于CRNN算法架构,分别是:mobilenetV3版、LCNet版、Resnet34版,前两个是移动端模型,后一个是服务端模原创 2022-02-23 14:13:10 · 6470 阅读 · 17 评论 -
ncnn和opencv在vs2022上创建工程推理示例
序言因为之前C++代码一直是在ubuntu的CLion上写的,对Visual Studio的相关配置并不是很熟悉,最近需要在win上开发,所以不得不用Visual Studio来编写代码,在做项目的同时,简单记录下Visual Studio的相关配置,以调用ncnn和opencv为例。一、准备ncnn和opencv1.1 windows下编译ncnn首先需要安装Visual Studio 2022社区版,这个不用多说了吧,安装结束后打开vs2022的x64命令行终端在windows下编译ncnn原创 2022-02-15 10:46:08 · 4319 阅读 · 3 评论 -
使用pnnx把pytorch模型转ncnn模型
序言在做训练模型转部署模型的时候,通常都是先转成onnx,再转目标框架,但是经常会出现的问题就是某些算子不支持,这样一来,模型部署起来就比较困难,不过现在ncnn支持torch直接通过pnnx转成ncnn模型,将整个torch的模型直接搬过来,避免了算子不支持的问题,具体的介绍还请移步nihui大佬的知乎:PNNX: PyTorch Neural Network Exchange。结合自己最近的情况,最近在白嫖PaddleOCRV2的移动端模型,想把它转成ncnn去部署在边缘设备上,情况是在转mbv3版原创 2021-11-15 15:36:43 · 8140 阅读 · 14 评论 -
使用NCNN在PC端部署PaddleOCR
序言上一篇文章记录了paddle-lite在arm开发板上部署PaddleOCR的流程,文末也提到了自己使用NCNN去部署的预告,正好今天刚好有时间,就写一篇文章记录一下NCNN部署的过程,本文暂时是介绍了部署在PC上,后面会再出一篇在arm开发板上部署的文章,因为流程基本上是一样的,可能有些同学对NCNN的部署不是太了解,所以从PC端讲起会更容易理解一些。一、环境准备因为只是在PC上部署,所以只需要ubuntu电脑一台,CMake这些环境默认是安装好了的,然后编译NCNN,编译的流程如下:在这里插原创 2021-11-06 15:02:27 · 4905 阅读 · 18 评论 -
使用paddle-lite在Arm开发板上部署paddleOCR
序言最近有个需求,需要在arm板子上部署一个通用的ocr模型,正好度娘家开源的PaddleOCR效果识别得非常不错,并且提供了mobile版本,因为业务中对精度要求不是特别的高,而且自己去训练的话效果还大概率没有人家的好,所以就不从训练开始折腾了,索性就直接拿来用。PaddleOCR对于部署来说非常的友好,提供了很多方式的部署代码,因为我是要用到arm边缘板子上,所以选择了paddle-lite方式进行部署,而paddle-lite的部署代码,在PaddleOCR源码的deploy/lite文件夹中,具体原创 2021-11-01 16:14:22 · 9552 阅读 · 22 评论 -
不需要分层的双层车牌识别新方案
序言车牌识别目前算是比较常见的OCR应用,各大停车场的门口均能看见,国内的车牌分为多种,有单层、有双层,有黄牌、蓝牌、绿牌等等,目前基本上都是基于检测加识别的方案进行,检测通常是一阶段的检测器:YOLO、SSD等等,这类型的检测器特点是速度快、性能好优化,便于嵌入边缘设备;而识别则是CRNN居多,CRNN也是目前用的最多的中文文本识别算法,但是CRNN无法直接识别双行的文字,而在车牌中恰好有一种车牌比较特殊,那就是双层车牌,基于CRNN的车牌识别通常是不能直接对双层车牌进行识别的,需要将上下层文字分割后再原创 2021-09-13 14:58:39 · 3939 阅读 · 19 评论 -
在docker上使用openvino开发和部署模型应用
序言前段时间给我们运维同事的服务器上部署了一个ocr服务接口,模型使用的是nvidia 1650ti的显卡推理,速度非常可观,毫秒级别响应。但是最近运维又找到我,说服务器的显卡好像出了问题,我检查一看:好家伙,显卡居然烧了。这张显卡为公司服务了好几年,毕竟“陈年老卡”,上一任同事传下来的,不知道传了几代,如今也算圆寂了。好了,不瞎扯,说会正题,没了显卡,我这模型可咋整?现阶段只能用cpu推理了,但是模型的速度可咋优化?这可难不倒我,检查了一下这台服务器上的cpu,发现了Intel的,这就好办了 , 果断使原创 2021-08-30 11:31:59 · 2616 阅读 · 3 评论 -
投影分割算法—文字识别前的预处理(字符准确分割)
序言基于opencv、numpy,实现了投影分割算法对文字识别前的预处理,能够准确分割出字符的具体位置,有助于提高模型准确率,使用numpy实现某些运算过程,程序耗时在毫秒级别,对于识别速度效率而言几乎无影响。一、使用场景搞过ocr的同学都知道,OCR通常可以分为两阶段:一、文字检测;二、文字识别。这两部分衔接起来,构成了OCR的识别任务。但是往往在这两个阶段的中间还可以加入一些处理,能够有助于提高模型的准确率,比较典型的例子可以看我之前的文章OCR-文本检测后的文字纠正,如果文字检测模型检测出来的文原创 2021-07-12 17:04:25 · 3536 阅读 · 1 评论 -
深度学习CV岗位面试问题总结(OCR篇)
序言OCR篇面试知识点总结,问题收集、自问自答,学习、记录、分享和复习。OCR面试知识点总结1. 介绍一下CRNN和CTC的原理2. 介绍一下cnn+Attention的原理3. CTC和Attention的优势分别是什么?4. 介绍一下DBNet文本检测算法,它为什么这么快?5. 介绍一下PSENet算法6. 介绍一下CTPN算法的原理7. 介绍一下你常用的文本检测算法,并解释使用其的原因...原创 2021-01-19 17:46:35 · 6166 阅读 · 3 评论 -
基于YOLOv5的银行卡卡号识别(一)
序言银行卡卡号智能检测识别在现阶段的OCR应用中非常的广泛,各大app应用中也经常见到,因为最近项目中也有这样的需求,写篇文章记录一下。本文仅作为分析,思路较为简单,完整的代码和数据因为涉及到公司业务不会公开。一、需求分析首先明确项目的需求,在项目中要对银行卡的卡号进行定位并识别,总的来说分为两个步骤:一是卡号定位,也就是检测问题;二是对定位后的卡号进行识别,也就是识别问题。在第一步中,使用了YOLOv5对卡号进行检测,效果非常的奈斯,期间曾尝试过v3、v3-spp,效果都远不如v5好,这一步的主要难原创 2020-12-17 17:56:53 · 3605 阅读 · 21 评论 -
基于yolov5的卡片任意倾斜角度较正
序言因为之前有在做一些规则卡片类的OCR识别任务,就难免会遇到这样的问题:用户上传的照片里卡片的角度是任意的,不规则的,或多或少都会存在不同的倾斜和形变。所以在识别的时候必须要先对其进行矫正再进行检测识别。当时有想到借鉴人脸检测中的关键点回归对卡片的四个角进行回归,但是后来感觉有点麻烦,而且数据有限,如果使用传统的opencv去寻找角点的话实际效果又不太稳定,刚好那段时间v5出来了,突发奇想可以使用v5去做,然后发现效果奇好。一、数据准备这里使用银行卡作为示例,其他类型卡片操作一样。首先是使用labe原创 2020-12-09 19:12:43 · 6178 阅读 · 16 评论 -
python将PDF文件转换为图片存储
序言最近在做一个关于PDF文档识别的项目,需要将PDF转化为图片再识别,这里使用了PyMuPDF库完成。这里记录一下使用过程。安装直接在终端中运行一下命令:pip install PyMuPDF -i https://pypi.tuna.tsinghua.edu.cn/simple/安装完成后直接使用一下代码,更换一下pdf目录地址和输出保存的地址即可:import osimport fitz # fitz就是pip install PyMuPDFdef pyMuPDF_fitz(pd原创 2020-12-09 17:15:16 · 1158 阅读 · 0 评论 -
OCR-常见问题汇总
序言最近在从事OCR方面的工作,踩过很多坑也遇到了很多问题,针对这些之前困惑的问题,结合网上的答案,作为笔记特别记录一下,供学习和复习。1. 基于深度学习的文字检测方法有哪几种?各有什么特点?常用的基于深度学习的文字检测方法一般可以分为基于回归的、基于分割的两大类,当然还有一些将两种结合起来的方法。基于回归的方法分为box回归和像素值回归。a.采用box回归的方法主要有CTPN、Textbox系列和EAST,这类算法对规则形状文本检测效果较好,但无法准确检测不规则形状文本。b. 像素值回归的方法原创 2020-09-17 17:57:58 · 5811 阅读 · 5 评论 -
OCR-文本检测后的文字纠正
序言主要是对规则的文本检测都的角度纠正,如果弯曲的很厉害,那也没办法,因为最近一直在做OCR方面的工作,包括文本检测、文本识别等等,关于检测后的文本角度纠正,网上查了很久没发现一个靠谱的,想了很久,决定自己用opencv实现一下,本文记录下实现的过程。本文主要是对YOLO检测后的倾斜文本做纠正,纠正后的图片送入到识别网络中能够大大的提升模型的识别率,当然不一定对所有场景下的文本都适用,本文实现仅供参考和学习。一、关键技术霍夫变换预测倾斜角度;图像二值化用于分割文本区域;ROI区域获取;得到纠正原创 2020-09-18 20:18:52 · 5076 阅读 · 5 评论