BMN: Boundary-Matching Network
A pytorch-version implementation codes of paper: "BMN: Boundary-Matching Network for Temporal Action Proposal Generation", which is accepted in ICCV 2019.
#NOTE:I AM NOT THE AUTHOR OF THE PAPER!!! SO PLEASE DO NOT ASK ME FOR DETAILS OF THE PAPER!!!
Prerequisites
These code is implemented in Pytorch 0.4.1 + Python3 .
Download Datasets
The author rescaled the feature length of all videos to same length 100, and he provided the rescaled feature at here .
Training and Testing of BMN
All configurations of BMN are saved in opts.py, where you can modify training and model parameter.
- For the first time to run the project, you should use this cmd to generate the BM mask matrix: This cmd only need to use once. when you get the BM_mask.npy, you can directly train the BMN.
python get_mask.py
- To train the BMN:
python main.py --module BMN --mode train
- To get the inference proposal of the validation videos:
python main.py --module BMN --mode inference
- To use the soft_nms to reduce the redundancy of the proposals:
python main.py --module Post_processing
- To evaluate the proposals with recall and AUC:
python main.py --module Evaluation
Of course, you can complete all the process above in one line:
sh bmn.sh
Reference
This implementation largely borrows from BSN by Tianwei Lin.
code:BSN
paper:BMN: Boundary-Matching Network for Temporal Action Proposal Generation