🚀 奧林巴斯(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 許可證。