Git Product home page Git Product logo

mxnet-centernet's Introduction

mxnet-centernet

MXNet port of CenterNet (https://github.com/xingyizhou/CenterNet)

Objects as Points, Xingyi Zhou, Dequan Wang, Philipp Krähenbühl, arXiv technical report (arXiv 1904.07850)

Abstract

Detection identifies objects as axis-aligned boxes in an image. Most successful object detectors enumerate a nearly exhaustive list of potential object locations and classify each. This is wasteful, inefficient, and requires additional post-processing. In this paper, we take a different approach. We model an object as a single point -- the center point of its bounding box. Our detector uses keypoint estimation to find center points and regresses to all other object properties, such as size, 3D location, orientation, and even pose. Our center point based approach, CenterNet, is end-to-end differentiable, simpler, faster, and more accurate than corresponding bounding box based detectors. CenterNet achieves the best speed-accuracy trade-off on the MS COCO dataset, with 28.1% AP at 142 FPS, 37.4% AP at 52 FPS, and 45.1% AP with multi-scale testing at 1.4 FPS. We use the same approach to estimate 3D bounding box in the KITTI benchmark and human pose on the COCO keypoint dataset. Our method performs competitively with sophisticated multi-stage methods and runs in real-time.

Overview

CenterNet is a generic network design that works for various regression tasks. The offical code solves the problems of: (1) 2D object detection, (2) 3D object detection and (3) multi-person pose estimation.

Objects are represented as points, which spatially locate these objects. Other attributes related to the objects are regressed accordingly. CenterNet is simpler in concept than previous single-shot object detectors:

  • No NMS
  • No anchor boxes (or can be considered one positive "anchor" per object, as the author put it)
  • One feature map for multiple scales

What's done

  • Implementation of these networks: (1) Hourglass, (2) Resnet18-dcn
  • 2D object detection task
    • Training and validation on COCO dataset
    • Demo of the 2D object detection task
  • 3D object detection task
    • Training and validation on KITTI dataset
  • 2D multi-person pose estimation task
    • Training and validation on COCO keypoints dataset

TODO

  • Refactoring
  • Gluon symbolic graph mode for faster training&testing
  • Achieve performance on par with the original paper
  • C++ inference

Example commands

(1) 2D Object Detection (2DOD)

  • Demo 2D object detection on an image folder:

    python demo.py --arch res_18 --load_model CenterNet_res_18_0136.params --gpus 0 --demo images/
  • Train and Validate CenterNet with hourglass network for 2D object detection:

    python train.py --gpu 0,1,2,3 --batch_size 24 --arch hourglass --num_workers 8 --lr 1e-4
  • Finetune CenterNet with resnet18-dcn network for 2D object detection:

    python train.py --gpu 0,1,2,3 --batch_size 100 --arch res_18 --num_workers 16 --lr 5e-4 \
    --flag_finetune --pretrained_path CenterNet_res_18_0060.params

(2) 3D Object Detection (3DOD)

  • Train CenterNet with hourglass network for 3D object detection:

    python train_3dod.py --gpu 0,1,2,3 --batch_size 24 --arch hourglass --num_workers 8 --lr 1e-4 --task ddd
  • Train CenterNet with resnet18-dcn network for 3D object detection:

    python train_3dod.py --gpu 0,1,2,3 --batch_size 100 --arch res_18 --num_workers 16 --lr 5e-4 --task ddd
  • Validate on KITTI validation set

    ./tools/kitti_eval/evaluate_object_3d_offline.out data/kitti/training/label_2/ output/results/

(3) 2D Multi-Person Human Pose

  • Train and Validate CenterNet with hourglass network for 2D multi-person pose estimation:

    python train_2dpose.py --gpu 0,1,2,3 --batch_size 24 --arch hourglass --num_workers 8 --lr 1e-4 --task multi_pose
  • Train and Validate CenterNet with resnet18-dcn network for 2D multi-person pose estimation:

    python train_2dpose.py --gpu 0,1,2,3 --batch_size 100 --arch res_18 --num_workers 16 --lr 5e-4 --task multi_pose

Official Implementation by Xingyi Zhou

Other Ports

mxnet-centernet's People

Contributors

guanghan avatar

Watchers

James Cloos 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.