PaddleOCR 图片文字提取
PaddleOCR 图片文字提取
- 需求
- 一.裁剪车牌号码区域
- 二.对车牌小图进行处理
- 三.填充边界
- 四.识别步骤
需求
工作上的一个需求,需要把图片中的车牌号码提取出来。如图,车牌在图片固定位置。开始使用pytesseract,对中文识别特别不友好,毕竟是外国人的东西。同事推荐使用PaddleOCR,国人开发的东西就是不一样,识别正确率居然可以达到90%以上。不过两者都存在共性问题,黑底白字无法识别/范围太小识别不准等。
一.裁剪车牌号码区域
# np.fromfil 从文本或二进制文件中的数据构造一个数组
# cv2.imdecode()把读取的数据转换(解码)成图像格式;主要用于从网络传输数据中恢复出图像
# cv2.IMREAD_UNCHANGED:读入完整图片,包括alpha通道,可以直接写-1
img = cv2.imdecode(np.fromfile(imgSrc, dtype=np.uint8), cv2.IMREAD_UNCHANGED)
cropImg = img[y1:y2, x1:x2] #顺序为上下 左右
(车牌裁剪出来的小图)
正常来说把上面裁剪出来的小图进行OCR,就可以识别出文字了,结果....
于是百度找了张图,刚好是白底黑字 文字居中,结果神奇地识别结果100%识别正确。经过对比,我断定是白色字体无法识别,接着又把小图进行反相处理。
二.对车牌小图进行处理
height, width, deep = cropImg.shapegray = cv2.cvtColor(cropImg, cv2.COLOR_BGR2GRAY) # cv2.COLOR_BGR2GRAY 将BGR格式转换成灰度图片dst = np.zeros((height, width, 1), np.uint8) #生成一张纯黑色图for i in range(0, height): # 反相 转白底黑字for j in range(0, width):grayPixel = gray[i, j]dst[i, j] = 255 - grayPixel#走完这一步,已经实现了 转白底黑字,但是白色低背景不是最亮的#再用cv2.threshold进行二值化,使黑色部分更黑,白的更白
ret, img = cv2.threshold(dst, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
对小图进行反相处理后的结果就是下面这样,仔细看发现白色底不是很白,再用cv.threshold进行二值化(非黑既白),通对比二值化的图片,层次感就出来了。
(反相后)
(二值化后)
再次进行识别,识别结果终于出来了,但是发现最后一位7被识别成了2,按道理来说这么简单的文字不应该识别错。于是想到前面用来测试识别的图片边界很宽,文字居中,接着对小图进行了填充白底边界150个像素。
三.填充边界
# cv2.BORDER_CONSTANT 固定值填充方式
imgsrc = cv2.copyMakeBorder(img, 150, 150, 150, 150, cv2.BORDER_CONSTANT, value=[255, 255, 255])
(填充后)
四.识别步骤
ocr = PaddleOCR(use_angle_cls=True, use_gpu=False) # 使用CPU预加载,不用GPU
text = ocr.ocr(img, cls=True)
result = str(text[0][1][0]).replace('车牌号码:', '').upper()
(最终识别效果)
PaddleOCR 图片文字提取相关推荐
- 网店工商信息图片文字提取
首先非常抱歉,最近一段时间由于学校课程作业较多,外加个人较懒,所以一直没有更新文章,以后一定会勤奋点,多加更新.正如前几天在stormzhang**(张哥)**的公众号里看到的一样,写作其实并不难,每 ...
- [深度学习 - 实战项目] CRAFTCRNN_seq2seq图片文字提取
图片文字提取项目 检测网络:CRAFT,基于字符区域感知的文本检测: CRAFT源码:https://github.com/clovaai/CRAFT-pytorch 识别网络:crnn+seq2se ...
- 最新android 8手机图片,手机QQ 8.2.8更新:图片文字提取更轻松
原标题:手机QQ 8.2.8更新:图片文字提取更轻松 今天,腾讯QQ Android.iPhone手机版迎来同时升级到8.2.8正式版,更新内容都颇为丰富,也非常实用. 尤其是备受好评的图片文字提取功 ...
- 图片文字提取,清华图片文字提取工具,wrod怎么提取图片文字,怎么把图片里面的文字提取?
在学习工作生活中,我们会遇到一些只能查看却无法下载的文档,如果想要使用里面的文本内容怎么办,我们只能一边看文档一边打字,但是这样的效率太低了.有没有其他的好的方式呢?比如将文档拍照或者干脆截图,再把图 ...
- 怎么把图片文字提取出来?
不管生活还是工作中,难免会遇到一些无法复制的内容或无法下载的文件等.如果是用键盘一个字一个字地手工打出来.这也是太费时间了,而拍照或截图无疑是解决这样问题的好方法,再从这些图片资料中提取文字内容给我们 ...
- python 百度ocr安装_Python利用百度文字识别(OCR)服务实现图片文字提取,准确率超高...
最近和朋友聊天,聊到一个充满使命感但又略显心酸的话题--下班回家在网上给小朋友抄题...那么问题来了,除了大家所知的QQ文字识别功能之外,还有哪些方式可以做到文字识别呢. 作为一名热心的Python小 ...
- 用图片文字提取大师提取图片上面的文字
用图片文字提取大师提取图片上面的文字 扫描图片相信大家都不会陌生,很多的纸质文件或是其它东西,我们都可以通过扫描仪进行扫描,然后以扫描图片的方式出现在电脑中.但是这些扫描图片中的文字不能随意的进行编辑 ...
- 推荐给你3种图片文字提取技能,不用打字了
不知道大家有没有遇到过想复制一个网页上的文字内容,却做不到的情况.其实我们可以把要复制的内容拍照,然后提取图片文字.今天,边肖将与你分享五种提取图片文字的方法.我们来看看吧! 1.微信提取文字 [操作 ...
- easyocr快速安装及图片文字提取演示(小语种)
前几天工作中需要用到图片识别,由于从图片中提取的文字是小语种越南语,了解了几种图片识别库之后决定使用easyocr(支持80+种语言)来进行文字提取,easyocr的介绍可详见官网:https://g ...
- python实现图片文字提取,准确率高达99%,强无敌!!!
上次我使用的百度AI开放平台的API接口实现图片的转化,后来有许多小伙伴都私信问我,怎么获取百度AI平台的AK和SK.为了统一回答大家的问题,今天我又使用百度API实现了一个从图片中提取文字和识别身份 ...
最新文章
- javaweb学习总结(三十四)——使用JDBC处理MySQL大数据
- 【Linux】一步一步学Linux——enable命令(212)
- Hadoop系列之七:分布式文件系统HDFS(2)
- Linux下编写UDP/TCP版本的服务器和客户端的流程
- dav1d 0.5.1:更快!
- 【CAM应用】谈CAM软件在实际生产中的应用举例
- 虚拟机安装windows服务出现无法打开内核设备“\\.Global\vmx86”
- 数字化转型方法论_老板让我搞数字化转型?成功之后,我整理了这套超全的方法论...
- 使用poi读写Excel
- 恭迎万亿级营销(圈人)潇洒的迈入毫秒时代 - 万亿user_tags级实时推荐系统数据库设计...
- DMA驱动开发(6,参考资料)有用链接
- 模2除法与二进制除法
- Smobiler实现美观登录界面——C# 或.NET Smobiler实例开发手机app(二)
- 一些常用外设DHT11,sg90
- 关于ResourceBundle国际化的一些思考
- 李沐动手学深度学习V2-基于注意力机制的seq2seq
- 将Unity地形以Wavefront Obj格式导出
- 活法 - 第五章 宇宙潮涌 因果之法
- C# BLE蓝牙开发之使用Windows.Devices.Bluetooth获取小米体重秤的体重
- AD20和立创EDA设计(2)提取立创EDA的原理图库和PCB库