/Pedestron

[Pedestron] Pedestrian Detection: The Elephant In The Room. On ArXiv 2020

Primary LanguagePythonApache License 2.0Apache-2.0

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

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

  1. CityPersons
  2. Caltech
  3. EuroCity Persons

Faster R-CNN

  1. CityPersons

RetinaNet

  1. CityPersons

Hybrid Task Cascade (HTC)

  1. CityPersons

Running a demo using pre-trained model on few images

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

  1. Download the pretrained CityPersons model and place it in the folder "models_pretrained/".
  2. 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 

Please cite the following work

ArXiv version

@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}
}