一种集成卷积神经网络人脸情感识别方法与流程

文档序号:12123951阅读:455来源:国知局

本发明涉及图像处理、情感计算和模式识别技术,尤其涉及一种集成卷积神经网络人脸情感识别方法,该集成卷积神经网络人脸情感识别方法是一种情感识别贝叶斯融合Softmax的输出算法。



背景技术:

随着信息技术的不断发展,社会发展对情感计算提出了更高的要求,有广泛的应用价值。例如在人机交互方面,一个拥有情感能力的计算机能够对人类情感进行获取、分类、识别和响应,进而帮助使用者获得高效而又亲切的感觉,采用情感计算技术探测驾驶司机的精力是否集中,感受到的压力水平等,并做出相对反应。此外,情感计算还能应用在机器人、智能玩具、游戏、电子商务等相关产业中,以构筑更加拟人化的风格和更加逼真的场景。情感也反映了人类的心理健康情况,情感计算的应用可以有效地帮助人们避免不良情绪,保持乐观健康的心理。

目前深度学习在很多地方都能够很好地解决问题,本方法就是涉及到CNN卷积神经网络的集成识别人脸表情。虽然深度学习在很多地方能够很好地解决问题,但是在选择参数的时候特别耗费精力,往往要通过大量的试错得到的经验来选取参数,这个过程会耗费巨大的时间。

另外CNN深度学习在选取不同的模型参数,得到的结果是不一样。很多时候会有多种相对较好的模型。如果只选择最好的模型,那么也就放弃了其他一些相对还不错的模型,这也是一种浪费。

直接对模型预测结果进行投票的结果往往很不理想,因为每个模型的相似度无法把握。直接进行投票效果不佳。如果利用模型在验证集上面的结果进行投票,对于测试集的效果也可能会不佳,利用这种方式集成模型的预测结果往往不够稳定。

CNN在末层有一个Softmax分类器,其在预测的时候会对每个类别都有一个可能性。正常情况下我们是直接选取可能性最大的那个类别作为分类的最终结果。这里面每个类别的准确率是包含了很大的知识量的,直接选择最大的对于其他的类别的可能性也忽略了。很多时候得到的结果往往是每个类别的可能性都比较接近的,在这种情况,如果直接选择一个最大可能性的类别,出错的可能性就非常大了。如果能够充分利用这个每个类别可能性的信息,那么预测的结果也肯定会更加精确和稳定。



技术实现要素:

本发明的目的在于提高CNN分类器的分类准确率,同时也提高分类器在应用环境下的准确性,提供一种集成卷积神经网络人脸情感识别方法,该方法是一种适应于以Softmax作为分类器的CNN模型集成,想要通过多个CNN分类器集成,得到一个更加优秀的、准确率更加高的分类器。

本发明的目的可以通过以下技术方案实现:一种集成卷积神经网络人脸情感识别方法,包括以下步骤:

步骤1、利用每层参数递减,限定参数范围的方法随机生成大量的CNN卷积神经网络模型;

步骤2、对每一个随机生成的CNN卷积神经网络模型进行训练,得到一个分类器;

步骤3、计算每个分类器的在验证集上面的准确率;

步骤4、选择准确率最高的m个分类器;

步骤5、利用贝叶斯融合算法将m个分类器进行融合。

所述步骤1中包括以下步骤:

步骤11、随机生成一串长度为k的递减的卷积和下采样层,其中卷积核大小和步长,下采样层池的大小和步长都是随机的;

步骤12、将随机从生成的卷积层中抽取1到k区间随机数量的卷积和下采样层,组合Softmax层作为一个CNN模型;所述CNN模型的第一层是Linear卷积,所述CNN模型后面的层次都是Maxout卷积。

所述步骤5包括以下步骤:

步骤51、将每一个分类器的Softmax输出都进行归一化处理,除以本输出种最小都那个数值;

步骤52、将所有的输出经过步骤1处理后的结果对应相乘;

步骤53、选择对应位置最大的作为分类的表情。

本发明的集成卷积神经网络人脸情感识别方法,按照每层参数递减的规则随机生成CNN模型并对模型进行训练得到分类器,利用验证数据集对训练的模型进行预测得到一个准确率,利用这个准确率选择好的分类器,提取每个CNN分类器最后一层(Softmax层)对每一种表情的概率性预测作为整个分类器判定某一个人脸属于某一种表情的概率,利用贝叶斯融合将所有选取的分类器的对人脸表情的概率判断进行融合。

本发明的目的也可以通过以下技术方案实现:一种集成卷积神经网络人脸情感识别方法,包括以下步骤:

(1)随机产生CNN模型。首先随机生成CNN模型的层数,将卷机层与下采样层合在一起作为一层。这样新的层次包含了卷机和下采样。随机生成k层卷积下采样层,对每一层卷积核大小,步长,下采样空间大小按照一层一层递减的方式随机。比如第一层卷积核范围为[6,8],第二层设置卷积核范围为[4,6]。按照这种方式递减每个参数的随机生成范围。这样得到k层卷积下采样层供随机选择,然后从中随机选择1到k范围地层数。最后再加上最后一层Softmax,生成最后的模型层次。另外对于模型使用了dropout方法,也对每一层dropout的参数进行随机。这样得到一个一个的分类器模型。

(2)对得到的分类器模型进行训练,直到随机梯度下降算法在验证集上面检测的准确率连续一定时间不下降了再停止。这样分开得到n个训练好的分类器。生成的分类器n尽量多。

(3)在随机生成的n个分类器训练完成后利用验证集对每个分类器进行测试,得到每个模型的准确率。然后选取准确率最高的m个分类器。

其中m的选择是这样的:计算所有分类器中准确率最高的那个分类器的准确率,假设为β,计算准确率为[β-0.01,β]区间范围内的分类器的数量作为m的值。如果这样选取的m很小,则再考虑直接指定m的数值,0.01也是一个参考值。

(4)对步骤(3)得到的m个分类器进行集成。对测试样本,提取CNN模型最后一层(Softmax层)输出的结果(对于每个类别的可能性向量)为

A=(α01,....,α6) (1)

其中αi表示第i种情感对应的可能性,表示分类器认为该人脸是表情i的概率。A是最后一层输出结果。

(5)对每个分类器的Softmax输出A通过如下公式进行归一化:

A=(α0/min(A),α1/min(A),....,α6/min(A)) (2)

其中min(A)是原来向量A的最小值,αi表示第i种情感对应的可能性,A是最后一层输出结果。

(6)对上一步进行变化的A进行贝叶斯融合。提取m个分类器的Softmax层输出就得到[A0,A1,...,Am],这样得到每个分类器Softmax层的输出,最后通过如下公式得到最后的结果:

其中,αi表示第i种情感对应的可能性,对应用公式(1)中的数值,m指m个分类器,是m个αi的连乘,i是公式(3)中从0到6的7种表情。argmax是求数组中最大值对应的标号,这个标号与表情对应的标号相一致。这样(3)就得到了对应的表情。

本发明相对于现有技术具有如下的优点及效果:

本发明的得到的分类器会比单个分类器的最高的准确率有明显的提高,在最好的情况下能够提高4%以上,同时本方法在实际的预测应用能够并行执行,不会损耗预测的时间。

附图说明

图1是本发明的利用贝叶斯融合集成CNN深度学习分类器的人脸情感识别方法模型图;其中,每个模型的具体层数,每一层卷积,下采样的参数大小是不一样的,对于使用了的dropout,对应每一层的参数也是不一样的。每个模型输出的维数是一致的,都是7维,7种表情。在随机生成大量模型的基础上,本发明已经得到了大量的CNN模型。然后利用每个模型在验证数据集上面的准确率选取最好的m个分类器。最后利用贝叶斯融合,对每个CNN最后一层Softmax的输出结果(一个表示每个类别概率的向量)进行贝叶斯融合。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

实施例

下面将给出我们使用本方法对在kaggle2013年人脸表情识别比赛提供的数据集上进行实验的过程,kaggle2013年人脸表情识别数据集总共包含35887张标记了人脸表情的图片。其中训练集有28709张,公有测试集3589张,私有测试集3589张。每张图片是48*48像素大小的。

如图1所示,一种集成卷积神经网络人脸情感识别方法,包括以下步骤:

(1)随机生成CNN模型。将每一层卷积核大小,步长,下采样空间大小按照一层一层递减的方式随机得到5层卷积下采样。如第一层卷积核范围为[6,8],第二层设置卷积核范围为[5,6],第三层卷积核大小范围为[4,5],第四层为[2,4],第五层为[1,2],这里是限制每个核大小的边长,即指限制卷积核形状是一个正方形。同样限制下采样核的大小范围依次为([1,3],[1,2],[1,2],[1,1],[1,1])。按照这种方式递减每个参数的随机生成范围随机生成参数。再加上最后一层Softmax,生成最后的模型层次。如果遇到参数不合法的,这个模型就会训练失败,继续下一个模型,不影响整体。另外实验中也使用了dropout方法,对于input_include_probs参数限制范围为[0.4,1],input_scales参数范围为[1.0,2.0],然后随机生成每一层的参数。这样随机生成模型。

(2)利用fer2013训练机对模型进行训练,使用前25080条数据作为训练集,使用25080后的fer2013训练集作为验证集,使用随机梯度下降算法对模型进行训练,得到最终训练好的n个分类器模型。在实验中,我们训练了700个分类器,即n=700。

(3)选择分类器组合,对随机生成的n个分类器训练完成后利用验证集对每个分类器进行测试,得到每个模型的准确率。然后选取准确率最高的m个分类器。单个分类器最好的是64.6%,选取在验证集中准确率超过63.6%的分类器,数量为12,选择m=12。

(4)对第二步得到的m个分类器进行集成。提取CNN模型最后一层(Softmax层)输出的结果(对于每个类别的可能性数组),也就是公式(1)的结果。

(5)对每个分类器的Softmax输出A按照公式(2)进行转化得到一个新的A。

(6)将m个经过第5步计算的A放入公式(3)进行计算,进行融合。得到一个最终的预测结果。

(7)在预测的过程中,选中的m个分类器对一张人脸,可以并行计算获取每一个分类器Softmax层的输出。最后再统一进行融合,加快预测速度。这样整个预测的速度与单个分类器的预测速度基本是一致的。

本发明在kaggle2013年情感识别比赛提供的数据集上,对数据集没有经过任何预处理的情况下,公有测试集上面单个分类器的最佳的准确率是63.47%,私有测试集上面单个分类器的最佳的准确率是65.25%,使用本发明的方法在公有测试集上面的准确率是66.26%,私有测试机上面的准确率是68.54%。利用kaggle2013年情感识别比赛提供的训练数据集通过本方法训练模型,融合模型后,对整个ck+数据集进行测试,能够达到76.8%。本方法预测能够迅速,并且能够普遍提高正确率。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1