发明内容
本发明旨在至少在一定程度上解决上述技术问题之一或至少提供一种有用的商业选择。为此,本发明的目的在于提出一种基于肤色范围的驾驶员手持电话行为检测方法,包括以下步骤:
(1)采集汽车驾驶员正常驾驶时的面部彩色图像,设定人脸区域堆栈,首先通过转换公式,将彩色图像转变成灰度图像,利用人脸检测算法对采集到的每帧图像进行人脸检测,若检测到人脸,则根据检测到的人脸定位出矩形人脸区域,将图像中矩形人脸区域的中心点、宽度以及高度存入人脸区域堆栈,并求出各个参数的平均值,用所述平均值更新人脸区域堆栈,若检测不到人脸,则根据人脸区域堆栈进行判断,若人脸区域堆栈为空,则继续检测人脸,若人脸区域堆栈不为空,则以人脸区域堆栈中的矩形人脸区域平均值作为矩形人脸区域;
(2)若步骤(1)检测到矩形人脸区域,则设定肤色范围堆栈,将此矩形人脸区域图像转换至YCrCb颜色空间,并分解为3个通道,即Y、Cr和Cb通道,对Cr和Cb通道图像中的每个像素的亮度进行直方图统计,并分别求出直方图亮度的均值及方差,通过肤色范围堆栈以及Cb和Cr的差值对每帧图像进行肤色建模,肤色范围堆栈定义为
其中u
i为亮度均值,i值取1或者2分别代表Cr或者Cb通道,ω
ij为权值,j值取1或者2分别代表权值的上下限,δ
i为方差,即:
用此Cr和Cb肤色范围堆栈以及Cb和Cr的差值参数更新肤色范围堆栈,若在步骤(1)中检测不到人脸,则用肤色范围堆栈中的参数估计Cr和Cb的范围;
(3)以步骤(1)中的矩形人脸区域的左上角为原点,根据矩形人脸区域的长和宽的比例移动原点,定位出矩形左侧耳部区域的左上顶点,并根据矩形人脸区域的长和宽定位出矩形左侧耳部区域的大小,根据矩形左侧耳部区域的左上顶点和大小,定位出矩形左侧耳部区域,将矩形左侧耳部区域按矩形人脸区域纵轴镜像,定位出矩形右侧耳部区域,对定位出的矩形耳部区域进行图像归一化处理,得到大小一致的矩形左侧耳部区域图像和矩形右侧耳部区域图像;
(4)根据步骤(2)中的Cr和Cb肤色范围堆栈以及Cr和Cb的差值对肤色范围堆栈进行动态建模,通过动态肤色范围,对步骤(3)中的矩形左、右侧耳部区域中的像素进行第一次肤色分割,并转变成第一二值化图像,动态肤色范围定为:
[Cb-Cr]≥15,
若所述像素满足所述动态肤色范围,则将所述像素判别为肤色,并将所述像素的亮度设为255,否则为0,在第一二值化图像中,白色代表肤色,黑色代表非肤色,对所述第一二值化图像通过开运算消除噪声,通过闭运算填补漏洞;
(5)对步骤(4)第一次肤色分割的矩形左、右耳部区域的第一二值化图像,扫描每个像素,若像素值为255,设置所述像素为中心点的5*5区域,通过静态肤色范围,对矩形左、右耳部区域中的每个像素进行第二次肤色分割,静态肤色范围为Cr=[77,127]、Cb=[133,173],若在所述5*5区域内的像素的Cr和Cb的值在静态肤色范围内,则所述像素判别为肤色,并将所述像素的亮度设为255,对完成第二次肤色分割的第二二值化图像,通过开运算消除噪声,通过闭运算填补漏洞;
(6)根据步骤(5)第二次肤色分割处理完成的第二二值化图像,判别汽车驾驶员驾驶时是否使用手持电话,若预设时间t1内,矩形左侧耳部区域的亮度等于255的像素的数量均大于第一预设阈值,则判断汽车驾驶员为左手手持电话状态,若预设时间t1内,矩形右侧耳部区域的亮度等于255的像素的数量均大于第二预设阈值,则判断汽车驾驶员为右手手持电话状态,根据判断结果发出预警信号。
优选的,所述预设时间t1优选值为连续采集4帧图像的时间。
优选的,所述第一预设阈值优选值为5000,所述第二预设阈值优选值为4500。
根据本发明的基于肤色范围的驾驶员手持电话行为检测方法,能够对驾驶人左手和右手拨打接听电话的行为进行检测和预警,有效减少因行车中拨打接听电话而造成的交通事故,从而提高驾驶的安全性。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。
本发明提出一种基于肤色范围的驾驶员手持电话行为检测方法,其流程图如图1所示,包括以下步骤:
(1)采集汽车驾驶员正常驾驶时的面部彩色图像,设定人脸区域堆栈,首先通过转换公式,将彩色图像转变成灰度图像,利用人脸检测算法对采集到的每帧图像进行人脸检测,若检测到人脸,则根据检测到的人脸定位出矩形人脸区域,将图像中矩形人脸区域的中心点、宽度以及高度存入人脸区域堆栈,并求出各个参数的平均值,用平均值更新人脸区域堆栈,若检测不到人脸,则根据人脸区域堆栈进行判断,若人脸区域堆栈为空,则继续检测人脸,若人脸区域堆栈不为空,则以人脸区域堆栈中的矩形人脸区域平均值作为矩形人脸区域。
本发明实施例选用Adaboost(Adaptive Boosting)人脸检测算法进行驾驶员面部区域的检测。AdaBoost算法由Freund与Schapire于1996年提出,其特点是通过级联一系列弱分类器形成强分类器,从而避免了直接设计强分类器。
在模式识别领域,强分类器,是指分类正确率较高的分类器。弱分类器是指分类正确率略高于50%,即略高于随机判别的分类器。通常,强分类器很难设计,但设计弱分类器则相对容易。理论证明,在样本量足够大的条件下,多个弱分类器可以构成强分类器。研究人员设计了一系列通过组合弱分类器来构建强分类器的方法,AdaBoost是其中性能较高的设计方法之一。
Adaboost算法通过级联的结构,可以很快拒绝掉大部分错误样本,在检测精度与运行效率上均具有一定优势,已成为机器视觉与模式识别领域最实用的算法之一。Adaboost级联结构如图2所示。Adaboost人脸检测算法检测结果如图3所示。
(2)若步骤(1)检测到矩形人脸区域,则设定肤色范围堆栈,将此矩形人脸区域图像转换至YCrCb颜色空间,并分解为3个通道,即Y、Cr和Cb通道,对Cr和Cb通道图像中的每个像素的亮度进行直方图统计,并分别求出直方图亮度的均值及方差,通过肤色范围堆栈以及Cb和Cr的差值对每帧图像进行肤色建模,肤色范围堆栈定义为
其中u
i为亮度均值,i值取1或者2分别代表Cr或者Cb通道,ω
ij为权值,j值取1或者2分别代表权值的上下限,δ
i为方差,即:
用此Cr和Cb肤色范围堆栈以及Cb和Cr的差值参数更新肤色范围堆栈,若在步骤(1)中检测不到人脸,则用肤色范围堆栈中的参数估计Cr和Cb的范围。
由人类视觉系统的特性可知,人类主要通过亮度、色调、饱和度等颜色属性区分颜色。色调决定于光的波长,亮度和饱和度决定于光的强度。人脸部的肤色是稳定的,在入射光色温相同的情况下,人脸反射光中的主波长不变,即色调保持不变,脸部图像高亮区对应的亮度较高,饱和度较低,脸部图像阴影区对应的亮度较低,饱和度较低。因此,为了有效区分肤色,需要利用颜色属性中的色调信息,尽量排除亮度与饱和度的影响。
彩色摄像机采集到的原始图像的颜色空间一般为RGB颜色空间,三个颜色分量均包含亮度信息,直接用于肤色特征提取时,对亮度变化的鲁棒性不高。而在RGB颜色空间的转换空间YCrCb空间中,Cb和Cr分量分别代表蓝色分量和红色分量与亮度的差值,有效利用Cb、Cr分量进行肤色特征描述,可有效滤除亮度的影响。肤色在YCrCb颜色空间中具有良好的聚类性,Cb-Cr坐标系中肤色的分布如图4所示。
图5和图6为在YCrCb空间中的肤色区域提取结果,其中图5为原始图像,图6为肤色图像。从图中可以看出,利用YCrCb颜色空间可以比较准确地提取驾驶人的肤色信息。
(3)以步骤(1)中的矩形人脸区域的左上角为原点,根据矩形人脸区域的长和宽的比例移动原点,定位出矩形左侧耳部区域的左上顶点,并根据矩形人脸区域的长和宽定位出矩形左侧耳部区域的大小,根据矩形左侧耳部区域的左上顶点和大小,定位出矩形左侧耳部区域,将矩形左侧耳部区域按矩形人脸区域纵轴镜像,定位出矩形右侧耳部区域,对定位出的矩形耳部区域进行图像归一化处理,得到大小一致的矩形左侧耳部区域图像和矩形右侧耳部区域图像。
由于驾驶员左右手均有可能使用手持电话,因此需要同时定位左右两侧的耳部区域。本文算法根据Adaboost人脸检测算法定位出的人脸区域的大小,按比例确定耳部区域,如图4所示。
人脸检测定位后,可以确定图7中的(HF,VF)坐标,以及脸部区域宽度FW与高度Fh。左、右侧耳部区域定位的计算公式为:
式中,(HR,VR)为右侧耳部区域基点坐标,Rh为右侧耳部区域高度,Rw为右侧耳部区域宽度,(HL,VL)为左侧耳部区域基点坐标,Lh为左侧耳部区域高度,Lw为左侧耳部区域宽度。
(4)根据步骤(2)中的Cr和Cb肤色范围堆栈以及Cr和Cb的差值对肤色范围堆栈进行动态建模,通过动态肤色范围,对步骤(3)中的矩形左、右侧耳部区域中的像素进行第一次肤色分割,并转变成第一二值化图像,动态肤色范围定为:
[Cb-Cr]≥15,
若像素满足动态肤色范围,则将像素判别为肤色,并将像素的亮度设为255,否则为0,在第一二值化图像中,白色代表肤色,黑色代表非肤色,对第一二值化图像通过开运算消除噪声,通过闭运算填补漏洞。
(5)对步骤(4)第一次肤色分割的矩形左、右耳部区域的第一二值化图像,扫描每个像素,若像素值为255,设置像素为中心点的5*5区域,通过静态肤色范围,对矩形左、右耳部区域中的每个像素进行第二次肤色分割,静态肤色范围为Cr=[77,127]、Cb=[133,173],若在5*5区域内的像素的Cr和Cb的值在静态肤色范围内,则像素判别为肤色,并将像素的亮度设为255,对完成第二次肤色分割的第二二值化图像,通过开运算消除噪声,通过闭运算填补漏洞。
(6)根据步骤(5)第二次肤色分割处理完成的第二二值化图像,判别汽车驾驶员驾驶时是否使用手持电话,若预设时间t1内,矩形左侧耳部区域的亮度等于255的像素的数量均大于第一预设阈值,则判断汽车驾驶员为左手手持电话状态,若预设时间t1内,矩形右侧耳部区域的亮度等于255的像素的数量均大于第二预设阈值,则判断汽车驾驶员为右手手持电话状态,根据判断结果发出预警信号。
需要说明的是,预设时间t1优选值为连续采集4帧图像的时间,第一预设阈值优选值为5000,第二预设阈值优选值为4500。
本发明实施例的基于肤色范围的驾驶员手持电话行为检测方法实时性好,识别精度高,能够对驾驶人左手和右手拨打接听电话的行为进行检测和预警,有效减少因行车中拨打接听电话而造成的交通事故,从而提高驾驶的安全性。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。