一种基于fpga的二值神经网络车牌识别方法及系统

文档序号:1490770 发布日期:2020-02-04 浏览:3次 >En<

阅读说明:本技术 一种基于fpga的二值神经网络车牌识别方法及系统 (FPGA-based binary neural network license plate recognition method and system ) 是由 訾晶 金婕 张旭欣 付闯闯 王钰 陈美好 于 2019-09-29 设计创作,主要内容包括:本发明涉及基于FPGA的二值神经网络车牌识别方法及系统,方法包括:步骤1:利用图像预处理模块对输入图像做细化处理,并得到灰度图;步骤2:利用车牌定位提取模块对灰度图进一步处理以完成车牌的定位提取;步骤3:利用车牌字符分割模块对定位提取的车牌字符进行分割,并二值化形成尺寸固定的图像块;步骤4:对二值神经网络模块中的二值神经网络进行训练,利用训练完毕的二值神经网络模型对尺寸固定的图像块进行识别,并输出结果,方法配套的系统包括图像预处理模块、车牌定位提取模块、车牌字符分割模块和二值神经网络模块且基于FPGA平台实现。本发明将神经网络与FPGA硬件相结合,充分发挥两者优势,在保证车牌识别精度同时,实现了高效、低功耗。(The invention relates to a binary neural network license plate recognition method and system based on an FPGA (field programmable gate array), wherein the method comprises the following steps: step 1: an image preprocessing module is used for carrying out refinement processing on an input image and obtaining a gray-scale image; step 2: further processing the gray level image by using a license plate positioning and extracting module to complete positioning and extracting of a license plate; and step 3: utilizing a license plate character segmentation module to segment the license plate characters extracted by positioning, and binarizing to form an image block with a fixed size; and 4, step 4: the method comprises the steps of training a binary neural network in a binary neural network module, identifying image blocks with fixed sizes by using a trained binary neural network model, and outputting results. The invention combines the neural network and the FPGA hardware, fully exerts the advantages of the neural network and the FPGA hardware, and realizes high efficiency and low power consumption while ensuring the license plate recognition precision.)

一种基于FPGA的二值神经网络车牌识别方法及系统

技术领域

本发明涉及机器学习技术领域,尤其是涉及一种基于FPGA的二值神经网络车牌识别方法及系统。

背景技术

随着经济的快速发展,车辆越来越多,无论是住宅小区还是各种公共场所,都会有大量车辆,为了便于管理,保障人身财产安全,对车牌信息的采集、识别、保存越来越重要。

此外,交通系统正趋于智能化,其中车牌的采集和识别是一个重要的部分,在交通监控系统、高速自动收费系统、车流量检测系统等智能交通系统中的应用越来越广泛。

近年来,随着人工智能(AI)技术的发展,其应用领域越来越广泛,比如基于卷积神经网络(CNN)的人脸识别系统等。然而传统基于浮点运算的神经网络,一方面参数量大、计算量大,需要占用很多的计算资源。另一方面,基于GPU(图形处理器)的深度学习算法,在进行车牌识别的时候,其对车牌轮廓、字符轮廓的提取采用纯软件的方式,势必降低处理大量数据的效率。

发明内容

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于FPGA的二值神经网络车牌识别方法及系统。

本发明的目的可以通过以下技术方案来实现:

一种基于FPGA的二值神经网络车牌识别方法,该识别方法包括以下步骤:

步骤1:利用图像预处理模块对输入图像做细化处理,并得到灰度图;

步骤2:利用车牌定位提取模块对灰度图进一步处理以完成车牌的定位提取;

步骤3:利用车牌字符分割模块对定位提取的车牌字符进行分割,并二值化形成尺寸固定的图像块;

步骤4:对二值神经网络模块中的二值神经网络进行训练,利用训练完毕的二值神经网络模型对尺寸固定的图像块进行识别,并输出结果。

进一步地,所述的步骤1具体包括:利用图像预处理模块对对输入图像进行增强处理,调整对比度和亮度,并对拍摄角度引起的倾斜图像进行矫正处理,最后再将图像灰度化,并得到灰度图。

进一步地,所述的步骤2具体包括:利用车牌定位提取模块首先对灰度图进行腐蚀、膨胀操作以凸出车牌的边缘轮廓,然后利用边缘检测算法查找轮廓并按轮廓面积和长宽比筛选去除干扰选项,并最终输出轮廓面积最小且符合车牌长宽比的矩形框,即对应完成车牌的定位提取。

进一步地,所述的步骤3具体包括:利用车牌字符分割模块依据标准车牌尺寸,采用中心点逐次右移的方法,对定位提取的车牌字符进行字符分割,并二值化形成尺寸固定的图像块。

进一步地,所述尺寸包括28×28和32×32。

进一步地,所述的步骤4中的二值神经网络的用的二值化激励函数为sign函数。

进一步地,所述的步骤4中的二值神经网络的硬件搭建采用FPGA平台。

本发明还提供一种用于所述的基于FPGA的二值神经网络车牌识别方法的系统,该系统包括:

图像预处理模块,用于对采集的图像进行增强、灰度化和去噪预处理;

车牌定位提取模块,用于对预处理后的图像中的车牌定位并提取输出;

车牌字符分割模块,用于采用中心点逐次右移的方法对车牌字符进行分割,并二值化,形成固定大小的图像块;

二值神经网络模块,用于通过训练数据生成最佳网络模型,对输入图像进行识别,并最终输出结果。

与现有技术相比,本发明具有以下优点:

(1)本发明基于FPGA设计系统,首先硬件平台的设计提高了车牌轮廓提取的效率,其次放弃对字符轮廓的提取,采用中心点逐次右移的方法直接进行字符分割,然后在加上基于FPGA的二值神经网络大大减少了计算量,进一步提高了运行效率。

(2)本发明系统中,FPGA的输入由外部摄像头采集,在FPGA内部设计了图像预处理模块、车牌定位提取模块、车牌字符分割模块和二值神经网络模块。图像预处理模块主要对采集的图像进行增强、灰度化、去噪等一系列处理,车牌定位提取模块主要对图像中的车牌定位并提取输出,车牌字符分割模块主要对车牌字符进行分割、二值化,形成固定大小的图像块输入到下一层,二值神经网络模块通过训练大量数据生成最佳网络模型,对输入图像识别,最终输出结果,由于在配套方法中引入了神经网络,通过监督学习提高了整个系统的泛化能力以及自适应性,此外二值神经网络可以大大减少计算量,利用FPGA的并行执行优势,在保证准确性的同时提高了效率,且功耗低。

附图说明

图1为本发明方法的流程图;

图2为本发明系统的FPGA模块设计框架图;

图3为本发明系统中图像预处理模块的工作流程图;

图4为本发明系统中车牌定位提取模块的工作流程图;

图5为本发明系统中车牌字符分割模块的工作流程图;

图6为本发明系统中二值神经网络模块的工作流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

实施例

本发明是基于FPGA开发设计的,在FPGA上集成设计了若干模块,来实现图像处理以及神经网络运行,如图2所示,根据所实现功能的不同,设计了四个模块,分别为:

图像预处理模块,对外部获取的图像进行增强、灰度化、去噪处理。

车牌定位提取模块,识别图像中的车牌,定位并提取,车牌定位提取模块采用边缘检测算法,凸出车牌轮廓并输出。

车牌字符分割模块,对提取的车牌进行字符分割,并调整所有的字符块尺寸,以固定的尺寸输入至下一模块,依据标准车牌尺寸,采用中心点逐次右移的方法,对提取的轮廓进行字符分割,二值化后以固定尺寸输出,如28x28、32x32。

二值神经网络模块,训练好相应的汉字、字母和数字网络,对输入字符块识别,并输出结果,二值神经网络模块采用的是二值神经网络,该网络包括了基本的输入层、隐层(含有多层)和输出层,其中隐层又包括了全连接、归一化以及二值化,因此该网络有别于浮点运算网络,很大程度简化了计算,在FPGA平台搭建二值神经网络,将矩阵向量的点积运算替换成位的同或运算,大大提高运算效率。

本发明系统基于带有处理器的FPGA设计实现,将二值神经网络硬件化,搭建在FPGA平台,充分利用硬件资源,以提高图像处理效率。

本发明的系统采用二值神经网络,降低了数据处理量,提高了计算能力,并将其搭载在FPGA硬件平台,进一步提高识别效率,且功耗低。

如图1所示,给出了整个识别方法中结合系统各个模块的工作流程图,从图像的获取、预处理,到车牌的定位、提取与分割,再到二值神经网络的训练、判断识别,展示了各模块的协同,下面分别介绍各模块的主要功能:

图像预处理模块,主要是对输入图像做一些细化处理,由于摄像头采集的原始图像会受到外部环境以及拍摄角度的影响,为了提高识别精度,需要对原始图像进行增强处理,主要是调整对比度和亮度,对拍摄角度引起的倾斜图像进行矫正处理,最后再将图像灰度化,输入下一层,具体工作流程如图3所示;

车牌定位提取模块,对灰度图做进一步处理,进行腐蚀、膨胀操作,凸出车牌的边缘轮廓,再去除干扰杂质,利用边缘检测算法,查找轮廓,计算轮廓面积,按轮廓面积和长宽比的筛选,去除干扰选项,最后输出面积最小的且符合车牌长宽比的矩形框,完成车牌的定位提取,具体工作流程如图4所示;

车牌字符分割模块,考虑到车牌定位提取的效果好,此外字符的尺寸一样,那么对字符的分割将采取简单按比例分割法,这样可以简化设计且对精度影响较小。首先计算字符块的平均宽度W以及字符块的高H,计算最左侧字符块的中心坐标(x,y),以此中心点上下延伸H/2,左右延伸W/2,以这个大小的矩形框截取字符,再将中心点右移,依次用同样方法截取后面的字符,最后车牌被分成7个字符块,具体工作流程如图5所示;

二值神经网络模块,该网络是一种在计算参数梯度下降时将权值和激励控制在-1或1,或者0或1的神经网络学习方法,该方法将参数计算中的大量乘法运算替换成位的同或运算,大大减少了计算时的资源占用,进而提高了计算速度。该网络采用的二值化激励函数是sign函数(二值化方法还有很多,如可采用阈值法):

Figure BDA0002221869520000051

在网络学习过程中,权值会相应的往优化的方向更新,此时权值会出现大于1或小于-1,或者是(-1,1)间的情况,为了保证权值的二值化,首先要对更新后的权值做切割处理,采用Clip函数,当w大于1是取1,当w小于0时取0,当w在在0到1之间时不变,使其被控制在[0,1]间:

w=Clip(w,0,1)

进而再对权值进行二值化,先采用Round取整函数(四舍五入)使权值为0或1,紧接着使权值为-1或1:

wb=2*Round(w)-1

最后,输入数据经过二值神经网络的运算后形成一个独热码(one-hot)向量,既在一个N位行向量里只有一位是1,与已知的标签向量对比,判断识别结果,具体工作流程如图6所示。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:车身图像的文本字符检测方法及设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!