title: Object tracking in the cloud
Creators: name: Klan, Matthias
Publisher: name: :none
Year: 2017

description: Die in diesem Rahmen entwickelte Software befindet sich auf einer DVD, die bei den jeweiligen gebundenen Exemplaren beigelegt wird. In letzter Zeit verlagern sich Softwareanwendungen vom klassischen Desktop ins Web. Ein wesentlicher Vorteil von diesem Prozess ist die Möglichkeit berechnungsintensive Aufgaben an entkoppelte Hardware in der Cloud auszulagern. Solche Aufgaben können üblicherweise im Bereich von Computervision gefunden werden, welcher versucht das menschliche Sehsystem zu immitieren, um bestimmte Eigenschaften in visuellen Medien zu erkennen. Objecttracking ist ein Teilgebiet von Computervision, wo Algorithmen versuchen definierte Objekte in aufeinanderfolgenden Einzelbildern von Videos zu lokalisieren. Diese Funktionalität kann zum Beispiel in der Verkehrsbeobachtung oder der öffentlichen Überwachung benutzt werden. Es gibt zahlreiche Algorithmen, die dieses Problem versuchen zu lösen. Diese sind meistens vereinzelt veröffentlicht oder in Bibliotheken wie OpenCV integriert. Das Entwickeln von einer zusätzlichen Infrastruktur um diese Algorithmen in die Cloud zu bringen muss jedoch von dem Entwickler selbst geleistet werden. Bestehende Lösungen wie ‘Wirefax’ sind nicht flexibel genug und beschränken die Nutzung auf deren Ökosystem. Das Ziel dieser Arbeit ist es einen Webservice zu konzipieren und zu entwickeln, welcher Entwicklern beim Erstellen von cloudbasierten Objecttracking-Applikationen unterstützen soll. Im Zuge der Konzeption werden drei unterschiedliche Objecttracking-Algorithmen analysiert und evaluiert (Tracking-Learning-Detection, Consensus-based matching and tracking of key-points for object tracking and correlation tracker). Des Weiteren wird eine Zusammenstellung von Kommunikationsprotokollen in Betracht gezogen. Das resultierende Konzept ist eine Zerteilung der einzelnen Objecttracking-Algorithmen in unabhängige Microservices, die über das Advanced Message Queuing Protocol mit dem Webserver kommunizieren. Dieser Webserver kommuniziert wiederrum mithilfe von WebSockets mit den Clients vom Webservice, um die Anfragen und Ergebnisse zwischen diesen und den jeweiligen Algorithmen zu orchestrieren. Das Ergebnis ist ein Websevice, den man mithilfe von Containerisierung einfach auf einem beliebigen Webserver starten kann. Des Weiteren lassen sich Anfragen auf mehrere Instanzen von den besagten Algorithmen verteilen. Neue Algorithmen können im Nachhinein hinzugefügt werden und eine JavaScript Bibliothek erlaubt die mühelose Integration in browserbasierende Webapplikationen.
description: Recently, software applications are moving from the classic desktop to the web. A crucial advantage of this process is the possibility to outsource heavy computation tasks to decoupled hardware in the cloud. Such tasks can be commonly found in the computer vision domain, which tries to imitate the human vision system in order to recognize specific features in visual media. A specific computer vision task is the object tracking, where algorithms aim to locate an object of interest in consecutive frames of a video. This functionality can be used, for example, for traffic monitoring or surveillance. There are many algorithms addressing the problem of object tracking. They are mostly loosely published or integrated in libraries such as OpenCV. The coding of an extra Infrastructure to bring these algorithms into the cloud must be done by the developer himself. Existing solutions such as 'Wirewax' are not flexible enough and restrict the usage to their ecosystem. The aim of this thesis is to design and develop a web service to support developers in building cloud-based object tracking applications more efficiently. In the process of design, three different object tracking algorithms are analyzed and evaluated (Tracking-Learning-Detection, Consensus-based matching and tracking of key-points for object tracking and correlation tracker). Additionally, a suitable set of communication protocols is considered. The resulting concept is a division of the single object tracking algorithms into independent micro services, which are communicating via the Advanced Message Queuing Protocol with a web server. This web server in turn communicates using WebSockets with the clients of the web service in order to orchestrate the requests and the results between the client and the different algorithms. The outcome is a web service that can be easily spun up on a web server due to containerization of the software. Furthermore, the system is able to load balance requests between multiple instances of a given algorithm. New algorithms can be added later on and a JavaScript library enables a hassle-free integration into browser-based web applications.