Skip to main content

从视频中提取多模态特征的工具。

项目描述

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路径,下面介绍其格式。

详细使用请阅读APIsCommand 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")

对于自定义功能,您可以:

  1. 编辑默认配置并将字典传递给配置参数,如下例所示:
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)
  1. 提供一个配置 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 音频工具

4.2 视频工具

  • OpenFace (链接)

    支持 OpenFace 的 FeatureExtraction 二进制文件中的所有特征,包括:2D 和 3D 中的面部标志、头部姿势、凝视相关、面部动作单元、HOG 二进制文件。可以在此处此处的 OpenFace Wiki 中找到这些功能的详细信息。详细配置可以在这里找到。

  • 媒体管道链接

    支持面部网格和整体(面部、手部、姿势)解决方案。详细配置可以在这里找到。

  • TalkNet (链接)

    如果视频中有多个人脸,TalkNet 用于支持主动说话者检测。

4.3 文字工具

  • BERT链接

    从拥抱脸变压器集成。详细配置可以在这里找到。

  • XLNet链接

    从拥抱脸变压器集成。详细配置可以在这里找到。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

MMSA-FET-0.3.1.tar.gz (52.7 kB 查看哈希

已上传 source

内置分布

MMSA_FET-0.3.1-py3-none-any.whl (64.6 kB 查看哈希

已上传 py3