Revisiting Uncertainty: On Evidential Learning for Partially Relevant Video Retrieval
July 10, 2026 · View on GitHub
:star: If Holmes is helpful to your projects, please help star this repo. Thanks! :hugs:
We sincerely invite readers to refer to our previous works: ICCV25-HLFormer and CVPR26-DreamPRVR, as well as our curated Awesome-PRVR.
TABLE OF CONTENTS
1. Introduction
This repository contain the implementation of our work at ICML 2026:
Revisiting Uncertainty: On Evidential Learning for Partially Relevant Video Retrieval Jun Li, Peifeng Lai, Xuhang Lou, Jinpeng Wang, Yuting Wang, Ke Chen, Yaowei Wang, Shu-Tao Xia.
We propose Holmes, a hierarchical evidential learning framework that aggregates multi-granular cross-modal evidence to quantify and model uncertainty explicitly:
(i) At the inter-video level, similarity scores are interpreted as evidential support and modeled via a Dirichlet distribution. Based on the proposed three-fold principle, we perform fine-grained query identification, which then guides query-adaptive calibrated learning.
(ii) At the intra-video level, to accumulate denser evidence, we formulate a soft query-clip alignment via flexible optimal transport with an adaptive dustbin, which alleviates sparse temporal supervision while suppressing spurious local responses.
2. Preparation
git clone https://github.com/lijun2005/ICML26-Holmes.git
cd ICML26-Holmes/
2.1 Requirements
We train Charades-STA on Nvidia 3080 Ti with the environment:
- python==3.11.8
- pytorch==2.0.1
We train TVR, ActivityNet Captions on Nvidia A100-40G with the environment:
- python==3.9.17
- pytorch==2.0.1
2.2 Download the datasets
All features can be downloaded from Baidu pan or Google drive (thanks to ms-sl).
!!! Please note that we did not use any features derived from ViT.
The dataset directory is organized as follows:
Holmes/
├── activitynet/
│ ├── FeatureData/
│ ├── TextData/
│ ├── val_1.json
│ └── val_2.json
├── charades/
│ ├── FeatureData/
│ └── TextData/
└── tvr/
├── FeatureData/
└── TextData/
We convert the feature.bin into feature.hdf5 . Please refer to src/Utils/convert_hdf5.py (thanks to FAWL).
Finally, set root and data_root in config files (e.g., ./src/Configs/tvr.py cfg['root'] and cfg['data_root']).
3. Run
3.1 Train
To train Holmes on ActivityNet Captions:
cd src
python main.py -d act --gpu 0
To train Holmes on Charades-STA:
cd src
python main.py -d cha --gpu 0
To train Holmes on TVR:
cd src
python main.py -d tvr --gpu 0
Following RAL, we also employ a dual-query branch to achieve better performance.
To train Holmes on TVR with the dual-query branch:
cd multisrc
python main.py -d tvr --gpu 0
3.2 Retrieval Performance
For this repository, the expected performance is:
| Dataset | R@1 | R@5 | R@10 | R@100 | SumR | Log | Ckpt |
|---|---|---|---|---|---|---|---|
| ActivityNet Captions | 9.3 | 27.8 | 40.5 | 79.1 | 156.8 | act-log | act-ckpt |
| Charades-STA | 2.3 | 9.5 | 15.2 | 53.6 | 80.6 | cha-log | cha-ckpt |
| TVR | 17.3 | 39.0 | 50.4 | 87.4 | 194.2 | tvr-log | tvr-ckpt |
| TVR (multi) | 18.4 | 40.7 | 52.0 | 87.5 | 198.6 | multi-tvr-log | multi-tvr-ckpt |
4. References
If you find our code useful or use the toolkit in your work, please consider citing:
@inproceedings{holmes,
title={Revisiting Uncertainty: On Evidential Learning for Partially Relevant Video Retrieval},
author={Li, Jun and Lai, Peifeng and Lou, Xuhang and Wang, Jinpeng and Wang, Yuting and Chen, Ke and Wang, Yaowei and Xia, Shu-Tao},
booktitle={Forty-third International Conference on Machine Learning}
}
5. Acknowledgements
This code is based on HLFormer and DreamPRVR. We are also grateful for other teams for open-sourcing codes that inspire our work, including DECL, Nortorn.
6. Contact
If you have any question, you can raise an issue or email Jun Li (220110924@stu.hit.edu.cn) and Jinpeng Wang (wangjp26@gmail.com).