1.一种基于面部表情的驾驶员状态检测方法,其特征在于,包括以下步骤:
(1)、获取驾驶员的面部图像
利用在驾驶员前方安装的摄像头获取驾驶员的视频流,利用haar特征+adaboost人脸检测算法,检测视频流图像中用户的人脸区域即面部图像;
(2)、对获取的面部图像进行预处理
首先对面部图像进行图像灰度化处理
Gray=0.3R+0.59G+0.11B
其中,Gray为像素灰度值,R为红色像素值、G为绿色像素值、B为蓝色像素值;
然后进行Gamm校正:
I=Grayγ
其中,I为校正后像素灰度值;
最后,再对灰度化处理以及Gamma校正后的图像使用PCA方法进行处理:
确定面部图像为n行m列的矩阵X,先将矩阵X的每一行进行零均值化,然后求出矩阵X的协方差矩阵,再求出协方差矩阵的特征值及对应的特征向量;将特征向量按照对应特征值大小从小到大按行排成矩阵O,取矩阵O的前K行组成矩阵P,矩阵P为K行n列的矩阵,得到面部图像Y,Y=PX即为降维到K维后的面部图像;
(3)、驾驶员面部表情识别
3.1)、构建面部表情识别卷据神经网络
所述面部表情识别卷据神经网络包括依次连接的四层结构、平均池化层、dropout层以及softmax分类器;
每一层结构包括卷积核大小为3×3、步长为2的第一卷积层、卷积核大小为3×3、步长为1的第二、三卷积层、池化层以及inception结构;其中,前三层结构中的池化层的卷积核大小为3×3、步长为2,第四层结构的、池化层的卷积核大小为3×3、步长为1;
所述inception结构分为包括并行处理的四个特征图处理通道以及一个filter concatenation层,第一个特征图处理通道采用大小为3×3卷积核对输入特征图池化操作,然后采用大小为1×1卷积核进行卷积操作,最后送入filter concatenation层中;第二个特征图处理通道采用大小为1×1卷积核对输入特征图进行卷积操作,然后送入filter concatenation层中;第三个特征图处理通道采用大小为1×1卷积核对输入特征图进行卷积操作,得到的特征图分别再采用大小为3×1卷积核、1×3卷积核进行卷积操作,得到的特征图都送入filter concatenation层中;第四个特征图处理通道采用大小为1×1卷积核对输入特征图进行卷积操作,卷积操作得到的特征图再采用大小为3×3卷积核进行卷积操作,然后分别再采用大小为3×1卷积核、1×3卷积核对3×3卷积核卷积操作后的特征图进行卷积操作,得到的特征图都送入filter concatenation层中;filter concatenation层中将四个特征图处理通道得到的特征图进行连接,得到连接后的特征图;
第一层结构的第一卷积层输入降维后的K维面部图像,依次经过第一、二、三卷积层的卷积操作后送入池化层中进行池化操作,池化后的特征图像送入inception结构进行处理,得到连接后的特征图;第一层结构处理完得到的连接后的特征图送入第二层结构进行第一层结构的相同处理、第二层结构处理完的特征图送入第三层结构进行第一层结构的相同处理,第三层结构处理完的特征图送入第四层结构进行第一层结构的相同处理,第四层结构处理完得到的连接后的特征图送入平均池化层进行平均池化操作,平均池化后的特征图在dropout层进行一定比例的丢弃,然后送入softmax分类器器中分类得到面部表情;
3.2)、训练面部表情识别卷据神经网络
将标记面部表情的K维面部图像送入步骤3.1)构建的面部表情识别卷据神经网络对其进行训练,得到训练好的面部表情识别卷据神经网络;
其中,面部表情识别卷据神经网络训练过程中选取的激活函数为Relu函数,优化算法为SGD(Stochastic Gradient Descent,随机梯度下降),初始化方法为Xavier,学习速率为:base_lr(1-iter/max_iter)×0.5
其中,base_lr=0.01是最初学习速率,iter是当前迭代的次数,max_iter是最大迭代次数;
3.3)、获取的驾驶员面部图像经过步骤(1)、(2)处理后,送入训练好的面部表情识别卷据神经网络,得到驾驶员的面部表情;
(4)、输出结果
识别出驾驶员面部表情之后,得到驾驶员的驾驶状态,实时地显示在屏幕中,或者能够及时地对驾驶员进行提示,当驾驶员出现愤怒等不适合驾驶的面部表情时,给出不适合驾驶的状态提醒,及时对驾驶员进行有效的提示或者采用一系列的方法来缓解驾驶员当前的不适驾驶状态。