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 图片文字提取相关推荐

  1. 网店工商信息图片文字提取

    首先非常抱歉,最近一段时间由于学校课程作业较多,外加个人较懒,所以一直没有更新文章,以后一定会勤奋点,多加更新.正如前几天在stormzhang**(张哥)**的公众号里看到的一样,写作其实并不难,每 ...

  2. [深度学习 - 实战项目] CRAFTCRNN_seq2seq图片文字提取

    图片文字提取项目 检测网络:CRAFT,基于字符区域感知的文本检测: CRAFT源码:https://github.com/clovaai/CRAFT-pytorch 识别网络:crnn+seq2se ...

  3. 最新android 8手机图片,手机QQ 8.2.8更新:图片文字提取更轻松

    原标题:手机QQ 8.2.8更新:图片文字提取更轻松 今天,腾讯QQ Android.iPhone手机版迎来同时升级到8.2.8正式版,更新内容都颇为丰富,也非常实用. 尤其是备受好评的图片文字提取功 ...

  4. 图片文字提取,清华图片文字提取工具,wrod怎么提取图片文字,怎么把图片里面的文字提取?

    在学习工作生活中,我们会遇到一些只能查看却无法下载的文档,如果想要使用里面的文本内容怎么办,我们只能一边看文档一边打字,但是这样的效率太低了.有没有其他的好的方式呢?比如将文档拍照或者干脆截图,再把图 ...

  5. 怎么把图片文字提取出来?

    不管生活还是工作中,难免会遇到一些无法复制的内容或无法下载的文件等.如果是用键盘一个字一个字地手工打出来.这也是太费时间了,而拍照或截图无疑是解决这样问题的好方法,再从这些图片资料中提取文字内容给我们 ...

  6. python 百度ocr安装_Python利用百度文字识别(OCR)服务实现图片文字提取,准确率超高...

    最近和朋友聊天,聊到一个充满使命感但又略显心酸的话题--下班回家在网上给小朋友抄题...那么问题来了,除了大家所知的QQ文字识别功能之外,还有哪些方式可以做到文字识别呢. 作为一名热心的Python小 ...

  7. 用图片文字提取大师提取图片上面的文字

    用图片文字提取大师提取图片上面的文字 扫描图片相信大家都不会陌生,很多的纸质文件或是其它东西,我们都可以通过扫描仪进行扫描,然后以扫描图片的方式出现在电脑中.但是这些扫描图片中的文字不能随意的进行编辑 ...

  8. 推荐给你3种图片文字提取技能,不用打字了

    不知道大家有没有遇到过想复制一个网页上的文字内容,却做不到的情况.其实我们可以把要复制的内容拍照,然后提取图片文字.今天,边肖将与你分享五种提取图片文字的方法.我们来看看吧! 1.微信提取文字 [操作 ...

  9. easyocr快速安装及图片文字提取演示(小语种)

    前几天工作中需要用到图片识别,由于从图片中提取的文字是小语种越南语,了解了几种图片识别库之后决定使用easyocr(支持80+种语言)来进行文字提取,easyocr的介绍可详见官网:https://g ...

  10. python实现图片文字提取,准确率高达99%,强无敌!!!

    上次我使用的百度AI开放平台的API接口实现图片的转化,后来有许多小伙伴都私信问我,怎么获取百度AI平台的AK和SK.为了统一回答大家的问题,今天我又使用百度API实现了一个从图片中提取文字和识别身份 ...

最新文章

  1. javaweb学习总结(三十四)——使用JDBC处理MySQL大数据
  2. 【Linux】一步一步学Linux——enable命令(212)
  3. Hadoop系列之七:分布式文件系统HDFS(2)
  4. Linux下编写UDP/TCP版本的服务器和客户端的流程
  5. dav1d 0.5.1:更快!
  6. 【CAM应用】谈CAM软件在实际生产中的应用举例
  7. 虚拟机安装windows服务出现无法打开内核设备“\\.Global\vmx86”
  8. 数字化转型方法论_老板让我搞数字化转型?成功之后,我整理了这套超全的方法论...
  9. 使用poi读写Excel
  10. 恭迎万亿级营销(圈人)潇洒的迈入毫秒时代 - 万亿user_tags级实时推荐系统数据库设计...
  11. DMA驱动开发(6,参考资料)有用链接
  12. 模2除法与二进制除法
  13. Smobiler实现美观登录界面——C# 或.NET Smobiler实例开发手机app(二)
  14. 一些常用外设DHT11,sg90
  15. 关于ResourceBundle国际化的一些思考
  16. 李沐动手学深度学习V2-基于注意力机制的seq2seq
  17. 将Unity地形以Wavefront Obj格式导出
  18. 活法 - 第五章 宇宙潮涌 因果之法
  19. C# BLE蓝牙开发之使用Windows.Devices.Bluetooth获取小米体重秤的体重
  20. AD20和立创EDA设计(2)提取立创EDA的原理图库和PCB库

热门文章

  1. 【excel】QUARTILE.EXC V.S. QUARTILE.INC
  2. 【Spark NLP】第 6 章:信息检索
  3. 英语知识系列:英文与中文句子构成成分的对应关系
  4. ppt流程图按步骤链接_【PPT教程】在PowerPoint中5分钟制作一个流程图
  5. NFS 服务器启动失败
  6. ajax请求参数为数组解决方案
  7. 阿里云服务器ECS和VPS主机的区别在哪里
  8. 汇总15位身份证号和18位身份证号的区别
  9. maxima学习笔记(一)
  10. SAP HANA数据获取(data provisioning ) - SLT