Pedestron
Pedestron is a MMetection based repository that focuses on the advancement of research on pedestrian detection. We provide processed annotations and scripts to process the annotation of different pedestrian detection benchmarks.
Updates
- [NEW] Added configurations and pre-trained model for Hybrid Task Cascade (HTC)
- [NEW] Added backbone MobileNet along with its benchmarking
- [NEW] Evaluation code for the Caltech dataset, added to the repository
YouTube
- YouTube link for qualitative results on Caltech. Pre-Trained model available.
Installation
We refer to the installation and list of dependencies to installation file. Clone this repo and follow installation.
List of detectors
Currently we provide configurations for with different backbones
- Cascade Mask-R-CNN
- Faster R-CNN
- RetinaNet
- Hybrid Task Cascade (HTC)
Following datasets are currently supported
Datasets Preparation
- We refer to Datasets preparation file for detailed instructions
Benchmarking of Pre-Trained models
Detector | Dataset | Backbone | Reasonable | Heavy |
---|---|---|---|---|
Cascade Mask R-CNN | CityPersons | HRNet | 7.5 | 28.0 |
Cascade Mask R-CNN | CityPersons | MobileNet | 10.2 | 37.3 |
Faster R-CNN | CityPersons | HRNet | 10.2 | 36.2 |
RetinaNet | CityPersons | ResNeXt | 14.6 | 39.5 |
Hybrid Task Cascade (HTC) | CityPersons | ResNeXt | 9.5 | 35.8 |
Cascade Mask R-CNN | Caltech | HRNet | 1.7 | 25.7 |
Cascade Mask R-CNN | EuroCity Persons | HRNet | 4.4 | 21.3 |
Pre-Trained models
Cascade Mask R-CNN
Faster R-CNN
RetinaNet
Hybrid Task Cascade (HTC)
Running a demo using pre-trained model on few images
- Pre-trained model can be evaluated on sample images in the following way
python tools/demo.py config checkpoint input_dir output_dir
Download one of our provided pre-trained model and place it in models_pretrained folder. Demo can be run using the following command
python tools/demo.py configs/elephant/cityperson/cascade_hrnet.py ./models_pretrained/epoch_5.pth.stu demo/ result_demo/
Training
Train with single GPU
python tools/train.py ${CONFIG_FILE}
Train with multiple GPUs
./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments]
For instance training on CityPersons using single GPU
python tools/train.py configs/elephant/cityperson/cascade_hrnet.py
Training on CityPersons using multiple(7 in this case) GPUs
./tools/dist_train.sh configs/elephant/cityperson/cascade_hrnet.py 7
Testing
Test can be run using the following command.
python ./tools/TEST_SCRIPT_TO_RUN.py PATH_TO_CONFIG_FILE ./models_pretrained/epoch_ start end\
--out Output_filename --mean_teacher
For example for CityPersons inference can be done the following way
- Download the pretrained CityPersons model and place it in the folder "models_pretrained/".
- Run the following command:
python ./tools/test_city_person.py configs/elephant/cityperson/cascade_hrnet.py ./models_pretrained/epoch_ 5 6\
--out result_citypersons.json --mean_teacher
- Similarly change respective paths for EuroCity Persons
- For Caltech refer to Datasets preparation file
Please cite the following work
@article{hasan2020pedestrian,
title={Pedestrian Detection: The Elephant In The Room},
author={Hasan, Irtiza and Liao, Shengcai and Li, Jinpeng and Akram, Saad Ullah and Shao, Ling},
journal={arXiv preprint arXiv:2003.08799},
year={2020}
}