发明内容
本申请的目的是提供一种眨眼检测的方法,该方法可有效避免由于遮挡而产生误检测的问题,获得的分类器模型较小,进一步提高了检测效率;本申请的另一目的是提供一种眨眼检测的装置、设备及计算机可读存储介质,均具有上述有益效果。
为解决上述技术问题,本申请提供一种眨眼检测的方法,该方法包括:
训练睁眼检测器和闭眼检测器;
获取第一视频帧中的第一人脸区域,在所述第一人脸区域利用所述睁眼检测器定位眼睛的第一位置;若定位成功,则保存所述第一位置;
获取第二视频帧中的第二人脸区域,在所述第二人脸区域利用所述睁眼检测器定位眼睛的第二位置;若定位成功,则依次切换视频帧进行定位,直至定位失败,并将最后一次定位成功获得的第二位置作为所述第一位置;
在所述第一位置利用所述闭眼检测器定位眼睛的闭眼位置;若定位成功,则输出眨眼成功。
优选的,所述训练睁眼检测器和闭眼检测器包括:
分别获取每种状态下人脸的图像数据;
分别将每种检测器对应的眼睛在相应状态下的图像数据作为正样本,将不包含所述每种检测器对应的眼睛在相应状态下的图像数据作为负样本;
利用局部二值模式LBP特征提取方法提取所述正样本和所述负样本的LBP特征;
通过Adaboost训练器对所述LBP特征进行分类训练,获得所述睁眼检测器和所述闭眼检测器。
优选的,所述在所述第一位置利用所述闭眼检测器定位眼睛的闭眼位置包括:
将所述第一位置扩大预定范围获得放大位置,并在所述放大位置利用所述闭眼检测器定位眼睛的闭眼位置。
优选的,还包括:
输出眼睛的状态信息;其中,所述状态信息包括睁眼状态和闭眼状态。
为解决上述技术问题,本申请还提供一种眨眼检测的装置,包括:
训练模块,用于训练睁眼检测器和闭眼检测器;
保存模块,用于获取第一视频帧中的第一人脸区域,在所述第一人脸区域利用所述睁眼检测器定位眼睛的第一位置;若定位成功,则保存所述第一位置;
第一定位模块,用于获取第二视频帧中的第二人脸区域,在所述第二人脸区域利用所述睁眼检测器定位眼睛的第二位置;若定位成功,则依次切换视频帧进行定位,直至定位失败,并将最后一次定位成功获得的第二位置作为所述第一位置;
第二定位模块,用于在所述第一位置利用所述闭眼检测器定位眼睛的闭眼位置;若定位成功,则输出眨眼成功。
优选的,所述训练模块包括:
获取子模块,用于分别获取每种状态下人脸的图像数据;
样本分类子模块,用于分别将每种检测器对应的眼睛在相应状态下的图像数据作为正样本,将不包含所述每种检测器对应的眼睛在相应状态下的图像数据作为负样本;
提取子模块,用于利用局部二值模式LBP特征提取方法提取所述正样本和所述负样本的LBP特征;
训练子模块,用于通过Adaboost训练器对所述LBP特征进行分类训练,获得所述睁眼检测器和所述闭眼检测器。
优选的,所述第二定位模块具体用于将所述第一位置扩大预定范围获得放大位置,并在所述放大位置利用所述闭眼检测器定位眼睛的闭眼位置。
优选的,还包括:
输出模块,用于输出眼睛的状态信息;其中,所述状态信息包括睁眼状态和闭眼状态。
为解决上述问题,本申请还提供一种眨眼检测的设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任意一项所述眨眼检测的方法的步骤。
为解决上述问题,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述眨眼检测的方法的步骤。
本申请所提供的一种眨眼检测的方法,包括训练睁眼检测器和闭眼检测器;获取第一视频帧中的第一人脸区域,在所述第一人脸区域利用所述睁眼检测器定位眼睛的第一位置;若定位成功,则保存所述第一位置;获取第二视频帧中的第二人脸区域,在所述第二人脸区域利用所述睁眼检测器定位眼睛的第二位置;若定位成功,则依次切换视频帧进行定位,直至定位失败,并将最后一次定位成功获得的第二位置作为所述第一位置;在所述第一位置利用所述闭眼检测器定位眼睛的闭眼位置;若定位成功,则输出眨眼成功。
可见,本申请所提供的技术方案,将睁眼检测器与闭眼检测器相结合,对不同状态下的眼睛进行定位,以实现眨眼检测,整个检测器的检测过程经过优化后,在前端设备上的耗时有效降低,具有一定的速度优势,并且也克服了由于遮挡而产生误检测的问题;同时,采用睁眼检测器与闭眼检测器进行检测,检测器数目较少,进一步减小了整个模型的大小。
本申请还提供了一种眨眼检测的装置、设备及计算机可读存储介质,均具有上述有益效果,在此不再赘述。
具体实施方式
本申请的核心是提供一种眨眼检测的方法,该方法可有效避免由于遮挡而产生误检测的问题,获得的分类器模型较小,进一步提高了检测效率;本申请的另一核心是提供一种眨眼检测的装置、设备及计算机可读存储介质,均具有上述有益效果。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
请参考图1,图1为本申请所提供的一种眨眼检测的方法的流程示意图,该方法可以包括:
S101:训练睁眼检测器和闭眼检测器;
具体的,可以训练两个分类器模型,即睁眼检测器和闭眼检测器,以定位在不同状态下的眼睛的位置,获取其位置信息。其训练过程可以为离线训练。同时需要说明的是,该训练可以只进行一次,即可以作为子程序进行存储,每次进行眨眼检测时只需调用该程序即可。
S102:获取第一视频帧中的第一人脸区域,在第一人脸区域利用睁眼检测器定位眼睛的第一位置;若定位成功,则保存第一位置;
具体的,眨眼是一个从睁眼到闭眼的过程,需要不同的视频帧的配合,以实现眨眼检测。按顺序依次播放视频帧,在第一视频帧中,可以采用抠图技术扣取人脸区域的位置,即获取第一人脸区域;进一步,利用训练好的睁眼检测器在第一人脸区域定位眼睛的位置,若定位成功,则将获得的位置进行保存;若定位失败,则可以继续依次切换下一视频帧,再次进行上述定位过程,直至获得眼睛的位置,即第一位置。
S103:获取第二视频帧中的第二人脸区域,在第二人脸区域利用睁眼检测器定位眼睛的第二位置;若定位成功,则依次切换视频帧进行定位,直至定位失败,并将最后一次定位成功获得的第二位置作为第一位置;
具体的,在获取第一位置之后,切换下一视频帧,即第二视频帧,再次扣取人脸区域的位置,获取第二人脸区域;利用训练好的睁眼检测器在第二人脸区域定位眼睛的位置,即第二位置。若定位成功,说明眼睛仍处于睁眼状态,则保存该第二位置,并继续依次切换视频帧,进行上述定位过程,直至定位失败为止。其中,在每次定位成功后都可以保存眼睛的位置,以不断更新上述第二位置,达到实时性,进一步将最后一次定位成功后获得的第二位置作为第一位置,以便于闭眼检测器检测过程的进行。
S104:在第一位置利用闭眼检测器定位眼睛的闭眼位置;若定位成功,则输出眨眼成功。
具体的,在定位失败后,即说明眼睛可能已经处于闭眼状态或出现失误,此时则可以利用训练好的闭眼检测器定位眼睛的闭眼位置,若定位成功,则说明眨眼成功,输出眨眼成功,即完成一次眨眼检测。若定位失败,则说明在上述过程中可能出现失误,则可以返回步骤S102重新开始眨眼检测过程。
需要说明的是,上述步骤S102至步骤S104即为一个完整的眨眼状态机,调用步骤S101,即可以实现完整的眨眼检测过程。该眨眼状态机可以以代码程序的形式在处理器上运行,还可以进一步在ARM设备上进行程序加速,以提高检测效率。
本申请所提供的一种眨眼检测的方法,在整个检测器的检测过程经过优化后,在前端设备上的耗时有效降低,提高了检测效率,也克服了由于遮挡而产生误检测的问题;同时检测器数目较少,进一步减小了整个模型的大小。
在上述实施例的基础上:
作为一种优选实施例,上述训练睁眼检测器和闭眼检测器的过程可以包括:分别获取每种状态下人脸的图像数据;分别将每种检测器对应的眼睛在相应状态下的图像数据作为正样本,将不包含每种检测器对应的眼睛在相应状态下的图像数据作为负样本;利用局部二值模式LBP特征提取方法提取正样本和负样本的LBP特征;通过Adaboost训练器对LBP特征进行分类训练,获得睁眼检测器和闭眼检测器。
具体的,可以先获取各种状态下的人脸的图像数据,如睁眼状态下和闭眼状态下的人脸的图像数据,或睁眼和闭眼的图像数据等,并将每种检测器对应的眼睛在相应状态下的图像数据作为睁眼本,将不包含每种检测器对应的眼睛在相应状态下的图像数据作为负样本,进一步利用局部二值模式LBP特征提取方法,提取正样本和负样本的LBP特征,最后可以通过Adaboost训练器对获得的LBP特征进行分类训练,其中可以将贝叶斯分类器充当Adaboost的弱分类器,进一步获得睁眼检测器和闭眼检测器。其中,上述贝叶斯分类器具有连续性,在训练过程中,分类器的收敛速度较快,获得的模型较小。
具体的,对于训练睁眼检测器,请参考图2,图2为本申请所提供的一种训练睁眼检测器的方法的示意图,可以将睁眼的图像数据作为正样本,将闭眼的图像数据和人脸区域非眼睛的图像数据作为负样本,放入Adaboost训练器进行训练获得上述睁眼检测器;对于训练闭眼检测器,请参考图3,图3为本申请所提供的一种训练闭眼检测器的方法的示意图,可以将闭眼的图像数据作为正样本,将睁眼的图像数据和眼睛附近区域非眼睛的图像数据作为负样本,放入Adaboost训练器进行训练获得上述闭眼检测器。
其中,上述Adaboost训练器可以采用级联的Adaboost;上述LBP特征可以采用MBLBP特征,即LBP的块大小可以选取1*1和2*2两种,也就是说将局部半径进行扩大,产生不同半径下的局部二值,这两个尺度的LBP由于加入了均值滤波的特性,不仅能通过ARM设备上的NEON指令进行优化,在性能较低的前端设备也有速度优势,其耗时可达5ms以内,而且针对噪声和光照具有一定的鲁棒性,在手机端画面质量差距比较大的情况下也能有不错的效果。
该优选实施例所提供的一种眨眼检测的方法,采用MBLBP特征对睁眼检测器和闭眼检测器进行训练,一次眨眼通过率能达到95%,误检率能够控制在1%以内,并且还能够避免遮挡有误检的问题。
在上述实施例的基础上:
作为一种优选实施例,上述所述在所述第一位置利用所述闭眼检测器定位眼睛的闭眼位置的过程可以包括:
将第一位置扩大预定范围获得放大位置,并在放大位置利用闭眼检测器定位眼睛的闭眼位置。
具体的,在利用闭眼检测器定位眼睛的闭眼位置时,由于眼睛处于闭眼状态且眼睛区域较小,可能会出现定位失误的问题,为避免该问题,可以将获得的第一位置进行扩大预定的范围,以获得放大位置,例如,可以将第一位置以及附近区域的长度和宽度均放大2倍,进一步在放大位置上定位眼睛的闭眼位置。
该优选实施例所提供的一种眨眼检测的方法,将第一位置进行了扩大,更加方便闭眼检测器定位闭眼位置,大大提升了定位的准确率。
在上述实施例的基础上:
作为一种优选实施例,该方法还包括:输出眼睛的状态信息;其中,状态信息包括睁眼状态和闭眼状态。
具体的,还可以在每次定位成功后将眼睛的状态信息,即睁眼状态或闭眼状态,进行输出。例如,在睁眼检测器定位到第一位置或第二位置的时候,可以随之输出睁眼状态;在闭眼检测器定位到闭眼位置的时候,可以随之输出闭眼状态,最后输出眨眼成功,还可以添加定时器进行定时,计算开始睁眼到闭眼的时间,更加便于眨眼速率的统计。
为解决上述问题,请参考图4,图4为本申请所提供的一种眨眼检测的装置的示意图,该装置可以包括:
训练模块1,用于训练睁眼检测器和闭眼检测器;
保存模块2,用于获取第一视频帧中的第一人脸区域,在第一人脸区域利用睁眼检测器定位眼睛的第一位置;若定位成功,则保存第一位置;
第一定位模块3,用于获取第二视频帧中的第二人脸区域,在第二人脸区域利用睁眼检测器定位眼睛的第二位置;若定位成功,则依次切换视频帧进行定位,直至定位失败,并将最后一次定位成功获得的第二位置作为第一位置;
第二定位模块4,用于在第一位置利用闭眼检测器定位眼睛的闭眼位置;若定位成功,则输出眨眼成功。
作为一种优选实施例,训练模块1包括:
获取子模块,用于分别获取每种状态下人脸的图像数据;
样本分类子模块,用于分别将每种检测器对应的眼睛在相应状态下的图像数据作为正样本,将不包含每种检测器对应的眼睛在相应状态下的图像数据作为负样本;
提取子模块,用于利用局部二值模式LBP特征提取方法提取正样本和负样本的LBP特征;
训练子模块,用于通过Adaboost训练器对LBP特征进行分类训练,获得睁眼检测器和闭眼检测器。
作为一种优选实施例,第二定位模块4具体用于将第一位置扩大预定范围获得放大位置,并在放大位置利用闭眼检测器定位眼睛的闭眼位置。
作为一种优选实施例,该装置还可以包括:
输出模块,用于输出眼睛的状态信息;其中,状态信息包括睁眼状态和闭眼状态。
对于本发明提供的装置的介绍请参照上述方法实施例,本发明在此不做赘述。
为解决上述问题,请参考图5,图5为本申请所提供的一种眨眼检测的设备的示意图,该设备包括:
存储器10,用于存储计算机程序;
处理器20,用于执行计算机程序时实现如下步骤:
训练睁眼检测器和闭眼检测器;获取第一视频帧中的第一人脸区域,在第一人脸区域利用睁眼检测器定位眼睛的第一位置;若定位成功,则保存第一位置;获取第二视频帧中的第二人脸区域,在第二人脸区域利用睁眼检测器定位眼睛的第二位置;若定位成功,则依次切换视频帧进行定位,直至定位失败,并将最后一次定位成功获得的第二位置作为第一位置;在第一位置利用闭眼检测器定位眼睛的闭眼位置;若定位成功,则输出眨眼成功。
对于本发明提供的设备的介绍请参照上述方法实施例,本发明在此不做赘述。
为解决上述问题,本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如下步骤:
训练睁眼检测器和闭眼检测器;获取第一视频帧中的第一人脸区域,在第一人脸区域利用睁眼检测器定位眼睛的第一位置;若定位成功,则保存第一位置;获取第二视频帧中的第二人脸区域,在第二人脸区域利用睁眼检测器定位眼睛的第二位置;若定位成功,则依次切换视频帧进行定位,直至定位失败,并将最后一次定位成功获得的第二位置作为第一位置;在第一位置利用闭眼检测器定位眼睛的闭眼位置;若定位成功,则输出眨眼成功。
对于本发明提供的计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不做赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的眨眼检测的方法进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围要素。