I. 项目基础
在微表情识别系统的研究中,对微表情的准确理解是至关重要的。本章将深入探讨微表情的定义、与常规表情的区别以及微表情的分类,为读者提供深入了解微表情的基础知识。
微表情是指人类在极短时间内、难以察觉的情感表达。这种表达往往仅持续数毫秒到数百毫秒,通常被认为是一种情感的真实显露,不受到个体的自我控制。微表情通常表现在面部的微小运动上,例如眼神的变化、嘴角的抽动等。
微表情与常规表情之间存在明显的区别。常规表情是指较长时间内,个体通过面部肌肉的协同运动来表达情感的一种方式,例如笑容、愤怒等。而微表情更为短暂,是一种在非常有限的时间内出现的情感体现,更难以被察觉和伪装。微表情往往更真实、更直接地反映了个体内在情感状态。
微表情可以根据其出现的情境和表达的情感进行分类。一种常见的分类方式包括:
感知微表情: 指个体在感知到某一刺激或情境时,面部表情发生的微小变化,如眼睛的微笑或眉毛的轻微挑动。 感知-运动微表情: 除了感知微表情的表达,还包括了一定的面部运动,如嘴角的抽动、眨眼等。 动作微表情: 指面部肌肉运动的微小变化,短暂而强烈,常常需要通过技术手段才能捕捉到,例如微小的嘴唇颤动或眼球的微小移动。
在微表情识别系统中,关键的技术步骤包括图像采集与处理、人脸检测、微表情特征提取,以及深度学习的应用。本章将深入介绍这些关键技术的步骤和挑战。
人脸检测是微表情识别的关键步骤之一。常用的算法包括Haar级联分类器、深度学习中的卷积神经网络(CNN)等。这些算法能够在图像中准确地定位和标识人脸的位置。
Haar级联检测器介绍:Haar是一种特征描述,随着时代的进步Haar也从Haar Basic的三种简单特征扩展到了Haar-Like以及到现在的Haar Extended。但是万变不离其宗,我们笼统得把他们分成三类:中心特征,线性特征, 边缘特征。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。Haar特征值反映了图像的灰度变化情况。
这里使用的是harr级联检测器检测人脸:
detectorPaths
字典包含了不同检测器的名称和对应的Haar级联检测器文件路径。cv2.CascadeClassifier()
函数加载Haar级联检测器,将加载的检测器存储在 detectors
字典中。
imutils.resize
函数将图像的宽度调整为500像素。detectors["face"].detectMultiScale
方法执行人脸检测,得到面部的边界框坐标 (faceRects
)。scaleFactor
:在每个图像尺度下缩小图像的比例,以便进行多尺度检测。minNeighbors
:指定每个候选矩形应该保留多少个相邻矩形,这可以减少噪声。minSize
:对象的最小尺寸。flags
:控制级联器的行为。detectors["eyes"].detectMultiScale
在面部ROI中应用左右眼级联检测器,得到眼睛的边界框坐标 (eyeRects
)。detectors["smile"].detectMultiScale
在面部ROI中应用嘴巴检测器,得到嘴巴的边界框坐标 (smileRects
)。
微表情的特征通常通过关键点检测来实现。关键点通常是人脸上一些具有代表性的点,如眼睛、嘴巴等。通过追踪这些关键点的运动变化,可以提取出微表情的特征。
卷积神经网络在微表情识别中被广泛应用。通过卷积层、池化层等结构,CNN能够自动学习图像特征,提高微表情的识别精度。
模型结构总览——该微表情识别模型采用卷积神经网络(CNN)的结构,包括三个卷积层和一个全连接层。
卷积层1 (
conv1
)——卷积层1接受灰度图像作为输入,通过3x3的卷积核进行特征提取,输出64个通道的特征图。批量归一化和随机修正线性单元(RReLU)有助于提高训练稳定性。最大值池化进一步减小特征图的空间尺寸,提取显著特征。 卷积层2 (conv2
)——卷积层2接受卷积层1的输出,进行类似的操作,将64通道的输入转化为128通道的输出。这一层继续强化特征,并通过最大值池化减小空间维度,使网络对位置的变化更加鲁棒。 卷积层3 (conv3
)——卷积层3进一步加深网络,将128通道的输入转化为256通道的输出。卷积操作提取高级特征,而最大值池化降低了空间维度。这一层有助于模型学习更加抽象和复杂的特征。 全连接层 (fc
)——全连接层包含三个子层,通过线性变换和激活函数处理扁平化后的特征。Dropout操作有助于防止过拟合。最终的全连接层输出包含7个神经元,对应7个不同的情感类别。这一层对特征进行整合,生成最终的表情分类结果。 参数初始化——卷积层的权重参数采用正态分布初始化,有助于更好地训练模型。
在构建微表情识别系统时,需要经过数据集的选择与准备、模型训练与优化,以及系统性能评估等关键步骤。本章将深入探讨这些步骤,为读者提供微表情识别系统建立的详细指南。
功能包括:
cv2.VideoCapture()
初始化摄像头,video_capture.release()
释放摄像头资源。cv2.imshow()
实时显示摄像头捕捉的图像帧,通过cv2.waitKey()
等待按键事件。start_program()
函数被按钮触发,初始化摄像头并进入一个无限循环,实时读取摄像头图像并显示在Tkinter窗口中。功能分别是中文显示识别结果以及用英文显示识别结果以及相应的置信度计算结果展示。
英文显示:
中文显示:
导入中文字体:
设置中文字体
font = cv2.FONT_HERSHEY_SIMPLEX
font_chinese = cv2.FONT_HERSHEY_SIMPLEX
font_path = ''
font_chinese = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText()
修改中文文字输出的位置和格式:
在矩形框上部,输出中文分类文字和置信度
text = f"{} ()"
cv2.putText()
将 cv2.putText 函数的 font 参数替换为 font_chinese,以确保使用中文字体。
置信度计算:
微表情识别技术的广泛应用不仅在学术研究中备受关注,还在多个领域展现了巨大的潜力。本章将深入探讨微表情识别系统在心理学研究、人机交互和安防领域的实际应用场景。
微表情在心理学研究中有着独特的价值。通过微表情的观察和分析,研究人员能够更深入地理解个体内在情感状态、情绪调控机制以及心理健康问题。微表情作为一种情感表达的生理指标,为心理学家提供了一个新的研究视角。
微表情识别技术在人机交互领域有着广泛的应用,改善了计算机与人类之间的交互体验。通过识别用户微表情,系统能够更好地理解用户的情感需求,从而实现更智能、更贴近人性化的交互。
随着技术的不断进步,微表情识别系统将迎来更多的挑战和机遇。本章将探讨微表情识别系统未来发展的技术挑战、趋势,以及可能的改进和创新方向。
1 Huai-Qian Khor, John See, Raphael C.W.Phan, Weiyao Lin.Enriched Long-term Recurrent Convolutional Network for Facial Micro-Expression Recognition.Published in Micro-Expression Grand Challenge 2018, Workshop of 13th IEEE Facial & Gesture 2018.
2 牛瑞华, 杨俊, 邢斓馨, 吴仁彪. 基于卷积注意力模块和双通道网络的微表情识别算法J. 计算机应用, 2021, 41(9): 2552-2559.
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。