We follow the data preparing process and the codebase of MultiOOD.
- Download HMDB51 video data from link and extract. Download HMDB51 optical flow data from link and extract. The directory structure should be modified to match:
Click for details...
HMDB51
├── video
| ├── catch
| | ├── *.avi
| ├── climb
| | ├── *.avi
| |── ...
├── flow
| ├── *_flow_x.mp4
| ├── *_flow_y.mp4
| ├── ...
- Download UCF101 video data from link and extract. Download UCF101 optical flow data from link and extract. The directory structure should be modified to match:
Click for details...
UCF101
├── video
| ├── *.avi
| |── ...
├── flow
| ├── *_flow_x.mp4
| ├── *_flow_y.mp4
| ├── ...
- Download EPIC-Kitchens video and optical flow data by
bash utils/download_epic_script.sh
Download audio data from link.
Unzip all files and the directory structure should be modified to match:
Click for details...
EPIC-KITCHENS
├── rgb
| ├── train
| | ├── D3
| | | ├── P22_05.wav
| | | ├── P22_05
| | | | ├── frame_0000000000.jpg
| | | | ├── ...
| | | ├── P22_06
| | | ├── ...
| ├── test
| | ├── D3
| | | ├── P22_01.wav
| | | ├── P22_01
| | | | ├── frame_0000000000.jpg
| | | | ├── ...
| | | ├── P22_02
| | | ├── ...
├── flow
| ├── train
| | ├── D3
| | | ├── P22_05
| | | | ├── frame_0000000000.jpg
| | | | ├── ...
| | | ├── P22_06
| | | ├── ...
| ├── test
| | ├── D3
| | | ├── P22_01
| | | | ├── frame_0000000000.jpg
| | | | ├── ...
| | | ├── P22_02
| | | ├── ...
- Download HAC video, audio and optical flow data from link and extract. The directory structure should be modified to match:
Click for details...
HAC
├── human
| ├── videos
| | ├── ...
| ├── flow
| | ├── ...
| ├── audio
| | ├── ...
├── animal
| ├── videos
| | ├── ...
| ├── flow
| | ├── ...
| ├── audio
| | ├── ...
├── cartoon
| ├── videos
| | ├── ...
| ├── flow
| | ├── ...
| ├── audio
| | ├── ...
- Download Kinetics-600 video data by
wget -i utils/filtered_k600_train_path.txt
Extract all files and get audio data from video data by
python utils/generate_audio_files.py
Download Kinetics-600 optical flow data (kinetics600_flow_mp4_part_*) from link and extract (run cat kinetics600_flow_mp4_part_* > kinetics600_flow_mp4.tar.gz
and then tar -zxvf kinetics600_flow_mp4.tar.gz
).
Unzip all files and the directory structure should be modified to match:
Click for details...
Kinetics-600
├── video
| ├── acting in play
| | ├── *.mp4
| | ├── *.wav
| |── ...
├── flow
| ├── acting in play
| | ├── *_flow_x.mp4
| | ├── *_flow_y.mp4
| ├── ...
The splits for Multimodal Near-OOD and Far-OOD Benchmarks are provided under HMDB-rgb-flow/splits/
for HMDB51, UCF101, HAC, and Kinetics-600, and under EPIC-rgb-flow/splits/
for EPIC-Kitchens.
The code was tested using Python 3.10.4
, torch 1.11.0+cu113
and NVIDIA RTX 6000 Ada
. More dependencies are in requirement.txt
.
-
Download SlowFast model for RGB modality link and place under the
HMDB-rgb-flow/pretrained_models
andEPIC-rgb-flow/pretrained_models
directory -
Download SlowOnly model for Flow modality link and place under the
HMDB-rgb-flow/pretrained_models
andEPIC-rgb-flow/pretrained_models
directory -
Download Audio model link, rename it as
vggsound_avgpool.pth.tar
and place under theHMDB-rgb-flow/pretrained_models
andEPIC-rgb-flow/pretrained_models
directory
We provide our trained checkpoints and codes for testing. We'll have all our codes (training and testing) available once paper is accepted.
Click for details...
cd HMDB-rgb-flow/
Download our provided checkpoint from link.
Save the evaluation files for HMDB (to save evaluation files for ASH or ReAct, you should also run following line with options --use_ash
or --use_react
):
python test_video_flow.py --bsz 16 --num_workers 2 --near_ood --dataset 'HMDB' --appen 'a2d_npmix_best_' --resumef '/path/to/HMDB_near_ood_a2d_npmix.pt'
Evaluation for HMDB (change --postprocessor
to different score functions, for VIM you should also pass --resume_file checkpoint.pt
, where checkpoint.pt is the trained checkpoint):
python eval_video_flow_near_ood.py --postprocessor msp --appen 'a2d_npmix_best_' --dataset 'HMDB' --path 'HMDB-rgb-flow/'
Click for details...
cd HMDB-rgb-flow/
Download our provided checkpoint from link.
Save the evaluation files for UCF (to save evaluation files for ASH or ReAct, you should also run following line with options --use_ash
or --use_react
):
python test_video_flow.py --bsz 16 --num_workers 2 --near_ood --dataset 'UCF' --appen 'a2d_npmix_best_' --resumef '/path/to/UCF_near_ood_a2d_npmix.pt'
Evaluation for UCF (change --postprocessor
to different score functions, for VIM you should also pass --resume_file checkpoint.pt
, where checkpoint.pt is the trained checkpoint):
python eval_video_flow_near_ood.py --postprocessor msp --appen 'a2d_npmix_best_' --dataset 'UCF' --path 'HMDB-rgb-flow/'
Click for details...
cd EPIC-rgb-flow/
Download our provided checkpoint from link.
Save the evaluation files for EPIC (to save evaluation files for ASH or ReAct, you should also run following line with options --use_ash
or --use_react
):
python test_video_flow_epic.py --bsz 16 --num_workers 2 --ood_dataset 'EPIC' --appen 'a2d_npmix_best_' --resumef '/path/to/EPIC_near_ood_a2d_npmix.pt'
Evaluation for EPIC (change --postprocessor
to different score functions, for VIM you should also pass --resume_file checkpoint.pt
, where checkpoint.pt is the trained checkpoint):
python eval_video_flow_near_ood.py --postprocessor msp --appen 'a2d_npmix_best_' --dataset 'EPIC' --path 'EPIC-rgb-flow/'
Click for details...
cd HMDB-rgb-flow/
Download our provided checkpoint from link.
Save the evaluation files for Kinetics (to save evaluation files for ASH or ReAct, you should also run following line with options --use_ash
or --use_react
):
python test_video_flow.py --bsz 16 --num_workers 2 --near_ood --dataset 'Kinetics' --appen 'a2d_npmix_best_' --resumef '/path/to/Kinetics_near_ood_a2d_npmix.pt'
Evaluation for Kinetics (change --postprocessor
to different score functions, for VIM you should also pass --resume_file checkpoint.pt
, where checkpoint.pt is the trained checkpoint):
python eval_video_flow_near_ood.py --postprocessor msp --appen 'a2d_npmix_best_' --dataset 'Kinetics' --path 'HMDB-rgb-flow/'
Click for details...
cd HMDB-rgb-flow/
Download our provided checkpoint from link.
Save the evaluation files for HMDB (to save evaluation files for ASH or ReAct, you should also run following line with options --use_ash
or --use_react
, same for other datasets):
python test_video_flow.py --bsz 16 --num_workers 2 --dataset 'HMDB' --appen 'a2d_npmix_best_' --resumef '/path/to/HMDB_far_ood_a2d_npmix.pt'
Save the evaluation files for UCF:
python test_video_flow.py --bsz 16 --num_workers 2 --far_ood --dataset 'HMDB' --ood_dataset 'UCF' --appen 'a2d_npmix_best_' --resumef '/path/to/HMDB_far_ood_a2d_npmix.pt'
Save the evaluation files for HAC:
python test_video_flow.py --bsz 16 --num_workers 2 --far_ood --dataset 'HMDB' --ood_dataset 'HAC' --appen 'a2d_npmix_best_' --resumef '/path/to/HMDB_far_ood_a2d_npmix.pt'
Save the evaluation files for Kinetics:
python test_video_flow.py --bsz 16 --num_workers 2 --far_ood --dataset 'HMDB' --ood_dataset 'Kinetics' --appen 'a2d_npmix_best_' --resumef '/path/to/HMDB_far_ood_a2d_npmix.pt'
Save the evaluation files for EPIC:
cd EPIC-rgb-flow/
python test_video_flow_epic.py --bsz 16 --num_workers 2 --far_ood --dataset 'HMDB' --ood_dataset 'EPIC' --appen 'a2d_npmix_best_' --resumef '/path/to/HMDB_far_ood_a2d_npmix.pt'
Evaluation for UCF (change --postprocessor
to different score functions, for VIM you should also pass --resume_file checkpoint.pt
, where checkpoint.pt is the trained checkpoint, change --ood_dataset
to UCF, EPIC, HAC, or Kinetics):
python eval_video_flow_far_ood.py --postprocessor msp --appen 'a2d_npmix_best_' --dataset 'HMDB' --ood_dataset 'UCF' --path 'HMDB-rgb-flow/'
Click for details...
cd HMDB-rgb-flow/
Download our provided checkpoint from link.
Save the evaluation files for Kinetics (to save evaluation files for ASH or ReAct, you should also run following line with options --use_ash
or --use_react
, same for other datasets):
python test_video_flow.py --bsz 16 --num_workers 2 --dataset 'Kinetics' --appen 'a2d_npmix_best_' --resumef '/path/to/Kinetics_far_ood_a2d_npmix.pt'
Save the evaluation files for HMDB:
python test_video_flow.py --bsz 16 --num_workers 2 --far_ood --dataset 'Kinetics' --ood_dataset 'HMDB' --appen 'a2d_npmix_best_' --resumef '/path/to/Kinetics_far_ood_a2d_npmix.pt'
Save the evaluation files for UCF:
python test_video_flow.py --bsz 16 --num_workers 2 --far_ood --dataset 'Kinetics' --ood_dataset 'UCF' --appen 'a2d_npmix_best_' --resumef '/path/to/Kinetics_far_ood_a2d_npmix.pt'
Save the evaluation files for HAC:
python test_video_flow.py --bsz 16 --num_workers 2 --far_ood --dataset 'Kinetics' --ood_dataset 'HAC' --appen 'a2d_npmix_best_' --resumef '/path/to/cKinetics_far_ood_a2d_npmix.pt'
Save the evaluation files for EPIC:
cd EPIC-rgb-flow/
python test_video_flow_epic.py --bsz 16 --num_workers 2 --far_ood --dataset 'Kinetics' --ood_dataset 'EPIC' --appen 'a2d_npmix_best_' --resumef '/path/to/Kinetics_far_ood_a2d_npmix.pt'
Evaluation for UCF (change --postprocessor
to different score functions, for VIM you should also pass --resume_file checkpoint.pt
, where checkpoint.pt is the trained checkpoint, change --ood_dataset
to UCF, EPIC, HAC, or HMDB):
python eval_video_flow_far_ood.py --postprocessor msp --appen 'a2d_npmix_best_' --dataset 'Kinetics' --ood_dataset 'UCF' --path 'HMDB-rgb-flow/'
Click for details...
cd HMDB-rgb-flow/
Download our provided checkpoint from link.
Save the evaluation files for Kinetics (to save evaluation files for ASH or ReAct, you should also run following line with options --use_ash
or --use_react
):
python test_video_flow_audio.py --bsz 16 --num_workers 2 --near_ood --dataset 'Kinetics' --appen 'a2d_npmix_best_' --resumef '/path/to/Kinetics_near_ood_a2d_npmix.pt'
Evaluation for Kinetics (change --postprocessor
to different score functions, for VIM you should also pass --resume_file checkpoint.pt
, where checkpoint.pt is the trained checkpoint):
python eval_video_flow_near_ood.py --postprocessor msp --appen 'vfa_a2d_npmix_best_' --dataset 'Kinetics' --path 'HMDB-rgb-flow/'
Many thanks to the excellent open-source projects MultiOOD.