400-805-8399 +86-0756-2135200

强安智云科技

行业动态

车牌识别的N种办法——从OCR到深度学习

  随着科学技术的发展,人工智能技术在我们的生活中的应用越来越广泛,人脸识别、车牌识别、目标识别等众多场景已经落地应用,给我们的生活品质得到很大的提升,办事效率大大提高,同时也节约了大量的劳动力。


  今天我们来讲一讲车牌识别这个任务,车牌识别技术经过多年的发展,技术路线也呈现多样化,我们来介绍一下其中的两种:


  第一种,单个字符识别


  首先,在地面上有传感器感应区域,当有车辆经过时自动进行拍照,然后对拍的照片进行预处理,变成灰度图像,去除噪声等,把一些干扰因素去掉,同时降低图像的大小,便于后期进行边缘提取;


  其次,利用边缘提取技术,比如canny算子、sobel算子,把图像轮廓提取出来,根据车牌长宽比大概为1:2.5左右把大部分不疑似的去掉;然后,再利用图像灰度值在水平方向和竖直方向上的投影,将字符切割出来;


  最后,利用模板匹配或者是已经训练好的深度学习模型进行识别,单独把每个字符识别后进行串联得到整张车牌号码。


  这种方法的瓶颈在于怎么样把每一个字符准确地切割出来,这涉及到很多图像处理技术,比如高斯模糊、图像锐化、图像膨胀、伽马变化、仿射变换等等,目前对于英文字符和数字的识别准确度在96%左右,汉字识别的准确度在95%左右。


  第二种办法,整张车牌识别


  首先,与第一种车牌识别一样,利用传感器进行车辆感应,把整辆车进行拍照;


  其次,利用训练好的车牌检测算法,比如YOLO算法或者其他的目标检测算法把车牌检测出来。为了提升车牌识别的准确度,可以利用图像预处理技术对图像进行处理,降低干扰项;


  最后,利用已经训练好的深度学习模型对整张车牌进行识别。比如LPRNet、Darknet等


  ## 第一种方法 ——利用 pytesseract 进行识别


  pytesseract是一个OCR识别工具,具体的 pytesseract 安装可百度安装,直接使用这个工具进行识别得到的准确度还有点低,达不到理想的效果,需要利用车牌数据进行训练才可以使用。


  ## 第二种识别办法——PaddleOCR


  PaddleOCR 是百度paddlepaddle下的OCR模块,可以用它来识别车牌,直接下载预训练模型进行识别,对于数字和子母都得到不错的准确率,但是针对中文识别的效果并不理想,需要自己的数据集进行再训练。


  要想利用这个模型进行训练车牌识别,需要大量的车牌数据,人工收集不仅耗费时间长,要涉及每个省份的车牌需要比较大的成本。


  另外的办法是利用图像处理技术进行数据生成,加上图像增强技术来制作数据集,这将在我们的第三章识别方法中讲到。


  将结果导出到Excel文件夹


  ## 第三种办法 ——LPRNet算法


  由于要收集满足深度学习的数据需要花费大量的时间,有一种办法是通过数据生成的办法生成大量的模拟数据集。


  紧接着,我们可以利用LPRNet算法进行车牌识别,从GitHub上下载有tensorflow、torch两个版本。


  第一步,生成蓝色车牌数据集


  第二步,根据算法模型要求将图像名称修改并放到指定的文件夹中


  第三步,模型训练和测试


  ## (1) 蓝色车牌生成


  需要生成多少张车牌数据可通过修改最后一行代码的数字即可


  ## (2) 生产黄色车牌


  生成车牌的步骤是把字符写到纯净的背景图片上,蓝色的车牌是把白色的字写到蓝色底的车牌上,可以直接把字符写到底牌上去,但是黄色底的车牌不能简单把黑色字写上去,写上去的结果是字符被隐藏起来,需要特别处理。


  正确的做法是:


  第一步,构造一张车牌大小的纯黑色车牌,往上面写白色字符


  第二步,将黑白色进行反转,把这牌的字符和背景进行翻转


  第三步,将一张没有字符的黄色底牌和反转后的车牌进行结合,然后经过高斯模糊、改变光线、旋转角度等各种随机组合模拟出于生活中拍摄处理的图像。


  字符和背景反转


  字符和底牌相结合,并进行畸变、模糊、旋转等各种方法,构造出多种多样的车牌图像。


  ## (3) 生产新能源车牌


  新能源车牌的生成办法与黄色车牌的生成办法是一样的,但是新能源车牌长度比蓝牌、黄牌多一位,而且指定第三个字符为D或者F,但是我们我们在生成时不考虑,只是修改代码让程序生成同样长度的车牌即可。


  以上为车牌生成部分代码,其他代码参考之前的部分


  (4) 重命名各种车牌名称,使得它适合训练便签生成要求


  (5) 统计各个省份的车牌数量


  主要是确认中文字符数量均衡


  (6) 把车牌移动到训练和测试两个文件夹中


  (7) 模型训练及测试


  接下来进行模型训练。。。 (略)


  用第三种方法 LPRNet 来进行车牌识别这个项目是一个很不错的,涉及到图像处理,深度学习等各种图像相关的知识,完成这个项目训练后,项目工程能力得到较大提升,对于以后找工作和工作中遇到的问题处理都有比较大的帮助。


  能认真看到这的小伙伴帮忙点个赞!


相关产品

客户服务热线

0756-2135200

13318981190

在线客服