Statistici rezultate din supravegherea video a unei intersectii [306074]

UNIVERSITATEA BUCUREȘTI

FACULTATEA DE MATEMATICǍ ȘI INFORMATICǍ

SPECIALIZAREA INFORMATICĂ

Lucrare de licență

Statistici rezultate din supravegherea video a unei intersecții

Coordonator științific Absolvent: [anonimizat]. dr. [anonimizat] 2017

[anonimizat] a [anonimizat], devine din ce în ce mai ineficientă și depășită în fața sistemelor inteligente de supraveghere. [anonimizat], [anonimizat], de modernizare a [anonimizat] ”smart-city” peste tot în lume.

[anonimizat], [anonimizat], [anonimizat] (pentru obținerea fundalului static și a obiectelor dinamice), [anonimizat]. [anonimizat], [anonimizat].

Sistemul ce urmează a fi descris încearcă să țină cont de acești factori pentru a oferi o [anonimizat] a atinge acest scop. Astfel, un prim pas spre atingerea obiectivului îl reprezintă diferențierea și „conștientizarea” [anonimizat] 2 metode prezentate în mod comparativ (Capitolul 2). Apoi, [anonimizat] (Capitolul 3) și clasificate (Capitolul 4). Urmărirea lor va fi efectuată doar pentru o [anonimizat] [7]. Clasificarea obiectelor este o [anonimizat], rezultate ce urmează a fi discutate în capitolul dedicat lor.

Scopul ultim al acestei lucrări este de a extrage informații relevante (Capitolul 5), cu o [anonimizat]-uri a căror scenă de interes o [anonimizat], dar aplicativitatea lor putând fi extinsă și la alte scenarii asemănătoare ([anonimizat]).

[anonimizat], becomes more and more inefficient and is even surpassed by some intelligent surveillence sistems. [anonimizat] a smart sistem through entire world.

Extracting statistics from a complex video is not a [anonimizat], factors that can make both background segmentation (for obtaining the background and the foreground from a video) and object classification harder. Also, [anonimizat]kgound objects may become foreground objects or maybe some foreground objects may become background objects.

The described sistem tries to keep tab on all the factors that can alter video statistics to obtain accuracy and precision, trying diffrent approches in doing that. So, a first step in achieving that goal, is represented by detection of the foreground objects from the monitored scene approches this problem from 2 diffrent points of view presented by comparing them in Chapter 2. After that, the detected objects must be tracked (Chapter 3) and classified (Chapter 4). Tracking the objects will be performed using a Kalman filter [7], only for an input area from the entire scene. Classifying objects being more complicated requires multiple approches that will be explained and commented in their dedicated chapter.

The ultimate goal of this paper is to extract relevant information (Chapter 5), with a big accuracy, from videos that features crossroads, based on the concepts mentioned above, making this sistem applicable not only for crossroads, but for public roads, pedestrian squares or places like those too.

Cuprins

Acronime …………………………………………………………………………………………………………………………. 7

Lista figurilor din lucrare ……………………………………………………………………………………………………. 9

Lista algoritmilor din lucrare ……………………………………………………………………………………………… 11

Introducerea ……………………………………………………………………………………………………………….. 13

Privire de ansamblu asupra sistemului ……………………………………………………………………. 14

Motivație …………………………………………………………………………………………………………… 15

Contribuție proprie ……………………………………………………………………………………………… 16

Segmentarea fundalului static de obiectele dinamice ……………………………………………………….. 17

Metoda diferențierii imaginii curente cu imaginea de fundal static …………………………….. 18

Metoda Modelului de Mixturi Gaussiene ………………………………………………………………… 22

Descrierea GMM ……………………………………………………………………………………. 23

Descrierea algoritmului folosit în sistemul de interes …………………………………… 25

Urmărirea obiectelor dinamice ……………………………………………………………………………………… 29

Diferențierea și localizarea obiectelor din imagine …………………………………………………… 29

Filtrul Kalman …………………………………………………………………………………………………….. 30

Asignarea fiecărui obiect unui drum ………………………………………………………………………. 32

Descrierea algoritmului de urmărire folosit în sistemul de interes ………………………………. 33

Clasificarea obiectelor ………………………………………………………………………………………………… 37

Abordări ce au la bază extragerea caracteristicilor cu rețeaua AlexNet ……………………….. 37

Antrenarea pe setul de date ImageNet ………………………………………………………… 41

Antrenarea pe imagini extrase din video-uri ……………………………………………….. 43

Discriminarea obiectelor pe baza considerentelor geometrice ……………………………………. 45

Discriminarea obiectelor dinamice în sistemul de interes ………………………………………….. 46

Obținerea și contorizarea statisticilor …………………………………………………………………………….. 47

Statistici obținute din detectarea fundalului static …………………………………………………….. 47

Statistici obținute din urmărirea obiectelor dinamice ………………………………………………… 49

Statistici obținute din clasificarea obiectelor dinamice ……………………………………………… 50

Concluzii …………………………………………………………………………………………………………………… 51

Acronime

RGB – model aditiv de culoare ce are la bază culorile roșu (red), verde (green) și albastru (blue)

SVM – mașini cu vector suport / support vector machine

MOG – mixturi de Gaussiene / Mixture of Gaussian

GMM – modelul de mixturi de Gaussiene / Gaussian Mixture Model

EM – maximizarea așteptării / Expectation Maximization

Blob – obiect binar mare / Binary Large Object

Km/h – kilometri pe oră

SVM – mașină cu vector suport / Support Vector Machine

CPU – Unitatea centrală de prelucrare / Central processing unit

GPU – Unitatea de prelucrarea grafică / Graphics processing unit

JPEG – metodă foarte des utilizată de compresie a imaginilor fotografice

Lista figurilor din lucrare

Figura 1.1 Arhitectura aplicației …………………………………………………………………………………………. 14

Figura 2.1 Structura unui video format din n imagini și explicitarea unui pixel ………………………… 17

Figura 2.2 Rezultatele obținute în urma aplicării algoritmului 2.1 …………………………………………… 19

Figura 2.3 Exemplificarea operatorilor morfologici ……………………………………………………………… 20

Figura 2.4 GMM cu 3 Gaussiene [15] …………………………………………………………………………………. 23

Figura 2.5 Obținerea măștii binare adaptate noului fundal static …………………………………………….. 26

Figura 3.1 Caracterizarea fiecărui blob în imaginea curentă …………………………………………………… 30

Figura 3.2 Arhitectura recursivă a unui filtru Kalman [7] ………………………………………………………. 31

Figura 3.3 Definirea zonei de interes într-un video ……………………………………………………………….. 33

Figura 3.4 Rezultatul obținut în urma implementării modulului de urmărire cu pragurile aferente ………………………………………………………………………………………………………………………….. 35

Figura 4.1 Arhitectura sistemului de clasificare [19] …………………………………………………………….. 38

Figura 4.2 Ponderile primului strat convoluțional [20] ………………………………………………………….. 39

Figura 4.3 Delimitarea hiperplanelor asociate unei categorii de clasificare a datelor de antrenare [23] ……………………………………………………………………………………………………………… 40

Figura 4.4 Matricea de confuzie obținută în urma procedeului de validare încrucișată ………………. 42

Figura 4.5 Matricea de confuzie obținută în urma procedeului de validare încrucișată pe baza imaginilor extrase și clasificate manual dintr-un video ………………………………………………………….. 44

Figura 5.1 Rezultate obținute în urma rulării sistemului pe 2 video-uri diferite ………………………… 48

Figura 5.2 Rezultate obținute în timpul urmăririi obiectelor dinamice segmentate anterior ………… 49

Figura 5.3 Rezultatele clasificării obiectelor dinamice din imaginea curentă a unui video …………. 49

Figura 5.4 Rezultatele clasificării obiectelor dinamice din imaginea curentă a unui video …………. 50

Lista algoritmilor din lucrare

Algoritm 2.1 Metoda diferențierii imaginii curente cu imaginea de fundal static ………………………. 21

Algoritm 2.2 Metoda GMM ………………………………………………………………………………………………. 27

Algoritm 3 Urmărirea obiectelor dinamice ………………………………………………………………………….. 36

Capitolul 1

Introducere

Conceptul de „smart-city” reprezintă integrarea tehnologiei Internet of things (IoT) în sisteme inteligente pentru a manageria automat și autonom diferite aspecte ale activităților desfășurate intr-un oraș, intervenția omului fiind minimă sau chiar deloc.

Două aspecte importante legate de zona de cercetare numita „vedere artificială” au primit o atentie deosebita și s-au dezvoltat considerabil în ultimul deceniu, aspecte ce au creat condițiile propice pentru dezvoltarea sistemelor de tip „smart-city”, așa cum sunt descrise în viziunea lui S. A. Velastin și a lui P. Remagnio [1]. Primul aspect îl reprezinta dezvoltarea unor algoritmi capabili să citească și să modeleze date vizuale complexe pe baza carora să fie capabili să concluzioneze anumite lucruri asemanător unui om. Cel de-al doilea aspect îl reprezintă avansul tehnologic în programarea distribuită și inteligența distribuită, capabilă să trateze componentele sistemului ca entități separate, capabilă să se adapteze la schimbările scenariului și capabilă să interpreteze mai bine dinamica obiectelor din scena pe care o supraveghează.

Sistemele de supraveghiere inteligentă se ocupă cu monitorizarea evenimentelor (oameni, mașini, animale, alte tipuri de obiecte, incendii, nevoi medicale și alte astfel de evenimente) într-un anumit mediu. Scopul acestor sisteme este de a oferi o interpretare autonomă și automată a scenei pe baza senzorilor puși la dispoziția mecanismului. Interpretarea constă în prezicerea acțiunilor sau a interacțiunilor obiectelor monitorizate. Principalele stagii ale mecanismului de supraveghere inteligentă sunt detecția obiectlor dinamice din mediul supravegheat, recunoașterea obiectelor, urmărirea lor și analizarea comportamentului.

Astfel de sisteme inteligente pot fi aplicate în monitorizarea sistemului de transport public, a drumurilor publice și a zonelor pietonale. Astfel de siteme au fost implementate cu succes în orașele aglomerate precum Londra, Paris, New York, Barcelona sau Istanbul. Amintim unele dintre ele: MOBESE [2], DETECT [1], DETER [3] sau GOTCHA [4].

M. Valera și S. A. Velestin [1] descriu sistemul DETECT ca având ca eveniment declanșator detectarea mișcării și ca fiind format de un numar variat de camere, maxim 12, conectate la un computer centralizator ce trimite analiza datelor la baza de date centrală ce este accesibila tuturor sistemelor aflate in rețea. De asemenea descriu și sistemul DETER [3] (Detection of Events for Threat Evaluationand Recognition) ca fiind format din două module principale. Primul este cel de vedere artificială ce are ca scop detectarea, recunoașterea și urmărirea obiectelor, iar cel de-al doilea consta într-un sistem superior de recunoaștere semantică ce clasifică eventualul pericol.

Privire de ansamblu asupra sistemului

În această lucrare, este prezentat un sistem inteligent de supraveghere video a unei intersecții ce extrage informațiile despre obiectele dinamice din scena de interes și oferă următoarele statistici:

Imaginea de fundal static aferentă secvenței video

Traiectoriile fiecărui obiect ce apar în scenă

Densitatea traiectoriilor tuturor obiectelor

Clasificarea obiectelor

Numărul obiectelor din fiecare clasa ce au tranzitat scena

Numărul obiectelor din fiecare clasa ce au tranzitat scena pe un anumit interval orar

Figura 1.1 Arhitectura aplicației

Un astfel de sistem poate fi împărțit în trei module principale (Detectarea obiectelor dinamice, Urmărirea obiectelor detectate și Clasificarea obiectelof urmărite) și interconectate și într-un modul secundar (Centralizarea statisticilor), centralizator. Arhitectura aplicației este descrisă în figura 1.1.

Pentru detectarea obiectelor dinamice din video, ce este descrisă în Capitolul 2, s-a folosit cu succes abordarea descrisă de către Stauffer și Grimson [6], Modelul de Mixturi Gaussiene (Secțiunea 2.2.1). Acest model a fost folosit pentru a estima fundalul static al scenei descrise și a separa obiectele dinamice restul scenariului static. În acest capitol sunt descrise 2 abordări, dintre care prima oferind o segmentare non adaptivă, iar a doua o segmentare adaptivă, cea care folosește Modelul de Mixturi Gaussiene.

Pentru urmărirea obiectelor detectate s-a ales o singură abordare, folosind filtrul Kalman [7] ce calculează viitoarea locație pe baza unei presupuneri precum că obiectele se vor deplasa cu o viteză constantă, abordare descrisă în Capitolul 3.

Pentru clasificarea obiectelor s-au folosit 3 abordări diferite descrise în Capitolul 4 al acestei lucrări. Primele două au la bază rețeaua convoluțională „AlexNet” [9], folosind această rețea preantrenată pentru a extrage caracteristicile obiectelor ce urmează a fi clasificate. Prima metodă abordată antrenează un clasificator SVM (mașină cu vector suport) multiclass, cu 11 clase, pe baza caracteristicilor extrase din colecția de imagini „ImageNet” [8]. A doua metodă antrenează to un clasificator SVM, cu 3 clase, dar de această dată folosind imagini detectate automat de aplicatie din diferite videouri și clasificate manual. Ultima metodă abordată se bazează pe observații geometrice (lungime, lățime, arie).

Performanțele metodelor aplicate vor fi discutate în capitolele alocate lor.

Motivație

Atât aprofundarea cât și cercetarea unui domeniu actual, în plină dezvoltare ce presupune folosirea unor tehnologii de vârf, constituie atât o provocare stiințifică cât și un domeniu fertil cu multe aplicații promițătoare. Astfel, după cum spun și A. N. Mohamed și M. M. Ali [11], domeniul vedere artificială aplicată în supravegherea automată atrage din ce în ce mai mulți cercetători. Motivarea acestei lucrări este de a crea o aplicație de detectare a tuturor obiectelor dintr-un video filmat cu o cameră staționară, fixă, clasificarea lor și a extrage diferite statistici pe baza informațiilor obținute, cu scopul de a demonstra faptul că astfel de aplicații pot fi create din ce în ce mai ușor, iar utilitatea lor fiind din ce în ce mai conștientizată.

Sistemul prezentat indeplinește conceptul de extragere de informații din fișiere video, folosind oricare din metodele mai sus menționate. Cu toate acestea, adevăratul scop al aplicației este de a extrage informațiile din video-uri în timp real, direcție ce trebuie urmată în continuarea studiilor științifice legate de acest sistem. Limitarea aceasta este dată de limbajul de programare ales (Matlab [13]), prin multitudinea calculelor greoaie ce necesită un timp mai îndelungat pentru a fi efectuate. Această limitare poate fi eliminată prin rescrierea sistemului într-un limbaj ce efectuează calculele mai rapid, precum OpenCV [12].

1.3 Contribuție proprie

Deși implementarea implementarea acestui sistem s-a decis a fi facută în Matlab [13], datorită librăriei dedicată vederii artificiale, obiectele teoretice puse la dispoziție trebuiau contopite într-o manieră optimă pentru obținerea unei aplicații fluide ce iși atinge scopul său de a extrage statistici pe baza unui fișier video. Pentru realizarea unei astfel de aplicații, mai mulți algoritmi dedicați unei arii de interes a aplicației au fost implementați (descriși în capitolele aferente lor), unii cu succes, iar alții fără rezultate notabile, pentru a însoți și încorpora uneltele preexistente și pentru a servi scopului acestei lucrări.

Capitolul 2

Segmentarea fundalului static de obiectele dinamice

În acest capitol vor fi prezentate două abordări legate de segmentarea fundalului static de obiectele dinamice. Prima metodă reprezintă un exemplu non adaptiv, iar prezentarea ei are ca scop atât sublinierea complexității acestei probleme cât și sublinierea avansului tehnologic actual, această metodă fiind una de bază, de la care s-a plecat spre crearea unei metode cu o acuratețe mai are, ajungându-se chiar la cea de-a doua metodă prezentată în această lucrare, cea adaptivă. Cea din urmă metodă este implementată în aplicație cu succes.

Figura 2.1 Structura unui video format din n imagini și explicitarea unui pixel (marcat cu chenarul roșu)

Un fișier video este format dintr-o colecție de imagini, precum în figura 2.1. Pentru fiecare imagine din colecție se dorește obținerea unei imagini binare sub formă matriceală denumită mai departe masca binară, unde fiecare pixel va avea o valoare din mulțimea {0,1}, valoarea 1 reprezentând un pixel ce aparține unui obiect dinamic, iar valoarea 0 reprezentând un pixel ce aparține fundalului static.

Pentru a obține această mască, vom considera și explicita imaginea cu numărul k, unde k ϵ {1,2,…q}, iar q este numărul total de imagini ce formează fișierul video. Notând această imagine cu Ik, putem explicita această imagine sub formă matriceala printr-o matrice m×n×3, unde n repezintă lățimea în pixeli a imaginii, m reprezintă lungimea în pixeli a imaginii, iar ultima dimensiune reprezintă cele 3 canale RGB (roșu, verde, albastru). Această matrice are ca elemente p valoarea intensității pixelilor asociată fiecarui canal de culoare.

Ik = × × (2.1)

2.1 Metoda diferențierii imaginii curente cu imaginea de fundal static

Această metodă este o metodă bazată pe un scenariu ideal în care există o imagine inițiala, generată sau preexistentă, a fundalului static. Astfel, prin implementarea unui algoritm naiv, obiectele dinamice pot fi discriminate rapid și fară efort.

Privind problema din punct de vedere matriceal, în contextul mai sus enunțat, putem deduce rapid faptul că, pentru imaginea Ik, k ϵ {1,2,…q}, valoarea unui pixel P1 = (pij1,pij2,pij3), cu 1 ≤ i ≤ m și 1 ≤ j ≤ n, va coincide cu valarea pixelului corespondent P2 = (zij1,zij2,zij3) din imaginea de fundal static doar dacă pixelul P1 aparține fundalului static aferent imaginii Ik, obiectul de apartenență al pixelului P2 nefiind obstrucționat de obiectul de apartenență al pixelului P1, în acest caz fiind același obiect. Astfel putem deduce și faptul că pentru aceeași pixeli corespondenți P1 și P2, valoarea lor va fi diferită doar în cazul în care pixelul P2 aparține unui obiect dinamic ce a obstrucționat obiectul din fundalul static.

Cu toate că la o primă vedere aceste observații par corecte, ele nu țin cont de condițiile de iluminare diferite dintre imaginea cu fundalul static și imaginea curentă Ik, modificând valorile pixelilor. Orice modificări ale mediului, cât de mici, chiar și cele insesizabile ochiului uman, dar detectabile de cameră, ne vor duce în cel de-al doilea caz enunțat anterior. Datorită faptului că diferența dintre valoarea ideală (cea în care mediul nu modifică valoarea pixelilor) a unui pixel ce aparține fundalului static și valoarea reală a aceluiași pixel este una mică, putem introduce un prag µ ϵ [0,1] astfel încât să considerăm că toți pixelii a căror diferență dintre valoarea lor pe fiecare canal de culoare și valoarea pixelilor corespondenți din fundalul static tot pe canalele de culoare este mai mică sau egală decât cea a pragului aparțin fundalului static, iar restul pixelilor aparțin obiectelor dinamice din imagine. Pragul µ variază în funcție de poziția și calitatea camerei, pentru video-uri de calitate slabă acest prag putând fi mai aproape de limita superioară, dar și de rezoluția video-ului, fiind o problemă persistentă pentru toți algoritmii. Acesta este aplicat pe canalele de culoare deoarece există posibilitatea ca diferențele pixelilor să apară doar la nivelul unui singur canal de culoare.

Figura 2.2 Rezultatele obținute în urma aplicării algoritmului 2.1. Masca binară (d) se obține prin aplicarea operatorilor morfologici imaginii (c) rezultate în urma diferențierii imaginii curente (b) cu imaginea ce conține fundalul static (a)

Aplicând această metodă putem obține masca binară definită anterior, mască ce reprezintă scopul acestui capitol. Însă aceasta v-a prezenta și pixeli ce nu fac parte din obiectele dinamice asociate imaginii Ik, din cauza zgomotului generat atât de cameră cât și de modificările mediului. Eliminarea acestui zgomot se poate face prin aplicarea unor operatori morfologici precum eroziunea, dilatarea și umplerea, deschiderea sau închiderea, operatori descriși în figura 2.3. În algortimul sistemului descris în această lucrare, s-a stabilit mai întâi aplicarea unei erodări bazată pe o matrice 3 × 3 pentru o eliminare primară a zgmotului imaginii, apoi o închidere bazată pe o matrice 7 × 7 pentru evidențierea contururilor și crearea unor regiuni unitare din regiunile adiacente ce pot face parte din același obiect. În eventualitatea în care anumite obiecte ar rămâne cu goluri, a fost aplicată și o operație de umplere. Matricele ce stau la baza operațiilor morfologice pot suferi modificări ale dimensiunilor, în funcție de caracteristicile video-ului, precum calitatea sa sau distanța camerei de scena de interes.

După cum se poate observa, acest algoritm nu se poate adapta schimbării imaginii de fundal static datorată în cazul acestui studiu de eventualele mașini ce pot parca sau ce pot pleca din parcare, imaginea de fundal static fiind un element de de intrare, nu unul generat de algoritm. Astfel, acuratețea acestuia nu este una bună din punct de vedere al adaptabilității, însă, spre deosebire de următorul algoritm ce urmează a fi descris, detectează mai fidel obiectele dinamice. Deoarece în natură orice scenă de tip intersecție este volatilă și în continuă schimbare, fapt nesesizabil de algoritmul descris, ceea ce îl face să nu fie fiabil unui astfel de scenariu.

Figura 2.3 Exemplificarea operatorilor morfologici. Imaginii de referință (a) i-au fost aplicate operațiile morfologice de eroziune (b), dilatare (c), umplere (d), închidere (e) și deschidere (f). Se observă că o singură operație morfologică nu oferă un rezultat satisfăcător problemei actuale, însă aplicarea succesivă a mai mulți astfel de operatori va duce la rezultate mai satisfăcătoare

Algoritm 2.1 Metoda diferențierii imaginii curente cu imaginea de fundal static

Elemente de intrare:

Imagine cu fundalul static: Ibg

Imaginea curentă a video-ului: Ik

Pragul de diferențiere: µ ϵ [0,1]

Dimensiunile matricii de bază pentru erodare: x,y

Dimensiunile matricii de bază pentru închidere: r,t

Elemente de ieșire:

Masca binară: mască

Algoritmul:

imagineAuxiliară = | Ik – Ibg |

pentru fiecare pixel de coordonate i și j din imagineAuxiliară

dacă (pixel(i,j,1)+pixel(i,j,2)+pixel(i,j,3)) ≤ µ

mască(i,j) = 0

altfel

mască(i,j) = 1

erodare(mască,[x,y])

închidere(mască, [r,t]))

Metoda Modelului de Mixturi Gaussiene

După cum se poate observa în descrierea metodei diferențierii (Secțiunea 2.1) metoda necesită actualizarea imaginii de fundal static în cazul în care acesta s-ar schimba. Acest lucru ar trebui făcut manual de către o persoană, ceea ce ar face ca scopul algoritmului să nu fie atins (cel de a fi independent și automat). După cum se subliniază și în „Adaptive background mixture models for real-time tracking” [6], majoritatea cercetătorilor au abandonat astfel de abordări non adaptive, din cauza necesității unor inițializări manuale fără de care s-ar fi strâns o mulțime de erori. Astfel, tipul acesta de algoritmi ce necesită o supervizare crescută și sensibili la schimbări mai mari al fundalului static sunt fiabili doar pentru un număr restrâns de cazuri ce presupun detectarea și urmărirea unor obiecte pentru un interval de timp redus.

Necesitatea unui algoritm capabil să se adapteze la schimbări majore în fundalul static a atras numeroși cercetători, iar rezultatele nu au întârziat să apară. Un astfel de algoritm, ce se aseamănă cu algoritmul ce face subiectul acestui capitol, este algoritmul sistemului Pfinder [14]. Acesta folosește un model multi-class pentru urmărirea obiectelor și un model de estimare a fundalului static bazat pe o singură Gaussiană pentru fiecare pixel.

Modelul ce va fi descris în continuare reprezintă abordarea lui Stauffer și a lui Grimson [6] a acestei probleme, folosind nu o singură Gaussiană ci z Gaussiene, model disponibil în librăria dedicată vederii artificiale a Matlab [13]. Modelul denumit „Mixturi de Gaussiene” (folosit cu notația MOG în literatura de specialitate) sau „Modelul de Mixturi Gaussiene” (folosit cu notația GMM în literatura de specialitate) este una din cele mai comun folosite metode adaptive de extragere a fundalului static dintr-un video.

Acest model încearcă să modeleze valoarea unui pixel P = (pij1,pij2,pij3), cu 1 ≤ i ≤ m și 1 ≤ j ≤ n, cu ajutorul unei mixturi de z Gaussiene (Figura 2.4) în loc să modeleze cu o singură Gaussiană. Acest lucru transformă algoritmul într-unul robust și adaptabil schimbărilor de mediu. Practic, pentru fiecare pixel P al unei imagini Ik se va încerca asignarea sa uneia dintre Gaussiene după care aceasta va fi actualizată și se va stabili care din cele k distribuții este cel mai probabil să reprezinte fundalul static, toți pixelii acestei distribuții Gaussiene fiind considerați statici, iar ceilalți ca fiind dinamici. Astfel, imaginii curente Ik i se poate asocia o masca binară căutată.

Acest algoritm nu are nevoie de supervizare, fiind necesare doar setările ințiale. La momentul scrierii articolului [6], Stauffer menționa că sistemul rula deja de 16 luni monitorizând o scenă în aer liber, iar acesta nu a necesitat nici o modificare a parametrilor pentru atingerea acurateței dorite a gradului de segmentare a fundalului static de cel dinamic.

Figura 2.4 GMM cu 3 Gaussiene [15]. Gaussienele notate cu albastru sunt distribuțiile modelate de modelul descris, iar distribuția notată cu roșu reprezintă modelarea globală a valorilor pixelilor de-a lungul unui interval de timp t

Descrierea GMM

Întreaga idee a GMM este de a estima fundalul static pentru a t-a imagine pe baza a t-1 imagini procesate deja. Astfel putem considera ca t reprezintă momentul de timp actual al video-ului. Deoarece algoritmul este creat pe baza pixelilor dintr-o imagine, este nevoie ca fiecare pixel dintr-un video sa fie modelat uniform și concomitent. Acest lucru poate fi atins matematic prin reprezentarea vectorială a valorilor unui pixel de-a lungul unui interval de timp t, precum în ecuația 2.2, ca un vector cu t elemente ce reprezintă valoarea unui pixel la momentul de timp i, 1 ≤ i ≤ t.

(X1, X2, …, Xt) = {P ϵ Ik | P = (pij1,pij2,pij3), i,j fixate, 1 ≤ i ≤ m, 1 ≤ j ≤ n, 1 ≤ k ≤ t} (2.2)

Astfel, având istoria valorilor fiecărui pixel în parte, putem actualiza toate cele z Gaussiene pe baza asignării fiecărei valori a pixeluilui P, la momentul de timp t, uneia dintre ele.

Pentru a distinge dacă un pixel P aparține sau nu fundalului static, trebuie calculată probabilitatea (Ecuația 2.3) ca acea valoare a pixelului să apară natural. Daca, spre exemplu, o mașină apare în scenă, valoarea pixelului ce reprezenta asfaltul va detecta o valoare anormală, nemodelabilă de nici una din cele n Gaussiane, fapt ce ar duce la o probabilitate mică a faptului că pixelul mai aparține fundalului static.

P(Xt) i,t * η(Xt, µi,t, εi,t) (2.3)

Astfel, probabilitatea P(Xt) este exprimată ca suma probabilităților ca valoarea Xt să apară natural în distribuția fiecărei Gaussiene.

Pentru fiecare distribuție se vor lua în calcul doar valorile pixelilor atribuiți lor, fapt exprimat de ponderea 𝝎 în ecuația mai sus enunțată. Această pondere este folosită pentru actualizarea distribuțiilor, calculând la momentul de timp t noua pondere asociată (Ecuația 2.4) pe baza unui parametru extrem de important al acestui sistem, α, denumit rata de învățare. Actualizarea ponderii se va face doar pentru ponderea asocită distribuției căreia valoarea pixelului poate fi atribuită, prin variabila Mi,t, ce va avea valoarea 0 pentru Gaussiana cu numărul i din model dacă valoarea se nu potrivește acesteia și 1 altfel. Pentru a stabili această potrivire, abordarea lui Stauffer [6] nu folosește un algoritm de tip EM (Expectation Maximization) așa cum folosesc majoritatea algoritmilor de acest tip deoarece implementarea unui astfel de algoritm pentu o mixtură de z Gaussiene devine computațional extrem de costisitor, ci un algoritm de aproximare de tip on-line K-means. Potrivirea se va face dacă valoarea ce necesită potrivirea se încadrează în deviația standard de 2,5 a distribuției. Dacă nu se găsește nici o potrivire, procesul iterativ este luat de la început, înlocuindu-se cea mai puțin probabilă distribuție cu alta ce are această valoare ca valoare medie.

𝝎i,t = 𝝎i,t-1 + α * (Mi,t – 𝝎i,t-1) (2.4)

Importanța parametrului α este dată de faptul ca acest parametru stabilește gradul de adaptivitate la schimbările de mediu al sistemului. Cu cât această valoare este mai mare, cu atât sistemul înglobează schimbările mai greu. Practic, putem spune că α-1 reprezintă viteza cu care fundalul static este actualizat.

Acestor ponderi le sunt stabilite probabilitatea de densitate a Gaussienei, fapt exprimat în ecuația 2.3 prin funcția η(Xt, µi,t, εi,t), unde µi,t reprezintă valoarea medie a distribuției i la momentul t, iar εi,t reprezintă matricea de covarianță a distribuției i la momentul t.

η(Xt, µi,t, εi,t) (2.4)

Având aceste instrumente la îndemână nu mai rămâne decât să stabilim ce Gaussiană din cele z existente este cel mai probabil să modeleze fundalul static. Pentru acest lucru este nevoie mai întâi de o ordonare a distribuțiilor, ordonare ce se efectuează pe baza criteriului dat de valoarea , unde este extras din matricea de covarianță, valoare ce crește cu cât există mai multe dovezi că distribuția modelează fundalul static. Având ordonarea efectuată, fundalul static se va decide după ecuația 2.5 ce folosește un alt parametru important al acestei metode, T, parametru folosit și în ecuația 2.4. Acesta măsoară numărul minim de valori ce ar trebui luat în considerare drept fundal static. Cu cât valoarea aceasta este mai mică, fundalul static va fi unul unimodal, mai puțin adaptabil la schimbările de mediu, iar dacă este mare, acesta va genera un fundal multi-modal capabil să înglobeze în acesta mișcările repetitive precum mișcarea unui steag bătut de vânt ce, în mod normal ochiul uman l-ar vedea ca făcând parte din fundalul static în scena de interes, dar un sistem nepregătit pentru așa ceva nu l-ar putea vedea astfel.

B = argminb () (2.5)

Descrierea algoritmului folosit în sistemul de interes

Algoritmul descris în secțiunea precedentă este disponibil în biblioteca dedicată vederii artificiale a Matlab [13]. Astfel, s-a ales folosirea acesteia din motive de optimizare și cost computațional mai bun. Metoda calculează masca binară, ce reprezintă scopul acestui capitol, pentru fiecare imagine Ik, tinând cont de un număr de imagini deja procesate, număr ce se stabilește la inițializarea sistemului și reprezintă variabila t din ecuația 2.2. Acest parametru a fost stabilit în sistemul descris ca fiind chiar totalitatea imaginilor fișierului video, deoarece se dorește ca actualizarea fundalului static să se efectueze doar în momentul în care sigur schimbarea a avut loc și este și de durată. Funcția folosită se numește vision.ForegroundDetector și, pe langă parametrul de inițializare amintit anterior, necesită setarea parametrului T din ecuația 2.5 și a ratei de învățare α. T este setat ca având valoare 0,7, aproximând că fundalul static ar trebui să ocupe aproximativ 70% din imagine, înglobând astfel eventualele mișcări repetitive, iar α este setat la voloare de 0,008 pentru a se adapta oricărei modificări a mediului cât mai repede și cât mai bine. De asemenea, un număr de Gaussiene trebuie ales pentru GMM, iar după recomandarea din „Adaptive background mixture models for real-time tracking” [6], acest număr trebuie să fie cuprins între 3 și 5, mai multe generând costuri computaționale foart mari, iar mai puține neputând modela eventualele scene multi-modale. În sistemul descris s-au folosit un număr de 3 Gaussiene, atât din motive de cost, cât și pe baza mai multor experimente efectuate cu numere diferite de astfel de distribuții.

Înainte de a oferi algoritmului GMM noua imagine Ik, s-a decis aplicarea unui filtru Gaussian de bază 5 × 5, pentru o primă eliminare a eventualului zgomotului. De asemenea, pentru eliminarea zgomotului ulterior obținerii măștii binare, s-a decis aplicarea, precum în algoritmul 2.1 a operatorilor morfologici, de această dată considerând necesare doar o operație de umplere, apoi una de erodare cu baza o matrice 6 × 6.

Figura 2.5 Obținerea măștii binare adaptate noului fundal static. Masca binară (c) a fost obținută din imagine crentă (a) folosind GMM și ținând cont de imaginile deja prelucrate (b). După cum se poate observa, mașina devenită statică nu mai este înregistrată ca obiect dinamic

Algoritm 2.2 Metoda GMM

Elemente de intrare:

Imaginea curentă a video-ului: Ik

Numărul minim de valori ce ar trebui luat în considerare drept fundal: T

Rata de învățare: α

Numărul de Gaussiene: n

GMM(n, α,T): detector

Dimensiunile matricii de bază pentru închidere: x,y

Dimensiunile matricii de bază pentru aplicarea filtrului Gaussian: q, r

Elemente de ieșire:

Masca binară: mască

Algoritmul:

Ik = filtruGaussian([x,y])

mască = detector(Ik)

fill(mască)

erodare(mască,[x,y])

Capitolul 3

Urmărirea obiectelor dinamice

Pasul natural ulterior segmentării este urmărirea obiectelor dinamice, acțiune ce face subiectul acestui capitol. Sistemul descris folosește filtrul Kalman [7] să calculează viitoarea locație pe baza unei presupuneri precum că obiectele se vor deplasa cu o viteză constantă. Astfel, fiecare obiect va avea nevoie de o descriere spațială a sa, pentru ca locația precedentă să fie cunoscută și luată în calcul în estimarea viitorei locații.

3.1 Diferențierea și localizarea obiectelor din imagine

Un prim pas pentru urmărirea obiectelor îl reprezintă „conștientizarea” și localizarea obiectelor. Din masca binară se pot extrage zone de interes, acele zone fiind zonele în care masca are valoarea 1, obiectele dinamice fiind astfel definite în Capitolul 2. Aceste zone sunt numite în literatura de specialitate blob (Binary Large Object). Odată localizat fiecare blob, acesta trebuie indexat și caracterizat astfel încât să descrie cât mai bine obiectul dinamic asociat. Astfel, fiecare blob va fi descris de către centrul său și patrulaterul ce încadrează regiunea de interes. Aceste unelte descriptive sunt relative la sistemul de coordonate a video-ului, putând fi descrise tot matriceal, precum imaginea curentă Ik.

Cu toate că în procesul de segmentare a fundalului static de obiectele dinamice se încearcă și se reușește eliminarea unei părți mari din zgomot, o mică parte din acesta este încă prezent și poate duce la așa-zisele halucinații, detectând fals obiecte dinamice de dimensiuni infime unele, altele de dimensiuni apropiate de cele ale unui obiect ce ar putea apărea natural în scena de interes. Tocmai de aceea, introducerea unui prag geometric γ în procesul identificării obiectelor dinamice este imperios necesar. Acest prag geometric s-a decis a fi, în sistemul descris, aria obiectului. Dacă aria este mai mică decât un anumit număr de pixeli, blob-ul aferent nu este luat în calcul ca fiind obiect dinamic real pentru imagina curentă, iar dacă această prezumție este în realitate falsă, obiectul poate fi inclus în mulțimea obiectelor dinamice detectate și luate în calcul pe baza dovezilor mai convingătoare din imaginea următoare. Acest prag diferă în funcție de calitatea și poziționarea camerei, γ devenind astfel un parametru de inițializare important pentru acuratețea sistemului.

Figura 3.1 Caracterizarea fiecărui blob în imaginea curentă

3.2 Filtrul Kalman

Odată indexate și caracterizate blob-urile, pasul următor este cel de a prezice următoarea poziție a acestora, pe baza caracterizărilor făcute anterior. Pentru acest lucru, s-a decis folosirea filtrului Kalman [7], datorită acurateței mari și a costurilor computaționale mici. Acest filtru este un set de ecuații matematice ce are ca scop estimarea eficientă a stării unui proces, necesitând costuri computaționale mici, minimizând eroarea medie pătrată (denumită în literatura de specialitate „mean of the squared error”). G. Welch [7] afirmă că eficacitatea acestui filtru constă și în faptul că poate estima atât starea trecută și prezentă cât și starea viitoare a procesului, chiar și atunci când natura exactă a sistemului nu este cunoscută. Filtrul Kalman a primit o atenție deosebită din partea cercetătorilor încă din momentul publicării sale, în mare parte datorată avansului tehnologic, aplicativitatea sa în domeniul vederii artificiale fiind clară (variante de algoritmi ce extind filtrul sunt capabile să prezică locația obiectelor chiar dacă acestea sunt obstrucționate de alte obiecte, cu o acuratețe remarcabilă). Acesta prezintă o abordare recursivă, în care este necesară memorarea doar a locației precedente a obiectului, nefiind necesară memorarea întregului itinerariu al acestuia, fapt ce îl face foarte eficient din punct de vedere al costului de memoriei.

Pentru estimarea corectă a locației unui obiect, filtrul trece prin două etape importante: prezicerea unei zone în care este cel mai probabil să apară obiectul urmărit și corectarea predicției, localizând (dacă este posibil) obiectul cu exactitate. Astfel, putem identifica principalii pași ai unui astfel de algoritm, pași existenți în sistemul descris și identificați drept pași recursivi universali (Figura 3.2) ai unui astfel de sistem în lucrarea „Kalman filter for vision tracking” [16]:

Inițializarea (pentru prima localizare a obiectului). Obiectului ii sunt extrase caracteristicile geometrice și astfel se poate prezice o regiune în care obiectul va putea fi găsit din nou. Desigur, neavând informații consistente despre obiect, acesta fiind la prima observare a sa, filtrul va prezice locația, dar având la bază o eroare mare.

Prezicerea regiunii cu probabilitate de apariție maximă. Filtrul Kalman [7] va prezicea acea zonă cu probabilitate mare de apariție a obiectului folosind un procedeu asemănător procedeului de folosire a unei ferestre glisante. Această predicție are loc pe baza uneia dintre ipotezele ce afirmă faptul că obiectul se mișcă cu viteză constantă sau că obiectul se mișcă cu accelerație constantă.

Corectarea localizării. Această etapă constă în restrângerea regiunii prezisă anterior la locația exactă a obiectului, dacă acesta este găsit ca fiind în acea regiune. În cazul în care acesta nu este localizat, în principal din cauza obstrucționării acestuia, acest pas va rezulta cea mai probabilă locație exactă din regiune.

Figura 3.2 Arhitectura recursivă a unui filtru Kalman [7]

Asignarea fiecărui obiect unui drum

Știind locația curentă a unui obiect și locația viitoare a acestuia, obiectul trebuie asignat unui drum existent, al său. Determinarea drumului său corect este problema ce face subiectul acestei secțiuni deoarece, pe cât de simplă pare pentru oameni o astfel de asignare, pe atât de complicată poate deveni pentru o mașinărie. Să zicem că ca două mașini A și B sunt foarte apropiate, nu nepărat una obstrucționând-o pe cealaltă, iar predicția viitoarei locații a lui A este fel de apropiată de ambele, deși B va avea o cu totul altă locație în viitor. Ei bine, în acest exemplu, în lipsa unui algoitm de asignare a drumurilor îndeajuns de puternic pentru a face astfel de distincții, mașinăria poate confunda drumurile și există posibilitatea, spre exemplu, asignării mașina B drumului mașinii A.

Dacă considerăm asignările eronate ca generând costuri, putem reduce problema la o problemă clasică de asignare bazată pe costuri. Un astfel de algoritm folosit adesea în problemele de transport este algoritmul ungar. Varianta algoritmului folosită de sistemul de interes descris este cea descrisă de James Munkres [17] și implementată în Matlab [13] prin funcția „assignDetectionsToTracks” pusă la dispoziție în biblioteca dedicată vederii artificiale.

Pentru a putea rezolva problema folosind algoritmul ungar, este necesară reprezentarea costurilor matriceal, prin matricea de costuri M a × b = ci,j, unde a reprezintă numarul de drumuri cunoscute, b reprezintă numărul de obiecte detectate, iar ci,j reprezintă costul asignării detecției j drumului i, unde 1 ≤ i ≤ a și 1 ≤ j ≤ b. Algoritmul oferit de Matlab [13] abordează această matrice ca una pătrată, prin eventuale completări a matricei, oferind argumentul logic și valid precum că orice detecție trebuie să corespundă unui drum, detecțiile neasignate nici unui drum generând noi drumuri ce vor fi interpretate mai departe de către sistem. Ideea unui astfel de algoritm este că, cu cât costul ci,j este mai mare, cu atât este mai puțin probabil ca detecția j să corespundă drumului i, iar cu cât este mai mic, cu atât este mai probabil ca ca corespundă.

Drept funcție de cost se poate folosi distanța Euclidiană tinând cont de faptul că localizarea are loc într-un spațiu geometric definit de lungimea și lățimea imaginii curente Ik. Astfel, putem concluziona că obiectele a căror locație este mai aproape de următoarea poziție prezisă a unui drum vor avea costul mai mic decât celelalte. Calcularea acestei distanțe nu poate fi efectuată decât pentru drumurile deja existente, iar în eventualitatea unor detecții ce apațin unor noi drumuri, matricea M ar rămâne fără valori ci,j asignate, unde i sunt posibilele noi drumuri, iar j sunt detecțiile rezultate de filtrul Kamlan [7]. Astfel, introducerea unui parametru Φ a cărui valoare va fi folosită drept cost pentru astfel de matrici M. Pentru un astfel de caz, Φ va fi factorul decisiv în deciderea asignării unui blob unui drum, existent sau nou. Cu cât valoarea parametrului este mai mare, cu atât probabilitatea ca toate detecțiile să fie asignate, în timp ce cu cât valoarea este mai mică probabilitatea unei astfel de asignări este mai mică. Detecțiile ce nu au fost astfel asignate vor crea noi drumuri, fapt ce dă o importanță deosebită parametrului Φ și alegerii sale în așa fel încât să nu producă drumuri noi unor obiecte ce aparțineau unor alte drumuri deja existente sau să asigneze greșit detecțiile.

Descrierea algoritmului de urmărire folosit în sistemul de interes

Având aceste unelte la dispoziție, putem să le folosim pentru a urmării obiectele detectate. Cu toate acestea, simpla înlănțuire a metodelor descrise în secțiunile anterioare nu va oferi un rezultat foarte satisfăcător, urmărirea având nevoie de anumite rafinări, din varii motive precum aglomerarea obiectelor dinamice în zona liniei orizontului sau obiecte ce apar doar pentru o scurtă perioadă de timp și nu ar trebui contorizate în statisticile pe care urmează să le obținem. Astfel, anumite condiții și bariere trebuie impuse în algoritmul de urmărire pentru a obține în final rezultate relevante.

Figura 3.3 Definirea zonei de interes într-un video. În timp ce video-ul (a) [18] cuprinde doar scena de interes și nu impune definirea unei zone de interes (marcată în imagini cu un chenar roșu), video-ul (b) cuprinde și zone adiacente ce nu mai prezintă interes pentru sistemul descris impunând o astfel de zonă

Un scenariu ce poate afecta grav orice statistică îl reprezintă procesarea unui video realizat dintr-un unghi ce, pe langă scena de interes maxim, captează și eventuale obiecte dinamice aflate la depăratare, acestea, contrar așteptărilor, satisfăcând criteriul geometric γ. Astfel, există riscul contorizării unor obiecte dinamice ce nu reprezintă interes pentru analiza efectuată, de cele mai multe ori interpretarea acelor zone fiind și greșită din cauza multiplelor obstrucționări între obiectele dinamice din acea zonă. Pentru evitarea unor astfel de situații, definirea unei zone de interes (Figura 3.3) s-a văzut necesară, scena de interes a sistemului descris fiind intersecția, nu și zonele adiacente acesteia. Pe baza acestor observații sistemul va prelucra imaginea întreagă, fără discriminări, însă va afișa și contoriza doar obiectele dinamice ce satisfac condiția de încadreare în zona astfel definită.

De asemenea, pentru a crește acuratețea detectării și urmăririi obiectelor dinamice este nevoie de introducerea unei altei convenții, de această dată legată de ciclul de viață al drumurilor, deoarece există posibilitatea creării unor drumuri pentru halucinații sau obiecte reale ce apar și dispar foarte repede în scena de interes. Astfel, fiecare drum trebuie să îndeplinească o serie de condiții pentru a putea fi luat în considerare ca fiind un drum real și corect.

O primă condiție pentru o rafinare a drumurilor constă în impunerea unui prag de existență a unui obiect în scenă. Dacă, spre exemplu, un obiect este vizibil doar pentru un sfert de secundă și apoi dispăre, obiectul va fi reperat și indexat imediat de către sistem, dar validitatea unui astfel de drum este nulă. Acest prag ajută și la eliminarea eventualelor halucinații ce au trecut până și de filtrele precedente. Astfel, acest prag este un prag extrem de important în validarea drumurilor. În sistem s-a stabilit ca acest prag să aibă valoarea a jumătate din rata de redare a imaginilor (frame rate) video-ului de intrare, pe baza ipotezei conform căreia, orice obiect ce se deplasează cu cel puțin 5 km/h se va deplasa cu aproximativ 1,5 metri pe secundă, îndeajuns pentru ca sistemul să detecteze deplasarea obiectului și să considere că dacă s-a deplasat aproximativ un metru acest obiect chiar există și este necesară asignarea sa unui nou drum.

O altă condiție reiese din faptul că, deși ipoteza anterioară este validă pentru majoritatea cazurilor, anumite halucinații pot fi mult mai persistente decât prevede pragul setat anterior, ducând deci la drumuri false. De asemenea, creșterea excesivă a pragului precedent duce la nevalidarea unor drumuri scurte dar valide, deci nefiind o opțiune fiabilă. Astfel, impunerea un al doilea prag este necesară pentru corectarea situațiilor de acest gen. Pentru implementarea acestui prag sunt necesare noi caracterizări asociate fiecărui drum, pe lângă cele stabilite anterior (centrul blob-ului și coordonatele patrulaterului ce conține obiectul), acestea fiind contorizarea imaginilor în care obiectul asociat drumului este vizibil, nefiind obstrucționat de nici un alt obiect și contorizarea imaginilor în care drumul a fost considerat valid, caracteristică pe care o vom numi în continuare vârsta drumului. Având la dispoziție și aceste unelte descriptive, putem interoga fiecare drum și putem decide dacă drumul creat aparține întradevăr unui obiect valid sau nu. Putem spune că acest prag este un prag compus, contorizarea vizibilității unui obiect eliminând drumurile considerate obstrucționate prea mult timp sau pierdute, iar vârsta obiectului eliminând drumurile considerate mult prea „tinere”. Pentru ca un obiect să fie considerat obstrucționat pentru prea mult timp sau pierdut, raportul dintre contorizarea vizibilității și vârsta drumului trebuie să aibă o valoare mai mare decât un parametru τ ϵ [0,1] stabilit la inițializarea sistemului (considerat în implementarea sistemului de interes ca având valoarea 0,7 deoarece video-urile de testare nu prezintă zone statice de obstrucționare a obiectelor, deci obiectele ar trebui să fie vizibile pentru marea majoritate a timpului). De asemenea, vârsta minimă a unui drum este tot un parametru de inițializare, iar acesta s-a stabilit a avea valoara 10 pentru sistemul descris, deoarece o valoarea prea mare a acestui parametru poate duce la pierderea unor drumuri valide. Acești parametri sunt parametri de inițializare deoarece, pe baza video-ului analizat, valoarea lor poate să difere mai mult sau mai puțin pentru obținerea unei acurateți satisfăcătoare.

Figura 3.4 Rezultatul obținut în urma implementării modulului de urmărire cu pragurile aferente. Liniile colorate de pornesc din obiectele dinamice detectate în scena de interes reprezintă drumul parcurs de acestea de la detectarea lor și până în acel moment

Algoritm 3 Urmărirea obiectelor dinamice

Elemente de intrare:

Video-ul analizat sub formă de mască binară (Capitolul 2): V(n), unde n reprezintă lungimea în imagini a video-ului

Imaginea curentă a video-ului: Ik

Zona de interes selectată: Z

Costul neasignării unui blob unui drum: Φ

Parametrii de filtrare: minViz, τ, vârstă

Vector de drumuri: drumuriValide // inițial vid

Elemente de ieșire:

Vector de drumuri: drumuriValide

Algoritmul:

k = 1

cât timp k ≤ n

Ik = V(k)

caracterizare = localizareaObiectelorDinamice (Ik)

obiecteValide = eliminăObiecteleDinAfaraZoneiDeInteres (caracterizare, Z)

M a × b = creazăMatriceaDeCosturi (drumuriValide, obiecteValide, Φ)

drumuri = asigneazăDrumurile (drumuriValide, obiecteValide, M a × b)

(drumuriValide, drumuriInexistente) = selecteazăDrumruile (minViz, τ, vârstă)

stergeDrum (drumuriInexistente)

actualizeazăDrum (drumuriValide)

k = k +1

Capitolul 4

Clasificarea obiectelor

Se poate spune că detectarea și urmărirea obiectelor dinamice reprezintă un rezultat satisfăcător pentru extragerea de statistici din supravegherea video a unei intersecții. Însă putem spune câți pieteni au trecut prin intersecție? Sau câte mașini? Este nevoie în acea intersecție de semnalizare specială a bicicliștilor (dacă trec bicicliști pe acolo)? Multe astfel de întrebări își pot găsi răspunsul prin vizionarea a lungi ore de material video, o astfel de clasificare a obiectelor făcându-se manual. Dar se poate automatiza procesul pentru ca omul să fie nevoit să citească doar câteva statistici rezultate automat? Ei bine, acest subiect este chiar și în zilele noastre un motiv de discuție și cercetare, exisând numeroase abordări și studii pentru acestă temă.

Pentru rezolvarea acestei probleme s-a decis implementarea a trei algoritmi, fiecare cu impact diferit asupra sistemului de interes, performanțe ce fac subiectul discuției în Capitolul 6. Primele două au la bază rețeaua convoluțională „AlexNet” [9], folosind această rețea preantrenată pentru a extrage caracteristicile obiectelor ce urmează a fo clasificate. Prima metodă abordată antrenează un clasificator SVM (support vector machine) multiclass, cu 11 clase, pe baza caracteristicilor extrase din colecția de imagini „ImageNet” [8]. A doua metodă antrenează to un clasificator SVM, cu 3 clase, dar de această dată folosind imagini detectate automat de aplicatie din diferite videouri și clasificate manual. Ultima metodă abordată se bazează pe observații geometrice (lungime, lățime, arie).

Abordări ce au la bază extragerea caracteristicilor cu rețeaua AlexNet

Clasificarea imaginilor în categorii de obiecte folosind rețele neuronale reprezintă un domeniu actual și fertil de cercetare ce a atras mulți cercetători în ultimii ani. Diferite abordări ale acestei probleme au fost create, unele cu mai mult succes, altele cu mai puțin succes, însă toate au la bază ideea extragerii caracteristicilor, lucru extrem de greu de realizat. Discriminarea obiectelor făcându-se pe baza caracteristicilor vizuale (ce pot fi foarte asemănătoare pentru anumite clase de obiecte; spre exemplu, vizual un măgar și un cal de statură mai mică nu pot fi diferențiați prea ușor nici măcar de ochiul uman), este necesară extragerea acestora la un nivel înalt.

Figura 4.1 Arhitectura sistemului de clasificare [19]. Segmentul ce reprezintă extragerea caracteristicilor unei imaginii definește partea din arhitectura AlexNet pe care sistemul o folosește.

Rețeaua AlexNet [9] este o rețea neuronală convoluțională antrenată pe coleția de imagini oferită de ImageNet [8] (1,2 milioane de imagini de rezoluție mare) pentru concursul ImageNet Large Scale Visual Recognition Challenge 2012, concurs pe care l-a și câștigat. Arhitectura acestei rețele constă în 5 straturi convoluționale, unele urmate de straturi de max-pooling și 2 straturi complet conectate cu 1000 de ieșiri ce folosesc funcția softmax. Aceasta este folosită în sistemul descris nu ca unealtă principală de clasificare, din cauza multitudinilor de clase nefolositoare pentru sistemul dorit, putând astfel obține rezultate nedorite (există posibilitatea ca spre exemplu, o furgonetă să fie clasificată greșit drept vagon de tren), ci ca unealtă de extragere a caracteristicilor de nivel înalt din imagini, datorită puterii foarte mari de extragere a acestora, comparativ cu celelalte rețele de referință din domeniu, obținând rata erorilor top-1 și top-5 în valoare de 37.5% și 17.0%, după cum se afirmă în „ImageNet Classification with Deep Convolutional Neural Networks”.

Pentru obținerea acestor caracteristici trebuie ca imaginea căreia i se dorește analiza să parcurgă rețeaua până la stratul denumit „fc7” (Figura 4.1), deoarece, deși fiecare strat al rețelei oferă informații despre imaginea de intrare, nu toate sunt adecvate extragerii de caracteristicilor de nivel înalt. Spre exemplu, primele straturi din rețea oferă doar informații legate de muchii și detectează blob-uri în imagine, ponderile aferente fiind specializate pentru acest lucru (Figura 4.2). Aceste caracteristici primitive vor fi preluate de straturile ulterioare pentru prelucrarea lor, straturi ce le vor folosi pentru obținerea unor caracteristici mult mai bogate, astfel obținându-se o caracterizare bogată a imaginii prelucrate.

Figura 4.2 Ponderile primului strat convoluțional [20]

Deoarece pentru crearea unui clasificator de imagini este imperios necesară descrierea imaginii pe baza unei mulțimi cât mai bogate și calitative de caracteristici, putem deduce că sitemul nostru poate folosi rezultatul obținut chiar de stratul convoluțional ce oferă caracterizarea imaginii pe baza căreia rețeaua AlexNet [9] decide probabilitatea apartenenței imaginii unei clase, strat denumit „fc7” (Figura 4.1). Astfel, pentru orice imagine Ik (rețeaua aceasta nu acceptă decât imaginii de dimensiune 227 × 227 × 3, fiind necesară o eventuală redimensionare a sa), obținându-se un vector de 4096 de elemente descriptive ce urmează a fi clasificate.

Clasificarea datelor reprezintă un lucru comun în domeniul de cercetare a inteligenței artificiale, însă nu este neapărat și un lucru ușor, mulți factori contribuind la performanțele obținute. Pentru sistemul de interes s-a stabilit abordarea problemei folosind un SVM (mașină cu vector suport), datorită ușurinței de folosire, dar și al formatului datelor de intrare, compatibil cu caracteristicile de nivel înalt extrase anterior.

Figura 4.3 Delimitarea hiperplanelor asociate unei categorii de clasificare a datelor de antrenare [23]. Dreptele discontinue sunt numite vectori suport, deoarece întreaga idee a unui SVM este împărțirea datelor pe clase având distanța dintre cele mai apropiate date clasificate diferit (ce definesc dreptele suport, reprezentate în imagine ca drepte discontinue) și planul de separație (în acest caz reprezentat de dreapta continuă paralelă cu dreptele discontinue) maximă.

Un SVM este un model de învățare supervizată ce are atașați algoritmi de clasificare și de regresie pentru analizarea datelor de intrare. Acest model folosește reprezentarea în spațiu a exemplelor de antrenare (Figura 4.3), clasificarea (din punct de vedere geometric) rezumându-se la împărțirea hiperplanului în regiuni atribuite fiecărei clase, exemplului de testare urmând să i se stabilească clasa în funcție de regiunea căreia îi aprține.

Se poate considera ca SVM-ul reprezintă o extindere a perceptronului lui Rosenblat[21], având la bază generalizarea clasificatorilor liniari, sau chiar un caz special al regularizării Tikhonov. Deși mai multe detalii legate de acest model pot fi găsite în lucrarea scrisă de Meyer, Leisch și Hornik [21], o proprietate importantă trebuie enunțată, proprietate ce descrie și principiul de funcționare a modelului. Aceasta afirmă că se încearcă simultan atât minimizarea erorii empirice de clasificare, cât și maximizarea distanței geometrice dintre zonele de apartenență a claselor.

Deși SVM-ul este un clasificator binar ce poate distinge astfel doar 2 clase, iar problema noastră presupune discriminarea a cel puțin 3 clase de obiecte, versiuni ale acestui model ce pot discrimina între mai mutle clase de obiecte au fost implementate, sistemul descris folosind funcția „fitcecoc” disponibilă în librăria dedicată vederii artificiale a Matlab [13] ce oferă posibilitatea antrenării unui astfel de clasificator SVM multi-class.

4.1.1 Antrenarea pe setul de date ImageNet

Prima abordare a problemei de clasificare constă în antrenarea unui SVM pe baza caracteristicilor extrase din setul de date pus la dispoziție de ImageNet [8], datorită dimensiunilor impresionante ale sale, dar și datorită unghiurilor de captură variate a imaginii ce conțin obiectele de interes. Datorită faptului că setul de date prezintă adnotate 1000 de clase de obiecte, printre acestea găsindu-se și clasele ce se doresc a fi implementate, s-a decis implementarea unui SVM multi-class cu 11 clase (ambulanțe, mașini de poliție, mașini de intervenții, tramvaie, autobuze, mașini de tip sedan, mașini de tip SUV, dube, motociclete, biciclete și pietoni).

Astfel, pentru obținerea mulțimii de antrenare, fiecărei imagini (obținută pe baza adresa web pusă la dispoziție) i s-au extras caracteristicile de nivel înalt folosind rețeaua AlexNet [9]. Acest proces este unul de lungă durată (deoarece mașina pe care sistemul a fost implemntat sistemul prezintă o placă video AMD și nu una NVIDIA, rețeaua AlexNet [9] folosind CUDA [22] pentru rapiditatea calculelor, s-a decis rularea rețelei convoluționale pe CPU în loc de GPU, astfel procesele durând mai mult), aproximativ 8 ore pentru caracterizarea a 10 000 de imagini, pentru rularea

Figura 4.4 Matricea de confuzie obținută în urma procedeului de validare încrucișată. Numărul afișat în fiecare în celulele colorate cu verde, repectiv cu roșu arată câte imagini au fost clasificate corect, respectiv incorect, iar procentul de sub acest număr reprezintă procentul astfel clasificat din toate datele folosite la antrenare. Procentele aflate în coloana din dreapta prezintă procentul predicțiilor corecte (cu verde) și procentul celor incorecte (cu roșu), iar procentele aflate pe linia de jos arată procentul imaginilor ce au fost clasificate corect (cu verde) și procentul imaginilor ce au fost clasificare incorect (cu roșu) din totalul imaginilor din acea clasă. Celula de intersecție a acestor două coloane prezintă acuratețea clasificatorului, prezentând procentul elementelor clasificate global corect (cu verde) și procentul celor clasificate global incorect (cu roșu). Notațiile folosite pentru clase: 1 – ambulanțe, 2 -mașini de poliție, 3 – mașini de intervenții, 4 – tramvaie, 5 – autobuze, 6 – mașini de tip sedan, 7 – mașini de tip SUV, 8 – dube, 9 – motociclete, 10 – biciclete și 11 – pietoni

sistemului pe o mașină compatibilă cu rețeaua convoluțională folosită fiind recomandată atât rularea sa pe GPU, cât și folosirea calculului paralel drept unealtă de procesare a mai multor imagini paralel.

Odată obținute caracteristicile fiecărei imagini de antrenare, acestea sunt etichetate cu denumirea categoriei de obiecte din care fac parte, urmând apoi să fie procesate de un SVM multi-class pentru obținerea unui clasificator capabil să distingă între cele 11 clase amintite mai sus.

Deși această abordare nu este realizată cu prea mult succes, eventualele încercări de a obține o acuratețe mai mare sunt zadarnice, deoarece s-a constatat că, aplicând clasificatorul video-urilor de testare, rezultatul nu este cel dorit, obiectele fiind mereu greșit clasificate. Acest lucru se întâmplă din cauza neomogenității mulțimii de antrenare cu cea de testare, prima mulțime având imagini de înaltă rezoluție, în timp ce cea de-a doua mulțime are imagini de rezoluție scăzută, la redimensionara impusă de rețeaua AlexNet [9] caracteristicile acestor imagini denaturându-se (acest lucru poate fi evitat prin folosirea unei camere ce captează video-uri de calitate înaltă, dar și prin poziționarea camerei într-un unghi optim față de zona de interes pentru a omogeniza mulțimea de testare cu mulțimea de antrenare). Astfel, apare nevoia creării unei noi abordări ce să ofere rezultate mult mai concludente și corecte.

4.1.2 Antrenarea pe imagini extrase din video-uri

Cea de-a doua abordare se bazează pe rezultatul primei metode abordate (Secțiunea 4.1.1), schimbând de această dată mulțimea de antrenare cu una omogenă cu mulțimea de testare, același proces de obținere a clasificatorului SVM multi-class fiind folosit și aici. Astfel, observațiile legate de restricțiile impuse de mașinăria folosită pentru rularea sistemului rămân valabile și în acest caz.

Pentru crearea mulțimii de antrenare s-a decis folosirea video-urilor ce conțin scene de interes asemănătoare (în cazul sistemului nostru fiind intersecții), pentru care s-au rulat primel 2 module ale acestei aplicații, modulul de segmentare a fundalului static și modulul de urmărire a obiectelor dinamice. O dată la un interval de timp Δ, zona definită de patrulaterul ce caracterizează obiectele dinamice este extrasă și salvată pe disc în format JPEG, pentru ca ulterior să fie clasificată manual.

Figura 4.5 Matricea de confuzie obținută în urma procedeului de validare încrucișată pe baza imaginilor extrase și clasificate manual dintr-un video. Numărul afișat în fiecare în celulele colorate cu verde, repectiv cu roșu arată câte imagini au fost clasificate corect, respectiv incorect, iar procentul de sub acest număr reprezintă procentul astfel clasificat din toate datele folosite la antrenare. Procentele aflate în coloana din dreapta prezintă procentul predicțiilor corecte (cu verde) și procentul celor incorecte (cu roșu), iar procentele aflate pe linia de jos arată procentul imaginilor ce au fost clasificate corect (cu verde) și procentul imaginilor ce au fost clasificare incorect (cu roșu) din totalul imaginilor din acea clasă. Celula de intersecție a acestor două coloane prezintă acuratețea clasificatorului, prezentând procentul elementelor clasificate global corect (cu verde) și procentul celor clasificate global incorect (cu roșu). Notațiile folosite pentru clase: 1 – vehicule, 2 – obiecte ce nu prezintă interes sau halucinațiii, 3 – pietoni

Deoarece acest model presupune clasificarea manuală a mulțimii de antrenare, în contextul obținerii unui sistem autonom, metoda nu prezintă elementele de fiabilitate dorite, fiind necesar să se efectueze din nou antrenarea pentru video-uri cu unghiuri destul de diferite față de cele folosite anterior. Cu toate acestea, rezultatele obținute de acest clasificator sunt clar mai satisfăcătoare, însă dependența sa de o bază de date omogenă cu video-urile pentru care este folosit sistemul face ca acest clasificator să necesite un set de imagini îndeajuns de cuprinzător (însă un astfel de set de date este greu de găsit) sau reantrenări succesive (proces ce consumă mult timp). Astfel, necesitatea unui clasificator ce nu este constrâns de astfel de limitări este clară.

Discriminarea obiectelor pe baza considerentelor geometrice

Deoarece folosirea unui clasificator bazat pe un anumit set de date nu este o metodă ce oferă o clasificare clară și autonomă (dacă setul de date pe care a fost antrenat nu permite acest lucru), este necesară crearea unei abordări ce se bazează pe caracteristicile universale ale obiectelor. Datorită faptului că obiectele dinamice sunt caracterizare de un patrulater, despre acesta putându-se afla lățimea sau lungime, putem considera aceste caracteristici ca fiind acele caracteristici universale căutate.

O dovadă în acest sens se poate obține prin simpla observație precum că fiecare persoană detectată va avea cu siguranță înălțimea mai mare decât lățimea, obținând astfel o primă discriminare între obiectele dinamice, putând concluziona astfel că orice obiect ce nu satisface această condiție este, cel mai probabil, autovehicul. De asemenea se poate constata faptul că orice biciclist va ocupa o arie mai mică din imagine față de o mașină, putând astfel distinge bicicliști de restul obiectelor prin impunerea ariei un parg maxim discriminativ Ψ, ce poate varia în funcție de distanța dintre scena de interes și camera de filmat, peste care toate obiectele vor fi considerate mașini. Astfel, folosind aceste instrumente geometrice se pot discrimina cele 3 clase de obiecte (mașini, bicicliști și pietoni), cu o acuratețe mare și mult mai ușor față de celelalte metode abordate.

Discriminarea obiectelor dinamice în sistemul de interes

Deoarece abordarea ce folosește setul de imagini pus la dispoziție de ImageNet [8] nu oferă rezultatele dorite, fiind dependentă de ungiul de filmare și de rezoluția video-ului, se poate concluziona că celelalte două abordări pot fi folosite cu mai mult succes în sistemul descris. Din cauză că abordarea geometrică este sensibilă la eventualele obstrucții, deși oferă autonomia dorită sistemului de interes, s-a decis ca cea de-a doua abordare (Secțiunea 4.1.2) să fie folosită ca versiune finală în aplicație,datorită faptului că video-urile de testare au caracteristici comune, astfel necesitatea reantrenării clasificatorului dispărând.

Implementarea unui astfel de clasificator s-a relizat prin intermediul unei librării open-source denumită „MatConvNet” [24], librărie special creată pentru Matlab [13]. Aceasta oferă atât posibilitatea folosirii unor rețele convoluționale preantrenate, cât și crearea unor noi astfel de rețele într-un mod simplificat și asistat. Necesitatea acestei librării a venit din faptul că pune la dispoziție rețeaua preantrenată AlexNet [9], simplificând atât obâinerea acestei rețele cât și folosirea ei.

Capitolul 5

Obținerea și contorizarea statisticilor

Detectarea (Capitolul 2), urmărirea obiectelor dinamice (Capitolul 3) și clasificarea obiectelor dinamice (Capitolul 4) reprezintă uneltele principale ale sistemului prin care acesta poate extrage informații despre o anumită scenă de interes. Astfel, folosindu-se de aceste instrumente, sistemul poate extrage statistici variate despre scena monotorizată, statistici enunțate în Secțiunea 1.1.

Statistici obținute din detectarea fundalului static

Una din statisticile ce se doresc a fi obținute pe baza monitorizării unei scene de interes (în cazul acestei lucrări, o intersecție) este imaginea de fundal static aferentă secvenței video ce se poate obține prin intermediul segmentării imaginii de fundal static și obiectelor dinamice. Acestă imagine ilustrează scena monitorizată în care au fost eliminate obiectele dinamice, folosind ideea din spatele obținerii unei imagini medii.

Metoda segmentării abordată oferă o segmentare pixel cu pixel, fiind astfel necesară o abordare matriceală. De-a lungul unui video, aplicând segmentarea fundalului static de obiectele dinamice, pixelul pi,j va avea valoarea 1 doar când acesta nu va fi considerat static, iar 0 altfel. Astfel, putem contoriza valorile pixelilor doar în momentul în care prezintă valoarea 0 prin însumarea acestor valori, dar și prin contorizarea numărului de imagini pentru care acest pixel a avut valoarea 0. Apoi, pentru aflarea valorii medii a acestui pixel, un simplu raport între suma valorilor sale și numărul de apariții validate va oferi valoarea căutată.

Deoarece, într-un video ce se întinde pe parcursul a mai multor ore, condițiile de mediu se schimbă (diminuarea sau creșterea luminozității din imagine sau chiar schimbarea situației meteorologice), este necesară limitarea monitorizării la un interval de timp δ mai mic sau egal cu întreaga durată a video-ului. Acest parametru poate varia în funcție de gradul de aglomerare a-l intersecției și, dacă există, de durata culorii roșu la semafor, fiind necesară monitorizarea chiar și pentru 15 minute a unei intersecții unde culoarea roșie la semafor ține 4 minute.

Timpul obținerii imaginii dorite este dependent atât de rata imaginilor redate de video pe secundă, cât și de capacitatea de procesare a mașinăriei pe care este rulat sistemul, acesta având de procesat (δ * rata de redare a imaginilor) imagini, unele video-uri având și o rezoluție mare (necesitând astfel lucrul cu matrici mai mari).

Figura 5.1 Rezultate obținute în urma rulării sistemului pe 2 video-uri diferite. Imaginile (a) și (c) reprezintă capturi de imagini din video, iar imaginile (b) și (d) reprezintă rezultatele obținute. După cum se poate observa, steagurile din (c) sunt introduse ca fundal static în (d), deși acestea se mișcă în bătaia vântului, tehnica abordată (Secțiunea 2.2.2) oferind o abordare multi-modală. Pentru video-ul reprezentat de (a), intervalului de timp δ i-a fost atribuită valoare de 20 de secunde, deoarece intersecția nu este foarte aglomerată pentru mult timp, în timp ce pentru video-ul reprezentat de (c) intervalul δ a avut valoare de 1 minut, deoarece pe artera principală sunt vizibile multe mașini pentru un timp destul de îndelungat. Astfel, imaginea (b) a fost obțintă în 4 minute din cauza ratei de redare a imaginilor mare (21 de imagini pe secundă), iar (c) într-un minut datorită ratei de redare a imaginilor mică (12 imagini pe secundă)

Statistici obținute din urmărirea obiectelor dinamice

Urmărirea obiectelor dinamice într-un scenariu pote oferi diverse statistici relevante legate de traiectoriile acestora. O primă astfel de statistică poate fi oferită, rapid, prin memorarea și afișarea locației centrului fiecărui blob, centru oferit de caracteizarea fiecărui blob (Secțiunea 3.1).

Figura 5.2 Rezultate obținute în timpul urmăririi obiectelor dinamice segmentate anterior

De asemenea, pe baza contorizării localizărilor într-o anumită locație, se poate calcula densitatea drumurilor ce trec prin aceasta.Calcularea densității se efectuează la nivel de pixel, datorită abordării matriceale a imaginilor din video. Astfel, o matrice auxiliară va contoriza fiecare localizare a obiectelor dinamice pe pixelul aferent centrului oferit de caracterizarea obiectului.

Figura 5.3 Densitatea drumurilor într-un video de test pentru o anumită zonă de interes (marcată cu roșu). După cum se poate observa, tipare de drumuri clare se pot observa în imagine, oferind astfel infomații despre modul de conducere a majorității șoferilor prin acea intersecție

Statistici obținute din clasificarea obiectelor dinamice

Ultimele statistici de interes ale sistemului descris sunt cele obținute prin intermediul clasificatorul descris în Secțiunea 4.1.2. Pe baza clasificării tuturor obiectelor dinamice din imaginile ce fac parte din video-ul examinat, se pot contoriza obiectele pe clasele de apartenență. Astfel, la finalul examinării, o contorizare cu o acuratețe de cel puțin 85% este disponibilă pentru a fi prelucrată mai departe, în funcție de necesitățile existente. De asemenea, pentru fiecare oră se pot obține contorizările obiectlor dinamice aferente lor. Pentru obținerea acestor statistici pe ore, este necesară inițializarea unui parametru ζ cu ora exactă de început a fișierului video.

Figura 5.4 Rezultatele clasificării obiectelor dinamice din imaginea curentă a unui video

Capitolul 6

Concluzii

Scopul prezentei lucrări este de a crea un sistem ce poate oferi, cu o intervenție minimă din partea omului, statistici legate de o scenă de interes, mai exact intersecția. În vederea obținerii acestui sistem, au fost abordate mai multe metode, a căror performanță a fost discutată în capitolele aferente metodei.

Pentru segmentarea fundalului static de obiectele dinamice, s-a constatat că o abordare ce nu ține cont de schimbările de mediu ce pot apărea de-a lungul unui video nu este viabilă, deoarece scenele se doresc a fi monitorizate pentru o prioadă îndelungată, chiar și zile. Astfel, o abordare reprezentativă și comună în domeniul vederii artificiale a fost implementată cu succes, folosind modelul mixturilor Gaussiene. Pe baza acestei metode, s-a putut oferi o primă statistică rezultată din monitorizarea scenei de interes, și anume imaginea în care obiectele dinamice au fost eliminte din scenă.

Pentru urmărirea obiectelor s-a folosit cu succes filtrul Kalman [7]. Acesta oferă o complexitate spațio-temporală foarte mică, fiind necesară doar cunoașterea locației precedente a obiectului pentru estimarea unei zone cu probabilitate mare de apariție a acestuia. Pentru a putea face o astfel de predicție a fost necesară folosirea ipotezei precum că obiectele se vor mișca cu o viteză constantă. Astfel, pe baza localizării obiectelor dinamice s-au obținut statistici în legătură cu drumurile aferente fiecărui obiect în parte, dar și o centralizare a acestor drumuri sub forma densității traiectoriilor tuturor obiectelor.

Pentru clasificarea obiectelor s-a preferat folosirea unui clasificator ce oferă o acuratețe crescută, cu toate că se pierde din autonomia sistemului (clasificatorul trebuie reantrenat pentru video-uri ce fac un unghi cu scena de interes mult diferit de cel folosit pentru antrenarea clasificatorului). Trei metode au fost abordate, una ce folosește setul de imagini oferit de ImageNet [8] și altă abordare ce încearcă crearea unui clasificator independent de modul în care a fost monitorizată scena de interes, însă acestea nu au oferit acuratețea dorită. Un astfel de clasificator oferă statistici legate de clasa din care face parte obiectul respectiv (vehicule, obiecte ce nu prezintă interes sau halucinațiii, pietoni), putând astfel contoriza numărul obiectelor dintr-o anumită clasă ce tranzitează scena monitorizată, atât pe toată durata monitorizării, cât și pe intervale orare.

Sistemul astfel descris realizează cu succes monitorizarea unei intersecții în care nu au loc obstrucționări multiple între obiectele dinamice pentru o perioadă îndelungată de timp, extrăgând statistici variate ce pot determina o serie de decizii legate de managerierea zonei supravegheate. Sistemul, implementat în forma s-a actuală, nu poate fi folosit pentru monitorizarea în timp real a unei intersecții (din caza implementării sale în Matlab [13], un limbaj ce nu oferă rapiditatea calculelor necesară unei astfel de supraveghieri sistemului implementat), transcrierea sa într-un limbaj de programare ce oferă rapiditatea efectuării calculelor necesare mult mai rapid decât în limbajul de programare actual putând duce la folosirea sa pentru monitorizarea unei scene de interes în timp real.

Bibliografie

[1] Sergio A Velastin, Paolo Remagnino, Institution of Electrical Engineers, „Intelligent distributed video surveillance systems”, Norwood Mass. : Books24x7.com, [2005]

[2] http://www.mobese.com.tr/en/services/road-and-pass-safety/23

[3] V. Morellas, I. Pavlidis, P. Tsiamyrtzis, „DETER: Detection of events for threat evaluation and recognition”, în „Machine Vision and Applications (2003)”, Springer-Verlag Berlin/Heidelberg 2003

[4] http://gotchasurveillance.com/

[5] P. Kaewtrakulpong, R. Bowden, „An Improved Adaptive Background Mixture Model for Realtime Tracking with Shadow Detection”, In Proc. 2nd European Workshop on Advanced Video Based Surveillance Systems, AVBS01, VIDEO BASED SURVEILLANCE SYSTEMS: Computer Vision and Distributed Processing (September 2001)

[6] Stauffer C. and Grimson W.E.L, „Adaptive Background Mixture Models for Real-Time Tracking”, Computer Vision and Pattern Recognition, IEEE Computer Society Conference on, Vol. 2 (06 August 1999), pp. 2246-252 Vol. 2.

[7] Welch, Greg, and Gary Bishop, „An Introduction to the Kalman Filter”, TR 95–041. University of North Carolina at Chapel Hill, Department of Computer Science.

[8] ImageNet, http://www.image-net.org

[9] Krizhevsky Alex, Ilya Sutskever, and Geoffrey E. Hinton. „ImageNet Classification with Deep Convolutional Neural Networks" Advances in neural information processing systems. 2012.

[10] Allwein, E., R. Schapire, and Y. Singer. „Reducing multiclass to binary: A unifying approach for margin classifiers" Journal of Machine Learning Research. Vol. 1, 2000, pp. 113–141.

[11] Ahmed Nabil Mohamed and Mohamed Moanes Ali, „Human Motion Analysis, Recognition and Understanding in Computer Vision: A Review”, pp. 1928 – 1946, Journal of Engineering Sciences, Assiut University, Faculty of Engineering, Vol. 41, No. 5, September,2013

[12] OpenCV, http://opencv.org/

[13] MATLAB, 9.0.0.341360 (R2016a), Natick, Massachusetts: The MathWorks Inc., 2016.

[14] Wren, Christopher R., Ali Azarbayejani, Trevor Darrell, and Alex Pentland. „Pfinder: Real-Time Tracking of the Human Body” In IEEE Transactions on Pattern Analysis and Machine Intelligence, July 1997, vol 19, no 7, pp. 780-785.

[15] Shaun Dowling, Supervisor: Dr. Colin Campbell, „Dirichlet Process Mixture Models and their application in bioinformatics”, http://dirichletprocess.weebly.com/clustering.html

[16] Erik Cuevas, Daniel Zaldivar și Raul Rojas, „Kalman filter for vision tracking”, Freie Universität Berlin, Institut für Informatik, Universidad de Guadalajara, Technical Report B 05-12, 10th August 2005
[17] Munkres, James, „Algorithms for Assignment and Transportation Problems" Journal of the Society for Industrial and Applied Mathematics, Volume 5, Number 1, March, 1957

[18] Jodoin, J.-P., Bilodeau, G.-A., Saunier, N., „Urban Tracker: Multiple Object Tracking in Urban Mixed Traffic”, Accepted for IEEE Winter conference on Applications of Computer Vision (WACV14), Steamboat Springs, Colorado, USA, March 24-26, 2014

[19] Jeremy Karnowski, „Alexnet Visualisation”, https://jeremykarnowski.wordpress.com/2015/07/15/alexnet-visualization/

[20] MathWorks, https://www.mathworks.com/examples/matlab-computer-vision/mw/vision_product-DeepLearningImageClassificationExample-image-category-classification-using-deep-learning

[21] Meyer D, Leisch F., Hornik K. (2003). „The support vector machine under test". Neurocomputing. 55: 169. doi:10.1016/S0925-2312(03)00431-4

[22] NVIDA, http://www.nvidia.com/object/cuda_home_new.html

[23] Cyc, https://commons.wikimedia.org/wiki/File:Svm_max_sep_hyperplane_with_margin.png

[24] A. Vedaldi, K. Lenc. MatConvNet: „Comvolutional Neural Network for MATLAB”, http://www.vlfeat.org/matconvnet/

Similar Posts