Giter Club home page Giter Club logo

multitarget-tracker's Introduction

travis ci:

Multitarget-tracker

Hungarian algorithm + Kalman filter multitarget tracker implementation.

Demo Videos

  • MobileNet SSD and tracking for low resolution and low quality videos from car DVR:

Tracking:

  • Mouse tracking:

Tracking:

  • Motion Detection and tracking:

Motion Detection and tracking:

  • Multiple Faces tracking:

Multiple Faces tracking:

  • Simple Abandoned detector:

Simple Abandoned detector:

Parameters

  1. Background substraction: built-in Vibe, SuBSENSE and LOBSTER; MOG2 from opencv; MOG, GMG and CNT from opencv_contrib
  2. Foreground segmentation: contours
  3. Matching: Hungrian algorithm or algorithm based on weighted bipartite graphs
  4. Tracking: Linear or Unscented Kalman filter for objects center or for object coordinates and size
  5. Use or not local tracker (LK optical flow) for smooth trajectories
  6. KCF, MIL, MedianFlow, GOTURN or MOSSE tracking for lost objects and collision resolving
  7. Haar face detector from OpenCV
  8. HOG and C4 pedestrian detectors
  9. SSD detector from OpenCV and models from chuanqi305/MobileNet-SSD
  10. YOLO and Tiny YOLO detectors from https://pjreddie.com/darknet/yolo/
  11. Simple Abandoned detector

Build

  1. Download project sources
  2. Install CMake
  3. Install OpenCV (https://github.com/opencv/opencv) and OpenCV contrib (https://github.com/opencv/opencv_contrib) repositories
  4. Configure project CmakeLists.txt, set OpenCV_DIR. If opencv_contrib don't installed then set disable options USE_OCV_BGFG, USE_OCV_KCF and USE_OCV_UKF
  5. Go to the build directory and run make

Usage:

       Usage:
         ./MultitargetTracker <path to movie file> [--example]=<number of example 0..3> [--start_frame]=<start a video from this position> [--end_frame]=<play a video to this position> [--end_delay]=<delay in milliseconds after video ending> [--out]=<name of result video file> [--show_logs]=<show logs> [--gpu]=<use OpenCL>
         ./MultitargetTracker ../data/atrium.avi -e=1 -o=../data/atrium_motion.avi
       Press:
       * 'm' key for change mode: play|pause. When video is paused you can press any key for get next frame.
       * Press Esc to exit from video

       Params: 
       1. Movie file, for example ../data/atrium.avi
       2. [Optional] Number of example: 0 - MouseTracking, 1 - MotionDetector, 2 - FaceDetector, 3 - PedestrianDetector, 4 - MobileNet SSD detector, 5 - YOLO detector
          -e=0 or --example=1
       3. [Optional] Frame number to start a video from this position
          -sf=0 or --start_frame==1500
       4. [Optional] Play a video to this position (if 0 then played to the end of file)
          -ef=0 or --end_frame==200
       5. [Optional] Delay in milliseconds after video ending
          -ed=0 or --end_delay=1000
       6. [Optional] Name of result video file
          -o=out.avi or --out=result.mp4
       7. [Optional] Show Trackers logs in terminal
          -sl=1 or --show_logs=0
       8. [Optional] Use built-in OpenCL
          -g=1 or --gpu=0

Thirdparty libraries

License

GNU GPLv3: http://www.gnu.org/licenses/gpl-3.0.txt

multitarget-tracker's People

Contributors

isra60 avatar nuzhny007 avatar smorodov avatar

Watchers

 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.