实施例1
根据本发明实施例,提供了一种虹膜图像分割方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的虹膜图像分割方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,通过对虹膜图像中的瞳孔进行粗定位,获取瞳孔的位置参数。
具体的,在上述步骤,可以采用径向对称变换方法来对瞳孔进行粗定位,其中,上述瞳孔的位置参数包括瞳孔的圆心和半径。
步骤S104,根据所述瞳孔的位置参数,将所述环形虹膜外边界候选区域的图像展开为在极坐标系中的矩形图像,并根据所述矩形图像的灰度变化得到所述目标虹膜的外圆边界估计值。
在上述步骤中,可以将虹膜内、外边界看作一个同心圆,根据瞳孔的边界(虹膜的内边界)的粗定位结果,可以获得虹膜外边界的圆心参数。由于虹膜外边界的半径范围可以通过瞳孔半径估计得到,于是可以得到环形的虹膜外边界候选区域,则以瞳孔粗定位圆心为中心,可以将所述环形候选区域展开为一个矩形区域。
上述步骤中,对展开图像进行各向异性平滑后,可以看出虹膜和巩膜之间明显的灰度值变化,于是利用平滑后的展开图像的梯度值估计虹膜的外圆边界,即选择梯度值最大的一行作为虹膜外边界的位置。
步骤S106,根据所述目标虹膜的外圆边界估计值截取所述目标虹膜的上眼睑区域和下眼睑区域,获取所述上眼睑和所述下眼睑的边界点,并对所述上眼睑和下眼睑的边界点进行曲线拟合,得到所述上眼睑边界和所述下眼睑边界曲线。
具体的,在上述步骤中,由于上眼睑和下眼睑都类似于抛物线,因此可以通过使用抛物线对上眼睑和下眼睑进行拟合。
此处需要说明的是,上述用于拟合上眼睑和下眼睑关键点的曲线可以是抛物线,但不限于抛物线。
步骤S108,对上眼睑边界和下眼睑边界确定的有效区域进行噪声检测。
步骤S1010,通过径向投影方法对所述虹膜的外圆边界进行精定位,并利用微积分检测算子对所述瞳孔的边界进行精定位。
本申请上述步骤通过对目标虹膜的虹膜图像中的瞳孔进行粗定位,获取瞳孔的位置参数,根据瞳孔的位置参数,将环形虹膜外边界候选区域图像展开为在极坐标系中的矩形图像,并根据矩形图像的灰度变化得到目标虹膜的外圆边界估计值,根据目标虹膜的外圆边界估计值截取目标虹膜的上眼睑区域和下眼睑区域,获取上眼睑和下眼睑的边界点,并对上眼睑和下眼睑的边界点进行曲线拟合,得到上眼睑边界和下眼睑边界,对上眼睑边界和下眼睑边界确定的有效区域进行噪声检测,通过径向投影方法对虹膜外边界进行精定位,通过微积分检测算子对瞳孔的边界进行精定位。
上述方案首先估计瞳孔位置,依据瞳孔的边界参数,对图像进行展开,筛选灰度值变化最大的边缘信息,进而估计虹膜圆形外边界半径;接着,利用估计得到的虹膜内外边界信息,得到包含虹膜的环形有效区域,从而减少了图像噪声的干扰,在有效区域内,分别计算得到上下眼睑的候选边界点,对不同位置的边界点拟合得到眼睑抛物线;根据抛物线结果,进一步缩小有效区域,针对光斑噪声灰度值较大,睫毛噪声灰度值较低且为线性或块状的特点,分别设计相应的滤波器并给予合适的阈值,获得光斑噪声和睫毛噪声;排除噪声区域后,利用径向投影进行外圆边界精定位,利用微积分检测算子进行瞳孔的边界精定位,最终完成了对虹膜图像的分割。对于噪声图像具有更好的鲁棒性,保证了复杂场景下,虹膜图像分割的效果。同时,在方法中通过计算梯度值的方法估计虹膜外圆半径,保证了整个外圆估计过程的效率,在有效区域中进行眼睑、睫毛等噪声检测和虹膜边界精定位,减少了整个分割算法的计算量,提高了算法运行效率,针对多种虹膜图像的分割稳定性高,抗干扰能力强,能够实现对虹膜图像的快速、准确地分割,对低质量图像,尤其是对戴眼镜、有大光斑的虹膜图像,算法有很好的稳定性,解决了现有技术中虹膜图像分割方法对低质量的虹膜图像不能进行分割或分割精确度低的技术问题。
可选的,根据本申请上述实施例,通过对虹膜图像中的瞳孔进行粗定位,获取瞳孔的位置参数,包括:
步骤S1021,缩小虹膜图像。
具体的,上述步骤为同时保证计算速度和计算结果的准确性,将虹膜图像缩小到一个较小的尺寸,缩小虹膜图像的倍数处于(0,1)之间,在一种可选的实施例中,上述缩小虹膜图像的倍数可以是0.2。
步骤S1023,通过预设算法在缩小后的虹膜图像上检测瞳孔,获得瞳孔的位置参数,其中,位置参数包括:瞳孔的圆心和半径。
具体的,上述预设算法可以为径向对称变换算法。
由于图像中的瞳孔通常是一个灰度较低的圆形区域,通常可以采用多种方法进行瞳孔的粗定位,得到瞳孔的初步位置。通过径向变换法来估计瞳孔的初步位置,既能够保证计算的速度,又能够保证定位的准确性。在一种可选的实施例中,瞳孔的粗定位结果如图2所示。
步骤S1025,在得到所述瞳孔的位置参数之后,还原所述瞳孔的位置参数至所述虹膜图像上。
由上可知,本申请上述步骤中缩小虹膜图像,通过径向对称变换方法在缩小后的虹膜图像中检测虹膜,在得到瞳孔的位置参数之后,将瞳孔位置参数还原到原虹膜图像尺寸上。上述方案获取了瞳孔的位置信息,包括瞳孔的圆心和半径。
可选的,根据本申请上述实施例,根据所述瞳孔的位置参数,将环形虹膜外边界候选区域展开为在极坐标系中的矩形图像,并根据所述矩形图像的灰度变化得到所述目标虹膜的外圆边界估计值,包括:
步骤S1041,从瞳孔的位置参数中获取瞳孔的圆心和半径,并根据瞳孔的半径获取外圆边界的半径范围。
通常情况下,可以将瞳孔和虹膜外圆看作同心圆,即虹膜外圆以粗定位得到的瞳孔的圆心为圆心,在获取到虹膜外圆的圆心的情况下,可以根据预设参数值得到外圆边界的半径范围,例如[rpupil+rmin,rpupil+rmax],其中,rpupil用于表示瞳孔半径,rmin和rmax分别用于表示虹膜外圆与瞳孔半径的差值的最小值和最大值,rmin和rmax可以由经验值得到。
步骤S1043,以所述瞳孔的圆心为中心,根据所述外圆边界的半径范围确定所述虹膜外边界候选区域,并将所述虹膜外边界候选区域分为左、右两部分,将所述左、右两部分别展开为极坐标系中的矩形,其中,所述虹膜外边界候选区域为环形,所述环形左侧的极角处于第一预设角度范围,所述环形右侧的极角处于第二预设角度范围。
在上述步骤中,为了降低眼睑对外圆边界估计的影响,将环形区域分为左右两侧分别进行展开,且环形左侧的展开的角度范围可以为环形右侧的展开的角度范围可以为
步骤S1045,对展开的虹膜图像进行各向异性平滑处理,得到处理后的虹膜图像。
利用各向异性平滑操作平滑虹膜展开图像时,可以获得灰度分布明显且边界更加清晰的图像。
在一种可选的实施例中,可以通过如下公式对虹膜图像进行各向异性平滑操作:
其中表示像素点(a,b)处灰度值La,b的参数;Li,j为原虹膜图像中(i,j)处的灰度值,λ为平衡增量参数,其中,λ处于(0,1)的范围内。
利用公式进行多次迭代后,获得各向异性平滑结果,根据经验,这里选择两次迭代。
步骤S1047,通过预设的梯度算子获取处理后的虹膜图像的梯度信息,根据梯度信息获取外圆的估计半径。
在一种可选的实施例中,上述预设的梯度算子可以是通过预设的梯度算子来获取经过各向异性平滑操作的边界清晰的虹膜图像的梯度信息。
步骤S1049,以瞳孔的圆心作为圆心,以外圆的估计半径作为半径,确定外圆边界估计值。
在上述步骤中,根据圆心和估计的半径能够得到虹膜外圆的边界。
由上可知,本申请上述步骤从瞳孔的位置参数中获取瞳孔的圆心和半径,并根据瞳孔的半径获取外圆边界的半径范围,以瞳孔的圆心为中心,将环形候选虹膜区域按照左右角度范围分别展开为极坐标系中的矩形,对虹膜图像进行各向异性平滑操作,得到边界清晰的虹膜图像,通过预设的梯度算子获取边界清晰的虹膜图像的梯度信息,根据梯度信息获取外圆的估计半径。以瞳孔的圆心作为圆心,以外圆的估计半径作为半径,确定外圆边界估计值。上述方案实现了根据粗定位的瞳孔的位置信息获取虹膜外圆参数估计的目的。
可选的,根据本申请上述实施例,通过预设的梯度算子获取处理后的虹膜图像的梯度信息,根据梯度信息获取外圆的估计半径,包括:
步骤S10471,获取处理后的矩形虹膜图像中平均梯度值最大的行,其中,平均梯度值最大的行包括;左侧平均梯度值最大的行和右侧平均梯度值最大的行。
在上述步骤中,由于在将环形图像展开为极坐标系中的矩形图像时,分为左、右两侧进行展开,因此获得的平均梯度最大的行包括左侧和右侧两个部分。由于虹膜外圆的边界的梯度最大,因此平均梯度值最大的行可以确认为位于虹膜的外圆边界上的像素点。
步骤S10473,对所述左侧平均梯度最大值和右侧平均梯度最大值进行比较,选择其中的平均梯度最大值对应的行为所述矩形图像中虹膜的外圆边界所在的行。
具体的,虹膜的外圆边界梯度值一般大于其他区域的梯度值,之所以选择环形区域左、右侧分别计算,并选择左、右侧最大平均灰度值中较大的一个所对应的行作为外圆边界的位置,是因为虹膜内、外圆边界并不是严格意义上的同心圆,并且可能存在一侧受到噪声影响较大或者边界不清晰的情况,分两侧进行计算,提高了估计的准确性。
步骤S10475,根据外圆边界所在的行确定外圆的半径估计值。
在一种可选的实施例中,可以根据如下公式得到虹膜外圆估计半径riris,riris=d+rpupil+rmin-1,其中,其中d为筛选得到平均梯度值最大的行,rpupil为瞳孔的半径,rmin为外圆半径与瞳孔半径的差值的最小值。在原图上显示外圆边界的估计结果可以如图3所示,为保证计算速度,可以选择在一个缩小0.3倍的图像上进行计算。
可选的,根据本申请上述实施例,获取上眼睑和下眼睑的边界点,并通过对上眼睑和下眼睑的边界点进行曲线拟合,得到上眼睑边界和下眼睑边界曲线,包括:
步骤S1061,截取上眼睑的检测区域和下眼睑的检测区域。
在一种可选的实施例中,可以选择如下公式截取上眼睑的检测区域,截取的上眼睑的检测区域如图4a所示。
IupEyelid=I(upEyelidup:upEyeliddown,upEyelidleft:upEyelidrigth)
其中upEyelidup=ypupil-riris-2为上边界;upEyeliddown=ypupil+1为下边界;upEyelidleft=xpupil-riris-2为左边界;upEyelidright=xpupil+riris+2为右边界,(xpupil,ypupil)表示瞳孔的圆心,riris表示外圆的半径估计值。
可以选择如下公式截取下眼睑的检测区域,截取的下眼睑的检测区域如图4b所示,
IdownEyelid=I(downEyelidup:downEyeliddown,downEyelidleft:downEyelidrigth)
其中downEyelidup=ypupil为上边界;downEyeliddown=ypupil+riris+3为下边界;downEyelidleft=xpupil-riris-2为左边界;downEyelidright=xpupil+riris+2为右边界,(xpupil,ypupil)表示瞳孔的圆心,riris表示外圆的半径估计值。
步骤S1063,分别通过第一预设滤波参数和第二预设滤波参数对上眼睑的检测区域和下眼睑的有效检测区域进行平滑处理,以去除睫毛在上眼睑和下眼睑产生的噪声。
在上述步骤中,可以使用中值滤波对上眼睑和下眼睑的检测区域进行平滑处理,由于上眼睑的睫毛较为浓密,下眼睑的睫毛较为稀疏,因此对上眼睑和下眼睑进行中值滤波时可以采用不同的参数,在一种可选的情况下,对上眼睑进行中值滤波采用的第一预设滤波参数可以是3*5,对下眼睑进行中值滤波采用的第二预设滤波参数可以是3*3。
步骤S1065,通过灰度梯度算子检测上眼睑和下眼睑的眼睑边界,得到上眼睑的边界点和下眼睑的边界点。
步骤S1067,通过加权最小二乘法对所述上眼睑和所述下眼睑边界点进行曲线拟合,分别得到拟合的上眼睑边界曲线参数和拟合的下眼睑边界曲线参数。
步骤S1069,根据所述上眼睑边界曲线参数和所述下眼睑边界曲线参数确定的边界得到所述上眼睑边界和所述下眼睑边界。
由上可知,本申请上述步骤截取上眼睑的检测区域和下眼睑的检测区域,分别通过第一预设滤波参数和第二预设滤波参数对上眼睑的检测区域和下眼睑的有效检测区域进行平滑处理,以去除睫毛在上眼睑和下眼睑产生的噪声,通过灰度梯度算子分别检测上眼睑和下眼睑的眼睑边界,获取到上眼睑的边界点和下眼睑的边界点,通过加权最小二乘法对所述上眼睑和所述下眼睑边界点进行曲线拟合,分别得到拟合的上眼睑边界曲线参数和拟合的下眼睑边界曲线参数,根据所述上眼睑边界曲线参数和所述下眼睑边界曲线参数确定的边界得到所述上眼睑边界和所述下眼睑边界。上述方案实现了精确的定位上眼睑和下眼睑边界,并去除了睫毛对上、下眼睑定位的影响。
可选的,根据本申请上述实施例,在通过灰度梯度算子检测上眼睑和下眼睑的眼睑边界,获取到上眼睑的边界点和下眼睑的边界点之前,方法还包括:构造瞳孔噪声模板,其中,构造瞳孔噪声模板的步骤包括:
步骤S10611,在虹膜图像中确定候选瞳孔区域。
由于瞳孔的边界处梯度值较大,为了避免检测上、下眼睑边界点时受到瞳孔的边界的干扰,还需要检测所有的瞳孔噪声。
在一种可选的实施例中,可以根据瞳孔粗定位结果,根据如下公式确定候选瞳孔区域:
Ipupil_candidate=I(pupuleUp:pupuleDown,pupuleLeft:pupuleRight)
其中,pupuilUp=ypupil-rpupie-3表示上边界;pupuilDown=ypupil+rpupie+3表示下边界;pupuilLeft=xpupil-rpupie-3表示左边界;pupuilRight=xpupil+rpupie+3表示右边界,(xpupil,ypupil)表示瞳孔的圆心,rpupie表示瞳孔半径,之后为保证检测效果,通过阈值筛选到所有的瞳孔区域。
步骤S10613,根据候选瞳孔区域中的灰度最大值和候选瞳孔区域中的灰度最小值确定自适应筛选阈值。
在一种可选的实施例中,筛选阈值可以通过如下公式计算得到:
tre=0.15max(Ipupilcandidate)+0.85min(Ipupil_candidate)
其中,max(Ipupilcandidate)为候选瞳孔区域中的灰度最大值,min(Ipupil_candidate)为候选瞳孔区域中的灰度最小值。
步骤S10615,根据筛选阈值对候选瞳孔区域进行筛选,得到瞳孔区域,并对全部瞳孔区域进行膨胀(本实施例选择5×5的结构单元对瞳孔区域进行膨胀),得到瞳孔噪声模板。
在一种可选的实施例中,筛选阈值可以通过如下公式计算得到:Ipupil_mask=Ipupil_candidate<tre,也即,瞳孔噪声模板由候选瞳孔区域中灰度值小于筛选阈值的像素点构成。
可选的,根据本申请上述实施例,在通过灰度梯度算子检测上眼睑和下眼睑的眼睑边界,获取到上眼睑的边界点和下眼睑的边界点之前,方法还包括:构造光斑噪声模板,其中,构造光斑噪声模板的步骤包括:
步骤S10617,获取预设的光斑检测滤波器。
在一种可选的实施例中,可以选择11×11的矩阵作为光斑检测滤波器,其中,滤波器中间5×5的区域为1/25,其他区域的取值为-1/96,设光斑检测算子为flight。
步骤S10619,通过光斑检测滤波器对上眼睑区域和下眼睑区域的进行滤波,在最大滤波结果大于第一个阈值的情况下确认所述虹膜图像中存在光斑,并继续检测所述虹膜图像中的光斑像素点。
在上述步骤中,通过光斑检测滤波对图像进行处理,得到滤波结果,在一种可选的实施例中,仍以上述滤波器为11×11的矩阵作为示例,第一预设值可以为30,在最大滤波结果小于30时,检测区域中不存在光斑的影响,在最大滤波结果大于第一预设值30时,需要检测区域中的光斑进行进一步判断。
步骤S10621,判断存在光斑的图像中的每个像素的滤波结果是否大于第二预设阈值,如果所述像素的滤波结果大于所述第二预设阈值,则确定所述像素为光斑,其中,所述第二预设阈值由滤波后的所述上眼睑和所述下眼睑区域中的滤波结果得到,可选的,选择第二预设阈值为tre=0.6max(Ilight),其中Ilight为对有效区域滤波后的图像。
步骤S10623,对确定为光斑的像素进行膨胀,得到光斑噪声模板。
在一种可选的实施例中,可以根据一个7×7的结构单元对光斑区域进行膨胀。
由上可知,本申请上述步骤获取光斑检测滤波器,通过光斑检测滤波器对上眼睑区域和下眼睑区域进行滤波,在最大滤波结果大于第一预设值的情况下认为检测区域中存在光斑。对存在光斑的图像,判断滤波结果是否大于第二预设值,如果像素的滤波结果大于第二预设值,则确定像素为光斑,对确定为光斑的像素进行膨胀,得到光斑噪声模板。
可选的,根据本申请上述实施例,通过灰度梯度算子检测上眼睑和下眼睑的眼睑边界,得到上眼睑的边界点和下眼睑的边界点,包括:
步骤S10625,通过具有预设参数的高斯滤波器对上眼睑和下眼睑的有效区域进行高斯滤波。
在上述步骤中,高斯滤波用于平滑图像,保证梯度检测结果。
在一种可选的实施例中,以眼睑图像I作为示例,进行高斯滤波后的图像IGauss被定义为:IGauss=I*G,其中G为高斯函数,该实施例中取σ=2。
步骤S10627,通过竖直方向上的边缘检测算子计算上眼睑区域和下眼睑区域中竖直方向梯度,并通过瞳孔噪声模板和光斑噪声模板分别对上眼睑区域和下眼睑区域梯度计算结果进行掩模。
在上述步骤中,竖直方向边缘检测算子可以取对眼睑图像进行高斯滤波之后,利用竖直方向边缘检测算子计算竖直方向梯度。
为了避免噪声梯度(例如:光斑梯度、瞳孔梯度)的影响,根据瞳孔噪声模板和光斑噪声模板进行掩摸,将瞳孔噪声模板和光斑噪声模板对应的区域的梯度值设置为0。
步骤S10629,根据所述上眼睑区域和所述下眼睑区域中竖直方向梯度值,获取所述上眼睑区域和所述下眼睑区域的梯度幅值图,并在初步筛选所述上眼睑区域和所述下眼睑区域的梯度后,对梯度幅值图进行归一化,同时将所述上眼睑区域和所述下眼睑区域的灰度值取反之后进行归一化处理,并根据归一化处理后的灰度图与所述归一化梯度幅值图得到灰度梯度图,其中,所述上眼睑区域的初步筛选要求的方向为竖直向上的梯度值,所述下眼睑区域的初步筛选方向为竖直向下的梯度值。
在上述步骤中,上述初步筛选还包括筛选出局部极大的梯度幅值结果,即如下公式所示:
其中,Ig为梯度幅值图,(x,y)为当前像素点坐标。
由于眼睑区域和虹膜区域的交界处,一般灰度值也比较小,将上眼睑和下眼睑区域的灰度值取反之后归一化,和归一化后的梯度图结合,得到灰度梯度图:Igg=k1Igu+k2Iu,其中,Igu为归一化后的梯度图像,Iu为归一化后的灰度图像,k1、k2分别表示梯度、灰度的权重,在获取上眼睑边界点时可以分别取值为1.2和0.8,在获取下眼睑边界点时可以分别取值为1.5和0.5。
步骤S10631,通过双阈值法对所述上眼睑区域的像素点进行筛选得到有效的上眼睑边界点,并通过单个阈值对所述下眼睑区域的像素进行筛选得到有效的下眼睑边界点。
上述步骤中的双阈值法步骤为:通过第一个灰度梯度阈值,对灰度梯度图进行二值化,得到一组边界点,对于大于第二个灰度梯度阈值的非边界点像素,如果它的邻域中(本实施例中选择8邻域)有边界点,则将这一个像素点加入边界点集。
在一种可选的实施例中,设置两个灰度梯度阈值,第一个为tr1=0.7max(Igg),第二个为tre2=0.3max(Igg),tre1>tre2,其中,此处max(Igg)用于表示上眼睑的灰度梯度图的最大值。
利用tre1对灰度梯度图像进行二值化,获得一个端点较多的边缘,且含有较少非眼睑边界的边界图Itre1;再利用tre2对灰度图像进行二值化,获得含有较多非眼睑边界的图像Itre2。为了获得眼睑边界,判断Itre2图像中的边界点八邻域内是否包含和Itre1中的边界点相邻的点(即第二边界点中与任意边界点处于预设连通区域的边界点),如果存在,则将Itre2中在八邻域内与Itre1中的边界点相邻的点进行提取,并将其和Itre1的边界点进行连接,并更新Itre1,多次计算,直到没有新的连接点,获得眼睑边界。检测到的上眼睑的边界点可以如图5a所示。
对于下眼睑边界点的检测,由于下眼睑区域受到的噪声干扰比较少,仅利用一个灰度梯度阈值筛选灰度梯度,在一种可选的实施例中,可以选择的阈值为tr1=0.8max(Igg),其中,此处max(Igg)用于表示下眼睑的灰度梯度的最大值,检测到的下眼睑的边界点可以如图5b所示。
可选的,根据本申请上述实施例,通过加权最小二乘法对上眼睑和下眼睑边界点进行抛物线拟合,分别得到拟合的上眼睑边界曲线参数和拟合的下眼睑边界曲线参数,包括:
步骤S10691,根据所述上眼睑和所述下眼睑的边界点到目标边界曲线的距离设置相应的权重值,其中,所述权重值与所述上眼睑和所述下眼睑的边界点到所述目标边界曲线的距离负相关。
上述步骤在获得边界点之后,使用加权最小二乘法拟合抛物线参数,其中,权重值与上、下眼睑边界点偏离拟合目标抛物线距离负相关,即上、下眼睑边界点距离目标抛物线距离越远,权重值越小。
进一步,确定上眼睑边界点和下眼睑边界点的拟合约束条件,其中,上眼睑的拟合约束条件包括:上眼睑边界曲线与上眼睑的边界点的加权误差的平方和最小;下眼睑的拟合约束条件包括:下眼睑边界曲线与下眼睑的边界点的加权误差的平方和最小。其中,加权误差平方和根据边界点到边界曲线的距离和所述距离确定的权重值得到。
在一种可选的情况下,约束条件可以用如下公式表示:
其中,a、b、c用于表示抛物线参数;在该示例中t=4。
步骤S10693,通过拟合约束条件,得到拟合的上眼睑边界曲线参数和拟合的下眼睑边界曲线参数,其中,边界曲线参数对应的曲线确定了上眼睑边界和下眼睑边界。
可选的,根据本申请上述实施例,对上眼睑边界和下眼睑边界确定的有效区域进行噪声检测,包括:
步骤S1081,获取预设的小光斑检测滤波器。
在一种可选的实施例中,上述光斑检测滤波器可以是11×11的矩阵,其中,中间5×5区域为1/25,其余区域为-1/96。
步骤S1083,通过光斑检测滤波器对有效区域进行滤波,在最大滤波结果大于第一预设阈值的情况下确认有效区域存在小光斑,其中,有效区域为上眼睑边界和下眼睑边界之间的区域。
在一种可选的实施例中,可以选择如图6所示的上、下抛物线中间的区域作为有效区域。
步骤S1085,判断存在小光斑的图像中的每个像素的滤波结果是否大于第二阈值,在像素点滤波结果大于所述第二阈值的情况下,确定所述像素属于所述小光斑,其中,所述第二阈值根据滤波后的所述上眼睑和所述下眼睑有效区域中的滤波结果确定。
在一种可选的实施例中,第一预设阈值可以为30,设置第二预设阈值tre=0.4*max(Ilight),其中Ilight为滤波后的图像,Ilight=I*flight,对判断为存在小光斑的图像,如果滤波结果大于第二预设阈值,则认为是小光斑。
步骤S1087,在滤波结果大于自适应阈值的情况下确认所述像素属于大光斑,其中,自适应阈值根据上眼睑和下眼睑有效区域中的平均灰度值和最大灰度值得到。
在上述步骤中,针对大光斑直接采用自适应阈值进行筛选,在一种可选的实施例中,可以设置自适应阈值为tre=mean(I)+0.8(max(I)),大于自适应阈值的区域认为是存在的大光斑,其中,mean(I)用于表示有效区域中的平均灰度值,max(I)表示有效区域的最大灰度值。
步骤S1088,对确定为光斑的像素进行膨胀,得到光斑检测结果。
在本实施例中,可选的选择了一个7×7的结构单元进行膨胀。
可选的,根据本申请上述实施例,对上眼睑边界和下眼睑边界确定的有效区域进行噪声检测的步骤还包括:检测睫毛噪声,其中,检测所述睫毛噪声的步骤包括:
获取预设的睫毛检测阈值,根据所述灰度梯度图确定所述有效区域中灰度梯度值大于所述睫毛检测阈值的像素属于睫毛区域。
步骤S1089,获取上、下眼睑确定的有效区域的梯度幅值图,并对梯度幅值图进行归一化;同时对上、下眼睑区域的灰度图,取反之后归一化,结合得到灰度梯度图。
获取根据所述上眼睑和所述下眼睑结果确定的有效区域灰度图和所述有效区域的梯度幅值图,并将所述有效区域灰度图取反之后归一化,同时将所述梯度幅值图进行归一化,结合归一化后的所述有效区域灰度图和归一化后的所述梯度幅值图得到所述上眼睑和所述下眼睑的有效区域的灰度梯度图。
由于睫毛的灰度值一般比较小,于是将上下眼睑确定的有效区域的灰度值取反之后归一化,和归一化后的梯度图结合,得到灰度梯度图:Igg=k1Igu+k2Iu,其中,Igu为归一化后的梯度幅值图像,Iu为归一化后的灰度图像,k1、k2分别表示梯度、灰度的权重,其中k1=2,k2=1。
步骤S10810,获取预设的睫毛检测阈值,根据所述灰度梯度图确定所述有效区域中灰度梯度值大于所述睫毛检测阈值的像素属于睫毛区域。
在本实施例中,可选的预设睫毛灰度阈值为0.7。
可选的,根据本申请上述实施例,通过径向投影方法精确定位虹膜的外圆边界,通过微积分检测算子精确定位瞳孔的边界,包括:
步骤S10101,对每个虹膜的外圆边界候选参数值确定对应的外圆边界像素点,计算所述像素点的梯度值,其中,通过分别计算水平方向上梯度和竖直方向梯度确定所述梯度的幅值和方向。
在一种可选的实施例中,可以利用变形的sobel算子计算图像梯度,
水平方向的sobel算子为:竖直方向sobel算子为:为了保证边界梯度方向指向圆心,对soble算法分别取负值,即取水平方向soble算子为:取竖直方向soble算子为:
分别计算梯度在水平方向和竖直方向的梯度:则梯度幅值和角度分别为:
步骤S10103,筛选梯度的角度满足预设条件的点为有效边界点。
在一种可选的实施例中,当圆形边界参数为(xi,yi,ri)时,对于圆形边界上的任何一点(xc,yc),指向圆心的方向为:则可以设置预设条件为:得到有效边界点组成的集合为XYirisROI,需要注意的是,根据噪声检测部分得到的噪声模板,排除噪声点的影响,仅计算非噪声区域。
步骤S10105,获取每个有效边界点的梯度沿径向的投影。
在一种可选的实施例中,对于满足预设条件的圆形边界上任意一点(xc,yc)∈XYirisROI,如图7所示,对圆心方向的投影为:vc=M(xc,yc)*cos(θ(xc,yc)-θic)。
步骤S10107,根据所述有效边界点对应的投影结果获得最终累积投影值,同时计算所述有效边界点的数量,结合累积投影值和所述有效边界点的数量得到所述外圆边界候选参数投票值,其中,最终的累积投影值取累积投影值的绝对值。
在一种可选的实施例中,集合XYirisROI中有效边界点数量为N,则针对参数(xi,yi,ri)的投票值为:
步骤S10109,在获取到多个外圆边界候选参数值的情况下,选择圆形边界参数投票值最大一组对应的候选参数为所述虹膜外圆的边界参数。
通过虹膜外圆粗定位结果,可以根据圆心位置以及半径生成一组候选外圆边界参数集。
在一种可选的实施例中,在虹膜外边界估计值(xpupil,ypupil,riris)的基础上,确定候选外圆参数的取值范围。选择新的参数xiris∈[xpupil-Δx,xpupil+Δx],yiris∈[ypupil-Δy,ypupil+Δy],r∈[riris-Δr,riris+Δr],在该示例中,令Δx=Δy=3,Δr=7)。于是以1为步长,可以生成一个外圆边界参数候选集。
在一种可选的实施例中,精确定位的外圆的边界(xiris,yiris,iris)=arg max(xi,yi,ri)(votei),通过上述精确定位得到的外圆边界如图8所示。
可选的,根据本申请上述实施例,在通过径向投影的方法精确定位外圆边界,得到外圆位置信息之前,方法还包括:基于粗定位获取的瞳孔的位置参数,通过微积分检测算子对瞳孔的边界精确定位,其中,基于粗定位获取的瞳孔的位置参数,通过微积分检测算子对瞳孔的边界精确定位的步骤包括:
步骤S1012,根据所述粗定位获得的瞳孔位置参数,通过预设的参数得到瞳孔位置精定位的候选参数集。
在一种可选的实施例中,在粗定位瞳孔的边界(xpupil,ypupil,rpupil)的基础上,利用微积分检测算子对瞳孔的边界进行精定位。选择新的参数x0∈[xpupil-Δx,xpupil+Δx],y0∈[ypupil-Δy,ypupil+Δy],r∈[rpupil-Δr,rpupil+Δr]。在该示例中,令Δx=Δy=3,Δr=5,从而获得一组候选瞳孔的边界参数。
步骤S1014,获取每一组所述瞳孔精定位候选参数对应的微积分算子值,选择对应的微积分算子值最大的一组参数作为所述瞳孔精定位的边界参数。
在一种可选的实施例中,可以通过求解如下约束条件来获取使微积分检测算子值最大的瞳孔的边界参数,即选择微积分检测算子值最大的一组候选瞳孔圆形边界参数。
其中I(x,y)为采集到的虹膜图像;是尺度为σ的高斯函数;*表示卷积;(r,x0,y0)表示圆形参数,(x0,y0)表示圆心,r表示半径。
在计算过程中,考虑上述步骤中的噪声模板,噪声区域不参与计算。