一种图像精细镂空图文的识别方法及装置
技术领域
本发明涉及图像处理应用中的纸币防伪点识别领域,具体涉及一种图像精细镂空图文的识别方法及装置。
背景技术
纸币流通环节中,常常有不法分子制造假币或恶意破坏纸币行为,扰乱金融货币市场流通环节的安全,在假币鉴别环节中,除了人工查验外,还会借助验钞设备,如点钞机,清分机等。这些验钞设备中,特别是用在银行等金融机构的设备中,一般都会配置CIS图像传感器,可采集纸币的图像信息,不同光谱下纸币会有不同的图像特征信息,基于此,可以对纸币的图像防伪点进行图像分析。
常见纸币防伪手段中,为加强防伪特性,会在纸币上增加精细镂空图文信息防伪特征。一般情况下,精细镂空图文在可见光下模糊可见,在红外透射光源下清晰可见,可以进行图像特征的量化分析,此仿伪点较难伪造。
针对精细镂空图文信息,目前常见的方法是,在红外透射通道抠取精细镂空图文所在区域,使用大津法计算二值化分割阈值,将图像进行二值化。计算二值化后图像连通域,统计连通域个数,面积,高度等信息,对比真币连通域分布特性,进行假币的判定。
结合实际使用的效果,上述方法存在如下缺点1、算法结果严重依赖二值化分割效果,不同图像传感器成像效果差异、图像校准前景背景对比度变化、目标纸币新旧差异等,二值化计算出来的阈值很难以最佳效果分割,导致计算连通域信息有差异,真币精细镂空图文信息计算结果一致性不稳定;2、算法耗时过长,整个算法耗时超过1ms,时间效率低,不符合应用场景算法耗时尽可能短的要求。
发明内容
鉴于现有技术中存在的技术缺陷和技术弊端,本发明实施例提供克服上述问题或者至少部分地解决上述问题的一种图像精细镂空图文的识别方法及装置,具体方案如下:
作为本发明的第一方法,提供一种图像精细镂空图文的识别方法,所述方法包括以下步骤:
步骤1,获取纸币的图像,抠取包含精细镂空图文区域的小图;
步骤2,从包含精细镂空图文区域的小图中定位安全线区域;
步骤3,在安全线区域内,按照等差抽样计算若干列,对抽样的每一列像素点从上往下查找灰度跳变点的分布情况,从而得到安全线区域内每一列的灰度跳变点分布情况,基于真币的所述灰度跳变点分布情况,判断所述纸币的真伪。
进一步地,所述图像为采集的纸币多光谱成像图像中的其中一种光源的成像图像。
进一步地,步骤1中,在获取纸币的图像后,还包括:
对获取的图像中的纸币位置进行角点位置的定位,获得图像中的纸币位置的四个角点位置;
通过获取的四个角点位置,对图像进行仿射变换,将随机的图像变换成目标像素大小且呈规则形状的纸币图像,步骤1中,从该图像中抠取包含精细镂空图文的小图。
进一步地,步骤2具体为:
对所述小图进行行抽样,分析每行像素点分布存在的一维矩形波特性,定位计算安全线具体坐标信息,具体如下:
通过十字滤波方法计算像素点的像素值:
A(i,j)=(A(i+1,j)+A(i-1,j)+A(i,j)+A(i,j-1)+A(i,j+1))/5;
其中,i,j为像素点对应的坐标信息,A(i,j)为坐标为(i,j)的点对应的像素值;
计算上升沿下降沿发生点:
上升沿计算公式:
(A(i,j)-Ref)+(A(i-1,j)-Ref)+(A(i-2,j)-Ref)+...+(A(i-n-1,j)-Ref)<=sum1;
(A(i+1,j)-Ref)+(A(i+2,j)-Ref)+(A(i+3,j)-Ref)+...+(A(i+n,j)-Ref)>=sum2;
下降沿计算公式:
(A(i,j)-Ref)+(A(i-1,j)-Ref)+(A(i-2,j)-Ref)+...+(A(i-n-1,j)-Ref)>=sum3;
(A(i+1,j)-Ref)+(A(i+2,j)-Ref)+(A(i+3,j)-Ref)+...+(A(i+n,j)-Ref)<=sum4;
其中,A(i,j)为坐标为(i,j)的点对应的像素值,Ref为二值化分割对应的基准,n为选定滑窗大小;
(A(i,j)-Ref)结果为逻辑运算结果0或1,求和公式表达意义为需满足的条件个数,即sum1,sum2,sum3,sum4,可知右边和范围为(0-n);
根据上述计算结果,横向抽样n行信息,可分别得出上升沿下降沿n对,分别为(A1(i0,i1),A2(i2,i3),A3(i4,i5),....,An(i(2(n-1)),i(2n-1))(其中n为正数,且n>=1),偶数i0,i2,...,i(2(n-1))为左边,i1,i3,...,i(2n-1)为右边,计算abs(i0,i2)≤error,abs(i1,i3)≤error,其中error为允许的偏移误差范围,依次类推,按照实际计算左右边有效对数,计做
valid_coordinates_count_left和valid_coordinates_count_right;
则安全线起始点和结束点为:
起始点:start_X=(i0+i2+...+i(2(n-1))/valid_coordinates_count_left,
结束点:end_y=(i1+i3+...+i(2n-1))/valid_coordinates_count_right
最后根据安全线起始点和结束点,定位安全线坐标位置。
进一步地,步骤3具体为:
在安全线纵向抽取列信息,每列抽取像素点总点数为total_count,滑窗单元计算分布点特征,选取滑窗大小为window_length,假设window_length为n,则滑窗内的点分别计做A(i),A(i-(n-1)),A(i-(n-2)),...A(i-n),设定变化率为delta,白区下限值为white_seg_value,
满足下列条件中任意一个条件就认为当前点有发生突变行为,将该点计数并标记为白区点,即突变点:
A(i)-A(i-(n-1))>=delta,A(i)-A(i-(n-2))>=delta,....,A(i)-A(i-(n))>=delta,其中,A(i)>=white_seg_value;
依上述方法计算该列白区点点数个数累加和为white_point_count,则白区点占该列全部点比例系数为:ratio=white_point_count/total_count;
获取真币对应的ratio的合理变化范围,并基于真币对应的ratio的合理变化范围,判断所述纸币的真伪。
作为本发明的第二方面,提供一种图像精细镂空图文的识别装置,所述装置包括图像抠取模块、安全线定位模块和纸币真伪判别模块;
所述图像抠取模块用于获取纸币的图像,根据精细镂空图文所处区域坐标信息,抠取包含精细镂空图文区域的小图;
所述安全线定位模块用于从包含精细镂空图文区域的小图中定位安全线区域;
所述纸币真伪判别模块用于在安全线区域内,按照等差抽样计算若干列,对抽样的每一列像素点从上往下查找灰度跳变点的分布情况,从而得到安全线区域内每一列的灰度跳变点分布情况,基于真币的所述灰度跳变点分布情况,判断所述纸币的真伪。
进一步地,所述图像为通过图像传感器采集的纸币多光谱成像图像中的其中一种光源的成像图像。
进一步地,所述装置还包括图像变换模块;
所述图像变换模块用于在获取纸币的图像后,对获取的图像中的纸币位置进行角点位置的定位,获得图像中的纸币位置的四个角点位置,通过获取的四个角点位置,对图像进行仿射变换,将随机的图像变换成目标像素大小且呈规则形状的纸币图像;
所述图像抠取模块从上述所述图像中抠取包含精细镂空图文的小图。
进一步地,所述安全线定位模块用于从包含精细镂空图文区域的小图中定位安全线坐标位具体为:
对所述小图进行行抽样,分析每行像素点分布存在的一维矩形波特性,定位计算安全线具体坐标信息,具体如下:
通过十字滤波方法计算像素点的像素值:
A(i,j)=(A(i+1,j)+A(i-1,j)+A(i,j)+A(i,j-1)+A(i,j+1))/5;
其中,i,j为像素点对应的坐标信息,A(i,j)为坐标为(i,j)的点对应的像素值;
计算上升沿下降沿发生点:
上升沿计算公式:
(A(i,j)-Ref)+(A(i-1,j)-Ref)+(A(i-2,j)-Ref)+...+(A(i-n-1,j)-Ref)<=sum1;
(A(i+1,j)-Ref)+(A(i+2,j)-Ref)+(A(i+3,j)-Ref)+...+(A(i+n,j)-Ref)>=sum2;
下降沿计算公式:
(A(i,j)-Ref)+(A(i-1,j)-Ref)+(A(i-2,j)-Ref)+...+(A(i-n-1,j)-Ref)>=sum3;
(A(i+1,j)-Ref)+(A(i+2,j)-Ref)+(A(i+3,j)-Ref)+...+(A(i+n,j)-Ref)<=sum4;
其中,A(i,j)为坐标为(i,j)的点对应的像素值,Ref为二值化分割对应的基准,n为选定滑窗大小;
(A(i,j)-Ref)结果为逻辑运算结果0或1,求和公式表达意义为需满足的条件个数,即sum1,sum2,sum3,sum4,可知右边和范围为(0-n);
根据上述计算结果,横向抽样n行信息,可分别得出上升沿下降沿n对,分别为(A1(i0,i1),A2(i2,i3),A3(i4,i5),....,An(i(2(n-1)),i(2n-1))(其中n为正数,且n>=1),偶数i0,i2,...,i(2(n-1))为左边,i1,i3,...,i(2n-1)为右边,计算abs(i0,i2)≤error,abs(i1,i3)≤error,其中error为允许的偏移误差范围,依次类推,按照实际计算左右边有效对数,计做valid_coordinates_count_left和valid_coordinates_count_right;
则安全线起始点和结束点为:
起始点:start_X=(i0+i2+...+i(2(n-1))/valid_coordinates_count_left,
结束点:end_y=(i1+i3+...+i(2n-1))/valid_coordinates_count_right
最后根据安全线起始点和结束点,定位安全线坐标位置。
进一步地,所述纸币真伪判别模块判断纸币真伪具体为:
在安全线纵向抽取列信息,每列抽取像素点总点数为total_count,滑窗单元计算分布点特征,选取滑窗大小为window_length,假设window_length为n,则滑窗内的点分别计做A(i),A(i-(n-1)),A(i-(n-2)),...A(i-n),设定变化率为delta,白区下限值为white_seg_value,
满足下列条件中任意一个条件就认为当前点有发生突变行为,将该点计数并标记为白区点,即突变点:
A(i)-A(i-(n-1))>=delta,A(i)-A(i-(n-2))>=delta,....,A(i)-A(i-(n))>=delta,其中,A(i)>=white_seg_value;
依上述方法计算该列白区点点数个数累加和为white_point_count,则白区点占该列全部点比例系数为:ratio=white_point_count/total_count;
获取真币对应的ratio的合理变化范围,并基于真币对应的ratio的合理变化范围,判断所述纸币的真伪。
本发明具有以下有益效果:
1.准确定位坐标信息,将计算聚焦为目标精细镂空图文信息上,且运算过程无复杂数学计算,时间效率高,约0.4ms左右,且算法耗时还有优化空间;
2.前景镂空图文的提取,不依赖二值化固定阈值,通过滑动数列单元依次计算图像梯度信息,能有效的通过数学描述提取精细镂空图文信息,鲁棒性更强。
附图说明
图1为本发明实施例提供的人民币2015版本100元的可见光成像图;
图2为本发明实施例提供的人民币2015版本100元的红外透射光成像图;
图3为《人民币现金机具鉴别能力技术规范》(JR/T0154-2017)检测中的精细镂空图文假币检测样张图;
图4为本发明实施例提供的一种图像精细镂空图文的识别方法流程图;
图5为本发明实施例提供的包含精细镂空图文区域的小图示意图;
图6为本发明实施例提供的对小图进行行抽样的示意图;
图7为本发明实施例提供的对安全线区域进行列抽样的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
2015年新发行的人民币2015版本100元,其中纸币正面右侧安全线上新增有精细镂空图文信息,如图1所示,该精细镂空图文信息在可见光下模糊可见,如图2所示,该精细镂空图文信息在红外透射光源下清晰可见,所述黑色的安全线上具有白色的100字样的精细镂空图文,此防伪点较难伪造,且《人民币现金机具鉴别能力技术规范》(JR/T0154-2017)检测中也有精细镂空图文假币检测样张,如图3所示,在此背景下,点钞机及清分机等金融设备,需具备精细镂空图文信息的识别能力,下面将以2015版本100元为例(图1、图2),阐述该方法的过程。此方法不限于应用在2015版本100元,且包含其他类有精细镂空图文特征的纸币(人民币、外币)等。
如图4所述,作为本发明的第一实施例,提供一种图像精细镂空图文的识别方法,所述方法包括以下步骤:
步骤1,获取纸币的图像,根据精细镂空图文所处区域坐标信息,抠取包含精细镂空图文区域的小图,如图5所示,图中黑线即为安全线,黑线上的白色图文即为精细镂空图文。
其中,所述图像为采集的纸币多光谱成像图像中的其中一种光源的成像图像,该成像图像需能显示精细镂空图文信息,在获取纸币的图像后还包括:
对获取的图像中的纸币位置进行角点位置的定位,获得图像中的纸币位置的四个角点位置;
通过获取的四个角点位置,对图像进行仿射变换,将随机的图像变换成目标像素大小且呈规则形状的纸币图像,从该图像中抠取包含精细镂空图文的小图;
其中,仿射变化的公式如下:
通过仿射变换,将图像坐标(x,y)变换为(x’,y’),对当前图像校正到和X轴CIS图像传感器安装的横向平行,方便建立平面直角坐标系来描述图像中的像素信息。
步骤2,从包含精细镂空图文区域的小图中定位安全线区域,具体为:
对所述小图进行行抽样,分析每行像素点分布存在的一维矩形波特性,定位计算安全线具体坐标信息,具体如下:
通过十字滤波方法计算像素点的像素值:
A(i,j)=(A(i+1,j)+A(i-1,j)+A(i,j)+A(i,j-1)+A(i,j+1))/5;
其中,i,j为像素点对应的坐标信息,A(i,j)为坐标为(i,j)的点对应的像素值;
计算上升沿下降沿发生点:
上升沿计算公式:
(A(i,j)-Ref)+(A(i-1,j)-Ref)+(A(i-2,j)-Ref)+...+(A(i-n-1,j)-Ref)<=sum1;
(A(i+1,j)-Ref)+(A(i+2,j)-Ref)+(A(i+3,j)-Ref)+...+(A(i+n,j)-Ref)>=sum2;
下降沿计算公式:
(A(i,j)-Ref)+(A(i-1,j)-Ref)+(A(i-2,j)-Ref)+...+(A(i-n-1,j)-Ref)>=sum3;
(A(i+1,j)-Ref)+(A(i+2,j)-Ref)+(A(i+3,j)-Ref)+...+(A(i+n,j)-Ref)<=sum4;
其中,A(i,j)为坐标为(i,j)的点对应的像素值,Ref为二值化分割对应的基准,n为选定滑窗大小;
(A(i,j)-Ref)结果为逻辑运算结果0或1,求和公式表达意义为需满足的条件个数,即sum1,sum2,sum3,sum4,可知右边和范围为(0-n);
如图6所示,根据上述计算结果,横向抽样n行信息,可分别得出上升沿下降沿n对,分别为(A1(i0,i1),A2(i2,i3),A3(i4,i5),....,An(i(2(n-1)),i(2n-1))(其中n为正数,且n>=1),偶数i0,i2,...,i(2(n-1))为左边,i1,i3,...,i(2n-1)为右边,计算abs(i0,i2)≤error,abs(i1,i3)≤error,其中error为允许的偏移误差范围,依次类推,按照实际计算左右边有效对数,计做valid_coordinates_count_left和valid_coordinates_count_right;
则安全线起始点和结束点为:
起始点:start_X=(i0+i2+...+i(2(n-1))/valid_coordinates_count_left,
结束点:end_y=(i1+i3+...+i(2n-1))/valid_coordinates_count_right
最后根据安全线起始点和结束点,定位安全线坐标位置。
步骤3,在安全线区域内,按照等差抽样计算每一列,对抽样的每一列像素点从上往下查找灰度跳变点的分布情况,从而得到安全线区域内每一列的灰度跳变点分布情况,如图7所示,基于真币的所述灰度跳变点分布情况,判断所述纸币的真伪,具体为:
在安全线纵向抽取列信息,每列抽取像素点总点数为total_count,滑窗单元计算分布点特征,选取滑窗大小为window_length,假设window_length为n,则滑窗内的点分别计做A(i),A(i-(n-1)),A(i-(n-2)),...A(i-n),设定变化率为delta,白区下限值为white_seg_value,
满足下列条件中任意一个条件就认为当前点有发生突变行为,将该点计数并标记为白区点,即突变点:
A(i)-A(i-(n-1))>=delta,A(i)-A(i-(n-2))>=delta,....,A(i)-A(i-(n))>=delta,其中,A(i)>=white_seg_value;
依上述方法计算该列白区点点数个数累加和为white_point_count,则白区点占该列全部点比例系数为:ratio=white_point_count/total_count;
获取真币对应的ratio的合理变化范围,并基于真币对应的ratio的合理变化范围,判断所述纸币的真伪。
例如,若纵向多列信息算出的比例系数ratio都不在合理变化范围内,则认定图像精细镂空图文信息异常,所述纸币为假币;反之,则正常,所述纸币为真币。
作为本发明的第二方面,提供一种图像精细镂空图文的识别装置,所述装置包括图像抠取模块、安全线定位模块和纸币真伪判别模块;
所述图像抠取模块用于获取纸币的图像,根据精细镂空图文所处区域坐标信息,抠取包含精细镂空图文区域的小图;
所述安全线定位模块用于从包含精细镂空图文区域的小图中定位安全线区域;
所述纸币真伪判别模块用于在安全线区域内,按照等差抽样计算若干列,对抽样的每一列像素点从上往下查找灰度跳变点的分布情况,从而得到安全线区域内每一列的灰度跳变点分布情况,基于真币的所述灰度跳变点分布情况,判断所述纸币的真伪。
优选地,所述图像为通过图像传感器采集的纸币多光谱成像图像中的其中一种光源的成像图像。
优选地,所述装置还包括图像变换模块;
所述图像变换模块用于在获取纸币的图像后,对获取的图像中的纸币位置进行角点位置的定位,获得图像中的纸币位置的四个角点位置,通过获取的四个角点位置,对图像进行仿射变换,将随机的图像变换成目标像素大小且呈规则形状的纸币图像;
所述图像抠取模块从上述所述图像中抠取包含精细镂空图文的小图。
优选地,所述安全线定位模块用于从包含精细镂空图文区域的小图中定位安全线坐标位具体为:
对所述小图进行行抽样,分析每行像素点分布存在的一维矩形波特性,定位计算安全线具体坐标信息,具体如下:
通过十字滤波方法计算像素点的像素值:
A(i,j)=(A(i+1,j)+A(i-1,j)+A(i,j)+A(i,j-1)+A(i,j+1))/5;
其中,i,j为像素点对应的坐标信息,A(i,j)为坐标为(i,j)的点对应的像素值;
计算上升沿下降沿发生点:
上升沿计算公式:
(A(i,j)-Ref)+(A(i-1,j)-Ref)+(A(i-2,j)-Ref)+...+(A(i-n-1,j)-Ref)<=sum1;
(A(i+1,j)-Ref)+(A(i+2,j)-Ref)+(A(i+3,j)-Ref)+...+(A(i+n,j)-Ref)>=sum2;
下降沿计算公式:
(A(i,j)-Ref)+(A(i-1,j)-Ref)+(A(i-2,j)-Ref)+...+(A(i-n-1,j)-Ref)>=sum3;
(A(i+1,j)-Ref)+(A(i+2,j)-Ref)+(A(i+3,j)-Ref)+...+(A(i+n,j)-Ref)<=sum4;
其中,A(i,j)为坐标为(i,j)的点对应的像素值,Ref为二值化分割对应的基准,n为选定滑窗大小;
(A(i,j)-Ref)结果为逻辑运算结果0或1,求和公式表达意义为需满足的条件个数,即sum1,sum2,sum3,sum4,可知右边和范围为(0-n);
根据上述计算结果,横向抽样n行信息,可分别得出上升沿下降沿n对,分别为(A1(i0,i1),A2(i2,i3),A3(i4,i5),....,An(i(2(n-1)),i(2n-1))(其中n为正数,且n>=1),偶数i0,i2,...,i(2(n-1))为左边,i1,i3,...,i(2n-1)为右边,计算abs(i0,i2)≤error,abs(i1,i3)≤error,其中error为允许的偏移误差范围,依次类推,按照实际计算左右边有效对数,计做
valid_coordinates_count_left和valid_coordinates_count_right;
则安全线起始点和结束点为:
起始点:start_X=(i0+i2+...+i(2(n-1))/valid_coordinates_count_left,
结束点:end_y=(i1+i3+...+i(2n-1))/valid_coordinates_count_right
最后根据安全线起始点和结束点,定位安全线坐标位置。
优选地,所述纸币真伪判别模块判断纸币真伪具体为:
在安全线纵向抽取列信息,每列抽取像素点总点数为total_count,滑窗单元计算分布点特征,选取滑窗大小为window_length,假设window_length为n,则滑窗内的点分别计做A(i),A(i-(n-1)),A(i-(n-2)),...A(i-n),设定变化率为delta,白区下限值为white_seg_value,
满足下列条件中任意一个条件就认为当前点有发生突变行为,将该点计数并标记为白区点,即突变点:
A(i)-A(i-(n-1))>=delta,A(i)-A(i-(n-2))>=delta,....,A(i)-A(i-(n))>=delta,其中,A(i)>=white_seg_value;
依上述方法计算该列白区点点数个数累加和为white_point_count,则白区点占该列全部点比例系数为:ratio=white_point_count/total_count;
获取真币对应的ratio的合理变化范围,并基于真币对应的ratio的合理变化范围,判断所述纸币的真伪。
例如,若纵向多列信息算出的比例系数ratio都不在合理变化范围内,则认定图像精细镂空图文信息异常,所述纸币为假币;反之,则正常,所述纸币为真币。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。