刘贯伟,张云峰,安增花,武艳红
(恒银金融科技股份有限公司 天津300281)
目前各大厂商的现金自助设备已经具备较高的钞票处理速度,现金存取款一体机达到 8张/s以上,清分机可以达到 15张/s以上,每张钞票的识别时间只有几十毫秒,需要完成钞票类型识别、鉴伪识别、冠字号识别(部分币种需要识别两个冠字号,如2015版 100元人民币等)、清分信息识别等,其中钞票类型的识别是鉴伪识别、冠字号识别、清分信息识别的前提和基础。
每个国家的钞票一般有多个面额,如人民币具有5个面额:1元、5元、10元、50元、100元,其中目前流通的还有 1999版、2005版、2015版以及 2019年8月30日发行的2019版,每张钞票在现金自助设备搬送过程有 4个面向,包括正面正向、正面反向、反面正向、反面反向。
钞票类型包括国别、面额、版本、面向 4方面信息。在现金自助设备使用过程中,钞票识别模块识别1张钞票所有信息只有几十毫秒的时间,而钞票类型识别只能占用 20毫秒左右的时间,在清分机等高速设备中甚至要求更短时间内完成识别,因此快速准确识别钞票类型是现金自助设备稳定运行的关键。
针对单国别(如人民币)钞票类型的识别,目前大多数采用机器学习技术[1],而且在识别时间和准确性2方面均取得了很好的效果。但是面对多国钞票识别时,识别速度和准确性往往不能兼顾,尤其是在同时处理 10个国家以上的钞票时,总识别种类将达到几百类,识别时间和识别准确性问题会更加突出。
文章针对现金自助设备钞票识别的问题,提出2层识别机制,分别采用图像感知哈希技术,快速完成初级识别,筛选出一部分可能的钞票类型,再在第一层识别基础之上利用 MOSSE相关滤波器做第二层识别,准确确定钞票类型。
图像感知哈希技术可以将任意分辨率的图像数据转化为几十、几百或几千个比特的二值序列,而且满足鲁棒性、安全性等要求,可以用于图像搜索、图像版权认证等[2,3]。张维克等利用图像 DCT(离散余弦变换)低频系数的感知不变性得到安全哈希序列索引,具有较好的唯一性、鲁棒性和安全性,但是只能抵抗3°以下的旋转[4]。
感知哈希生成框架基本包含 3个部分:特征提取、量化和编码,其中特征提取是图像感知哈希生成的关键[4]。图像感知哈希算法计算过程[5]如下:
①缩小图像:收缩到 32×32的大小,方便计算DCT(离散余弦变换)。
②由于钞票图像一般都是灰度图像,可以直接使用可见光的灰度图像。
③计算 DCT,并去掉高频信息,保留左上角的8×8区域的低频信息。
④计算缩小 DCT后的所有像素点的平均值,大于平局值记为 1,反之记为0,得到 64位的该图像的哈希值。
MOSSE滤波方法是在ASEF等方法的基础上提出来的,和传统方法相同的是,为获得相应的滤波器,该算法也需要一系列的输入图像作为训练样本。一般输出图像指定为具有二维高斯分布形状,其峰值位于输入图像的中心[6]。
由卷积定理可知,空域中的卷积可以利用频域中矩阵逐元素相乘得到,从而免去空域中麻烦耗时的卷积运算。对于每个输入训练样本图像 Fi,由于输出图像Gi是提前指定,因此滤波器为[6]:
假设最终需要的滤波器为 H,MOSSE通过最小化输出均方和误差来获得初始的滤波器,该优化问题可以表示如下:
其中*表示对应元素相乘。由于滤波器H的所有元素都是由频域空间中矩阵对应位置上的元素相乘得到,其每一个元素(有 w、v标识位置)都可以被独立解得。将 Hwv视为独立的元素,问题变成如下式所表示形式:
文献[6]中给出了H的解析解:
文献[6]同时给出了具体证明过程,这里不再详细叙述,由此得到MOSSE滤波器的初始解。
文章设计实现的多国钞票币种信息识别方法,分为2个步骤:
①第一层识别,利用感知哈希算法初级筛选。
②第二层识别,利用 MOSSE滤波器进行最终确认。
图像感知哈希实现,选取钞票正面向传感器产生的可见光图像的5个位置区域,包括钞票正面4个角和正中区域。每个区域分别计算感知哈希指纹,计算方法前文已有表述。
图像感知哈希识别过程,分为 2个阶段:初始阶段和识别阶段。初始阶段,完成原始标准图像的感知哈希指纹的获取;识别阶段,如图3所示,对待识别钞票图像计算哈希指纹并与原始标准哈希指纹匹配。具体过程如下:
①初始阶段:获取原始标准图像感知哈希指纹,对所有需要识别钞票的 5个位置区域的图像感知哈希指纹,对所有需要识别钞票,分4个面向采集4张标准图像,其中需要图像倾斜角度小于 0.1°,尽可能保证原始模板图像不倾斜。计算得到的哈希指纹,作为模板存储在内存中以供计算使用。
图1 利用图像感知哈希算法识别过程Fig.1 Recognition process using image perceptual hash algorithm
②识别阶段:计算哈希指纹匹配结果,对待识别钞票图像计算感知哈希指纹匹配结果;根据计算结果筛选出可能钞票类型,文章采用5个位置区域的匹配结果均大于0.6,即认为是可能的钞票类型。
由于各国钞票的尺寸不一,因此选取钞票中心区域作为MOSSE相关滤波器的目标区域,选取正反面的可见光图像中间区域作为目标区域,利用 2个MOSSE滤波器,同时计算匹配结果,确认识别钞票类型。
MOSSE算法实现,分为2个阶段:训练阶段、计算识别阶段。
①训练阶段:对所有需要识别钞票的图像(正反面可见光图像),分别训练对应的MOSSE滤波器。
②识别阶段:计算待识别钞票的MOSSE滤波器输出,使用峰瓣率 PSR(Peak-to-Sidelobe-Ratio)表征匹配和定位情况[6]。
其中 peak表示实际输出结果中的峰值,μ和σ表示以峰值为中心的 11×11窗口内像素的均值和方差。
待识别的钞票通过与可能的钞票类型的标准滤波器计算后,得到所有PSR输出,找到最大值即得到最佳匹配值,即获得了钞票类型。
对人民币、美元、以色列谢克尔、菲律宾比索、印度尼西亚卢比、伊朗里亚尔、柬埔寨瑞尔、印度卢比、孟加拉塔卡、俄罗斯卢布 10个国家的流通货币进行测试,总测试样本数量 10万张,钞票类型识别率达到99.95%以上。
在金融自助设备运行过程中,对于待识别的钞票图像,存在 2个不确定因素:①钞票倾斜,钞票在自助设备中运送过程不可避免地会出现倾斜,而且倾斜角度是随机分布的;②图像亮度变化,由于钞票的新旧程度和 CIS传感器不一致性问题,钞票图像亮度会出现不一致。
针对这 2类问题,MOSSE滤波器在进行初始化训练时,加入倾斜样本,因此对钞票倾斜具有一定的抵抗能力。由于 MOSSE是对目标外观进行建模,因此MOSSE滤波器对外部光照的变化不敏感。测试结果也显示对随机倾斜角度以及亮度不一致的钞票同样具备很好的识别能力。
部分钞票,不同版本,图像几乎相同,如人民币的1999版的和2005版,此类钞票不在文章讨论范围内,后续可以利用其他光谱的图像或者可见光图像的微小区别再进行识别。
文章以人民币、谢克尔、卢布等钞票为例,详细介绍利用图像感知哈希和 MOSSE算法解决多国钞票类型快速识别的理论原理和实现方法,并且测试结果也验证了原理和方法的正确性:用感知哈希算法进行初次筛选,用 MOSSE进行最终确认币种,可以满足币种信息识别对时间和准确性的要求。