环境说明:
python 3.6.10
numpy 1.19.0
pandas 1.0.1
sklearn 0.22.1
cv2 3.3.1
scipy 1.4.1
tensorflow 2.2.0
dlib 19.6.1
imutils 0.5.3
pillow 7.2.0
xlrd 1.2.0
CUDA None
1.Local_weighted_mean_register.py
用于裁剪以及配准人脸,包含类LWMRegister(standard_face, predictor_path, width=192, height=192, offset=24)
standard_face: 作为标准人脸的图像,不用经过裁剪
predictor_path: dlib预训练人脸predictor所在地址
width, height: 目标图像的宽与高
offset: 为了避免映射超出图像边缘,在配准前给图像边缘留出的空余
使用方法:调用LWMRegister.run(face_seq, n = 6, amplify = 1.2, aligned=False)
face_seq: 需要裁剪与配准的人脸图像序列
n: 计算LWM时采用的相邻点个数
amplify: 在配准时对图像进行一定比例的放大,避免映射超出图像边缘
aligned: True表示face_seq已经经过裁剪、对齐,False表示没有经过
2.Eulerian_video_magnification.py
用于对视频(图像序列)进行动作放大,包含类EVM(fps=200, low=0.2, high=2.4, level=6, alpha=8, lam_c=16, iq_reduce=0.1)
fps: 视频的帧率
low, high: 动作放大的频率区间
level: 构建拉普拉斯金字塔的层数
alpha: 动作放大的倍数
lam_c: 参数,用于调节被放大的动作大小的上限deta
iq_reduce: 程序将图像转到YIQ颜色空间进行动作放大,iq_reduce表示对IQ通道的缩放倍数,缩小IQ可以减小噪声
使用方法: 调用EVM.run(img_seq)
img_seq: 被放大的图像序列
3.Temporal_interpolation_model.py
用于对图像序列进行时域插值,实现帧数的上采样或下采样,包含类TIM()
使用方法:调用TIM.run(image_seq, target_length)
image_seq: 需要被插值的图像序列
target_length: 目标帧数
4.Features_extraction.py
用于提取图像序列的特征,包括LBP-TOP、3DHOG、HOOF
使用方法:调用函数 get_ep_features(ep, uniform_dict = None, feature='LBP-TOP', t_times=4, y_times=4, x_times=4,
x_radius = 1, y_radius = 1, t_radius = 4, xy_neighbor=8, xt_neighbor=8, yt_neighbor=8,
xy_bins = 8, xt_bins = 12, yt_bins = 12,
bins=8)
ep: 提取特征的图像序列
uniform_dict: 用于减小LBP-TOP特征维度,只有LBP-TOP特征需要
feature: 可选'LBP-TOP', '3DHOG', 'HOOF'
t_times, y_times, x_times: 将图像序列在t, y, x三个维度分成多少子块提取特征,推荐LBP-TOP的t_times=1
x_radius, y_radius, t_radius, xy_neighbor, xy_neighbor, yt_neighbor: LBP-TOP参数
xy_bins, xt_bins, yt_bins: 3DHOG参数
bins: HOOF参数
5.Classification_and_evaluation.py
使用svm评估模型的分类效果,并输出最高的metric以及对应参数,使用方法:
调用函数get_best_average(data, labels, sub_list, kernel='linear', split='loso', average='macro')
data: 特征数据
labels: 数据标签
sub_list: 每条数据属于哪个subject, 在程序中直接设置为df.Subject
kernel: 选择svm的核函数,可选'linear', 'poly', 'rbf'
split: 分割数据方式,可选'loso', '10-fold'
average: 计算Average F1-score的权重选择,可选'macro', 'micro', 'weighted'
查看某一特定参数下的分类效果,调用avg_score(data, label, sub_list, kernel='rbf', C=2, gamma=10, degree=3, decision_function_shape='ovr',
n_splits=10, split='loso', seed=7, average='macro')
data, label, sub_list, kernel, split, average: 同上
C, gamma, degree: svm参数
decision_function_shape: 可选'ovo'与'ovr',推荐'ovr'
n_splits: k-fold验证的fold数
seed: k-fold划分的随机数种子
6.main.py
将上述文件与main.py放在同一目录下,直接运行main.py:
a. 从同目录下的CASME II文件夹中提取数据,文件夹的结构为CASME II/subject_name/ep_name/image
b. 程序所需文件在CASME II文件夹下,分别为CASME2.xlsx, shape_predictor_68_face_landmarks.dat, UniformLBP8.txt
c. 程序将CASME II中第一个表情的第一张图片作为标准面部图像,对所有图像序列进行裁剪与配准,得到192*192的图像序列
d. 将配准后的结果存入result/lwm_result.npy中
e. 随后程序对图像序列进行动作放大,其中放大频率区间为[0.2Hz, 2.4Hz], 放大因子为8
f. 随后对图像序列进行时序插值,目标帧数为10帧
g. 随后对图像序列提取LBP-TOP、3DHOG、HOOF特征,存放于result/features/LBP_feature.npy (或HOG_feature.npy, HOOF_feature.npy)
h. 随后分别对特征使用svm进行分类,输出最好的分类结果与对应的svm参数
注意,main.py中参数并非最优,在实际使用时注意调整参数(包括TIM目标帧数、动作放大因子、特征提取分块数等)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于SVM多特征融合的微表情识别python源码+项目说明.zip 将上述文件与main.py放在同一目录下,直接运行main.py: a. 从同目录下的CASME II文件夹中提取数据,文件夹的结构为CASME II/subject_name/ep_name/image b. 程序所需文件在CASME II文件夹下,分别为CASME2.xlsx, shape_predictor_68_face_landmarks.dat, UniformLBP8.txt c. 程序将CASME II中第一个表情的第一张图片作为标准面部图像,对所有图像序列进行裁剪与配准,得到192*192的图像序列 d. 将配准后的结果存入result/lwm_result.npy中 e. 随后程序对图像序列进行动作放大,其中放大频率区间为[0.2Hz, 2.4Hz], 放大因子为8 f. 随后对图像序列进行时序插值,目标帧数为10帧 g. 随后对图像序列提取LBP-TOP、3DHOG、HOOF特征,存放于result/features/LBP_feature.npy (或HOG_feature.npy, HOOF_
资源推荐
资源详情
资源评论
收起资源包目录
基于SVM多特征融合的微表情识别python源码+项目说明.zip (8个子文件)
基于SVM多特征融合的微表情识别python源码+项目说明
.gitattributes 66B
Temporal_interpolation_model.py 4KB
main.py 6KB
README.txt 5KB
Features_extraction.py 8KB
Classification_and_evaluation.py 5KB
Local_weighted_mean_register.py 17KB
Eulerian_video_magnification.py 5KB
共 8 条
- 1
资源评论
- weixin_632636092024-02-23感谢大佬分享的资源给了我灵感,果断支持!感谢分享~
- zhm06272023-12-16资源很实用,内容详细,值得借鉴的内容很多,感谢分享。
- 折心先生2023-12-18资源很受用,资源主总结的很全面,内容与描述一致,解决了我当下的问题。
猰貐的新时代
- 粉丝: 1w+
- 资源: 2559
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功