CMT (Consensus-based Matching and Tracking of Keypoints for Object Tracking) is a novel keypoint-based method for long-term model-free object tracking in a combined matching-and-tracking framework. Details can be found on the project page and in our publication. The Python implementation in this repository is platform-independent and runs on Linux, Windows and OS X.
#License CMT is freely available under the 3-clause BSD license, meaning that you can basically do with the code whatever you want. If you use our algorithm in scientific work, please cite our publication
@inproceedings{Nebehay2014WACV,
author = {Nebehay, Georg and Pflugfelder, Roman},
booktitle = {Winter Conference on Applications of Computer Vision},
month = mar,
publisher = {IEEE},
title = {Consensus-based Matching and Tracking of Keypoints for Object Tracking},
year = {2014}
}
- Python
- OpenCV-Python (>= 2.4)
- NumPy
- SciPy
- optional: ipdb (for debugging the code)
Note for Windows users: if you are unable to read video files, please follow this suggestion: http://stackoverflow.com/questions/11699298/opencv-2-4-videocapture-not-working-on-windows
usage: run.py [-h] [--challenge] [--preview] [--no-preview] [--no-scale]
[--no-rotation] [--bbox BBOX] [--pause] [--output-dir OUTPUT]
[--quiet]
[inputpath]
inputpath
The input path.-h, --help
show help message and exit--challenge
Enter challenge mode.--preview
Force preview--no-preview
Disable preview--no-scale
Disable scale estimation--with-rotation
Enable rotation estimation--bbox BBOX
Specify initial bounding box. Format: x,y,w,h--pause
Pause after each frame--skip N
Skips N frames of the video input--output-dir OUTPUT
Specify a directory for output data.--quiet
Do not show graphical output (Useful in combination with --output-dir).
Press any key to stop the preview stream. Left click to select the top left bounding box corner and left click again to select the bottom right corner.
When using a webcam, no arguments are necessary:
python run.py
When using a video, the path to the file has to be given as an input parameter:
python run.py /home/cmt/test.avi
It is also possible to specify the initial bounding box on the command line.
python run.py --bbox=123,85,60,140 /home/cmt/test.avi
Use a sequence of numbered image files as an input:
python run.py sequence_dir/{:08d}.jpg
Here, {:08d} is a python format string that is expanded to 00000001.jpg, 00000002.jpg, etc.