{{Infobox software |logo = Image:Swistracklogo.PNG |caption = |screenshot = |developer = Nikolaus Correll, Pierre Roduit, Thomas Lochmatter and others |latest_release_version = 4.0.0 |latest_release_date = {{Start date and age|2008|02}} |operating_system = Linux, Windows, Mac OS |genre = Video tracking |license = Adaptive Public License (Open Source) |website = {{URL|swistrack.sourceforge.net}} |programming language = C++ }}

'''SwisTrack''' is an open-source tool for tracking robots and other objects using a camera or a recorded video as input source. It has mainly been developed by Distributed Intelligent Systems and Algorithms Laboratory (DISAL) and the LPM Vision Group at EPFL in Lausanne, Switzerland.<ref name="lochmatter">{{cite book |chapter-url=https://infoscience.epfl.ch/record/125704 |title=2008 IEEE/RSJ International Conference on Intelligent Robots and Systems |first1=Thomas |last1=Lochmatter |first2=Pierre |last2=Roduit |first3=Chris |last3=Cianci |first4=Nikolaus |last4=Correll |first5=Jacques |last5=Jacot |first6=Alcherio |last6=Martinoli |chapter=SwisTrack - A Flexible Open Source Tracking Software for Multi-Agent Systems |date=2008 |pages=4004–4010 |doi=10.1109/IROS.2008.4650937 |isbn=978-1-4244-2057-5 |s2cid=2527599 |access-date=January 20, 2024}}</ref>

== Architecture ==

SwisTrack is written in C++ using the wxWidgets library for GUI and networking. It uses Intel's OpenCV library for fast image processing and contains interfaces for USB, FireWire and GigE cameras, as well as AVI files.<ref name="correll">{{cite book |chapter-url=https://infoscience.epfl.ch/record/85929 |title=2006 IEEE/RSJ International Conference on Intelligent Robots and Systems |first1=Nikolaus |last1=Correll |first2=Gregory |last2=Sempo |first3=Yuri Lopez |last3=De Meneses |first4=Jose |last4=Halloy |first5=Jean-Louis |last5=Deneubourg |first6=Alcherio |last6=Martinoli |chapter=SwisTrack: A Tracking Tool for Multi-Unit Robotic and Biological Systems |date=2006 |pages=2185–2191 |doi=10.1109/IROS.2006.282558|isbn=1-4244-0258-1 }}</ref>

Since version 4, SwisTrack's pipeline is built by the user from components which interact with each other and pass data through data channels. There are six data channels: input, grayscale image, color image, binary image, particles and tracks. Individual components work only with some of the data channels. Each data channel that the component works with can be in one of the three modes: read, write and edit (i.e. both read and write).<ref name="lochmatter"/>

In the typical pipeline, the image is transformed into a binary image, there objects are detected as blobs which are converted into particles, and the particles form tracks by comparing consecutive frames. Blob is a set of connected pixels with the same value.<ref name="lochmatter"/>

SwisTrack outputs data either by writing into a tab-separated file or by using the TCP interface with the NMEA 0183 protocol. The latter also allows the remote controlling.<ref name="lochmatter"/>

==See also== * List of robotics software

==References== {{reflist}}

==External links== {{wikibooks|SwisTrack}} * [http://en.wikibooks.org/wiki/Swistrack SwisTrack documentation] * [http://www.swarm-bots.org SwarmBots project] * [http://leurre.ulb.ac.be The European Project LEURRE] * [https://archive.today/20061118074305/http://quasimodo.versailles.inra.fr/fred/video/index.htm Tracking of corn borer larvae]

Category:Robotics software Category:Free software programmed in C++ Category:Software that uses wxWidgets Category:2008 software Category:2008 in robotics

{{free-software-stub}}