从视频中提取多模态特征的工具。
项目描述
MMSA-特征提取工具包
MMSA-Feature Extraction Toolkit 为多模态情感分析数据集提取多模态特征。它集成了几种常用的视觉、听觉和文本模态工具。提取的特征与MMSA框架兼容,因此可以直接使用。该工具还可以提取单个视频的特征。
这项工作包含在 ACL-2022 DEMO 论文中:M-SENA: An Integrated Platform for Multimodal Sentiment Analysis。如果您发现我们的工作有用,请不要犹豫引用我们的论文。谢谢!
特征
- 为单个视频或数据集提取完全定制的特征。
- 集成一些最常用的工具,包括 Librosa、OpenFace、Transformers 等。
- 支持主动说话人检测,以防视频中存在多个面孔。
- 易于使用,提供 Python API 和命令行工具。
- 提取的特征与MMSA兼容, MMSA是用于多模态情感分析的统一训练和测试框架。
1.安装
MMSA-Feature Extraction Toolkit 可从 PyPI 获得。由于 PyPi 的包大小限制,大型模型文件不能随包一起提供。用户需要运行安装后命令来手动下载这些文件。如果您无法访问 Google Drive,请参考此页面进行手动下载。
# Install package from PyPI
$ pip install MMSA-FET
# Download models & libraries from Google Drive. Use --proxy if needed.
$ python -m MSA_FET install
注意:要使 OpenFaceExtractor 在 Linux 平台上工作,需要一些系统范围的依赖项。有关详细信息,请参阅依赖项安装。
2. 快速入门
MMSA-FET 相当容易使用。您可以在 python 中调用 API 或使用命令行界面。下面是一个使用 python API 的基本示例。
注意:要提取数据集的特征,需要将数据集组织成特定的文件结构,并且
label.csv需要一个文件。有关详细信息,请参阅数据集和结构。MOSI、MOSEI和CH-SIMS的原始视频文件和标签文件可以从百度云盘下载。
from MSA_FET import FeatureExtractionTool
# initialize with default librosa config which only extracts audio features
fet = FeatureExtractionTool("librosa")
# alternatively initialize with a custom config file
fet = FeatureExtractionTool("custom_config.json")
# extract features for single video
feature = fet.run_single("input.mp4")
print(feature)
# extract for dataset & save features to file
feature = fet.run_dataset(dataset_dir="~/MOSI", out_file="output/feature.pkl")
是自定义配置文件的custom_config.json路径,下面介绍其格式。
详细使用请阅读APIs和Command Line Arguments。
3.配置文件
MMSA-FET 带有一些示例配置,可以像下面这样使用。
# Each supported tool has an example config
fet = FeatureExtractionTool(config="librosa")
fet = FeatureExtractionTool(config="opensmile")
fet = FeatureExtractionTool(config="wav2vec")
fet = FeatureExtractionTool(config="openface")
fet = FeatureExtractionTool(config="mediapipe")
fet = FeatureExtractionTool(config="bert")
fet = FeatureExtractionTool(config="roberta")
对于自定义功能,您可以:
- 编辑默认配置并将字典传递给配置参数,如下例所示:
from MSA_FET import FeatureExtractionTool, get_default_config
# here we only extract audio and video features
config_a = get_default_config('opensmile')
config_v = get_default_config('openface')
# modify default config
config_a['audio']['args']['feature_level'] = 'LowLevelDescriptors'
# combine audio and video configs
config = {**config_a, **config_v}
# initialize
fet = FeatureExtractionTool(config=config)
- 提供一个配置 json 文件。下面的示例提取所有三种模式的特征。要提取单峰特征,只需从文件中删除不必要的部分。
{
"audio": {
"tool": "librosa",
"sample_rate": null,
"args": {
"mfcc": {
"n_mfcc": 20,
"htk": true
},
"rms": {},
"zero_crossing_rate": {},
"spectral_rolloff": {},
"spectral_centroid": {}
}
},
"video": {
"tool": "openface",
"fps": 25,
"average_over": 3,
"args": {
"hogalign": false,
"simalign": false,
"nobadaligned": false,
"landmark_2D": true,
"landmark_3D": false,
"pdmparams": false,
"head_pose": true,
"action_units": true,
"gaze": true,
"tracked": false
}
},
"text": {
"model": "bert",
"device": "cpu",
"pretrained": "models/bert_base_uncased",
"args": {}
}
}
4. 支持的工具和功能
4.1 音频工具
-
Librosa (链接)
支持此处列出的所有 librosa 功能,包括:mfcc、rms、zero_crossing_rate、spectral_rolloff、spectral_centroid等。详细配置可以在这里找到。
-
openSMILE(链接)
支持此处列出的所有功能集,包括:ComParE_2016、GeMAPS、eGeMAPS、emobase 等。详细配置可在此处找到。
-
Wav2vec2 (链接)
从拥抱脸变压器集成。详细配置可以在这里找到。
4.2 视频工具
-
OpenFace (链接)
支持 OpenFace 的 FeatureExtraction 二进制文件中的所有特征,包括:2D 和 3D 中的面部标志、头部姿势、凝视相关、面部动作单元、HOG 二进制文件。可以在此处和此处的 OpenFace Wiki 中找到这些功能的详细信息。详细配置可以在这里找到。
-
媒体管道(链接)
-
TalkNet (链接)
如果视频中有多个人脸,TalkNet 用于支持主动说话者检测。
4.3 文字工具
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。