ktzsh / object-tracking

Multiple Object Tracking System in Keras + (Detection Network - YOLO)
94 stars 36 forks source link
darknet detection faster-rcnn keras lstm lstm-neural-networks multiple-object-tracking neural-network object-tracking rcnn single-object-tracking tensorflow yolo yolov2 yolov3

Object Tracking

  1. Simultaneous Multiple Object Detection and Tracking System in Keras (Detection network based on YOLOv2 - reimplemented in keras)
  2. Single Object Tracking with FasterRCNN and YOLOv2/v3 as detection backends

Trackers Available:

  1. TinyTracker (Static Detection Priors from FasterRCNN or Yolov2/v3)[Single Object]:
  2. TinyHeatmapTracker (Static Detection Priors from FasterRCNN or Yolov2/v3)[Single Object]:
  3. MultiObjDetTracker (Trainable Detection Priors from Yolov2 reimplmented in Keras)[Multiple Objects]:

NOTE: Yolov2 reimplementation in Keras as standalone detector also available

Dependencies

  1. Tensorflow
  2. Keras
  3. OpenCV
  4. easydict (for py-faster-rcnn)
  5. cython (for py-faster-rcnn)
  6. imgaug

Instllation

  1. Run git clone --recursive https://github.com/kshitiz38/object-tracking.git

    • NOTE: If you didn't clone with the --recursive flag run manually the following code git submodule update --init --recursive
  2. Darknet

  3. Faster RCNN

Usage

  1. For Single Object Tracking
    1. Modify Parameters in config.jon
    2. Convert Datasets to PASCAL VOC format if not already
      • Run python utility/tb_to_pascal.py' or 'python utility/tb_to_pascal.py or write one for your own dataset
    3. Run python trainer.py
  2. For Simultaneous Multiple Object Detection and Tracking
    1. Modify Parameters in KerasYOLO.py and MultiObjDetTracker.py
    2. Convert Datasets like above specify paths in MultiObjDetTracker.py already done for ImageNet Vid and MOT17
    3. Run python trainer.py

NOTE :

Model Architectures

TODOs

References

  1. https://github.com/Guanghan/ROLO
  2. https://github.com/experiencor/keras-yolo2