MotionLLM
首个视频+运动双塔多模态LLM,可理解人类行为并提供动作指导与评估
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
首个视频+运动双塔多模态LLM,可理解人类行为并提供动作指导与评估
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你有没有过这样的困惑——看一段健身视频,想知道这个动作标准不标准;看一段舞蹈,想让 AI 帮分析动作要领;甚至想让人工智能像人类一样,理解视频里的人在做什么、为什么这样做,却不知道该用什么工具?MotionLLM 正是为解决这些问题而生——它是目前少有的、能同时理解视频画面和人体运动数据的大模型(LLM),可以让 AI 像专业教练一样"看懂"人类行为。
图1:MotionLLM 核心任务示意图

计算机视觉领域,物体识别、图像分割等技术已相当成熟,但理解"人的行为"却一直是个难题。传统方法要么只看视频画面(2D 图像序列),要么只看运动捕捉数据(3D 人体骨骼点),两者割裂。
以运动捕捉数据为例,它记录了人体的关节点位置和角度变化,能够精确描述运动姿态,但专业性强、普通人难以解读。而视频则信息丰富但噪声大,难以为运动姿态给出精确定量描述。
此外,单一模态的 AI 模型(如纯视频理解模型或纯姿态识别模型)难以回答"这个深蹲动作的标准程度如何""这个武术动作的发力点在哪里"这类需要综合推理的问题——因为这类问题既需要视觉感知,也需要运动知识,还需要语言表达能力。
来自清华大学、香港中文大学(深圳)、IDEA 研究院和香港科技大学的研究团队,于 2024 年 5 月发布了 MotionLLM,提出了一种新范式:将视频信息和运动(Motion)信息联合建模,利用大语言模型(LLM)的强大推理能力,实现对人类行为的深度理解。论文发表于 arXiv(编号 2405.20340),代码和 Demo 同步开源。
MotionLLM 的架构设计颇为精巧,核心由三大组件构成:
(1)多模态编码器(Multimodal Encoder)
团队引入了双塔结构,分别处理视频和运动两种模态:
两个 Tower 的输出通过**多模态投影器(Multimodal Projector)**映射到 LLM 的 embedding 空间,实现不同模态的对齐。
(2)大语言模型主干(LLaMA 2 + LoRA)
项目基于 LLaMA 2 作为语言模型核心,并采用 LoRA(Low-Rank Adaptation) 技术进行高效微调。LoRA 使得团队可以在消费级 GPU 上对大模型进行定向训练,大幅降低训练成本。这种方案在开源社区广受认可,项目代码中对 lit-gpt 和 lit-llama 两个框架的集成使用,也体现了团队对训练稳定性的考量(lightning 框架封装)。
(3)推理流程
用户输入一段视频或运动数据 + 自然语言问题后,模型会:
整个推理过程支持 Gradio Web UI(app.py)和 CLI(CLI.py)两种模式,后者方便集成到其他流水线中。
根据 GitHub 仓库和论文,MotionLLM 的核心应用场景包括:
运动指导与评估:上传一段健身/武术/舞蹈视频,MotionLLM 可以分析动作的规范性、给出改进建议。例如,研究者在 Examples 目录中提供了俯卧撑、吉他演奏、少林功夫、竞速跑等多种场景的测试视频。
行为理解问答:可以向模型提问"视频中的人在做什么?""这个动作需要哪些肌肉发力?""深蹲的标准姿势是什么?"等需要综合推理的问题。
运动知识问答:模型结合了 LLM 的世界知识,可以回答与运动、人体相关的专业问题,而不仅仅是识别动作本身。
多模态数据支持:同时支持视频输入和运动捕捉数据,并引入了自建的 MoVid 数据集(发布在 HuggingFace),包含丰富的多模态运动视频数据。
此外,项目还提供 Gradio 在线 Demo,托管在 HuggingFace Spaces 上,即使没有 GPU 也可以在线体验基本功能。
优点:项目提供了 Gradio Web UI 和 CLI 两种运行方式,代码结构清晰,README 文档详细。
挑战:
首先,硬件要求极高。项目依赖 PyTorch 2.0、CUDA 11.7,且需要处理视频和运动两种模态的特征提取,实测需要 NVIDIA A100 GPU(20GB+ 显存)才能流畅运行 demo。requirements.txt 中包含了 40+ 个依赖,涵盖深度学习框架(PyTorch、transformers、lightning)、视频处理(decord、pytorchvideo)、3D 人体建模(smplx、trimesh、pyrender)等多个领域,部分依赖(如 pyrender、trimesh)安装复杂,在非 Linux 环境可能出现编译问题。
其次,项目没有提供 Dockerfile 或 docker-compose,所有环境配置需要手动完成。依赖版本之间的兼容性也是潜在风险——例如 lightning==2.2.0rc0 是候选版本,生产环境使用存在不确定性。
最后,模型权重需要从 HuggingFace 手动下载(需要账户),不支持纯离线部署。
综合判断:不支持一键部署,但有 Web UI 可以在本地运行(如果你有足够的 GPU)。
| 层次 | 技术选型 |
|---|---|
| 语言模型 | LLaMA 2(lit-llama + LoRA 微调) |
| 训练框架 | PyTorch Lightning 2.2 |
| 视频编码 | PyTorchVideo + decord |
| 3D 人体 | SMPLX 人体参数化模型 |
| Web UI | Gradio 3.37 + FastAPI + Uvicorn |
| 推理加速 | bitsandbytes 量化、DeepSpeed |
| 依赖管理 | requirements.txt(无 conda/pip env 文件) |
1. 推理速度较慢:由于涉及视频编码和 LoRA 推理的联合计算,在非量化模式下,单次推理可能需要数分钟。建议使用 bitsandbytes 量化或更小的 LoRA rank 来加速。
2. 运动模态依赖外部工具:SMPLX 等人体模型的提取需要额外的预处理工具链(项目提供了 scripts/video_dataset 脚本),完整数据预处理流程对普通用户并不友好。
3. 项目仍在活跃开发中:README 提到"motion branch"功能尚在开发,部分功能可能不稳定。
4. 许可证需注意:项目采用自定义许可证(非标准开源协议),商业使用前请务必阅读 LICENSE 文件。
MotionLLM 最大的价值在于将"视频理解"和"运动理解"两个割裂的领域统一在一个 LLM 框架下,这在此前是未被充分探索的方向。团队来自清华、港中深、IDEA 研究院和港科大,研究背景扎实,论文和代码同步开源,值得关注。
对于普通 AI 爱好者,这个项目展示了"AI 如何像人一样理解行为"的可能性;对于开发者,它是多模态 LLM 微调的优秀参考范例——视频+运动双塔、LoRA 微调、lit-gpt 集成等工程实践都很有参考价值。
唯一需要注意的是硬件门槛:没有 A100/3090,还是直接用 HuggingFace 在线 Demo 更实际。