In the past few years computer vision has become a widely used technology. It is used in virtual reality based applications, computer vision supported safety systems, video referees (or referee supports), traffic counters, pedestrian surveillance systems, autono-mous robots, etc.
The accelerated development of commercial hardware made computer vision based solu-tions available for almost everyone. It became a part of our everyday life. It can be used for face and human body recognition, 3D reconstruction of observed objects, marker based object detection and tracking, etc. These tasks would be difficult to perform without computer vision, other technologies are not suitable for this kind of application. The main advantage is that there is no need for physical contact, the camera can be far away from the observed scene. Nowadays it is common to monitor physical systems with one or more cameras to gain information about the position of objects. Developers use this information in various ways, depending on the actual software they are working on.
Because of the variety of these physical systems and various environmental conditions computer vision based solutions are customized to the individual problems. Reuse of formerly developed components is only applicable if the new problem is very similar to the previous one. In order to use this technology, developers need specific knowledge about low and higher-level image processing algorithms to solve even an easy problem, such as tracking a simple object. The main difficulty is that to learn the usage of these algorithms and their parameterization can take a huge amount of time.
In my work I developed a configurable, open-source, cross-platform computer vision framework, that gives the opportunity for developers to integrate computer vision based object detection and tracking into their system without any specific background knowledge. This document goes through the planning process and implementation de-tails, then provides a getting started guide for the framework.
Obviously this framework will not re-invent computer vision. It is a tool, which provides an abstraction layer above low-level image processing, multi-threaded programming, network communication and camera management. It can work with a simple webcam, or also an advanced multi-camera system. With the configuration language the user can instantiate the required modules and adjust their specific parameters. Based on the con-figuration the framework tracks markers put on objects and provide their positions local-ly or over a network interface for further processing. Well defined interfaces and unified data structures are provided to make it easy to expand the framework by new module implementations.
The purpose of this work is not only a development of an abstraction layer. The main goal is to create a complex framework that has an easy-to-use widely applicable service with built-in marker tracking methods, and an environment which makes it possible to effectively develop new marker tracking solutions, without dealing with different oper-ating systems, camera handling and optimization.