Sunteți pe pagina 1din 7

Cap4- Vederea artificiala in robotica cognitiva Sistem cognitiv: - are capacitatea de a interactiona cu mediul prin senzori si efectori si poate

lua decizii pa baza informatiilor primite de la mediul inconjurator - trebuie sa raspunda autonom si inteligent la situatii si contexte pe care nu le are in baza de cunostinte Robot autonom mobil: - reprez un sistem cognitiv care se poate deplasa - capabil sa realizeze obiective in medii: necunoscute, dinamice, nestructurate, nesigure, partial observabile. - sist devine mult mai eficient daca i se atribuie o metoda de interactiune directa cu lumea reala Sistem vizual cognitiv - poate atinge 4 nivele generice de functionalitate a vederii artificiale: - detectie - localizare - recunoastere - intelegere - poate fi modelat cu un comportament bazat pe urmarirea scopului, adaptandu-se la schimbarile vizuale ale mediului si poate anticipa aparitia obiectelor sau evenimentelor => capacitati ce pot fi obtinute prin: - invatare semantica - retinerea informatiilor despre mediu, despre sine , despre relatia cu mediul - analiza amanuntita => retinerea informatiilor despre obiecte si evenimente Alg de prelucrare de imagini se impart in: - alg de imbunatatire a imaginii - operatiuni punctuale: - cresterea contrastului - reducerea zgomotului - operatiuni spatiale care tin cont de schimbarea culorii unui pct si de culorile pctelor din apropierea acestora - eliminarea zgomotului - filtrari Ex: - filter de convolutie (filtre liniare) matrice de forma: matricea de aplica punctului curent + punctelor din jurul lui. - filtrul SMOOTH - uniformizeaza imaginea - crearea unui pixel care are ca val = media tuturor pctelor din jur, inclusive a propriei val => val ponderilor =1 / factorul =9/ const =0 - filtrul BLUR - uniformizare triunghiulara - localizeaza schimbarile de culoare dintr-o imagine si creaza culori intermediare pt a netezi marginile - filtrul SHARPEN - inversul filtrului BLUR - detectarea diferentelor intre pixeli si accentuarea acestor diferente - gradul de accentuare este stabilit de ponderea din centru - functioneaza doar pe orizontala si verticala - filtrul MEAN REMOVAL - eliminare a mediilor - filtru de accentuare (ca si sharpen) - actioneaza si pe diagonal, iar gradul de accentuare este dat de ponderea din centru (ca sharpen) - filtre pt evidentierea marginilor - in detectarea marginilor ne intereseaza diferentele intre punctele din jurul pctului curent - aceste filtre aplica o val neg pe una din laturi si o val poz pe latura opusa => o val aprox = 0 pt punctele care au culoare apropiata si val mare pt pctele care au culori diferite

- alg de transformare a imaginilor pt detectie de forme/ gasirea trasaturilor distinctive invariante la scalare utilizate in detectia de obiecte - detectarea trasaturilor caracteristice invariante de scalare: - SIFT (scale invariant feature transform) folosit in dez sist de vedere artificial al robotului Khepera III - SURF (speeded up robust features) alg inspirit din SIFT dar mai rapid si foloseste alte transformari pt calcularea descriptorilor trasaturilor caracteristice ale imaginii - GLOH (gradient location and orientation histogram) descriptor precum cel folosit de SIFT care ia in considerare mai multe regiuni spatiale - LESH (local energy based shape histogram) extrage descriptori ale formelor accentuate - metoda determinarii contururilor - se bazeaza pe detectia muchiilor din imagine (muchiile sunt utile in recunoasterea obiectului) muchiile = locatii de pixeli cu salturi mari de nuanta de gri muchiile (in imag alb-negru) = sunt formate din puncte de culoare neagra cu cel putin un pct alb in vecinatate - 1 pct are 4/8 vecini - daca imag este alb-negru -> se precizeaza culoarea fondului + culoarea obiectului (practice se precizeaza o culoare care reprez culoarea pctelor pt care se verifica apartenenta la contur) daca un pct P apartine Conturului si Q orice vecin a lui P atunci => Culoare(P)=negru si |{ Q apartine V(P) | Culoare(Q)=alb }| > 1 - transformari pt detectia colturilor - un colt = intersectia a 2 muchii - un pct de interes = pct care are o pozitie bine definita si poate fi detectat cu acuratete - colturile sunt incluse in multimea punctelor de interes - transformari morfologice - determinarea structurii obiectelor din imaginile acestora - constau in operatii prin care un obiect X este modificat de catre un elem structural B => forma convenabila prelucrarii ulterioare - cele 2 elem care interactioneaza (B si X) sunt reprezentate ca multimi din spatial euclidian bidimensional - scheletizare - descrierea obiectelor sau scenelor prin diverse structure compuse din diferite elem (linii, curbe) Ex: in recunoasterea caracterelor, amprentelor, cromozomilor, a norilor => sunt necesare transformari ale axei mediane in scopul obtinerii unei descrieri a obiectului studiat - multimea punctelor in care se intalnesc cel putin 2 tg la contur Procesarea imaginii necesita: - putere de calcul mare - memorie suficienta - consum de energie Ex de arhitectura de calcul: - modelul cipurilor neuromorfice (foloseste RN) - implementarea unei arhitecturi de calcul care functioneaza dupa modelul creierului uman - sunt simulate caile ascendente senzitive si care duc informatia catre creier + caile descendente motorii care raspund stimulilor - simuleaza activitatea celor 4 tipuri de cellule din retina (cu con, cu bastonas, bipolare, multipolare) - poate antrena 3600 neuroni - cipul CogniMem CM1K - are la baza RN - processor de recunoastere de semnale in timp real si invatare automata - reteaua poate fi antrenata sa invatete diverse modele si apoi sa le recunoasca - poate fi folositin aplicatii embedded de recunoastere de imagini Sistem autonom: - sistem capabil sa adune informatii din mediul inconjurator cu ajutorul senzorilor si sa actioneze in consecinta intr-un mod automat prin intermediul efectorilor , fara interventia omului

Dezvoltarea unei aplicatii in robotica presupune 4 etape: - nivelul hardware leaga senzorii, efectorii si sistemele de calcul intr-un sistem dedicate aplicatiei - nivelul firmware prog specific care interactioneaza direct cu hardware-ul fiind inglobat in memoria interna precum flash - nivelul software prog scrise in limbaje de programare care interactioneaza cu robotul si ii controleaza activitatea si comportamentul - nivelul inteligentei artificiale atribuie robotului, prin alg si prog, un comportament menit sa indeplineasca sarcinile pt care a fost proiectat Sisteme embedded: - sistem de calcul destinat sa indeplineasca 1 sau mai multe functii dedicate - combinatie hard+soft proiectata pt un scop specific 3 cerinte principale in evolutia sistemelor embedded (David Tannenhouse, 2000): - echilibrarea intre lumea fizica si cea virtuala - implementarea unor sisteme care sa functioneze mai rapid decat cele in care este implicat factorul uman - aparitia sistemelor inteligente capabile sa ia decizii singure Scop: - sa preia munca omunului in diferite situatii Principalele caracteristici ale sistemelor embedded: - este parte a unui sistem mare - are o singura functie - executa un singur program repetat si in cazul ideal nu se opreste niciodata din executie - are hardware + software dedicate, nu universal - este proiectat pt aplicatii specifice - este supus la constrangeri - reactioneaza la: evenimente de timp real, la schimbari din mediu, ca sa obtina rezultate cu min de intarzieri - poate avea forme specifice - complexitatea creste prin sistematizarea proiectarii - are performanta crescuta - flexibil la reparare de erori si la imbunatatiri - poate fi particularizat in fct de utilizator - folosesc microcontrollere cu arhitectura RISC - microcontrollerele embedded au o arhitectura Harvard dar se mai folosesc si von Neuman - au in general magistrale specifice (SPI/USART/I2C) - contribuie la imbunatatirea performantelor - au forme si dimensiuni specifice - unele se pot conecta la internet Probleme care apar in dezvoltare: - contrangeri hardware => reducerea puterii de calcul si memoriei - programarea lor necesita cunostinte hard + soft - exista f multe arhitecturi de procesoare embedded - au compilatoare specifice (unele opensource, altele putin performante) - necesita medii de programare specifice - sa tina cont de consumul de energie - in multe cazuri nu pot fi utilizate magistrale de mare viteza datorita vitezei reduse a procesorului Constrangerile si restrictiile sunt datorate urmatoarelor cerintele: - consum redus de energie - cost redus - dimensiuni reduse - greutate redusa

- functionare la diversi parametrii ai mediului: temperatura, umiditate, presiune Tendinte: - cerinte crescute de calcul: procesoare multimedia, HDTV - conectare in retea - servere web embedded - masini java embedded - nevoia de flexibilitate - dezvoltare rapida a sistemelor embedded Autonomia unui robot depinde de: - puterea de procesare - memoria - capacitatea bateriei - alg care ii modeleaza comportamentul - prin existent unei metode de comunicare wireless robotii pot stabili o conexiune la calc => este posibil ca alg /prog de control al robotului sa ruleze pe calc (conform modelului server-client => calc=clientul (=master, trim cereri); robotul = serverul (=slave) ) - prin controlul la distanta a unui robot pot fi rez f multe probleme: consumul de energie, memoria, puterea de calcul, si pot fi proiectati alg mai complecsi care ar da rezultate mai bune => un astfel de sistem se mai poate numi autonom? NU. - daca in acest fel se obtin rezultate mai performante => care este rolul autonomiei? poate un robot condus sa realizeze aceleasi sarcini ca unul autonom? Uneori da, uneori nu. Avantajele procesarii informatiei pe un microcontroller incorporate intr-un robot autonom: - nu depinde de con wireless care poate fi nesigura - isi poate desfasura activitatea in locuri in care omul nu poate ajunge sau nu se poate stabili con wireless - pierderea unei leg de comunicatie nu impiedica executia programului robotului si atingerea obiectivelor - viteza de reactive mult mai mare si actiuni mai sigure si rapide Cap5: alg SIFT - alg de procesare de imagini care detecteaza si descrie trasaturi caracteristice invariante la scalare si rotatie intr-o imagine - se aplica numai pe imagini in nuante de gri , deoarece transformarile SIFT se efectuaeaza asupra unui singur canal de semnale si nu asupra 3 combinate Definirea trasaturilor distinctive ale unei imagini: = procesul biologic prin care neuroni specializati (situati in cortexul inf temporal) raspund la anumiti stimuli vizuali precum: linii, margini, unghiuri, miscare = calcularea pozitiilor acestora prin efectuarea unor decizii locale asupra continutului informatiilor locale din imagine - trasaturile caract = parti interesante ale imaginii - un detector de trasaturi specifice sa fie capabil sa detecteze in imagini diverse trasaturi ale aceleiasi scene - detectarea de trasaturi caract: - operatie de procesare de nivel scazut - se efectueaza la inceput in procesul de analiza al imaginilor - dupa aceasta operatie => alg de procesare va examina imaginea numai in regiunile in care exista caract - clasificare detectori: - detectie de margini: - marginilie/muchiile = punctele care defines o limita intre 2 regiuni ale imaginii - pot avea orice forma si se pot intersecta - local au o structura unidimensionala

- detectie de colturi/puncte de interes: - colturile/pct de interes = trasaturi punctiforme din imagine - apar la intersectia a 2 muchii sau ca puncte isolate - local structura bidimensionala - detectia de pete/regiuni de interes: - pete = regiuni, chiar daca adesea contin un pct carcateristic => pot fi privite ca puncte de interes - pot gasii arii care sunt prea netede pt a putea fi gasite de un detector de colturi - detectie de creste: - creasta = curba unidimensionala care are o axa de simetrie - este utilza in medicina Trasaturi distinctive detectate de SIFT: - sunt trasaturi locale - sunt bazate pe aspectul obiectului in anumite puncte de interes - sunt invariante la: scalarea, translatia, rotatia imaginii - sunt robuste la: schimbari de luminozitate, zgomote, mici schimbari de perspectiva - pt detectarea de trasaturi SIFT parcurge 4 etape: - detectarea tuturor punctelor cheie candidat - in toate imaginile obtinute prin scalarea spatiului si aplicarea transformarii DoG (= detector de pete si colturi) => asigura invariant la scalare - localizarea punctelor de interes sunt selectate punctele de interes cele mai stabile, astfel se obtine o acuratete mai buna a locatiei punctelor de interes - atribuirea orientarilor fiecare punct cheie primeste 1 sau mai multe orientari bazate pe directiile locale ale gradientului imaginii => asigura invarianta la rotatie si orientare - decriptorul de puncte cheie exista val care caract puncte cheie si care se obtin din val locale ale gradientului imaginii calculate intr-o regiune in jurul pctului cheie => permite deformare si schimbari de luminozitate - punctele cheie gasite la sf celor 4 etape = trasaturi caracteristice SIFT - detectia a numai 3 trasaturi distinctive => este suficienta pt calcularea locatiei si pozitiei unui obiect Legatura intre SIFT si formarea imaginii pe creier: - alg SIFT transforma o imagine = intr-o colectie de puncte cheie care reprezinta vectori caracteristici la trasaturilor (invariante la scalare, rotatie, translatie, schimbari luminoase si deformari) Etapa 1 - Detectarea punctelor cheie candidat din spatial scalat al imaginii - spatiu scalabil al imaginii = functia L(x,y, ) obtinuta prin convolutia functiei Gaussian G(x, y, ) cu o imagine initiala de intrare I(x,y) L(x, y, ) = G(x, y, )*I(x ,y) G(x, y, )- filtru Gaussian de netezire => G(x, y, ) = In urma scalarii spatiului se obtine: L(x, y,

)=

unde M- dimensiunea imaginii: I(x, y): {0,M-1}x{0,M-1} -> [0,255] - se grupeaza imaginile obtinute in urma convolutiei sun forma L(x,y,k ) pe mai multe nivele numite octave a.i. k (a,b), unde b=2a - intervalele (ka,kb) = octave de scalare a spatiului - experimental s-a stabilit ca = => da rez f bune - k ales a.i. sa existe un nr fix de imagini L(x,y,k )/per octava - punctele cheie = max sau min locale ale diferentei de gaussiene DoG - o imagine obtinuta in urma transformarii DoG este def de : Di(x, y, ) = L(x, y, unde -> reprez val adiacente in aceiasi octava ) L(x, y, )

- pt identificarea min/max locale obtinute in urma trasnformarii DoG (=>Di(x, y, ) ), se compara fiecare pixel cu cei 8 vecini si cu cei 9 pixeli corespunzatori din imaginile adiacente din aceiasi octava => in total se compara cu 26 de pct (daca exista 2 imagini adiacente) - daca puctul = max/min => punct cheie candidat Etapa 2 - Localizarea punctelor cheie in spatial imaginii - filtrarea cheilor pt a obtine o acuratete mai mare a locatiilor si scalarilor acestora => sunt eliminate acele chei localizate imprecise de-a lungul unei margini - aceasta etapa calculeaza interpolarea locatiei max, imbunatatind stabilitatea alg - se interpoleaza folosind desfasurarea in serie Taylor a functiei D(x, y, ) cu originea in punctual candidat - fie

= (x, y, )

= distanta fata de pct cheie candidat atunci =>

( )

unde: D si derivate sale se calc in punctual cheie candidat = reprez gradientul lui D evaluat in punctul = reprez matricea Hessian - locatia extremului este determinata calculand derivatele partiale ale lui D in raport cu - daca distanta - daca distanta > 0.5 => extremul se afla langa alta cheie candidat < 0.5 => distanta este adunata la punctul candidat si apoi setand =0

Etapa 3 - Atribuirea orientarii punctelor cheie - asigura puncte de interes invariabile la rotatie si orientare - fiecarui pct de interes i se atribuie 1 sau mai multe orientari bazate pe directiile locale ale gradientului imaginii - magnitudinea gradientului: m(x, y) = ( - orientarea:

(
) ) ( ( ) )

) )

))

( (

))

( (

Etapa 4 - Reprezentarea descriptorului punctelor cheie - asigura invarianta la schimbari luminoase, deformari usoare ale imaginii, mici schimbari de perspectiva - se calc: magnitudinea gradientului si orientarea pt fiecare pct dintr-o regiune din jurul punctului cheie - se alege in jurul punctului o fereastra de 4x4 (dim stabilita experimental, a dat cele mai bune rezultate) - o regiune a unei ferestre are 4x4 subregiuni - fiecare subregiune = un pixel din vecinatatea punctului cheie si are o magnitudine a gradientului si o orientare - pt fiecare regiune se aduna pe cele 8 directii- magnitudinile gradientului in fct de care directie este mai apropiat vectorul => 4x4x8 = 128 elemente care descriu punctul cheie - 4x4 nr de regiuni din fereastra din jurul punctului - 8 cele 8 directii la care se aduna cele 4x4 magnitudini ale gradientului din fiecare regiune => pt fiecare punct cheie se obtine un vector de 128 elem care reprez descriptorul trasaturii caracteristice corespunzatoare punctului de interes respective => dupa aplicarea alg SIFT pe o imagine => se obtin atatia vectori descriptori (cu 128 elem) cate puncte de interes au fost gasite Recunoasterea obiectelor pe baza alg SIFT: - pt a stabili daca in 2 imagini diferite se gaseste aceiasi scena - se aplica alg SIFT pe fiecare imagine - se aplica un alg euristic: - se parcurg punctele cheie din imaginea1

- pt fiecare pct cheie i din imaginea1 - se caculeaza distantele euclidiene intre punctul respectiv si toate punctele din imaginea2 ( ) ( ) ( ) j = 1: nr de punct din imaginea2 - se aleg cele mai mici 2 distante obtinute : d_min1< d_min2 - se verifica daca cele 2 distante alese sunt sufficient de departate pt a nu obtine potriviri eronate - se testeaza daca: d_min1 < 0.6* d_min2 - daca DA: atunci punctele cheie a caror distanta este d_min1 corespund => punctul cheie i din imaginea1 a fost regasit in imaginea2 - daca NU: punctul cheie i din imaginea1 este prea apropiat de 2 puncte cheie diferite dim imaginea2 => se obtin potriviri eronate => punctul cheie i din imaginea1 nu a fost gasit in imaginea2 - se compara nr de puncte cheie din imaginea1 care au fost regasite in imaginea2 (n), cu o val de prag (prg) - daca n > prg => scena din imaginea1 a fost regasita in imaginea2, altfel nu - experimental s-a descoperit ca prg=3 este suficient