Design and Performance Evaluation of a Software Platform for Video Analysis Service
Kalliomäki, Timo (2018)
Kalliomäki, Timo
2018
Tietotekniikka
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2018-03-07
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201802231314
https://urn.fi/URN:NBN:fi:tty-201802231314
Tiivistelmä
Video analysis is the programmatic observation of features in a video stream. This thesis designs a software platform which acts as a host for multiple video analyzer applications. The objectives are to allow effortless integration of analyzers such that dependencies between algorithms can be satisfied automatically, provide the analysis functionality over the internet as a service which can act as the engine for client applications, and do this integration in a manner which does not form a bottleneck for the analysis process. The research question is how to build a platform for integrating the analyzers in a way that makes integration easy and achieves good performance.
The thesis consists of gathering requirements for the system, a review of related literature, a description of the design and evaluation and discussion of the designed system from the viewpoints of functionality, performance and architecture. The specification devised for the system defines it at least initially as more of a service to be utilized by the backends of client applications than a scalable content delivery network -like system, and it is emphasized that integration of various heterogeneous analyzers must be easy. Previous literature describes video analysis systems also operating in the cloud, but only ones tailored for a specific purpose and involving only a single analyzer. To make integrating new analyzers easy, the system designed here features the main ideas of allowing analyzers to run in Docker containers and register themselves with the platform at runtime with the platform determining analysis execution order based on information declared at registration-time. For performance, memory is shared between the platform and analyzers to avoid redundant operations.
The platform provides good enough performance, not forming a bottleneck to the operation of the tested analyzer despite a loose approach to coupling, but tests with multiple analyzers operating concurrently would be needed to form a full understanding of the performance. The automatic resolution of dependencies based on requirements declared by analyzers is a novel way of allowing easy integration, and would likely be of use even in versions of the system developed vastly further. The REST API of the produced system is sufficient to facilitate the development of client applications. The stated goals are met, but actual implementation of client applications utilizing the platform would allow better assessment of the fitness of provided functionality. Tests of performance with more analyzers are needed, and if it proves to be lacking, there may be cause for replacing parts of the platform with ones utilizing computing resources more efficiently, or even designing a more tightly coupled analysis architecture operating as a single process. Videoanalyysi on kuvavirrassa esiintyvien kohteiden ohjelmallista havainnointia. Tässä diplomityössä suunnitellaan ohjelmisto toimimaan alustana useille videoanalyysisovelluksille. Tavoitteina ovat analyysisovellusten vaivaton integrointi siten, että algoritmien väliset riippuvuudet voidaan tyydyttää automaattisesti, analyysin tarjoaminen verkon yli palveluna joka voi toimia asiakassovellusten kehitystasoisena taustajärjestelmänä, ja integroinnin toteutus tavalla joka ei rajoita analyysiprosessin suoritusnopeutta. Tutkimuskysymys on, kuinka rakentaa alusta analysoijille tavalla, joka tekee integroinnista helppoa ja saavuttaa hyvän suorituskyvyn.
Työ koostuu järjestelmän vaatimusten keräämisestä, katsauksesta aiheeseen liittyvään kirjallisuuteen, suunnitellun järjestelmän kuvauksesta ja sen arvioinnista toiminnallisuuden, suorituskyvyn ja arkkitehtuurin näkökulmista. Järjestelmälle laadittu määrittely asemoi sen ainakin aluksi ennemmin asiakassovellusten taustajärjestelmien hyödynnettäväksi kuin skaalautuvaksi sisällönjakeluverkon kaltaiseksi järjestelmäksi, ja eri heterogeenisten analysoijien integroinnin helppouden vaatimusta korostetaan. Aiempi kirjallisuus kuvaa myös pilvessä toimivia videoanalyysijärjestelmiä, mutta vain tiettyyn tarkoitukseen räätälöityjä yhtä analysoijaa hyödyntäviä. Jotta uusien analysoijien integrointi olisi helppoa, suunniteltava järjestelmä perustuu analysoijien ajoon Docker-konteissa ja itserekisteröitymiseen alustaan ajonaikaisesti alustan määrittäessä analyysisuoritusjärjestyksen rekisteröityessä annettuun tietoon perustuen. Suorituskyvyn vuoksi jaetaan muistia alustan ja analysoijien välillä, jotta päällekkäiset toiminnot vältettäisiin.
Alusta tarjoaa tarpeeksi hyvän suorituskyvyn, eikä löyhästä kytkennästä huolimatta muodosta pullonkaulaa testatun analysoijan toimintaan, mutta täyden suorituskykykäsityksen saavuttamiseksi tarvittaisiin testejä useilla yhtäaikaisesti toimivilla analysoijilla. Algoritmien määrittämiin vaatimuksiin perustuva automaattinen riippuvuuksien selvitys on aiemmin käyttämätön tapa mahdollistaa helppo integrointi, ja olisi todennäköisesti hyödyllinen myös pitemmälle jatkokehitetyissä järjestelmän versioissa. Tuotetun järjestelmän REST-ohjelmointirajapinta on riittävä sallimaan asiakassovellusten kehitys. Määritellyt tavoitteet saavutettiin, mutta todellisten alustaa hyödyntävien asiakassovellusten toteutus sallisi paremman tarjotun toiminnallisuuden soveltuvuuden arvioinnin. Suorituskyvyn testaus useammilla analysoijilla on tarpeen, ja jos se osoittautuu puutteelliseksi, voi olla tarpeellista korvata järjestelmän osia suoritusresursseja tehokkaammin hyödyntävillä, tai jopa suunnitella tiukemmin kytketty yhtenä prosessina toimiva analyysiarkkitehtuuri.
The thesis consists of gathering requirements for the system, a review of related literature, a description of the design and evaluation and discussion of the designed system from the viewpoints of functionality, performance and architecture. The specification devised for the system defines it at least initially as more of a service to be utilized by the backends of client applications than a scalable content delivery network -like system, and it is emphasized that integration of various heterogeneous analyzers must be easy. Previous literature describes video analysis systems also operating in the cloud, but only ones tailored for a specific purpose and involving only a single analyzer. To make integrating new analyzers easy, the system designed here features the main ideas of allowing analyzers to run in Docker containers and register themselves with the platform at runtime with the platform determining analysis execution order based on information declared at registration-time. For performance, memory is shared between the platform and analyzers to avoid redundant operations.
The platform provides good enough performance, not forming a bottleneck to the operation of the tested analyzer despite a loose approach to coupling, but tests with multiple analyzers operating concurrently would be needed to form a full understanding of the performance. The automatic resolution of dependencies based on requirements declared by analyzers is a novel way of allowing easy integration, and would likely be of use even in versions of the system developed vastly further. The REST API of the produced system is sufficient to facilitate the development of client applications. The stated goals are met, but actual implementation of client applications utilizing the platform would allow better assessment of the fitness of provided functionality. Tests of performance with more analyzers are needed, and if it proves to be lacking, there may be cause for replacing parts of the platform with ones utilizing computing resources more efficiently, or even designing a more tightly coupled analysis architecture operating as a single process.
Työ koostuu järjestelmän vaatimusten keräämisestä, katsauksesta aiheeseen liittyvään kirjallisuuteen, suunnitellun järjestelmän kuvauksesta ja sen arvioinnista toiminnallisuuden, suorituskyvyn ja arkkitehtuurin näkökulmista. Järjestelmälle laadittu määrittely asemoi sen ainakin aluksi ennemmin asiakassovellusten taustajärjestelmien hyödynnettäväksi kuin skaalautuvaksi sisällönjakeluverkon kaltaiseksi järjestelmäksi, ja eri heterogeenisten analysoijien integroinnin helppouden vaatimusta korostetaan. Aiempi kirjallisuus kuvaa myös pilvessä toimivia videoanalyysijärjestelmiä, mutta vain tiettyyn tarkoitukseen räätälöityjä yhtä analysoijaa hyödyntäviä. Jotta uusien analysoijien integrointi olisi helppoa, suunniteltava järjestelmä perustuu analysoijien ajoon Docker-konteissa ja itserekisteröitymiseen alustaan ajonaikaisesti alustan määrittäessä analyysisuoritusjärjestyksen rekisteröityessä annettuun tietoon perustuen. Suorituskyvyn vuoksi jaetaan muistia alustan ja analysoijien välillä, jotta päällekkäiset toiminnot vältettäisiin.
Alusta tarjoaa tarpeeksi hyvän suorituskyvyn, eikä löyhästä kytkennästä huolimatta muodosta pullonkaulaa testatun analysoijan toimintaan, mutta täyden suorituskykykäsityksen saavuttamiseksi tarvittaisiin testejä useilla yhtäaikaisesti toimivilla analysoijilla. Algoritmien määrittämiin vaatimuksiin perustuva automaattinen riippuvuuksien selvitys on aiemmin käyttämätön tapa mahdollistaa helppo integrointi, ja olisi todennäköisesti hyödyllinen myös pitemmälle jatkokehitetyissä järjestelmän versioissa. Tuotetun järjestelmän REST-ohjelmointirajapinta on riittävä sallimaan asiakassovellusten kehitys. Määritellyt tavoitteet saavutettiin, mutta todellisten alustaa hyödyntävien asiakassovellusten toteutus sallisi paremman tarjotun toiminnallisuuden soveltuvuuden arvioinnin. Suorituskyvyn testaus useammilla analysoijilla on tarpeen, ja jos se osoittautuu puutteelliseksi, voi olla tarpeellista korvata järjestelmän osia suoritusresursseja tehokkaammin hyödyntävillä, tai jopa suunnitella tiukemmin kytketty yhtenä prosessina toimiva analyysiarkkitehtuuri.