综合介绍
R1-Omni 是 HumanMLLM 团队在 GitHub 上推出的开源项目。它首次将强化学习与可验证奖励(RLVR)技术应用于多模态大语言模型,专注于情感识别。项目通过分析视频和音频数据,识别人物的情绪,如愤怒、快乐或惊讶等。它以 HumanOmni-0.5B 为基础模型开发,提供免费的代码和模型下载,适合研究人员和开发者使用。R1-Omni 在 DFEW、MAFW 等数据集上表现优异,尤其在复杂场景中能更准确地理解情绪。目前项目仍在持续更新,计划开放更多训练数据和功能。
功能列表
- 情感识别:分析视频和音频,判断人物的情绪状态,如愤怒、快乐、惊讶等。
- 多模态处理:结合视觉和听觉数据,提高情感识别的精确度。
- 强化学习优化:通过 RLVR 技术提升模型的推理和适应能力。
- 模型下载:提供 HumanOmni-0.5B、EMER-SFT、MAFW-DFEW-SFT 和 R1-Omni 四种模型。
- 开源支持:开放源代码和部分数据集,支持用户二次开发。
- 性能展示:提供在多个数据集上的测试结果,方便用户评估效果。
使用帮助
安装与环境搭建
R1-Omni 的使用需要一定的技术基础。以下是详细的安装步骤:
1. 系统要求
- 操作系统:支持 Linux、Windows 或 macOS。
- Python 版本:建议使用 Python 3.8 或以上。
- 硬件支持:推荐使用 NVIDIA GPU(如需加速),CPU 也可运行。
- 工具准备:需要安装 Git 来下载代码。
2. 获取代码
在终端输入以下命令,下载 R1-Omni 的代码:
git clone https://github.com/HumanMLLM/R1-Omni.git
cd R1-Omni
3. 配置环境
R1-Omni 基于 R1-V 框架开发,环境搭建参考 R1-V 仓库 的说明。具体步骤如下:
- 创建虚拟环境:
python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
- 安装依赖包:官方推荐以下版本,输入命令安装:
pip install torch==2.5.1+cu124 torchvision==0.20.1+cu124 torchaudio==2.5.1+cu124 -f https://download.pytorch.org/whl/torch_stable.html
pip install transformers==4.49.0 flash-attn==2.7.4
注意:需确保 NVIDIA 驱动版本不低于 535.54。若缺少完整依赖列表,可参考 R1-V 仓库。
4. 下载模型
R1-Omni 提供多个模型版本,可从 Hugging Face 或 ModelScope 下载。以 Hugging Face 为例:
- 访问 Hugging Face R1-Omni。
- 下载
R1-Omni-0.5B
模型,保存到本地路径,如/path/to/models/R1-Omni-0.5B
。 - 下载依赖模型:
- 音频模型:whisper-large-v3,保存到
/path/to/models/whisper-large-v3
。 - 视觉模型:siglip-base-patch16-224,保存到
/path/to/models/siglip-base-patch16-224
。
5. 修改配置文件
在 R1-Omni-0.5B
文件夹中找到 config.json
,用文本编辑器打开,修改以下两行:
"mm_audio_tower": "/path/to/models/whisper-large-v3",
"mm_vision_tower": "/path/to/models/siglip-base-patch16-224"
保存并关闭文件。
功能操作流程
1. 情感识别推理
R1-Omni 提供 inference.py
脚本,用于分析单个视频的情感。操作步骤如下:
- 准备视频文件(如
video.mp4
),确保有画面和声音。 - 在终端运行:
python inference.py --modal video_audio \ --model_path /path/to/models/R1-Omni-0.5B \ --video_path video.mp4 \ --instruct "As an emotional recognition expert; throughout the video, which emotion conveyed by the characters is the most obvious to you? Output the thinking process in <think> </think> and final emotion in <answer> </answer> tags."
- 输出示例:
<think>视频中一名男子站在彩色壁画前,穿棕色夹克,眉头紧皱,嘴巴张开,表情显得激动。音频中有“降低声音”和“别慌”的词语,语速快且语气紧张。综合分析,他的情绪是愤怒和不安。</think> <answer>angry</answer>
2. 测试模型性能
官方在 DFEW、MAFW 和 RAVDESS 数据集上测试了模型性能。用户可下载这些数据集(见 DFEW 官网 或 MAFW 官网),然后用上述命令验证本地效果。对比数据如下:
- R1-Omni 在 DFEW (WAR) 上达 65.83%,优于 HumanOmni-0.5B 的 22.64%。
3. 自定义训练
- 冷启动训练:基于 Explainable Multimodal Emotion Reasoning(232 个样本)和 HumanOmni(348 个样本)数据集初始化模型。数据格式示例:
[{"video": "MER24/sample_00000967.mp4", "conversations": [{"from": "human", "value": "<video>\n<audio>\n请识别视频中的主要情绪"}, {"from": "gpt", "value": "<think>视频中一名男子在打电话,眉头紧皱,语速快,语气紧张,表现出焦虑。</think>\n<answer>anxious</answer>"}]}]
数据尚未完全开源,可关注 GitHub 动态。
- RLVR 训练:使用 MAFW 和 DFEW 数据集(共 15,306 个视频)。数据格式示例:
[{"video": "DFEW/videos/1.mp4", "conversations": [{"from": "human", "value": "<video>\n<audio>\n请识别视频中的主要情绪"}, {"from": "gpt", "value": "sad"}]}]
训练细节待官方进一步说明。
注意事项
- 视频要求:支持 MP4 等格式,需包含清晰画面和音频。
- 模型选择:R1-Omni 是最终版本,性能最优;其他模型可用于对比实验。
- 技术支持:遇到问题可在 GitHub 提交 Issue,团队会持续完善文档。
通过以上步骤,用户可以快速安装并使用 R1-Omni,体验其情感识别功能。