Documente Academic
Documente Profesional
Documente Cultură
2016-2017
2
CUPRINS
Introducere ................................................................................................................. 4
Definirea ipotezei de cercetare ................................................................................... 6
Definirea și elaborarea modelului – utilizare instrumente software de simulare și
modelare .................................................................................................................... 7
Descrierea algoritmului de urmărire a conturului prin baleiaj ................................... 7
Schema bloc funcțională ......................................................................................... 8
Achiziția datelor ....................................................................................................... 9
Îmbunătățirea imaginilor .......................................................................................... 9
Eliminarea zgomotelor ................................................................................... 10
Modificarea contrastului ................................................................................ 11
Segmentarea imaginilor ........................................................................................ 13
Segmentarea cu prag..................................................................................... 13
Operații cu șabloane ...................................................................................... 14
Analiza imaginilor .................................................................................................. 16
Clasificarea rezultatelor procesate și luarea deciziilor ........................................... 18
Stabilirea cerintelor pentru instrumentele necesare modelării .................................. 20
Cerințe funcționale ................................................................................................ 20
Design-ul sistemului .............................................................................................. 20
Unitatea de input ............................................................................................ 21
Unitatea de procesare ................................................................................... 21
Unitatea de control ......................................................................................... 24
Testarea modelului ................................................................................................... 24
Definirea pașilor viitori pentru dezvoltarea temei de cercetare ................................. 26
Bibliografie ............................................................................................................... 27
3
LISTA FIGURILOR:
Figura 1. Grafic de comparație între tipurile de vehicule ........................................................................ 5
Figura 2. Senzori montați pe mașină ...................................................................................................... 6
Figura 3. Principiul de detectare al conturului Radial Sweep ................................................................. 7
Figura 4. Schemă bloc funcțională a detecției semnelor de circulație .................................................... 8
Figura 5. Tipuri de vecinătate a pixelului central .................................................................................. 11
Figura 6. Reducerea zgomotului dintr-o imagine .................................................................................. 11
Figura 7. Egalizarea de histogramă ...................................................................................................... 11
Figura 8. Algoritmi de egalizare a histogramei...................................................................................... 13
Figura 9. Procedeu de binarizarea ........................................................................................................ 13
Figura 10. Delimitarea pragului pentru egalizare .................................................................................. 14
Figura 11. Șabloane de vecinătăți ale pixelului curent ......................................................................... 14
Figura 12. Proces de deschidere .......................................................................................................... 15
Figura 13. Procedee de corectare a caracterelor ................................................................................. 15
Figura 14. Determinarea semnelor rutiere ............................................................................................ 16
Figura 15. Schemă simplificată clasificare obiect ................................................................................. 18
Figura 16. Citirea semnelor rutiere la bordul autovehiculului ................................................................ 19
Figura 17. Model practic ........................................................................................................................ 20
Figura 18. Detecția obiectului din fața mașinii ...................................................................................... 21
Figura 19. Interpretarea inputurilor in OpenCV ..................................................................................... 21
Figura 20. Rețeaua neurală a valorilor drumului ................................................................................... 22
Figura 21. Determinarea direcției .......................................................................................................... 22
Figura 22. Antrenarea bazei de date pentru recunoașterea obiectelor țintă ........................................ 23
Figura 23. Telecomanda conectată la Arduino ..................................................................................... 24
Figura 24. Recunoașterea semnelor de circulație ................................................................................ 24
Figura 25. Distanță detectare semn STOP ........................................................................................... 25
Figura 26. Model de simulare: Drum, semafor, vehicul oprit în față ..................................................... 25
4
INTRODUCERE
În 1885 Karl Benz inventează primul automobil din lume. Mai târziu în același
an, expune publicului invenția sa și după doar câțiva metri, intră într-un zid. În ultimii
130 de ani s-a pus tot mai mult accentul pe siguranța conducătorului și a
pasagerului. Autovehiculele au devenit mai rezistente, au apărut centurile, au fost
lansate air-bag-urile, iar în ultimul deceniu s-a introdus din ce în ce mai mult partea
inteligentă (sau inteligența artificială), ce are ca scop corectarea principalului factor
de accidente rutirere: șoferul.
5
DEFINIREA IPOTEZEI DE CERCETARE
6
DEFINIREA ȘI ELABORAREA MODELULUI – UTILIZARE INSTRUMENTE SOFTWARE DE
SIMULARE ȘI MODELARE
Algoritmul de baleiaj radial face cam același lucru, însă metoda este puțin
diferită: de fiecare dată când se localizează un nou pixel al conturului, acesta devine
pixel curent, P, și se trasează un segment imaginar ce unește pixelul P cu pixelul
anterior. De aici, segmentul se va roti în jurul pixelului P în sensul acelor de
ceasornic până când ”lovește” următorul pixel negru din vecinătatea Moore a
pixelului P. Rotirea segmentului este asemănătoare cu verificarea fiecărui pixel din
vecinătatea Moore a pixelului P.
CRITERIUL DE OPRIRE 1
Până în acest punct, algoritmul Radial Sweep are același rezultat ca
algoritmul Moore-Neighbor. Diferența constă în criteria de oprire a algoritmului.
7
Pentru a ne aminti, criteriul de oprire Jacob încheie un algoritm dacă pixelul de start
este vizitat în aceeași manieră (în aceeași direcție) ca și prima dată. Dar din moment
ce algoritmul de baleiaj radial nu are definit termenul ”direcție”, acesta nu va putea fi
folosit aici.
CRITERIUL DE OPRIRE 2
Astfel, se va ști pixelul de contur anterior Pi-1 al fiecărui pixel curent Pi.
Pi-1 = Pj-1
Cu alte cuvinte, algoritmul se sfârșește când un pixel de contur este întâlnit
pentru a doua oară, ultimul pixel fiind pixelul anterior pixelului ce a fost întâlnit a
doua oară.
8
ACHIZIȚIA DATELOR
ÎMBUNĂTĂȚIREA IMAGINILOR
Din punctul de vedere al metodelor utilizate, putem distinge mai multe tipuri
de operații de îmbunătățire:
9
operații punctuale, prin care se realizează o corespondență de tip “unu la unu”
între vechea valoare a nivelului de gri și noua valoare a acestuia, pentru
fiecare pixel al imaginii. Tot în acestă categorie vom include și operațiile de
pseudocolorare, care se referă la afișarea imaginii folosind o paletă de
culoare modificată.
operații locale (sau de vecinătate), prin care noua valoare a nivelului de gri
într-un pixel este obținută din vechea valoare a pixelului repectiv și din valorile
unor pixeli vecini pixelului considerat.
operații integrale, în care noua valoare a unui pixel este dependentă de
valorile tuturor pixelilor imaginii
Eliminarea zgomotelor
Asemenea tip de filtre se pot rafina astfel încât sănu fie afectaţi de operaţia de
mediere pixelii situaţi pe muchii. Un operator pentru detecţie de muchii (mască)
poate indica prezenţa şi direcţia unei muchii în imagine. În absenţa muchiei, se
aplică filtrul de eliminare a zgomotelor pentru toţi pixelii din vecinătate, în caz contrar
doar pentru pixelii situaţi de o parte şi de alta a muchiei, cunoscând direcţia ei. De
asemenea se pot utiliza măşti de mediere pentru toţi pixelii, însă având coeficienţii
corelaţi cu datele furnizate de detectorul de muchii.
10
Dacă [ 𝑓(𝑥, 𝑦) − 1/8 ∑8𝑖=1 𝑣𝑖 (𝑥, 𝑦)] > 𝜃 , atunci 𝑓(𝑥, 𝑦) = 1/8 ∑8𝑖=1 𝑣𝑖 (𝑥, 𝑦) .
Modificarea contrastului
11
𝑀𝑁
𝐻𝑒(𝑧) = , unde M, N sunt dimensiunile imaginii.
𝑆
Nivelele de gri ”slab reprezentate” din histograma inițială din intervalul [m,n],
capătă prin egalizare nivelul de gri unic ”r” în histograma egalizată;
Nivelul de gri ”k”, care este ”bine reprezentat” în histograma inițială, va fi
reprezentat printr-un interval [p,q] în histograma egalizată.
Se poate adopta unul din următorii algoritmi pentru nivelul de gri ”k”:
o Pixelii din imaginea iniţială având nivelul de gri "k" capătă după
egalizare nivelul de gri (p+q)/2; histograma nu rezultă perfect plată, dar
efortul de calcul este minim;
o Pixelilor din imaginea inițială li se atribuie un nivel de gri aleator în
intervalul [p,q]; efortul de calcul rămâne destul de mic, histograma
rezultă aproximativ plată, dar apare un zgomot care se suprapune
peste imagine;
o Nivelul de gri atribuit pixelilor din imaginea iniţială se corelează cu
nivelul de gri al vecinilor lui, astfel:
12
Figura 8. Algoritmi de egalizare a histogramei
SEGMENTAREA IMAGINILOR
Segmentarea cu prag
Fie:
1 −(𝑧 − 𝑚1 )2
𝑝1 (𝑧) = 𝑒𝑥𝑝
𝛿√2𝜋 𝛿2
Figura 9. Procedeu de binarizarea
1 −(𝑧−𝑚2 )2
𝑝2 (𝑧) = 𝑒𝑥𝑝
𝛿√2𝜋 𝛿2
13
Unde 𝑚1 , 𝑚2 , 𝛿 sunt mediile şi respectiv dispersia celor două variabile
aleatoare, în ipoteza că, deoarece zgomotul afectează în mod egal toţi pixelii din
imagine, dispersiile corespunzătoare
fondului şi obiectelor sunt egale.
Operații cu șabloane
După determinarea pragului histogramei sunt necesare încă 2-4 procese, prin
care imaginea binarizată este retușată pentru corectarea golurilor din caractere.
Operaţiile cu şabloane fac parte din categoria operatorilor morfologici şi permit
transformări ale imaginilor binare bazate pe relaţiile geometrice de conectivitate ale
pixelilor din imagine. Șabloanele sunt vecinătăţi ataşate pixelului curent. Ele pot
avea una din următoarele forme:
14
Erodarea (contractarea, comprimarea)
unei imagini se defineşte ca fiind mulţimea
pixelilor aparţinând obiectului S care prezintă
proprietatea că şablonul ataşat lor este inclus în
obiectul S. Erodarea face ca din obiectele negre
aflate într-o imagine cu fundal alb, să fie
”mâncat” un pixel de jur împrejurul acestora.
15
ANALIZA IMAGINILOR
16
3. Aplicarea algoritmului de baleiaj radial pentru
extragerea conturului. Se marchează pixelul
de start, și se începe căutarea radială în jurul
pixelului curent din ultimul pixel alb înainte de
intrarea în contur, în sensul acelor de
ceasornic, până la întâlnirea noului pixel de
contur:
17
CLASIFICAREA REZULTATELOR PROCESATE ȘI LUAREA DECIZIILOR
18
Algoritmul 2 va deciziona dacă în interiorul primului cerc va mai exista un cerc
de culoare deschisă (alb);
Algoritmul 3 va determina conturul cifrelor sau semnelor (în cazul unui semn
de depășire interzisă, spre exemplu, care se află tot în interiorul a 2 cercuri
concentrice), pentru a determina restricția de viteză 50.
La finalizarea primilor doi algoritmi, obiectul va fi înscris la clasa de semne de
circulație de au contur un cerc, în interiorul căruia se mai găsește un alt cerc. După
rularea algoritmului 3, semnul va fi clasificat ca un semn de reducere a vitezei la
50km/h și acesta va fi afișat la bordul vehiculului. În cazul unor astfel de semne,
mașina nu frânează singură, dar va furniza o alertă la bordul vehiculului.
19
STABILIREA CERINTELO R PENTRU INSTRUMENTELE NECESARE MODELĂRII
CERINȚE FUNCȚIONALE
DESIGN-UL SISTEMULUI
Notă!
https://www.youtube.com/watch?v=BBwEF6WBUQs
20
Unitatea de input
Unitatea de procesare
Unitatea de procesare
(calculatorul) îndeplinește mai
multe taskuri: primește date de
la Raspberry Pi via Wi-Fi,
antrenează și prezice rețeaua
neurală în vederea îndeplinirii
funcției de viraj a
autovehiculului, detectează
obiecte, precum semnul de
STOP și semaforul, măsoară
distanța dintre vehicul și obiect, Figura 19. Interpretarea inputurilor in OpenCV
și trimite informații către un
modul Arduino, via USB.
Serverul TCP
Un program de server TCP multithread rulează pe computer pentru a primii
imaginile live în frame-uri și informațiile de distanță de la Raspberry Pi. Imaginile
primite sunt convertite în tonuri de gri și sunt decodate în matrice numerice, asa cum
s-a explicat în capitolul anterior. Prelucrarea imaginilor în tonuri de gri se face mult
mai rapid, deci este mai eficientă, decât prelucrarea imaginilor brute, colorate.
Rețeaua neurală
Un avantaj în folosirea rețelei neurale îl constituie faptul că după ce rețeaua
este antrenată, este necesar după aceea să se folosească doar parametrii antrenați,
21
predicție ce face ca procesul să fie foarte rapid. Doar jumătatea de jos a imaginii
input va fi folosită pentru antrenare și predicție. Se creează astfel 38400 (320x120)
de noduri în stratul de input și 32 de noduri în stratul intermediar (sau ascuns).
La ieșirea rețelei se vor găsi 4 noduri, astfel încât fiecare nod corespunde
uneia din direcțiile de deplasare ale vehiculului: Stânga (Left), Dreapta (Right),
Înainte (Forward) și Înapoi (Reverse).
22
Detecția obiectului
În această aplicație se folosește abordarea bazată pe forma obiectelor și
clasificatoarele Haar pentru clasificarea obiectelor. Se vor testa pentru ușurință doar
semnul STOP și un semafor.
Măsurarea distanței
Această aplicație urmărește modelul geometric pentru detectarea distanței
față de un obiect folosind viziunea monoculară propusă de Chu, Ji, Guo, Li și Wang
(2004).
23
d – distanța dintre centrul optic și punctul P;
Unitatea de control
TESTAREA MODELULUI
24
determinarea distanței dintre obstacol și partea frontală a mașinii și oferă informații
cu o acuratețe destul de bună dacă sunt luate în seamă unghiul de simț sau condiția
suprafeței de test. Pe de altă parte, Pi Camera furnizează rezultate nu deosebit de
bune când vine vorba de măsurare. De aceea, este bine să se cunoască din timp
distanțele de interes, pentru a putea calibra echipamentele în vederea măsurării
corecte a informației.
25
DEFINIREA PAȘILOR VIITORI PENTRU DEZVOLTAREA TEMEI DE CERCETARE
26
BIBLIOGRAFIE
https://www.youtube.com/watch?v=BBwEF6WBUQs
https://zhengludwig.wordpress.com/projects/self-driving-rc-car/
https://diyin.wordpress.com/2016/01/14/diy-self-driving-car-project-with-raspberrypi-
and-opencv/
http://profs.info.uaic.ro/~ipistol/ia1213/res/carteaIA-v7.pdf
http://www.imageprocessingplace.com.html
https://www.youtube.com/watch?v=9YZMrkEHYlU
https://www.youtube.com/watch?v=tiwVMrTLUWg
27