Giter Club home page Giter Club logo

alfnet's Introduction

Learning Efficient Single-stage Pedestrian Detectors by Asymptotic Localization Fitting

Keras implementation of ALFNet accepted in ECCV 2018.

Introduction

This paper is a step forward pedestrian detection for both speed and accuracy. Specifically, a structurally simple but effective module called Asymptotic Localization Fitting (ALF) is proposed, which stacks a series of predictors to directly evolve the default anchor boxes step by step into improving detection results. As a result, during training the latter predictors enjoy more and better-quality positive samples, meanwhile harder negatives could be mined with increasing IoU thresholds. On top of this, an efficient single-stage pedestrian detection architecture (denoted as ALFNet) is designed, achieving state-of-the-art performance on CityPersons and Caltech. For more details, please refer to our paper.

img01

Dependencies

  • Python 2.7
  • Numpy
  • Tensorflow 1.x
  • Keras 2.0.6
  • OpenCV

Contents

  1. Installation
  2. Preparation
  3. Models
  4. Training
  5. Test
  6. Evaluation

Installation

  1. Get the code. We will call the cloned directory as '$ALFNet'.
  git clone https://github.com/liuwei16/ALFNet.git
  1. Install the requirments.
  pip install -r requirements.txt

Preparation

  1. Download the dataset. We trained and tested our model on the recent CityPersons pedestrian detection dataset, you should firstly download the datasets. By default, we assume the dataset is stored in '$ALFNet/data/cityperson/'.

  2. Dataset preparation. We have provided the cache files of training and validation subsets. Optionally, you can also follow the ./generate_data.py to create the cache files for training and validation. By default, we assume the cache files is stored in '$ALFNet/data/cache/cityperson/'.

  3. Download the initialized models. We use the backbone ResNet-50 and MobileNet_v1 in our experiments. By default, we assume the weight files is stored in '$ALFNet/data/models/'.

Models

We have provided the models that are trained on the training subset with different ALF steps and backbone architectures. To help reproduce the results in our paper,

  1. For ResNet-50:

ALFNet-1s: city_res50_1step.hdf5

ALFNet-2s: city_res50_2step.hdf5

ALFNet-3s: city_res50_3step.hdf5

  1. For MobileNet:

MobNet-1s: city_mobnet_1step.hdf5

MobNet-2s: city_mobnet_2step.hdf5

Training

Optionally, you should set the training parameters in ./keras_alfnet/config.py.

  1. Train with different backbone networks.

Follow the ./train.py to start training. You can modify the parameter 'self.network' in ./keras_alfnet/config.py for different backbone networks. By default, the output weight files will be saved in '$ALFNet/output/valmodels/(network)/'.

  1. Train with different ALF steps.

Follow the ./train.py to start training. You can modify the parameter 'self.steps' in ./keras_alfnet/config.py for different ALF steps. By default, the output weight files will be saved in '$ALFNet/output/valmodels/(network)/(num of)steps'.

Test

Follow the ./test.py to get the detection results. By default, the output .txt files will be saved in '$ALFNet/output/valresults/(network)/(num of)steps'.

Evaluation

  1. Follow the ./evaluation/dt_txt2json.m to convert the '.txt' files to '.json'.
  2. Follow the ./evaluation/eval_script/eval_demo.py to get the Miss Rate (MR) results of models. By default, the models are evaluated based on the Reasonable settting. Optionally, you can modify the parameters in ./evaluation/eval_script/eval_MR_multisetup.py to evaluate the models in different settings, such as different occlusion levels and IoU thresholds.

Citation

If you think our work is useful in your research, please consider citing:

@inproceedings{liu2018learning,
  title={Learning Efficient Single-stage Pedestrian Detectors by Asymptotic Localization Fitting},
  author={Wei Liu, Shengcai Liao, Weidong Hu, Xuezhi Liang, Xiao Chen},
  booktitle={European Conference on Computer Vision (ECCV)},
  year={2018}
}

alfnet's People

Contributors

liuwei16 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.