MER-Factory:您的多模态情感数据集开源工厂
为多模态情感识别(MER)创建高质量数据集是情感计算领域的一个重要瓶颈。这通常是一个手动、耗时且昂贵的过程。如果能将其自动化呢?
今天,我们很高兴地推出 MER-Factory,这是一个新的开源 Python 框架,旨在成为您构建多模态情感识别和推理(MERR)数据集的自动化工厂。它系统地分析视频或图像文件,提取多模态特征,并利用大型语言模型(包括 Hugging Face Hub 上的模型)的力量生成详细的情感分析和推理。
该工具旨在通过提供一个开放、可扩展且具有科学依据的数据集创建框架,赋能情感计算社区。

MER-Factory 能做什么?
MER-Factory 的核心在于将从原始媒体到结构化、LLM 标注数据集的整个流程自动化。它接收视频,识别关键情感时刻,然后从各个角度分析场景。
- 🗣️ 音频分析: 转录语音并分析声调。
- 😐 面部分析: 使用 OpenFace 根据科学面部动作编码系统(FACS)提取面部动作单元(AUs)。
- 🎬 视觉分析: 描述场景或图像的视觉上下文。
最后,它将所有这些信息综合成一个连贯、有理有据的摘要,解释为什么会表达某种特定情绪。

该框架基于一套强大的技术构建,包括用于管理复杂、有状态工作流的 LangGraph
、用于媒体处理的 FFmpeg
,以及一个用于 AI 模型集成的可插拔架构。
Hugging Face 集成与模型灵活性 🤗
MER-Factory 的一个关键设计原则是模型的灵活性。您无需受限于单一的专有 API。该框架采用可插拔架构,无缝支持:
- Hugging Face Hub 模型: 使用最新的开源模型(如
google/gemma-3n-E4B-it
)进行推理。这非常适合自定义实现和利用前沿研究。 - Ollama(本地模型): 在本地运行流行的模型(如
Llama 3.2
和LLaVA
),以实现隐私保护、节省成本,并在许多任务上表现出色。 - 基于 API 的模型: 与 Google Gemini 和 OpenAI (GPT-4o 等) 集成,以应对需要最先进推理能力的任务。
这使您可以根据优先级(开源原则、隐私、成本或最先进的性能)选择最适合的工具。
3步快速入门
让我们使用 Hugging Face 模型,快速启动并运行 MER-Factory。
1. 安装
首先,确保您已安装先决条件 FFmpeg 和 OpenFace。然后,克隆存储库并设置您的环境。
# Clone the repository
git clone https://github.com/Lum1104/MER-Factory.git
cd MER-Factory
# Create a Python 3.12+ environment and install dependencies
conda create -n mer-factory python=3.12
conda activate mer-factory
pip install -r requirements.txt
2. 配置
复制示例环境文件,并添加 OpenFace FeatureExtraction
可执行文件的绝对路径。这对人脸分析至关重要。
# Copy the example environment file
cp .env.example .env
现在,编辑您的新 .env
文件
# Required for AU and MER pipelines
OPENFACE_EXECUTABLE=/absolute/path/to/OpenFace/build/bin/FeatureExtraction
# Optional: Add API keys if you plan to use them
# GOOGLE_API_KEY=your_google_api_key_here
# OPENAI_API_KEY=your_openai_api_key_here
3. 运行您的第一个管道
您已准备就绪!让我们使用 Hugging Face 模型分析一段视频。MER-Factory 将下载模型并在本地运行。
# Analyze a video with a Hugging Face model
python main.py path/to/your/video.mp4 output/ --type MER --huggingface-model google/gemma-3n-E4B-it
想通过 Ollama 使用本地模型吗?同样简单。
# First, pull the models you want to use
ollama pull llava-llama3:latest
ollama pull llama3.2
# Run the pipeline with Ollama
python main.py path/to/your/video.mp4 output/ --type MER \
--ollama-vision-model llava-llama3:latest \
--ollama-text-model llama3.2
运行后,您会在 output/
目录中找到一个详细的 _merr_data.json
文件,其中包含完整的多模态分析。
“最佳实践”缓存工作流 💰
最强大的功能之一是缓存系统。它保存每个处理步骤的输出,允许您使用每种模态的最佳模型构建数据集。
例如,您可以
- 使用强大的 API 模型(如 GPT-4o)运行视频分析,该模型擅长时序推理。
- 使用本地 Ollama 或 Hugging Face 模型运行 AU 和音频分析,以节省成本。
- 通过使用
--cache
标志重新运行MER
管道来运行最终综合。MER-Factory 将检测现有结果,并仅运行最终综合步骤,将您高质量的预计算分析合并到一个摘要中。
这种工作流提供了最大的灵活性和成本效益,使您能够创建“最佳实践”数据集,而无需受限于单一提供商。
这为什么对社区很重要
MER-Factory 不仅仅是一个工具;它更是对情感计算领域开放和可复现科学的贡献。
- 实现数据集创建的民主化: 降低了研究人员和小型团队创建大规模、高质量 MERR 数据集的门槛。
- 实现可复现性: 提供了一个开放源代码、可配置的管道,用于标准化数据集构建。
- MLLM 的试验平台: 提供了一个实用的框架,用于评估不同 MLLM(开源和专有)在细致情感推理任务上的表现。
我们相信,通过提供强大、开放的工具,我们可以共同加速对人类情感的理解和建模的进展。
加入我们!
我们邀请您在自己的研究或项目中尝试 MER-Factory。探索代码、生成数据集并加入讨论!
- ⭐ 在 GitHub 上为我们点赞:https://github.com/Lum1104/MER-Factory
- 📚 阅读文档:https://lum1104.github.io/MER-Factory/
- 🐛 报告问题:GitHub Issues
- 💬 参与讨论:GitHub Discussions
让我们共同构建情感计算的未来!