版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章智能车牌识别Linux开发案例
6.2车牌识别功能开发智能车牌识别Linux开发案例车牌识别是一个复杂的过程,牵扯到很多领域的知识。车牌识别基本流程如图所示。6.2.1车牌识别原理智能车牌识别Linux开发案例车牌识别系统一般由车牌定位、字符分割和字符识别3部分组成。
车牌定位车牌定位从静态图片或视频帧中找到车牌位置,并把车牌从图像中单独分离出来以供后续处理模块处理。目前车牌定位方法,主要有基于边缘检测的车牌定位算法、基于数学形态学的车牌定位算法、基于纹理特征分析的车牌定位算法、基于模式识别的车牌定位算法、基于边缘检测和HSV色彩模型相结合的车牌定位算法、
车牌字符分割主要有以下几种:(1)垂直投影分割法直投影分割法,利用字符间存在一定的间距,在垂直方向上,对灰度图像进行投影,得到车牌图像在灰度空间的分布规律。(2)连通域分割方法包围图像连通部分的最小区域称为连通域。一个完整的字符通常是自然连通的,因此可利用图像处理中的连通域查找法,查找车牌图像中所有的字符连通域。(3)模板匹配分割法基于我国车牌字符分布的规律性,构造一个字符区域的模板,然后在车牌区域上滑动模板,寻找与模板的最佳匹配位置,以确定字符的分割位置。6.2.1车牌识别原理智能车牌识别Linux开发案例
字符识别(1)模板匹配算法模板匹配算法需要建立标准字符模板,将其和进行了二值化和归一化处理的待识别字符进行匹配,比较单个字符像素点的灰度值,求出输入每个字符和模板的相似度,选择相似度最高的模板作为输出。(2)特征匹配字符识别算法包括统计特征匹配法和结构特征匹配法两种。统计特征匹配法的原理是先提取待识别字符的统计特征,再根据一定的规则和己经确定的决策函数进行匹配判断,字符的统计特征包括轮廓数、轮廓的形状和像素块数等。(3)神经网络字符识别算法神经网络算法在使用前需要先进行大量训练,得到合适的权值和阈值。训练时需要选择合适的样本输入神经网络,然后计算每层神经元的输出和期望的差值并向上层神经元反馈,神经网络根据差值调整各项阈值和权值,再重新计算神经元期望和输出的误差。重复上述步骤,通过不断训练调整阐值和权值,最终得到训练效果最好的网络阈值和权值。6.2.1车牌识别原理智能车牌识别Linux开发案例卷积神经网络(ConvolutionalNeuralNetwork,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网络由一个或多个卷积层和顶端的全连通层组成,同时也包括关联权重和池化层。这一结构使得卷积神经网络能够利用输入数据的二维结构。感知器以数学的方式来形式化表达神经元的工作原理。感知器的工作原理如左图所示,包含输入层x、隐藏层h,输出层y。设输入为x1,x2,…引入权重序列w1,w2,…表示每个输入对输出的重要性。输出层y取值为0或1,由输入序列和权重序列进行加权求和,并输入预定义的阈值函数计算得出。最常见的神经网络是前馈网络架构,从输入到输出,信息仅向前流动,如右图所示,包括输入层,隐藏层和输出层。输出神经元是执行最终计算的神经元,其输出是整个网络的输出;执行中间计算的神经元被称为隐藏神经元,可以构成一个或多个隐藏层;输入层的神经元只是将输入作为变量传递给隐藏神经元,不对输入进行处理。6.2.2卷积神经网络技术智能车牌识别Linux开发案例CNN本质是一个多层感知机。与CNN通过卷积核进行局部连接和权重共享(图3),主要包括3类神经层:卷积层,池化层和完全连接层,如图6.8所示。(1)输入层。卷积神经网络的输入层可以处理多维数据,如一维卷积神经网络的输入层接收一维或二维数组,其中一维数组通常为时间或频谱采样;二维数组可能包含多个通道;二维卷积神经网络的输入层接收二维或三维数组。(2)卷积层。通过计算卷积核与覆盖区域像素值的点积来确定神经元的输出,卷积核的通道数与输入数据的通道数相同。每个卷积层后都有一个修正线性单元(RectifiedLinearUnit,ReLu),即将激活函数应用于卷积层的输出,作用是修正卷积层的线性特征。(3)池化层。池化层沿给定的输入执行下采样,它的作用包括:①更关注是否存在某个特征而不是特征具体的位置,使学习到的特征能容忍一些变化;②减少下一层输入的尺寸,进而减少计算量和参数;③在一定程度上防止了过度拟合。平均池化和最大池化是最常用的方法。6.2.2卷积神经网络技术智能车牌识别Linux开发案例(4)全连接层。全连接层中的神经元与前一层中的所有激活完全连接。全连接层最终将2维/3维特征图转换为1维特征向量。输出的1维特征向量既可以被前馈到一定数量的类别中进行分类,也可以被认为是进一步处理的特征(5)输出层。卷积神经网络中输出层的上游通常是全连接层,因此其结构和工作原理与传统前馈神经网络中的输出层相同。对于图像分类问题,输出层使用逻辑函数或归一化指数函数(softmaxfunction)输出分类标签。基本CNN架构由一个卷积和池化层组成,可选择地增加一个全连接层用于监督分类。在实际应用中,CNN架构往往由多个卷积层、池化层、全连接层组合而成,以便更好地模拟输入数据的特征。6.2.2卷积神经网络技术智能车牌识别Linux开发案例OpenCV从自OpenCV3.3版中,把它从opencv_contrib仓库提到了主仓库(opencv)中,新版OpenCVdnn模块目前支持Caffe、TensorFlow、Torch、PyTorch等深度学习框架。TensorFlow:谷歌基于DistBelief进行研发的第二代人工智能学习系统,TensorFlow将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。HyperLPR是一个基于深度学习的高性能中文车牌识别开源项目,由python语言编写,目前已经支持的车牌类型包括:单行蓝牌、单行黄牌、新能源车牌、白色警用车牌、使馆/港澳车牌和教练车牌。HyperLPR的检测流程6.2.3车牌识别开源库HyperLPR简介(1)使用opencv的HAARCascade检测车牌大致位置(2)Extend检测到的大致位置的矩形区域(3)使用类似于MSER的方式的多级二值化和RANSAC拟合车牌的上下边界(4)使用CNNRegression回归车牌左右边界(5)使用基于纹理场的算法进行车牌校正倾斜(6)使用CNN滑动窗切割字符(7)使用CNN识别字符(详细HyperLPR安转以及LPR源码分析请查看文档)LPR源码分析智能车牌识别Linux开发案例软件设计如下:1)从hyperlpr_py3目录导入pipline模块。2)导入OpenCV模块cv23)通过OpenCV函数imread读取指定目录文件到image对象4)通过HyperLPR开源码中识别模块SimpleRecognizePlate函数对图片对象image中的车牌进行识别处理,结果返回到res,最后输出识别结果到屏幕。6.2.4车牌识别功能开发
图片文件识别test@rk3399:~/work/HyperLPR-master$python3test.pyUsingTensorFlowbackend.(560,750,3)校正角度h0v90keras_predict[0.072790870.9584856]7020c54ee2e:('京N8P8F8',0.9377301761082241)校正5.901950836181641s分割0.41561222076416016626寻找最佳点0.10375642776489258字符识别0.5297119617462158分割和识别1.0579910278320312s车牌:京N8P8F8置信度:0.91931645359311797.175567626953125s['京N8P8F8']在HyperLPR源码目录中运行test.py,运行结果如下:智能车牌识别Linux开发案例软件设计如下:1)首先,从hyperlpr_py3目录导入pipline模块2)导入OpenCV模块cv23)通过OpenCV函数VideoCapture读取指定视频文件到流对象stream4通过grabbed,frame=stream.read()从视频流中获取每个视频帧对象5通过hyperlpr的SimpleRecognizePlate函数对图片对象frame中的车牌进行识别处理6)通过putText输出识别结果到屏幕6.2.4车牌识别功能开发
视频文件识别(详细源码分析请查看文档)(运行结果)智能车牌识别Linux开发案例1、图片文件识别在网关的HyperLPR源码目录中编写图片文件测试程序pic_test.py。程序运行时需要一个车牌测试图片test.jpg复制到网关的HyperLPR-master源码的image_rec目录下。检查程序文件pic_test.py与图片文件test.jpg存放路径是否正确。在HyperLPR源码目录中运行pic_test.py,运行命令:python3test.py。命令行会显示识别到的车牌信息,运行结果如右图所示。6.2.5开发实践:视频车牌识别智能车牌识别Linux开发案例3、摄像头识别程序/weixin_45710187/article/details/107404291在网关的HyperLPR源码目录中编写摄像头车牌识别测试程序cam_test.py。检查摄像头是否连接到网关,在HyperLPR源码目录中运行cam_test.py程序,运行命令:python3cam_test.py。请把车牌放在摄像头的正前方,保证光线充足,摄像头能拍摄到完整的车牌,程序识别出车牌内容后会在另一个窗口中显示车牌号,摄像头画片中也会用红色方框标注出车牌位置与车牌号。运行结果如图所示。6.2.5开发实践:视频车牌识别(详细源码分析请查
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度生物制药企业存货质押贷款合同3篇
- 2025年度舞台租赁服务合同下载3篇
- 2025年度大型商场DJ现场表演及音响租赁合同2篇
- 二零二五版危险品仓储安全协议合同3篇
- 2024联合研发合同3篇带眉脚
- 2025年度夹板加工及销售一体化合同范本4篇
- 二零二五版银行存款账户资金调拨与监管合同3篇
- 2025年新型投影显示屏销售合同3篇
- 二零二五年度玩具OEM委托生产合同示范文本3篇
- 二零二五年度按摩养生馆安全管理与应急预案合同3篇
- 2025年经济形势会议讲话报告
- 北师大版小学三年级上册数学第五单元《周长》测试卷(含答案)
- 国家安全责任制落实情况报告3篇
- 2024年度顺丰快递冷链物流服务合同3篇
- 六年级下册【默写表】(牛津上海版、深圳版)(汉译英)
- 合同签订培训
- 新修订《保密法》知识考试题及答案
- 电工基础知识培训课程
- 铁路基础知识题库单选题100道及答案解析
- 金融AI:颠覆与重塑-深化理解AI在金融行业的实践与挑战
- 住宅楼安全性检测鉴定方案
评论
0/150
提交评论