CN111209872A - 一种基于动态规划和多目标优化的实时滚动指纹拼接方法 - Google Patents

一种基于动态规划和多目标优化的实时滚动指纹拼接方法 Download PDF

Info

Publication number
CN111209872A
CN111209872A CN202010021843.5A CN202010021843A CN111209872A CN 111209872 A CN111209872 A CN 111209872A CN 202010021843 A CN202010021843 A CN 202010021843A CN 111209872 A CN111209872 A CN 111209872A
Authority
CN
China
Prior art keywords
image
fingerprint
frame
block
splicing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010021843.5A
Other languages
English (en)
Other versions
CN111209872B (zh
Inventor
张永良
吴一帆
高明华
罗天
徐远洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University of Technology ZJUT
Original Assignee
Zhejiang University of Technology ZJUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University of Technology ZJUT filed Critical Zhejiang University of Technology ZJUT
Priority to CN202010021843.5A priority Critical patent/CN111209872B/zh
Publication of CN111209872A publication Critical patent/CN111209872A/zh
Application granted granted Critical
Publication of CN111209872B publication Critical patent/CN111209872B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/13Sensors therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4038Scaling the whole image or part thereof for image mosaicing, i.e. plane images composed of plane sub-images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/1365Matching; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/32Indexing scheme for image data processing or generation, in general involving image mosaicing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image

Abstract

一种基于动态规划和多目标优化的滚动指纹拼接方法,首先,将指纹图像分割成多个小矩形块,通过二分搜索快速定位指纹中心区域。然后,对分割后的图像进行相应行的拼接,并根据动态规划思想利用非降帧序列对所有行进行优化。最后,采用基于偏离度的拼接缝隙检测,将拼接结果图像中的缝隙区域有效检测出来,结合多目标优化思想进行有效的质量优化。该方法能得到更加完整、有效的指纹面积,在提高指纹识别精度上优于现有方法,本发明提高指纹拼接精度、获取更多有效指纹面积且无明显拼接缝隙。

Description

一种基于动态规划和多目标优化的实时滚动指纹拼接方法
技术领域
本发明涉及图像处理和模式识别等领域,尤其是一种滚动指纹图像序列拼接与拼接缝隙优化方法。
背景技术
随着计算机技术的发展,生物识别技术已成为身份认证的首选方法,而指纹认证是最常用的方法。市场上的指纹采集器通常用平面压印法采集小面积的指纹,以致于采集人员很难每次采集到相同的指纹区域,提高了指纹认证的拒绝率。通过滚动同一根手指来捕获一系列指纹图像,并对其进行拼接以获得完整的滚动指纹,可以克服上述缺点。与平面指纹相比,滚动指纹的有效面积增加,提供了更多的指纹特征信息,使得身份认证更加准确。
传统的指纹采集方法是采用墨压法采集滚动指纹。沾有墨水的手指在纸上滚动,然后墨水留在纸上,形成滚动的指纹。随着指纹采集器的发明,当手指在指纹采集器上滚动时,可以方便地采集指纹序列。通过指纹拼接,指纹序列可以得到完整的滚动指纹。目前,已有很多滚动指纹拼接方法。Duan等人提出了一种基于覆盖的拼接方法,通过计算每个像素的置信度来合成图像,并给出了5种合成方案。Wang Peng等人提出了一种波形匹配方法来提取基准区域的波形信息,并比较两个相邻帧的波形相似度来估计位移。Liu He等人对马赛克线进行了定位,并对马赛克线附近区域进行了加工,取得了较好的效果。Zhang等人提出了一种基于关键列的滚动指纹实时拼接方法,利用关键列的选择来获得列序列。同时,为了消除指纹滚动过程中手指变形的影响,通过计算质心点的位置,将行序列分为上下两个序列。
发明内容
为了克服现有的滚动指纹拼接技术得到的拼接结果中拼接缝隙明显且难以提高指纹识别的精度的问题,本发明提供了一种提高指纹拼接精度、获取更多有效指纹面积且无明显拼接缝隙的基于动态规划和多目标优化的实时滚动指纹拼接方法,该方法能得到更加完整、有效的指纹面积,在提高指纹识别精度上优于现有方法。首先,将指纹图像分割成多个小矩形块,通过二分搜索快速定位指纹中心区域。然后,对分割后的图像进行相应行的拼接,并根据动态规划思想利用非降帧序列对所有行进行优化。最后,采用基于偏离度的拼接缝隙检测,将拼接结果图像中的缝隙区域有效检测出来,结合多目标优化思想进行有效的质量优化。
为了解决本发明涉及到问题的目的,本发明采用如下技术方案:
一种基于动态规划和多目标优化的实时滚动指纹拼接方法,包括以下步骤:
1)滚动指纹的检测,过程如下:
1.1)首先,利用初始状态下采集仪未放手指的采集界面作为背景帧I0。从检测出第一张指纹图像开始直至指纹消失,指纹采集仪能得到一系列指纹的灰度图像,该图像序列可用帧序列集合I={I1,I2,...,In}表示,其中Ii表示第i帧图像;
1.2)定义Ii(x,y)表示第i帧源图像中坐标为(x,y)的像素点灰度值,统计第i帧图像前景点数FGi,按照以下公式:
FGi=|{(x,y)||Ii(x,y)-I0(x,y)|>T1}|
其中,|{·}|表示集合中像素点的个数,T1是阈值;
1.3)图像的前景点数能有效地判断指纹是否出现,若第i帧图像的前景点数FGi大于设定阈值T2则认为该图像是指纹图像,反之则不是指纹图像;
2)图像块分割,过程如下:
2.1)将高为H、宽为W的指纹图像以矩形块形式分割,将其分割成若干个相同块,分割所得块的高为h、宽为w,若以W'表示宽度方向上切割块数的数量,H'表示高度方向上切割块数的数量,那么分割出来的块数为W'×H',图像块分割表达式如下:
Figure BDA0002361083070000021
2.2)对源图像序列进行图像分割,I′i表示图像分割后的第i帧图像,定义I′i(a,b)表示第i帧源图像分割后中第a行第b个图像块的灰度和,其值等于图像块内所有像素点的灰度值总和,如下:
Figure BDA0002361083070000022
L(a,b)={(x,y)|(a-1)×h+1≤x≤a×h,(b-1)×w+1≤y≤b×w}
a∈[1,H′],b∈[1,W']
其中,L(a,b)表示像素点坐标集合,其像素点均在分割后的图像I′i第a行第b个图像块内;
3)指纹中心区域定位,过程如下:
3.1)定位指纹中心区域对指纹拼接具有重大作用,传统方法中通常将指纹图像中灰度和最小的一列当作指纹中心区域,但在指纹采集图像过程中难免会出现污渍干扰,以致于很多情况下所得到灰度和最小的列并不是指纹而是污渍,为了解决这个问题,利用区域灰度和二分法对I′i中的搜索区域分为左右半区,不断往图像中灰度和最小的区域深入,直至区域范围缩小到一列图像块,最终找到真正坐落于指纹图像内的中心区域;
3.2)为了加快搜索速度,利用积分图思想快速计算图像区域灰度和,在积分图里,每一点的灰度值都是其位置所在图像中左上方区域的灰度值和,表达如下:
Figure BDA0002361083070000031
其中,SAT(Xi,Yi)表示I′i中第Xi行第Yi个图像块利用积分图计算得到的灰度值,其等于所有位置满足处于(Xi,Yi)左上方的图像块的灰度值求和;
3.3)根据上述思想,初始状态时整张图像经图像分割后被默认为待搜索的区域,现定义四个参数:l是待搜索区域最左边的列序号,其初始值是1;r是待搜索区域最右边的列序号,其初始值是W′;m是待搜索区域最中间的列序号,其为
Figure BDA0002361083070000033
Figure BDA0002361083070000034
表示向上取整符号;d是待搜索区域的宽度,其为d=|r-l+1|;
3.4)将待搜索区域左半区域所有像素点灰度值和定义为Gl,右半区域所有像素点灰度值和定义为Gr。上述两个参量计算公式如下:
Gl=SAT(H',m)-SAT(H',l)
Figure BDA0002361083070000032
3.5)如果Gl≥Gr,那么选择右半区域为下一步需要搜索的区域,否则选择左半区域,在确定待搜索区域之后,l、r、m、d四个参数需要重新定义,Gl、Gr需要重新计算,直到d的值为1时终止,最终得到指纹中心的一列,即指纹中心区域,若指纹图像为第i帧,则记该帧图像的指纹中心区域的列序号为CR(i),假设当前帧Ik的中心列序号为CR(k),中心列中每一个指纹块都被定义为基准块,例如,第i行基准块的位置是(i,CR(k)),每一行指纹图像块序列都是以基准块为中心;假定图像采集时指纹滚动方向从左往右,则定义:(1,2,...,CR(k)-1)为已拼接完成区域,(CR(k)+1,CR(k)+2,...,W')为未拼接完成区域;
4)实时滚动指纹拼接,过程如下:
4.1)帧序号更新,从指纹出现开始为第1帧图像,假设当前帧是Ik,则前k-1帧的拼接结果为Is,实时拼接就是将Ik与Is拼接成新的指纹图像,图像中的每一块都会被标记其来源图像的帧序号;每一个图像都可以被转化为一个尺寸为W'×H'的帧序号矩阵,矩阵中每一个元素都对应着当前位置图像块的帧序号,设Ji(a,b)表示块分割后的图像I′i中第a行第b个图像块的帧序号;拼接过程可视为块的帧序号更新,原则是选择同时满足灰度值较小并且前景点数多的块,否则不更新块的帧序号,条件表达式如下:
if(I′k(a,b)<I′s(a,b)∧FG′k(a,b)>FG′s(a,b))thenJs(a,b)=k
其中,FG′k(a,b)、FG′s(a,b)分别表示I′k和I′s第a行第b个图像块的前景点数,Js(a,b)表示I′s第a行第b个图像块的帧序号;
4.2)兵分两路同步更新,从第一行开始按行拼接,每一行的拼接策略都是一致的,都是从当前行的基准块开始拼接;从某一行基准块开始往左遍历已拼接区域的图像块进行拼接,如果当前帧Ik的图像块与Is中同一位置的图像块满足帧序号更新条件,则需要将Is中该位置的图像块帧号更新为k,并继续判断当前块左侧的块,一旦出现帧序号更新条件不满足时,已拼接区域的拼接就立即停止;为了使未拼接区域的指纹图像更加完整,从当前行的基准块开始往右遍历未拼接区域的图像块进行拼接时采用如下不同的更新策略:如果满足帧序号更新条件,则将Is中该位置的图像块帧号更新为k,并继续判断当前块右侧的块,若出现帧序号更新条件不满足时则跳过该块继续向右遍历,直到遍历完当前行未拼接区域的全部块;
4.3)非降帧序列动态规划优化,根据指纹中心列的移动可以确定指纹滚动的方向,并以此来判断指纹是否发生回滚,若当前帧为Ik,那么滚动方向可以按照如下定义:
Figure BDA0002361083070000041
其中,R(k)表示当前帧Ik的指纹滚动方向,若R(k)=0表示其从右往左滚动,R(k)=1表示其从左往右滚动,C(k-1)=C(k)表示相邻两帧的指纹中心未变化,则说明指纹滚动方向未发生改变;
根据指纹滚动方向,假定其自左往右滚动,那么可以确定每一行的所有块的帧序号必然是从左往右非降递增的,根据上述非降帧序列原则,当拼接过程满足正常滚动时(即不发生回滚),即如下条件:
R(k-1)=R(k),k∈[2,N]
其中,N表示采集得到的最后一帧图像序号;
满足上述条件下,结合动态规划思想对块帧序号进行有效更新,针对所有帧序列图像拼接完成后的拼接结果If,对其图像分割后的图像I′f中每一行图像块帧序列进行更新,其帧序列状态转移方程如下式:
Jf(a,b+1)=max(Jf(a,b),Jf(a,b+1))
其中,Jf(a,b)表示图像分割后的拼接结果I′f第a行第b个图像块的帧序号;
同理可得,从右往左滚动时的帧序列状态转移方程如下:
Jf(a,b+1)=min(Jf(a,b),Jf(a,b+1))
5)拼接缝隙检测及优化
5.1)定义两个图像块的偏离度Fa,b(i,j),其表示图像I′i与图像I′j中都位于第a行第b个图像块的偏离程度,偏离度越低表示其越接近,计算表达式如下:
Figure BDA0002361083070000051
其中,SUM(X)表示将矩阵X中所有元素求和,Mi(a,b)、Mj(a,b)都表示大小为h×w的矩阵,它们分别表示图像I′i和图像I′j中位于第a行第b个图像块内像素点灰度值在二值化后的0-1矩阵。符号
Figure BDA0002361083070000052
表示异或运算符,两个矩阵中元素值相同为0,不同为1;
5.2)为了描述相邻图像块的位置关系,定义方向常量集合DIRECTION={UP,DOWN,LEFT,RIGHT},分别表示位于图像块的上下左右四个方向,定义拼接缝隙率GRa,b(i,j,RIGHT)表示图像I′f中第a行第b个图像块与其右侧图像块间的拼接缝隙程度,并且这两个图像块分别来自于第i帧和第j帧。同理可得另外三个方向上的拼接缝隙率;基于帧序列的图像拼接,其拼接缝隙必然是相邻块的帧序号不一致导致的,若相邻块的帧序号相同必然不会产生拼接缝隙,上述思想可确定如下关系表达式:
Figure BDA0002361083070000061
其中,
Figure BDA0002361083070000062
5.3)假设拼接结果I′f中来源于第i帧的图像块A右邻接来源于第j帧的图像块B,而在第i帧中图像块A右邻接图像块C。可知,图像块A与图像块C无拼接缝隙,那么图像块B与图像块C的偏离程度就可以一定程度上描述图像块A与图像块B间的拼接缝隙程度;同理,图像块D在第j帧中右邻接图像块B,那么图像块A与图像块D的偏离程度也可以一定程度上描述图像块A与图像块B间的拼接缝隙程度。基于上述思想,得拼接缝隙率计算公式如下:
Figure BDA0002361083070000063
5.4)建立基于多目标的综合优化模型,消除图像拼接缝隙,最终拼接结果图像I′f中位于(a,b)的图像块A,其相邻的图像块分别为AUP、ADOWN、ALEFT、ARIGHT,它们的帧序号分别为J(A)、J(AUP)、J(ADOWN)、J(ALEFT)、J(ARIGHT)。若将相邻三个图像块中间块A的帧序号替换,使得图像块A与相邻块的拼接缝隙率都能有所下降,就能达到优化拼接缝隙的效果。由于指纹采集过程是水平方向的,减少水平方向上的拼接缝隙能得到更好的效果,故以减少水平方向上的拼接缝隙率为第一目标函数,以减少竖直方向上的拼接缝隙率为第二目标函数;根据非降帧序列原则,更新后的块帧序号J'(A)的取值范围是[J(ALEFT),J(ARIGHT)]。
综上,建立多目标的综合优化模型如下:
minZ1=GRa,b(J'(A),J(ARIGHT),RIGHT)+GRa,b(J′(A),J(ALEFT),LEFT)
min Z2=GRa,b(J′(A),J(AUP),UP)+GRa,b(J′(A),J(ADOWN),DOWN)
Figure BDA0002361083070000071
其中,Z1、Z2分别表示第一目标函数和第二目标函数。
进一步,所述方法还包括以下步骤:
6)质量评估,过程如下:
6.1)指纹拼接的主要目的是获取更多有效指纹面积且尽量看不到明显的指纹缝隙,那么,指纹有效面积率E(Ii)可量化为指纹前景区域在整张图像中的占比,指纹缝隙程度GP(Ii)可用指纹图像中加权拼接缝隙率之和表示,拼接缝隙区域越靠近指纹中心区域其权重越大,公式如下:
Figure BDA0002361083070000072
其中,GRa,b表示位于(a,b)的图像块与相邻块的拼接缝隙率之和,γ表示常数,Q(Ii)表示图像Ii的质量,α、β表示比例系数;
6.2)图像Ii的质量Q(Ii)小于设定阈值T3,需要重新拼接。
本发明的技术构思为:首先检测指纹出现,将一系列指纹图像看作帧序列,将每一帧图像进行块分割处理,基于基准块进行拼接,以帧序列的非降特性予以修正,并进行图像缝隙检测,将检测出来的缝隙区域进行多目标优化之后进行质量评估。
以上滚动指纹拼接方法可以得到如下效益:首先,本发明方法对于滚动指纹拼接提出基于动态规划和多目标优化的拼接方法,弥补了传统方法拼接图像不够完整的不足,可以得到了更加完整的指纹有效面积,提高了指纹图像拼接的效率以及准确性;然后,本发明方法基于帧序列非降的特性进行图像质量修正,并运用高效的缝隙检测方法进行图像缝隙检测,可提供显式的视觉效果。最后,本发明方法结合多目标优化思想得到指纹缝隙区域的综合优化模型,对缝隙区域进行有效的改善。
附图说明
图1是基于动态规划和多目标优化的实时滚动指纹拼接方法实施的流程图;
图2是本发明方法拼接得到的结果图;
图3是拼接缝隙检测方法对象示例图;
图4是本发明方法的实验对比图,(a)为本发明缝隙检测方法检测得到的结果图,(b)为本发明方法缝隙优化之后再次检测的结果图。
具体实施方式
下面结合附图对发明做进一步说明。
参照图1~图4,一种基于动态规划和多目标优化的实时滚动指纹拼接方法,包括以下步骤:
1)滚动指纹的检测,过程如下;
1.1)首先,利用初始状态下采集仪未放手指的采集界面作为背景帧I0。从检测出第一张指纹图像开始直至指纹消失,指纹采集仪能得到一系列指纹的灰度图像,该图像序列可用帧序列集合I={I1,I2,...,In}表示,其中Ii表示第i帧图像。
1.2)定义Ii(x,y)表示第i帧源图像中坐标为(x,y)的像素点灰度值,统计第i帧图像前景点数FGi,按照以下公式:
FGi=|{(x,y)||Ii(x,y)-I0(x,y)|>T1}|
其中,|{·}|表示集合中像素点的个数,T1是阈值。
1.3)图像的前景点数能有效地判断指纹是否出现,若第i帧图像的前景点数FGi大于设定阈值T2则认为该图像是指纹图像,反之则不是指纹图像。
2)图像块分割,过程如下:
2.1)将高为H、宽为W的指纹图像以矩形块形式分割,将其分割成若干个相同块。分割所得块的高为h、宽为w,若以W'表示宽度方向上切割块数的数量,H'表示高度方向上切割块数的数量,那么分割出来的块数为W'×H',图像块分割表达式如下:
Figure BDA0002361083070000081
2.2)对源图像序列进行图像分割,I′i表示图像分割后的第i帧图像。定义I′i(a,b)表示第i帧源图像分割后中第a行第b个图像块的灰度和,其值等于图像块内所有像素点的灰度值总和,如下:
Figure BDA0002361083070000091
L(a,b)={(x,y)|(a-1)×h+1≤x≤a×h,(b-1)×w+1≤y≤b×w}
a∈[1,H′],b∈[1,W']
其中,L(a,b)表示像素点坐标集合,其像素点均在分割后的图像I′i第a行第b个图像块内。
3)指纹中心区域定位,过程如下:
3.1)定位指纹中心区域对指纹拼接具有重大作用,传统方法中通常将指纹图像中灰度和最小的一列当作指纹中心区域,但在指纹采集图像过程中难免会出现污渍干扰,以致于很多情况下所得到灰度和最小的列并不是指纹而是污渍。为了解决这个问题,本发明利用区域灰度和二分法对I′i中的搜索区域分为左右半区,不断往图像中灰度和最小的区域深入,直至区域范围缩小到一列图像块,最终找到真正坐落于指纹图像内的中心区域。
3.2)为了加快搜索速度,本发明利用积分图思想快速计算图像区域灰度和。在积分图里,每一点的灰度值都是其位置所在图像中左上方区域的灰度值和,表达如下:
Figure BDA0002361083070000092
其中,SAT(Xi,Yi)表示I′i中第Xi行第Yi个图像块利用积分图计算得到的灰度值,其等于所有位置满足处于(Xi,Yi)左上方的图像块的灰度值求和。
3.3)根据上述思想,初始状态时整张图像经图像分割后被默认为待搜索的区域,现定义四个参数:l是待搜索区域最左边的列序号,其初始值是1;r是待搜索区域最右边的列序号,其初始值是W';m是待搜索区域最中间的列序号,其为
Figure BDA0002361083070000093
Figure BDA0002361083070000094
表示向上取整符号;d是待搜索区域的宽度,其为d=|r-l+1|。
3.4)将待搜索区域左半区域所有像素点灰度值和定义为Gl,右半区域所有像素点灰度值和定义为Gr。上述两个参量计算公式如下:
Gl=SAT(H',m)-SAT(H',l)
Figure BDA0002361083070000101
3.5)如果Gl之Gr,那么选择右半区域为下一步需要搜索的区域,否则选择左半区域。在确定待搜索区域之后,l、r、m、d四个参数需要重新定义,Gl、Gr需要重新计算,直到d的值为1时终止,最终得到指纹中心的一列,即指纹中心区域。若指纹图像为第i帧,则记该帧图像的指纹中心区域的列序号为CR(i)。假设当前帧Ik的中心列序号为CR(k),中心列中每一个指纹块都被定义为基准块。例如,第i行基准块的位置是(i,CR(k)),每一行指纹图像块序列都是以基准块为中心。假定图像采集时指纹滚动方向从左往右,则定义:(1,2,...,CR(k)-1)为已拼接完成区域,(CR(k)+1,CR(k)+2,...,W')为未拼接完成区域。
4)实时滚动指纹拼接,过程如下:
4.1)帧序号更新:从指纹出现开始为第1帧图像,假设当前帧是Ik,则前k-1帧的拼接结果为Is,实时拼接就是将Ik与Is拼接成新的指纹图像,图像中的每一块都会被标记其来源图像的帧序号。每一个图像都可以被转化为一个尺寸为W'×H'的帧序号矩阵,矩阵中每一个元素都对应着当前位置图像块的帧序号,设Ji(a,b)表示块分割后的图像I′i中第a行第b个图像块的帧序号。拼接过程可视为块的帧序号更新,原则是选择同时满足灰度值较小并且前景点数多的块,否则不更新块的帧序号,条件表达式如下:
if(I′k(a,b)<I′s(a,b)∧FG′k(a,b)>FG′s(a,b))then Js(a,b)=k
其中,FG′k(a,b)、FG′s(a,b)分别表示I′k和I′s第a行第b个图像块的前景点数,Js(a,b)表示I′s第a行第b个图像块的帧序号。
4.2)兵分两路同步更新:从第一行开始按行拼接,每一行的拼接策略都是一致的,都是从当前行的基准块开始拼接。从某一行基准块开始往左遍历已拼接区域的图像块进行拼接,如果当前帧Ik的图像块与Is中同一位置的图像块满足帧序号更新条件,则需要将Is中该位置的图像块帧号更新为k,并继续判断当前块左侧的块,一旦出现帧序号更新条件不满足时,已拼接区域的拼接就立即停止。为了使未拼接区域的指纹图像更加完整,从当前行的基准块开始往右遍历未拼接区域的图像块进行拼接时采用如下不同的更新策略:如果满足帧序号更新条件,则将Is中该位置的图像块帧号更新为k,并继续判断当前块右侧的块,若出现帧序号更新条件不满足时则跳过该块继续向右遍历,直到遍历完当前行未拼接区域的全部块。如图2所示,拼接效果较为完整,但部分区域有明显的缝隙或者重印,这是由于相邻块帧序号不一致导致。
4.3)非降帧序列动态规划优化:根据指纹中心列的移动可以确定指纹滚动的方向,并以此来判断指纹是否发生回滚。若当前帧为Ik,那么滚动方向可以按照如下定义:
Figure BDA0002361083070000111
其中,R(k)表示当前帧Ik的指纹滚动方向,若R(k)=0表示其从右往左滚动,R(k)=1表示其从左往右滚动。C(k-1)=C(k)表示相邻两帧的指纹中心未变化,则说明指纹滚动方向未发生改变。
根据指纹滚动方向,假定其自左往右滚动,那么可以确定每一行的所有块的帧序号必然是从左往右非降递增的。根据上述非降帧序列原则,当拼接过程满足正常滚动时(即不发生回滚),即如下条件:
R(k-1)=R(k),k∈[2,N]
其中,N表示采集得到的最后一帧图像序号。
满足上述条件下,结合动态规划思想对块帧序号进行有效更新。针对所有帧序列图像拼接完成后的拼接结果If,对其图像分割后的图像I′f中每一行图像块帧序列进行更新,其帧序列状态转移方程如下式:
Jf(a,b+1)=max(Jf(a,b),Jf(a,b+1))
其中,Jf(a,b)表示图像分割后的拼接结果I′f第a行第b个图像块的帧序号。
同理可得,从右往左滚动时的帧序列状态转移方程如下:
Jf(a,b+1)=min(Jf(a,b),Jf(a,b+1))
5)拼接缝隙检测及优化,过程如下:
5.1)定义两个图像块的偏离度Fa,b(i,j),其表示图像I′i与图像I′j中都位于第a行第b个图像块的偏离程度,偏离度越低表示其越接近,计算表达式如下:
Figure BDA0002361083070000112
其中,SUM(X)表示将矩阵X中所有元素求和。Mi(a,b)、Mj(a,b)都表示大小为h×w的矩阵,它们分别表示图像I′i和图像I′j中位于第a行第b个图像块内像素点灰度值在二值化后的0-1矩阵。符号
Figure BDA0002361083070000121
表示异或运算符,两个矩阵中元素值相同为0,不同为1。
5.2)为了描述相邻图像块的位置关系,定义方向常量集合DIRECTION={UP,DOWN,LEFT,RIGHT},分别表示位于图像块的上下左右四个方向。定义拼接缝隙率GRa,b(i,j,RIGHT)表示图像I′f中第a行第b个图像块与其右侧图像块间的拼接缝隙程度,并且这两个图像块分别来自于第i帧和第j帧。同理可得另外三个方向上的拼接缝隙率。基于帧序列的图像拼接,其拼接缝隙必然是相邻块的帧序号不一致导致的,若相邻块的帧序号相同必然不会产生拼接缝隙。上述思想可确定如下关系表达式:
Figure BDA0002361083070000122
其中,
Figure BDA0002361083070000123
5.3)假设拼接结果I′f中来源于第i帧的图像块A右邻接来源于第j帧的图像块B,而在第i帧中图像块A右邻接图像块C。可知,图像块A与图像块C无拼接缝隙,那么图像块B与图像块C的偏离程度就可以一定程度上描述图像块A与图像块B间的拼接缝隙程度。同理,图像块D在第j帧中右邻接图像块B,那么图像块A与图像块D的偏离程度也可以一定程度上描述图像块A与图像块B间的拼接缝隙程度。如图3所示,展示了上述四个图像块之间的位置关系,根据偏离度计算方法可得出图像块A与D的偏离度、图像块B与C的偏离度,两者偏离度的均值可表示拼接缝隙率。基于上述思想,可得拼接缝隙率计算公式如下:
Figure BDA0002361083070000124
5.4)建立基于多目标的综合优化模型,消除图像拼接缝隙。最终拼接结果图像I′f中位于(a,b)的图像块A,其相邻的图像块分别为AUP、ADOWN、ALEFT、ARIGHT,它们的帧序号分别为J(A)、J(AUP)、J(ADOWN)、J(ALEFT)、J(ARIGHT)。若将相邻三个图像块中间块A的帧序号替换,使得图像块A与相邻块的拼接缝隙率都能有所下降,就能达到优化拼接缝隙的效果。由于指纹采集过程是水平方向的,减少水平方向上的拼接缝隙能得到更好的效果,故以减少水平方向上的拼接缝隙率为第一目标函数,以减少竖直方向上的拼接缝隙率为第二目标函数。根据非降帧序列原则,更新后的块帧序号J'(A)的取值范围是[J(ALEFT),J(ARIGHT)]。
综上,建立多目标的综合优化模型如下:
min Z1=GRa,b(J'(A),J(ARIGHT),RIGHT)+GRa,b(J'(A),J(ALEFT),LEFT)
min Z2=GRa,b(J'(A),J(AUP),UP)+GRa,b(J'(A),J(ADOWN),DOWN)
Figure BDA0002361083070000131
其中,Z1、Z2分别表示第一目标函数和第二目标函数。
如图4中(a)所示,缝隙检测方法可以精准的识别出块拼接导致的拼接缝隙间隙,并且以不同颜色标注缝隙程度,绿色表示良好,棕黄色表示一般,粉紫色表示缝隙严重。
如图4中(b)所示,利用综合优化模型进行缝隙优化之后,效果显著且缝隙改善较大,表现在原本缝隙区域已经将缝隙率降低在1%以下,甚至无缝隙。
6)质量评估,过程如下:
6.1)指纹拼接的主要目的是获取更多有效指纹面积且指纹缝隙程度良好。那么,指纹有效面积率E(Ii)可量化为指纹前景区域在整张图像中的占比,指纹缝隙程度GP(Ii)可用指纹图像中加权拼接缝隙率之和表示,拼接缝隙区域越靠近指纹中心区域其权重越大,公式如下:
Figure BDA0002361083070000132
其中,GRa,b表示位于(a,b)的图像块与相邻块的拼接缝隙率之和,γ表示常数,Q(Ii)表示图像Ii的质量,α、β表示比例系数;
6.2)图像Ii的质量Q(Ii)小于设定阈值T3,需要重新拼接。

Claims (2)

1.一种基于动态规划和多目标优化的实时滚动指纹拼接方法,其特征在于,所述方法包括以下步骤:
1)滚动指纹的检测,过程如下:
1.1)首先,利用初始状态下采集仪未放手指的采集界面作为背景帧I0,从检测出第一张指纹图像开始直至指纹消失,指纹采集仪能得到一系列指纹的灰度图像,该图像序列可用帧序列集合I={I1,I2,...,In}表示,其中Ii表示第i帧图像;
1.2)定义Ii(x,y)表示第i帧源图像中坐标为(x,y)的像素点灰度值,统计第i帧图像前景点数FGi,按照以下公式:
FGi=|{(x,y)||Ii(x,y)-I0(x,y)|>T1}|
其中,|{·}|表示集合中像素点的个数,T1是阈值;
1.3)图像的前景点数能有效地判断指纹是否出现,若第i帧图像的前景点数FGi大于设定阈值T2则认为该图像是指纹图像,反之则不是指纹图像;
2)图像块分割,过程如下:
2.1)将高为H、宽为W的指纹图像以矩形块形式分割,将其分割成若干个相同块,分割所得块的高为h、宽为w,若以W′表示宽度方向上切割块数的数量,H'表示高度方向上切割块数的数量,那么分割出来的块数为W'×H',图像块分割表达式如下:
Figure FDA0002361083060000011
2.2)对源图像序列进行图像分割,I′i表示图像分割后的第i帧图像,定义I′i(a,b)表示第i帧源图像分割后中第a行第b个图像块的灰度和,其值等于图像块内所有像素点的灰度值总和,如下:
Figure FDA0002361083060000012
L(a,b)={(x,y)|(a-1)×h+1≤x≤a×h,(b-1)×w+1≤y≤b×w}
a∈[1,H′],b∈[1,W′]
其中,L(a,b)表示像素点坐标集合,其像素点均在分割后的图像I′i第a行第b个图像块内;
3)指纹中心区域定位,过程如下:
3.1)利用区域灰度和二分法对I′i中的搜索区域分为左右半区,不断往图像中灰度和最小的区域深入,直至区域范围缩小到一列图像块,最终找到真正坐落于指纹图像内的中心区域;
3.2)为了加快搜索速度,利用积分图思想快速计算图像区域灰度和,在积分图里,每一点的灰度值都是其位置所在图像中左上方区域的灰度值和,表达如下:
Figure FDA0002361083060000013
其中,SAT(Xi,Yi)表示I′i中第Xi行第Yi个图像块利用积分图计算得到的灰度值,其等于所有位置满足处于(Xi,Yi)左上方的图像块的灰度值求和;
3.3)根据上述思想,初始状态时整张图像经图像分割后被默认为待搜索的区域,现定义四个参数:l是待搜索区域最左边的列序号,其初始值是1;r是待搜索区域最右边的列序号,其初始值是W′;m是待搜索区域最中间的列序号,其为
Figure FDA0002361083060000023
Figure FDA0002361083060000024
表示向上取整符号;d是待搜索区域的宽度,其为d=|r-l+1|;
3.4)将待搜索区域左半区域所有像素点灰度值和定义为Gl,右半区域所有像素点灰度值和定义为Gr,上述两个参量计算公式如下:
Gl=SAT(H',m)-SAT(H',l)
Figure FDA0002361083060000021
3.5)如果Gl≥Gr,那么选择右半区域为下一步需要搜索的区域,否则选择左半区域,在确定待搜索区域之后,l、r、m、d四个参数需要重新定义,Gl、Gr需要重新计算,直到d的值为1时终止,最终得到指纹中心的一列,即指纹中心区域,若指纹图像为第i帧,则记该帧图像的指纹中心区域的列序号为CR(i),假设当前帧Ik的中心列序号为CR(k),中心列中每一个指纹块都被定义为基准块,第i行基准块的位置是(i,CR(k)),每一行指纹图像块序列都是以基准块为中心;假定图像采集时指纹滚动方向从左往右,则定义:(1,2,...,CR(k)-1)为已拼接完成区域,(CR(k)+1,CR(k)+2,...,W′)为未拼接完成区域;
4)实时滚动指纹拼接,过程如下:
4.1)帧序号更新,从指纹出现开始为第1帧图像,假设当前帧是Ik,则前k-1帧的拼接结果为Is,实时拼接就是将Ik与Is拼接成新的指纹图像,图像中的每一块都会被标记其来源图像的帧序号;每一个图像都可以被转化为一个尺寸为W'×H'的帧序号矩阵,矩阵中每一个元素都对应着当前位置图像块的帧序号,设Ji(a,b)表示块分割后的图像I′i中第a行第b个图像块的帧序号;拼接过程可视为块的帧序号更新,原则是选择同时满足灰度值较小并且前景点数多的块,否则不更新块的帧序号,条件表达式如下:
if(I′k(a,b)<I′s(a,b)∧FG′k(a,b)>FG′s(a,b))then Js(a,b)=k
其中,FG′k(a,b)、FG′s(a,b)分别表示I′k和I′s第a行第b个图像块的前景点数,Js(a,b)表示I′s第a行第b个图像块的帧序号;
4.2)兵分两路同步更新,从第一行开始按行拼接,每一行的拼接策略都是一致的,都是从当前行的基准块开始拼接;从某一行基准块开始往左遍历已拼接区域的图像块进行拼接,如果当前帧Ik的图像块与Is中同一位置的图像块满足帧序号更新条件,则需要将Is中该位置的图像块帧号更新为k,并继续判断当前块左侧的块,一旦出现帧序号更新条件不满足时,已拼接区域的拼接就立即停止;为了使未拼接区域的指纹图像更加完整,从当前行的基准块开始往右遍历未拼接区域的图像块进行拼接时采用如下不同的更新策略:如果满足帧序号更新条件,则将Is中该位置的图像块帧号更新为k,并继续判断当前块右侧的块,若出现帧序号更新条件不满足时则跳过该块继续向右遍历,直到遍历完当前行未拼接区域的全部块;
4.3)非降帧序列动态规划优化,根据指纹中心列的移动可以确定指纹滚动的方向,并以此来判断指纹是否发生回滚,若当前帧为Ik,那么滚动方向可以按照如下定义:
Figure FDA0002361083060000022
其中,R(k)表示当前帧Ik的指纹滚动方向,若R(k)=0表示其从右往左滚动,R(k)=1表示其从左往右滚动,C(k-1)=C(k)表示相邻两帧的指纹中心未变化,则说明指纹滚动方向未发生改变;
根据指纹滚动方向,假定其自左往右滚动,那么可以确定每一行的所有块的帧序号必然是从左往右非降递增的,根据上述非降帧序列原则,当拼接过程满足正常滚动时,即如下条件:
R(k-1)=R(k),k∈[2,N]
其中,N表示采集得到的最后一帧图像序号;
满足上述条件下,结合动态规划思想对块帧序号进行有效更新,针对所有帧序列图像拼接完成后的拼接结果If,对其图像分割后的图像I′f中每一行图像块帧序列进行更新,其帧序列状态转移方程如下式:
Jf(a,b+1)=max(Jf(a,b),Jf(a,b+1))
其中,Jf(a,b)表示图像分割后的拼接结果I′f第a行第b个图像块的帧序号;
同理可得,从右往左滚动时的帧序列状态转移方程如下:
Jf(a,b+1)=min(Jf(a,b),Jf(a,b+1))
5)拼接缝隙检测及优化
5.1)定义两个图像块的偏离度Fa,b(i,j),其表示图像I′i与图像I′j中都位于第a行第b个图像块的偏离程度,偏离度越低表示其越接近,计算表达式如下:
Figure FDA0002361083060000031
其中,SUM(X)表示将矩阵X中所有元素求和,Mi(a,b)、Mj(a,b)都表示大小为h×w的矩阵,它们分别表示图像I′i和图像I′j中位于第a行第b个图像块内像素点灰度值在二值化后的0-1矩阵,符号
Figure FDA0002361083060000032
表示异或运算符,两个矩阵中元素值相同为0,不同为1;
5.2)为了描述相邻图像块的位置关系,定义方向常量集合DIRECTION={UP,DOWN,LEFT,RIGHT},分别表示位于图像块的上下左右四个方向,定义拼接缝隙率GRa,b(i,j,RIGHT)表示图像I′f中第a行第b个图像块与其右侧图像块间的拼接缝隙程度,并且这两个图像块分别来自于第i帧和第j帧,同理可得另外三个方向上的拼接缝隙率;基于帧序列的图像拼接,其拼接缝隙必然是相邻块的帧序号不一致导致的,若相邻块的帧序号相同必然不会产生拼接缝隙,上述思想可确定如下关系表达式:
Figure FDA0002361083060000033
其中,
Figure FDA0002361083060000034
5.3)假设拼接结果I′f中来源于第i帧的图像块A右邻接来源于第j帧的图像块B,而在第i帧中图像块A右邻接图像块C,可知,图像块A与图像块C无拼接缝隙,那么图像块B与图像块C的偏离程度就可以一定程度上描述图像块A与图像块B间的拼接缝隙程度;同理,图像块D在第j帧中右邻接图像块B,那么图像块A与图像块D的偏离程度也可以一定程度上描述图像块A与图像块B间的拼接缝隙程度,基于上述思想,得拼接缝隙率计算公式如下:
Figure FDA0002361083060000041
5.4)建立基于多目标的综合优化模型,消除图像拼接缝隙,最终拼接结果图像I′f中位于(a,b)的图像块A,其相邻的图像块分别为AUP、ADOWN、ALEFT、ARIGHT,它们的帧序号分别为J(A)、J(AUP)、J(ADOWN)、J(ALEFT)、J(ARIGHT),若将相邻三个图像块中间块A的帧序号替换,使得图像块A与相邻块的拼接缝隙率都能有所下降,就能达到优化拼接缝隙的效果;由于指纹采集过程是水平方向的,减少水平方向上的拼接缝隙能得到更好的效果,故以减少水平方向上的拼接缝隙率为第一目标函数,以减少竖直方向上的拼接缝隙率为第二目标函数;根据非降帧序列原则,更新后的块帧序号J′(A)的取值范围是[J(ALEFT),J(ARIGHT)];
综上,建立多目标的综合优化模型如下:
min Z1=GRa,b(J'(A),J(ARIGHT),RIGHT)+GRa,b(J'(A),J(ALEFT),LEFT)
min Z2=GRa,b(J'(A),J(AUP),UP)+GRa,b(J'(A),J(ADOWN),DOWN)
Figure FDA0002361083060000042
其中,Z1、Z2分别表示第一目标函数和第二目标函数。
2.如权利要求1所述的基于动态规划和多目标优化的实时滚动指纹拼接方法,其特征在于,所述方法包括以下步骤:
6)质量评估,过程如下:
6.1)指纹拼接的主要目的是获取更多有效指纹面积且尽量看不到明显的指纹缝隙,那么,指纹有效面积率E(Ii)可量化为指纹前景区域在整张图像中的占比,指纹缝隙程度GP(Ii)可用指纹图像中加权拼接缝隙率之和表示,拼接缝隙区域越靠近指纹中心区域其权重越大,公式如下:
Figure FDA0002361083060000043
其中,GRa,b表示位于(a,b)的图像块与相邻块的拼接缝隙率之和,γ表示常数,Q(Ii)表示图像Ii的质量,α、β表示比例系数;
6.2)图像Ii的质量Q(Ii)小于设定阈值T3,需要重新拼接。
CN202010021843.5A 2020-01-09 2020-01-09 一种基于动态规划和多目标优化的实时滚动指纹拼接方法 Active CN111209872B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010021843.5A CN111209872B (zh) 2020-01-09 2020-01-09 一种基于动态规划和多目标优化的实时滚动指纹拼接方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010021843.5A CN111209872B (zh) 2020-01-09 2020-01-09 一种基于动态规划和多目标优化的实时滚动指纹拼接方法

Publications (2)

Publication Number Publication Date
CN111209872A true CN111209872A (zh) 2020-05-29
CN111209872B CN111209872B (zh) 2022-05-03

Family

ID=70788983

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010021843.5A Active CN111209872B (zh) 2020-01-09 2020-01-09 一种基于动态规划和多目标优化的实时滚动指纹拼接方法

Country Status (1)

Country Link
CN (1) CN111209872B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112580556A (zh) * 2020-12-25 2021-03-30 北京集创北方科技股份有限公司 一种光学指纹采集方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101086766A (zh) * 2007-06-04 2007-12-12 北京航空航天大学 基于波形匹配的指纹图像帧序列的拼接方法
US20100232659A1 (en) * 2009-03-12 2010-09-16 Harris Corporation Method for fingerprint template synthesis and fingerprint mosaicing using a point matching algorithm
CN102483804A (zh) * 2009-08-19 2012-05-30 贺利实公司 用于局部指纹的n向配准及拼接的方法
CN103136517A (zh) * 2013-03-04 2013-06-05 杭州景联文科技有限公司 一种基于关键列选择的滚动指纹图像序列实时拼接方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101086766A (zh) * 2007-06-04 2007-12-12 北京航空航天大学 基于波形匹配的指纹图像帧序列的拼接方法
US20100232659A1 (en) * 2009-03-12 2010-09-16 Harris Corporation Method for fingerprint template synthesis and fingerprint mosaicing using a point matching algorithm
CN102483804A (zh) * 2009-08-19 2012-05-30 贺利实公司 用于局部指纹的n向配准及拼接的方法
CN103136517A (zh) * 2013-03-04 2013-06-05 杭州景联文科技有限公司 一种基于关键列选择的滚动指纹图像序列实时拼接方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ZHANG.YL等: "Rolled Fingerprint Mosaicking Algorithm Based on Block Scale", 《CHINESE CONFERENCE ON BIOMETRIC RECOGNITION》 *
王燕等: "大面积滚动指纹快速拼接算法", 《计算机工程与应用》 *
袁杰: "基于SIFT的图像配准与拼接技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112580556A (zh) * 2020-12-25 2021-03-30 北京集创北方科技股份有限公司 一种光学指纹采集方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111209872B (zh) 2022-05-03

Similar Documents

Publication Publication Date Title
CN102426649B (zh) 一种简单的高准确率的钢印数字自动识别方法
CN110110646B (zh) 一种基于深度学习的手势图像关键帧提取方法
CN107424161B (zh) 一种由粗至精的室内场景图像布局估计方法
CN107424142A (zh) 一种基于图像显著性检测的焊缝识别方法
CN109523583B (zh) 一种基于反馈机制的电力设备红外与可见光图像配准方法
CN113724231A (zh) 一种基于语义分割和目标检测融合模型的工业缺陷检测方法
WO2015131468A1 (en) Method and system for estimating fingerprint pose
CN108921813A (zh) 一种基于机器视觉的无人机检测桥梁结构裂缝识别方法
US9082019B2 (en) Method of establishing adjustable-block background model for detecting real-time image object
CN110909657A (zh) 一种隧道表观病害图像识别的方法
CN106529441B (zh) 基于模糊边界分片的深度动作图人体行为识别方法
CN104599288A (zh) 一种基于肤色模板的特征跟踪方法及装置
CN112580476A (zh) 一种精子识别与多目标轨迹跟踪方法
CN111414938B (zh) 一种板式换热器内气泡的目标检测方法
CN110717900A (zh) 基于改进Canny边缘检测算法的受电弓磨耗检测方法
CN111209872B (zh) 一种基于动态规划和多目标优化的实时滚动指纹拼接方法
CN109344758B (zh) 基于改进局部二值模式的人脸识别方法
CN108764343B (zh) 一种跟踪算法中的跟踪目标框的定位方法
CN109949344A (zh) 一种基于颜色概率目标建议窗口的核相关滤波跟踪方法
CN106446832B (zh) 一种基于视频的实时检测行人的方法
CN115830514B (zh) 一种适用于带弯曲河道的全河段表面流速计算方法及系统
CN108256475B (zh) 一种票据图像倒置检测方法
CN110033469A (zh) 一种亚像素边缘检测方法及系统
CN113223098B (zh) 图像颜色分类的预处理优化方法
CN104751487A (zh) 一种基于彩色rgb三平面色变帧差的运动目标检测方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant