Skip to content
VisionXLabPublic

About

An Evidence-Grounded Benchmark for Audio-Visual Reasoning

Resources

Stars

24 stars

Watchers

0 watching

Forks

Repository files navigation

English | 简体中文

EvaOmni : An Evidence-Grounded Benchmark for Audio-Visual Reasoning

Xiaoxing Hu†, Wenxi Yao*, Chaoyuan Shi*, Ziqi Ye*, Xiaorong Guo, Peixuan Li, Zhuoran Sun, Ziyang Gong, Peiyuan Zhang, Mingxin Liu, Shuran Ma, Hongbo Liu, Xiaomin Yu, Yu Tian, Wentao Wang, Zhenjie Yang, Jian Hu, Yunhang Shen, Haoyu Cao, and Xue Yang✉

† Project Lead · * Core Contributions · ✉ Corresponding Author

ModelScope Dataset Hugging Face Dataset arXiv: 2610.28444 Project Homepage

If EvaOmni is useful for your research, please consider starring this repository and citing our work! ⭐⭐⭐

📖 Motivation & Overview

EvaOmni is an evidence-grounded benchmark for evaluating audio-visual reasoning in omni-modal large language models. Existing multiple-choice benchmarks often score only whether a model selects the correct option. A model can therefore obtain credit from textual, logical, or single-modality shortcuts without identifying the evidence that supports its answer. EvaOmni requires a model to return both an answer and timestamped audio and visual evidence. The benchmark reports answer accuracy together with evidence coverage and temporal grounding, making it possible to measure whether a correct answer is supported by the relevant moments in both modalities.

Shortcut evaluation across benchmarks and examples of text, audio, and visual shortcuts

Shortcut evaluation across benchmarks, with examples of text-only, audio-only, and visual-only shortcuts.

✨ Highlights

  • Evidence-grounded evaluation: models predict an answer together with audio and visual evidence intervals.
  • Audio-visual reasoning: questions are designed to require complementary information from the two modalities.
  • Shortcut screening: construction includes text-only, audio-only, and visual-only checks.
  • Fine-grained taxonomy: 1,027 questions from 392 videos cover 15 capabilities across 3 reasoning levels.
  • Grounded metrics: Coverage Grounded Score (C.G.) measures evidence coverage, while Bottleneck Grounded Score (B.G.) measures the weaker of the two modality-localization scores.
  • Transparent evaluation: this release includes a runnable metric evaluator, Gemini and MiMo adapters, a prediction schema, and a worked example.

EvaOmni annotation pipeline and an example with timestamped audio and visual evidence

Annotation pipeline and a grounded question example with timestamped audio and visual evidence.

📊 Benchmark Statistics

Item Value
Videos 392
Question-answer pairs 1,027
Fine-grained capabilities 15
Reasoning levels 3
Video duration 1–12 minutes
Evaluation frame rate 1.0 FPS
Evaluation resolution 480 pixels on the longer side

Capability taxonomy and distributions of video duration, token length, evidence, and video categories

Capability taxonomy and dataset statistics, including video duration, token length, evidence, and video categories.

Capability levels

  • Level 1 — Retrieval and Grounding: temporal alignment, event binding, and entity binding.
  • Level 2 — Basic Understanding: causal reasoning, emotional intelligence, intent understanding, atmosphere understanding, implicit event reasoning, semantic disambiguation, temporal understanding, spatial understanding, and conditional counting.
  • Level 3 — Complex Reasoning: multi-hop reasoning, long-range reasoning, and multi-evidence chains.

🔥 Benchmark Performance

The current manuscript evaluates 7 open-weight and 17 proprietary Omni LLMs, with a human expert reference baseline. The table below reports Acc., C.G., and B.G. for all three capability levels and overall. All values are percentages and higher is better. Within each model group, bold indicates the best results and underlining indicates the second-best results. These are manuscript results, not outputs generated by this starter release.

Model Level 1 R.&G. Level 2 B.U. Level 3 C.R. Overall
Acc.C.G.B.G.Acc.C.G.B.G.Acc.C.G.B.G.Acc.C.G.B.G.
Open-Weight Omni LLMs
Qwen2.5-Omni-7B16.61.20.617.40.50.013.70.30.016.40.80.3
Qwen3-Omni-Instruct-30B-A3B28.65.10.622.43.40.422.22.40.125.24.00.4
Qwen3-Omni-Thinking-30B-A3B26.311.44.824.46.21.221.64.10.624.88.32.8
Nemotron3-Nano-Omni-30B-A3B30.715.05.322.113.13.910.54.70.724.212.64.0
MiMo-V2.5-310B-A15B65.461.330.852.342.315.145.129.66.756.848.420.5
MiMo-V2.6-Flash-310B-A15B61.355.329.048.641.414.545.828.65.953.645.319.3
MiMo-V2.6-Pro-1T-A42B60.151.328.844.335.212.049.726.65.051.840.718.1
Proprietary Omni LLMs
Doubao-Seed-2.0-Lite54.136.410.854.136.111.762.732.25.955.435.610.4
Doubao-Seed-2.1-Lite78.874.838.067.061.522.659.542.79.470.964.327.2
Qwen3.5-Omni-Flash47.541.915.530.924.07.229.415.72.737.730.410.0
Qwen3.5-Omni-Plus58.152.022.142.326.08.642.519.83.349.036.013.5
Qwen3.8-Omni-Flash65.053.619.352.341.411.856.235.97.858.245.714.4
Gemini2.5-Flash59.255.226.739.331.411.841.824.64.048.140.416.9
Gemini2.5-Flash-Lite53.047.222.130.922.48.027.514.82.239.731.813.1
Gemini2.5-Pro76.573.842.365.055.022.572.545.89.471.061.628.9
Gemini3.1-Flash-Lite59.452.824.236.630.710.532.019.03.045.638.315.2
Gemini3.1-Flash-Lite-Preview59.753.625.239.331.110.338.623.23.347.839.415.6
Gemini3.1-Pro-Preview74.772.841.568.659.824.876.548.711.272.363.729.8
Gemini3.5-Flash64.159.428.869.561.427.477.847.811.368.558.625.6
Gemini3.5-Flash-Lite60.655.626.538.227.910.742.524.23.548.339.116.3
Gemini3.6-Flash80.978.044.768.461.326.173.244.210.674.465.831.7
Gemini3.7-Flash85.384.049.173.665.329.279.149.112.379.470.835.1
Gemini3.8-Flash83.481.948.473.963.327.474.543.19.578.068.233.6
Gemini4-Argon67.155.929.352.033.713.072.533.57.561.443.019.1
Reference baseline
Human Expert97.897.895.896.594.893.294.493.893.096.896.094.3

Gemini3.7-Flash achieves 79.4% accuracy but 35.1% B.G. overall. This gap illustrates why answer correctness and evidence localization should be assessed together. Humans may pause and replay videos in the reported baseline; viewing conditions differ from model inference.

📦 Dataset

Our dataset is hosted on Hugging Face and ModelScope respectively. Use either ModelScope or Hugging Face:

Download command:

pip install modelscope
modelscope download --dataset VisionXLab/EvaOmni-Dataset --local_dir ./data

or

pip install huggingface_hub
huggingface-cli download --repo-type dataset --resume-download VisionXLab/EvaOmni-Dataset --local-dir ./data

Note

Use resized_video to reproduce the paper's results, or rawvideo (original videos) for custom preprocessing.

🚀 Quick Start

Clone the repository.

git clone https://github.com/VisionXLab/EvaOmni.git
cd EvaOmni

1. Download the dataset

Download the dataset using either command above. The resulting directory structure is:

data/
├── test_file.json
├── rawvideo/
│   ├── 001.mp4
│   ├── 002.mp4
│   └── ...
└── resized_video/
    ├── 001.mp4
    ├── 002.mp4
    └── ...

2. Choose an adapter and run the evaluation

Each provider has its own adapter under scripts/. All of them read the same three variables from the environment; nothing is hardcoded and API_KEY is never written to the output files. Copy .env.example to .env (gitignored) and fill it in, or export the variables in your shell.

Adapter Protocol Supported models
scripts/eval_gemini.py Gemini generateContent REST Gemini family, e.g. gemini-3.8-flash
scripts/eval_mimo.py OpenAI-compatible chat completions MiMo family, e.g. mimo-v2.6-pro, mimo-v2.6-flash

Common variables:

Variable Meaning
BASE_URL Endpoint URL. See the per-adapter notes below for the accepted forms.
API_KEY Provider API key. Gemini sends it as Authorization: Bearer, MiMo via the OpenAI SDK.
MODEL_NAME Model identifier passed to the provider.

Note

MiMo-v2.5 is no longer served by the API. Use mimo-v2.6-pro or mimo-v2.6-flash.

Gemini family

BASE_URL accepts either a prefix, to which the script appends /${MODEL_NAME}:generateContent, or a full template containing the {model} placeholder, which is used verbatim:

# 1. Prefix form — the script appends /<model>:generateContent
export BASE_URL="https://<your-host>/v1beta/models"

# 2. Template form — used as-is, for relays whose path differs
export BASE_URL="https://<your-host>/v1beta/models/{model}:generateContent"
export BASE_URL="https://<your-host>/v1beta/models"
export API_KEY="<your-api-key>"
export MODEL_NAME="gemini-3.8-flash"

python scripts/eval_gemini.py \
  --annotation data/test_file.json \
  --video-root data/resized_video \
  --results-dir outputs/gemini \
  --workers 4 \
  --retries 3

The script prints the resolved request URL at startup, so a misconfigured relay path is visible before any video is uploaded. The wrapper scripts/eval.sh runs the same command and accepts ANNOTATION_FILE, VIDEO_ROOT, RESULTS_DIR, WORKERS, RETRIES, and LIMIT overrides:

MODEL_NAME="gemini-3.8-flash" bash scripts/eval.sh

MiMo family

BASE_URL is the OpenAI-compatible base, typically ending in /v1. Videos are sent inline as base64 data URLs, so no upload step is required.

export BASE_URL="https://<your-host>/v1"
export API_KEY="<your-api-key>"
export MODEL_NAME="mimo-v2.6-flash"

python scripts/eval_mimo.py \
  --annotation data/test_file.json \
  --video-root data/resized_video \
  --results-dir outputs/mimo \
  --workers 4 \
  --retries 3

Swap MODEL_NAME for mimo-v2.6-pro to evaluate the Pro variant. Use a separate --results-dir per model so checkpoints do not mix, or pass --tag mimo_pro to keep both runs in one directory. --fps controls the sampling rate sent to the provider (default 1.0, matching the benchmark protocol).

Smoke test

Both adapters accept --limit N to evaluate only the first N questions. Point the results at a scratch directory so the partial run is not mistaken for a completed checkpoint:

MODEL_NAME="mimo-v2.6-flash" python scripts/eval_mimo.py --limit 5 --results-dir outputs/smoke
MODEL_NAME="gemini-3.8-flash" python scripts/eval_gemini.py --limit 5 --results-dir outputs/smoke

--qa-ids 1,2,3 and --levels 1,2 select specific questions or reasoning levels instead.

Resuming and outputs

Both scripts display a live progress view and save each completed result. Rerun the same command to resume: successful questions are skipped and failed questions are retried. Each question is counted once in the summary even if it was attempted several times. Raw responses and human-readable logs are saved in the results directory.

TODO: Adapters for the remaining model families evaluated in the paper (Qwen-Omni, Nemotron-Omni, Doubao-Seed, and the local vLLM pipelines) will be released incrementally.

For provider-specific adapters or an API-free orchestration check, see scripts/eval_example.py. The example supports --mock --limit 8 and writes grounded metric snapshots without making network requests.

📚 Citation

@article{hu2026evaomni,
  title={EvaOmni: An Evidence-Grounded Benchmark for Audio-Visual Reasoning},
  author={Hu, Xiaoxing and Yao, Wenxi and Shi, Chaoyuan and Ye, Ziqi and Guo, Xiaorong and Li, Peixuan and Sun, Zhuoran and Gong, Ziyang and Zhang, Peiyuan and Liu, Mingxin and Ma, Shuran and Liu, Hongbo and Yu, Xiaomin and Tian, Yu and Wang, Wentao and Yang, Zhenjie and Hu, Jian and Shen, Yunhang and Cao, Haoyu and Yang, Xue},
  journal={arXiv preprint arXiv:2610.28444},
  year={2026}
}

📄 License

Repository code is released under the MIT License. For dataset annotation and media terms, refer to the dataset hosting pages.

🙏 Acknowledgements

We thank all the annotators, reviewers, and open-source communities whose work made this benchmark possible. Please open an issue if you find a broken link, an annotation problem, or an evaluation mismatch.

About

An Evidence-Grounded Benchmark for Audio-Visual Reasoning

Resources

Stars

24 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages