August 31, 2018 | Author: Radu Florin Iviniciu | Category: N/A
UNIVERSITATEA TEHNICĂ DIN CLUJ-NAPOCA FACULTATEA DE ELECTRONICĂ, TELECOMUNICAŢII ŞI TEHNOLOGIA INFORMAŢIEI Specializarea: Specializarea: Electronică Aplicată
Sistem de sortare bazat pe logică fuzzy Proiect de diplomă
PREŞEDINTE COMISIE, Prof. dr. ing. Marina ŢOPA
CONDUCATOR, Prof. dr. ing. Gabriel OLTEAN
DECAN, Prof. dr. ing. Marina ŢOPA
ABSOLVENT, Teodor Florin CIORTEA
2010
Titlul temei: Sistem de sortare bazat pe logică fuzzy Enunţul proiectului de diplomă: Sistem de sortare bazat pe logică fuzzy Tipul proiectului: dezvoltare şi implementare de software Cerinţe impuse: clasificarea unor obiecte cu caracteristici asemănătoare, preluarea imagin imaginii ii unui unui obiect obiect,, salvar salvarea ea lui în format format .jpg, .jpg, prelua preluarea rea imagin imaginii ii în Matlab Matlab,, extragerea caracteristicilor obiectului (culoare, formă, dimensiune) utilizând tehnici fuzzy, clasificarea obiectului pe baza caracteristicilor extrase utilizând SLF/ algoritmi de clasificare fuzzy/ reţea neuronală.
Locul de execuţie : Laboratorul de Sisteme cu Logică Nuanţată, sala 329, Str: George Bariţiu 26-28 Data emiterii temei: 20 octombrie 2009 Termen de predare: 24 iunie 2010 ŞEF CATEDRĂ, Prof. dr. ing. Lelia FEŞTILĂ
CONDUCĂTOR, Prof. dr. ing. Gabriel OLTEAN
ABSOLVENT, Teodor Florin CIORTEA
Declaraţia autorului
Subsemnatul declar prin prezenţa că ideile, partea de proiectare şi experimentală, rezultatele, analizele şi concluziile cuprinse în această lucrare constituie efortul meu propriu, mai puţin acele elemente care nu-mi aparţin, pe care le indic şi le recunosc că atare. Declar, de asemenea, că după ştiinţa mea, lucrarea în această formă este originală şi nu a mai fost niciodată prezentată sau depusă în alte locuri sau altor instituţii decât cele indicate în mod expres de către mine. În calitate de autor, cedez toate drepturile de utilizare şi modificare a lucrării de diplomă către Universitatea Tehnică din Cluj-Napoca.
Cluj-Napoca, 24 iunie 2010
ABSOLVENT, Teodor Florin CIORTEA
1. Numele şi prenumele prenumele studentului: studentului: Teodor Florin Florin CIORTEA 2. Numele şi prenumele prenumele conducătorului: Prof. Prof. dr. ing. Gabriel Gabriel OLTEAN
SINTEZA PROIECTULUI DE DIPLOMĂ Enunţul Temei: Sistem de sortare bazat pe logică fuzzy Sistemele de sortare cu logică fuzzy reprezintă o soluţie modernă în realizarea sistemelor decizionale, bazate pe diverse trăsături asemănătoare ale obiectelor. În această lucrare s-a realizat proiectarea şi dezvoltarea unui astfel de sistem de clasificare, bazat pe extragerea unor caracteristici şi apoi utilizarea acestora pentru realizarea selecţiei (luarea deciziei). Intrarea acestui sistem constă în imagini color ale obiectelor de clasificat. Aplicaţia beneficiază de o implementare pe două nivele. Primul nivel eate reprezentat de algoritmii algoritmii de extragere extragere a celor trei caracteristic caracteristicii (aspect fizic, fizic, culoare, culoare, mărime), mărime), realizaţi realizaţi în mediul de dezvoltare integrat (IDE) Matlab, iar cel de-al doilea nivel constă în proiectarea unui sistem de decizie cu logică fuzzy, de tip Mamdani, cu trei intrări, corespunzătoare trăsăturilor obiectelor şi două ieşiri, ce semnifică tipul respectiv starea obiectelor. Ulterior, este realizată legatura între sistemul de sortare şi parametrii de intrare rezultaţi în urma prelucrării imaginilor cu algoritmii corespunzători. Deoarece, sistemul în discuţie este unul decizional şi nu de control am utilizat ca metodă de defuzzificare metoda mediei maximelor (MOM). Valorile returnate la ieşire în urma defuzzificarii, sunt corelate cu variabilele lingvistice corespunzătoare în vederea afişării rezultatelor finale, rezultate care dovedesc corectitudinea proiectării şi implementării întregului proces.
ABSTRACT Paper title: Sorting system based on fuzzy logic Sorting systems with fuzzy logic is a modern solution to achieve decision-making systems based on miscellaneous similar features of the objects. In this paper was done designing and developing such a classification system, based on extraction of features and then use them to achieve selection (decision). The entry of this system consists in color images of the objects classified. The application has a two-tier implementation. The first level is represented by the extraction algorithms for the three characteristics (physical appearance, color, size), completed in Matlab integr integrated ated develo developme pment nt environm environment ent (IDE), (IDE), and the second second level level consis consists ts in design designing ing of a Mamdani type fuzzy logic decision system, with three inputs, corresponding to the features of the objects, objects, and two outputs, wich means the type respectively respectively the state state of the object. object. Subsequently Subsequently,, is made the connection between the sorting system and the input parameters from the processing image corresponding algorithms. Since the system in question is a decisional one and not a control one, the defuzzification method used is Mean of Maximum (MOM). Output values returned from the defuzzificat defuzzification ion method, are correlated correlated with appropriate words to display display final results, results results that prove the correctness of the whole design and implementation process.
CURRICULUM VITAE Name: Teodor Florin Ciortea Date of birth: 14 of May, 1987 th
Studies: 2002 – 2006 : “Emil Racoviţa” Naţional College of Cluj-Napoca, Cluj 2002 – 2010 : Tehnical University of Cluj-Napoca, Faculty of Electronics, Telecommunication and Information Technology, Major course of study: Applied Electronics Professional Activities: 2008 – August – technological practice (140 hours) at S.C.NET BRINEL S.A., Cluj-Napoca, Maintenance and P.C. Assembling Departament 2009 – August – technological practice (120 hours) at S.C.NET BRINEL S.A., Cluj-Napoca, Maintenance and P.C. Assembling Departament Technical Knowledge: PC Knowledge: - configuration of Windows system - programming: C/C++, C#, Matlab - known programs: OrCad, Matlab, Labview Other skills: medium knowledges în computers networks Foreign Languages: Engl Engliish French
Conv Conver erssati ation: on: Well ell Writing: Well Reading: Well Conversation: Acceptable Writing: Acceptable Reading: Acceptable
Contact: Adress: Avram Iancu St., No. 3, Ap. 17, Huedin, Cluj-Napoca Phone: 0748-426680 E-mail:
[email protected] Subsemnatul Teodor Florin Ciortea, prin prezenţa declare că datele din acest Curriculum Vitae pot fi folosite de către Facultatea de Electronică, Electronică, Telecomunicaţii Telecomunicaţii şi Tehnologia Tehnologia Informaţiei Informaţiei,, din cadrul Universităţii Tehnice din Cluj-Napoca în scopuri de promovare şi orientare în cariera profesională, în următoarele condiţii: - fără fără consul consultar taree prealab prealabilă ilă -
după o consultare consultare prealabilă prealabilă cu subsemnatul subsemnatul
-
nu sunt sunt de acco accord rd
Planificarea activităţii
Cuprins Studiu bibliografic................................................................................................................................ bibliografic................................................................................................................................ 8 2. Fundamentare teoretica................................................................................................................... teoretica................................................................................................................... 10 2.1. Metodologia propusa................................................................................................................ propusa................................................................................................................ 11 2.2. Logica Fuzzy............................................................................................................................ Fuzzy............................................................................................................................ 12 2.2.1. Mulţimile fuzzy................................................................................................................. fuzzy................................................................................................................. 12 2.2.2. Variabile lingvistice.......................................................................................................... lingvistice.......................................................................................................... 14 2.2.3. Grade de adevăr ................................................................................................................ ................................................................................................................ 14 2.2.4. Aplicarea valorilor de adevăr ...........................................................................................14 ...........................................................................................14 2.2.5. Raţionament fuzzy............................................................................................................ fuzzy............................................................................................................15 15 2.2.6. Proprietăţile mulţimilor fuzzy........................................................................................... fuzzy........................................................................................... 17
2.2.7. Sisteme cu logică fuzzy.................................................................................................... fuzzy.................................................................................................... 18 2.2.8. Sisteme cu locica fuzzy Takagi-Sugeno........................................................................... Takagi-Sugeno...........................................................................19 19 2.2.9. Sistemele cu logică fuzzy Mamdani.................................................................................. Mamdani..................................................................................20 20 2.3. Mediul de programare MATLAB............................................................................................ MATLAB............................................................................................ 21 2.3.1. Image Acquizition Toolbox............................................................................................... Toolbox...............................................................................................22 22 2.3.2. Image Processing Toolbox................................................................................................ Toolbox................................................................................................ 22 2.3.3. Afişarea şi explorarea imaginilor ...................................................................................... ...................................................................................... 23 2.3.4. Procesarea şi postprocesarea imaginilor ............................................................................23 ............................................................................ 23 2.3.5. Proiectarea şi simularea sistemelor fuzzy în MATLAB cu Fuzzy Logic Toolbox........... Toolbox...........23 23 2.3.6. Utilizarea Fuzzy Logic Toolbox........................................................................................ Toolbox........................................................................................24 24 2.3.7. Construirea unui sistem de inferenţă fuzzy....................................................................... fuzzy....................................................................... 24 2.3.8. Modelarea utilizând logică fuzzy...................................................................................... fuzzy...................................................................................... 26 2.3.9. Defuzzificarea................................................................................................................... Defuzzificarea................................................................................................................... 26 3. Proiectare şi rezultate experimentale............................................................................................... experimentale...............................................................................................29 29 3.1. Extragerea caracteristicilor obiectelor ......................................................................................29 ...................................................................................... 29 3.1.1. Achiziţia imaginilor ..........................................................................................................29 ..........................................................................................................29 3.1.2. Algoritmul de detecţie a conturului................................................................................... conturului...................................................................................30 30 3.1.3. Algoritmul de eliminare al umbrelor .................................................................................33 ................................................................................. 33 3.1.4. Algoritmul de detecţie a formei......................................................................................... formei.........................................................................................37 37 3.1.5. Algoritmul de determinare a dimensiunii......................................................................... dimensiunii.........................................................................40 40 3.1.6. Algoritmul de detecţie a culorii........................................................................................ culorii........................................................................................41 41 3.1.7. Algoritmul de returnare a obiectelor şi a stării acestora ..................................................42 ..................................................42 3.1.8. Funcţia principală............................................................................................................. principală............................................................................................................. 44 3.2. Proiectarea Sistemului cu Logică Fuzzy în determinarea tipului fructului şi stării acestuia. acestuia. . .45 3.2.1. Intrări................................................................................................................................. Intrări................................................................................................................................. 46 3.2.1.1. Definirea mulţimilor fuzzy pentru variabila de intrare aspect....................................... aspect.......................................46 46 3.2.1.2. Definirea mulţimilor fuzzy pentru variabila de intrare dimensiune............................... dimensiune............................... 47 3.2.1.3. Definirea mulţimilor fuzzy pentru variabila de intrare culoare...................................... culoare......................................48 48 3.2.2. Ieşirile................................................................................................................................ Ieşirile................................................................................................................................ 49 3.2.2.1. Definirea mulţimilor fuzzy pentru variabila de ieşire tipul fructului............................. fructului.............................49 49 3.2.2.2. Definirea mulţimilor fuzzy pentru variabila de ieşire a stării fructului.......................... fructului..........................50 50 3.2.3. Definirea setului de reguli pentru SLF.............................................................................. SLF.............................................................................. 50 3.2.4. Funcţionarea sistemului cu logică fuzzy........................................................................... fuzzy........................................................................... 52 3.2.5. Rezultatele proiectării sistemului de sortare..................................................................... sortare..................................................................... 54 3.2.6. Defuzzificarea.................................................................................................................. Defuzzificarea.................................................................................................................. 55 Concluzii............................................................................................................................................. Concluzii ............................................................................................................................................. 56 5. Bibliografie...................................................................................................................................... Bibliografie......................................................................................................................................57 57
Index de imagini continute in text Figura 1: Schemă logică pentru metodologia propusă...................................11 Figura 2: Ilustrarea mulţimilor “TRUE” şi “FALSE” în logica booleană (a) şi în logica fuzzy (b)...12 Figura 3: Cele 11 tipuri de mulţimi fuzzy...........................................................................................14 Figura 4: Inferenţa compoziţională.....................................................................................................17 Figura 5: Schema bloc a unui sistem cu logică fuzzy................................................ fuzzy........................................................ ............... .............. .........19 ..19 Figura 6: Prelucrarea semnalelor într-un sistem cu logică fuzzy Takagi-Sugeno...............................20 Figura 7: Structura unui sistem cu logică fuzzy Mamdani..........................21 Figura 8: Interpretarea diagramei fuzzy de inferenţa de tip Mamdani................................................21 Figura 9: Editorul FIS..........................................................................................................................24 Figura 10: Editorul de funcţii membre................................25
Figura 11: Afişarea suprafeţelor.....................................................25 Figura 12: Metoda maximului funcţiei de apartenenţa.......................................................................27 Figura 13: Metoda centrului de masă..................................................................................................27 Figura 14: Metoda mediei ponderate...................................................................................................28 Figura 15: Metoda mediei maximelor.................................................................................................28 Figura 16: Rezultatul obţinut în urma rulării funcţiei “edge”..........................30 Figura 17: Rezultatul obţinut în urma rulării funcţiei “imdilate”.........................31 Figura 18: Rezultatul obţinut în urma rulării funcţiei “imfill”...............................31 Figura 19: Rezultatul final al aplicarii algoritmului................................32 Figura 20: Imaginea originală pe fundal negru (înainte de aplicarea algoritmului de eliminare a umbrelor).............................................................................................................................................35 Figura 21: Imaginea fără umbre pe fundal negru (rezultată în urma aplicării algoritmului de eliminare a umbrelor cu prag 15)........................................................................................................35 Figura 22: Imaginea originală pe fundal alb (înaintea de aplicarea algoritmului de eliminare a umbrelor).............................................................................................................................................36 Figura 23: Imaginea fără umbre pe fundal alb (rezultată în urma aplicării algoritmului de eliminare a umbrelor cu prag 90)...........................................................................................................................36 Figura 24: Imaginea fără umbre pe fundal alb (rezultată în urma.......................................................37 Figura 25: Obţinerea formei................................................................................................................38 Figura 26: Aplicarea conturului asupra formei...........................................38 Figura 27: Rezultatul final al algoritmului de determinare a formei...................................................39 Figura 28: Modelul sistemului fuzzy...................................................................................................46 Figura 29: Editarea Regulilor..............................................................................................................46 Figura 30: Mulţimile fuzzy peste universul discuţiei variabilei de intrare Aspect..................47 Figura 31: Mulţimile fuzzy peste universul discuţiei variabilei de intrare Dimensiune.....................48 Figura 32: Mulţimile fuzzy initiale peste universul discuţiei variabilei de intrare Culoare................49 Figura 33: Mulţimile fuzzy finale peste universul discuţiei variabilei de intrare Culoare..................49 Figura 34: Mulţimile fuzzy peste universul discuţiei variabilei de iesire TipFruct............................50 Figura 35: Mulţimile fuzzy peste universul discuţiei variabilei de iesire StareFruct..........................50 Figura 36: Fereastra Rule Viewer.................................................53 Figura 37: Ieşirea TipFruct în funcţie de întărările Aspect şi Dimensiune...................54 Figura 38: Ieşirea StareFruct în funcţie de intrările Dimensiune şi Culoare..................54
ografic Sistemele de sortare implementate în diferite moduri, prin utilizarea a diferiţi algoritmi, unii deja deja consacr consacraţi aţi,, precum precum Bubbles Bubblesort ort (sorta (sortare re prin prin metoda metoda bulelo bulelor) r) sau Merges Mergesort ort (sortar (sortaree prin prin interclasare), sunt cu succes folosiţi în procesele manageriale ale bazelor de date. Lucrarea de faţă se bazează pe studiul şi implementarea unui sistem de clasificare bazat pe logică fuzzy, aplicat asupra unui set de imagini color, în vederea selecţiei obiectelor conţinute în imaginile respective pe baza unor trăsături asemănătoare (aspect fizic, dimensiune, culoare). Teoria mulţimilor fuzzy a fost dezvoltată începând din anii ’60, ca un răspuns la insuficienta consistenţă a raţionamentelor deterministe de tipul “DA” sau “NU”, încercându-se formalizarea unor raţionamente de tipul “Mai mult sau mai puţin”. În logica logica clasică, clasică, propoziţiil propoziţiilee pot fi adevărate adevărate sau false, false, neexistând neexistând posibilitatea posibilitatea unor valori intermediare. În cazul abordării unor modele concrete, din lumea reală, s-a constatat apariţia unor
situaţii delicate: nu toate sistemele reale sunt clare şi deterministe (ca atare nu pot fi descrise cu exactitate pe baza logicii clasice), iar descrierea completă a unui sistem real necesită o serie de informaţii care nu sunt cunoscute sau furnizate complet şi, de multe ori, nu sunt înţelese exact. Astfel a apărut ca necesară utilizarea mulţimilor fuzzy şi a logicii rezultată din utulizarea mulţimilor fuzzy în locul mulţimilor clasice, crisp. Teoria mulţimilor fuzzy a fost dezvoltată de Lotfi Zadeh care a observat ca modelele matematice şi diferite modele clasice în fundamentarea procesului decisional prezintă imperfecţiuni şi sunt sunt difi difici cill de aplic aplicat at la reali realitat tatea ea compl complex exăă a fact factori orilo lorr econ econom omic ici. i. Pe măsu măsură ră ce creşt creştee complexitatea unui process economic se poate ajunge la un punct critic, de la care precizia şi semnificaţia afirmaţiilor referitoare la comportamentul procesului sunt incompatibile. Principiul incompatibilităţii definit de Zadeh converge spre afirmaţii vagi (fuzzy), iar logica fuzzy încearcă să creeze un formalism pentru imprecizia şi ambiguitatea specifică limbajului natural.[5] Adoptarea de decizii superior şi complex fundamentate devine posibilă prin apelarea la o gamă variată de metode şi tehnici decizionale care facilitează alegerea variantei optime, fiecare dintre acestea încadrându-se într-un anumit model decizional. Funcţie de volumul, structura şi calitatea informaţiilor de care se beneficiază, modelele decizionale pot fi: deterministe, centrate pe informaţii cu grad ridicat de precizie, completă; nedeterministe şi probabiliste. Utilizarea acestor metode şi tehnici decizionale determină o sporire a gradului de rigurozitate şi, implicit, de eficacitate a deciziilor adoptate, diferenţiate în raport de tipologia situaţiilor decizionale implicate. Modelele Modelele bazate pe teoria teoria mulţimilo mulţimilorr vagi, în care informaţiile informaţiile transmise transmise conducerii pentru fundamentarea deciziilor sunt cu grad ridicat de completitudine, dar mai puţin precise, modele probabiliste, utilizate în situaţia existenţei unor informaţii precise, dar mai puţin complexe, precum şi modelele deterministe sunt, în opinia noastră, cele mai semnificative. Metodele şi tehnicile decizionale se pot grupa, în funcţie de tipul situaţiilor decizionale implicate, în trei categrii: - metode metode şi tehnici tehnici de optim optimizare izare a decizii deciziilor lor în condiţii condiţii de certitudine certitudine:: ELECTRE, ELECTRE, metoda metoda utilităţii globale, metoda activă, algoritmul lui Deutch-Martin, tabelul decizional, simularea decizională; - metode metode şi tehnici tehnici de optimiza optimizare re a deciziilor deciziilor în condiţi condiţiii de incertitudi incertitudine: ne: tehnica tehnica optimistă, optimistă, tehnica pesimistă (A.Wald), tehnica optimalitatii (C.Hurwicz), tehnica proporţionalităţii (Bayes-Laplace), tehnica minimizării regretelor (L.Savage) - metode metode şi tehnici tehnici de optimi optimizare zare a decizi deciziilo ilorr în condiţii condiţii de risc: arborel arborelee decizional decizional,, metoda speranţei matematice. Sistemului decizional implementat în această aplicaţie se înscrie în prima categorie deoarece valorile setului de intrare reprezintă certitudini, în funcţie de care, în urma operaţiilor fuzzy, a implicaţiei, a operaţiei operaţiei de agregare şi a celei de defuzzific defuzzificare, are, rezultă la ieşire ieşire o singură singură valoare valoare tranşantă. tranşantă. Iniţial pentru ieşiri tranşante în cazul sistemelor decizionale se folosesc sisteme fuzzy de tip TakagiSugeno, a căror ieşire reprezintă un singur punct cu grad de apartenenţa 100% (singleton), însă în cazul de faţă s-a definit un sistem fuzzy de tip Mamdani a cărei ieşire este reprezentat tot de mulţimi fuzzy fiecare cu un anumit grad de activare, în final aplicându-se o metodă de defuzzificare de tip medie a maximelor. Este aleasă această metodă de defuzzificare deoarece sistemul la care ne referim este un sistem decizional şi nu unul de control.[6] În cea ce priveşte partea de procesare de imagini, cel mai mare impediment întâlnit este reprezentat reprezentat de prezenţa prezenţa umbrelor umbrelor în imaginile realizate realizate şi realizarea conturului. conturului. În ceea ce priveşte priveşte eliminarea umbrelor , problema a fost rezolvată prin implementarea unei idei proprii, ce presupune setarea unui prag, realizare unei diferenţe, în modul, între valorile pixelilor suprapuşi corespunzători celor trei planuri luate două câte două, şi compararea maximului dintre cele trei rezultate cu pragul. În cazul în care pragul este mai mare pixelul respectiv este considerat umbră şi ia valoarea standard a pixelului de fundal.
În cazul realizării conturului şi determinării, formei Matlab Image Processing Toolbox oferă doi algoritmi deosebit de eficienţi în acest sens, care vor fi explicaţi în detaliu în secţiunile corespunzătoare. Alte metode de determinare a conturului sunt reprezentate de aplicarea transformatelor cosinus şi a transformatei wavelet. Transformata wavelet reprezintă în fapt o metodă foarte eficientă de detecţie a conturului. Fiecărui coeficient al acestei transformate îi corespunde un pixel din imagine. Aceşti coeficienţi sunt reprezentaţi într-o matrice în care elementele de deasupra diagonalei diagonalei secundare corespund cu cele mai înalte înalte frecvenţe frecvenţe întâlnite pe imagine. imagine. Aceste Aceste frecvenţe frecvenţe corespund contururilor care por fi determinate efectuaind o serializare a matricelor urmată de o normalizare. De asemenea această metodă este foarte folosită în cazul marcărilor transparente ale imaginilor ce presupune includerea unui mesaj ascuns în contururile întâlnite într-o imagine.
2. Fundamentare teoretica Logica fuzzy a devenit o soluţie foarte promiţătoare pentru realizarea sistemelor decizionale. Tema acestei lucrări propune proiectarea eficientă a unui sistem de sortare implementat pe baza logicii fuzzy. Pentru modelarea sistemului de clasificare şi a algoritmilor de extragere a proprie proprietăţ tăţilo ilorr obiect obiectelo elorr s-a folosi folositt mediul mediul de dezvol dezvoltar taree integra integratt Matlab Matlab,, şi mai exact exact Image Image Processing Toolbox, şi Fuzzy Logic Toolbox.
2.1. Metodologia propusa
Figura 1: Schemă logică pentru metodologia propusă Punctul de plecare în implementarea unui astfel de sistem de clasificare este reprezentat de specificaţiile sistemului. Figură de mai sus reprezintă schemă logică a metodologiei propuse. După ce au fost făcute specificaţiile sistemului de sortare urmează proiectarea unui model decizional cu logică fuzzy în Matlab FIS Editor. Acest model este analizat, testat şi ajustat până când rezultatele experimentale corespund cu performanţele cerute.
2.2. Logica Fuzzy Logica Fuzzy (din engl.: logică vagă) este o formă de logică multi-valorica derivată din setul teoretic fuzzy, folsită pentru concluzionarea unor propoziţii ale căror valoare de adevăr este mai mult aproximativă decât precisă. Spre deosebire de logica clasică, care lucrează cu două valori numerice exacte (0 pentru fals şi 1 pentru adevărat), logica fuzzy foloseşte o plajă continuă de valori logice cuprinse în intervalul [0;1], unde 0 indică falsitatea completă, iar 1 indică adevărul complet. Astfel, dacă în logica clasică un obiect poate aparţine (1) sau nu (0) unei mulţimi date, în logica fuzzy putem defini gradul de apartenenţă apartenenţă al obiectului obiectului la mulţime care poate lua valori între 0 şi 1. Mai mult, atunci când sunt folosite variabile lingvistice, gradele de apartenenţa pot fi controlate prin funcţii specifice. Diferenţă esenţială dintre logica clasică şi cea fuzzy, este faptul că legea “terţului exclus", defnită de Aristotel, nu mai este valabilă. În Figura 2. de mai jos este ilustrată diferenţa între logica booleană şi cea fuzzy. Dacă în primul caz există o delimitare clară între cele două valori de adevăr, în al doilea caz există o zonă de nedeterminare, în care valoarea de adevăr poate fi 0 şi 1 în acelaşi timp, într-o anumită măsură dată de gradul dapartenenta.
Figura 2: Ilustrarea mulţimilor “TRUE” şi “FALSE” în logica booleană (a) şi în logica fuzzy (b) Logica Fuzzy a luat naştere în 1965 ca o consecinţă a setului de teorii fuzzy propus de profesorul Lotfi Zadeh de la Universitatea Berkeley din California. Cu toate că logica fuzzy a fost aplicată în mai multe câmpuri, de la teoria controlului la inteligenţă artificială, aceasta rămâne un subiect controversat în cele mai multe statistici, care preferă logica booleană, sau de către unii ingineri de control, care preferă lucrul cu două valori logice. Logica fuzzy poate fi folosită atunci când nu există o delimitare clară între mulţimile ce reprezi reprezintă ntă valori valorile le unei mărimi mărimi sau proprie proprietăţ tăţi,i, sau evenime evenimente ntele le ori stăril stărilee posibi posibile le ale unei unei variabile aleatoare.
2.2.1. Mulţimile fuzzy Conceptul de mulţime fuzzy, introdus de către Zadeh, a apărut ca o urmare frească a imposibilităţii de a modela un sistem indenit (din engl.: ill-defned) cu ajutorul unor instrumente matematice precise, cum ar fi cele ale ale teoriei probabilistice. Fie X o colecţie de obiecte. Mulţimea fuzzy A definită pe mulţimea X este o mulţime de perechi ordonate:
A = {µ A ( x ) / x}
unde µ ( x) reprezintă funcţia caracteristică sau funcţia de apartenenţa a lui x la mulţimea A. Semnul ”/" este folosit doar pentru a delimita valoarea reală x de valoarea funcţiei de apartenenţa A
µ A ( x)
.
Funtia de apartenenţa se defineşte pe intervalul de valori posibile ale lui x cu valori reale, în
intervalul [0,1]: µ ( x) → [0; 1]. Dacă A conţine doar 0 şi 1, atunci A nu mai este o mulţime fuzzy, ci una caracteristică logicii clasice. Dacă funcţia de apartenenţa este discretă, atunci mulţimea A se scrie ca: A
n
A = µ1
/ x1 + µ 2 / x2 + ... + µ n /
xn
=
∑µ
i
/
xi
i =1
Dacă funcţia de apartenenţa este o funcţie continuă, atunci mulţimea fuzzy A se scrie ca: A=
∫ µ (x) / x A
X
unde prin integrare se înţelege totalitatea punctelor µ ( x) / x . Pentru o mai bună înţelegere a mulţimilor fuzzy definim cinci concepte: A
1. Variabilă lingvistică x = : o proprietate, un atribut al obiectului (obiectelor) în discuţie 2. Valoare lingvistică A = : un adverb, adjectiv asociatvariabilei lingvistice, care dă şi numele mulţimii fuzzy asociate 3. Universul discuţiei X = : o mulţime clasică, tranşantă, pe care se definesc mulţimile fuzzy 4. Gradul de apartenenţa µ = : arată masura în care un element aparţine unei mulţimi fuzzy,
µ ∈
[0;1]
5. Funcţia de apartenenţa µ ∈ : asociază fiecărui element x gradul de apartenenţa la mulţimea fuzzy A
A:
µ A ( x) : X
Astfel, mulţimea fuzzy
A
→ [0;1]
este complet determinată de mulţimea perechilor ordonate: A = {( x, µ A ( x)) | x ∈ X }
Funcţiile de apartenenţa pot fi de mai multe tipuri. De exemplu, în toolboxul de Fuzzy Logic din Matlab sunt implementate 11 tipuri de mulţimi fuzzy reprezentate în Figură 3. Acestea sunt triunghiulare (trimf), trapezoidale (tramf), de tip Gauss (gaussmf şi gauss2mf), clopot generalizat (gbellmf), sigmoidale (sigmf, dsigmf, psigmf) şi curbe polinomiale (zmf, pimf, smf). Un tip special de mulţime fuzzy este mulţimea de tip “singleton” a cărei funcţie de apartenenţa are valoarea 1 doar într-un punct particular şi valoarea 0 în rest. [1]
Figura 3: Cele 11 tipuri de mulţimi fuzzy
2.2.2. Variabile lingvistice În timp ce variabilele matematice i-au de obicei valori numerice, în aplicaţiile cu logică fuzzy, variabilele lingvistice nenumerice sunt adesea folosite pentru a facilita exprimarea regulilor şi a faptelor. O variabilă lingvistică precum “vârsta” poate lua o valoare precum “tânăr” sau antonimul acestuia “bătrân”. Oricum, marea utilitate a variabilelor lingvistice este aceea că pot fi modificate prin intermediul pragurilor lingvistice aplicate termenilor primari. De asemenea, pragurile lingvistice pot fi asociate unor funcţii certe.
2.2.3. Grade de adevăr Logica fuzzy şi logica probalisică sunt similare din punct de vedere matematic, ambele având grade de adevăr cuprinse în intervalul 0-1, dar conceptual sunt diferite, datorită interpretărilor diferite. Logica fuzzy corespunde unor “grade de adevăr”, în timp ce logică probalistică corespunde “probabilităţii, posibilităţii”. Consecvent, probabilitatea nu are nimic în comun cu fuzzificarea, acestea sunt concepte diferite care la o privire superficială par similare din cauza folosirii aceluiaşi interval de valori numerice reale, [0;1]. Totuşi, din moment ce teoreme, precum cea a lui De Morgan, au aplicabilităţi duale, şi proprietăţile variabilelor aleatoare sunt similare cu proprietăţile stărilor logice binare, se pot observa cazurile în care ar putea apărea confuzii.
2.2.4. Aplicarea valorilor de adevăr
O aplicaţie de bază ar putea caracteriza gamele de variaţie pentru o variabilă continuă. De exemplu, măsurarea temperaturii pentru împiedicarea blocării frânelor unui automobil poate avea mai multe funcţii membre separate, definind intervale de temperatură particulare necesare pentru controlul corespunzător al frânelor. Fiecare funcţie indică aceeaşi valoare a temperaturii către o valoare de adevăr în intervalul [0;1].
În această imagine, imagine, înţelesul înţelesul expresiilor expresiilor RECE, CALD, FIERBINTE FIERBINTE este reprezentat reprezentat de funcţii care acoperă scara de temperatura. Un punct conţinut în acest interval are trei “valori de adevăr”adevăr”- una pentru fiecare din aceste aceste trei funcţii. funcţii. Linia verticală verticală din imagine imagine reprezintă reprezintă o anumită anumită temperature pe care cele trei săgeţi (valori de adevăr) de ecartament o indică. Din moment ce sageata roşie pointeaza spre zero, acesta temperatură poate fi interpretată ca fiind “nu fierbinte”. Sageata portocalie (care indică spre 0,2) descrie această temperatură ca fiind “uşor caldă”, în timp ce sageata albastră (care pointeaza la 0,8) descrie temperatura ca fiind “destul de rece”.
2.2.5. Raţionament fuzzy Raţionament Raţionamentul ul fuzzy (sau raţionament raţionamentul ul aproximativ) aproximativ) este analogul analogul logicii logicii predicatelor predicatelor pentru raţionamentul cu propoziţii precise şi este, aşadar, o extensie a logicii propoziţiilor clasice. Raţionamentul fuzzy foloseşte propoziţii fuzzy care sunt afirmaţii ce pot fi adevărate în anumite grade cuprinse în intervalul [0; 1]. Aceste propoziţii sunt exprimate folosind limbajul natural. Un model de propoziţie fuzzy este: “ x este A ” unde x este o variabilă lingvistică iar A este o valoare lingvistică a variabilei x . Înţelesul acestei propoziţii este determinat de mulţimea fuzzy A definită pe universul discuţiei variabilei x . Regulile fuzzy sunt propoziţii condiţionale de tipul DACĂ-ATUNCI care folosesc variabile şi valori lingvistice fuzzy: “ Daca x este A atunci y este B ” unde A şi B sunt valori lingvistice definite prin mulţimi fuzzy pentru variabilele lingvistice x , respectiv y. Partea DACĂ a regulii ( x este A ) se numeşte premisă sau antecedent, pe când partea ATUNCI ( y este B ) se numeşte concluzie sau consecvent. Interpretarea unei reguli fuzzy are loc în două etape: mai întâi se evaluează premisa iar apoi se aplică acest rezultat concluziei. Dacă premisa este adevărată într-un anumit grad, atunci concluzia este adevărată în acelaşi grad. În logica Booleană principalele instrumente de raţionament sunt tautologiile, cum sunt modus modus ponen ponenss şi modus modus tole tolens ns.. În logi logica ca fuzz fuzzyy este este folo folosi sitt acel acelaş aşii princ princip ipiu iu,, dar dar în locu locull propozi propoziţii ţiilor lor tranşa tranşante nte sunt sunt folosi folosite te propozi propoziţi ţiii şi reguli reguli fuzzy. fuzzy. Cea mai folosi folosită tă tautol tautologi ogiee în raţionamentul fuzzy este modus ponens generalizat (MPG):
este ∗ DACĂ este ATUNCI este bbbbbbberww n
premisă implicaţie concluzie concluzie
este ∗
unde A ∗ şi B ∗ sunt mulţimile fuzzy A şi B modificate. Aflarea concluziei B ∗ se realizează în urma procesului de inferenţă (deducţie) fuzzy, care matematic se poate rezolva folosind regula compoziţională de inferenţă propusă de Zadeh: ∗ ∗ B = A o(A →B) u n de : “→” simbolizează operaţia de implicaţie (evaluarea regulii fuzzy); “o” simbolizează operaţia de compunere a celor două propoziţii fuzzy din MPG. Folosind funcţiile de apartenenţă avem: µ ( y ) = µ ( x ) oµ → ( x , y ) B
∗
∗
A
A
B
Trebui Trebuiee stabil stabiliţ iţii operat operatori oriii pentru pentru cele cele două operaţ operaţii: ii: impli implicaţi caţiee şi compun compunere. ere. Pentru Pentru implicaţie cei mai folosiţi operatori sunt: µ → ( x, y ) = min(µ ( x ), µ ( y )) min (Mamdani) A
B
A
B
µ → ( x, y ) = µ ( x ) ⋅ µ ( y ) produs (Larsen) Pentru compunere cel mai des se foloseşte compunerea max-min: µ ( y ) = max mi min{µ ( x ), µ → ( x , y )} , ∀y ∈V A
B
B
A
∗
∗
A
A
B
B
∀x ∈ X
şi V sunt universurile discuţiei pentru cele două variabile, x respectiv y . Folosirea Folosirea compunerii max-min împreună împreună cu implicaţiile implicaţiile min sau produs conduc la cele mai folosite mecanisme de inferenţă compoziţională: • Inferenţa compoziţională max-min, sau Mamdani miin{µ ( x ), µ ( y ))} , ∀y ∈V µ ( y ) = max m
unde
X
B
∗
∗
B
A
∀x ∈ X •
Inferenţa compoziţională max-produs, sau Larsen min{µ ( x ), µ ( x ) ⋅ µ ( y )} , ∀y ∈ V µ ( y ) = max mi B
∗
∗
A
A
B
∀x ∈ X A*
este o mulţime fuzzy rezultată în urma unui proces de fuzzificare (ce se va discuta în paragraful următor) şi de cele mai multe ori este o mulţime fuzzy singleton. Inferenţa compoziţională este ilustrată în Figura 4, pentru trei tipuri de inferenţe: Mamdani, Larsen şi TakagiSugeno. Sugeno. Având Având în vedere vedere cazul cazul particu particular lar de mulţim mulţimee fuzzy fuzzy single singleton ton pentru pentru A *, inferenţa inferenţa compoziţională max-min se reduce la formula: ∗ µ ( y ) = min{µ ( x ), mi min(µ ( x ), µ ( y )) }, ∀y ∈V B
µ
B
∗
∗
∗
A
A
B
( y ) = min{min( µ ( x∗ ), µ ( x ), µ ( y )} , ∀y ∈V ∗
A
A
B
În cazul în care mulţimea mulţimea fuzzy B este de tip Takagi-Sugeno Takagi-Sugeno de ordin zero (mulţime (mulţime fuzzy
singleton) indiferent de operatorul folosit pentru operaţia de compunere, rezultă inferenţa compoziţională Takagi-Sugeno.[1]
Figura 4: Inferenţa compoziţională
2.2.6. Proprietăţile mulţimilor fuzzy Normalitatea. O mulţime fuzzy este normală dacă valoarea maximă afunctiei de apartenenţa este 1: ∨x
µ ( x )
unde ∨ reprezintă supremul sau maximul lui subnormală. x
Convexitatea. O mulţime fuzzy ca:
A
µ x
=
1
. În caz contrar vom spune că mulţimea este
este convexă dacă şi numai dacă mulţimile mulţimile
A
α
definite
= {x | µ (x ) ≥ α }
Aα
A
sunt convexe pentru orice α ∈ [0;1].
Punctul “crossover”. Pentru o mulţime funcţia de apartenenţa are valoarea 0,5.
A
punctul “crossover” este elementul pentru care
valoare singulară singulară (engl. singleton) singleton) este o mulţime mulţime fuzzy care are Valori singulare fuzzy. O valoare un grad de apartenenţa pentru o singură valoare. Fie A o valoare singulară pentru un interval X , x ∈ X , atunci
A poate
fi scrisă ca:
A = µ / x
Folosind Folosi nd aceast aceastăă defini definiţi ţie, e, o mulţim mulţimee fuzzy fuzzy poate poate fi conside considerat ratăă o reuniun reuniunee de valori valori singulare.
2.2.7. Sisteme cu logică fuzzy Un sistem cu logică fuzzy (SLF) permite modelarea şi implementarea funcţionării oricărui proces prin descrierea relaţiilor intrare-ieşire folosind variabile şi valori lingvistice şi reguli fuzzy DACĂ-ATUNCI. Valorile numerice tranşante ale variabilelor de ieşire rezultă prin aplicarea unor operaţii: fuzzificare, inferenţă fuzzy, defuzzificare, asupra valorilor numerice ale variabilelor de intrare. După Brubaker dezvoltarea unui SLF este justificată pentru sistemele a căror funcţionare este prea complexă pentru a putea fi definită adecvat prin tehnici tradiţionale: • • •
sisteme prea complexe pentru a fi modelate precis; sisteme cu funcţionare mediu spre puternic neliniară; sisteme ce prezintă anumite incertitudini fie în intrări fie în funcţionare.
În Figura 5. este prezentată structura structura unui SLF. Specific Specific acestei acestei structuri structuri este lipsa fluxului fluxului informaţio informaţional nal de la Baza de cunoştinţe, cunoştinţe, atât înspre interfaţa interfaţa de Fuzzificare Fuzzificare cât şi înspre interfaţa interfaţa de Defuzzificare
f
x ul
n ioţ a mr of ni
Baza de cunoştinţe l
Mulţimi fuzzy de intrare (A)
a
Baza de reguli fuzzy
Mulţimi fuzzy de ieşire (B)
mulţimi şi reguli fuzzy x*
Fuzzificare
Valori tranşante de intrare
A*
Inferenţă
flux de calcul
B*
Defuzzificar e
y*
Valori tranşan te de ieşire
Figura 5: Schema bloc a unui sistem cu logică fuzzy În structura SLF sunt cuprinse modulele: • Fuzzificare =: interfaţa ce transformă valorile tranşante ale variabilelor de intrare ( x *) în mulţimi fuzzy de tip singleton ( A *); • Baza de cunoştinţe =: furnizează modulului Inferenţă informaţiile necesare: - mulţimile fuzzy pentru variabilele de intrare ( A ); - mulţimile fuzzy pentru variabilele de ieşire ( B ); - baza de reguli fuzzy. • Inferenţă =: blocul care determină valorile fuzzy ale variabilelor de ieşire ( B *) folosind inferenţa fuzzy; • Defuzzificare =: interfaţa ce transformă valorile fuzzy ale variabilelor de ieşire în valori tranşante ( y *).
2.2.8. Sisteme cu locica fuzzy Takagi-Sugeno În prezent există două tipuri de SLF: de tip Mamdani şi de tip Takagi-Sugeno. Ele diferă în principal prin partea de concluzie a regulilor fuzzy. Sistemele Mamdani x2 utilizează mulţimi fuzzy obişnuite, pe când sistemele Takagi-Sugeno (T-S) folosesc în concluzie funcţii (liniare) a variabilelor de intrare. Fluxul de date dintr-un SLF este prezentat grafic în Figura 6. Valorile tranşante x1 * şi x2 * ale variabilelo variabilelorr de intrare intrare sunt fuzzificate fuzzificate rezultând rezultând mulţimil mulţimilee fuzzy singleton singleton A1 *, respectiv respectiv A2 *. Gradele Gradele de activare activare (adevăr) ale celor două reguli sunt µ 1 , respectiv µ 2 şi sunt valori intermediare folosite folosite în cadrul inferenţei. inferenţei. Menţionăm că regula R2 este o regulă compusă conţinând în partea de premisă ambele variabile legate prin conectivul fuzzy ŞI. Pentru conectivul ŞI este folosit operatorul “min”. Valorile fuzzy parţiale ale variabilei de ieşire furnizate de cele două reguli sunt B1 * şi B2 * în cazul unui SLF T-S de ordin zero, respectiv y1 * şi y2 * în cazul unui SLF T-S de ordin unu. Aceste valori parţiale sunt agregate şi apoi defuzzificate folosind metoda de defuzzificare numită medie ponderată. În urma defuzzificării se obţine valoarea tranşantă y * a variabilei de ieşire corespunzătoare valorilor tranşante x1 * şi x2 * ale celor două variabile de intrare.[1]
Figura 6: Prelucrarea semnalelor într-un sistem cu logică fuzzy Takagi-Sugeno
2.2.9. Sistemele cu logică fuzzy Mamdani Metoda de inferenţă mamdani este cea mai des folosită în metodologia fuzzy. Această metodă a fost de departe cea dintâi metodă de control utilizând logică fuzzy. A fost propusă în 1975 de către Ebrahim Mamdani într-o încercare de a controla o combinaţie între un motor pe bază de abur şi un boiler prin sintetizarea unui set de control cu reguli lingvistice obţinut pe bază de axperimentar axperimentare. e. Efortul Efortul lui Mamdani Mamdani a fost bazat pe teoriile teoriile lui Lotfi Zadeh privitoare privitoare la algoritmii algoritmii fuzzy pentru sisteme complexe complexe şi procese decizionale. decizionale. Structura unui sistem sistem cu logică logică fuzzy de tip Mamdani este afişată în Figură 7. Inferenţa de tip Mamdani, Figura 8, presupune că funcţiile member de ieşire să fie mulţimi fuzzy. După finalizarea procesului de agregare, există o mulţime fuzzy pentru fiecare variabilă de ieşire care necesită defuzzificare. Este posibil, şi în multe cazuri mult mai eficient, să folosim un singur singur vârf ca ieşire a funcţiilor funcţiilor member member decât un set de mulţimi mulţimi fuzzy distribuit distribuite. e. Acest tip de ieşire poartă numele de ieşire a funcţiilor member “singleton”, şi poate fi gândit că un set fuzzy predefuzzificat. Ea îmbunătăţeşte eficienţa procesului de defuzzificare, deoarece simplifică modul de calcul cerut de metoda mult mai generală Mamdani, care determină centrul de greutate a unei funcţii bidimensionale. Mai degrabă decât integrarea în funcţia bidimensională pentru a determina centrul de greutate, putem folosi o medie ponderată pentru câteva puncte date.
Figura 7: Structura unui sistem cu logică fuzzy Mamdani
Figura 8: Interpretarea diagramei fuzzy de inferenţa de tip Mamdani
2.3. Mediul de programare MATLAB MATLAB (de la Matrix Laboratory) este un mediu de dezvoltare pentru calcul numeric şi analiză statistică care conţine limbajul de programare cu acelaşi nume, creeat de MathWorks. MATLAB MATLAB permite permite manipularea manipularea matricilor, matricilor, vizualizarea vizualizarea funcţiilor funcţiilor,, implementa implementarea rea algoritmil algoritmilor, or, crearea de interfeţe şi poate interacţiona cu alte aplicaţii. Este un limbaj interactiv de nivel superior care permite realizarea unor cerinţe de calcul dificile cu o viteză de lucru mai ridicată decât cea a limbajelor de programare tradiţionale, precum C, C++ sau Fortran. Fortran. Chiar dacă e specializat specializat în calcul calcul numeric, există există pachete pachete care îi permit permit să
interacţioneze cu motoarele de calcul simbolic gen Maple. Un pachet adiţional, Simulink, oferă posibilitatea de a realiza simulări ale sistemelor dinamice şi îmbarcate utilizând modele matematice. MATLAB e utilizat pe larg în industrie, în universităţi şi e disponibil cross-platform, sub diverse sisteme de operare: Windows, GNU/Linux, UNIX şi Mac OS. MATLAB MATLAB pune la dispozi dispoziţia ţia utiliz utilizato atorul rului ui un set de Toolbo Toolbox-ur x-urii specia speciali lizate zate pentru pentru rezolvarea diverselor cerinţe în cel mai optim mod. Astfel, în cea ce priveşte preluarea şi procesarea imaginilor avem definite două toolbox-uri şi anume: Image Acquizition şi Image Processing. Acest mediu suportă date standard şi formate de imagine, incluzând JPEG, JPEG-2000, TIFF, PNG, HDF, HDF-EOS, FITS, Microsoft Excel, ASCII şi fişiere binare. De asemenea, acesta suportă formate de imagini imagini multibandă multibandă BIP şi BIL, precum cele utilizate utilizate de LANDSAT, de exemplu. Nivelul Nivelul jos de intrări/ieşiri şi funcţiile de mapare a memoriei oferă posibilitatea de a dezvolta rutine client pentru a opera cu orice format de date.
2.3.1. Image Acquizition Toolbox Image Acquizition Toolbox permite achiziţia videoclipurilor şi imaginilor direct în MATLAB şi Simulink de la unităţi hardware compatibile PC. Hardware-ul poate fi detectat automat şi configurat în conformitate cu cerinţele problemei, previzualizând achiziţia, după care are loc achiziţia achiziţia clipurilor clipurilor video şi imaginilor. imaginilor. Având suport pentru furnizori multiplii multiplii de hardware, hardware, poate folosi un domeniu larg de dispozitive de imagistică, de la camere web comune sau acaparatori industriali de frame-uri până la camere ştiinţifice performanţe care confruntă iluminatul slab, viteză ridicată, precum şi alte provocări.[4]
2.3.2. Image Processing Toolbox Softul Image Processing Toolbox oferă un set comprehensiv de algoritmi-referinţă standard şi unelte grafice pentru procesarea, analiza, vizualizarea şi dezvoltarea imaginilor. Acesta oferă capacitatea de a restaura imagini afectate de zgomot sau degradate, îmbunătăţirea imaginilor pentru creşterea inteligibitatii, extragerea de caracteristici, analizarea formelor şi texturilor şi înregistrarea a două imagini. Cele mai multe funcţii ale toolboxurilor sunt scrise în limbaj MATLAB deschis, oferind abilitatea inspectării algoritmilor, modificării codului sursă, şi creării propriilor funcţii client. Image Processing Toolbox suportă un set divers de tipuri de imagini, inclusive cu gama dinami dinamică că ridica ridicată, tă, rezoluţ rezoluţii ii de gigapi gigapixel xelii sau imagin imaginii tomogra tomografic fice. e. Unelte Uneltele le dinami dinamice ce permit permit explor explorarea area unei unei imagin imagini,i, examina examinarea rea unei regiun regiunii de pixeli pixeli,, ajusta ajustarea rea contras contrastul tului, ui, crearea crearea de contururi sau histograme şi manipularea regiunilor de interes. De asemenea, imaginile suportate sunt generate de o gamă largă de dispzitive, incluzând camere digitale, sateliţi sau senzori de aer, dispozitive de imagistică medicală, microscoape, telescoape şi alte dispozitive stintifice. Aceste imagini pot fi vizualizate, analizate şi procesate în mai multe tipuri de date, incluzând puncte flotante cu precizie singulară şi duală, şi întregi cu semn sau fără semn pe 8, 16 şi 32 de biţi. Împreună, cele două toolboxuri promovate de MATLAB, oferă un mediu complet pentru dezvoltarea aplicaţiilor cu imagini personalizate. [3]
2.3.3. Afişarea şi explorarea imaginilor Image Procesing Toolbox ramifică grafica MATLAB pentru a oferi capabilităţi de afişare personaliizata ale imaginilor. Se pot creea afişaje cu imagini mulltiple într-o singură fereastră, afişaje adnotate cu text şi grafice, şi crearea de afisaaje specializate precum histogramele, profilele şi conturarea subiectelor. Adiţi Adiţional onal funcţi funcţiil ilor or de afişaj afişaj,, toolbo toolboxul xul dezvol dezvoltă tă o gamă gamă de unelte unelte interac interacti tive ve pentru pentru explorarea imaginilor. Se pot obţine informaţiile de imagine, mărirea şi conturarea acesteia precum şi examinarea în detaliu a unei regiuni de pixeli. De asemenea, se poate manipula interactiv regiuni de interes precum punctele, liniile, pologoanele, elipsele şi formele neregulate sau se pot ajusta contrastele ori masura distanţele.
2.3.4. Procesarea şi postprocesarea imaginilor Acest toolbox oferă algoritmi referinta-standard pentru procesarea şi postprocesarea cerinţelor pentru rezolvarea frecvenţelor probleme de sistem, precum zgomotul, intervalul dinamic redus, optica defocalizată şi diferenţa între reprezentarea diferită a intrării respectiv ieşirii unui dispoziv. Algoritmii de detecţie a conturului permit determiarea marginilor unui obiect conţinut într-o imagine. Aceşti algoritmi includ metodele Sobel, Prewitt, Roberts, Canny şi Laplasian din Gaussian. Metoda Canny care este foarte performanţă poate determină contururi foarte slabe fără a fi influenţă de zgomot. Algorimii de segmentare a imaginilor determină regiunile de limitare dintr-o imagine. Există diverse abordări ale segmentării imaginilor, incluzând determinarea automată a unui prag, metode bazate pe contur, şi metode bazate pe morfologie precum transformarea cotiturilor, utillizata des pentru segmentarea obiectelor focalizate.[3]
2.3.5. Proiectarea şi simularea sistemelor fuzzy în MATLAB cu Fuzzy Logic Toolbox Fuzzy Logic Toolbox extinde mediul tehnic de calcul cu instrumente pentru proiectarea sistem sistemelo elorr bazate bazate pe logică logică fuzzy. fuzzy. Interf Interfaţa aţa grafică grafică prezin prezintă tă paşii paşii de urmat urmat în în proiect proiectare areaa sistemelor fuzzy. Sunt puse la dispoziţie funcţii pentru numeroase metode cu logică fuzzy comune, inclusiv gruparea fuzzy ori învăţarea neurofuzzy adaptivă. Toolboxul permite modelarea comportamentală a sistemelor logice complexe folosind reguli logice simple, iar apoi implementarea acestor reguli într-un sistem de inferenţă fuzzy. Acest toolbox poate fi folosit ca un motor de inferenţă de sine stătător. Alternativ, se pot folosi blocuri de inferenţă fuzzy în Simulink, iar simularea sistemului fuzzy se face folosind un model comprehensiv al întregului sistem dinamic.
2.3.6. Utilizarea Fuzzy Logic Toolbox Acest toolbox oferă interfeţe grafice ce permit dezvoltarea de sisteme fuzzy clasice şi moduri de recunoaştere. Folosind toolboxul se pot realiza sisteme de inferenţă fuzzy, sisteme de inferenţă neurofuzzy adaptive şi clasificări fuzzy. Suplimentar, acesta oferă un controller-bloc fuzzy care poate fi folosit în Simulink pentru modelarea şi simularea sistemelor fuzzy de control logic. Din Simulink se poate genera cod în limbajul de programare C pentru a fi folosit în aplicaţii imbricate ce include logică fuzzy.
2.3.7. Construirea unui sistem de inferenţă fuzzy Inferenţa fuzzy este o metodă de interpretare a vectorului de intrare, bazată pe reguli definite de utilizator, şi asignarea de valori vectorului de ieşire. Utilizând interfeţele grafice de editare şi afisre conţinute în Fuzzy Logic Toolbox, se poate defini setul de reguli, a funcţiilor membre şi analiza comportamentul unui sistem de inferenţă fuzzy. Următoarele interfeţe de editare şi afişare sunt oferite: • FIS Editor - afişează informaţii generale despre sistemul de inferenţă fuzzy
Figura 9: Editorul FIS • Membership Membership Function Editor (Editorul (Editorul Funcţiilor Funcţiilor Membre) Membre) - permite permite afişarea afişarea şi editarea editarea
funcţiilor membre asociate variabilelor de intrare şi de ieşire a fişierului .FIS
Figura 10: Editorul de funcţii membre • Rule Editor (Editorul Regulilor) – permite afişarea şi editarea de reguli fuzzyfolosind unul
din cele trei formate: sintaxa full-English, notaţie simbolică concisă, sau notaţie indexată. • Rule Viewer (Afişarea Regulilor) – permite observarea detaliată a comportamentului
unui fişier .FIS pentru a diagnostica dinamica unor reguli specifice său studia efectul modificării variabilelor de intrare. • Surface Viewer (Afişarea Sprafetelor) – generează o suprafaţă tridimensională a doua
variabile de intrare şi o ieşire a unui .FIS
Figura 11: Afişarea suprafeţelor
2.3.8. Modelarea utilizând logică fuzzy Fuzzy Logic Toolbox permite aplicarea tehnicilor de clasificare şi neurofuzzy pentru diverse mdele şi clasificarea comportamentelor sistemelor.
Inferenţa neurofuzzy adaptivă Utilizând Sistemul de Inferenţă Adaptivă Neurofuzzy (ANFIS) se pot forma funcţii membre prin prin instru instruire ireaa acesto acestora ra cu date date de intrare intrare/ie /ieşir şire, e, mai degrabă degrabă decât decât specif specificâ icându ndu-le -le manual manual.. Toolboxul foloseşte un algoritm de post-propagare singular sau în combinaţie cu metoda pătratelor mai mici, capabilizand sistemul fuzzy să înveţe pe parcurs de la date.
Clasificarea fuzzy Fuzzy Logic Toolbox Toolbox oferă suport pentru metoda de clasificare clasificare “fuzzy C-means” C-means” şi pentru clasificarea substractivă precum şi tehnici de modelare pentru clasificarea datelor.Fuzzy C-means este o metodă de clasificare a datelor în care fiecare obiect aparţine unei clase într-un anumit grad specificat de gradul de apartenenţa. Este o metodă care arăta cum să se grupeze obiectele ce populează un spaţiu multidimensional într-un număr specificat de clase diferite. Funcţia “fcm” din Fuzzy Logic Toolbox porneşte cu o estimare iniţială a centrelor de clase, menite să marcheze locaţia medie a fiecărei clase. De obicei, estimarea iniţială acentrelor este cel mai probabil incorectă. În plus, “fcm” atribuie (aleator) fiecărui obiect un grad de apartenenţa la fiecare clasă. Prin actualizarea iterativă a centrelor claselor şi a gradelo de apartenenţa a tuturor obiectelor “fcm” deplasează iterativ centrele claselor în locaţiile cele mai potrivite setului de date. Această iterare (optimizare) se bazează pe minimizarea unei funcţii obiectiv ce reprezintă suma distanţelor de la fiecare obiect la un centru de clasă, ponderat cu gradul de apartenenţa al acelui obiect la acea clasă. [7]
2.3.9. Defuzzificarea Operaţia de asignare a unei valori reale corespunzătoare unei funcţii de apartenenţa se numeşte defuzzificare, fiind necesară în numeroase aplicaţii în care rezultatele sunt fuzzy. În esenţă, defuzzificarea reprezintă procesul de transformare a unei mărimi fuzzy într-o mărime crisp. crisp. Ieşirea unui proces (sistem) (sistem) fuzzy poate fi - din punct de vedere logic - reuniunea a două sau mai multe funcţii de apartenenţa fuzzy, definite pe universul de discurs al variabilei de ieşire. De exemplu, putem presupune că ieşirea fuzzy a unui sistem este alcătuită din două părţi: prima parte de formă trapezoidală A1 şi a doua - de formă triunghiulară A2 . În general, general, ieşirea ieşirea fuzzy fuzzy A a unui process poate implică mai multe funcţii de apartenenţa fuzzy de diferite forme; în acest caz k
A=
U A . Corespunzător convenţiei adoptateexista mai multe metode de defuzzificare, alegerea i
i =1
metodei în aplicaţii bazându-se pe criterii care ţin de aprecierea rezultatelor obţinute în fiecare aplicaţie dată.
a) Metoda Metoda maximu maximului lui funcţi funcţiei ei de apartene apartenenţa nţa. Această metodă furnizează ca rezultat rezultat al ∗ ∗ defuzzifica defuzzificarii, rii, valoarea valoarea crisp x , pentru care ∀x ∈ X µ ( x ) ≥ µ ( x ) , ∀x ∈ X (Figura 12). Dacă funcţia de apartenenţa îşi atinge maximul într-un singur punct, valoarea reprezentativă a funcţiei de apartenenţa se consideră ca fiind valoarea variabilei ( x∗ ) pentru care se atinge maximul respectiv. c
c
Figura 12: Metoda maximului funcţiei de apartenenţa b) Metoda (abscisei) centrului de masă este una dintre cele mai utilizate metode de defuzzificare µ ( x ) ⋅ xdx ∫ −1 ∗ şi permite calculul valorii x (Figura 13) conform relaţiei: f ( µ ( x) ) = . µ ( x ) dx ∫ c
c
Figura 13: Metoda centrului de masă
c) Metoda mediei ponderate este aplicabilă pentru funcţii de apartenenţa simetrice, fiind prezentată în Figură 14 din care rezultă că valoarea defuzzificata se obţine prin ponderarea valorilor funcţiilor ∑ µ ( x) ⋅ x . de apartenenţa în punctele de maxim: f −1 ( µ ( x) ) = ∑ µ ( x) C
c
Figura 14: Metoda mediei ponderate d) Metoda mediei maximelor presupune calculul lui x∗ (Figura 15) unde: f −1 ( µ ( x) ) =
Figura 15: Metoda mediei maximelor
a+b
2
3. Proiectare şi rezultate rezultate experimentale Tema proiectului tratează un sistem de sortare bazat pe logică fuzzy. Aplicaţia a fost realizată în mediul de programare MATLAB, utilizând toolboxurile pentru achiziţie şi procesare de imagini, precum şi toolboxul dedicat logicii fuzzy. Etapele urmate pentru realizarea acestei teme au fost preluarea imaginii cu o cameră foto şi încărcarea ei în matlab, extragerea caracteristicilor obiectului (Culoare, Aspect, Dimensiune), realizarea unui sistem decizional cu logică fuzzy şi introducerea caracteristicilor obţinute anterior şi clasificarea obiectului pe baza caracteristicilor extrase utilizând algoritmul de clasificare fuzzy. De asemenea, de menţionat ca obiectele folosite în experimentare sunt fructe, iar pozele au fost realizate folosind un fundal negru şi o distanţă standard de aproximativ 90 cm.
3.1. Extragerea caracteristicilor obiectelor În vederea extragerii caracteristicilor obiectelor studiate trebuie avut în considerare că în cazul fiecărui obiect, principalul impediment în atingerea scopului dorit a fost reprezentat de umbre care, în lipsa unui algoritm eficient de eliminare a umbrelor influenţează dramatic rezultatele finale, finale, depărtându-le de realitate.
3.1.1. Achiziţia imaginilor În cazul în care achiziţia nu se face în timp real, de la o cameră web spre exemplu, încărcarea imaginilor imaginilor în Matlab Matlab se realizează relativ simplu simplu prin intermediul intermediul funcţiei funcţiei “imread”. În fragmentul fragmentul de cod afişat mai jos, partea comentată, reprezintă implementarea modului de achiziţie a unor imagini în timp real de la dispozitive precum camere web sau alt tip de camere, asupra cărora mediul mediul de dezvoltare dezvoltare integra integratt (IDE) Matlab, Matlab, oferă compatibili compatibilitate. tate. Funcţia Funcţia “videoinput “videoinput”” realizează realizează achiziţia de la dispozitivul respectiv în funcţie de anumiţi parametrii şi anume: (ADAPTORNAME, DEVICEID, FORMAT), unde primul parametru reprezintă un şir de caractere text ce indică numele adaptorului folosit pentru comunicarea cu dispozitivul, al doilea parametru reprezintă o valoare numerică scalară ce identifică un anumit dispozitiv disponibil prin adaptorul specificat, iar cel din urmă este un şir de caractere ce specifică un format video particular suportat de către dispozitiv sau intreaga cale de directoare de configurare a dispozitivului. Funcţia “preview” cu un singur parametru realizează o fereastră de previzualizare video care afisaza filmări în timp real pentru dispozitivul de achiziţie. În final, funcţia “getsnapshot” returnează, imediat, un singur cadru al imaginii primite de la dispozitivul de achiziţie. Secvenţa “pause” implică o procedură de oprire a funcţiei în derulare şi aşteptarea apăsării unei taste de către utilizator pentru reluarea acesteia. function [img] = achizitie() % vidobj = videoinput('winvideo', 1, 'RGB24_640x480'); % preview(vidobj); % pause; % img = getsnapshot(vidobj); img = imread('cireasa.jpg' imread( 'cireasa.jpg'); );
3.1.2. Algoritmul de detecţie a conturului Imaginile preluate cu aparatul foto sunt imagini color, astfel ele vor fi prelucrate în paleta de culori RGB. Reprezentarea primară a imaginilor color se realizează în spaţiul (R,G,B) (spaţiu numit al componentelor primare de culoare: roşu, verde şi albastru, prin a căror combinare aditivă ponderată putem obţine orice culoare din spectru). Acest model este văzut că o suprapunere de trei planuri, planul Roşu, planul Verde şi planul Albastru, fiecare dintre cele trei planuri conţinând un pixel din culoarea respectivă ce defineşte o anumită intensitate a nuanţei. Intervalul de valori pe care sunt definiţi pixelii este [0,255]. Prin combinarea acestor planuri se obţine orice culoare posibilă. Imaginea utilizată în acest algoritm este imaginea originală, realizată cu aparatul foto. Această imagine trebuie transformată în nivele de gri pentru a fi posibilă aplelarea funcţiei “edge”. Observăm în script definirea unui prag, returnat de funcţia “edge”, funcţie ce aplică o aproximare de tip “roberts” asupra imaginii în nivele de gri. Metoda “roberts” returneaza contururile acelor puncte din imagine unde gradientul este maxim. Ulterior, se setează un factor utilizat pentru detectarea posibilelor contururi. Valoarea acestuia a fost determinată experimental, astfel încât să fie îndeplinite două cerinţe de baza privitoare la acest aspect şi anume: acest factor trebuie să aibe o valoare suficient de mică pentru a menţine timpi de rulare a algoritmului cât mai scurţi posibili, iar pe de altă parte valoarea lui trebuie să fie suficient de mare pentru a începe realizarea detecţiei contururilor de la cele mai fine detalii întâlnite în imaginea în nivele de gri. Ulterior se vor iniţializa două variabile: variabile: “arie”, “arie”, care în urma incrementării incrementării va stabili stabili existenta obiectului obiectului prin comparare cu cea dea două variabilă, denumită generic “prag”, stabilită astfel încât orice valoare a primei variabile care depăşeşte pragul să fie considerată obiect. În cadrul buclei while se aplică întâi funcţia edge ca o variabilă de trei parametri ce reprezintă imaginea pe care se aplică funcţia, tipul de aproximare folosit în determinarea conturului şi pragul returnat mai sus de aceeaşi funcţie. Această funcţie ignoră toate pragurile mai mari decât cel setat, iar în cazul în care nu avem definit un prag, sau valoarea pragului este nedeterminată, funcţia allege un prag automat Figura 16.
Figura 16: Rezultatul obţinut în urma rulării funcţiei “edge” Mai departe am definit două elementa structurale “se90” şi “se0” de forma unei linii verticale respective orizontale de trei elemente. Aceste două elemente reprezintă parametrii ai funcţiei de dilatare a imaginii. Primul parametru al acestei funcţii este imaginea rezultată anterior prin aplicarea funcţiei “edge”.Funcţia “imdilate” parcurge intraga imagine şi verifică valoarea fiecărui pixel. În cazul pixelilor negrii (valoare 0) nu are loc nici o schimbare, deoarece aceşti pixeli
sunt caracteristici fundalului, însă în cazul întâlnirii unui pixel alb, acestuia îi va fi aplicat elementul structural definit mai sus, rezultând o dilatare a conturului Figura 17.
Figura 17: Rezultatul obţinut în urma rulării funcţiei “imdilate” După terminarea procesului de dilatare a imaginii, urmează cel de umplere a golurilor, realizat prin utilizarea funcţiei “imfill”. Această funcţie are definiţi doi parametrii, şi anume: primul reprezintă reprezintă imaginea de intrare, intrare, mai precis imaginea imaginea dilatată, dilatată, iar cel deal doilea doilea parametru parametru notat”holes” este unul predefinit în Matlab şi reprezintă un set de pixeli de fundal care nu pot fi atinşi prin umplarea fundalului cuprins în conturul imaginii.
Figura 18: Rezultatul obţinut în urma rulării funcţiei “imfill” În continuare am definit un nou element structural în formă de diamant plat denumit “seD”. Al doilea parametru al funcţiei “strel”, care este un scalar numeric reprezintă distanţa dintre originea elementului structural şi colţurile diamantului. Acest element structural este aplicat ca parametru în cadrul funcţiei de erodare a conturului “imerode”. Această funcţie realizează erodarea, în urma parcurgerii întregii imagini, aplicând elementul structural pentru fiecare pixel alb care nu este încadrat de alţi pixeli albi, şi este aplicată de două ori. În finalul buclei am realizat o eliminare a obiectelor ce au dimensiuni mai mici de 90 de pixeli prin intermediul funcţiei “bwareaopen”, am implementat funcţia de incrementare a ariei şi am
decrementat fudgeFactor-ul, în aczul în care nu este îndeplinită condiţia de ieşire din bucla Figura 19.
Figura 19: Rezultatul final al aplicarii algoritmului function [contur_img] = contur(img) gray_img = rgb2gray(img); % se transforma in tonuri de gri imaginea % originala pentru a apela functia "edge" [junk threshold] = edge(gray_img, 'roberts' 'roberts'); );%returneaza %returneaza pragul folosit % apoi in detectia % conturului fudgeFactor = 2; % factor folosit pentru o detectie cat mai precisa % a contururilor, acesta influenteaza dimensiunea % obiectelor conturate. Cu cat acesta este mai mare cu % atat numarul obiectelor conturate va fi mai mare arie = 0; % variabila folosita in stabilirea existentei % obiectului [r,c,d] = size(gray_img); % returneaza dimensiunile imaginii:r-randuri % c-coloane % d-adancime prag = (r*c)/5; % se stabileste un prag peste care interiorul % conturului este considerat obiect while arie