[发明专利]基于生成对抗和长短期记忆网络的驾驶员疲劳检测方法有效
申请号: | 201910824620.X | 申请日: | 2019-09-02 |
公开(公告)号: | CN110717389B | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 路小波;胡耀聪;陆明琦 | 申请(专利权)人: | 东南大学 |
主分类号: | G06V20/59 | 分类号: | G06V20/59;G06V10/764;G06V10/82;G06K9/62;G06N3/04;G06N3/08 |
代理公司: | 南京众联专利代理有限公司 32206 | 代理人: | 叶倩 |
地址: | 210096 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 生成 对抗 短期 记忆 网络 驾驶员 疲劳 检测 方法 | ||
1.基于生成对抗和长短期记忆网络的疲劳检测方法,其特征在于,包括下列步骤:
步骤1:获取驾驶员疲劳检测数据集:使用公开的NTHU-DDD疲劳检测数据集,该数据集包含360个训练视频和20个测试视频所有的视频都由一个红外摄像头在室内模拟驾驶环境中录制,参与者在不同的环境下录制正常驾驶和疲劳驾驶这两种驾驶方式,场景环境包括:白天不佩戴眼镜、白天佩戴眼镜、白天佩戴墨镜、夜晚不佩戴眼镜、以及夜晚佩戴眼镜,录制的视频分辨率为640×480,帧率为30fps;数据集中的每个视频都有四个标注文件,记录视频中每帧图像的疲劳状态,包含眼部状态:正常、闭眼,嘴部状态:正常、打哈欠、交谈,头部状态:正常,不目视前方,头部下垂;将该数据集的360个训练视频全部用于训练3D条件生成对抗网络和双向长短期记忆网络,其余的20个视频用于模型测试;
步骤2:设计人脸检测跟踪算法:使用检测和跟踪结合的方法获取视频中每帧的人脸区域,在视频的初始帧,使用MTCNN开源算法检测人脸,在后续帧,使用核相关滤波算法跟踪人脸区域;
步骤3:训练3D条件生成对抗网络,该网络模型由一个3D编解码生成网络和一个3D判别网络组成,具体步骤如下:
步骤301:3D编解码生成网络以U-NET网络作为骨架网络,其输入为连续相邻T帧的三通道人脸序列,尺寸为3×T×64×64,通过3D编解码,其输出为合成的人脸序列,尺寸与输入的真实人脸序列相同,在编码子网络中,3×3×3大小的卷积核被应用于多个3D卷积层,学习全局时空特征表示,全局平均池化层将3D卷积特征图映射为512维特征向量,编码子网络的运算过程具体可表示为:
X=Gen(Ireal|θen), (1)
其中Ireal表示输入的真实人脸序列,θen表示编码子网络的参数,X表示输出的合成人脸序列;
步骤302:将标签信息作为条件嵌入到编码子网络输出的特征向量中; 具体地,噪声编码n,类别标签编码l与编码网络的输出X级联作为解码子网络的输入,其中噪声编码n由100维的随机噪声向量组成,标签编码l由疲劳相关的类别信息级联组成,具体包括疲劳状态标签ldrow,光照条件标签lill,眼镜佩戴标签lgla,眼睛状态标签leye,嘴部状态标签lmou,头部状态标签lhead;
步骤303:解码生成子网路由多个3D反卷积网络组成,反卷积核大小为3×3×3,解码生成子网络对编码标签进行上采样,并最终生成合成人脸序列并输入到3D判别网络中,在3D生成网络中,编码子网络和解码子网络采用残差连接的方式,使得合成的人脸剪辑可以保持细节的时空信息,解码子网络的运算过程具体可表示为:
Ifake=Gde(X,n,l|θgen), (2)
其中Ifake表示解码子网络合成的人脸剪辑,θgen={θen,θdec}表示3D条件生成网络的参数,包含编码网络参数θen和解码网络参数θde,
整个3D编解码生成网络可以看成一个从输入真实人脸序列到输出合成人脸序列的映射,可用以下公式表示:
Ifake=G(Ireal,n,l|θgen) (3)
步骤304:3D判别网络同时输入真实人脸序列Ireal和合成人脸序列Ifake:3D判别网络的运算过程具体可表示为:
其中I={Ireal,Ifake}为3D判别网络的输入,包含真实人脸序列Ireal和合成人脸序列Ifake; θdis为3D判别网络的参数,为512维的时空特征表示,softmax(·|)表示softmax分类运算,θcls表示softmax分类器的相关参数,score表示分类得分,包含人脸序列的真伪判定得分和疲劳相关状态的分类结果;
步骤305:3D生成网络学习短期时空信息并生成合成的人脸序列对于给定的输入人脸序列以及其对应的状态标签l={ldrow,lill,lgla,leye,lmou,lhead},3D生成网络包含以下的训练任务:
(1)3D生成网络生成合成人脸序列Ireal,以使得3D判别网络无法判断其真实性,具体可表示为:
其中G(·)表示生成网络合成的人脸序列,Drealness(·)表示真实性得分,表示生成网络的对抗损失;
(2)3D生成网络采用回归损失逼近输入Ireal和输出Ifake之间的距离,类似于自编码神经网络,该损失可表示为:
其中||·||表示真实人脸序列和合成人脸序列的二范数距离;
(3)对于3D生成网络合成的人脸序列Ireal,3D判别网络可以准确的分类短期疲劳状态信息,交叉损失熵函数优化softmax分类器,具体可表示为:
其中表示第j'个疲劳相关状态的分类得分,αj'表示不同属性的疲劳状态的权重参数;
3D生成网络的训练损失为不同学习任务的损失加权组合,最终的损失函数可表示为:
其中表示3D生成网络中不同损失的权重参数;
步骤306:3D判别网络可以被看做一个多任务的3D卷积神经网络,主要包含以下两个任务:
(1)3D判别网络可以正确的区分真实人脸序列Ireal和合成人脸序列Ifake,该损失可具体表示为:
其中3D判别网络的对抗损失由真实人脸序列的分类损失和合成人脸序列的分类损失两本分组成;
(2)3D判别网络可以正确分类真实人脸序列样本Ireal的短期疲劳状态信息,交叉损失熵函数优化softmax分类器,具体可表示为:
其中表示第j'个疲劳相关状态的分类得分,αj'表示不同属性的疲劳状态的权重参数;
3D判别网络的训练损失为不同学习任务的损失加权组合,最终的损失函数可表示为:
其中表示3D判别网络中不同损失的权重参数;
步骤307:训练3D条件生成对抗网络,使用Pytorch开源工具搭建网络模型,整个网络模型的训练过程在Intel Core I7服务器上运行,使用NVIDIA TITAN X GPU,Ubuntu 18.04操作系统,使用Adam算法优化网络参数,在初始的K个训练轮次,3D生成对抗网络只用来生成人脸序列和辨别序列的真实性,即和被设置为0,随后调整权重参数以提取时空特征并分类短期疲劳状态信息;
步骤4:训练双向长短期记忆网络,用于获取长期时空关联信息,以实现最终的疲劳分类,具体步骤如下:
步骤401:LSTM单元包括一个记忆胞元和三个控制门,三个控制门输入门,遗忘门和输出门,输入门i(t)可以调制LSTM单元的输入z(t),记忆单元c(t)记录了当前的记忆状态,LSTM单元的输出h(t)由遗忘门f(t)和输出门o(t)共同决定,对于视频中的连续N帧,通过步骤2和步骤3可以得到短期时空特征表示而双向长短期记忆网络以步骤3中提取的连续的短期时空特征作为输入,并输出每帧图像的疲劳得分,单向LSTM运算过程可表示为:
z(t)=tanh(WzX(t)+Rzh(t-1)+bz) (16)
其中W表示当前状态输入的权重矩阵,R表示上一个状态输出的权重矩阵,b表示阈值项; σ为sigmoid函数,tanh为双正切函数,表示元素内积,LSTM单元的输出取决于当前状态和前一个状态,即实现了序列间的时空融合;
步骤402:双向长短期记忆网络包含正向LSTM单元和反向LSTM单元,正向LSTM和反向LSTM单元的输出分别为和而最终的疲劳得分即正向LSTM和反向LSTM的融合得分,具体可表示为:
其中表示矩阵元素按位加操作,Y(t)表示最终输出的疲劳得分;
步骤403:训练双向长短期记忆网络,使用Pytorch开源工具搭建网络模型,整个网络模型的训练过程在Intel Core I7服务器上运行,使用NVIDIA TITAN X GPU,Ubuntu 18.04操作系统,双向长短期记忆网络网络的输入为步骤3输出的短期时空特征,输出为最终的疲劳得分;
步骤5:对基于生成对抗和长短期记忆网络的疲劳检测方法进行测试,给定一个测试视频,通过步骤2获取人脸序列,利用步骤3训练好的3D条件生成对抗网络模型获得短期时空特征表示,利用步骤3训练好的双向长短期记忆网络进行长期时空特征融合,并最终输出视频中每帧的疲劳识别结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910824620.X/1.html,转载请声明来源钻瓜专利网。