2. 车牌检测与识别
目前,智能交通系统中集成运用计算机视觉、物联网、人工智能等多种技术成为未来发展方向 。其中,车牌识别(License Plate Recognition, LPR)技术作为一项重要技术,从获取的图像中提取目标车辆的车牌信息,成为完善智能交通管理运行的基础 。
由于本文介绍的是中文车牌,所以可以简单了解一下国内汽车牌照的特点:字符数为七个,包括汉字、字母和数字 。车牌颜色组合中,其中最常见的组合为普通小型汽车蓝底白字和新能源汽车的渐变绿底黑字 。
由于本文介绍的是中文车牌,所以可以简单了解一下国内汽车牌照的特点:字符数为七个,包括汉字、字母和数字,车牌轮廓长宽比例基本固定 。车牌颜色组合中,其中最常见的组合为普通小型汽车蓝底白字和新能源汽车的渐变绿底黑字 。总结来说,车牌是一个有特点的图像区域,几种特征可以综合起来确定车牌定位,所以之前就有利用车牌与周围环境的差异的算法 。目前常见的车牌定位算法有以下 4 种:基于颜色、纹理、边缘信息的车牌定位算法和基于人工神经网络的车牌定位算法 。
为了方便演示,博主绘制了一张车牌识别的流程图,如下图所示,常规的步骤包括图像采集、预处理、车牌定位、字符分割、字符识别、输出结果 。深度学习技术成熟之后,端到端的网络模型使得这一过程变得简单起来 。从思想上来说,基于深度学习的车牌识别实现思路主要包括两个部分:(1)车牌检测定位;(2)车牌字符识别 。
其中,车牌的检测定位本质是一个特定的目标检测(Object Detection)任务,即通过算法框选出属于车牌的位置坐标,以便将其与背景区分开来 。可以认为检测出的车牌位置才是我们的感兴趣区域(Region Of Interest, ROI) 。好用的方法如Cascade LBP,它是一种机器学习的方法,可以利用OPenCV训练级联分类器,依赖CPU进行计算,参考网址:https://gitee.com/zeusees/HyperLPR 。级联分类器的方法对于常用场景效果比较好,检测速度较快,曾经一度比较流行,但准确率一般 。基于深度学习的检测算法有Mobilene-SSD、YOLO-v5等,利用大批量的标注数据进行训练,训练代码可以参考开源代码https://github.com/zeusees/License-Plate-Detector 。
当ROI被检测出来,如何对这一区域中的字符进行识别,这就涉及到采取的处理方式 。第一种处理方式,首先利用一系列字符分割的算法将车牌中的字符逐个分开,然后基于深度学习进行字符分类,得到识别结果,可参考的代码地址:https://github.com/LCorleone/A-Simple-Chinese-License-Plate-Generator-and-Recognition-Framework;第二种,区别于第一种先分割再分类的两步走方式,利用端到端的CTC( Connectionist Temporal Classification)网络直接进行识别,代码地址:https://github.com/armaab/hyperlpr-train 。
这里我们使用网上开源的HyperLPR中文车牌识别框架,首先导入OpenCV和hyperlpr,读取一张车牌图片调用架构中的车牌识别方法获得结果,以下代码来自官方的示例:
#导入包
from hyperlpr import *
#导入OpenCV库
import cv2
#读入图片
image = cv2.imread("demo.jpg")
#识别结果
经验总结扩展阅读
- 现在国家对生二胎的政策 生二胎的政策规定
- 打蓝球技术犯规及判罚
- 羽毛球双打比赛规则
- 上海哪里有比较准的算命大师_维持平衡与协调:五行相生相克规律原理
- 工商行政管理行政处罚程序规定 工商行政处罚法程序规定
- 怎么看红绿灯规则
- 什么是技术犯规
- 3米跳板规则
- 飞机托运行李规定
- 欧冠十六强抽签规则