Revisiting Uncertainty: On Evidential Learning for Partially Relevant Video Retrieval

July 10, 2026 · View on GitHub

arXiv 52CV

: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.

overview 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:

DatasetR@1R@5R@10R@100SumRLogCkpt
ActivityNet Captions9.327.840.579.1156.8act-logact-ckpt
Charades-STA2.39.515.253.680.6cha-logcha-ckpt
TVR17.339.050.487.4194.2tvr-logtvr-ckpt
TVR (multi)18.440.752.087.5198.6multi-tvr-logmulti-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).