🚀 奥林巴斯(Olympus):计算机视觉任务的通用任务路由器
奥林巴斯(Olympus)是一个用于计算机视觉任务的通用任务路由器,能够处理多种视觉相关任务,为计算机视觉研究和应用提供了强大支持。
奥林巴斯(Olympus):计算机视觉任务的通用任务路由器
(CVPR 2025,亮点论文)

《奥林巴斯(Olympus):计算机视觉任务的通用任务路由器》的官方实现。
♥️ 如果您发现我们的项目对您的研究有帮助,请在 GitHub 上给我们点个🌟 并引用我们的论文 📑
🚀 快速开始
✨ 主要特性
- 多任务处理:支持20种不同的计算机视觉任务,具备强大的通用性。
- 数据丰富:提供了丰富的训练和测试数据,方便模型的训练和评估。
- 易于使用:提供了详细的安装、使用和调优指南,降低了使用门槛。
📦 安装指南
🛠️ 环境安装
要搭建环境,只需在 shell 中运行以下代码:
git clone https://github.com/yuanze-lin/Olympus.git
cd Olympus
conda create -n olympus python==3.10 -y
conda activate olympus
pip install -r requirements.txt
这将创建我们使用的 olympus
环境。
下载模型和数据
我们共享了收集的奥林巴斯(Olympus)数据集,如下所示:
Olympus_20tasks_all
:在 20 individual tasks
文件夹下有20个 JSON 文件,每个文件对应一个特定任务。您可以参考我们论文中的路由令牌定义,识别每个 JSON 文件关联的任务,以及 coa.json
中提供的行动链数据。这21个 JSON 文件都包含训练和测试数据。
Olympus.json
:最终的微调数据。
(1) 下载奥林巴斯(Olympus)模型:
python download_olympus.py
该模型将保存在 ckpts
文件夹下。
(2) 下载用于微调的奥林巴斯(Olympus)数据:
python download_olympus_json.py
JSON 数据将作为 Olympus.json
保存在 train_data
文件夹中。请注意,Olympus.json
包含 llava_v1_5_mix665k.json
以及我们从20个任务中收集的数据。
如果您想手动合并数据,首先通过 mkdir jsons
创建 jsons
文件夹,将 Olympus_20tasks_all 和 llava_v1_5_mix665k.json 中的所有 JSON 文件下载到 jsons
文件夹中,然后运行合并脚本:
python scripts/merge_data.py
(3) 下载用于微调的 Mipha-3B 模型:
python download_mipha_3b.py
该模型将保存在 ckpts
文件夹下。
💻 使用示例
推理
运行以下代码进行推理:
model_name=Olympus
MODELDIR=ckpts/$model_name
python predict.py \
--prompt "生成一张蓬松的橙色猫躺在窗台上的图片,阳光透过玻璃洒下,投射出柔和的阴影,营造出温馨的氛围。接下来,能否将猫的颜色改为白色?这一改变将使它更引人注目。然后,根据修改后的图片生成一个高分辨率的3D模型。最后,请展示一段猫和狗在操场上奔跑的视频。" \
--model-path $MODELDIR \
--temperature 0 \
--conv-mode v0
或者,您也可以像我们一样运行 bash predict.sh
。
预测结果应该如下所示:
输入提示: 生成一张蓬松的橙色猫躺在窗台上的图片,阳光透过玻璃洒下,投射出柔和的阴影,营造出温馨的氛围。接下来,能否将猫的颜色改为白色?这一改变将使它更引人注目。然后,根据修改后的图片生成一个高分辨率的3D模型。最后,请展示一段猫和狗在操场上奔跑的视频。
输出: <image_gen>一张蓬松的橙色猫躺在窗台上,阳光透过玻璃洒下,投射出柔和的阴影,营造出温馨的氛围。</image_gen>
<image_edit>将猫的颜色改为白色。</image_edit>
<3D_gen_image>根据修改后的图片生成一个高分辨率的3D模型。</3D_gen_image>
<video_gen>一段猫和狗在操场上奔跑的视频。</video_gen>
根据需要更改 --prompt
以自定义输入提示。
视觉指令微调
请参考 此处 准备指令微调数据。特别地,将不同数据集中的图像存储在 train_data
文件夹下。
运行以下代码对模型进行微调:
bash scripts/mipha/finetune.sh
评估
要评估模型在不同基准测试上的性能:
请参阅 Evaluation.md。
请将评估数据放在 eval
文件夹下。评估脚本放在 scripts/mipha/eval/
文件夹下。
例如,要测试模型在 VQAv2 数据集上的性能,只需运行:
bash scripts/mipha/eval/vqav2.sh
🔮 支持的能力(涵盖20个任务)
🏂 多样化应用
📚 详细文档
引用
如果您发现奥林巴斯(Olympus)对您的研究和应用有帮助,请使用以下 BibTeX 进行引用:
@article{lin2024olympus,
title={Olympus: A Universal Task Router for Computer Vision Tasks},
author={Lin, Yuanze and Li, Yunsheng and Chen, Dongdong and Xu, Weijian and Clark, Ronald and Torr, Philip HS},
journal={arXiv preprint arXiv:2412.09612},
year={2024}
}
致谢
我们的项目基于以下基础构建:
- Mipha:一个令人印象深刻的轻量级视觉语言助手开源项目。
- LLaVA:一个强大的视觉语言助手开源项目。
📄 许可证
本项目采用 Apache-2.0 许可证。