一种基于神经网络的手指静脉感兴趣区域检测方法与流程

文档序号:18901718发布日期:2019-10-18 22:02阅读:200来源:国知局
一种基于神经网络的手指静脉感兴趣区域检测方法与流程

本发明涉及生物特征识别系统的技术领域,尤其是指一种基于神经网络的手指静脉感兴趣区域检测方法。



背景技术:

手指静脉感兴趣区域检测是手指静脉识别过程中的重要环节。手指静脉识别技术是目前安全性最高的生物识别技术,手指静脉识别的特征来自于手指静脉血管中流动血液的血红蛋白,所以指静脉识别具有别的生物特征没有的活体性,防伪性,是一项十分具有应用前景和价值的生物特征识别技术。但是手指静脉图像的采集设备受限于设备成本和时间推移,采集图像的质量参差不齐;同时根据使用者的使用习惯不同,采集图像中手指的位置可能存在偏移或者旋转,将影响识别系统的识别效果。因此,本设计希望能够通过设计一种基于神经网络的手指静脉感兴趣区域检测方法,使得能够在采集设备存在脏污;光照干扰;手指摆放存在差异等异常情况下提取到稳定的手指静脉感兴趣区域。



技术实现要素:

本发明的目的在于克服现有技术的缺点与不足,提出了一种基于神经网络的手指静脉感兴趣区域检测方法,通过神经网络提取手指区域掩膜图像以及后处理提取手指静脉感兴趣区域,从而实现对手指静脉感兴趣区域稳定提取,提升后续识别方法的准确性。

为实现上述目的,本发明所提供的技术方案为:一种基于神经网络的手指静脉感兴趣区域检测方法,包括以下步骤:

1)通过手指静脉图像采集设备收集原始手指静脉图像数据,构建原始训练数据集;

2)对原始训练数据集中的图像,标定对应采集图像的手指掩膜区域,构建训练数据集的真实掩膜图像输出;

3)根据训练数据集特点,设计所需的神经网络模型;

4)为增大网络训练数据量以及增强方法的适用性,需要使用数据增强方法对原始输入图像以及对应手指掩膜图像进行同步的数据增强;

5)对设计的神经网络模型设定训练参数进行神经网络训练,并保存训练的神经网络模型参数;

6)使用手指静脉图像采集设备获取待检测的手指静脉原始图像,然后将待检测的手指静脉图像输入保存好的神经网络模型中,得到待检测的手指静脉图像的手指掩膜输出;

7)根据提取的手指掩膜,校正待检测手指静脉图像,并截取感兴趣区域。

在步骤1)中,为了提升神经网络的性能,模拟日常使用情景,在设备正常使用的范围内随意摆放,允许手指存在旋转和平移,并保存不同受试者的手指静脉图像数据,每位受试者采集3~6张原始手指静脉图像,一共采集80~100张图像。

在步骤2)中,使用开源软件labelme人工标注采集到的手指静脉原始图像的准确边缘轮廓,然后将闭合轮廓内部的像素点赋值255,最终得到最后的手指掩膜图像输出,即图像中手指边缘及其内部为白色像素,像素值255,非手指区域为黑色像素,像素值0,并把它作为原始手指静脉图像的对应真实手指掩膜输出。

在步骤3)中,设计所需的神经网络模型,包括以下步骤:

3.1)结合数据选取构建模型

模型主要由多个卷积层、上采样层、池化层和随机失活层这些神经网络模块组成,若未额外声明,所有卷积层的激活函数都是线性整流函数relu;

输入图像大小为原始图像的大小,根据手指静脉图像采集设备的输出大小设定神经网络的输入层大小;

第一层为卷积层;第二层为卷积层;第三层为最大池化层;第四层为卷积层;第五层为卷积层;第六层为最大池化层;第七层为卷积层;第八层为卷积层;第九层为最大池化层;第十层为卷积层;第十一层为卷积层;第十二层为随机失活层;公式如下:

r(l)~bernoulli(p)

y~(l)=r(l)·y(l)

其中,r(l)服从概率为p的伯努利分布,y(l)为第l层的激活值,y~(l)为第l层的输出值,wi(l+1)为第l+1层的网络权值,bi(l+1)为第l+1层的偏置;zi(l+1)为第l+1层的隐藏层输入,f(·)为激活函数;

第十三层为最大池化层;第十四层为上采样层;第十五层为卷积层;第十六层为堆叠层;第十七层为卷积层;第十八层为卷积层;第十九层为上采样层;第二十层为卷积层;第二十一层为堆叠层;第二十二层为卷积层;第二十二层为卷积层;第二十三层为上采样层;第二十四层为卷积层;第二十五层为堆叠层;第二十六层为卷积层;第二十七层为卷积层;第二十八层为上采样层;第二十九层为卷积层;第三十层为堆叠层;第三十一层为卷积层;第三十二层为卷积层;第三十三层为卷积层;第三十四层为卷积层,使用的激活函数是s型函数,即sigmoid函数,公式如下:

其中e代表自然常数,x代表激活函数的输入;

第三十四层的输出为最终的手指掩膜输出图像;

3.2)设置损失函数

设置损失函数为二元交叉熵函数,用于衡量神经网络输出概率分布和真实分布的区别:

loss=-t1log(y1)-(1-t1)log(1-y1)

其中,t1为真实输出,y1为神经网络的输出值,log(·)为对数函数。

在步骤4)中,使用数据增强方法对原始输入图像以及对应手指掩膜图像进行同步的数据增强,使用的图像增强方法根据实际使用中存在的噪声干扰进行选取,由于设备实际工作过程中,主要存在的噪声干扰是光照不均衡;被采集手指存在平移和旋转;所以使用的数据增强方法主要是平移、旋转、翻转和亮度变化;其中几何形状的图像数据增强需要对输入的原始手指静脉图像和手指掩膜真实输出图像进行同步进行;而像素强度是数据增强只需对原始手指静脉图像进行。

在步骤5)中,将步骤4)的数据增强后的数据输入设计好的神经网络模型中,对设计的模型设定训练参数进行神经网络训练,并保存训练的神经网络模型参数,包括以下步骤:

5.1)设置训练参数

设置实验优化器为adam,学习率为0.0001、批次大小为2张、随机失活层的失活概率为0.5;

5.2)设置训练完成标志

训练完成标志为已达到设定的迭代次数或设置验证集实时检测模型训练情况,验证集准确率满足某个条件;

5.3)保存神经网络模型

训练完成后,将神经网络的结构和权重保存。

在步骤7)中,根据步骤6)中提取的手指掩膜,校正待检测手指静脉图像,并截取感兴趣区域,具体操作如下:

7.1)对手指掩膜进行旋转校正

对待检测的手指静脉图像的手指掩膜输出,通过计算图像一阶统计矩和二阶统计矩,从而计算得到图像的质心和图像的角度,公式如下:

其中,i代表图像一共有i行,j代表图像一共有j列,i代表第i行,j代表第j列,iu代表i的u次方,jv代表j的v次方,v(i,j)代表图像位于i行j列的像素值,muv代表图像的统计矩,u代表行阶数,v代表列阶数,(xc,yc)为图像质心坐标,xc2代表质心行坐标的平方,yc2代表质心列坐标的平方,θ为图像对行所在轴旋转的角度,通过计算下面三个图像中心矩得到:a为通过统计矩计算得到的图像在行方向的二阶中心矩,b为通过统计矩计算得到的图像在行方向和列方向的二阶中心矩,c为通过统计矩计算得到的图像在列方向的二阶中心矩,arctan(·)为反正切函数;然后对手指掩膜图像和待检测的手指静脉图像进行以图像质心(xc,yc)为中心,-θ的角度进行旋转,将旋转手指摆正;

7.2)后处理截取感兴趣区域

对摆正后的手指掩膜图像和待检测的手指静脉图像,根据采集摄像头到采集平面的空间几何关系,选择一个固定大小的感兴趣区域选取框,避免对图像缩放改变图像像素的分布,选取的roi框大小通过统计图像中手指的宽度即粗细和采集框的长度的最小值获取,为了留取余量,采取最小值的0.9倍;并以图像质心作为感兴趣区域框的中心,输出最终的手指静脉感兴趣区域图像。

本发明与现有技术相比,具有如下优点与有益效果:

1、使用的神经网络进行检测,是一种端到端的方法,在准备少量数据后训练模型即可得到结果,无需复杂的人为设计特征。

2、由于使用了神经网络作为语义分割模型,神经网络模型抗噪声干扰能力强,对于可能存在的设备老化;镜头脏污;光照干扰等影响,模型仍可以得到准确的分割结果。

3、通过计算图像统计矩,本发明对图像旋转进行了校正,且为了避免大小归一化过程使用缩放方法引入额外的图像畸变,通过统计图像边界长度确定截取框大小,尽可能多地保留了截取的感兴趣区域的信息。

4、由于使用了数据增强方法以及未使用全连接层而是全部使用卷积层,网络参数量小,同时直接输出手指掩膜图像,最大程度保留了图像的有用信息,只需进行简单的后处理即可得到感兴趣区域图像。

附图说明

图1为本发明方法逻辑流程示意图。

图2为标注手指掩膜示意图。

图3为神经网络拓扑结构图。

图4为随机失活层示意图。

具体实施方式

下面结合具体实施例对本发明作进一步说明。

如图1所示,本实施例所提供的基于神经网络的手指静脉感兴趣区域检测方法,包括以下步骤:

1)通过手指静脉图像采集设备收集原始手指静脉图像数据,构建原始训练数据集。为了提升神经网络的性能,模拟日常使用情景,在设备正常使用的范围内随意摆放,允许手指存在旋转和平移,并保存不同受试者的手指静脉图像数据,每位受试者采集3~6张原始手指静脉图像,一共采集80~100张图像。

2)对原始训练数据集中的图像,标定对应采集图像的手指掩膜区域,构建训练数据集的真实掩膜图像输出,即使用软件(如开源软件labelme)人工标注采集到的手指静脉原始图像的准确边缘轮廓,然后将闭合轮廓内部的像素点赋值255,最终得到最后的手指掩膜图像输出,即图像中手指边缘及其内部为白色像素(像素值255),非手指区域为黑色像素(像素值0),并把它作为原始手指静脉图像的对应真实手指掩膜输出,标注结果如图2所示。

3)设计出合适的神经网络模型,包括以下步骤:

3.1)结合数据选取构建模型,模型结构如图3所示。模型的主要由多个卷积层,上采样层,池化层,随机失活层等神经网络模块组成。若未额外声明,所有卷积层的激活函数都是线性整流函数(relu)。

输入图像大小为原始图像的大小,根据手指静脉图像采集设备的输出大小设定神经网络的输入层大小。使用(256,256)大小的图像输入。

第一层为卷积层,卷积核为(3,3),步长为1,滤波器数量为64,使用填充使得输入输出大小一致,输出为256×256×64。

第二层为卷积层,卷积核为(3,3),步长为1,滤波器数量为64,使用填充使得输入输出大小一致,输出为256×256×64。

第三层为最大池化层,池化大小为(2,2),步长为2,不使用填充,输出为128×128×64。

第四层为卷积层,卷积核为(3,3),步长为1,滤波器数量为128,使用填充使得输入输出大小一致,输出为128×128×128。

第五层为卷积层,卷积核为(3,3),步长为1,滤波器数量为128,使用填充使得输入输出大小一致,输出为128×128×128。

第六层为最大池化层,池化大小为(2,2),步长为2,不使用填充,输出为64×64×128。

第七层为卷积层,卷积核为(3,3),步长为1,滤波器数量为256,使用填充使得输入输出大小一致,输出为64×64×256。

第八层为卷积层,卷积核为(3,3),步长为1,滤波器数量为256,使用填充使得输入输出大小一致,输出为64×64×256。

第九层为最大池化层,池化大小为(2,2),步长为2,不使用填充,输出为32×32×256。

第十层为卷积层,卷积核为(3,3),步长为1,滤波器数量为512,使用填充使得输入输出大小一致,输出为32×32×512。

第十一层为卷积层,卷积核为(3,3),步长为1,滤波器数量为512,使用填充使得输入输出大小一致,输出为32×32×512。

第十二层为随机失活层,示意图如图4所示。公式如下:

r(l)~bernoulli(p)

y~(l)=r(l)·y(l)

其中r(l)服从概率为p的伯努利分布,y(l)为第l层的激活值,y~(l)为第l层的输出值,wi(l+1)为第l+1层的网络权值,bi(l+1)为第l+1层的偏置。zi(l+1)为第l+1层的隐藏层输入,f(·)为激活函数。

失活概率选择0.5.

第十三层为最大池化层,池化大小为(2,2),步长为2,不使用填充,输出为16×16×512。

第十四层为上采样层,输出大小为32×32×512。

第十五层为卷积层,卷积核为(3,3),步长为1,滤波器数量为512,使用填充使得输入输出大小一致,输出为32×32×512。

第十六层为堆叠层,对特征图进行通道轴上的堆叠,输出大小为32×32×1024。

第十七层为卷积层,卷积核为(3,3),步长为1,滤波器数量为512,使用填充使得输入输出大小一致,输出为32×32×512。

第十八层为卷积层,卷积核为(3,3),步长为1,滤波器数量为512,使用填充使得输入输出大小一致,输出为32×32×512。

第十九层为上采样层,输出大小为64×64×512。

第二十层为卷积层,卷积核为(3,3),步长为1,滤波器数量为256,使用填充使得输入输出大小一致,输出为64×64×256。

第二十一层为堆叠层,对特征图进行通道轴上的堆叠,输出大小为64×64×512。

第二十二层为卷积层,卷积核为(3,3),步长为1,滤波器数量为256,使用填充使得输入输出大小一致,输出为64×64×256。

第二十二层为卷积层,卷积核为(3,3),步长为1,滤波器数量为256,使用填充使得输入输出大小一致,输出为64×64×256。

第二十三层为上采样层,输出大小为128×128×256。

第二十四层为卷积层,卷积核为(3,3),步长为1,滤波器数量为128,使用填充使得输入输出大小一致,输出为128×128×128。

第二十五层为堆叠层,对特征图进行通道轴上的堆叠,输出大小为128×128×256。

第二十六层为卷积层,卷积核为(3,3),步长为1,滤波器数量为128,使用填充使得输入输出大小一致,输出为128×128×128。

第二十七层为卷积层,卷积核为(3,3),步长为1,滤波器数量为128,使用填充使得输入输出大小一致,输出为128×128×128。

第二十八层为上采样层,输出大小为256×256×128。

第二十九层为卷积层,卷积核为(3,3),步长为1,滤波器数量为64,使用填充使得输入输出大小一致,输出为256×256×64。

第三十层为堆叠层,对特征图进行通道轴上的堆叠,输出大小为256×256×128。

第三十一层为卷积层,卷积核为(3,3),步长为1,滤波器数量为64,使用填充使得输入输出大小一致,输出为256×256×64。

第三十二层为卷积层,卷积核为(3,3),步长为1,滤波器数量为2,使用填充使得输入输出大小一致,输出为256×256×2。

第三十三层为卷积层,卷积核为(3,3),步长为1,滤波器数量为1,使用填充使得输入输出大小一致,输出为256×256×1。

第三十四层为卷积层,使用的激活函数是s型函数(sigmoid函数),公式如下

其中e代表自然常数,x代表激活函数的输入。

第三十四层的输出为最终的手指掩膜输出图像。

3.2)设置损失函数

设置损失函数为二元交叉熵函数。用于衡量神经网络输出概率分布和真实分布的区别

loss=-t1log(y1)-(1-t1)log(1-y1)

其中t1为真实输出,y1为神经网络的输出值,log(·)为对数函数。

4)使用数据增强方法对原始输入图像以及对应手指掩膜图像进行同步的数据增强,主要使用的图像增强方法根据实际使用中存在的噪声干扰进行选取,由于设备实际工作过程中,主要存在的噪声干扰是光照不均衡;被采集手指存在平移;被采集手指存在旋转等;所以使用的数据增强方法主要是平移,旋转,翻转,亮度变化。其中几何形状的图像数据增强需要对输入的原始手指静脉图像和手指掩膜真实输出图像进行同步进行;而像素强度是数据增强只需对原始手指静脉图像进行。

5)将步骤4)的数据增强后的数据输入设计好的神经网络模型中,对设计的模型设定训练参数进行神经网络训练,并保存训练的神经网络模型参数。包括以下步骤:

5.1)设置训练参数

设置实验优化器为adam,学习率为0.0001、批次大小为2张、随机失活层的失活概率为0.5。

5.2)设置训练完成标志

训练完成标志为已达到设定的迭代次数或设置验证集实时检测模型训练情况,验证集准确率满足对比上一轮最好情况,没有改进则计数,若计数大于5则停止训练;若计数小于5,训练对比上一轮有改进,则计数清零。

5.3)保存神经网络模型

训练完成后,将神经网络的结构和权重保存。

6)使用手指静脉图像采集设备获取待检测的手指静脉原始图像,然后将待检测的手指静脉原始图像输入到步骤5)保存好的神经网络模型中,得到待检测的手指静脉图像的手指掩膜输出。

7)根据步骤6)中提取的手指掩膜,校正待检测手指静脉图像,并截取感兴趣区域。具体操作如下:

7.1)对手指掩膜进行旋转校正

对待检测的手指静脉图像的手指掩膜输出,通过计算图像一阶统计矩和二阶统计矩,从而计算得到图像的质心和图像的角度,公式如下

其中,i代表图像一共有i行,j代表图像一共有j列,i代表第i行,j代表第j列,iu代表i的u次方,jv代表j的v次方,v(i,j)代表图像位于i行j列的像素值,muv代表图像的统计矩,u代表行阶数,v代表列阶数,(xc,yc)为图像质心坐标,xc2代表质心行坐标的平方,yc2代表质心列坐标的平方,θ为图像对行所在轴旋转的角度,通过计算下面三个图像中心矩得到:a为通过统计矩计算得到的图像在行方向的二阶中心矩,b为通过统计矩计算得到的图像在行方向和列方向的二阶中心矩,c为通过统计矩计算得到的图像在列方向的二阶中心矩,arctan(·)为反正切函数;然后对手指掩膜图像和待检测的手指静脉图像进行以图像质心(xc,yc)为中心,-θ的角度进行旋转,将旋转手指摆正;

7.2)后处理截取感兴趣区域

对摆正后的手指掩膜图像和待检测的手指静脉图像。根据采集摄像头到采集平面的空间几何关系,我们选择一个固定大小的感兴趣区域选取框,避免对图像缩放改变图像像素的分布。选取的roi框大小通过统计图像中手指的宽度(粗细)和采集框的长度的最小值获取,为了留取一定余量,本方法采取最小值的0.9倍;并以图像质心作为感兴趣区域框的中心,输出最终的手指静脉感兴趣区域图像。

综上所述,在采用以上方案后,本发明为手指静脉感兴趣区域检测提供了新的方法,能够克服数据的平移,旋转和脏污等噪声,具有实际推广价值,值得推广。

以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1