一种基于多源信息融合和标签传播的疲劳检测方法

文档序号:28080267发布日期:2021-12-18 01:19阅读:217来源:国知局
一种基于多源信息融合和标签传播的疲劳检测方法

1.本发明属于计算机图像处理和汽车安全领域,具体涉及一种疲劳检测方法。


背景技术:

2.得益于车载传感器的广泛应用,人们能够轻易地获取驾驶员的面部图像和车辆的行驶信息,结合深度学习等监督学习方法和社区发现等半监督学习方法,能够帮助我们建立更加准确和稳定的模型,从而高效地检测驾驶员的疲劳状态。
3.深度学习在解决过去难以解决的复杂问题方面取得了重大突破,但它需要大量的标注数据作为神经网络的输入来进行训练。然而,对于高精度的车载传感器所采集的大量未标记数据进行语义标注是一项费时费力的工作,这限制了监督学习在疲劳驾驶检测领域的应用。因此,有研究者将注意力转向社区发现等半监督学习的疲劳检测方法上,比如使用深度学习的方法实现社区发现算法。
4.目前,反映驾驶员疲劳状态的主要特征包括驾驶员的生理信号、驾驶行为和车辆运动信息。疲劳驾驶检测最有效的方法是对驾驶员的生理信号进行分析。然而,这种方法几乎不可避免地要使用侵入式的方法来获取驾驶员的生理信号,这导致许多用户不愿意接受。随着计算机视觉技术的广泛应用,驾驶员的面部表情可以通过视频中的眨眼和打哈欠来识别,驾驶行为可以通过头部姿势估计,用于检测疲劳驾驶。这些有价值的研究促进了疲劳驾驶检测技术的发展,但许多研究只关注于对驾驶视频进行特征提取,忽略了丰富的传感器数据,如传感器所采集的头部运动信息。这些头部运动信息可以真实反映头部状态的变化,并且弥补视频信息的单一性和局限性,通过融合这两种信息可以使疲劳检测模型更具有综合性。
5.标签传播作为社区发现中的一种半监督学习方式,只需要标注少量数据,就可利用大量的未标注数据,这大大降低了标注时间和成本,而且有利于保证检测的实时性,被广泛应用于社交网络领域,目前尚未有人将其引入疲劳状态检测的领域。


技术实现要素:

6.本发明的主要目的是针对现有的疲劳检测方法特征信息单一和计算开销过高的问题,提出一种融合多源信息的标签传播方法lpdd(label propagation based drowsiness detection),提取驾驶视频中的驾驶员面部特征和传感器获取的头部运动特征,来进行疲劳状态的检测。
7.本发明所使用的疲劳检测方法包括如下步骤:
8.步骤一、提取驾驶视频中的面部和头部特征并构建特征节点x
9.以原始视频作为特征提取的输入,对每一帧图像进行人脸68个特征点的定位,分别提取嘴部和眼部的特征,包括眼睛纵横比ear、嘴部纵横比mar、眼睑闭合度perclos;根据传感器获取的头部偏航角获取头部运动特征hpi;得到以上几种特征后,疲劳特征点x表示为以上几种特征的组合:
10.x=[ear,mar,perclos,hpi]
[0011]
步骤二、计算节点的亲和距离并构建特征图
[0012]
根据节点与节点之间的关系来判断是否在两个节点之间需要形成边,若两个节点的特征越类似,则它们之间存在边的可能性越大;这里采用基于高斯函数的亲和距离s
ij
来衡量节点x
i
和节点x
j
之间的距离:
[0013][0014]
其中,σ为超参数,它通过学习邻居节点间的平均距离而得到;若亲和距离s
ij
小于给定的阈值ε,则在节点i和节点j之间构建一条边,对所有的节点重复此过程,则构建一个疲劳特征图;
[0015]
步骤三、选取特征图中的节点进行标签初始化
[0016]
为了降低传播过程中的计算复杂度,在特征图中仅初始化部分节点的初始标签,剩余节点的标签由其他节点传播而来;对所有的特征点x,将其分为两个部分x
l
和x
u
,x
l
为初始化后带有标签的节点集合;x
u
为不带有标签的集合,该集合中的节点标签由标签传播而获得;这里采取最大信息熵的方式来确定需要初始化标签的集合x
l
;对于每个疲劳节点x
i
,它的疲劳等级为四级疲劳等级中的某一个等级,使用如下方法来计算信息熵:
[0017][0018]
其中,信息熵h(x
i
)表示节点x
i
所拥有的信息量大小,b是其中的一个超参数,p(y
j
)表示节点x
i
的疲劳等级为j的概率;最后,根据预先确定的l的大小,对所有节点的信息熵排序后,选取其中最大的l个节点作为初始标签集合x
l
,该集合由元组(x
i
,c
i
),表示节点x
i
的初始标签为c
i

[0019]
步骤四、对特征图中的节点进行标签传播
[0020]
1)在每个传播过程τ中,计算节点x
i
对于疲劳等级c的隶属度b
t
(c,x
i
),通过上一次传播过程的隶属度b
t
‑1(c,x
i
),得出本次传播过程的权值ω,该权值表示在本次迭代中,节点x
i
对于标签c的权重大小:
[0021][0022]
其中,n(x)表示节点x
i
的邻居节点集合;b
t
‑1(c,x
i
)表示上一次迭代中x
i
对于疲劳等级c的隶属度;θ是一个判别函数,它能判断标签c在此次传播过程中,是否在x
i
的标签集合中;i
ij
表示节点x
i
和节点x
j
之间的传播概率;
[0023]
2)对于本次迭代过程中所得到的标签集合l
i
,对于其中的每个标签c,获取其对应的隶属度b
t
(c,x
i
),从l
i
中删除隶属度小于阈值的标签;
[0024]
3)保存本次传播过程的标签集合l
i
和隶属度b
t
,转1),进行下一次传播过程,直到达到最大传播次数τ
max

[0025]
步骤五、确定每个节点最终的疲劳标签
[0026]
获取步骤四得到每个节点x
i
的标签集合l
i
,选取其中最大的隶属度所对应的标签c
作为x
i
的疲劳标签。
[0027]
作为优选,所述的ear的计算方式如下:
[0028][0029]
其中p1~p6分别表示眼部的六个特征点坐标,其中p1表示眼部的左角特征点坐标,p2、p3表示眼部上沿的从左到右的两个特征点坐标,p4表示眼部的右角特征点坐标,p6、p5表示眼部下沿的从左到右的两个特征点坐标;mar的计算方式如下:
[0030][0031]
其中a~h分别表示嘴部的八个特征点坐标,其中a表示嘴巴左角特征点坐标,b表示嘴巴右角特征点坐标,c、e、g表示嘴巴上沿的从左到右的三个特征点坐标,d、f、h表示嘴巴上沿的从左到右的三个特征点坐标;
[0032]
perclos的计算方式如下:
[0033][0034]
其中n
close
表示在固定的时间窗口内眼睛闭合的帧数;n
total
表示这段时间内总的视频帧数;
[0035]
hpi的计算方式如下:
[0036]
hpi=ω1yaw+ω2roll+ω3pitch
[0037]
其中,yaw、roll、pitch分别表示头部偏转的三个姿态所对应的角度,ω
i
表示不同头部方向的权值大小。
[0038]
作为优选,所述的删除隶属度小于阈值的标签,其中阈值设置为1/v,v为节点x
i
的邻居节点的数目。本发明的有益效果:
[0039]
本发明通过多源信息融合的方式,结合多种不同的驾驶特征,以增强检测的鲁棒性和检测效率,并且实现了更细粒度的四级疲劳等级判别。同时通过半监督学习的标签传播方法,可以用比较少的计算时间获取节点的疲劳状态。
附图说明
[0040]
图1为眼部特征定位点;
[0041]
图2为嘴部特征定位点;
[0042]
图3为mar特征的变化情况;
[0043]
图4为ear特征的变化情况;
[0044]
图5为不同迭代次数下模块度q的变化情况;
[0045]
图6为本方法(lpdd)与其他四种方法的实验对比结果。
具体实施方式
[0046]
本发明以驾驶视频作为输入,计算驾驶员的面部特征与头部运动特征,计算节点间的亲和距离,将特征节点映射为一个疲劳特征图。初始化其中的部分节点的标签值,使用
半监督学习的方式,通过自动标签传播获取每个节点的标签集合。对于每个节点,选择其中具有最大隶属度的标签作为该节点的疲劳等级。
[0047]
以下举例说明本发明整个过程的具体实施方式如下:
[0048]
步骤一、提取驾驶视频中的面部和头部特征并构建特征节点x
[0049]
以原始视频作为特征提取的输入,对每一帧图像进行人脸68个特征点的定位,特征点如图1,图2所示。分别提取嘴部和眼部的特征,主要特征为眼睛纵横比(ear)、嘴部纵横比(mar)、眼睑闭合度(perclos)。根据传感器获取的头部偏航角获取头部运动特征(hpi)。mar特征变化如图3所示,ear特征变化如图4所示。
[0050]
得到以上几种特征后,疲劳特征点x可表示为以上几种特征的组合:
[0051]
x=[ear,mar,perclos,hpi]
[0052]
步骤二、计算节点的亲和距离并构建特征图
[0053]
根据节点与节点之间的关系来判断是否在两个节点之间需要形成边,若两个节点的特征越类似,则它们之间存在边的可能性越大。这里采用基于高斯函数的亲和距离s
ij
来衡量节点x
i
和节点x
j
之间的距离:
[0054][0055]
其中,σ为超参数,它通过学习邻居节点间的平均距离而得到。若亲和距离s
ij
小于给定的阈值ε,则在节点i和节点j之间可以构建一条边,对所有的节点重复此过程,则可以构建一个疲劳特征图。
[0056]
步骤三、选取特征图中的节点进行标签初始化
[0057]
为了降低传播过程中的计算复杂度,在特征图中仅初始化部分节点的初始标签,剩余节点的标签由其他节点传播而来。对所有的特征点x,将其分为两个部分x
l
和x
u
,l和u的比例为3:7,x
l
为初始化后带有标签的节点集合;x
u
为不带有标签的集合,该集合中的节点标签由标签传播而获得。这里采取最大信息熵的方式来确定需要初始化标签的集合x
l
。对于每个疲劳节点x
i
,它的疲劳等级可能为四级疲劳等级中的某一个等级,本发明使用如下方法来计算信息熵:
[0058][0059]
其中,信息熵h(x
i
)表示节点x
i
所拥有的信息量大小,b是其中的一个超参数,p(y
j
)表示节点x
i
的疲劳等级为j的概率。最后,根据预先确定的l的大小,对所有节点的信息熵排序后,选取其中最大的l个节点作为初始标签集合x
l
,该集合由元组(x
i
,c
i
),表示节点x
i
的初始标签为c
i

[0060]
步骤四、对特征图中的节点进行标签传播
[0061]
1)在每个传播过程τ中,需要计算节点x
i
对于疲劳等级c的隶属度b
t
(c,x
i
),通过上一次传播过程的隶属度b
t
‑1(c,x
i
),得出本次传播过程的权值ω,该权值表示在本次迭代中,节点x
i
对于标签c的权重大小:
[0062][0063]
其中,n(x)表示节点x
i
的邻居节点集合;b
t
‑1(c,x
i
)表示上一次迭代中x
i
对于疲劳等级c的隶属度;θ是一个判别函数,它能判断标签c在此次传播过程中,是否在x
i
的标签集合中;i
ij
表示节点x
i
和节点x
j
之间的传播概率。
[0064]
2)对于本次迭代过程中所得到的标签集合l
i
,对于其中的每个标签c,获取其对应的隶属度b
t
(c,x
i
),从l
i
中删除隶属度小于阈值的标签,其中阈值设置为1/v,v为节点x
i
的邻居节点的数目。
[0065][0066]
3)保存本次传播过程的标签集合l
i
和隶属度b
t
,τ+=1,转1),进行下一次传播过程,直到达到最大传播次数τ
max
(进行1000次传播过程)。
[0067]
步骤五、确定每个节点最终的疲劳标签
[0068]
在二分类实验和四级细粒度分类实验中,分别获取步骤四得到每个节点x
i
的标签集合l
i
,选取其中最大的隶属度所对应的标签c作为x
i
的疲劳标签。
[0069]
实验结果:分别进行二分类实验和四级细粒度分类实验,在二分类实验中,达到了93.31%的最优准确率以及93.28%的f1分数,优于使用朴素贝叶斯、随机森林、决策树和支持向量机的分类结果,如图6所示。在四分类实验中,最优的分类准确率为92.31%,经过800次迭代后,模块度q收敛在0.677,如图5所示。而深度学习方法需要进行12000次迭代,说明本方法在降低计算量的情况下能够有一个较好的分类结果。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1