Skip to content
Snippets Groups Projects
Forked from ActEV / diva_evaluation_cli
164 commits behind, 8 commits ahead of the upstream repository.
Ameya Shringi's avatar
Ameya Shringi authored
Fix file name of file index in validation set 5

See merge request !13
203e0543
History

Adapting diva_evalution_cli for R-C3D based SDL Submission

This fork of diva_evalaution_cli is used to submit R-C3D to ActEV SDL challenge and provide documentation for the R-C3D based implementation of diva_evaluation_cli. We assume that you have successfully installed and verified actev based on the following instructions.

Introduction

R-C3D uses a prebuilt docker container to implement the different methods present in src/entry_points. The src/entry_points are thin wrappers to invoke the implementation in src/implementation. The implementations are primarily used to access the docker container containing a fork of R-C3D along with diva-framework and kwiver. The details about the container and adpating R-C3D to the framework are present in Kitware-README in R-C3D.

Actev Commands

system-setup

Runs src/implementation/setup.sh to install ffmpeg, docker, nvidia-drivers and nvidia-docker on a server. It pulls framework-cli:multi-gpu container.

design-chunks

Calls design_chunk in src/implementation/design_chunk.py to create chunk.json and store it in a location specified by output in the entrypoint.

experiment-init

Runs src/implementation/init_experiment.sh to run the docker container. It mounts video_location and system_cache_directory on the docker container at /data/diva/frames and /data/diva/system-cache respectively. Additionally it copies the file-index.json, activity-index.json and chunk.json to /diva/nist-json in the container.

pre-process-chunk

Runs src/implementation/pre_process_chunk.sh to generate a configuration file for diva_experiment_process for every video in a chunk. The configuration files are generated using generate_experiment.py provided by diva-framework. The configuration file provides the location for video along with the algorithm that would be used to read the video. RC3D uses ffmpeg based implementation of video_input provided by kwiver to read the videos.

process-chunk

Runs src/implementation/process_chunk.sh to execute cli-helpers/chunk_runner.py in the container. The chunk runner iterates through the videos in a chunk and runs rc3d pipeline on each video in the chunk. For every video, the pipeline uses the configuration file produced in the previous step along with activity-index.json to run R-C3D. The output is saved in the system_cache_directory as a NIST compliant json file for post processing.

Note: The json files produced in this stage contains activities associated with a single video.

post-process-chunk

Runs src/implementation/post_process_chunk.sh to merge json files generated for individual videos. The resulting json file is saved in system_cache_directory with the name chunk-.json. The new json file represents the activities present in a chunk. The file is generated using merge-videos provided by diva-framework.

Note: The json files produced in this stage contains activities associated with a single chunk.

merge-chunks

Calls merge_chunks in src/implementation/merge_chunks.py merges the chunk based json to create a single json file.

reset-experiment

Runs src/implementation/reset_experiment.sh to remove all intermediate chunk-.json files.