aplicaţii ale tehnologiilor de procesare a imaginilor ... iii.pdf · bordul unui vehicul să se...

29
Titlul proiectului Aplicaţii ale tehnologiilor de procesare a imaginilor video în domeniul automotive pentru vehicule autonome şi siguranţa circulaţiei Acronim: SafetyMotive Durata proiectului: 24 luni, 01/10/2016 - 30/09/2018 Cuprins: Obiective generale Obiectivele fazei de execuţie Rezumatul fazei Descrierea ştiinţifică şi tehnică Anexe Concluzii Bibliografie Obiective generale Proiectul are o serie de obiective generale orientate către agentul economic şi o serie de obiective necesare pentru buna desfăşurare a proiectului sau utile coordonatorului. Obiectivele principale ce rezultă din cele 4 pachete de lucru descrise mai jos sunt: • dezvoltarea relaţiilor de colaborare universitate agent; • transferul de know-how către agentul economic; • îmbunătăţirea cunoştinţelor şi capacităţii inovatoare a absolvenţilor prin stagii, master/doctorat pentru dezvoltarea resursei umane la nivelul agentului economic; • interconectarea expertizei coordonatorului cu a agentului economic pentru extinderea portofoliului de produse; • realizarea unor componente software de procesare video cu aplicaţii în siguranţa traficului, migrarea lor pe tehnologia existentă la agentul economic (AE) şi testarea pe standurile existente la AE, la standarde impuse în acest segment; • realizarea unor componente software de procesare video cu aplicaţii în conducere autonomă, migrarea lor pe tehnologia existentă la AE şi testarea pe standurile existente la AE, la standarde impuse în acest segment; • dezvoltarea portofoliului de produse în concordanţă cu tendinţele mondiale. Obiectivele fazei de execuţie: O1.3 Transferul de know-how catre agentul economic O2.3 Imbunatatirea competentelor si cunostintelor tehnico aplicative ale studentilor O3.3 Stimularea insertiei profesionale a absolventilor O4.3 Dezvoltarea si implementarea unor algoritmi pentru asistenta conducatorului auto O5.3 Intelegerea problematicii tehnico-economice si identificarea unor noi posibile produse

Upload: others

Post on 13-Sep-2019

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

Titlul proiectului

Aplicaţii ale tehnologiilor de procesare a imaginilor video în domeniul

automotive pentru vehicule autonome şi siguranţa circulaţiei

Acronim: SafetyMotive

Durata proiectului: 24 luni, 01/10/2016 - 30/09/2018

Cuprins:

Obiective generale

Obiectivele fazei de execuţie

Rezumatul fazei

Descrierea ştiinţifică şi tehnică

Anexe

Concluzii

Bibliografie

Obiective generale

Proiectul are o serie de obiective generale orientate către agentul economic şi o serie de obiective

necesare pentru buna desfăşurare a proiectului sau utile coordonatorului. Obiectivele principale

ce rezultă din cele 4 pachete de lucru descrise mai jos sunt:

• dezvoltarea relaţiilor de colaborare universitate – agent;

• transferul de know-how către agentul economic;

• îmbunătăţirea cunoştinţelor şi capacităţii inovatoare a absolvenţilor prin stagii, master/doctorat

pentru dezvoltarea resursei umane la nivelul agentului economic;

• interconectarea expertizei coordonatorului cu a agentului economic pentru extinderea

portofoliului de produse;

• realizarea unor componente software de procesare video cu aplicaţii în siguranţa traficului,

migrarea lor pe tehnologia existentă la agentul economic (AE) şi testarea pe standurile existente

la AE, la standarde impuse în acest segment;

• realizarea unor componente software de procesare video cu aplicaţii în conducere autonomă,

migrarea lor pe tehnologia existentă la AE şi testarea pe standurile existente la AE, la standarde

impuse în acest segment;

• dezvoltarea portofoliului de produse în concordanţă cu tendinţele mondiale.

Obiectivele fazei de execuţie:

O1.3 Transferul de know-how catre agentul economic

O2.3 Imbunatatirea competentelor si cunostintelor tehnico aplicative ale studentilor

O3.3 Stimularea insertiei profesionale a absolventilor

O4.3 Dezvoltarea si implementarea unor algoritmi pentru asistenta conducatorului auto

O5.3 Intelegerea problematicii tehnico-economice si identificarea unor noi posibile produse

Page 2: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

Rezumatul fazei

Faza a 3-a 2018 a proiectului a presupus 9 activităţi grupate pe 4 categorii: 2 studii şi 3

tipuri aplicaţii.

În primul rând a fost realizată o selecţie a unor studenţi pentru implicarea în proiect, în urma

căreia a fost selectat şi angajat un student masterand.

In cadrul celor 2 studii s-a studiat literatura de specialitate şi s-au ales cele mai

reprezentative articole pe tema recunoaşterii de obiecte prin procesare video şi de detecţie a

traiectoriei. Prima operaţie necesară este filtrarea imaginii pentru a înlătura zgomotul provenit de

la cameră, urmată de eliminarea fundalului. Problema este mai complicată atunci când fundalul

nu este unul fix şi variază de la un cadru la altul. Pentru detecţia obiectelor sunt folosite diverse

metode morfologice: segmentare, eroziune, dilatare. Alte metode sunt bazate pe inteligenţă

artificială. Odată detectate, obiectele sunt localizate prin coordonate. Tehnica de urmărire poate

aduce avantaje atunci când obiectele sunt acoperite de altele, însă necesită putere mare de

procesare. Pe baza unor regiuni dintr-o imagine, se poate căuta noua poziţie a acesteia în

imaginea următoare. Astfel algoritmi ca Boosting, MIL, KFC folosesc acest procedeu în diverse

variante. Un alt algoritm foloseşte o comparaţie cu cadrul precedent şi cu cel următor, dar cel

mai performant este bazat pe reţele neuronale

Activităţile 3 şi 4 au fost orientate pe detecţia unor obiecte din trafic, cum ar fi semne de

circulaţie şi semafoare, importante pentru atenţionarea şoferului sau pentru un vehicul autonom.

Doi dintre studenţii angajaţi în proiect, coordonaţi de către profesori au studiat problematica şi au

dezvoltat doi algoritmi: unul bazat pe clasificatori SVM şi caracteristici de tip histogramă de

gradienţi orientaţi. S-au obţinut rate de detecţie de peste 80%, dar rate de recunoaştere de 50% şi

al doilea bazat pe o tehnică de machine learning numită fast R-CNN combinată cu RPN şi rulată

pe un procesor GPU ce permite o detecţie cu acurateţe mare şi cu procesare în timp real.

Activităţile 4 şi 5 s-au concentrat pe aflarea distanţei faţă de un obiect, respectiv un vehicul.

Utilizând un algoritm de detecţie a obiectelor numit YOLO (machine learning), urmată de o

detecţie a marginilor şi o procesare în spaţiul HSV pentru aflarea dimensiunilor în pixeli. Prin

calibrare cu imagini la distanţe cunoscute se calculează distanţa faţă de acesta. Procesarea se face

de asemenea pe procesor GPU cu 4 core-uri, rezultând o viteză de procesare de 15 fps.

Activităţile 6 şi 7 au folosit o procesare pe FPGA şi o fuziune cu datele provenite de la GPS.

S-a obţinut de asemenea o estimare a distanţei faţă de un autovehicul dar şi a vitezei acestuia.

Pe parcursul acestei etape au fost elaborate 6 lucrări ştiinţifice care au fost trimise şi

acceptate spre publicare la o conferinţă ISI. De asemenea este în curs de elaborare o propunere

de brevet de invenţie.

La final a fost realizat un workshop împreună cu partenerul de proiect pentru diseminarea şi

transferul rezultatelor. Având în vedere dificultatea obţinerii drepturilor de proprietate asupra

cercetărilor, s-a convenit ca momentan acestea să revină Contractorului, urmând ca ulterior să se

realizeze transferul către partenerul economic.

Page 3: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

A3.1. Studiu privind algoritmii de detecţie a unor obiecte de interes în câmpul vizual al

autovehiculelor

În ultimii zece ani, odată cu apariția automatizării a intervenit nevoia de a preveni

pericolele cauzate de forța de muncă, prin trecerea de la manual la automat. În cadrul

autovehiculelor, pentru ca o mașina să funcționeze în parametrii impuși și să respecte regulile de

circulație, este necesar un mod de monitorizare a mediului înconjurător. De aceea, s-a decis, ca la

bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca

prelucrarea acestora să se realizeze în timp real.

Pentru detectarea traiectoriei unui obiect sunt necesare a fi luate în considerare o serie de

condiții, printre care ocluziunea obiectului, distorsionarea parametrilor, probleme în privința

iluminării și mișcările rapide ale obiectului. Având în vedere aceste aspecte, este necesar un

algoritm pentru determinarea traiectoriei și vitezei, care trebuie să fie robust.

Pentru detectarea obiectelor se pot folosi o serie de caracteristici, precum culoarea,

modelul obiectului, marginile acestuia, intensitatea și structura.

Extracţia fundalului În cadrul acestui algoritm se folosește „scăderea fundalului” (background subtraction)

pentru detectarea și urmărirea obiectelor. O caracteristică importantă a sa este faptul că poate fi

rulat în timp real. Ideea de bază constă în faptul că se scad pixelii de la aceleaşi coordonate, iar

valoarea rezultată se compară cu o valoare de prag și astfel se poate estima unde se află obiectul.

Fiecare pixel pentru care se obţine valoarea peste prag atunci primește valoarea 1 (obiect), iar

pixelii de sub prag primesc valoarea 0 (fundal). În consecință, rezultă o imagine binară.

Imaginea astfel obținută este filtrată pentru a înlătura zgomotul (poate cauza urmărirea

obiectului în mod eronat). Una dintre tehnicile de filtrare constă în estomparea imaginii (blur),

pasul următor fiind de a detecta obiectul cu conturul cel mai pronunțat. Scopul filtrării este de a

netezi contururile obiectului în deplasare prin unirea întreruperilor înguste și a umple spațiile

libere din obiect.

Pentru a detecta un obiect corect, se alege o suprafață corespunzătoare, iar dacă

dimensiunea obiectului este mai mică decât suprafața respectivă, obiectul respectiv este exclus.

Un alt aspect este acela că, după aplicarea filtrării, nu mai există pixeli cu valoarea 0 în interiorul

obiectului, ceea ce înseamnă că în vecinătatea pixelului curent se găsesc alți 8 pixeli cu valoarea

1. Obiectul detectat va fi urmărit pe baza coordonatelor care vor corespunde centrului obiectului.

Astfel, obiectul respectiv se va găsi la coordonatele: I(x,y).

În lucrarea [2], autorii folosesc un filtru median pentru a înlătura zgomotul din imagini.

Algoritmul implementat de autori este etapizat în 5 pași: etapa de pretratare, modelare în fundal,

detectarea țintei, etapa de post-tratare și detecția și urmărirea obiectelor în mișcare.

În etapa de pretratare, se realizează o netezire în domeniul spațiu-timp pentru a reduce

zgomotul de la cameră. De asemenea, este redus și zgomotul tranzitoriu (ploaie sau zăpadă). În

etapa de modelare în fundal, se folosesc filtrele de medie și cel median. Filtrul de medie este un

simplu filtru spațial cu o fereastră glisantă care înlocuiește valoarea din centru în fereastră cu o

medie a tuturor valorilor pixelilor din fereastră. Filtrul median ajută la înlăturarea zgomotului de

impuls. În etapa de detecție a țintei se implementează algoritmul de diferența de fundal. În

ultima etapă, de post-tratare se corectează eventualele zgomote și interferențe prin operațiile de

filtrare morfologică. Una dintre aceste operații este închiderea morfologică, care este realizată

prin combinarea dilatării și eroziunii. Beneficiul acestei operații este netezirea contururilor

obiectelor.

Page 4: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

În lucrarea [3], este prezentată urmărirea obiectului în 3 faze: faza de detecție, de

urmărire și de evaluare. În faza de detecție se folosește segmentarea în prim plan și reducerea

zgomotului. Modelul de filtru Gaussian adaptiv (MoAG) este propus pentru a realiza

segmentarea în prim plan în mod eficient. În faza de urmărire se folosește detecția pată, precum

și segmentarea pentru a urmări obiectul în deplasare din fundalul static. În faza de evaluare se

extrag caracteristicile și se aplică o clasificare, cum ar fi clasificatorul J48, bazat pe arbore de

decizie.

Anumite probleme sunt legate de iluminare şi mai ales de cea dinamică. Diverse metode

sunt utilizate (Gaussian Mixing Model) sau modelul de fundal Eigen. Concluzia care se

desprinde este că, cu cât se iau în considerare mai multe condiții complexe, cu atât necesarul de

putere de calcul este mai mare și este posibil ca aplicația sa nu ruleze în timp real.

Uneori se impun constrângeri la nivel spațial și temporal pentru a identifica obiectul și a

înlătura pixelii de fundal care nu sunt necesari prin integrarea operației la nivel de regiune. Un

model de fundal trebuie să se adapteze la o serie de schimbări dinamice: locale (copaci, apa

curgătoare) și globale (schimbări de rezoluție sau luminozitate).

În lucrarea „Tracking Multiple Moving Objects based on combined Color and Centroid

feature in Video Sequence”, autorii Sunitha M. R., H. S. Jayanna și Ramegowda propun o

metodă prin care urmărirea obiectului se realizează prin centrul și culoarea acestuia. Se folosește

tehnica Greedy pentru a determina centrul obiectului în următorul cadru.

Page 5: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

A3.2. Studiu privind algoritmii de detecţie a traiectoriilor obiectelor vizualizate in imagini

succesive

Urmărirea unui obiect în cadrul viziunii computerului reprezintă localizarea obiectului

prin intermediul unor cadre succesive ale unui video. Dintre metodele dezvoltate până acum se

enumere: fluxul optic dens (cu care se estimează un vector de mișcare a fiecărui pixel dintr-un

cadru video), flux optic împrăștiat (care urmărește locația a câtorva caracteristici din imagine),

filtrul Kalman (pentru prezicerea locației unui obiect în deplasare folosind informația

anterioară), Meanshift și Camshift (algoritmi folosiți pentru determinarea unei ferestre în care o

funcție de densitate are valoare cea mai mare), precum și algoritmi de urmărirea a unui singur

sau a mai multor obiecte.

Pentru ca un algoritm de urmărire a unui obiect să se realizeze în timp real, trebuie ca

puterea de calcul a dispozitivului pe care se face prelucrarea să fie suficientă. Un avantaj al

urmăririi obiectelor spre deosebire de algoritmii de detectare, care s-ar realiza la fiecare cadrul

este acela că, pentru algoritmii de urmărire se pot folosi unele informații obținute în cadrele

precedente, cum ar fi caracteristicile obiectului, locația și direcția de deplasare. Totuși, se

întâmplă ca obiectul urmărit să nu mai fie detectat din cauza ocluziunii, ori a deplasării acestuia

rapide, algoritmul neavând timp suficient pentru a-l detecta. De asemenea, algoritmii pot

acumula erori. De aceea, la un interval de timp se va rula detecția obiectului.

Algoritmii de detectare sunt antrenați pe un număr mare de exemple ale obiectului care

urmează a fi urmărit, pentru a crește acuratețea detectării. Pe de altă parte, algoritmii de urmărire

dețin mai multe informații despre o instanță specifică a obiectului pe care îl urmăresc.

Un alt avantaj al algoritmilor de urmărire este că ei pot, în cele mai multe cazuri,

cunoaște locația obiectului, chiar dacă acesta a fost acoperit și a revenit în prim plan, spre

deosebire de algoritmii de detectare, care de cele mai multe ori vor eșua.

Un alt aspect ar fi că algoritmii de detectare au atașat fiecărui obiect o etichetă și se

cunoaște în fiecare cadru dacă obiectul urmărit este o minge sau un câine spre exemplu. Pentru

algoritmii de detectare, în două cadre diferite nu se știe dacă este vorba despre același obiect.

În OpenCV s-a dezvoltat un API care conține implementarea a mai multor algoritmi de

urmărire a unui singur obiect. În versiunea 3.2 există 6 astfel de algoritmi: Boosting, MIL, KCF,

TLD, MedianFlow și GoTurn.

Algoritmii de urmărire se bazează pe faptul că au detectat obiectul în primul cadru și îl

urmăresc în următoarele cadre până când acesta iese din vedere. Se definește modelul de

mișcare modelul în care se cunoaște localizarea și viteza obiectului din cadrele precedente.

Modelul de aspect este dat de caracteristicile obiectului extrase din cadrele anterioare. Modelul

de aspect poate fi folosit pentru a căuta într-o mică vecinătate a locației prezise de modelul de

mișcare pentru a îmbunătăți acuratețea predicției locației obiectului.

Dacă obiectul urmărit este mic și nu își schimbă aspectul foarte mult, atunci se poate

folosi un șablon al modelului de aspect. Totuși, obiectul respectiv își poate schimba aspectul

foarte mult de la un cadru la cadru. Pentru a rezolva această problemă, în majoritatea algoritmilor

de urmărire se folosește un clasificator care se antrenează online. Sarcina clasificatorului este ca

să determine dacă o zonă demarcată printr-un dreptunghi este fie un obiect sau fundal.

Clasificatorul preia zona respectivă ca o valoare de intrare și scoate la ieșire o valoare între 0 și 1

pentru a indica probabilitatea imaginii de a conține obiectul. Valoarea de 0 îi corespunde în

totalitate fundalului, iar valoarea de 1 este în întregime un obiect.

Page 6: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

În învățarea prin intermediul unei mașini, termenul „online” este folosit pentru antrenarea

algoritmilor de urmărire în timpul funcționării. Un clasificator „offline” îi sunt necesare mii de

exemple pentru a antrena un algoritm, în timp ce un clasificator „online” se antrenează folosind

doar câteva exemple la pornire.

Un clasificator este antrenat prin alimentarea cu exemple pozitive și negative ale

obiectului. Dacă obiectul urmărit este un câine, se folosesc spre exemplu 1000 de instanțe

pozitive ale unui câine și 1000 de instanțe negative.

După cum am amintit anterior, în cadrul bibliotecii OpenCV au fost implementați

următorii algoritmi de urmărire: Boosting, MIL, KCF, TLD, Median Flow și GoTurn.

Algoritmul Boosting folosește un clasificator online, care trebuie antrenat la rulare cu

exemple pozitive și negative ale obiectului. Zona delimitată de utilizator sau de către un alt

algoritm de detectare este luată ca un exemplu pozitiv al obiectului și celelalte imagini din afara

căsuței sunt tratate ca fundal. La următorul cadru, clasificatorul rulează pe fiecare pixel din

vecinătatea locației anterioare și valoarea returnată de clasificator este memorată. Noua locație a

obiectului este cea în care s-a detectat valoarea cea mai mare. Această detecție este adăugată la

clasificator ca exemplu pozitiv. În următoarele cadre, clasificatorul este actualizat în mod

continuu cu informația suplimentară. Dezavantajele majore ale acestui algoritm le reprezintă

performanța mediocră și faptul că nu se știe când urmărirea a eșuat.

Algoritmul MIL (multiple instanțe de învățare) este similar cu algoritmul Boosting, cu

deosebirea că, în loc să considere locația curentă a obiectului drept un exemplu pozitiv, căutarea

se realizează și într-o vecinătate în jurul obiectului pentru a genera câteva exemple potențial

pozitive. Deosebirea față de algoritmul anterior este că de data aceasta nu se mai folosesc

exemple pozitive sau negative, ci „pungi” pozitive sau negative. Colecția de imagini în „punga”

pozitivă nu conține în totalitate numai exemple pozitive. În schimb, numai o imagine din colecție

trebuie să fie pozitivă.

Superioritatea acestui algoritm este dată de faptul că, deși este posibil să nu se găsească

cu exactitate obiectul căutat, prin căutarea în vecinătatea lui, în „punga” respectivă se poate găsi

un obiect care să fie centrat corect. Avantajele sunt o performanță destul de bună și urmărirea

obiectului se poate realiza și sub ocluziune parțială. Dezavantajul ar fi că algoritmul pierde

poziția obiectului dacă se află sub ocluziune totală, iar algoritmul nu poate raporta eșecul

urmăririi.

Algoritmul KCF (filtre de corelație cu nucleu) este îmbunătățit prin folosirea celor 2

algoritmi prezentația anterior. Acest algoritm se folosește de faptul că mai multe imagini pozitive

determinate de algoritmul MIL în vecinătate se suprapun și prin folosirea unor proprietăți

matematice, algoritmul KCF execută urmărirea mai rapidă și cu o acuratețe mai bună a

obiectului. Avantajul acestui algoritm este că indică mai bine dacă urmărirea a eșuat, iar

dezavantajul e că nu își poate reveni după ocluziune totală.

Algoritmul TLD (urmărire, învățare și detecție) descompune procesul de urmărire al

obiectului în 3 etape, după cum este și numele metodei. Autorul lucrării explică folosirea

detectorului pentru „a determina caracteristicile obiectului pentru a corecta urmărirea dacă este

necesar. În etapa de învățare se estimează erorile detectorului și se actualizează acesta pentru a

evita erorile pe viitor.” O problemă care apare la acest algoritm este că dacă se urmărește un

pieton și se intersectează cu un alt pieton, este posibil ca urmărirea să se realizeze pentru celălalt

pieton. Cu toate acestea, avantajul este că algoritmul este robust în urmărirea unui obiect la

schimbări de scară mari, mișcări bruște și ocluziune. Dezavantajul major este că algoritmul

Page 7: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

generează o mulțime de exemple fals pozitive, din acest motiv algoritmul fiind aproape

inutilizabil.

Algoritmul cu flux median (MedianFlow) urmărește obiectul înainte și înapoi în timp

și măsoară discrepanțele dintre cele 2 traiectorii. Prin minimizarea erorii înainte-înapoi se

permite detectarea cu acuratețe a eșecului urmăririi și selectarea traiectoriei corespunzătoare în

cadrele din video. Acest algoritm funcționează cel mai bine când mișcarea este predictibilă și

mică. Spre deosebire de ceilalți algoritmi de urmărire care continuă să funcționeze și după ce a

eșuat urmărirea, acest algoritm știe când urmărirea a eșuat. Avantajele este că se raportează cu

precizie eșecul urmăririi când mișcarea este predictibilă și fără ocluziune, iar dezavantajul este că

nu face față mișcării bruște a obiectului.

Algoritmul GoTurn este bazat pe o rețea neuronală convoluțională (CNN). Este singurul

algoritm care folosește un model de antrenare offline și din acest motiv este mai rapid decât

ceilalți algoritmi. Din documentație se prezintă că algoritmul este „robust la schimbările

punctului de observație, a iluminării și a deformațiilor”. Dezavantajul este acela că nu tratează

ocluziune în mod corespunzător.

O abordare la nivel adaptiv în privința urmăririi unui obiect pe cale vizuală

(Adaptive Approach in Visual Object Tracking)

Tehnica constă în detectarea mișcării unui obiect pe baza unui model de aspect. Dacă

obiectul țintă care nu a suferit niciun fel de schimbări, precum distorsiuni, acesta este validat în

forma sa actuală și apoi se actualizată cu modelul aspect folosind validarea cu caracteristicile

înainte (forward feature validation). În caz contrar, se folosește modelul de validare înapoi

(backward model validation) unde se actualizează aspectul invalid al obiectului, urmând ca să se

valideze modelul conținând caracteristicile.

Astfel, metoda propusă are ca scop urmărirea obiectelor sub formă generativă și hibridă

printr-un algoritm robust și de regresie liniară. În contrast cu metodele existente, precum

algoritmul “pătratic cu pragul cel mai puțin fin”, problema modelării termenului de eroare cu

distribuția Gaussiană poate fi rezolvat eficient. Identificarea obiectului țintă pe baza

caracteristicilor lui poate fi realizată printr-un cadru cu filtru de particule, în care particulelor li

sunt atribuite ponderi și sunt reeșantionate prin apropiere din plaja de valori a modelului.

Schimbările de aspect drastice, cauzate de variația aspectului sau de ocluzie sunt

detectate, modelul de aspect este duplicat în plaja de valori a modelului, unde modelul duplicat

rămâne constant și cel original continuă să fie actualizat cu informația provenită.

Metoda este numită „validarea aspectului înainte”, deoarece prin adaptarea modelului de

aspect, valorile caracteristicilor sunt încărcate și apoi validate. Informația de aspect a obiectului

în următorul cadru este verificată înapoi pentru toate modelele aspect în plaja de valori a

modelului.

Algoritmul propus combină urmărirea obiectului cu validare înapoi (BVT) cu modelul de

validare înainte (FVT) în caz de ocluzie, variație a aspectului, mișcări bruște.

Metode: 1) O ieșire nucleu structurată cu vector mașină suport (SVM), care prin antrenare online

furnizează urmărirea adaptivă a obiectului țintă.

2) Urmărirea prin învățare pe instanțe multiple (MIL) – algoritmul bazat pe optimizarea instanței

bazate pe probabilități, se obțin rezultate superioare cu performanță în timp real, metodă cu

caracteristică lacomă.

Page 8: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

3) Descompunerea urmăririi vizuale – funcționare robustă, câteva tipuri de aspect și schimbările

în mișcare ale obiectului au loc în același timp. Analiza componentelor principale împrăștiate

(SPCA) are ca dezavantaj separarea a doua obiecte care sunt similare și unul în apropierea

celuilalt.

Sistemul propus: Urmărirea obiectului pe cale vizuală se bazează pe filtrul de particule. Obiectul țintă este

recunoscut prin intermediului unei metode de detectare sau va fi detectat manual. Caracteristicile

de aspect ale țintei sunt extrase folosind analiza componentei principale în mod incremental

(IPCA) și prin metoda cu rădăcina cea mai puțin fină se calculează și se folosește împreună cu

plaja de valori a modelului de aspect. Pentru urmărire se folosesc următoarele modele: cadrul cu

filtru de particule, modelul de mișcare și modelul de aspect.

Analiza experimentală: Scenele interioare sau exterioare cu aspect provocator în privința aspectului și a variației

iluminării, mișcării rapide, rotației în afara planului și a ocluziunii. Pe un calculator obișnuit,

algoritmul rulează la 3 cadre pe secundă. Performanța este evaluată în pixeli bazați pe rata de

suprapunere.

Validarea și actualizarea sunt realizate folosind valori de prag pentru secvențele video de

intrare. Urmărirea obiectului folosind modelul de validare înapoi funcționează prin actualizarea

modelului de aspect în primul rând, urmând folosirea informației de la cadrul care sosește pentru

a verifica dacă actualizarea modelului aspect are un model valabil sau nu.

O abordare de deplasare a camerei cu un vehicul aerian fără pilot

(Camshift Approach with a UAV)

Această metodă constă în folosirea filtrului Kalman și a metodei meanshift. La nivel

general, această metodă constă în calcularea valorii pentru histogramă a obiectului urmărit și

căutarea acestuia prin intermediul unei ferestre. Dacă obiectul nu se află în fereastra respectivă,

adică dacă distribuția pixelilor în acea regiune este mică, înseamnă că obiectul căutat nu se află

în acea locație. În consecință, fereastra se deplasează până se găsește obiectul, într-un număr de

iterații.

Distribuția pixelilor și căutarea ferestrei cu densitatea cea mai bună

Un dezavantaj al metodei Meanshift este acela că fereastra nu se adaptează, iar prezența

obiectului la distanța sau din apropiere nu schimbă dimensiunea ferestrei. Prin urmare, rezultă un

timp de calcul mai îndelungat, indiferent de deplasarea obiectului. În acest scop, Gary Bradsky a

publicat o metodă îmbunătățită celei oferite de Meanshift, denumită CAMShift (Continuously

Adaptive Meanshift), în care, în urma convergerii metodei Meanshift, fereastra se actualizează

după următoarea formulă.

Page 9: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

𝑠 = 2𝑥√𝑀00

256

De asemenea, se realizează calcularea orientării celei mai bune elipse. Se reîncepe

procesul de căutare a densității pixelilor în noua fereastră.

Algoritmul de urmărire Camshift este bazat pe principiul algoritmului Meanshift și are o

distribuție dinamică. Mișcarea obiectului este anticipată pentru a urmării în mod continuu

obiectul de-a lungul cadrelor. Se face conversia de la spațiul de culori RGB la HSV pentru a

reduce efectul intensității luminii.

Pentru implementarea algoritmului, se localizează fereastra de căutare, cu ajutorul

metodei Meanshift, în care se selectează componentele de nuanță din spațiul de cunori HSV.

Următorul pas este calcularea funcției distribuție de probabilitate, prin intermediul unei

histograme e culori. Procesul este iterativ, Meanshift se folosește pentru a găsi centrul obiectului

din imagine, iar noul punct din centru actualizează fereastra de căutare.

Această metodă se bazează pe filtrul de particule și folosește un model de distribuție

probabilistică de fundal (o distribuție de amestec Gaussian).

Predicția este realizată de către funcția de tranziție a stării. Aceasta își schimbă forma în

funcție de situația curentă. Dacă se depistează că un obiect este ocluzionat de către un alt obiect,

atunci se presupune că obiectul respectiv va reveni în plan după un scurt timp. În acest caz,

particulele sunt distribuite în jurul dreptunghiului altui obiect care acoperă obiectul țintă.

Filtru de particule:

Filtrul Kalman este folosit pentru mișcările liniare și zgomot Gaussian și întoarce la ieșire

poziția probabilă a obiectului urmărit. Dacă mișcările sunt rapide și nepredictibile, filtrul Kalman

va eșua. Filtrul de particule întoarce mai multe ipoteze (fiecare particulă reprezintă o ipoteză) și

poate în consecință înlătura zgomotul negaussian și detecta mișcările neliniare. Filtrul de

particule poate fi folosit pentru mai multe criterii de urmărire (starea reprezentată de poziția în

vector (x,y)) sau conturul obiectului.

Un filtru de particule este un algoritm generic pentru optimizarea unei funcții unde

spațiul de căutare al soluției se realizează cu particule (eșantionare). În cazul de față, fiecare

particulă îi este asociată o pondere, care reprezintă probabilitatea ca obiectul se situează la

locația respectivă. Particulele care au o valoare favorabilă sunt multiplicate, iar cele care nu sunt

bune sunt înlăturate în următoarea re-eșantionare. Următoarea generație de particule prezice unde

se situează obiectul. Procesul se repetă până s-a atins rezultatul urmărit.

În contrast cu filtrul Kalman, filtrul de particule poate modela deplasarea obiectelor în

mod neliniar, deoarece modelul de mișcare nu este înregistrat ca o matrice de tranziție cum e

cazul filtrului Kalman discret. Dezavantajul îl reprezintă performanța filtrului, deoarece acesta

depinde de numărul de particule, în care un număr de particule mai mare duce la un rezultat mai

bun, dar cu un cost mai mare. Totuși, filtrul de particule este folosit pentru optimizarea funcțiilor

generice.

Page 10: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

În contrast cu filtrul Kalman, filtrul de particule funcționează cu densități de probabilitate

generale. Filtrul prezice starea următoare din starea precedentă a modelului de mișcare.

Pentru determinarea

particulei în starea curentă, se

începe cu estimarea precedentă.

Prima etapă este reeșantionarea

particulelor și normalizarea

ponderilor (reprezentate cu roșu).

Apoi se aplică tranziția stării

(modelul de mișcare) fiecărei

particule (verde). Aceste 2 etape

sunt incluse în etapele de predicție.

Etapa de actualizare este scopul de

a actualiza ponderile și măsurările.

În cele din urmă, ponderile

particulelor sunt actualizate

folosind un model de observare

pentru a obține o distribuție a

particulelor. Ciclul se repetă.

Predicția este prima etapă care include selectarea particulelor conform ponderilor

eșantionate, următoarea etapă fiind tranziția (aplicarea modelului de mișcare) și difuzarea

(împrăștierea) zgomotului.

În ce privește reeșantionarea, particulele cu cea mai mare pondere sunt luate în calcul,

procedeu asemănător cu selecția naturală, după care se uniformizează ponderile pentru a preveni

formarea unui particule dominante.

Punctele albastre reprezintă eșantioanele, iar liniile roșii distribuția pe care o

aproximează. Ponderile se acumulează unde particulele folositoare vor continua să aibă ponderea

din ce în ce mai mare, iar particulele rele se vor diminua. Pentru ca distribuția să poate fi

reprezentată corect, se execută o reeșantionare.

Page 11: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

Referințe: [1] (Jasper Princy Shinora W, Agilandeeswari L , Muralibabu K) “An Adaptive Approach for Validation in Visual

Object Tracking”

[2] (Ruolin Zhang, Jian Ding) “Object Tracking and Detecting Based on Adaptive Background Subtraction”

[3] (Mahalingam, T., Subramoniam, M.) “A robust single and multiple moving object detection, tracking and

classification”

[4] (Musab Coúkun, Sencer Ünal) “Implementation of Tracking of a Moving Object Based on Camshift Approach

with a UAV”

[5] (Daimu Oiwa, Shinji Fukui, Yuji Iwahori, Boonserm Kijsirikul, Tsuyoshi Nakamura, M. K. Bhuyan) “Tracking

with Extraction of Moving Object under Moving Camera Environment”

[6] (Satya Mallick) "Object Tracking using OpenCV" https://www.learnopencv.com/object-tracking-using-opencv-

cpp-python/

[7] (Helmut Grabner, Michael Grabner, Horst Bischof) „Real-Time Tracking via On-line Boosting” Institute for

Computer Graphics and Vision Graz University of Technology

[8] (Boris Babenko, Ming-Hsuan Yang, Serge Belongie) „Visual Tracking with Online Multiple Instance Learning”

Computer Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference

[9] (Yuebin Yang, Guillaume-Alexandre Bilodeau) „Multiple Object Tracking with Kernelized Correlation Filters in

Urban Mixed Traffic” 2017 14th Conference on Computer and Robot Vision (CRV)

[10] (Zdenek Kalal) „Tracking Learning Detection” Centre for Vision, Speech and Signal Processing Faculty of

Engineering and Physical Sciences University of Surrey

[5] (Zdenek Kalal, Krystian Mikolajczyk, Jiri Matas) „Forward-Backward Error: Automatic Detection of Tracking

Failures” International Conference on Pattern Recognition, 23-26 August, 2010, Istambul, Turkey

[6] (David Held, Sebastian Thrun, Silvio Savarese) „Learning to Track at 100 FPS with Deep Regression Networks”

European Conference on Computer Vision (ECCV), 2016

[7] (Shreyamsh Kamate, Nuri Yilmazer) „Application of Object Detection and Tracking Techniques for Unmanned

Aerial Vehicles” Procedia Computer Science 61 ( 2015 ) 436 – 441

[8] (Pengfei Fang, Jianjiang Lu, Yulong Tian, Zhuang Miao) „An improved object tracking method in UAV videos”

Procedia Engineering 15 (2011) 634-638

[9] (Daimu Oiwa, Shinji Fukui , Yuji Iwahori) „Tracking with Extraction of Moving Object under Moving Camera

Environment” Procedia Computer Science 112 (2017) 1479-1487

[10] (Irene Anindaputri Iswanto, Bin Li) „Visual Object Tracking Based on Mean-shift and Particle-Kalman Filter”

Procedia Computer Science 116 (2017) 587-595

Page 12: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

Descrierea ştiinţifică şi tehnică

A3.3, A3.4 – Dezvoltarea unui algoritm de detecţie a unor obiecte asociate traficului auto

Detectarea semnelor de circulație folosind clasificatori SVM pe bază de caracterstici HOG

Algoritmul dezvoltat este structurat în două etape: detectarea candidaților pentru semnele

de circulație folosind segmentare pe bază de culoare și recunoașterea semnelor de circulație prin

clasificarea candidaților. În prima parte sunt extrase regiunile de interes din imagine prin

aplicarea unor praguri asupra componentelor planului de culoare HSV pentru a identifica

obiectele de culoare roșie și albastră. Rezultatul pasului de segmentare este apoi prelucrat și

fiecare candidat este clasificat, identificându-se tipul semnului de circulație în cazul în care

acesta este prezent.

A. Achiziția și preprocesarea imaginii Pentru implementarea algoritmului am folosit imagini achiziționate cu o cameră de bord

personala, Viofo A119. Înregistrările sunt făcute cu o viteză de 30 de cadre pe secunda, fiecare

cadru având o dimensiune de 1920 pe 1080 de pixeli. Numărul mare de rânduri și coloane dintr-o

imagine conferă un avantaj în performanța oricărui algoritm de recunoaștere a obiectelor de

interes, în detrimentul vitezei de procesare. Pentru a îmbunătăți acest aspect, am presupus ca

majoritatea semnelor de circulație sunt prezente mai sus sau în preajma liniei de orizont. Pe baza

acestei presupuneri am aplicat o masca pentru a ignora 40% din partea de jos a imaginii, ultimele

432 de rânduri din totalul de 1080, lăsând o marja de eroare în jurul liniei de orizont.

După achiziție este necesară o preprocesare a imaginii pentru a elimina cât mai mult din

zgomotele de fundal și pentru a o pregăti pentru prelucrările ulterioare. Astfel, în primă fază se

convertește planul de culori de la RGB la HSV pentru a separa componentele de culoare,

saturație și luminozitate. În acest fel, se poate lucra numai pe partea cromatică, variațiile de

luminozitate sau saturație cauzate de diferite condiții de iluminare neafectând foarte mult

rezultatul final al algoritmului. După conversie, am utilizat filtrul Gaussian pentru a netezi

imaginea, pas necesar pentru eliminarea zgomotelor ce pot introduce detecții false în etapele

următoare.

B. Detectarea candidaților Rolul acestui prim pas este de a reduce suprafața de căutare prin identificarea zonelor de

interes unde exista posibilitatea ca un semn de circulație sa fie prezent. Diferite metode de

clasificare folosesc o fereastra de dimensiune fixă pentru a scana o imagine pentru obiectele de

interes. Aceasta metodă este destul de lentă și nu poate fi folosită pentru aplicații în timp real.

Astfel, printr-o detecție preliminară a zonelor ce pot conține semne de circulație, se poate

îmbunătăți timpul de procesare al unui cadru.

Pentru a identifica regiunile de interes am folosit un algoritm de segmentare pe baza de

culoare. Există o multitudine de variabile ce determină condițiile de drum, cum ar fi timpul din

zi, condițiile meteo, umbre, reflexii sau obstrucții complete sau parțiale. Folosind doar

componenta cromatica, nuanța culorii, se pot găsi zonele din imagine ce pot conține semne de

circulație și care vor fi clasificate ulterior.

Am folosit planul de culori HSV pentru a avea o sensibilitate cât mai mică la variațiile

intensității luminoase sau la alte imperfecțiuni ce pot fi prezente pe un semn de circulație. Am

utilizat praguri fixe pentru a extrage zone de culoare roșie și albastră. Valorile pentru aceste

praguri au fost deduse manual folosind imagini cu semne de circulație și pot fi văzute în tabelul

de mai jos.

Page 13: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

Tabel 1. Valori praguri pentru segmentarea pe bază de culoare

Culoare Hue Saturation Value

Roșu 1 < H< 20 Or 160 < H< 180 80 < S< 240 50 < V< 220

Albastru 95 < H< 155 80 < S< 240 50 < V< 220

În urma segmentării rezultă o

imagine binară cu pixeli ce au trecut de

pragul impus, așa cum se poate vedea în

Figura . Datorită diferitelor condiții de drum

și alte variabile necontrolabile, imaginea

binară poate conține imperfecțiuni cum ar fi

zgomote, grupuri de pixeli concave sau

grupuri de pixel separate ce ar trebuie să fie

un grup mai mare. Pentru a rezolva aceste

probleme, am folosit operații morfologice

pentru a elimina grupuri de pixeli foarte

mici si pentru a umple goluri în grupuri ce

conțin găuri. Rezultatul operațiilor

morfologice poate fi văzut în Figura .

Pentru a reduce numărul de candidați

fără a pierde un semn de circulație real, am

decis sa filtrăm candidații după raportul

dintre înălțimea și lățimea chenarului ce

cuprinde grupul de pixeli găsit în urma

segmentării.

Majoritatea semnelor de circulație au

acest raport aproape de 1, dar din cauza

distorsiunilor cauzate de perspectivă sau de

poziția lor față de cameră, ori din cauza unor modificări nedorite, acest raport poate varia.

Calculul acestui raport se face folosind ecuația (1) și toți candidații cu această valoare mai mică

de 0.7 vor fi ignorați.

= ( ț ț )

( ț ț ) (1)

𝑠 =

( ț ț ) (2)

După selectarea candidaților cu cea mai mare probabilitate să conțină un semn de

circulație, am mărit aria chenarelor ce cuprind obiectele cu 20% pentru a fi siguri că semnul de

circulație e cuprins complet în chenar. Un exemplu de detecție finală a candidaților poate fi văzut

în Figura , unde semnul de circulaţie cedează trecerea este cuprins în chenarul galben.

Următorul pas este folosirea chenarelor pentru a extrage porțiunile din imagine ce conțin

candidații și rescalarea acestora pentru a normaliza dimensiunile obiectelor cu suprafețe mici și

mari. Pentru a aduce toate imaginile aproape de o dimensiune standard am folosit un factor de

scalare ce se calculează folosind ecuația (2) unde dimensiune imagine este dimensiunea dorită la

Figura 1. Segmentare culoare roșie. Rezultat operații morfologice

Figura 2. Rezultat detecție candidați cuprins în chenar galben

Page 14: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

care se face scalarea. Folosind această rescalare nu mai este necesară utilizarea metodei

piramidale folosită de detectoarele SVM, metodă ce consumă foarte multe resurse.

A. Recunoașterea candidaților Identificarea semnelor de circulație este pasul final și constă clasificarea tuturor

candidaților găsiți în urma etapei de detecție. Pentru asta am folosit unu clasificator binar SVM

liniar antrenat folosind caracteristici HOG ce verifică daca un candidat este cu adevărat un semn

de circulație.

Am utilizat biblioteca Dlib pentru a crea clasificatorul SVM, biblioteca ce pune la

dispoziție diferiți algoritmi de machine learning, cum ar fi LIBSVM sau o variantă kernelizată a

algoritmului Pegasos introdus de Shalev-Shwartz. O descriere detaliată a metodei SVM utilizată

poate fi găsită în lucrarea “Max-Margin Object Detection” scrisă de Davis E. King.

Pentru antrenarea clasificatorului SVM am folosit imagini cu drumuri din România

obținute din diferite surse publice. Aceste imagini conțin semnele de circulație pe care dorim să

le recunoaștem. Am folosit o abordare supervizată, adică am etichetat toate semnele de circulație

ce trebuie identificate, cunoscute ca eşantioane pozitive (positive samples), iar restul imaginii

este considerat eşantioane negative (negative samples). În total, 64 de imagini ce conțin 69 de

semne de circulație cedează trecerea au fost folosite în procesul de antrenare. Pentru semnul de

trecere de pietoni, am folosit 42 de imagini cu 44 de instanțe ale semnului de circulație. Aceste

imagini surprind obiectul de interes în diferite condiții de iluminare și în orientări variate, aşa

cum se poate vedea în Figura și Figura . În comparație cu alți algoritmi de machine learning ce

rezolvă probleme de clasificare, clasificatorii SVM nu necesită un număr mare de imagini pentru

antrenarea unui clasificator bun.

Algoritmul de clasificare SVM utilizează tehnica ferestrei glisante pentru a scana o

imagine, folosind o valoare arbitrară fixă pentru această fereastră ce determină o dimensiune și

un raport de aspect pentru obiectul ce trebuie detectat. Există situații când același obiect poate

avea un aspect diferit din cauza perspectivei sau orientării diferite. În aceste cazuri, este nevoie

antrenarea unor clasificatori separați pentru fiecare variantă a aceluiași obiect de interes.

Rezultatul procesului de antrenare este un model SVM ce conține vectori orientați în așa

fel încât punctele ce aparțin unor clase diferite sunt separate de un hiperplan maxim-marginal. În

aplicația noastră am folosit caracteristici HOG pentru antrenarea clasificatorului SVM. O

reprezentare vizuală a modelelor rezultate în urma antrenării pentru cele două semne de

circulație poate fi văzută în Figura .

B. Rezultate experimentale

Pentru a testa algoritmul, am folosit două seturi de înregistrări separate de cele folosite pentru

Figura 3. Exemple semne cedează trecerea folosite pentru antrenarea

clasificatorului SVM

Figura 4. Exemple semne de trecere pentru pietoni folosite pentru

antrenarea clasificatorului SVM Figura 5. Vizualizarea modelului pentru semnele de cedează trecerea

(stânga) și trecere pentru pietoni (dreapta)

Page 15: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

antrenarea clasificatorilor. Primul set conține semne de cedează trecerea în mare parte, iar al

doilea set conține semne de trecere pentru pietoni.

Valorile rezultate în urma testării pot fi găsite în Tabelul 2 și Tabelul 3. Dintr-un total de

645 de semne cedează trecerea prezente, 545 au fost detectate în primul pas și 371 recunoscute

ulterior în procesul de clasificare. Folosind doar clasificatorul SVM, fără pasul de segmentare pe

bază de culoare, au fost identificate 422 de semne, dar numărul de cadre pe secundă este

considerabil mai mic, 0,31 față de 10,2 obținute cu algoritmul nostru. În cazul semnului de

trecere pentru pietoni, dintr-un număr de 2254 de semne, 1883 au fost detectate și 918

recunoscute, folosind algoritmul implementat de noi. Când am folosit doar clasificatorul SVM,

1061 de semne de trecere pentru pietoni au fost recunoscute.

Introducând pasul de detecție pentru a selecta candidații la semne de circulație, am

pierdut 12,77% din numărul de semne recunoscute, dar am crescut viteza de procesare de

aproximativ 30 de ori, făcând posibilă utilizarea algoritmului în timp real. Am obținut o rata de

detecție de 84% și o rată de recunoaștere a semnelor de circulație detectate de 58,41%. Din toate

semnele de circulație prezente în cadrele pentru testare, 49,11% au fost recunoscute ca fiind

semn de cedează trecerea sau semn de trecere pentru pietoni. Procentajul mic de recunoaștere

poate fi îmbunătățit prin folosirea unui clasificator SVM antrenat pe mai multe imagini sau prin

folosirea unui alt tip de clasificator, cum ar fi CNN sau DNN.

Tabelul 2. Set date și rezultate

Semn de circulație Nr. semne Detectate Recunoscute

TSDR/SVM

FPS mediu

TSDR/SVM

Cedează trecerea 645 545 371/422 10,2/0,31

Trecere pentru pietoni 2254 1883 918/1061 9,3/0,31

Tabelul 3. Rezultate Experimentale

Semn de circulație Rată detectare Rată clasificare Rată recunoaștere

TSDR/SVM

Cedează trecerea 84,49% 68,07% 57,51%/65,42%

Trecere pentru pietoni 83,54% 48,75% 40,72%/47,07%

Detectarea semafoarelor folosind algoritmi de inteligenţă artificială

Machine learning facilitează învățarea și antrenarea unei rețele neuronale din cazuri reale.

Aceasta lucrare cuprinde informații despre cum funcționează algoritmul Faster R-CNN pentru

detecția semafoarelor și indicatoarelor de stop. S-au obținut rezultate bune, acuratețe mare (mAP

Figura 6. Rezultate algoritm de detecție și recunoaștere. Candidații sunt cuprinși în

chenare galbene, iar semnele recunoscute sunt marcate folosind chenare roșii

Page 16: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

87%-99%) și viteză rapidă (5~15 cadre pe secundă) în procesarea imaginilor digitale folosind

GPU contrar metodelor tradiționale pe CPU. Testarea a fost făcută rulând algoritmul în timpul

funcționarii autovehiculului personal pe străzile din Iași (România) și Bialystok (Polonia). În

urma comparării rezultatelor obținute cu baza de date PASCAL VOC am ajuns la concluzia ca

rețeaua neuronală antrenată până în acest punct trebuie reantrenată cu mai multe imagini, acestea

depășind câteva mii de imagini per clasă.

Pentru a recunoaște obiectele de interes dorite, trebuie creată o baza de imagini cu acele

obiecte. Aceste imagini pot fi capturate folosind un aparat foto, sau din diferite surse si apoi

salvate cadru cu cadru din capturi video sau se poate apela la companii ce au aceasta baza de

imagini gata creată. Fiindcă am folosit metoda de învățare supravegheata, fiecare imagine trebuie

analizată si identificat obiectul sau identificate obiectele de interes. Fiecare obiect marcat în

imagini reprezintă un set de vectori (Fig. 1). După ce a fost creată baza de date cu obiectele de

interes aceasta se împarte 80% în imagini de antrenare 20% imagini de testare. Dacă rata de

recunoaștere este mică (sub 40%) și numărul obiectelor greșit identificate este foarte mare atunci

se reia antrenarea.

Folosind algoritmi de procesare de imagine Faster R-CNN ne apropiem cât mai mult de o

procesare în timp real. Folosind GPU (Graphics Processing Unit) în loc de CPU (Central

Processing Unit), rețelele neuronale de tip CNN (Convolutional Neural Network) oferă rezultate

mai bune și o viteză mai mare de procesare. Astfel diferențele între a folosi CPU și GPU sunt

enorme.

În exemplul alăturat putem vedea cadrul capturat de o camera de bord a unui automobil

în imaginea alăturată (Figura 7) şi recunoașterea obiectului de interes cu procentul de acuratețe.

Metoda de R-CNN antrenează algoritmii de CNN cap-la-cap de rețea, pentru a clasifica regiunile

căutate în imagini, în categorii de obiecte (clase) sau fundal. R-CNN face doar clasificare și nu

poate crea automat conturul de detecție.

Metoda OverFeat, un strat interconectat în rețeaua neuronală, este folosită de predicția conturului

de detecție ce oferă coordonatele obiectului de interes dorit. Folosind rețele neuronale, RPN

(Region Proposal Networks) îi spune algoritmului Fast R-CNN unde să se uite după obiectele

căutate (Fig 8).

Puterea de calcul convoluțional, distribuită între module, duce la o îmbunătățire a

eficienței și acurateței pentru recunoașterea obiectelor de interes. Modului OverFeat calculează

trăsăturile convoluționale în metoda piramidei, pentru detecție, clasificare și localizare. Rețeaua

neuronală creată din îmbinarea RPN și Fast R-CNN, mai întâi procesează întreaga imagine cu

mai multe straturi convoluționale și maxime de grupare a regiunilor pentru a produce o localizare

a caracteristicilor convoluționali. Pentru fiecare regiune de interes (RoI) se extrage un vector cu

Figura 7 Identificarea semaforului marcată pe imagine Figura 8 Faster R-CNN este o singură rețea unificată pentru detecția de

obiecte. Modulul RPN oferă locația obiectului căuta

Page 17: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

lungime fixa pentru alcătuirea poziției. Fiecare vector apoi este introdus într-o secvența de

straturi neuronale conectate în totalitate, ce produce la ieșirea din rețea două straturi. Un strat

produce funcția softmax de probabilitate ce estimează clasele obiectelor de tip K și fundalul

peste ce sunt suprapuse. Al doilea strat este compus din patru valori reale ale claselor din care fac

parte obiectele de tip K. RPN preia la intrare o imagine și afișează la ieșire un set de chenare

specifice claselor propuse, fiecare cu un anumit scor. În încercarea calcului cu rețeaua de detecție

a obiectelor Fast R-CNN cu RPN, presupunem ca ambele rețele neuronale împart un set comun

de straturi convoluționale. Pentru generarea de regiuni propuse în imagine, se inserează o rețea

neuronală mai mică la ieșirea ultimului strat convoluțional împărțit între module. Rețeaua de

ieșire ia ca intrare o poziție spațială „n x n” a zonei de trăsături convoluționale. În fiecare cadru

se mută o zona căutare și se mapează caracteristicile la dimensiuni mai mici. După acest proces,

se încarcă caracteristicile în două straturi interconectate: un strat de regresie și un strat de

clasificare. Straturile conectate în întregime sunt partajate în toate locațiile de interes. RPN

generează casete pentru a fi examinate de un clasificator și un regresor pentru a verifica apariția

obiectelor. Casetele de regiune se numesc și ancore (anchors). În configurația standard Faster R-

CNN, folosește nouă astfel de casete de căutare într-un cadru.

Acordăm o etichetă pozitivă pentru două tipuri de ancore. Ancore cu rata cât mai mare de

intersecție (Intersection-over-Unit, IoU) ce se suprapune peste o caseta de adevăr sau o ancora

care are o suprapunerea de IoU mai mare de 0,7 cu orice caseta de adevăr. O ancora cu scorul

mai mic de 0.3, este o ancora negativă. Ancora care nu este nici pozitivă, nici negativă, nu

contribuie la obiectivul de antrenare. O propunere de regiune mai buna va fi caseta de regresie,

deoarece este proiectată să redea regiunea bruta de ieșire, prin RPN utilizând cunoștințe specifice

de clasa codificate în rețea. Deoarece caseta de regiune este una dintre rezultatele de pe întregul

Faster R-CNN, nu se poate folosi ca propunere de regiune la început. Cu toate acestea, odată ce

rezulta caseta de încadrare, putem începe o nouă rundă de clasificare și de regresiune a casetei de

regiune, utilizând caseta reglata în runda anterioara pentru propuneri de regiuni noi. Acest proces

poate continua pentru mai multe iterații. Pe parcursul a mai multor iterații, se ia rezultatul

iterațiilor favorabile pentru a se ajunge la un rezultat mai bun. În prima iterație este foarte

important să existe mapări ale imaginii de către VGG (Visual Geometry Group), încărcate în

RPN pentru a obține propuneri regionale, de a redimensiona mapări noi de caracteristici pentru

fiecare propunere și pentru a utiliza un trei straturi complet conectate pentru generarea scorului

fiecărei clase și zona de regiune.

Astfel am reușit să ajungem la rezultate ce pot fi folosite pentru procesarea de imagine si

creiere unui sistem inteligent de detecție și predicție. Antrenarea poate fi făcută pe un calculator

dotat cu o placa video nVidia sau folosind servicii de antrenare pe o mașină virtuală și apoi mutat

modelul pe sisteme mai puțin puternice, pentru a fi incorporate într-un vehicul.

Numărul de imagini folosite pentru antrenarea modelului testat poate fi modificat. Cu cât

se folosesc mai multe imagini ce au un nivel ridicat de informații cu atât crește timpul de

antrenare dar și precizia. Imaginile alese trebuie să fie în diferite timpuri ale zilei și din diferite

anotimpuri pentru a scădea cazurile în care nu se face detecție deoarece lipsesc parametri ce

trebuiau învățați.

Algoritmii de machine learning sunt configurabili pentru a ajunge la soluția dorită. Este

de recomandat testarea acestora pe baze de date, PASCAL VOC, deoarece putem analiza

precizia și timpul de detecție cu același algoritm folosit de alta persoana sau instituție.

Page 18: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

Astfel îmbinând RPN cu Fast R-CNN și făcând antrenarea cu TensorFlow ajungem cât mai mult

la un sistem de procesare in timp real. Următorii pași de făcut sunt reducerea timpului de

antrenare, creșterea acurateței, optimizarea resurselor hardware folosite.

Figura 9 Exemple de semafoare detectate

A3.5, A3.6 – Algoritm de determinare a traiectoriilor obiectelor şi a distanţei până la acestea

dintr-o secvenţă de imagini succesive

Algoritmul are la bază calcularea distanței față de un obiect detectat, cum ar fi distanța

față de un semafor sau un indicator de circulație, sau cu referire la autoturismul care se

deplasează în fața șoferului, având ca scop atenționarea acestuia cu scopul prevenirii de

accidente.

Pentru determinarea locației obiectului care urmează a fi detectat s-a folosit o rețea

neurală în ce privește prelucrarea de imagini, prin intermediul unui algoritm YOLO (You Only

Look Once).

Figura 10. Algoritmul YOLO

YOLO rulează o rețea neurală pe întreaga imagine și împarte fiecare cadru într-un număr

de căsuțe, conform figurii 10, la fiecare atribuindu-i o probabilitate ca un obiect care se găsește

în baza de date, să fie detectat. Pentru identificare s-a ales ca valoare de prag 50%.

Datorită obiectivului invenției, rețea neurală a fost antrenată după forma geometrică a

obiectelor detectate (din perspectiva indicatoare de circulație): pătrat, triunghi, cerc, romb,

datorită faptului că nu este necesară o nouă instanță pentru fiecare semn, pentru calcularea

distanței. În ce privește detecția obiectelor, rețeaua a fost antrenată atât pentru detectarea

indicatoarelor de circulație, cât și a semafoarelor și a oamenilor.

În total, rețeaua neurală a fost antrenată pe un număr de 2750 imagini, dintre care 900

aparținând bazei de date „German Traffic Sign Detection Benchmark”, 1500 imagini din

domeniul public și 350 imagini conducând in trafic.

Pentru antrenarea rețelei s-a folosit algoritmul YOLO v3, cu numărul de clase și filtre

ajustat, iar după un număr de 32000 iterații s-a obținut un IOU (intersecție pe uniune) de 57,48%

și mAP (precizie medie) de 52,14% conform „Pascal VOC Challenge”.

Page 19: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

După determinarea locației obiectului, pentru estimarea distanței față de acesta s-a făcut o

corelație între dimensiunea reală a obiectului detectat și numărul pe pixeli existenți în regiunea

de interes.

=

(1)

Conform relației 1, dacă se cunoaște distanța inițială (Dinit) și numărul de pixeli

corespunzători locației respective (Pinit), precum și numărul de pixeli la rulare (Prun) extrași din

cadrul la un moment de timp, se poate deduce distanța de la cameră față de un obiect.

În ce privește metoda de calcul, ideea principală este următoarea: atunci când un obiect

este la o distanță mai mare, numărul de pixeli corespunzători lui este mai mic și vice-versa. Cu

alte cuvinte, distanța și numărul de pixeli sunt invers proporționali, iar prin aplicarea regulii de 3

simplă inversă se poate calcula distanța către un obiect dacă se cunoaște numărul de pixeli la o

distanță.

O metodă alternativă, dezvoltată în scopul determinării distanței față de eventualele

obstacole prezente în trafic, precum și pentru conducerea unor sisteme inteligente, se bazează pe

folosirea unei camere cu monoviziune printr-un algoritm care filtrează ca zonă de interes plăcuța

cu numărul de înmatriculare al unui autovehicul, ale cărui dimensiuni și forme sunt standardizate

în toate țările.

O altă metodă presupune folosirea unor camere stereo și prin intermediul metodei de

„scădere a fundalului” (background subtraction) care implică executarea unor succesiuni de

operații morfologice anterioare acesteia: prelucrarea imaginii cu nuanțe de gri, filtrare mediană,

extragere a unor valori de prag, se poate calcula distanța prin măsurarea disparității dintre cele 2

imagini provenite de la camere.

În cadrul primei metode alternative, prin folosirea numărului de înmatriculare al unui

vehicul pentru calcularea distanței față de acesta, rezultă o eroare absolută medie de 5 cm, un

rezultat foarte bun. Dezavantajul este faptul că, erorile cresc pe măsură ce distanța față de

vehicul se mărește. De asemenea, erorile sunt influențate în mare măsură de rezoluția imaginilor

prelucrate. O rezoluție mai bună produce un rezultat mai favorabil.

În ce privește a doua metodă „scăderea fundalului”, eroarea absolută dată de distanța față

de un vehicul este de 25 cm în medie. Acest rezultat se obține atunci când lumina are aceeași

intensitate pe întreaga imagine.

Soluția propusă, conform algoritmului folosit, are avantajul că poate fi extinsă pentru

determinarea distanței față de alte obiecte (indicatoare, semafoare, oameni) prezenți în trafic, în

comparație cu metoda folosirii doar a numărului de înmatriculare, pentru determinarea distanței

până la autovehicul, chiar dacă la

aceasta se obțin rezultate superioare.

Metoda „scăderii fundalului” are

rezultate asemănătoare cu soluția

propusă, cu dezavantajul că depinde

de luminozitatea mediului ambiant.

De asemenea, avantajul metodei

prezente este simplitatea acesteia de

implementare, dezavantajul

manifestându-se atunci când rezoluția

imaginii este mică.

Car

Person

Circle

Diamond

Square

Stop

Downside Triangle

Upside Triangle

Traffic Light

Border Traffic Light

Distance

Measurement Write to file

Coordinates

Distance

Correction Edge Detection

HSV

Color Space

Corrected

Distance

Distance

Calibration

Trained

Model

Figura 11 Schema generală a algoritmului

Page 20: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

Pentru implementarea metodei de calculare a distanței față de un obiect se folosesc, în

primă instanță, coordonatele rezultate în urma detectării obiectului în cauză, urmând corectarea

acestora prin executarea unor operații de extragere a marginilor (metoda Canny) și conversia

imaginii la un spațiu de culori HSV (nuanță, saturație, valoare), operații care se realizează în

paralel și prin care se stabilește fereastra de căutare în exteriorul zonei de interes, pentru

corectarea distanței.

Algoritmul a fost implementat, în primă instanță pentru calcularea distanței față de un

autoturism situat în fața șoferului. În următorul tabel se pot vedea rezultatele obținute pentru

Ford Galaxy de la 2 la 15 metrii, din metru în metru.

În cazul aglomerației în trafic, șoferul este

avertizat să mențină o distanță de 2 metri

față de autoturismul din față. Din tabelul de

mai sus, rezultatele obținute în urma

folosirii spațiului de culori HSV sunt

favorabile, cu o eroare care nu depășește

0.57 m, în timp ce prin determinarea

marginilor, eroarea se poate înrăutăți

datorită marginilor extrase din fundal. În

urma determinării zonei de interes s-a

observat că rezultatele cele mai bune se

obțin în jurul distanţei de 5 metri, de aceea

s-a ales această distantă ca valoare de

referinţă, iar eroarea absolută este 0.

Dis

tan

ce (

m)

Est

imat

ed

Dis

tan

ce (

m)

Car

Wid

th

(pix

els)

Ab

solu

te

Err

or

(m)

Err

or

afte

r

corr

ecti

on

wit

h E

dg

e (m

)

Err

or

afte

r

corr

ecti

on

wit

h H

SV

(m

)

2 2.34 1843 0.34 0.34 0.34

3 2.93 1474 -0.07 -0.07 -0.07

4 4.02 1073 0.02 0.02 0.02

5 5 870 0 0 0

6 6.19 698 0.19 0.19 0.19

7 7.61 567 0.61 0.04 0.26

8 8.21 526 0.21 -0.45 -0.14

9 9.64 448 0.64 -0.17 0.17

10 9.43 458 -0.57 -0.59 -0.57

11 10.9 396 -0.1 -1.73 -0.1

12 11.7 369 -0.3 -0.73 -0.3

13 13.2 327 0.2 -0.87 -0.03

14 13.53 319 -0.47 -1 -0.47

15 15.59 277 0.59 -1.07 -0.36

Figura 12 Fereastra de căutare după procesarea Canny cu

evidenţierea zonelor de căutare

Figura 13 Eroarea absolută a distanței măsurare pentru 6 mărci de

autoturisme

Page 21: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

După cum se poate observa în figura 13, erorile absolute mai mari de un metru se obțin

pentru distanțe mai mari de 8 metri, cu erori de până la 4 metri la o distanță de 15 metri. Aceste

erori sunt îmbunătățite prin căutarea în extremitatea regiunii din interes, în stânga și în dreapta

vehiculului, conform figurii 12.

În figura 14, corecția care se realizează prin filtrarea marginilor prezintă rezultate mai

bune: erorile mai mici de un metru obținute la o distanță de 8 metrii apar la o distanță de până la

11 metri, iar eroarea maximă este de 3 metri la o distanță de 15 metri, comparativ cu cea de 4

metri inițial.

Îmbunătățiri în ce privește eroarea absolută sunt mai pronunțate în figura 15, prin folosirea

spațiului de culoari HSV, ce presupune extragerea nuanței principale și a celor învecinate și

binarizarea imaginii folosind aceste nuanțe, așa cum este ilustrat în figura 16.

Erorile de peste 1 metru apar după o distanță de 13 metri și nu depășesc 2 metri, prin

excepția unui model de mașină, cu o eroare de 2,5 metri.

Prin urmare, prin folosirea MPI (interfeței de transmitere a mesajelor), se poate lucra la

nivel de nuclee ale procesorului și rula cele 2 metode: extragerea marginilor și planul de culoare

HSV în paralel și prin determinarea diferenței dintre valorile celor 2 metode se poate ajusta

fereastra de căutare pentru a reduce din timpul de procesare.

În ce privește durata de execuție a algoritmului la un ciclu, rularea rețelei neurale se

execută în 100 ms pe o placă video Nvidia GeForce GTX 960M, la 10 FPS, iar corecția care se

realizează pe un procesor Intel Core i7-6700HQ se execută într-un timp de 400 ms. Considerând

faptul că timpul de reacție al unui șofer este în medie de 700 ms, acesta poate fi atenționat în

timp real prin semnale specifice. Sincronizarea dintre rețeaua neurală și algoritmul de corecție,

datorită faptului că lucrează în paralel, se realizează doar al patrulea cadru din şirul video pentru

corecție.

În figura 17 este prezentată distribuția pixelilor pe centimetru. După cum se poate

observa, numărul pixelilor nu variază liniar, ci scade exponențial cu distanța. Acest tipar poate fi

observat în figurile 17 și 18, în care erorile se amplifică cu o distanță mai mare, cu o eroare

relativă de 7,22% în medie pentru o distanță de 15 metrii.

În concluzie, cu scopul de a determina distanța față de un autoturism s-a folosit

algoritmul YOLO, împreună cu algoritmii de corecție: detecție de margini Canny și spațiul de

culoare HSV. Conform graficelor 4, 5 și 6 s-a demonstrat că prin detectarea cu algoritmul YOLO

se obține o eroare absolută mai mică de 1 metru la o distanță de până la 8 metrii, cu o eroare mai

mică de 4 metrii la o distanță de 15 metri, în cel mai rău caz. Această eroare este înjumătățită, la

Figura 14 Erori absolute obținute după corectarea prin determinarea

marginilor

Figura 15 Erori absolute obținute după corectarea prin spațiul de culoare

HSV

Page 22: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

o eroare absolută de cel mult 2 metri pe o distanță de 15 metri. Pentru distanțe între 2 și 7 metri,

nu este necesară o corecție, deoarece în majoritatea cazurilor, eroarea este sub 0.5 metri.

A3.7, A3.8 - Algoritm de corecţie a traiectoriei prin fuziunea datelor In această secțiune se propune o metodă de determinare a distanței dintre o cameră video montată

pe bordul unei mașini și un obiect staționar din față mașinii, în particular o altă mașină staționată la

semafor. Această metodă își găsește utilitatea în asistarea șoferului pentru siguranța traficului, în special

pentru evitarea coliziunilor din spate datorate neatenției sau altor cauze.

Principiul metodei constă în calculul distanței pe baza unei formule iterative ce utilizează variația

lungimii unui segment de baz dintre două repere arbitrare de pe obiectul din față, măsurată în pixeli,

între două cadre succesive dintr-o înregistrare on-line a traficului cu o cameră video. In Fig. 18 este dată o

descriere geometrică a metodei.

Se consideră că camera este montată exact pe

axa mașinii și urmărește șoseaua, astfel încât obiectul

vizat să fie centrat pe cât posibil în cadru. In figură

sunt date două poziții succesive ale camerei, distanțate

la distanța d corespunzătoare deplasării mașinii în

intervalul de timp Δt = 1/fps, unde fps este rata de

achiziție a camerei, măsurată în cadre pe secundă

(frames per second). Camera este caracterizată de

unghiul de deschidere 2α, rezoluția NH x NV pixeli și

rata de achiziție fps.

Ecuația de calcul a distanței este:

kk

k

k

kk

NN

VdtN

N

N

VdtD

111

1

(1)

unde V este viteza mașinii, dt = 1/fps iar Nk și Nk+1 sunt

valorile lungimii segmentului AB, în pixeli, între două

cadre succesive.

In Fig. 19 sunt date dependențele valorilor calculate ale segmentului AB măsurat în pixeli, de

distanță și erorile relative calculate, pentru 3 valori distincte ale lungimii segmentului: 10 cm, 50 cm și

100 cm. Curbele au fost simulate pentru următorii parametri: rezoluția camerei 1280 x 720 pixeli, 2α =

Figura 16 Filtrarea folosind spațiul de culoare HSV Figura 17 Distribuția pixelilor pe centimetru

Lk

L

Dk

+1

Camera

Segment

PD

Dk

d

Lk+1

A B

V

Pk

Pk+1

Fig. 18. Principiul metodei

Page 23: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

90°, fps = 30 cadre pe secundă. Se observă o evoluție hiperbolică a lungimii segmentului în pixeli de

distanța D, iar valorile erorilor scad cu creșterea lungimii segmentului.

Aplicație practică

In această secțiune vom ilustra funcționalitatea metodei printr-o aplicație practică în care s-au achiziționat

imagini cu ajutorul unei camere fixate pe bordul unei mașini și s-a măsurat distanța până la un vehicul

staționat în fața mașinii la semafor. Metoda presupune ca mașina din fată să fie centrată aproximativ în

imagine. Metoda nu necesită identificarea unui anumit reper pe mașina din față, ci utilizarea oricăror două

repere de pe mașină între care se măsoară distanța, cu condiția ca cele două repere să nu se schimbe în

toate imaginile considerate.

Metoda presupune parcurgerea următoarelor etape:

A. Detectarea unei mașini în fața camerei

B. Identificarea și fixarea a două repere pe mașina din față și determinarea lungimii segmentului de

bază

C. Urmărirea segmentului pe parcursul înregistrării

D. Estimarea distanței, cadru cu cadru

Organigrama metodei este descrisă în Fig. 19. Aceasta conține 14 pași, din care primii 4 pași

corespund etapei A, următorii 9 pași corespund etapelor B și C, iar ultimul pas etapei D. In privința

etapelor B și C, sunt posibile două abordări:

i) utilizarea algoritmilor de inteligență artificială (CNN – Convolutional Neural Network și ML

– Machine Learning), care asigură o precizie ridicată, dar resurse importante pentru antrenare

și de prelucrare pentru asigurarea unor timpi de răspuns rezonabili;

ii) utilizarea funcțiilor obișnuite de procesare de imagini, care asigură o precizie mai redusă, dar

viteze de procesare mai ridicate.

Ţinând cont că în siguranța traficului timpii de răspuns sunt critici, am ales în aplicație cea de-al

doilea tip de abordare pentru identificarea și urmărirea segmentului de bază care, printr-o proiectare

atentă a funcțiilor, se poate obține un grad în încredere în rezultat destul de ridicat.

In continuare vom descrie metoda pas cu pas, cu referire la imaginile din Fig. 20.

a) b)

Fig. 19. Dependența lungimii segmentului de bază de distanță și erorile relative calculate

Page 24: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

1. Se inițializează achiziția de imagini prin setarea rezoluției și formatului imaginii și alocarea

memoriei. Imaginea este convertită în format U8 – greyscale

2. Acesta este pasul inițial al buclei care citește cadrele

3. Se decupează din imagine o Regiune de Interes (RI) centrată în imagine, care conține spatele

mașinii din față (Fig. 21a și 21d)

4. Acest pas este dedicat recunoașterii unei

mașini în față, pornind de la idea că o mașină are o

culoare aproximativ uniformă. Se calculează

histograma și se determină maximul ei. Dacă acest

maxim depășește o limită determinată experimental,

care depinde de mărimea RI, înseamnă că există o

mașină în față și se declanșează algoritmul de

determinare a distanței. Dacă nu se depășește limita, se

achiziționează o nouă imagine și procedura se reia.

Valoarea limitei determină, de asemenea, valoarea

distanței de la care metoda devine eficientă.

5. Se aplică un kernel imaginii decupate, prin

care se evidențiază muchiile orizontale, care vor fi

utilizate mai târziu ca repere. Kernelul este o matrice 3

x 3 de forma:

101

020

211

(2) O exemplificare a acestui pas este data în Fig.

21c și 21f.

6. Se aplică o funcție de prag, prin care

imaginea este binarizată. Valoarea pragului este

ușor inferioară valorii maxime a histogramei.

Astfel, valoarea pixelilor corespunzători muchiilor

orizontale devine 255, iar ceilalți devin 0.

7. In acest pas se procedează la identificarea

liniilor din imagine care conțin muchii. Pentru

aceasta se aplică operația de sumare pe orizontală

a valorilor pixelilor, linie cu linie. Se obține un

vector S, ce conține Nv elemente, unde Nv este

rezoluția pe verticală a imaginii:

BN

i

Vijjj

H

NjpSSS0

1..0;; (3)

Maximele locale ale acestui vector reprezintă

indecșii liniilor ce conțin muchii orizontale.

8. In ecuația (3) B reprezintă numărul de

pixeli ai marginii imaginii care trebuie eliminate

pentru ca marginea să nu fie interpretată ca

muchie.

Init grab

Read frame

Apply ROI

Histogram

Maxh > PH?

There is a car in front

Apply kernel

Apply threshold

Sum pixels line by line

Eliminate borders

Apply

correction

Find maximums

Eliminate close maxs

Calculate base

segment

Read speed

Calculate distance

No Yes

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Fig. 20. Organigrama metodei

Page 25: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

9. Deoarece muchia poate fi ușor inclinată față de orizontală sau chiar curbată, pentru

detecția ei mai precisă se realizează o sumare a mai multor linii adiacente, obținându-se un

nou vector, de corecție, Sc:

1

0

;CP

j

jkkc SSSS (4)

Rezultatul evidențiază muchiile care intersectează mai multe linii orizontale concomitent. Pc

este parametrul de corecție.

10. In acest pas se calculează vectorul Max ce conține maximele locale ale vectorului Sc:

max..1; PlMaxMax l (5)

Pmax este numărul de maxime locale, care direct legat de lungimea segmentului de bază.

11. Dacă muchiile sunt prea groase, este posibil să se obține unele maxime locale foarte

apropiate unul de celălalt. De aceea, în acest pas vom elimina maximele mai apropiate de

un număr PM de linii.

12. Se calculează lungimea segmentului de bază cu formula:

][)()( pixeliMaxMinMaxMaxN ll

ll

k (6)

Acest segment crește odată cu scăderea distanței, deci cu apropierea mașinii.

13, 14. Se citește viteza și se calculează Dk cu relația (1).

In Fig. 22 este data o posibilă implementare a algoritmului utilizând mediul de programare

LabVIEW și Vision Development Module.

a)

21

6 p

x 2

32

px

b) c)

Fig. 21. Două cadre succesive ale unei înregistrări, distanțate în timp la 1/30 s (a și d), decupate cu o regiune de interes centrată (b și e) la

care s-a aplicat identificarea segmentului de bază (c și f).

e) f) d)

Page 26: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

Rezultate

Pentru a dovedi validitatea și eficiența metodei, s-au realizat înregistrări reale cu o cameră de tip

Canyon CNE-CWC2 cu o rezoluție de 1280 x 720 pixeli, unghi de deschidere de 90º și viteză de 30 cadre

pe secundă. Camera a fost conectată prin USB la un calculator portabil echipat cu procesor I7-6600U/2.6

GHz. Prelucrarea s-a făcut on-line, dar înregistrarea a fost salvată pentru analize ulterioare. S-au realizat

înregistrări de 4 până la 7 s cu o mașină care a decelerat de la aproximativ 40 km/h până la 0, la semafor,

în fața căreia s-au aflat mașini de diferite culori.

Profilul de viteză al vehiculului a fost înregistrat cu un modul GPS GY-NEO6MV2 conectat

direct la calculator prin portul USB. Viteza a fost calculată pe baza coordonatelor furnizate de modulul

GPS cu o rată tot de 30 eșantioane pe secundă, pentru sincronizare cu camera. Figurile 23 și 24 prezintă

variația lungimii segmentului de bază, Nv, în funcție de timp și profilul vitezei pe parcursul înregistrării.

Eroarea de calcul a distanței Dk este data de:

2

1

2

1

2

2 100100100

kkkk

VDNNNNk

(7)

unde εv este eroarea de măsurare a vitezei.

Se observă că, datorită termenului al 4-lea al relației (7), care conține la numitor diferența

dintre valorile segmentului de bază între două cadre succesive, Nk și Nk+1, care sunt foarte

apropiate, erorile cresc inacceptabil de mult, făcând imposibil de aplicat relația indirectă (1).

Fig. 22. Implementarea metodei cu ajutorul programului LabVIEW

Page 27: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

Fig. 25 prezintă rezultatul calculului distanței cu relația (1), prin comparație cu valorile lui D

măsurate direct. Din această figură se vede dispersia foarte mare și erorile inacceptabile ale

rezultatului. Pentru rezolvarea acestui inconvenient, s-a găsit soluția aproximării curbei lui Nk din

Fig. 23 cu polinoame. Această aproximare se face chiar de la primul cadru, N0. Evident, deoarece

la început numărul de eșantioane pe care se face aproximarea este mic, iar eșantioanele sunt destul

de dispersate, rezultatul calculului lui D este destul de imprecis, dar acesta se îmbunătățește pe

măsură ce numărul de cadre crește. In Fig. 26 sunt date rezultatele calculului lui D utilizând

aproximări cu polinoame de gradul 1, 2 și 3, prin comparație cu valorile adevărate ale lui D,

măsurate direct. Se observă că pentru primele 30 – 40 de cadre (aprox. 1 s), dispersia valorilor

distanței este destul de mare, dar valoarea se stabilizează ulterior. Erorile cele mai mici se obțin cu

aproximări de ordinul 2, când metoda devine eficientă de la distanța maximă de cel puțin 15 m.

Erorile de determinare a distanței nu depășesc 5 %.

Fig. 25. Valorile distanței calculate cu relația indirectă

Fig. 23. Variația lungimii segmentului de bază în funcție de

timp

Fig. 24. Profilul de viteză pe parcursul înregistrării

Page 28: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

Concluzii

Metoda descrisă poate fi utilă prin atenționarea din timp a șoferului că în fața mașinii se

află un obiect, în particular o mașină staționată la semafor sau din alte motive.

Metoda se bazează pe urmărirea unui segment identificat pe obiectul din față în timpul

unei înregistrări video și determinarea distanței până la acel segment prin calcul pe baza unei

relații iterative. In aplicația prezentată, metoda este eficientă de la maximum 15 m, dar prin

creșterea rezoluției camerei, distanța maximă poate crește la peste 25 m.

Deoarece algoritmii de urmărire și de identificare ai segmentului de bază utilizează funcții

simple morfologice din procesarea imaginilor, precum și funcții cu matrici, care nu necesită

volum mare de calcul, metoda este suficient de rapidă pentru a putea asigura o viteză de calcul de

peste 30 cadre pe secundă, având deci un timp de răspuns mult inferior timpilor de reacție ai

șoferului (între 400 și 700 ms). Metoda asigură, de asemenea, și o precizie satisfăcătoare, de sub

5 %.

Fig. 26. Valoarea distanței în funcție de timp, calculată pe baza aproximărilor polinomiale de gradul 1 (a), 2 (b) și 3 (c), prin comparație cu

valoarea adevărată a distanței, măsurată direct.

a) b) c)

Page 29: Aplicaţii ale tehnologiilor de procesare a imaginilor ... III.pdf · bordul unui vehicul să se amplaseze o camera, prin care se achiziționează date video, urmând ca prelucrarea

Concluzii generale

- A fost elaborat şi testat un algoritm de detecţie a semnelor de circulaţie bazat pe algoritm SVM

(A3.3. şi A3.4.)

- A fost elaborat şi testat un algoritm de detecţie a semafoarelor bazat pe tehnici de inteligenţă

artificială. (A3.3. şi A3.4.)

- A fost elaborat un algoritm de detecţie a autovehiculelor şi de măsurare a distanţei până la

acestea bazat pe algoritm YOLO şi detecţie a marginilor sau procesare în spaţiul SVM (A3.5. şi

A3.6.)

- A fost elaborat un algoritm de determinare a traiectoriei (poziţiei) unui obiect prin procesare

video şi fuziune cu datele de la GPS. De asemenea procesarea a fost făcută pe un modul FPGA

pentru scurtarea timpilor de calcul. (A3.7 şi A3.8).

- Toţi algoritmii au fost dezvoltaţi în OpenCV şi LabView, limbaje agreate de operatorul

economic. De asemenea procesările au fost adaptate pentru a rula pe module de procesare video

(NVidia) cu care operatorul economic are semnat un contract de colaborare pentru dezvoltarea de

produse specifice pentru autovehicule autonome.

- Algoritmii dezvoltaţi sunt complet funcţionali, existând posibilitatea îmbunătăţirii şi optimizării

ulterioare în cadrul companiei.

- Au fost realizate 6 lucrări ştiinţifice ce au fost acceptate spre publicare în cadrul unei conferinţe

indexate IEEExplore şi ISI

- este în curs de elaborare o propunere de brevet de invenţie.

Bibliografie

[1] Object detection on the road using machine learning algorithms, Raducu Gavrilescu, (RO),

Cristian Fosalau, (RO), Cristian Zet, (RO), Marcin Skoczylas, (PL), David Cotovanu, (RO), 2018

International Conference and Exposition on Electrical and Power Engineering (EPE)

[2] Estimating the distance and speed of an object based on image processing, Natanael Gafencu,

(RO), Cristian Zet, (RO), Cristian Fosalau, (RO), 2018 International Conference and Exposition

on Electrical and Power Engineering (EPE)

[3] Cristian ZET, (RO), Cristian Fosalau, (RO), Daniel Titirez, (RO), Adrian Adochitei, (RO),

FPGA based logic analyzer, 2018 International Conference and Exposition on Electrical and

Power Engineering (EPE)

[4] Constantin Leonte, (RO), Cristian Fosalau, (RO), Cristian Zet, (RO), Daniel Petrisor, (RO),

Driver monitoring using face recognition based systems, 2018 International Conference and

Exposition on Electrical and Power Engineering (EPE)

[5] David Cotovanu, (RO), Cristian Zet, (RO), Marcin Skoczylas, (PL), Cristian Fosalau, (RO),

Raducu Gavrilescu, (RO) Detection of traffic signs based on Support Vector Machines

classification using HOG features, 2018 International Conference and Exposition on Electrical

and Power Engineering (EPE)

[6] Cristian Fosalau, (RO), Cristian Zet, (), Natanael Gafencu,, Distance Measurement for Traffic

Safety Applications, 2018 International Conference and Exposition on Electrical and Power

Engineering (EPE)