aplicaţii ale tehnologiilor de procesare a imaginilor ... iii.pdf · bordul unui vehicul să se...
Post on 13-Sep-2019
9 Views
Preview:
TRANSCRIPT
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
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.
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.
Î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.
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.
Î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
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ă.
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ă.
𝑠 = 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.
Î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.
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
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.
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
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)
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
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
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.
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”.
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
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
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
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
2α
Dk
+1
Camera
Segment
PD
Dk
d
Lk+1
A B
V
Pk
Pk+1
Fig. 18. Principiul metodei
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
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
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)
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
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
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)
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)
top related