基于稀疏表示的硬币图像识别方法
技术领域
发明属于图像处理技术领域,涉及一种对硬币图像进行处理和识别的方法,具体是一种基于稀疏表示的硬币图像识别方法。
技术背景
随着自助应用设备的普及,越来越多的场合要求设备具有识别硬币的功能,特别是市场上假币和大量游戏币的出现,对硬币识别提出了更高的要求。根据现有的文献,目前硬币识别方法主要有两种:一种是用振荡线圈在硬币通过的币道上产生电磁场,硬币通过时币内产生涡电流,通过硬币中产生的涡电流与振荡线圈互感,引起电路电感量的变化来识别硬币;另一种是用像机获取硬币图像,从硬币表面提取具有旋转不变性的特征(如灰度或纹理的统计特性),用于区分和识别硬币图像,这种方法的难点在于如何提取具有旋转不变性且可以区分各硬币的特征。目前已经公开的文献资料,还没有采用基于稀疏表示的方法来实现硬币图像识别的研究。
发明内容
本发明的目的是针对传统硬币图像识别方法中提取硬币表面具有旋转不变性特征的难点,提出一种基于稀疏表示的硬币图像识别方法,该方法无需提取硬币表面具有旋转不变性的特征。
本发明方法识别的对象是目前市面上流通的第四套和第五套硬币,币值分别为一角、五角和一元,分为10类(见表1)。
表1硬币类别序号与类别信息和面值对应表
类别序号
类别信息
面值
第1类
第四套1角硬币正面图像
1角
第2类
第四套5角硬币正面图像
5角
第3类
第四套1元硬币正面图像
1元
第4类
第四套1角硬币反面图像
1角
第5类
第五套5角硬币正面图像
5角
第6类
第五套1角硬币反面图像
1角
第7类
第五套5角硬币反面图像
5角
类别序号
类别信息
面值
第8类
第五套1元硬币反面图像
1元
第9类
第四套5角硬币反面与1元硬币反面
需进一步确定正面类别
第10类
第五套1角硬币正面与1元硬币正面
需进一步确定反面类别
硬币图像识别方法的具体步骤如下:
步骤(1)硬币图像预处理
获取硬币正反面(定义币值一面为正面,另一面为反面)的灰度图像,利用现有的边缘检测技术(如Sobel,Prewitt,Canny算子等)和Hough变换圆检测方法确定硬币区域,对硬币区域大小标准化,得到背景灰度值为0、硬币区域灰度值非0的硬币图像,图像大小为N×N,N=2R,R为硬币区域半径。
步骤(2)将测试硬币图像表达为训练样本集合的稀疏表示
预处理后的硬币灰度图像表示为归一化向量v∈Rm(m=N×N)。设硬币图像共n个训练样本,组成训练样本集矩阵A=[v1,…,vn]=[A1,…,A10]∈Rm×n,
表示第i类硬币图像的ni个训练样本构成的子矩阵。设测试图像y∈Rm是第i类硬币图像,其稀疏表示为:y=Ax (1)
其中
是一个稀疏矢量,其中
是第i类硬币图像所对应的系数矢量。
由于拍摄角度不同,同一个硬币在相同光照条件下可以产生许多姿态不同的样本图像。如果进一步结合不同的光照条件将会导致硬币训练样本数n变得非常庞大,计算复杂度大幅度上升,对计算机的硬件配置提出了很高的要求,给求解问题带来困难。为此,对第i类硬币图像的ni个训练样本进行筛选,设其所构成的矩阵
首先对第i类硬币图像中每个样本以角度Δφ为步长进行旋转,每个样本就扩展成p个角度样本,其中p=int(360/Δφ+0.5),则第i类训练样本个数由ni个扩展到ni×p个,相应地
由于一旦获得测试图像y,其姿态就确定下来,y所处的姿态只与p个中的某几个角度样本相接近。然后采用ni×p个训练样本的线性组合来表示y,则只有某些角度样本对测试图像y的线性表示作出了贡献,将其表示为:y=Aiωi (2)
ωi(i=1~10)表示稀疏的系数矢量。使m<ni×p,采用现有的凸优化方法求解欠定方程:
ω^i=argmin||ωi||1ωi:ωi≥0s.t.Aiωi=y---(3)]]>
其中‖·‖1是l1-范数。
选取
中不为0的系数所对应的训练样本构成子矩阵
其中
是
中不为0的系数个数,则得到重新构成的训练样本矩阵
代入式(1),获得的重新构成的训练样本矩阵A维数得到减少。
使
采用现有的凸优化方法求解欠定方程:
x^=argmin||x||1x:x≥0s.t.Ax=y---(4)]]>
求得最佳![]()
步骤(3)初步确定硬币图像面值
定义函数δi:Rn′→Rn′,它只保留
中第i类硬币图像所对应的系数,其余系数置为0,即:
δi(x)=[0···0xiT0···0]T∈Rn′---(5)]]>
由式(5)重建测试样本
重建误差
具有最小误差所对应的类别i就是y的类别,其中‖·‖2是l2-范数。
如果y的类别属于第1类到第8类中的任意一类,则初步确定硬币面值;如果属于第9类硬币图像,则进一步确定其正面图像的类别是否属于第2类或第3类,属于第2类或第3类则初步确定硬币面值,反之,则提示“异常硬币”;如果属于第10类硬币图像,则进一步确定其反面图像的类别是否属于第6类或第8类,属于第6类或第8类则初步确定硬币面值,反之,则提示“异常硬币”。
步骤(4)鉴别假硬币,确定硬币面值
对于给定的第i类硬币图像测试样本y的非零系数主要集中于第i类硬币的训练样本所对应的xi中,因此系数矢量
和δi(x)具有非常相似的特点,而假硬币图像与12种可能的图像差异较大,计算所得的
与δi(x)相差较大,测试样本y的非零系数比较分散。基于此特点,鉴别假硬币图像与硬币图像的具体方法如下:
thri=10×maxi||δi(x)||1/||x||1-110-1<τ---(6)]]>
式(6)中thri∈[0,1],τ为设定的阈值。如thri≥τ,该测试样本为真实硬币,则步骤(3)确定的面值即为硬币面值;如thri<τ,该测试样本为假硬币。
本发明方法以硬币区域最直观的灰度值作为特征,无需提取具有旋转不变性的硬币表面特征,方法实现简单,且具有鉴别假硬币的功能。本发明考虑了不同光照条件下的样本,因此本方法对光照变化不敏感;考虑了不同角度姿态的硬币样本,因此本方法的识别结果具有旋转不变性。
具体实施方式
下面结合实施例对本发明进一步说明。
本发明基于稀疏表示的硬币图像识别方法是:
步骤(1)硬币图像预处理
获取硬币正反面(定义币值一面为正面,另一面为反面)的灰度图像,利用现有的边缘检测技术(如Sobel,Prewitt,Canny算子等)和Hough变换圆检测方法确定硬币区域,对硬币区域大小标准化,得到背景灰度值为0、硬币区域灰度值非0的硬币图像,图像大小为N×N,N=2R,R是预设的以像素表示的硬币半径,如R=16。R不宜取太大,如果太大,则样本数n必须足够大才能使方程(3)和(4)满足欠定方程的条件,而且会大大增加计算耗时;也不宜太小,太小会影响识别准确性。。
步骤(2)将测试硬币图像表达为训练样本集合的稀疏表示
预处理后的硬币灰度图像表示为归一化向量v∈Rm(m=N×N)。设硬币图像共n个训练样本,组成训练样本集矩阵A=[v1,…,vn]=[A1,…,A10]∈Rm×n,
表示第i类硬币图像的ni个训练样本构成的子矩阵。设测试图像y∈Rm是第i类硬币图像,其稀疏表示为:y=Ax (1)
其中
是一个稀疏矢量,其中
是第i类硬币图像所对应的系数矢量。
对第i类硬币图像的ni个训练样本进行筛选,设其所构成的矩阵
首先对第i类硬币图像中每个样本以角度Δφ为步长进行旋转,Δφ是预设的值,如Δφ=1°。每个样本就扩展成p个角度样本,其中p=int(360/Δφ+0.5)=360,则第i类训练样本个数由ni个扩展到ni×p个,相应地
由于一旦获得测试图像y,其姿态就确定下来,y所处的姿态只与p个中的某几个角度样本相接近。然后采用ni×p个训练样本的线性组合来表示y,则只有某些角度样本对测试图像y的线性表示作出了贡献,将其表示为:
y=Aiωi (2)
ωi(i=1~10)表示稀疏的系数矢量。使m<ni×p,采用现有的凸优化方法求解欠定方程:
ω^i=argmin||ωi||1ωi:ωi≥0s.t.Aiωi=y---(3)]]>
其中‖·‖1是l1-范数。
选取
中不为0的系数所对应的训练样本构成子矩阵
如第1类求得
除ω100,ω101,ω102不为0,其余都为0,则![]()
其中a100,a101,a102分别是训练样本A1的第100,101,102个列向量,其中
是
中不为0的系数个数,则得到重新构成的训练样本矩阵
代入式(1),获得的重新构成的训练样本矩阵A维数得到减少。
使
采用现有的凸优化方法求解欠定方程:
x^=argmin||x||1x:x≥0s.t.Ax=y---(4)]]>
求得最佳![]()
步骤(3)初步确定硬币图像面值定义函数δi:Rn′→Rn′,它只保留
中第i类硬币图像所对应的系数,其余系数置为0,即:
δi(x)=[0···0xiT0···0]T∈Rn′---(5)]]>
如:
![]()
其中Δij≠0,则
![]()
由式(5)重建测试样本
重建误差
具有最小误差所对应的类别i就是y的类别,其中‖·‖2是l2-范数。
如果y的类别属于第1类到第8类中的任意一类,则初步确定硬币面值;如果属于第9类硬币图像,则进一步确定其正面图像的类别是否属于第2类或第3类,属于第2类或第3类则初步确定硬币面值,反之,则提示“异常硬币”;如果属于第10类硬币图像,则进一步确定其反面图像的类别是否属于第6类或第8类,属于第6类或第8类则初步确定硬币面值,反之,则提示“异常硬币”。
步骤(4)鉴别假硬币,确定硬币面值,具体方法如下:
thri=10×maxi||δi(x)||1/||x||1-110-1<τ---(6)]]>
式(6)中thri∈[0,1],τ为设定的阈值。如thri≥τ,该测试样本为真实硬币,则步骤(3)确定的面值即为硬币面值;如thri<τ,该测试样本为假硬币。
摘要
本发明涉及基于稀疏表示的硬币图像识别方法。本发明的具体步骤是:首先获得不同光照条件下的硬币正反面的灰度图像,进行预处理确定硬币区域,标准化硬币图像大小;将训练样本图像扩展成多个角度样本并筛选出最主要的训练样本,将测试硬币样本表达为训练样本集合的稀疏表示,求解最佳的稀疏系数矢量;重建测试硬币图像,利用重建误差确定硬币图像类别;然后利用稀疏系数矢量的统计特性鉴别硬币的真假。本发明无需提取具有旋转不变性的硬币表面特征即可识别硬币图像,且具有鉴别假硬币的功能。