[CVPR 2025] Online Video Understanding: OVBench and VideoChat-Online
Python
97
28 commits
updated Oct 7, 2025
VideoChat-Onlineπ Introducing OVBench OVBench is a benchmark tailored for real-time video understanding:
ποΈ Pyramid Memory Bank
To tackle the challenges of infinite video streams, we propose a multi-layered Pyramid Memory Bank that balances spatial and temporal information:
NOTE: The currently open-sourced code implementation of ours constructs memory based on ViT features. We will provide the implementation that builds memory using KV-Cache features in subsequent updates.
π― Offline-to-Online Learning Paradigm
A novel training strategy designed for online video streams:
See our leaderboard here
Evaluation of Existing Models on OVBench Using lmms_eval.
Environment Setup: Ensure that all dependencies required by lmms_eval are properly installed.
Please perform a global search for the field /path_to_your in the ./lmms-eval-ovbench directory and replace it with the corresponding file path on your local system.
./lmms-eval-ovbench/scripts/eval_models/eval_internvl2-8B.sh to initiate the benchmark evaluation.Given that the video data used in this benchmark consists of both image sequences and video clips, it is necessary to utilize the ./lmms-eval-ovbench/llava/video_utils.py to read video data correctly.
You may refer to the implementation of the load_video function in ./lmms-eval-ovbench/lmms_eval/models/internvl2.py as a guideline. Integrate this function into your custom model as needed to enable compatibility with the lmms_eval evaluation framework.
Email xinhaoli00@outlook.com with your result.json or open an issue in this repo.
To launch the demo, use the following script:
https://github.com/user-attachments/assets/4cdc3e57-3dae-4656-8366-a10cc6648884
bash gradio_demo.sh
To install the necessary dependencies, use the following commands:
conda create -n your_env python=3.9
pip install -r requirements.txt
The anno_data file provides the paths for different types of datasets:
"coin_sl_train": {
"annotation": "Path to the annotations json file.",
"data_root": "your data path",
},
...
We support the data reading formats LLaVA and VideoChat2-IT for specific data JSON formats.
For the construction format of online data, please refer to VideoChatOnline-IT
| Benchmark | Result |
|---|---|
| OVBench | 54.9 |
| VideoMME | Short: 65.8 Medium: 50.2 Long: 47.1 Avg: 54.4 |
| MVBench | 65.2 |
| EgoSchema | 54.7 |
| MLVU | 60.8 |
| LongVideoBench | 54.1 |
To run the training, execute the following bash commands for different stages:
#Offline SFT:
bash shell/online_4b/videochat_online_4b_stage1_ft.sh
#Online & Offline Joint SFT:
bash shell/online_4b/videochat_online_4b_stage2_ft.sh
#Sliding Window Setting:
bash shell/eval/online_bench_sliding_window.sh
#Streaming Setting:
bash shell/eval/online_bench_stream.sh
Python
99.4%
[CVPR 2025] Online Video Understanding: OVBench and VideoChat-Online
Python
97
28 commits
updated Oct 7, 2025
VideoChat-Onlineπ Introducing OVBench OVBench is a benchmark tailored for real-time video understanding:
ποΈ Pyramid Memory Bank
To tackle the challenges of infinite video streams, we propose a multi-layered Pyramid Memory Bank that balances spatial and temporal information:
NOTE: The currently open-sourced code implementation of ours constructs memory based on ViT features. We will provide the implementation that builds memory using KV-Cache features in subsequent updates.
π― Offline-to-Online Learning Paradigm
A novel training strategy designed for online video streams:
See our leaderboard here
Evaluation of Existing Models on OVBench Using lmms_eval.
Environment Setup: Ensure that all dependencies required by lmms_eval are properly installed.
Please perform a global search for the field /path_to_your in the ./lmms-eval-ovbench directory and replace it with the corresponding file path on your local system.
./lmms-eval-ovbench/scripts/eval_models/eval_internvl2-8B.sh to initiate the benchmark evaluation.Given that the video data used in this benchmark consists of both image sequences and video clips, it is necessary to utilize the ./lmms-eval-ovbench/llava/video_utils.py to read video data correctly.
You may refer to the implementation of the load_video function in ./lmms-eval-ovbench/lmms_eval/models/internvl2.py as a guideline. Integrate this function into your custom model as needed to enable compatibility with the lmms_eval evaluation framework.
Email xinhaoli00@outlook.com with your result.json or open an issue in this repo.
To launch the demo, use the following script:
https://github.com/user-attachments/assets/4cdc3e57-3dae-4656-8366-a10cc6648884
bash gradio_demo.sh
To install the necessary dependencies, use the following commands:
conda create -n your_env python=3.9
pip install -r requirements.txt
The anno_data file provides the paths for different types of datasets:
"coin_sl_train": {
"annotation": "Path to the annotations json file.",
"data_root": "your data path",
},
...
We support the data reading formats LLaVA and VideoChat2-IT for specific data JSON formats.
For the construction format of online data, please refer to VideoChatOnline-IT
| Benchmark | Result |
|---|---|
| OVBench | 54.9 |
| VideoMME | Short: 65.8 Medium: 50.2 Long: 47.1 Avg: 54.4 |
| MVBench | 65.2 |
| EgoSchema | 54.7 |
| MLVU | 60.8 |
| LongVideoBench | 54.1 |
To run the training, execute the following bash commands for different stages:
#Offline SFT:
bash shell/online_4b/videochat_online_4b_stage1_ft.sh
#Online & Offline Joint SFT:
bash shell/online_4b/videochat_online_4b_stage2_ft.sh
#Sliding Window Setting:
bash shell/eval/online_bench_sliding_window.sh
#Streaming Setting:
bash shell/eval/online_bench_stream.sh
Python
99.4%