Prelucrare Neuronala de Imagini pentru Controlul unui Vehicul

Imagine preview
(8/10 din 1 vot)

Acest proiect trateaza Prelucrare Neuronala de Imagini pentru Controlul unui Vehicul.
Mai jos poate fi vizualizat cuprinsul si un extras din document (aprox. 2 pagini).

Arhiva contine 1 fisier pdf de 61 de pagini .

Iti recomandam sa te uiti bine pe extras, cuprins si pe imaginile oferite iar daca este ceea ce-ti trebuie pentru documentarea ta, il poti descarca. Ai nevoie de doar 6 puncte.

Domeniu: Automatica

Cuprins

1. Introducere . 5
2. Rețele neuronale artificiale . 7
2.1 Modele ale neuronului artificial . 8
2.2 Arhitecturi . 10
2.3 Algoritmi de învățare . 11
2.4 Aplicații din viața de zi cu zi . 12
2.5 Dezavantaje ale rețelelor neuronale . 12
3. Descrierea componentelor hardware ale sistemului . 13
3.1 Vehiculul . 13
3.2 Camera pentru înregistrarea imaginilor . 13
3.3 Modulul de procesare . 14
3.4 Arduino Duemilanove . 15
3.5 Conexiunile hardware . 16
4. Descrierea modulelor software . 18
4.1 Software Arduino . 19
4.2 Software Android . 20
4.3 Aplicatie Java VACRN . 23
5. Antrenarea rețelei neuronale . 31
5.1 Propagare înainte și Propagare inversă . 32
5.2 Metode de generalizare . 35
5.3 Determinarea numărului de neuroni din stratul ascuns . 36
5.4 Metoda Gradient cu Propagare Inversă (traingd) . 39
5.5 Propagare inversă flexibilă (trainrp) . 40
5.6 Propagarea inversă BFGS quasi-Newton (trainbfg) . 42
5.7 Propagarea inversă OSS (trainoss) . 43
5.8 Propagarea inversă Levenberg-Marquardt (trainlm) . 44
ALGORITMI CU GRADIENT-CONJUGAT . 46
5.9 Actualizarea Fletcher-Reeves (traincgf) . 47
5.10 Actualizarea Polak-Ribiere (traincgp) . 49
5.11 Resetarea Powell-Beale (traincgb) . 50
5.12 Algoritmul Gradientului Conjugat Scalat (trainscg) . 51
6. Concluzii și planuri de viitor . 56
7. Bibliografie . 60

Extras din document

1. Introducere

Nu există niciun dubiu că de la începutul anilor ‘90 până în prezent, omenirea a făcut un progres uimitor în domeniul roboticii. Roboții moderni pot replica mișcările și acțiunile oamenilor, iar pasul următor constă în învățarea roboților să gândească și să reacționeze în condiții cât mai diverse. Inteligența artificială promite să ofere aparatelor abilitatea de a gândi analitic, folosind ultimele concepte și descoperiri din domeniul calculatoarelor, robotizărilor și matematicii.

Se dorește ca roboții să preia acțiunile monotone cum ar fi tunderea ierbii, datul cu aspiratorul sau executarea task-urilor de precizie cum ar fi asamblarea anumitor obiecte din fabrici și uzine. Astfel de automatizări ar trebui să permită mașinăriilor să execute sarcini periculoase pentru oameni, cum ar fi mineritul sau stinsul incendiilor. Unele țări au început deja să folosească roboți inteligenți pentru dezarmarea minelor de teren sau prelucrarea materialelor radioactive pentru a limita riscul pentru oameni. Tot pentru protecția umană se fac multe cercetări și în domeniul vehiculelor autonome. Există deja multe mașini dotate cu senzori și echipamente capabile să evite accidente sau dacă nu, măcar să atenționeze șoferul de potențialele pericole. În acest domeniu, cele mai avansate modele de mașini care au reușit cu succes să se conducă singure, chiar și în condiții de trafic intens, sunt cele construite de compania Google. Mașinile Google sunt la bază mașini Toyota Prius dotate cu camere, senzori și radare. Toate aceste dotări de ultimă generație au ca scop depistarea tuturor celorlalți participanți la trafic, dar și diferite obstacole, astfel încât mașina să meargă singură, fără ca șoferul să intervină în direcția ei și în frânare. Dar acestea au sisteme destul de complexe care nu pot fi construite la scară industrială încă și au un cost destul de mare, motiv pentru care cred că va mai dura cel puțin 10-20 ani până când publicul va avea acces la ele.

Deși cele mai bune rezultate din acest punct de vedere , al vehiculelor autonome, a fost înregistrat de curând, el este un subiect care i-a intrigat tot timpul pe cercetători. Un exemplu în acest sens este proiectul ALVINN (Autonomous Land Vehicle In a Neural Network) desfășurat în anii ‘95 de către Universitatea Carnegie Mellon în colaborare cu armata americană, proiect care avea ca scop realizarea unui vehicul care să ia decizii de control folosind rețele neuronale. ALVINN este un sistem care învață să controleze vehiculul prin urmărirea unui om conducând. Abordarea pentru acest sistem este diferită deoarece el nu se bazează pe senzori, radare, laser și GPS, ci are ca date de intrare imagini de dimensiune 30x32 pixeli de la o cameră video montată deasupra mașinii. Ca date de ieșire, sistemul ar trebui să genereze direcția în care vehiculul ar trebui să meargă pentru a rămâne pe drum. Deși modelul este unul destul de simplu în comparație cu cel de la Google, el a înregistrat rezultate destul de bune. ALVINN a reușit să conducă cu o viteză maximă de 70 de mph pe o autostradă publică de lângă orasul Pittsburg, USA. De asemenea, vehiculul s-a deplasat cu o viteză normală de 30-40 mph pe drumuri nepavate și pe străzi cu benzi din suburbii. Limitările erau faptul că nu putea conduce eficient pe tipuri de drum pe care nu a fost antrenat și că nu era prea robust la schimbări de luminozitate. Cu toate acestea, în comparație cu algoritmii tradiționali de prelucare de imagini, care aveau nevoie să proceseze imaginea pentru a găsi drumul și apoi să îl urmărească, ajungând la viteze de doar 3-4 mph, ALVINN era mult mai rapid.

Unul dintre motivele pentru care m-am înscris la Facultatea de Automatică și Calculatoare a fost pentru a crea sisteme inteligente de conducere și a aplica concepte matematice cu ajutorul cărora să pot implementa soluții care ușurează munca oamenilor și previn accidentele provenite din erori umane. ALVINN reprezintă modelul pe care se bazează realizarea acestei lucrări, în care, folosind obiecte accesibile oricui dar și puterea de calcul existentă în zilele noastre, am reușit să construiesc un sistem, care după doar 2-3 minute de înregistrare de date, a reușit să funcționeze în mod autonom, reproducând mișcările din timpul antrenării.

Am ales această temă și acest proiect deoarece pentru o asemenea lucrare sunt necesare cunoștințe din diferite domenii pe care le-am studiat în timpul facultății, dar și în afara ei, cum ar fi cele de electronică, programare orientată pe obiecte, tehnici de optimizare, sisteme avansate de control, programare în timp real și chiar programarea pe sisteme de tipul Android și microcontrolere pe platforma Arduino.

Lucrarea este divizată în 5 capitole, fără a-l include și pe acesta, în care este explicat demersul științific pentru realizarea proiectului :

În capitolul doi, intitulat Rețele neuronale artificiale, este realizată o scurtă descriere a rețelelor neuronale pentru a familiariza cititorul cu acestă tehnică și a oferi o viziune asupra modului în care funcționează. Sunt prezentate elemente de bază ale unei rețele neuronale cum ar fi :

- neuronul artificial, modele ale acestuia și cum afecteză alegerea modelului rezultatul final

- arhitecturi, adică structuri de legătură între diferiți neuroni și problemele care pot apărea din alegerea unei arhitecturi inadecvate

- algoritmi de învățare, sunt exemplificate diferite metode de învățare și se justifică alegerea uneia dintre ele pentru cazul nostru

În finalul capitolului sunt exemplificate câteva aplicații ale rețelelor neuronale pentru a ilustra utilitatea acestora dar și câteva probleme care apar când se folosește o astfel de tehnică.

În capitolul trei, sunt prezentate componentele hardware necesare realizării unui model în miniatură capabil să funcționeze ca ALVINN. Sunt descrise detalii despre vehiculul ales, structura și limitările acestuia, despre senzorul folosit pentru captarea imaginilor și despre modulul central de procesare. Tot aici sunt oferite detalii despre mediile de programare/interpretare de pe unitatea de procesare. În ultimele două subcapitole este precizat modul în care cele trei componente descrise anterior comunică, componentele hardware necesare pentru realizarea comunicației și conexiunile fizice pe care le implică această comunicare. În finalul capitolului, sunt expuse implicațiile pe care le are arhitectura fizică aleasă asupra programelor ce vor prelucra datele.

În capitolul patru, sunt descrise modulele software necesare pentru implementarea sistemului. La începutul capitolului, sunt fixate unele obiective ce țin de modul în care trebuie sa funcționeze aplicația principală pentru ca aceasta să fie cât mai flexibilă și ușor de implementat pe orice sistem. Pe tot parcursul capitolului se va urmări ca aceste obiective să fie atinse ținându-se evident cont și de restricțiile impuse de hardware, menționate în capitolul precedent. Capitolul acesta este divizat în trei subcapitole, în primul se prezintă programul de pe microcontrolerul ATMega cu ajutorul căruia se vor transmite comenzi către vehicul și se va impune un protocol de comunicație între acesta și aplicația centrală. În cel de-al doilea subcapitol, este prezentat programul conceput pentru captarea și transmiterea imaginilor de pe un telefon ce folosește sistemul Android către un server prin intermediul internetului wireless și la fel ca mai sus se impune un protocol de transmitere a informațiilor. În ultimul subcapitol este expus modul de funcționare a aplicației centrale, cea care va rula pe modulul de procesare și va fi responsabilă de primirea imaginilor, de la aplicația descrisă anterior, să genereze comenzi prin intermediul rețelei neuronale pe baza imaginilor și să transmită comenzi prin serial către microcontroler care la rândul lui va acționa vehiculul. Pentru a face acest lucru, aplicația centrală va trebui în prealabil să poată înregistra imagini și comenzi care vor constitui setul de antrenament pentru rețea și să încarce apoi rețeaua antrenată în Matlab prin intermediul unor fișiere.

Fisiere in arhiva (1):

  • Prelucrare Neuronala de Imagini pentru Controlul unui Vehicul.pdf