Giter VIP home page Giter VIP logo

trax's Introduction

Visual Tracking eXchange protocol

Download AppVeyor build status Documentation Status

What is TraX protocol?

Visual Tracking eXchange protocol is a simple protocol that enables easier evaluation of computer vision tracking algorithms. The basic idea is that a tracker communicates with the evaluation software using a set of text commands over the (standard) input/output streams or TCP sockets.

Reference server and client implementation

libtrax is a reference implementation of the Tracking eXchange protocol written in plain C. It enables researchers to quickly add support for the protocol in their C or C++ tracker (servers) as well as write new clients (evaluation, various tools).

Integration examples are provided in the trackers directory. A simple static tracker is available that explains the basic concept of the integration without too much tracker-specific details.

Other languages

C++

C library also comes with a C++ wrapper that provides easier interaction in C++ code by exposing object-oriented API and automatic memory handling via reference counting.

Matlab/Octave

It is technically not possible to have a Matlab-only implementation of TraX protocol on all platforms because of the way Matlab handles terminal input and output. Therefore, Matlab TraX implementation is available as a MEX function that links the C library. It is available in the matlab directory. In case of using Matlab on Windows, the only way to use TraX is to use TCP/IP sockets, which means that both the client and server have to explicitly enable this (see help of traxclient for more details).

Python

Besides being able to use C library directly from Python, there is also a pure Python implementation of the server available in the python directory. An example of a tracker is available in the trackers directory.

Support utilities

The repositoy also contains utilities that make ceratin frequent tasks easier:

  • Client library: a C++ library for writing client software, managing tracker process, also provides a CLI client executable.
  • OpenCV utilities: conversions between TraX library structures and OpenCV objects.

Documentation

Documentation for the protocol and libraries is available on ReadTheDocs.

Citing

If you are using TraX protocol in your research, please cite the following publication that describes the protocol and the library.

@article{cehovin2017trax,
    author = {{\v{C}}ehovin, Luka},
    doi = {http://dx.doi.org/10.1016/j.neucom.2017.02.036},
    issn = {0925-2312},
    journal = {Neurocomputing},
    title = {{TraX: The visual Tracking eXchange Protocol and Library}},
    year = {2017}
}

License

trax is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

trax is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with trax. If not, see http://www.gnu.org/licenses/.

trax's People

Contributors

lukacu avatar rokm avatar alanlukezic avatar cybertk avatar petititi avatar novotl22 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.