本发明涉及图像识别技术领域,具体涉及一种眨眼检测方法及装置。
背景技术:
眨眼动作作为人类重要的面部特征,准确识别眨眼动作有着广泛的应用场景,可以根据眨眼动作来辅助判断驾驶员疲劳驾驶,可以根据眨眼动作区分活体和图片等非活体。目前现有的眨眼检测一般采用基于人脸68个landmark点计算眼睛宽高比来判断眨眼,然后与预先设置的阈值进行比较,如果在睁眼闭眼状态切换一次,则认为出现眨眼动作,该方法对landmark的准确率要求很高,但是在实际的各种复杂应用场景,不同光线条件,不同头部姿势时,landmark识别的准确率较低,因此基于此方法计算的眨眼检测准确率不高,而且计算量较大,造成延时较高。
技术实现要素:
本发明针对现有技术中存在的技术问题,提供一种适应各种光线条件,各种场景,不同姿势,不同眼睛大小的实时眨眼检测方法及装置。
本发明解决上述技术问题的技术方案如下:
本发明一方面提供一种眨眼检测方法,包括以下步骤:
步骤1,每经过预设的时间间隔提取一帧由图像采集装置采集的图像;
步骤2,对当前帧图像进行人脸检测并获取人脸landmark的位置;
步骤3,利用当前帧图像与上一帧图像相减获取人脸图像变化区域,将图像变化区域与当前帧图像的人脸检测区域以及人脸landmark位置进行比对,若标定位置没有变化而双眼区域出现变化,则认为发生一次眨眼动作。
进一步,所述预设的时间间隔为20~500ms,优选100ms。
进一步,步骤2中采用mtcnn算法对当前帧图像进行人脸检测并获取人脸landmark的位置。
进一步,步骤3包括:
对当前帧图像进行灰度化处理,得到当前帧灰度图像,并将其上一帧灰度图像进行减操作,获取当前帧灰度图像与上一帧灰度图像的差异图;
对所述差异图进行二值化处理,并检测差异图的轮廓;
将差异图的轮廓与当前帧图像的人脸检测区域以及人脸landmark位置进行比对,若标定位置没有变化而双眼区域出现变化,则认为发生一次眨眼动作。
进一步,对所述差异图进行二值化处理后,还包括对二值化后的差异图进行开操作,去除差异图中的噪点。
本发明另一方面提供一种眨眼检测装置,包括:
图像获取模块,用于每经过预设的时间间隔提取一帧由图像采集装置采集的图像;
人脸检测模块,用于对当前帧图像进行人脸检测并获取人脸landmark的位置;
比对判断模块,用于利用当前帧图像与上一帧图像相减获取人脸图像变化区域,将图像变化区域与当前帧图像的人脸检测区域以及人脸landmark位置进行比对,若标定位置没有变化而双眼区域出现变化,则认为发生一次眨眼动作。
进一步,所述人脸检测模块采用mtcnn算法对当前帧图像进行人脸检测并获取人脸landmark的位置。
进一步,所述比对判断模块具体用于:
差异图获取模块,用于对当前帧图像进行灰度化处理,得到当前帧灰度图像,并将其上一帧灰度图像进行减操作,获取当前帧灰度图像与上一帧灰度图像的差异图;
轮廓检测模块,用于对所述差异图进行二值化处理,并检测差异图的轮廓;
眨眼判定模块,将差异图的轮廓与当前帧图像的人脸检测区域以及人脸landmark位置进行比对,若标定位置没有变化而双眼区域出现变化,则认为发生一次眨眼动作。
进一步,所述轮廓检测模块,还用于在对所述差异图进行二值化处理后,对差异图进行开操作,去除差异图中的噪点。
本发明的有益效果是:
1.该方法只需要对图像进行灰度化,减运算,二值化,开运算等简单的操作,计算量小,延时低,占用资源少
2.该方法通过前后图像比对计算变化区域,对于光线环境不敏感,在各种环境中都能准确提取眨眼时发生的图像变化区域。
附图说明
图1为本发明提供的一种眨眼检测方法流程示意图;
图2为本发明提供的一种眨眼检测装置结构示意图;
图3为本发明提供的比对判断模块结构示意图。
具体实施方式
以下结合实例对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
本发明一方面提供一种眨眼检测方法,如图1所述,包括以下步骤:
步骤1,每经过预设的时间间隔提取一帧由图像采集装置采集的图像;
步骤2,对当前帧图像进行人脸检测并获取人脸landmark的位置;
步骤3,利用当前帧图像与上一帧图像相减获取人脸图像变化区域,将图像变化区域与当前帧图像的人脸检测区域以及人脸landmark位置进行比对,若标定位置(例如,鼻子位置)没有变化而双眼区域出现变化,则认为发生一次眨眼动作。
进一步,所述预设的时间间隔为20~500ms,优选100ms。
进一步,步骤2中采用mtcnn算法对当前帧图像进行人脸检测并获取人脸landmark的位置。通过mtcnn算法可获取人脸的位置以及人脸landmark的位置,准确率高,速度快。
进一步,步骤3包括:
对当前帧图像进行灰度化处理,得到当前帧灰度图像,并将其上一帧灰度图像进行减操作,获取当前帧灰度图像与上一帧灰度图像的差异图;
对所述差异图进行二值化处理,并检测差异图的轮廓;
将差异图的轮廓与当前帧图像的人脸检测区域以及人脸landmark位置进行比对,若鼻子位置没有变化而双眼区域出现变化,则认为发生一次眨眼动作。
进一步,对所述差异图进行二值化处理后,还包括对二值化后的差异图进行开操作,去除差异图中的噪点。
本发明另一方面提供一种眨眼检测装置,如图2所示,包括:
图像获取模块,用于每经过预设的时间间隔提取一帧由图像采集装置采集的图像;
人脸检测模块,用于对当前帧图像进行人脸检测并获取人脸landmark的位置;
比对判断模块,用于利用当前帧图像与上一帧图像相减获取人脸图像变化区域,将图像变化区域与当前帧图像的人脸检测区域以及人脸landmark位置进行比对,若标定位置(例如,鼻子位置)没有变化而双眼区域出现变化,则认为发生一次眨眼动作。
进一步,所述人脸检测模块采用mtcnn算法对当前帧图像进行人脸检测并获取人脸landmark的位置。
进一步,所述比对判断模块,如图3所示,包括:
差异图获取模块,用于对当前帧图像进行灰度化处理,得到当前帧灰度图像,并将其上一帧灰度图像进行减操作,获取当前帧灰度图像与上一帧灰度图像的差异图;
轮廓检测模块,用于对所述差异图进行二值化处理,并对差异图进行开操作,去除差异图中的噪点,然后检测差异图的轮廓;
眨眼判定模块,将差异图的轮廓与当前帧图像的人脸检测区域以及人脸landmark位置进行比对,若标定位置没有变化而双眼区域出现变化,则认为发生一次眨眼动作。
该方法只需要对图像进行灰度化,减运算,二值化,开运算等简单的操作,计算量小,延时低,占用资源少;而且该方法通过前后图像比对计算变化区域,对于光线环境不敏感,在各种环境中都能准确提取眨眼时发生的图像变化区域。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。