刘贯伟, 江浩然, 张云峰, 王 伟
(恒银金融科技股份有限公司, 天津 300308)
水印是纸币的重要组成部分, 也是纸币的重要防伪特征之一, 对水印进行识别与检测也是纸币检测的重要环节。常见的人民币水印图像包括毛泽东头像、面额数字等。 然而,在纸币的流通过程中,由于磨损、弯折、污损等情况的发生, 导致图像采集系统采集得到的水印图像存在大量的噪声,采集得到的水印图像特征不稳定。 由于上述情况常有发生,基于机器视觉的检测平台难以判断水印图像是否存在,也难于辨别水印图像的类别。
目前已有的水印识别方法可以分为以下几类: 模板匹配、边缘检测与支持向量机相结合、水印特征提取与决策分类相结合, 以及基于相似系数的识别方法。 文献[1]利用白水印区域颜色比较简单、背景单调的特点,利用图像投影作为水印图像特征, 将待测图像与自主建立的标准模板图像库中的图像进行模板匹配, 该方法具有一定实现性,但是抗干扰性较差。 文献[2]利用支持向量机方法实现纸币水印图案的识别,先利用canny 算子提取水印图案的边缘信息, 再将不同水印图案的边缘特征的矩阵向量作为训练输入,最终实现了水印图像的分类判别。 该方法时效性较高, 但也没能解决复杂背景条件下的水印识别问题。 文献[3]设计了一种快速模板匹配算法,实验验证其方法的可能性, 但对于其方法的计算效率还有待于提升。 上述不同方法具有各自的优势,对于水印图像也具有一定分辨力, 但对于包含噪声的水印图像识别效果尚存在较大的问题。
局部二值模式(Local Binary Pattern,LBP)是一种图像纹理特征描述算子, 在实际工业和生产生活领域, 基于LBP 特征对目标进行检测也得到了广泛应用。 本文采用LBP 算子对人民币水印图像进行特征提取, 利用LBP 算子的特性,有效解决了水印图像识别困难的问题,达到识别精度高、识别速度快的要求。
LBP 算子是一种用于描述图像纹理特征的算法[4],LBP 算法在设计之初将像素邻域定义为的矩形邻域。LBP算子首先以采样点p 为中心, 分别对中心像素的像素邻域点进行采样处理,具体实现方法见图1。
图1 邻域LBP 算子示意图Fig.1 Neighborhood LBP operator schematic graph
LBP 算子以中心点像素灰度值grayc为阈值对邻域各像素点grayi(i=1,2)进行二值化处理,再将中心点像素邻域的二值化值与自定义权重值相乘, 再将各邻域像素相乘结果相加后得到LBP 特征值。计算式如式(1)和式(2)。
式中:grayi—中心点邻域的第i 个采样点的灰度值,grayc—该邻域中心像素的灰度值,其中f 为自定义符号函数。
由于基本LBP 算子无法提取大尺度纹理特征, 有学者提出了改进的LBP 算法,将原始邻域扩展,扩展邻域半径用R 表示,同时设置半径为R 的邻域像素共包含P 个,表示P 个邻域像素点均匀分布在半径为R 的邻域圆上,见图2,分别表示半径为2,邻域像素点为8 或16 的像素分布情况。
图2 LBP 邻域像素分布图Fig.2 LBP neighborhood pixel distribution graph
对于改进的LBP算法,可采用与原始LBP 算法相同的二值化处理方式,计算采样中心像素的LBP 特征值。
通过观察LBP 算子的定义不难发现,一个LBP 算子可以采用多种二进制模式,随着采样半径的增大、采样点的增多,二进制模式的种类数量也逐渐庞大。 然而,过多的二进制模式在特征提取与识别中都会使得计算量增大,对实际应用而言更是不利。 于是,学者Ojala 提出一种“等价模式”(Uniform Patterns)[5]对LBP 算子进行降维。
等价模式LBP 算子可以定义为,当局部二值模式对应的循环二进制数从0 到1 或从1 到0 最多有两次跳变时,该局部二值模式对应的二进制数称为一个等价模式,可以用式(3)判断一个局部二值模式是否是等价模式。
式中,若计算得到的U(LBPP,R)不大于2,则该模式是一个等价局部二值模式。 经改进,原始等价局部二值模式类别由2p降低到P(P-1)+2 种。 利用等价模式LBP 极大地降低了特征维度, 提升特征提取速度的同时可以更好地提取图像的本质特征。
不同LBP 算子将得到各不相同的LBP 特征图像,图3 为采用不同LBP 算子求得的特征图像。
图3 不同LBP 算子特征图像对比Fig.3 Image comparison of different LBP operators
误差逆传播(Error Back Propagation),简称BP 神经网络, 是一种按误差反向传播算法进行神经网络训练的反馈型神经网络,具有很强的非线性映射能力[6]。 BP 神经网络中间层个数与各层神经元个数均可根据其应用对象任意设定,常用的BP 神经网络结构,见图4。BP 神经网络结构主要包括输入层、隐藏层和输出层。
图4 常用BP 神经网络结构图Fig.4 BP neural network structure graph
输入层节点个数为样本特征向量的元素个数, 隐藏层节点个数可根据计算得到, 输出层节点个数为样本的总类别数。Nhidden=log2Ninput(4)利用BP 神经网络实现水印存在性判别, 通过不断计算实际输出与期望输出之间的差值,调整隐藏层神经元权值,逐渐减小输出差值,不断修正网络参数。
文章提出基于LBP 特征提取的纸币水印识别方法,主要包括三个步骤: 第一步, 利用等价LBP 算子提取图像LBP 特征;第二步,计算并统计图像归一化LBP 特征向量;第三步,训练BP 神经网络,将图像归一化LBP 特征向量作为输入向量,保存网络模型参数。整体算法实现过程,见图5。
图5 算法实现过程Fig.5 Algorithm implementation process
提取水印图像LBP 特征,利用等价模式LBP 算子计算水印图像等价模式LBP 特征图。 本文以2015 版100 元人民币作为研究对象,利用CIS 图像传感器采集透视图像,可得到该版本纸币的水印图像见图6。
图6 透视图像与水印图像Fig.6 Perspective image and watermark image
批量采集2015 版100 元人民币图像,提升用于训练的数据集图像数量可提升BP 神经网络模型泛化能力。 因此,本文建立水印图像数据集共包括50000张图像,部分图像见图7(a),建立无水印图像数据集17000 张图像,部分图像见图7(b)。
图7 图像数据集Fig.7 Image dataset
利用本文建立水印图像数据集中的图像进行LBP 特征提取,原始LBP 特征图像见图8(b),圆形LBP 特征图像见图8(c),等价LBP 特征图像见图8(d)。
图8 水印LBP 特征图Fig.8 Watermark LBP feature image
水印图像等价模式LBP 特征提取过程主要分为两步: 第一步, 利用等价模式LBP 算子计算水印图像LBP特征图;第二步,计算归一化LBP 特征向量。其中,归一化LBP 特征向量计算过程如下:
(1)设置一个大小为的图像处理模块。
(2)设置步长为1,利用图像处理模块遍历LBP 特征图同时执行步骤3。
(3)计算每块LBP 特征图子图模块的直方图,依次保留子图模块直方图统计结果。
通过上述操作,得到用于BP 神经网络训练的输入特征向量。
通过批量提取水印图像数据集LBP 特征图并保存归一化特征向量, 同样批量提取不包含水印图像数据集的LBP 特征图、 计算并保存其归一化特征向量。 将两类样本特征向量作为输入,开始训练BP 神经网络。
本文设计的水印识别BP 神经网络具有多层结构,包含输入层、隐藏层与输出层。 采用logsig 函数作为激活函数,其函数表达式见式(5)。
采用变学习率动量梯度下降算法进行训练, 设置最大训练步数为20000 步,训练最小误差为10-8,学习率为0.02。保留训练结束时各层网络的权重值,搭建同样的网络结构,利用训练得到的网络权重值对测试图像进行测试。
在基于机器视觉的纸币水印识别实际过程中, 由于钞票新旧程度不一、图像采集传感器不一致,极易产生纸币水印图像亮度不一致的问题。 不同光照条件下水印图像见图9。
图9 不同光照条件下的水印图像Fig.9 Watermark image under different illumination conditions
针对上述问题,提取LBP 特征向量时,增加多种亮度条件下的水印图像,可提升模型的鲁棒性。本文对2015 版100元人民币水印图像进行测试,同时,利用支持向量机(Support Vector Machine,SVM)[7]训练并测试数据集图像。 本文利用方向梯度直方图(Histogram of Oriented Gradient,HOG)[8]提取水印特征,并采用不同尺寸特征提取算子进行对比实验。
SVM 训练样本共包含50000 张水印图像,17000 张无水印图像,测试样本包含13505 张有水印图像、6262 张无水印图像。 为比较不同算法,水印图像识别结果,见表1。
表1 不同算法水印图像识别结果Tab.1 Watermark image recognition results with different algorithms
对有水印图像, 三种算法对不同光照条件下的水印图像都具有良好的识别效果,都能够满足识别要求。
本文算法对无水印图像具有100%的分辨力,与其他参与对比的两种算法相比, 识别准确率提高了3.3%以上。 对于无水印图像, 采用先HOG 提取特征后利用SVM 训练模型的方法,模型识别效果存在较大偏差,不能满足钞票检测过程中水印识别的要求。
通过对比实验,可以得出在不同光照条件下,本文算法具有较高的准确率,识别准确率99.96%,有效解决人民币水印图像识别困难的问题, 能够被应用于人民币水印图像的识别与检测中。
本文以2015 版100 元人民币为例,设计了一种基于LBP 特征的人民币水印图像的识别与检测方法,解决了基于机器视觉识别纸币水印难度大的问题。 通过对比实验,验证了LBP 算子对不同新旧程度的纸币水印特征提取具有较好的鲁棒性,采用增加样本图像种类的方法,提升算法对不同光照条件下水印图像识别与检测的准确率。