Git Product home page Git Product logo

opentld's Introduction

Introduction

This is a C++ implementation of OpenTLD that was originally published in MATLAB by Zdenek Kalal. OpenTLD is used for tracking objects in video streams. What makes this algorithm outstanding is that it does not make use of any training data. This implementation is based solely on open source libraries, meaning that you do not need any commercial products to compile or run it.

The easiest way to get started is to download the precompiled binaries that are available for Windows and Ubuntu 10.04. You can get a .deb package here: http://dl.dropbox.com/u/8715460/tld.deb and a windows installer file here: http://dl.dropbox.com/u/8715460/tld.zip

If you have a webcam attached to your PC, you can simply execute tld (on Ubuntu) or tld.exe (on Windows) in order to try it out. For other configuration options, please see below.

Usage

Keyboard shortcuts

q...quit
b...remember current frame as background model / clear background
c...clear model and stop tracking
l...toggle learning
a...toggle alternating mode (if true, detector is switched off when tracker is available)
e...export model to file specified in configuration parameter "modelExportFile"
i...import model from file specified in configuration parameter "modelPath"
r...clear model, let user reinit tracking

command line options

usage
tld [option arguments] [arguments]

option arguments
[-a <startFrameNumber>] video starts at the frameNumber startFrameNumber
[-b <x,y,w,h>] Initial bounding box
[-d <device>] select input device: device=(IMGS|CAM|VID)
IMGS: capture from images CAM: capture from connected camera VID: capture from a video [-e <path>] export model after run to path
[-f] shows foreground
[-i <path>] path to the images or to the video. [-h] shows help
[-m <path>] if specified load a model from path. An initialBoundingBox must be specified or selectManually must be true.
[-n <number>] Specifies the video device to use (defaults to 0). Useful to select a different camera when multiple cameras are connected.
[-p path] prints results into the file path
[-s] if set, user can select initial bounding box
[-t <theta>] threshold for determining positive results
[-z <lastFrameNumber>] video ends at the frameNumber lastFrameNumber. If lastFrameNumber is 0 or the option argument isn't specified means all frames are taken.

arguments
[CONFIG_FILE] path to config file

Building

Dependencies

  • OpenCV & OpenCV highgui >= 2.0
  • CMake >= 2.6

Compiling

Use CMake to build the project. You can use "cmake-gui", if you need a graphical user interface.

  • CMake
    • Specify the source path (root path of the dictionary) and the binary path (where to build the program, out of source build recommended)
    • Configure
    • Select compiler
    • Define the install path and other options
    • Generate
  • Windows: go to the binary directory and build the solutions you want (You have to compile in RELEASE mode):
    • tld: build the project
    • INSTALL: install the project
  • Linux: go with the terminal to the build directory
    • make: build the project
  • Mac
    • brew install python
    • brew install gfortran
    • easy_install numpy
    • brew install cmake
    • brew install opencv
    • mkdir build
    • cd build
    • cmake ..
    • cd ..
    • make
    • ./tld

opentld's People

Contributors

tluthra avatar

Watchers

 avatar  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.