All Projects → alokwhitewolf → MultiObjectTracker

alokwhitewolf / MultiObjectTracker

Licence: other
Advanced multiple object tracker using dlib and OpenCV.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to MultiObjectTracker

realtime-bus-sms
Text back current arrival time for buses given a texted in bus stop number for People Mover. AddressLookup branch would allow texting "Arctic and Fireweed"
Stars: ✭ 15 (-73.21%)
Mutual labels:  transportation
Regression
Multiple Regression Package for PHP
Stars: ✭ 88 (+57.14%)
Mutual labels:  multiple
ofxDlib
An openFrameworks wrapper for dlib. http://dlib.net/
Stars: ✭ 52 (-7.14%)
Mutual labels:  dlib
Fatigue-Detection
Eye state classification using OpenCV and DLib to estimate Percentage Eye Closure (PERCLOS) and alert a drowsy person (such as a driver).
Stars: ✭ 46 (-17.86%)
Mutual labels:  dlib
AR-Sandbox-for-Construction-Planning
An interactive augmented reality sandbox designed to help illustrate civil engineering concepts
Stars: ✭ 14 (-75%)
Mutual labels:  civil-engineering
cpp-code-snippets
Some useful C++ code snippets
Stars: ✭ 35 (-37.5%)
Mutual labels:  dlib
torchtrajectory
The World's First Search Engine for Trajectory Data
Stars: ✭ 28 (-50%)
Mutual labels:  transportation
dlib
Dynamic loading library for C/C++
Stars: ✭ 19 (-66.07%)
Mutual labels:  dlib
WPWatcher
Wordpress Watcher is a wrapper for WPScan that manages scans on multiple sites and reports by email and/or syslog. Schedule scans and get notified when vulnerabilities, outdated plugins and other risks are found.
Stars: ✭ 34 (-39.29%)
Mutual labels:  multiple
LSTM-Mobility-Model
LSTM Mobility Model implementation using Tensorflow
Stars: ✭ 19 (-66.07%)
Mutual labels:  transportation
transam core
Core Rails engine for the TransAM open source software platform for managing transportation assets.
Stars: ✭ 13 (-76.79%)
Mutual labels:  transportation
morton-nd
A header-only compile-time Morton encoding / decoding library for N dimensions.
Stars: ✭ 78 (+39.29%)
Mutual labels:  multiple
multiple-windows
This project is a chrome extension. It provide to create windows to different sizes and multiple for front-end developers.
Stars: ✭ 16 (-71.43%)
Mutual labels:  multiple
fluidAR
augmented reality boilerplate app for iOS (powered by OpenCV and DLIB)
Stars: ✭ 16 (-71.43%)
Mutual labels:  dlib
DTA
This repository documents MATLAB implementation of a dynamic user equilibrium solver, including a dynamic network loading sub-routine
Stars: ✭ 55 (-1.79%)
Mutual labels:  transportation
react-layer-stack
Layering system for React. Useful for popover/modals/tooltip/dnd application
Stars: ✭ 158 (+182.14%)
Mutual labels:  transportation
gtfs-osm-sync
Synchronizes public transportation data in GTFS format with OpenStreetMap.org
Stars: ✭ 85 (+51.79%)
Mutual labels:  transportation
analysis-backend
Server component of Conveyal Analysis
Stars: ✭ 22 (-60.71%)
Mutual labels:  transportation
Face-Recognition-Attendance-System
A simple python script that recognises faces and mark attendance for the recognised faces in an excel sheet.
Stars: ✭ 57 (+1.79%)
Mutual labels:  dlib
otv2-platform
An overview of the entire Open Traffic v2 platform and its components
Stars: ✭ 89 (+58.93%)
Mutual labels:  transportation

Multi ObjectTracker

Advanced multiple object tracker using dlib and openCV library.

Image

This is my summer(2017) project under Prof P. Vedagiri of Civil department(IIT Bombay) at the end of my 2nd semester. This pertains to automating the detection of pedestrian-vehicle conflicts by using image processing. The objective was to find out Post Encroachment Time (PET) values semi-autonomously.

This program has two modes. The normal mode can track multiple instances of user specified objects of 2 categories as they move across the frames. The analysis mode consists a suite of data analysis of the object trajectories obtained for the transportation department purposes.

Dependencies

Starting the code

Normal mode

To run the code using a video file use the following command line arguement --

python main.py -v <path-2-video-file>

For example, you can use the demo video provided with this code as --

python main.py -v docs/video/traffic2

Once the code starts, it will play video file. To select the objects to be tracked, pause the video by pressing the p key. It will first ask you to to create a bounding box around the object(s) to be tracked in a newly created window. Press the mouse to select the top-left pixel location of the object to be tracked and then release the mouse on the bottom-right location of the object to be tracked. You can select multiple instaces of a type of object

Image

Also, if you want to discard the last selected object, press the d key. Press s key to save the category of objects and initiate the tracker.Each object is assigned an index, which will be useful in deleting instances of the trackers. press r key anytime to resume tracking without saving the currently selected objects.

This process is done twice to track objects of 2 categories. You may fill objects of one category only if you choose so. You can always pause and add objects later

Whenever the video is playing, you can press d key to delete instances of the object you do not want. Further instruction will appear on the terminal window

You can always pause and resume the tracking. It won't lead to any loss of tracker objects.

Press q anytime to gracefully quit the code

Analysis mode

Additional flag -l is needed for calculating PET and using the analysis mode.

If the -l flag is not provided, main.py simply acts as multiple object tracker.

The -l is followed by the length of the video to be played in seconds. This is important for finding out PET values, as we need the frame processing rate. The runtime of the video is essential.

-l <run time length of the video in seconds>

In the first frame, it asks you to draw two reference lines in the image. This reference lines are the lines in real world whose separation distance, you know earlier from field observation. These reference lines will be used in calculating avg velocity of the vehicles for analysis purpose

Image

Set the distance between two reference lines(in metres) with the flad -d. The distance is set as 100 in default.

-d <distance between to reference lines

What follows next is the same procedure for adding objects to track as in normal mode. It forst asks you for adding pedestrians and then vehicles. Trajectory of each object is tracked and stored. The algorithm in algo.py and intersect.py help in detecting whenever a vehicle lands at a point where the pedestrian was present erstwhile. If -l flag is provided then PET values calculated are stored in an excel file.

Image

A sample commandline instruction for the provided sample video, whose runtime is around 134 seconds, in analysis mode could b -

python main.py -v docs/video/traffic2 -l 134 -d 100

After the video playback is over, or if you quit the program inbetween, it does analysis of the trajectories and displays the following -

  • Points in the video where path conflict took place -

Image

  • Trajectory of the vehicles and pedestrians we have tracked -

Image

  • Saves an excel sheet whose column headers are PET values, Sex of the pedestrian, Speed of the vehicle, Time in the video at which the said conflict took place and the coordinate in the video where it took place

    Image important to note that speed of the vehicle gets stores only of it crosses both the reference lines

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].