Metode Numerice de Detectie Si Identificare a Semnelor de Circulatie Dupa Forma Forma Patrata
INTRODUCERE
In aceasta parte de introducere se vor prezenta cateva informații legate de subiectul lucrarii de față si anume motivelor alegerii acestei teme, stabilirea obiectivelor ce trebuiesc indeplinite, precum si necesitatea folosirii in practica.
Aceasta lucrare are la baza procesarea si prelucrarea imaginiilor, pentru detectarea și recunoasterea semnelor de circulatie de formă patrata. Procesarea imaginii genereaza trasaturi vizuale, trăsături pe baza cărora imaginea va putea fi prelucrată. Prelucrarea imaginii se realizează la randul ei prin două etape principale: detectarea, și recunoașterea. În faza de detectare, imaginea este pre-procesată, îmbunătățită și segmentate în funcție de proprietățile semnului, cum ar fi culoarea sau forma. Ieșirea este o imagine segmentată care conține potențiale regiuni care ar putea fi recunoscute ca posibile semne rutiere. Eficiența și viteza de detectare sunt factori importanți care joacă un rol important în întregul proces, deoarece reduce spațiul de căutare și indică numai regiuni potențiale. În etapa de recunoaștere, fiecare dintre candidați este testat pe un anumit set de caracteristici (un model) pentru a decide dacă este în grupul de indicatoare rutiere sau nu, și apoi în funcție de aceste caracteristici sunt clasificate în diferite grupe. Aceste caracteristici sunt alese astfel încât să se accentueze diferențele dintre clase. Forma semnului joacă un rol central în această etapă, iar semnele sunt clasificate în clase diferite, cum ar fi triunghiuri, cercuri, octogoane, etc.[1]
Motivul alegerii acestei teme a fost dorinta de a studia in detaliu, un domeniu de mare interes si anume tehnici de procesare a imaginiilor digitale, precum si urmărirea aplicarii practice a a cunostințelor dobandite de la discipline ca Sisteme și Semnale si Prelucrarea Digitala a Semnalelor, a caror importanta iși pune amprenta in acest domeniu. Acest sistem de detecție și recunoaștere a semnelor de circulatie reprezinta un suport pentru conducatorul auto care poate fi folosit pentru a notifica și avertiza șoferul in legatura cu restrictiile de pe tronsonul curent de drum. Sistemul poate ajuta șoferul să mențină o viteză legală, să respecte indicațiile de trafic locale, sau restricții urbane. Sistemul recunoaște și interpretează diverse semne de circulație, folosind informații vizuale, deci prin urmare semne care pot fi ascunse de alte vehicule sau arbori nu pot fi recunoscute.Implementarea unui astfel sistem de detecția automata a semnelor de circulație prezintă o importanță majoră in ducerea la un nou nivel al autovehiculelor cât și simplificarea experientei ca șofer.
In prezent acest gen de sistem este folosit de catre cațiva din producatorii de autovehicule, cum ar fi BMW, Ford etc., insă sistemul este inca la inceput iar eficacitatea acestuia nu este una foarte buna având în vedere nenumaratele situațiii în care poți intâlni un semn de circulație, cum ar fi: vizibilitate redusă datorita contițiilor meteo(ploaie, ceata), pe timp de noapte, aspectul deteriorat al semnului etc..Un alt obstacol in calea unei eficacități bune este legat de dispozitivul de recunoaștere mobilă. Sistemul trebuie sa functioneze suficient de rapid pentru a putea surprinde semnele de circulație atunci cand autovehiculul circula la viteză mare. Viteza relativa este o problemă care afectează capacitatea camerei de a citi un semn de circulatie.
CAPITOLUL 1
NOȚIUNI GENERALE DESPRE PRELUCRAREA IMAGINILOR DIGITALE
Imaginil digitale
O imagine poate fi definită ca o funcție bidimensional, f (x, y), unde x și y sunt coordonate spatiale, iar amplitudinea f a oricărei perechi de coordonate (x, y) este numit intensitatea sau nivelul de gri al imaginii la acea punct. Când x, y si valorile de amplitudine ale f sunt toate cantitățile finite, discrete, numim imaginea ca fiind o imagine discreta. Domeniul de prelucrare a imaginii digitale se referă la prelucrarea imagini digitale prin intermediul unui calculator digital. Rețineți că o imagine digitală este alcătuită dintr-un număr finit de elemente, fiecare dintre acestea având o anumită locație și valoare. Aceste elemente sunt menționate ca elemente de imagine, elemente de cadru, PEL și pixeli. Pixel este termenul cel mai des utilizat pentru a desemna elementele unei imagini digitale.[2]
Matematic imaginile pot fi reprezentate ca o funcție de două variabile, în spațiul L2 (R2 ), astfel:
• imaginile în tonuri de gri se pot modela cu: f(x, y) : R2 → R, caz în care valorile funcției f reprezintă valorile luminanței obiectelor din imagine, în punctele (x, y) ale spațiului.
• imaginile color se pot modela cu: f(x, y) : R2 → R3 , caz în care valorile funcției f reprezintă vectori de 3 componente dintr-un spațiu al culorilor. De exemplu pot fi cele trei componente ale modelului RGB . Spațiul L 2(R2 ) poate fi limitat la un domeniu finit D, ca în Figura 1.1.
Figura 1.1: Domeniu finit din R2
Modelul utilizat în practică este modelul discret. Funct¸ia f ia valori discrete, fiind deasemenea definit˘a pe un domeniu de valori discrete, adic˘a:
f(k, l) : Z2 → Z+ sau f(k, l) : Z2 → (Z+)3 (1.1)
Trecerea de la domeniul continuu la domeniul discret se face prin eșantionare și cuantizare.
Structura unui sistem de prelucrare si analiză a imaginilor
1.2.1 Etape fundamentale in prelucrarea imaginilor digitale
Există câteva etape fundamentale, dar acestea sunt fundamentale, toate aceste etape pot avea sub-etape. Etapele fundamentale sunt descrise mai jos, cu o diagramă simplă.
Figura 1.2: Etape fundamentale in prelucrarea digitală
1. Achiziția imaginii: Acesta este primul pas sau proces al etapelor fundamentale prelucrarii de imagini digitale. Achiziția de imagine ar putea fi la fel de simplu ca fiind dat o imagine care este deja în formă digitală. In general, etapa de achiziție a imaginilor presupune preprocesare, cum ar fi scalarea etc.
2. Îmbunătățire Imagine: Acest pas este printre cele mai simple și mai atractive zone de prelucrare de imagini digitale. Practic, ideea din spatele tehnicilor de îmbunătățire este de a evidenția detalii care sunt ascunse sau pur și simplu pentru a evidenția anumite caracteristici de interes într-o imagine. Cum ar fi, schimbarea luminozitatea și contrastul etc.
3. Restaurare Imagine: Restaurare Image este un domeniu care se ocupă cu îmbunătățirea aspectului unei imagini. Cu toate acestea, spre deosebire de accesoriu, care este subiectiv, restaurare imagine este obiectiv, în sensul că tehnicile de restaurare tind să se bazeze pe modele matematice sau probabilistice de degradare a imaginii.
4. Procesare a imaginii color: Procesare a imaginii color este un domeniu care a câștigat importanță, din cauza creșterii semnificative a utilizării imaginilor digitale pe Internet. Aceasta poate include modelare de culoare și de prelucrare într-un domeniu digitală etc.
5. Wavelets și procesare multirezoluție: Wavelets sunt fundamentul pentru reprezentarea imaginilor în diferite grade de rezoluție. Imaginile sunt divizate succesiv în regiuni mai mici pentru compresie a datelor și pentru reprezentare piramidală.
6. Compresie: Se ocupă de compresie cu tehnici de reducere de stocare necesar pentru a salva o imagine sau lungimea de bandă pentru a transmite. În special în utilizările internetului, este foarte mult necesar pentru a comprima datele.
7. Prelucrarea morfologică: Prelucrarea morfologica se ocupa cu instrumente pentru extragerea componentelor de imagine care sunt utile în reprezentarea și descrierea formei.
8. Segmentarea: proceduri de segmentare partiționează o imagine în părțile sale componente sau obiecte. În general, segmentarea autonomă este una dintre cele mai dificile sarcini de prelucrare de imagini digitale. O procedură de segmentare robustă impune un drum lung pentru proces spre soluția de succes a problemelor de imagine care necesită ca obiectele să fie identificate individual.
9. Reprezentare și Descriere: În acest pas se urmează aproapw întotdeauna ieșirea unei etape segmentare, care de obicei sunt pixeli de date, constituind fie limita unei regiuni sau toate punctele din regiune însuși. Alegerea unei reprezentări este doar o parte a soluției pentru transformarea datelor brute într-o formă adecvată pentru prelucrarea pe calculator ulterioare. Descrierea se ocupă cu extragerea atributelor care au ca rezultat unele informații cantitative de interes sau sunt pentru diferențierea unei clase de obiecte de o alta.
10. Recunoașterea obiectului: Recunoașterea este procesul care atribuie o etichetă, cum ar fi, "vehicul" cu un obiect bazat pe descriptorii ei.
11.Baza de cunoștințe : cunoștințe poat fi la fel de simple ca detalierea regiunii unei imagini în care informațiile de interes sunt cunoscut a fi situate, astfel limitând căutarea care trebuie să se desfășoare în căutarea aceste informații. Baza de cunoștințe, de asemenea, poate fi destul de complexe, cum ar fi o listă a tuturor defectelor interdependente posibile importante într-o problemă de control de materiale sau o bază de date care conține imaginii de înaltă rezoluție din satelit ale unei regiuni în legătură cu aplicașii de schimbare de detectare. [1]
1.2.2 Eșantionare si Cuantizare
Adesea, domeniul și gama unui semnal original x(t) sunt modelate continuu. Cu toate acestea, coordonatelelor de timp (sau spațiale) ”t” le este permis să-și asume valori albitrare reale (probabil într-un anumit interval) și valorilor x(t) ale semnalului în sine le este permis să ia valori reale arbitrare (din nou, probabil, în unele intervale). Astfel de semnale sunt numite semnale analogice. Un model continuu este convenabil pentru unele situații, dar în alte situații este mai convenabil să lucreze cu semnale digitale – adică, semnale care au un domeniu și o gama discretă (de multe ori finite).
Procesul de digitizare a domeniului este numit eșantionare și procesul de digitalizare gamei se numește cuantizare. Cele mai multe dispozitive pe care le vom întâlni lucrează cu ambele: semnale analogice și semnale digitale. Semnalele digitale sunt deosebit de robuste la zgomot, și sunt cele mai eficiente si versatile mijloace elaborate pentru procesarea semnalelor digitale. Pe de altă parte, în anumite situații semnale analogice sunt uneori mai adecvate sau chiar necesar. De exemplu, procesele fizice mai subiacente sunt analogice (sau cel puțin mai convenabil modelat ca analogic), incluzând sisteme senzoriale umane. Prin urmare, semnalele analogice sunt de obicei necesare pentru a interfera cu senzori si actuatori.
De asemenea, unele tipuri de prelucrare și transmitere a datelor sunt mai convenabil realizate cu semnale analogice. Astfel, conversia semnalelor analogice-semnalelor digitale (și vice versa) este o parte importantă a multor sisteme de procesare a informatiilor.[1]
Figura 1.3 (a) Imagine continuă proiectată pe un senzor matrice
(b) Rezultatul eșantionarii si cuantizării imaginii
Rezultatul eșantionării și cuantizare este o matrice de numere reale. Vom folosi două moduri principale pentru a reprezenta imagini digitale. Să presupunem că o imagine f (x, y) este eșantionată, astfel încât imaginea digitală rezultată are M rânduri și N coloane. Valorile coordonatelor (x, y) devin acum cantități discrete. Pentru claritate și comoditatea notației, vom folosi valori întregi pentru aceste coordonate discrete. Astfel, valorile coordonatelor la origine sunt (x, y) = (0, 0). Valorile urmatoarelor coordonate de-a lungul primului rând de imagine sunt reprezentate ca (x, y) = (0, 1). Este important să se țină cont de faptul că notația (0, 1) este folosită
pentru a semnifica a doua probă de-a lungul primului rând. Asta nu înseamnă că acestea sunt
valorile reale de coordonate fizice, atunci când imaginea a fost prelevat. Figura 1.4 prezinta convenția coordonate utilizate.
Figura 1.4 Conventia coordonalelor utilizate în
reprezentarea imaginiilor digitale
Notația introdus în paragraful precedent ne permite să scriem complet imaginea digitală M*N în forma următoare de matrice compactă:
(1.2-1)
Partea dreaptă a acestei ecuații este, prin definiție, o imagine digitală. Fiecare element al
această matrice matrice se numește un element de imagine, element de imagine, pixel, sau pel. Termenul de imagine și pixelul va fi folosit pentru a indica o imagine digitală și elementele sale.
Uneori, este avantajos să se utilizeze o notație mai tradițională, de matrice, pentru a denumi o imagine digitală și elementele sale:
(1.2-2)
Evident, aij = f (x = i, y = j) = f (i, j), astfel ecuațiile. (1.2-1) și (1.2-2) sunt matrici identice. Exprimând eșantionarea și cuantizarea în termeni matematici mai formali, poate fi util uneori. Fie Z și R mulțimea numerelor întregi reale și respectiv setul numerelor reale. Procesul de eșantionare poate fi privit ca o partiționare a planul xy într-o grila, cu coordonatele centrului fiecărei gril fiind o pereche de elemente din produsul cartezian Z2, care este mulțimea tuturor perechi ordonate de elemente (zi, zj ), cu zi și zj fiind întregi din Z. De aici, f (x, y) este o imagine digitală, dacă (x, y) sunt numere întregi din Z2 și f este o funcție care atribuie o valoare a nivelului de gri (care este, un număr real din setul de numere reale, R) a fiecărei perechi distincte de coordonate (x, y). Această sarcină funcțională este în mod evident procesul de cuantizare. Dacă nivelurile de gri, de asemenea, sunt numere întregi, Z înlocuiește R, atunci o imagine digitală, devine o funcție 2-D ale cărei valori ale coordonatelor și amplitudinii sunt numere întregi.
Acest proces de digitizare necesită decizii cu privire la valorile de M, N, și pentru numărul, L, de niveluri de gri discrete permise pentru fiecare pixel. Nu există cerințe pe M si N, altele decât că trebuie să fie numere întregi pozitive. Cu toate acestea, din cauza prelucrarii, stocare și de eșantionare a probelor considerente hardware, numărul nivelelor de gri este un număr întreg, putere a lui 2:
L=2k (1.2-3)
Presupunem că nivelule discrete sunt echidistante și că acestea sunt numere întregi în intervalul [0, L-1]. Uneori intervalul de valori calibrat de scara de gri se numește intervalul dinamic al unei imagini, și ne referim la imagini ale căror niveluri de gri cuprind o parte semnificativă a scalei de gri ca având un interval dinamic ridicat. Atunci când un număr apreciabil de pixeli prezintă această proprietate, imaginea va avea contrast ridicat. În schimb, o imagine cu interval dinamic redus tinde să aibă un aspect monoton
Numărul, b, de biți necesar pentru a stoca o imagine digitizată este:
b = M x N x k (1.2-4)
Când M = N, acestă ecuatie devine :
b = N2k (1.2-5)
Tabelul 1.1 prezintă numărul de biți necesari pentru a stoca imagini pătrate, cu diferite valori ale N și k. Numărul de niveluri de gri corespunzătoare fiecărei valori de k este prezentat în paranteze. Când o imagine poate avea 2k niveluri de gri, este cunoscută ca fiind “imagine de bit k”. De exemplu, o imagine cu 256 de valori posibile ale nivelului de gri este numită o imagine de 8 biți. Reținețm că cerințele de stocare pentru imagini de 8 biți de mărime 1024 * 1024 și mai mare, nu sunt nesemnificative.
Tabel 1.1 Numarul de biti stocați pentru diferite valorii ale lui N si k.
Figura 1.5 Rezultatul eșantionării unei imaginii
Figura 1.6 Rezultatul cuantizării unei imaginii [3]
Modelarea zgomotului si filtrare de imagini digitale
1.3.1 Modelarea zgomotului
Zgomotul reprezintă o informatie nedorită care deteriorează calitatea imaginii. Zgomotul este definit ca un proces (n) care afectează imaginea achiziționată (f) si nu este parte din scenă (semnalul inișial – s). Utilizând modelul zgomotului aditiv, acest proces poate fi scris ca:
f(i,j) = s(i,j) + n(i,j) (1.3)
Zgomotul imaginilor digitale poate proveni din diferite surse. Procesul de achiziționare pentru imaginile digitale converteste semnalele optice in semnale electrice și apoi in semnale digitale și este un proces prin care zgomotul este introdus in imaginile digitale. Fiecare pas in procesul de conversie are parte de fluctuații, cauzate de fenomene naturale, iar fiecare din acesti pași adugă o valoare aleatoare la intensitatea rezultată a unui pixel dat.
Zgomotul (n) poate fi modelat fie de o histogramă sau o funcție de densitate de probabilitate care este suprapusă cu funcția densitate de probabilitate a imaginii originale (s). In cele ce urmează, modelele pentru cele mai comune tipuri de zgomote vor fi prezentate: sare și piper si zgomotul Gaussian.
a)Zgomotul sare si piper
In modelul de zgomot sare și piper pot exista doar două valori posibile, a și b, iar probabilitatea obținerii fiecarei dintre ele este mai mica de 0.1 (astfel, zgomotul ar domina vast imaginea). Pentru o imagine de 8 bit/pixel, valoarea tipică a intensitații pentru zgomotul de tip piper este aproape de 0 si pentru zgomotul de tip sare este aproape 255.
Figura 1.7 Funcția densitate de probabilitate pentru
modelul de zgomot de tip sare si piper
(1.4)
Zgomotul sare si piper este, in general, provocat de către defectarea celulelor senzorului camerei, de avaria celulelor de memorie sau de erorile de sincronizare in digitizarea imaginii sau trnsmisiei.
b)Zgomotul Gaussian
Zgomotul Gaussian are o funcție densitate de probabilitate (Gaussiană) normală:
Figura 1.8 Densitatea de probabilitate a modelului de zgomot Gaussian
unde:
g=nivel de gri
µ=mediu
σ=deviația standard
Aproximativ 70% din valori sunt conținute intre µ± σ si 90% din valori sunt conținute intre µ± 2σ. Deși, teoretic vorbind, PDF este diferit de zero oriunde intre -∞ si +∞, se obișnuiește să se considere funcția 0 dincolo de µ± 3σ.
Zgomotul Gaussian este util pentru modelarea proceselor naturale care introduc zgomot ( de exemplu zgomotul cauzat de natura discretă a radiației si de conversia semnalului optic in semnal electric – detector, zgomotul electric in timpul achiziției- senzor de semnal amplificat electric).
1.3.1Filtrarea de imagini digitale
a) Filtre comandate ( neliniare)
Filtrele odronate sunt bazate pe o imagine statică specifică, numită ordonare statică. Sunt numite neliniare, deoarece nu pot fi aplicate ca un operator liniar ( la fel ca o convolutie kernel). Aceste filtre operează pe o fereastră mică si inlocuesc valoarea pixel-ului central (similar convoluției). Ordonarea statică este o tehnică care aranjază toti pixelii intr-o ordine secventială, bazată pe valoarea nivelului de gri a lor. Poziția unui element in acest set ordonat poate fi caracterizat după propriul rang. Dacă se da o fereastră W cu NxN pixeli, valorile acestor pixeli poate fi sortată in ordine ascendentă:
I1 ≤ I2≤I3≤ … ≤ IN2 (1.5)
Unde:
{ I1 , I2,I3, … , IN2} reprezint[ valoarea intensitații pixelilor localizați in fereastra W.
De exemplu: se dă o fereastră de 3×3:
Rezultatul ordonării statice va fi:
{85, 88, 95, 100, 104, 106, 110, 110, 114}
Filtrul median: selectează valoarea din mijloc dintre valorile ordonate din fereastră pentru a putea inlocuii pixelul destinatie cu această valoare. În exemplul de mai sus, valoarea selectată este 104. Filtru median este folosit pentru a elimina zgomotul de tip sare și piper.
Figura1.9 Aplicarea filtrului median
Filtrul maxim: selectează ce mai mare valoare dintre valorile ordonate din fereastră. În exemplul de mai sus, valoarea selectată este 114. Acest filtru poate fi utilizat să elimine zgomotul de tip piper, dar in schimb amplifică zgomotul de tip sare dacă este aplicat unei imagini cu zgomot sare și piper.
Filtru minim: selectează ce mai mică valoare dintre valorile ordonate din fereastră. În exemplul de mai sus, valoarea selectată este 85. Acest filtru poate fi utilizat să elimine zgomotul de tip sare, dar in schimb amplifică zgomotul de tip piper dacă este aplicat unei imagini cu zgomot sare și piper.
b)Filtre liniare
Aceste filtre sunt aplicate de onvoluție ( o operație liniară) cu un filtru trece-jos cu convoluție kernel.
1.3.2 Proiectarea dimensiunii variabilei convoluției Gaussiene de nucleu
Eliminarea zgomotului Gaussian trebuie să fie efectuat utilizând un filtru de marime si formă adecvată, corelat la o cantitate de zgomot Gaussian care corupe imaginea. Dimensiunea w a unui astfel de filtru este de obicei 6σ ( de exemplu, pentru un zgomot Gaussian cu σ=0.8 => w=4.8).
Construirea elementelor unui astfel de nucleu/ filtru Gaussian va fi efectuată utilizând urmatoarele ecuatii:
(1.6)
Unde:
(x0,y0)- sunt coordonatele rândului central și coloanei centrale ale nucleului.
CAPITOLUL 2
DESCRIEREA ALGORITMULUI DE DETECȚIE ȘI RECUNOAȘTERE A SEMNELOR DE CIRCULAȚIE
2.1 Mediu de lucru
In cele ce urmează voi vorbi despre mediul de lucru (MATLAB) in care am dezvoltat partea software si anume algoritmul de detecție și recunoaștere a semnelor de circulție.
MATLAB (matrix laboratory) este un mediu de calcul numeric multi-paradigmă și un limbaj de programare de a patra-generatie. Dezvoltat de MathWorks, MATLAB permite manipulări de matrice, trasarea de funcții și date, punerea în aplicare a algoritmilor, crearea de interfețe de utilizator, și interfațare cu programe scrise în alte limbi, inclusiv C, C ++, Java, Fortran si Python.
Deși MATLAB este destinat în primul rând pentru calcul numeric, detine un set de instrumente opționale care foloseste motorul simbolic MuPAD, permițând accesul la capacitățile de calcul simbolice. Un pachet suplimentar, Simulink, adaugă grafică simulare multi-domeniu si design bazat pe model pentru sisteme dinamice și integrate.
MATLAB este utilizat pe scară largă în toate domeniile de matematică aplicată, în educație și cercetare la universități, iar în industrie. Software-ul este construit în jurul vectorilor și matricilor. Acest lucru face ca software-ul să fie deosebit de util pentru algebra liniara, dar MATLAB este, de asemenea, un instrument excelent pentru rezolvarea ecuațiilor algebrice și diferențial și de integrare numerica. MATLAB dispune de instrumente grafice puternice și pot produce imagini frumoase, atât 2D și 3D. De asemenea, este un limbaj de programare, și este una dintre cele mai simple limbaje de programare pentru scrierea programelor matematice. MATLAB are, de asemenea, unele instrumente utile pentru procesarea semnalului, de prelucrare a imaginii, optimizare, etc.
Mediul MATLAB (pentru cele mai multe sisteme informatice) este format din meniuri, butoane și o zonă de scris similară cu a unui procesor de text obișnuit. Exista o multime de functii de ajutor pe care ești încurajat să le folosești. Zona de scriere pe care o poți vedea atunci când vei deschide MATLAB, se numește fereastră de comandă. În această fereastră scrii comenzi pentru MATLAB. De exemplu, atunci când doriți să rulați un program pe care l-ați scris pentru MATLAB, poți rula programul în fereastra de comandă tastând numele său la prompt. Fereastra de comandă este, de asemenea, utilă dacă doriți doar să utilizați MATLAB ca un calculator stiintific sau ca un instrument de grafice. Dacă ați scrie programe mai lungi, veți găsi mai convenabil pentru a scrie codul de program într-o fereastră separată, și apoi rulați-l în fereastra de comandă.
Programul permite crearea de interfete grafice, GUI, astfel se permite unui utilizator să interacționeze cu o aplicație creată. Utilizatorul nu trebuie să scrie linii de cod sau să introducă alte comenzi si nici nu este nevoie să ințeleagă mecanismul din spatele interfeței. Componetele unui GUI includ meniuri, bară de instrumente, bunoane, figuri, text, lista de optiuni, etc. O interfață poate fi proiectată grafic folosind GUIDE ( GUI Development Environment). După ce a fost creată grafica, editorul GUIDE generează codul MATLAB pentru implementarea interfeței grafice, in care se pot face modificări pentru a stabili modul cum va acționa aplicația.
2.2 Planificarea si stabilirea modului de lucru al aplicației
În cele ce urmează doresc realizarea in MATLAB a unui program software pentru detectarea și recunoasterea semnelor de circulație de formă patrată.
Acest algoritm va fi testat pe baza unor imagini facute cu o camera normală, imagini care vor trece prin anumite etape de prelucrare pentru a putea realiza indeplinirea scopului propus.
Semne de circulație au fost proiectate pentru a fi în principal distinse din medii naturale și / sau realizate de om. Ele sunt caracterizate de multe caracteristici le face ușor de recunoscut în ceea ce privește mediul înconjurător. Semne rutiere sunt proiectate, construite și instalate în conformitate cu reglementările strânse. Acestea sunt concepute in forme 2-D fixe, cum ar fi triunghiuri, cercuri, octogoane, sau patrate.
Culorile semnelor sunt alese pentru a fi departe de mediul înconjurător, ceea ce le face ușor de recunoscut de către șoferii. Informațiile de pe semn au o culoare și restul semnului are altă culoare. Nuanța vopselei care acoperă semnul trebuie să corespundă o anumită lungime de undă în spectrul vizibil. Semnele sunt situate in locatii bine definite cu privire la drum, astfel încât șoferul poate, mai mult sau mai puțin, să se așteapte la locația acestor semne. Acestea pot conține o pictogramă, un șir de caractere sau ambele . Semnele rutiere sunt caracterizate prin utilizarea fonturi de text fixe, si inaltimi de caractere. Ele pot apărea în condiții diferite, inclusiv în parte ocultată, distorsionat, deteriorate și grupate într-un grup de mai mult de un semn.
Figura 2.1 Prototip detectie si recunoastere de semne rutiere
Un prototip de detecție și recunoaștere a semnelor rutiere este prezentată în figura 2.1. Sistemul poate fi implementat fie prin informații de culoare, informații legate de formă, sau ambele. Combinând informațiile de culoare și informația formei poate da rezultate mai bune. Cu toate acestea, multe studii au aratat ca depistarea și recunoașterea poate fi realizat chiar dacă oricare dintre culoarea sau forma lipsește.
În algoritmul realizat de mine m-am folosit atât de informații legate de culoare cât si de formă. Informațiile de culoare au fost folositoare deoarece in general semnle de formă pătrată sunt conturate de culoarea albastră, iar informatiile legate de forma m-au ajutat in delimitarea acestora de semnle cu contur albastru dar de altă formă.
Intr-o primă etapă, si anume preprocesarea imaginii, a fost nevoie să mă folosesc de sistemul de culoare RGB (Red, Green, Blue) intrucât orice imagine captată color aparține RGB. Datorita complexitații procesării unei imagini color si timpului mare de procesare, este necesar transformarea acestor imagini, in imagini cu nivele de gri. Eliminarea zgomotului este un alt pas care face parte din preprocesarea imaginii. Cel mai intalnit zgomot este cel de tip sare si piper iar acesta poate fi eliminat cu ajutorul unui filtru median. Pentru a putea detecta zona de interes, este nevoie să transformăm imaginea cu nivele de gri intr-o imagine binara care este reprezentată de o matrice formata din valorile 1 și 0.
O alta etapa este determinarea formei, lucru pe care l-am realizat prin determinarea proprietaților zonei de interes. Funcția „region props” specifica MATLAB ce cea care ma ajutat să determin daca forma semnului este pătrată sau nu.
Dupa realizarea acestor etape, ramâne recunoasterea semnului respectiv. Prin corelația dintre semnul detectat și sabloane cu semne rutire dintr-o bază de date am reuzit identificarea acestui semn.
Toate aceste etape vor fi discutate mai pe lar in cele ce urmează.
2.3 Detecția semnelor bazată pe culoare
Figura 2.2 Segmentarea Bazată pe Culoare
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.144.5021&rep=rep1&type=pdf
POI-Pixel of Interest
Detecția semnelor după culoare se bazează pe cele cinci culori tipice definite în standardul semnelor de circulație (rosu, albastru, galben, alb și negru). Cei mai multi cercetatori cauta o segmentare de culoare robustă, acordând o atenție specială iluminării neomogene, deoarece erorile de segmentare pot fi propagate în următoarele etape ale sistemului. Una dintre primele încercări de a construi un sistem în timp real pentru recunoașterea automată a semnelor de trafic apare în Akatsuka în cazul în care un tabel în spațiu de culoare RGB este folosit pentru a proiecta în mod specific segmentarea semnelor “limita de viteză”.
Autorii au studiate modificările de culorare a semnelor rutiere in funcție de momentul zilei (răsărit, amiază, apus de soare). Ei au dedus că variația iluminării exterioare nu afectează în mod semnificativ diferențele componente RGB ale culorilor semnelor de trafic și au propus un algoritm simplu pentru segmentarea imaginilor ca un prim pas pentru un sistem automat de detectare .
Zadeh a propus o analiză a naturii variatiei de valori a pixelilor de aceeași culoare în spațiul RGB destinate sub-spațiilor corespunzătoare cu cea mai mare rată de variație a spațiului și culorilor semnelor de circulație.Sub-spațiile sunt definite ca regiuni canonice plasate direct pe liniile din RGB (0,0,0) la combinația de culori primare corespunzătoare semnelor de trafic. Există si alte modele bazate pe aspectul de culoare dar care au primit mai puțină atenție. De exemplu, Escalera operează pe raporturile între intensitatea unui anumit canal și suma tuturor intensități canalului RGB.
S-a subliniat că formulele de conversie RGB-HSV sunt non-liniar și, prin urmare, costul de calcul implicat este excesiv de mare. Ritter și combinat culoarea de regiuni de imagine pentru a crea un cod specific pentru detectarea semnelor de circulație și apoi aplicate diferite filtre de forma pentru detectarea prezenței semnelor de trafic in cadrul regiunii de interes.
O abordare diferită a fost adoptată atunci când autorii au instruit detectoare de semne rutiere la scară specifice , utilizând caracteristici parametrizate de culoare ale wavelet Haar. Cele mai bune caracteristici au fost selectate de către un cadru AdaBoost in cascadă dintr-un spațiu mare de caracteristici definite pe mai multe reprezentări de culori: canale simple R, G, și B, canale normalizate R, G, si B, și un canal de nivele gri. In acest fel, cel mai potrivită reprezentare a culorilor a fost dedus automat din date, mai degrabă decât ales arbitrar de autori. In ciuda rezultatelor finale excelente, una dintre principalele dezavantaje ale acestor abordări este sarcina de calcul de mare, care face dificilă produce unui sistem în timp real. Ca o notă a autorilor, o rezoluție video de 384 × 288, o viteză de procesare de numai 10 cadre pe secundă este atină.
Printre studiile în care informațiile de culoare au fost utilizat pentru a detecta semnele de trafic, o cantitate semnificativă de muncă pot fi găsite pe baza spațiilor de culoare care nu sunt RGB. modelul de culoare Hue-Saturation-Valoare (HSV) a fost adoptată pentru că se bazează pe percepția culorilor umane și este considerat în mare măsură invariant la schimbări de iluminare. Autorii definesc sub-spații limitând valorile culorilor semnelor de stop. Liu utilizează cuantizarea culorilor în modelul de culoare HSV pentru a găsi regiuni de interes, urmat de deducerea frontierelor și scalarea regiunilor de interes. Piccioli a definit regiunile de interes prin gruparea de blocuri mici ale imaginii în cazul în care numărul de pixeli, cu o nuanta intr-o gama apropiată, depășește un prag predeterminat.
Figura 2.3 Modelul de culoare HSV
Uneori modelul HSV este folosit pentru a clasifica imaginile semnelor de test în mai multe categorii distincte. Fang extragerea caracteristicilor de culoare de catre o rețea neuronală. Există un algoritm inedit de segmentare paralelă numit structura codului de culoare bazat pe o regiune ierarhică tot mai mare pe o topologie hexagonală specială care extrage seturi de regiuni de culoare (în spațiul de culoare HSI) din imagini. Culoarea este codată în canalele de nuanța (H) și saturație (S) în timp ce intensitatea nuanțelor de gri (I) utilizează propriul canal. Cu toate acestea, informațiile de culoare nu sunt fiabile dacă saturația este foarte scăzută. Prin urmare, defini intervalele [Hmin, Hmax], [Smin, Smax] și [Imin, Imax] pentru toate cele trei canale și folosim o simpluă funcție de segmentare binară:
(2.1)
Anumiți autori au estimat aspectul culori caracteristice ale semnului independent imagini reale luate în diferite condiții de vizualizare. Au adoptat modelul de culoare CIECAM97 pentru a segmenta imaginile. O abordare originală și robustă pentru detectarea pe bază de culoare și segmentarea semnelor rutiere folosind spațiu de culoare IHLS. Ambele aceste studii considerate dispozitiv independent de culoaret care poate fi o opțiune mai bună decât dispozitivele standard dependente de modelul RGB.
Lucrarile recente a înregistrat progrese semnificative aplicând tehnice avansate de mașina de învățare. Nguwi segmentează pixelii semnelor de trafic în spașiul de culoare YCbCr folosind un perceptron multistrat instruit cu privire la semnele de circulație vs regiuni interes ale semne non-rutiere. Fang si alții au aplicat rețele neuronale pentru a a extrage informații de interes referitoare la formarea focarelor de atenție. Detectarea semnelor este obținută prin analiza combinației de culoare și informatiilor de contur.
Pe de altă parte, segmentarea de culoare poate suferi datorită diverselor fenomene cum ar fi distanta de la țintă, condițiile meteorologice, ora din zi, sau datorită reflexiei suprafețelor semnelor. Unii autori au preferat o abordare strict incoloră. Ei aplică algoritmi genetici sau transformate de distanță (DTs) . Uneori, imaginile sunt transformate folosind wavelets și clasificate de către o rețea neuronală Perceptron.
Chiar dacă modificări ale condițiilor de iluminare afectează informațiile de culoare, culoarea rămâne un indiciu util pentru detectarea și recunoașterea semnelor de circulație. Mai mult, semne pot avea apariții foarte asemănătoare și culoare poate fi o caracteristică foarte importantă pentru a putea fi distingse între ele. Atunci când există un număr mare de clase în baza de date a semnlor de trafic, culoarea poartă informații discriminatorii foarte valoroase care ar trebui fi utilizat ori de câte ori este posibil. În cele din urmă, nu trebuie să uităm că, în unele țări, de exemplu, Japonia, există perechi de semne, care diferă numai în ceea ce privește culoarea. Astfel, dezvoltarea modele de culoare robuste, luând în considerare variația apariției culorii este de mare interes pentru sistemele finale de conducere automată.
2.3.1 Transformarea imaginii color in imagine cu nivele de gri
Orice imagine digitala este alacătuită din pixeli formați dintr-un anumit model cromatic. În funcție de aplicație, modul de lucru sau afisarea imaginilor, în practică se folosesc mai multe modele cromatice cum ar fi:
Modelul RGB (Roșu-Verde-Albastru)
Modelul YCbCr (Luminată-Crominanta față de albastru-Crominață față de roșu)
Modelul CMYK (Turcoaz-Magenda-Galben-Cheie)
Modelul HSV (Nuanță-Saturație-Valoare)
Modelul HSL (Nuanță-Saturație-Luminanță)
In cadrul aplicației imaginea apare ca o matrice de MxN pixeli ai caror calori sunt reprezentate cu ajutorul modelului de culoare RGB. Modelul RGB (roșu-verde-albastru) este un model aditiv de culoare in care culorile aditive sunt create prin diferite combinații. Mai precis, culorile aditive sunt produse prin orice combinație de Figura 2.4 Modelul RGB
culori spectrale solide care sunt optic amestecate prin
plasarea foarte apropiată a acestora , sau fiind prezentate într-o succesiune foarte rapidă. În aceste condiții, două sau mai multe culori poate fi perceput ca o culoare.
Deoarece imaginile provenite de la camere poat fi atât omagini cu nivele de gri cît și imagini color, algoritmul trebuie să verifice acest aspect iar cazut in care imaginea este color procesarea acesteia este mult mai complexă iar timpul de procesare este mult mai mare și de aceea este necesară transformarea acesteia in intr-o imagine cu nivele de gri. O imagine cu nivele de gri este reprezentată de o matrice cu două tipuri de date de marime MxN. Valorile elementelor denotă intensitașiile pixelilor de nivel gri in [0,1] cu 0=negru și 1=alb. In MATLAB această transformare se poate realiza cu urmatoarele linii de cod:
ImagineGri = rgb2gray (Imagine);
Functia “rgb2gray” primeste ca parametru de intrare o imagine color si redă ca și rezultat o imagine cu nivele de gri. Practic funcția realizează media ponderată a celor trei valori ale componetelor pixelului, adică pentru orice pixel p(i,j) caloaea nivelului de gri provine din media ponderată a celor trei culori component, calculate cu ecuația:
pg(i,j) = pR(i,j)*0.2989 + pG(i,j)*0.5870 + pB(i,j)*0.1140 (2.1)
b)
Figura 2.5 Transformarea imaginii RBG in imagine cu nivele gri
a) Imagine RGB
b) Imagine cu nivele de gri
2.3.2 Extragerea componentelor albastre din imagine
Programul implementat presupune extragerea semnelor de circulație de formă patrată a caror componență de culoare conține albastru și de aceea extragerea culorii albastru din imagine reprezintă un pas necesar. Acest lucru se va realiza in MATLAB cu ajutorul următorului cod:
ImagineAlbastra = imsubtract(Imagine(:,:,3), ImagineGri);
Funcția “imsubstract” extrage fiecare element din matricea imaginii de nivele gri corespunzătoare elemtelor din matricea de albastru a modulului RGB si afișează rezultatul intr-o nouă matric
După realizarea acestui pas vom obține o imagine care contine doar componentele de albastru așa cum se poate observa si in figura urmatoare:
b)
Figura 2.6 Extragerea componentei Albastru
a)Imagine cu nivele de Gri
b)Imagine doar cu componenta de Albastru
Daca imagine pe care o prelucram conține și alte structure care au aceiași culoare, exceptând semnul pe care dorim să il detectăm, dar sunt mult pre amici sau prea mari pentru a putea fi un semn de circulatie acestea trebuie să fie eliminate pentru a putea detecta mai ușor si precis semnul rutier.
2.3.3 Utilizarea unui filtru median pentru extragerea zgomotului
În prelucrarea imaginilor digitale, este adesea de dorit să se poate realiza o reducere a zgomotului pe o. Filtrul median este o tehnica de filtrare digitala neliniare, de multe ori folosite pentru a elimina zgomotul. O astfel de reducere a zgomotului este un pas tipic pre-procesării pentru a îmbunătăți rezultatele de prelucrare ulterioară (de exemplu, detectarea marginii pentru o imagine). Filtrarea mediană este utilizat in procesare imaginilor digitale la scală foarte largă, deoarece, în anumite condiții, se conservă marginile imagini, în timp ce se elimină zgomot.
Filtrarea mediană este un fel de tehnică de netezire, cum este și filtrarea Gaussian liniară. Toate tehnicile de netezire sunt eficiente la eliminarea zgomotului în patch-uri netede sau regiuni netede ale unui semnal, dar afectează în mod negativ margini. Adesea însă, în același timp cu reducerea zgomotului într-un semnal, este important să se păstreze margini. Marginile sunt de o importanță critică pentru aspectul vizual al imaginilor, de exemplu.
Pentru niveluri mici sau moderate de zgomot (Gaussian), filtru median este demonstrabil mai bun decât Gaussian obscur la eliminarea zgomotului păstrând marginile pentru o anumită, dimensiune fixă a ferestrei. Cu toate acestea, performanțele sale nu sunt cu atât de mult mai bune decât Gaussian obscur pentru niveluri ridicate de zgomot, în timp ce, pentru zgomotul pistrui și zgomotul sare și piper (zgomot impulsiv), este deosebit de eficient. Din cauza acestui fapt, filtrare mediană este utilizat pe scară largă în prelucrarea imaginii digitale.
In algoritmul, eliminarea zgomotul este realizat prin urmatoarele linii de cod:
ImagineAlbastra = medfilt2(ImagineAlbastra, [3 3]);
Practic funcția “medfilt2” efectuează filtrarea mediană a matricei obținute la punctual anterior, matrice în două dimensiuni. Fiecare pixel de ieșire conține valoarea medie într-un cartier de 3-de-3 în jurul pixelului corespunzătoare din imaginea de intrare. “medfilt2” tampoaneză imaginea cu “0” pe margini, astfel încât valorile medii pentru puncte situate ]n jumătatea de lățime a zonei vecine a marginilor, pot apărea distorsionate.
Rezultatul acestei medieri se poate observa in figura urmatoare:
b)
Figura 2.7 Eliminarea zgomotului
a) Imaginea cu zgomot
b) Imagine filtrata
2.3.4 Convertirea imaginii in imagine binară
O imagine binară este o imagine digitală, care are doar două valori posibile pentru fiecare pixel. De obicei, cele două culori folosite pentru o imagine binar sunt alb și negru, deși oricare două culori pot fi folosite. Culoarea folosită pentru obiect (e) în imaginea este culoarea planului frontal în timp ce restul imaginii este culoarea de fundal.
Imagini binare sunt de asemenea, numit la nivel bi sau două niveluri. Acest lucru înseamnă că fiecare pixel este stocat ca un singur bit, un 0 sau 1. Numele alb-negru, B & W, monocrome sau monocromatic sunt adesea folosite pentru acest concept, dar poate, de asemenea, desemna orice imagini care au doar un singur eșantion per pixel, cum ar fi imagini în tonuri de gri.
Imagini binare apar adesea în prelucrarea digitală a imaginii drept maști sau ca urmare a unor operațiuni precum segmentare, thresholding și cuantizare.
O imagine binar pot fi stocate în memorie ca un bitmap, o matrice de biți. O imagine de 640 × 480 pixeli necesită 37,5 KB de depozitare. Din cauza dimensiunilor mici ale fișierelor de imagine, solutii ca fax și gestionarea documentelor folosesc de obicei acest format. Cele mai multe imagini binare sunt deasemenea comprimate bine cu sistemele simple de compresie.
Imagini binare pot fi interpretat ca subseturi ale unei structuri bidimensionale Z2 ; domeniul de prelucrare a imaginii morfologice a fost în mare parte inspirată de acest punct de vedere.
Imagini binare sunt produse din imagini color prin segmentare. Segmentarea este procesul de atribuire fiecărui pixel din imaginea sursă a două sau mai multe clase. Dacă există mai mult de două clase de obicei rezultatul usual este apariția câtorva imagini binare. Cea mai simplă formă de segmentare este, probabil, metoda Otsu, care atribuie pixeli prim-planului sau fundaluli pe baza intensitații nuanței de gri. O altă metodă este algoritmul de cumpănă. Detectarea de margine, de asemenea, creează adesea o imagine binară cu anumiși pixeli atribuiți pixelilor de margine, și este de asemenea un prim pas în segmentare care urmează.
Thresholding este cea mai simpla metoda de segmentare a imaginii. Dintr-o imagine în tonuri de gri, thresholding poate fi folosit pentru a crea imagini binare.
Pentru a face thresholding complet automatizat, este necesar pentru calculator să selecteze automat pragul. Sezgin și Sankur clasifica metodele de thresholding în următoarele șase grupe pe baza informațiilor pe care algoritmul le manipulează:
Metode bazate pe forma Histogramei, în cazul în care, de exemplu, vârfurile, văile și curburilor histogramei netezite sunt analizate
Metodele bazate Clusterizare, unde probele de nivel gri sunt grupate în două părți ca fundal și prim plan (obiect), sau alternativ sunt modelate sub forma unui amestec de două Gaussiene
Metode bazate pe Entropie conduc la algoritmi care folosesc entropia regiunilor prim-planului și de fundal, cross-entropia între imaginea originală și imaginea binarizată, etc.
Metode bazate pe Atribut de Obiect care căuta o măsură de similitudine între nivelul de gri și imaginile binarizat, cum ar fi similitudini de formă neclară, coincidență margine, etc.
Metode Spațiale care folosesc distribuție de probabilitate de ordin superior și / sau de corespondență între pixeli
Metode Locale care realizează adaptarea valoarii de prag pe fiecare pixel la caracteristicile locale de imagine. În aceste metode, un alt prag este selectat pentru fiecare pixel din imagine.
Realizarea transformarii imaginii intr-o imagine binară, in MATLAB se face in felul următor:
ImagineBinar = im2bw(ImagineAlbastra,0.18);
Prin utilizarea funcției “im2bw” se transformă imaginea cu nivele de gri intr-o imagine binară. Imaginea de ieșire inlocuieste toți pixelii cu luminanța mai mare decât “nivelul” introdus, din imaginea de intrare, cu valoarea 1 (alb) și înlocuiește toți celelalți pixeli cu valoarea 0 (negru). Valoarea nivelului face parte din intervalul [0,1]. Această gamă este relativ la niveluri posibile de semnal pentru clasa imaginii. Prin urmare, o valoare a nivelului de 0,5 este la jumătatea distanței dintre alb și negru, indiferent de clasa. Pentru a calcula nivelul argumentului, puteți utiliza funcția de graythresh. Dacă nu specificați nivel, im2bw utilizează valoarea de 0,5.
b)
Figura 2.8 Transformarea in imagine binară
a)Imagine fară zgomot
b)Imagine binară
2.3.5 Umplerea imaginii și eliminarea regiunilor mici
Umplerea imaginii reprezintă defapt umplerea regiunilor și gaurilor dintr-o imagine. O gaură este un set de pixeli de fundal, care nu poate fi atins prin completarea fundalului din marginea imaginii.
Liniile de cod care realizează umplerea sunt urmatoarele:
ImagineUmpluta=imfill(ImagineBinar,'holes');
b)
Figura 2.9 Umplerea găurilor din imagine
a) Imaginea binară
b) Imaginea cu găurile umplute
Eliminarea regiunilor nedorite pentru a putea pastra doar regiunea de interes este realizată in felul urmator:
ImagineUmpluta = xor(bwareaopen(ImagineUmpluta,20000), bwareaopen(ImagineUmpluta,500000))
b)
Figura 2.10 Eliminarea regiunilor mici
Imaginea după umplere
Imaginea dupa umplere dar fără regiunile mici
Dupa umplerea regiunilor și gaurilor vom crea o copie a imaginii inițiale in care toti pixeli care nu aparțin zonei de interes vor fi inlocuți cu 0 (negru) , iar pixelii din zona de inters vor fi aceiași ca și in imaginea originală.
Imagine2 = Imagine;
[Inaltime Latime X] = size(ImagineUmpluta);
for i=1:Inaltime
for j=1:Latime
if (ImagineUmpluta(i,j)==0)
Imagine2(i,j,1:3)=0;
end
end
end
figure(8), imshow (Imagine2);
b)
Figura 2.11 Păstrarea regiunilor cu component albastru, din imaginea originală
a) Imaginea făra regiunile mici
b) Imagina după prelucrare
2.4 Detecția formei
2.4.1 Metode de detecție a formei
Figura2.12 Detecție după formă
http://www.ijareeie.com/upload/june/48_2D%20GEOMETRIC.pdf
Descoperirile recente in recunoasterea obiectelor deschide oportunități mari pentru detectarea robustă a semnelor de trafic in medii necontrolate. Totusi, probleme rămân, precum detectarea semnelor de circulație în scene aglomerate, în condiții de luminozitate diferite și iluminare, distorsiuni afine potrivit punctul de vedere, ocluziilor parțiale sau chiar alte semne și alte informații atașate la semnele de circulație. O altă dificultate este simplitatea formei semnului trafic, ceea ce înseamnă că poate fi ușor de confundat cu alte obiecte sau părți de obiecte. În funcție de distanța din sistemul de achiziție, dimensiunea semnelor de trafic poate varia și rezoluția sa spatială pot fi foarte scăzută (de exemplu 30-40 pixeli).
Având în vedere informațiile geometrice regulate furnizate de semnele de circulație, una dintre primele încercări de a aborda problema a fost de a aplica transformata Hough marginea harții a regiunii de interes. Pentru a accelera procesul Piccioli a utilizatinformațiile de culoare pentru a putea limita zona de interes, urmată de o analiză geometrică pe marginea hații pentru a extrage si a detecta forme circulare și triunghiulare. După extragerea linii drepte folosind muchiile Canny, diferitele segmente de lungime și pantă corespunzătoare pot fi adecvate pentru utilizarea ca semne de circulație. O altă metoda propusă este acea care primadată segmentează imaginile pe baza culorii și apoi se aplică local și global tehnica de creștere pentru a organiza ierarhic informațiile și pentru a putea forma semne de trafic candidați. Aceste semne candidate sunt comparate cu un set prestabilit de forme de semne de trafic de bază pentru a verifica faptul că regiunea de interes reprezintă un semn de circulație. Mai mult decât atât, autorii susțin că performanța în timp real pe care aceștia o ating, face metoda foarte atractivă pentru integrare finală în sistemele de operare.
Din nou, metodele de învățare de tip mașină imbunatațesc in mod semnificativ rezultatele finale ale detectoarelor semnelor de circulație. A fost dezvoltată o abordare simplă, bazată pe binarizarea culorii și analiza formei pentru a detecta semnele, urmat de o rețea neuronală pentru a le clasifica. Mai târziu sa aratat ca utilizarea cuorii Look-Up Table în spațiul HSI pentru a identifica regiunile de interes și algoritmi genetici pentru a detecta semnele în regiunile de interes a produs rezultate finale mult mai bune. Principalul avantaj de abordare a lor bazată pe algoritmi genetici este că permite detectarea semnelor de trafic eficient indiferent de poziția, scara, rotația, ocluzii parțiale, prezența de alte obiecte, precum și variațiile în condiții meteorologice.
Pasul final in recunoasterea de semne rutiere se realizează prin rețeaua neurală. O alternativă este prezentată de Gavrila, în care semnele de circulație potențiale sunt identificate printr-o metodă de corelație bazată pe șablon folosind transformări la distanță, în timp ce clasificarea se bazează pe baza rețelelor radiale funcționale. O abordare diferită a mașinii de invatare este folosită în cazul în care o mașină vector de sprijin este responsabilă pentru segmentarea imaginii în spațiul RGB urmată de detectarea forme circulare, acordând o atenție deosebită posibilelor deformări deformari.
2.4.2 Detecția formei pătrat
Așa cum specifică si numele temei, un pas important in realizarea acestui program o reprezintă detectarea formei pătrat, necesară categorizării semnelor rutiere strict dupa această formă.
Pentru realizarea acestui pas m-am folosit de catre proprietățile funcției ”regionprops” , funcție care se foloseste de anumiți descriptori. În general, descriptori sunt anumite seturi de numere care sunt produse pentru a descrie o anumită formă. Forma nu poate fi în întregime reconstruită din descriptorii, dar descriptorii pentru diferite forme ar trebui să fie suficient de diferiți pentru ca formele să poată fi diferențiate.
Astfel de descriptori folosiți pentru a determina dacă zona de ineres determinată are sau nu formă pătrată, sunt urmatorii:
Aria: Returnează un scalar care specifică numărul real de pixeli din regiune. (Această valoare poate diferii ușor față de valoarea returnată de bwarea, care consideră modele de pixeli, diferit.).
BoundingBox: Returnează cea mai mică casetă de incadrare in care este incadrată regiunea.
Perimetru: Returnează un scalar care specifică distanța în jurul frontierei regiunii. “regionprops” calculează perimetrul prin calcularea distanței dintre fiecare pereche adiacenta de pixeli în jurul frontierei regiunii. Dacă imaginea conține regiuni discontinue, regionprops întoarce rezultate neașteptate.
In program, pentru a determina daca zona de ineres are forma pătrat sau nu, am considerat ca aria zonei de interes raportată la aria cuprins de catre caseta de incadrare creată de către BoundinBox trebuie sa fie aproximatic egală cu 1. Cum acest lucru se poate intămpla si in cazu in care zona de inters este un dreptunghi, am introdus o condiție in plus și anume ca raportul dintre lungimea si lățimea casetei de incadrare trebuie sa fie egală cu 1, astfel casetade incadrare este un pătrat.
Liniile de cod care realizeaza acest lucru in MATLAB sunt urmatoarele:
Masuratori = regionprops(ImagineEticheta, ImagineUmpluta, 'all');
NrObiecte = size(Masuratori, 1);
for k = 1 : NrObiecte
%arie forma
Arie = Masuratori(k).Area(1)
%arie BoundingBox
Incadrare = Masuratori(k).BoundingBox(3)*Masuratori(k).BoundingBox(4)
%raport arii
raport_arii = Arie/Incadrare ;
raport_incadrare = Masuratori(k).BoundingBox(3) / Masuratori(k).BoundingBox(4);
if (raport_arii >= 0.9) && (raport_arii <= 1.1) && (raport_incadrare >=0.9) && (raport_incadrare <=1.1)
disp ('Patrat')
Daca in imagine mai apar si alte zone de culoare albastră pe langă zona de ineres, atunci acestea vor fi eliminate cu ajutorul funcției “ismember”.
ImagineEticheta2 = ismember(ImagineEticheta, k);
Rezultatul este următorul:
b)
Figura 2.13 Obținerea zonei de interes
Imagine cu regiuni asemănatoare cu regiunea de inters
Imagine care conține doar regiunea de interes
2.5 Recunoașterea semnului de circulație
2.5.1 Generalități despre sisteme de recunoastere
Odată ce regiunea de interes este determinată și un semn de circulație este detectat, ar trebui fi recunoscută cu ajutorul unei baze de date predeterminată de toate semnele de circulație din sistem. Cele mai multe dintre abordările pot fi împărțite în două strategii: comparație bazată pe sabloane vs. comparație pe bază de clasificator. Cea mai frecventă măsură bazată pe similitudine in clasificarea semnelor de traffic este normalizată corelația. Aici, o anumită măsură de similitudine între nivelurile de gri ale regiunii de interes și mai multe șabloane ale semnelor de trafic este estimată pe baza normalizat corelareației în scopul de a identifica semnul de trafic. Folosind 60 de semne circulare și 47 de semne triunghiulare în baza lor de date, acești autori raportează o precizie de 98% .
Principalul avantaj corelației normalizate este simplitatea, robustetea la diferite condiții de iluminare și ușurința de a găsi o interpretare statistică. De asemenea, atrăgătoare din punct de vedere implementării deoarece s-a dovedit a fi echivalente cu un corelator optic. Zadeh a prezentat o altă metodă pe baza comparării cu șabloane în care s-a considerat o bază de date de 30 de semne triunghiulare și 10 semne circulare și a obținut o precizie de 85%. Această metoda a prezentat o abordare legată de analiza raportuluide suprafață a culori în regiunile de interes orizontală și pe verticală, pentru a putea să facă odiferență între semnele de circulație cu raporturi similare de culoare, globale.
Avantajul abordării lor este că metoda este invariantă rotației și mărimii regiunii și astfel numărul modelelor potențiale este redusă substanțial, astfel accelerează timpul sistemului de recunoastere. Datorită naturii globale a metodei bazate pe șabloane ,aceasta poate suferi de prezența unor pixeli neinformativi in zonele de interes (de exemplu, datorită ocluziilor). Pentru a face față aceastei probleme, autorii propun o metodăbazată pe similitudine care să poată fi antrenat pe baza unor comparații individuale într-un set de regiuni locale de imagine. În plus, setul de regiuni relevante pentru o anumită metodă de similitudine poate fi rafinat prin proceduri de antrenare.
Al doilea grup de abordări se bazează pe tehnici de învățare automată mai sofisticate care, în general, obțin rezultate mai robust atunci când imaginile sunt analizate in medii necontrolate . Modelele de devreme se bazau pe rețele neuronale cum ar fi cel prezentat de Krumbiegel în cazul în care o rețea neuronală este antrenată pe baza culorii, formei si textura șabloanelor semnelor de circulație. Douvilee utilizează un perceptron multistrat pe transformata Fourier rapidă a semnului detectat și o bancă de filtre, si a constatat ca o rețea neuronală obține rezultate mai bune decât procedura de comparare cu șabloane. Cyganek utilizează două rețele comitet care operează în domeniul spațial și reprezentarea polar-log. Fiecare rețea comitet a fost compusă de mai multe rețele neuronale Hamming antrenate pe un set de semne de referință. Ca o alternativă , Nguwi a arătat că o cascadă de mașini perceptron multistrat au obținut rezultate mai bune decât o mașină de vector de sprijin în cazul în care propagarea Resilient Black și algiritmii Scaled Conjugate Gradient au realizat o precizie de clasificare de 96%, în timp real.
Unul dintre principalele dezavantaje ale metodelor actuale de recunoaștere a semnelor de circulație este lipsa unei baze de date de domeniu public care conține destule exemple de o gamă largă de semen de trafic dobândite în medii necontrolate . Cele mai multe dintre lucrările publicate sunt prezentate pe un număr limitat de semne, cu un număr mic de exemple diferite. O excepție este un studiul legat de cazul în care o bază de date de 1500 de imagini drum sunt analizate cu semne de circulație extrase și incluse în setul de date al imaginilor de bord și peste 3.500 de imagini ale demnelor de traffic de bord individuale . Imaginile au fost achiziționate de la trei țări europene: Cehia, Spania și Regatul Unit, și reprezintă o mare variabilitate de iluminare și de condițiile meteorologice. Pentru a obține rezultate solide, o hartă de auto-organizare este utilizat pentru a detecta potenșiale semne rutiere prin analiza distribuției de pixeli roșii in interiorul imaginii. Sunt detectate semne de circulație din distribuțiile pixelilor întunecați din pictogramele lor. După aceasta, un sistem hybrid este introdus și combină părți hardware programabile si retele neuronale pentru încorporat mașină video care să conducă la un prototip final robust și rapid al sistemului și să obțină rezultate foarte satisfăcătoare în timp real.
Un sistem real de utilizator final pentru detectarea și recunoașterea semnelor de circulație trebuie să ofere performanțe mari, dar ar trebui să fie, de asemenea, să funcționeze in timp real. Într-un alt studiu autorii aplică detector de simetrie radială pentru a descoperi semne de viteză în scenarii urbane și a fost testat într-un mediu real. Detectorul este montat în interiorul unui vehicul rutier și performanțele sale, viteza și stabilitatea sunt testate în timp ce vehiculul este în mișcare. Detectorul arată că poate rula sub o mare varietate de condiții vizuale. Un alt studiu în care simetria radială ajută la realizarea detectării rapidă și robustă prezintă un system format prin combinarea unui detector de muchii Canny cu tehnicile de simetrie radiale și AdaBoost ca un clasificator pentru a obține rezultate finale foarte precise de recunoaștere a semnelor de circulație, în ciuda variația mare de apariție a semnului ca urmare a zgomotului, deformarii și iluminării reduse.
Cele mai multe studii privind detectarea și recunoașterea semnelor de circulație automate sunt dezvoltate într-un singur cadru. Cu toate acestea, sistemele de cartografiere mobile sunt de asemenea folosite pentru a achiziționa secvențe de scene de trafic; astfel, informațiile temporale se pot dovedi foarte utile pentru creșterea preciziei procesului de detectare și de recunoaștere. Se pot aplica filtre Kalman pentru a urmări semnele până mărimea lor este suficient de mare pentru a asigura rezultate de recunoaștere solide. Un studiu recent prezintă evoluția sistemului bazat pe un model de calcul al procesului de recunoaștere vizual uman. Sistemul este alcătuit din trei părți de bază: senzoriale, perceptive si analizoare conceptuale. Partea sensorialăăă extrage informațiile spațio-temporale din secvențele video. Informațiile obținute sunt utilizate de către rețele neuronale spațio-temporale în analiza perceptuală.Semnele detectate sunt normalizate și corelate cu toate prototipurile stocate anterior în baza de date a semnelor de trafic. Rezultate excelente au fost obținute, cu toleranță de trei pixeli, datorită informațiilor spatio-temporal integrate în sistemul de urmărire și modulul final de recunoaștere.
2.5.2 Recunoasterea semnelor prin corelație
Corelația reprezintă modalitatea de recunoastere a semnelor de circulație folosită în algoritmul prezentat. Corelația este realizată intre imagine care conține doar zona de interes și șabloane ale semnelor de circulație incluse intr-o bază de date. Înainte de a realiza corelația este nevoie ca regiunea de interes să fie tăiată din imaginea originală si redimensionată la dimensiunile sabloanelor.
% tăierea zonei de interes
ImagineFinala = imcrop(Imagine3,[Masuratori(k).BoundingBox(1) Masuratori(k).BoundingBox(2) Masuratori(k).BoundingBox(3) Masuratori(k).BoundingBox(4)]);
%redimensionarea zonei de interes
ImagineFinala = imresize(ImagineFinala, [510 585]);
b)
Figura 2.14 Separarea zonei de inters de restul imaginii
a)Imaginea care con;ine doar zona de inters
b)Zona de inters ca imagine separată
Realizarea bazei de date ce conține sabloanele se face cu ajutorul unei funcții separate care crează structuri de date.
Corelația se realizează cu ajutorul funcției ”corr2” , funcție care returnează un coeficient de corelație intre imaginea pe care dorim să o comparăm si si sabloane. Cea mai mare valoare a coeficientului de corelatie prezintă faptul ca asemănarea dintre imagine și șablonul respectiv este mai mare decât în comparație cu celelalte șabloane.
Corelatie_max = 0;
for i=1:6
C(i) = corr2(rgb2gray(ImagineFinala), rgb2gray(sablon(i).imagine));
if C(i)>corelatie_max
corelatie_max = C(i);
nume_semn = sablon(i).nume;
end
end
corelatie_max
nume_semn
end
CAPITOLUL 3
REZULTATE EXPERIMENTALE
In cele ce urmează vor prezenta rezultate experimentale care arată limitările algoritmului .
Algoritmul de detecție propus de mine prezintă rezultate bune in cele mai multe cazuri, insă are anumite limitări atunci cand intâlnim situații de luminozitate proastă, condiție proastă a semnului, anumite condiții meteorologice, etc
Pentru a intelege mai bine aceste limitări, voi prezenta un caz în care un semn de circulatie este detectat si recunoscut cu succes.
Figura 3.1 Detecția si recunoașterea cu succes a unui semn de circulație
In cazul de față semnul se află in condiții ideale si anume vizibilitate bună, nu prezintă deteriorări, culoarea semnului nu se confundă cu fundalul, luminozitatea prezintă condiții optime, de aceea detectarea și recunoasterea acestuia este realizată cu succes. Cu toate acestea gradul de corelație este aproximativ 0.6, in schimb gradul de corelație cu sabloanele necorespunzătoare semnului respectiv este mult prea mic pentru a fi luat in considerație.
3.1 Detecția semnului de circulație
3.1.1 Detecție de culoare
Unul dintre cazurile des intâlnite care pun in dificultate algoritmul in domeniul detecției de culoare este acela când fundalul (ex. o cladire) unui semn de circulație este de aceiași culoare ca si semnul. După segmentarea imaginii algoritmul nu poate face diferentă intre semn si fundal, deci fundalul nu poate fi eliminate făra ca semnul să fie eliminate.
Mai jos voi prezenta cateva exemple.
b)
Figura 3.2 a) Imagine originala
b) Imagine binară
In situații de genu alcesta, detecția se poate realiza dacă există o diferență semnificativă intre contrastul semnului de circulație si contrastul fundalului, iar valoarea pragului de segmentare trebuie sa fie in favoarea semnului de circulatie.
Un alt caz caz cu probleme este acela cînd vizibilitatea semnului este redusă sau semnul este acoperit de umbra lucru care duce la diferențe de contrast pe suprafața totală a acestuia.
b)
Figura 3.3 a) Imagine orignala cu vizibilitate redusă
b) Imagine binară nereușită
În cazuri de genu acesta nu este numai problema algoritmului ci si a așezării neconvenționale a semnelor de circulație.
Pentru a preveni problemele în cazul detecției în condiții meteorologice dificile, algoritmul poate fi imbunatățit prin folosirea modelului de culoare YCbCr. Spațiul de culoare RGB trebuie să fie convertit intr-o componenta de luminață (Y) si două componente de crominață (Cb, Cr), astfel prelucrarea imaginii din punct de vederea al luminaței se poate realiza mai eficient.
3.1.2 Detectie de formă
În cazul detecției de formă apar probleme ca poziția strâmbă a semnului și cazul in care două semne de aceiași culoare sunt lipite.
Atunci cand semnul are o pozeiție strambă sau este îndoit poate fi detectat după culoare însă forma acestuia nu poate fi considerată ca fiind un pătrat.
b)
c) d)
Figura 3.4 a) Imagine cu semn poziționat stâmb
Eșuare identificare formă a semnului poziționat strîmb
Imagine cu semn îndoit
Eșuare identificare formă a semnului îndoit
Pentru aceste cazuri algoritmul nu este eficient, dar din nou problema principală este dată de poziționarea greșită a cemnelor rutiere, lucru care nu pune probleme doar algoritmului dar și conducătorilor auto.
Celălalt caz când două semne de circulație de aceiași culoare sunt lipite, pune probleme deoarece acestea sunt văzute ca o singură regiune de pixeli, iar algoritmul nu vede cele două semne ca două regiuni separate. Această problemă poate fi remediată intr-o anumită masură cu ajutorul unei funcții pentru eliminarea pixelilor care unesc cele două regiuni. În cazul în care vorbim despre un cerc si un pătrat alăturate, zona care lipește cele două semne este mai mică decat in cazul a două pătrate iar acest lucru se poate remedia.
b)
Figura 3.5 a)Imagine cu 2 semne lipite
b)Eșuare recunoaștere formă
3.2 Identificarea semnului de circulație
Acest procedeu de identificare se realizează cu ajutorul funcției de corelație intre semnul de circulatie, detectat prin pașii anteriori, și șabloane cu semnele de circulație de formă pătrată.
b) c)
d) e) f)
Figura 3.6 a)Șablon Trecere Pietoni b)Sablon Sens Unic
c)Sșablon Prioritate Sens Invers d) Șablon Spital
e)Șablon Viteză Recomandată f)Shablon Punct de Informare
La fel ca și in celelalte etape si aici apar anumite probleme si limitări din punct de vedere al distanței dintre cameră si semnul rutier, rezoluția imaginii etc.
În anumite situații, deși semnul de circulație este recunoscut, gradul de corelație este destul de mic, iar acest lucru denotă incertitudine in ceea ce priveste siguranta unei identificări eficiente.
b)
Figura 3.6 a) Imagine originala
b) Semn identificat cu corelație mică
Semnul este identificat: “nume_semn = Trecere pentru pietoni”
Grad de corelație: corelație_max = 0.3378
Un alt exemplu de astfel de situații este următorul.
b)
Figura 3.7 a) Imagine originala
b) Semn identificat cu corelație mică
Semnul este identificat: “nume_semn = Trecere pentru pietoni”
Grad de corelație: corelație_max = 0.2530
Corelația se dovedeste mai eficientă in cazul imaginilor cu rezoluție mare. Deși chiar si pentru o imagine cu rezoluția mica, identificarea se realizează cu suces, corelația si de această data este foarte mica. De obicei rezoluția este importantă pentru diferite condițiile de luminozitate.
Figura 3.8 Imagine la rezoluție mică
Semnul este identificat: “nume_semn = Trecere pentru pietoni”
Grad de corelație: corelație_max = 0.1404
Există cazuri care, chiar și in condiții de rezoluție mica, obtinem rezultate bune.
Figura 3.9 Imagine la rezolutie mică
Semnul este identificat: “nume_semn = Prioritate față de circulația din sens invers”
Grad de corelație: corelație_max = 0.5450
O problemă a identificării semnului de circulație poate fi și distanță. Dacă imaginea care conține semnul este capturată prea târziu, adică semnul de circulație se află prea aproape de autovehicul și deși poate fi identificat cu succes și se poate obține un grad de corelație mare, acest lucru se realizează după depășirea semnului, deci este inutil. Problema poate fi rezolvată atăt prin optimizarea algoritmului dat și cu ajutorul unui echipament hardware mai bun.
În cealaltă extrmă, dacă semnul se află la o distanță prea mare, nu poate fi interpretat ca un potential semn de circulație datorită dimensiunilor mici si atunci, datorită funcției “bwareaopen” care elimină grupările de pixeli mai mici decât un anumit număr, acesta este eliminat.
Deși există cazuri in care nu sa putut face identificarea semnelor de circulație, algoritmul are o rată buna de eficacitate și cu anumite imbunatățiri ar putea fi folosit in timp real.
CONCLUZII
Aplicația “DETECTOR_SEMNE_RUTIERE”, realizată în limbajul de programare MATLAB, pentru detecția și recunoasterea semnelor de circulație de formă pătrată, realizează următoarele funcții:
Preprocesarea imaginii
Detecția zonei de interes după culoare
Identificarea formei folosind proprietățiile figurilor geometrice
Recunoașterea semnului prin corelarea acestuia cu anumite sabloane ale semnelor de circulație
Folosirea spațiului de culoare RBG a simplificat detecția semnelor rutiere după culoare deși pentru o detecție mai eficienta este recomandată folosirea unui model de culoare, cum ar fi YcbCr sau HSV, care foloseste prealucrarea luminanței pentru o detecția mai bună a semnelor in diferite condiții de luminanță.
Imbunatățirea contrastului și filtrarea zgomotului a imaginii provenite de la cameră imbunătățec substanțial șansele de detecție și recunoaștere a semnelor de circulație.
Folosirea proprietăților figurilor geometrice pentru detectarea formei regiunilor de interes creste probabilitatea detectări semnelor rutiere, cât si delimitarea semnelor de formă pătrată de celelate tipuri de semene. Folosirea aceste metode poate avea și dezavantaje, dar totuși prezintă o rată bună de identificare. O altă alternativă pentru detectarea formei sunt detectoarele de contur, cum ar fi detectorul Canny.
Redimensionarea, filtrarea zgomotului, eliminarea obiectelor care nu pot fi considerate potențiale semne de circulație si imbunătătirea culorilor semnului identificat cresc șansele recunoașterii semnului de circulație.
Algoritmul de recunoastre a semnelor se bazează pe corelație, care este o metodă simplă și eficintă in recunoașterea semnelor din imagini captate in diferite situații. Totuși, pentru folosirea acestei metode este nevoie de crearea unei baze de date care să conțină șabloane cu care semnul din imagini trebuie corelate. Deși această metodă metodă presupune un timp mai mare de procesare in funcție și de rezoluția imaginilor, această problemă se poate remedia si prin folosirea unor echpamente hardware mai performante.
Pe viitor acestă aplicație poate fii imbunătățită prin utilizarea unei metode de detecție mai eficientă cum ar fi Transformata Hough și folosirea rețelor neurale pentru recunoaștrea semnelor de circulație.
Pe lângă acest algoritm se poate realiza și o implementare hardware ce poate ajuta la imbunătățirea algoritmului. Este de dorit utilizarea unor camere cu inflaroșu pentru a crea un contrast puternic intre semn și restul detaliilor din imagine, asftel detectia de poate realiza mai eficient. Alte metode de imbunatătire pe partea hardware sunt: camera trebuie să aibo o poziție favorabilă astfel încât nu avem un unghi de inclinație mare și să existe o sursă de lumină auxiliară pentru a putea elimina cît mai mult din umbrele create de alte surse de iluminare.
Deși această aplicație nu prezintă o eficacitae de 100%, totuși poate fi folosită intr-o anumită masură.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Metode Numerice de Detectie Si Identificare a Semnelor de Circulatie Dupa Forma Forma Patrata (ID: 162796)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
