Documente Academic
Documente Profesional
Documente Cultură
Logica Fuzzy
Logica Fuzzy
2010
Titlul temei: Sistem de sortare bazat pe logic fuzzy Enunul proiectului de diplom: Sistem de sortare bazat pe logic fuzzy Tipul proiectului: dezvoltare i implementare de software Cerine impuse: clasificarea unor obiecte cu caracteristici asemntoare, preluarea imaginii unui obiect, salvarea lui n format .jpg, preluarea imaginii n Matlab, extragerea caracteristicilor obiectului (culoare, form, dimensiune) utiliznd tehnici fuzzy, clasificarea obiectului pe baza caracteristicilor extrase utiliznd SLF/ algoritmi de clasificare fuzzy/ reea neuronal.
Locul de execuie: Laboratorul de Sisteme cu Logic Nuanat, sala 329, Str: George Bariiu 26-28 Data emiterii temei: 20 octombrie 2009 Termen de predare: 24 iunie 2010 EF CATEDR, Prof. dr. ing. Lelia FETIL ABSOLVENT, Teodor Florin CIORTEA
Declaraia autorului
Subsemnatul declar prin prezena c ideile, partea de proiectare i experimental, rezultatele, analizele i concluziile cuprinse n aceast lucrare constituie efortul meu propriu, mai puin acele elemente care nu-mi aparin, pe care le indic i le recunosc c atare. Declar, de asemenea, c dup tiina mea, lucrarea n aceast form este original i nu a mai fost niciodat prezentat sau depus n alte locuri sau altor instituii dect cele indicate n mod expres de ctre mine. n calitate de autor, cedez toate drepturile de utilizare i modificare a lucrrii de diplom ctre Universitatea Tehnic din Cluj-Napoca.
1. Numele i prenumele studentului: Teodor Florin CIORTEA 2. Numele i prenumele conductorului: Prof. dr. ing. Gabriel OLTEAN SINTEZA PROIECTULUI DE DIPLOM Enunul Temei: Sistem de sortare bazat pe logic fuzzy
Sistemele de sortare cu logic fuzzy reprezint o soluie modern n realizarea sistemelor decizionale, bazate pe diverse trsturi asemntoare 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 seleciei (luarea deciziei). Intrarea acestui sistem const n imagini color ale obiectelor de clasificat. Aplicaia beneficiaz de o implementare pe dou nivele. Primul nivel eate reprezentat de algoritmii de extragere a celor trei caracteristici (aspect fizic, culoare, mrime), realizai 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 intrri, corespunztoare trsturilor obiectelor i dou ieiri, ce semnific tipul respectiv starea obiectelor. Ulterior, este realizat legatura ntre sistemul de sortare i parametrii de intrare rezultai n urma prelucrrii imaginilor cu algoritmii corespunztori. Deoarece, sistemul n discuie este unul decizional i nu de control am utilizat ca metod de defuzzificare metoda mediei maximelor (MOM). Valorile returnate la ieire n urma defuzzificarii, sunt corelate cu variabilele lingvistice corespunztoare n vederea afirii rezultatelor finale, rezultate care dovedesc corectitudinea proiectrii i implementrii ntregului proces.
CURRICULUM VITAE
Name: Teodor Florin Ciortea th Date of birth: 14 of May, 1987 Studies: 2002 2006 : Emil Racovia Naional 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: English French Conversation: Well 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: ciorteaflorin@yahoo.com Subsemnatul Teodor Florin Ciortea, prin prezena declare c datele din acest Curriculum Vitae pot fi folosite de ctre Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei, din cadrul Universitii Tehnice din Cluj-Napoca n scopuri de promovare i orientare n cariera profesional, n urmtoarele condiii: - fr consultare prealabil dup o consultare prealabil cu subsemnatul 5
nu sunt de accord
Planificarea activitii
Cuprins
Studiu bibliografic................................................................................................................................8 2. Fundamentare teoretica...................................................................................................................10 2.1. Metodologia propusa................................................................................................................11 2.2. Logica Fuzzy............................................................................................................................12 2.2.1. Mulimile fuzzy.................................................................................................................12 2.2.2. Variabile lingvistice..........................................................................................................14 2.2.3. Grade de adevr................................................................................................................14 2.2.4. Aplicarea valorilor de adevr ...........................................................................................14 2.2.5. Raionament fuzzy............................................................................................................15 2.2.6. Proprietile mulimilor fuzzy...........................................................................................17 6
2.2.7. Sisteme cu logic fuzzy....................................................................................................18 2.2.8. Sisteme cu locica fuzzy Takagi-Sugeno...........................................................................19 2.2.9. Sistemele cu logic fuzzy Mamdani..................................................................................20 2.3. Mediul de programare MATLAB............................................................................................21 2.3.1. Image Acquizition Toolbox...............................................................................................22 2.3.2. Image Processing Toolbox................................................................................................22 2.3.3. Afiarea i explorarea imaginilor......................................................................................23 2.3.4. Procesarea i postprocesarea imaginilor............................................................................23 2.3.5. Proiectarea i simularea sistemelor fuzzy n MATLAB cu Fuzzy Logic Toolbox...........23 2.3.6. Utilizarea Fuzzy Logic Toolbox........................................................................................24 2.3.7. Construirea unui sistem de inferen fuzzy.......................................................................24 2.3.8. Modelarea utiliznd logic fuzzy......................................................................................26 2.3.9. Defuzzificarea...................................................................................................................26 3. Proiectare i rezultate experimentale...............................................................................................29 3.1. Extragerea caracteristicilor obiectelor......................................................................................29 3.1.1. Achiziia imaginilor ..........................................................................................................29 3.1.2. Algoritmul de detecie a conturului...................................................................................30 3.1.3. Algoritmul de eliminare al umbrelor.................................................................................33 3.1.4. Algoritmul de detecie a formei.........................................................................................37 3.1.5. Algoritmul de determinare a dimensiunii.........................................................................40 3.1.6. Algoritmul de detecie a culorii........................................................................................41 3.1.7. Algoritmul de returnare a obiectelor i a strii acestora ..................................................42 3.1.8. Funcia principal.............................................................................................................44 3.2. Proiectarea Sistemului cu Logic Fuzzy n determinarea tipului fructului i strii acestuia. . .45 3.2.1. Intrri.................................................................................................................................46 3.2.1.1. Definirea mulimilor fuzzy pentru variabila de intrare aspect.......................................46 3.2.1.2. Definirea mulimilor fuzzy pentru variabila de intrare dimensiune...............................47 3.2.1.3. Definirea mulimilor fuzzy pentru variabila de intrare culoare......................................48 3.2.2. Ieirile................................................................................................................................49 3.2.2.1. Definirea mulimilor fuzzy pentru variabila de ieire tipul fructului.............................49 3.2.2.2. Definirea mulimilor fuzzy pentru variabila de ieire a strii fructului..........................50 3.2.3. Definirea setului de reguli pentru SLF..............................................................................50 3.2.4. Funcionarea sistemului cu logic fuzzy...........................................................................52 3.2.5. Rezultatele proiectrii sistemului de sortare.....................................................................54 3.2.6. Defuzzificarea..................................................................................................................55 Concluzii.............................................................................................................................................56 5. Bibliografie......................................................................................................................................57
Figura 11: Afiarea suprafeelor.....................................................25 Figura 12: Metoda maximului funciei de apartenena.......................................................................27 Figura 13: Metoda centrului de mas..................................................................................................27 Figura 14: Metoda mediei ponderate...................................................................................................28 Figura 15: Metoda mediei maximelor.................................................................................................28 Figura 16: Rezultatul obinut n urma rulrii funciei edge..........................30 Figura 17: Rezultatul obinut n urma rulrii funciei imdilate.........................31 Figura 18: Rezultatul obinut n urma rulrii funciei 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 fr umbre pe fundal negru (rezultat n urma aplicrii 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 fr umbre pe fundal alb (rezultat n urma aplicrii algoritmului de eliminare a umbrelor cu prag 90)...........................................................................................................................36 Figura 24: Imaginea fr umbre pe fundal alb (rezultat n urma.......................................................37 Figura 25: Obinerea 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: Mulimile fuzzy peste universul discuiei variabilei de intrare Aspect..................47 Figura 31: Mulimile fuzzy peste universul discuiei variabilei de intrare Dimensiune.....................48 Figura 32: Mulimile fuzzy initiale peste universul discuiei variabilei de intrare Culoare................49 Figura 33: Mulimile fuzzy finale peste universul discuiei variabilei de intrare Culoare..................49 Figura 34: Mulimile fuzzy peste universul discuiei variabilei de iesire TipFruct............................50 Figura 35: Mulimile fuzzy peste universul discuiei variabilei de iesire StareFruct..........................50 Figura 36: Fereastra Rule Viewer.................................................53 Figura 37: Ieirea TipFruct n funcie de ntrrile Aspect i Dimensiune...................54 Figura 38: Ieirea StareFruct n funcie de intrrile Dimensiune i Culoare..................54
iografic
Sistemele de sortare implementate n diferite moduri, prin utilizarea a diferii algoritmi, unii deja consacrai, precum Bubblesort (sortare prin metoda bulelor) sau Mergesort (sortare prin interclasare), sunt cu succes folosii 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 seleciei obiectelor coninute n imaginile respective pe baza unor trsturi asemntoare (aspect fizic, dimensiune, culoare). Teoria mulimilor fuzzy a fost dezvoltat ncepnd din anii 60, ca un rspuns la insuficienta consisten a raionamentelor deterministe de tipul DA sau NU, ncercndu-se formalizarea unor raionamente de tipul Mai mult sau mai puin. n logica clasic, propoziiile pot fi adevrate sau false, neexistnd posibilitatea unor valori intermediare. n cazul abordrii unor modele concrete, din lumea real, s-a constatat apariia unor 8
situaii 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 informaii care nu sunt cunoscute sau furnizate complet i, de multe ori, nu sunt nelese exact. Astfel a aprut ca necesar utilizarea mulimilor fuzzy i a logicii rezultat din utulizarea mulimilor fuzzy n locul mulimilor clasice, crisp. Teoria mulimilor fuzzy a fost dezvoltat de Lotfi Zadeh care a observat ca modelele matematice i diferite modele clasice n fundamentarea procesului decisional prezint imperfeciuni i sunt dificil de aplicat la realitatea complex a factorilor economici. Pe msur ce crete complexitatea unui process economic se poate ajunge la un punct critic, de la care precizia i semnificaia afirmaiilor referitoare la comportamentul procesului sunt incompatibile. Principiul incompatibilitii definit de Zadeh converge spre afirmaii 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 ncadrndu-se ntr-un anumit model decizional. Funcie de volumul, structura i calitatea informaiilor de care se beneficiaz, modelele decizionale pot fi: deterministe, centrate pe informaii 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, difereniate n raport de tipologia situaiilor decizionale implicate. Modelele bazate pe teoria mulimilor vagi, n care informaiile transmise conducerii pentru fundamentarea deciziilor sunt cu grad ridicat de completitudine, dar mai puin precise, modele probabiliste, utilizate n situaia existenei unor informaii precise, dar mai puin complexe, precum i modelele deterministe sunt, n opinia noastr, cele mai semnificative. Metodele i tehnicile decizionale se pot grupa, n funcie de tipul situaiilor decizionale implicate, n trei categrii: - metode i tehnici de optimizare a deciziilor n condiii de certitudine: ELECTRE, metoda utilitii globale, metoda activ, algoritmul lui Deutch-Martin, tabelul decizional, simularea decizional; - metode i tehnici de optimizare a deciziilor n condiii de incertitudine: tehnica optimist, tehnica pesimist (A.Wald), tehnica optimalitatii (C.Hurwicz), tehnica proporionalitii (Bayes-Laplace), tehnica minimizrii regretelor (L.Savage) - metode i tehnici de optimizare a deciziilor n condiii de risc: arborele decizional, metoda speranei matematice. Sistemului decizional implementat n aceast aplicaie se nscrie n prima categorie deoarece valorile setului de intrare reprezint certitudini, n funcie de care, n urma operaiilor fuzzy, a implicaiei, a operaiei de agregare i a celei de defuzzificare, rezult la ieire o singur valoare tranant. Iniial pentru ieiri tranante n cazul sistemelor decizionale se folosesc sisteme fuzzy de tip TakagiSugeno, a cror ieire reprezint un singur punct cu grad de apartenena 100% (singleton), ns n cazul de fa s-a definit un sistem fuzzy de tip Mamdani a crei ieire este reprezentat tot de mulimi fuzzy fiecare cu un anumit grad de activare, n final aplicndu-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 privete partea de procesare de imagini, cel mai mare impediment ntlnit este reprezentat de prezena umbrelor n imaginile realizate i realizarea conturului. n ceea ce privete eliminarea umbrelor , problema a fost rezolvat prin implementarea unei idei proprii, ce presupune setarea unui prag, realizare unei diferene, n modul, ntre valorile pixelilor suprapui corespunztori celor trei planuri luate dou cte 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. 9
n cazul realizrii conturului i determinrii, formei Matlab Image Processing Toolbox ofer doi algoritmi deosebit de eficieni n acest sens, care vor fi explicai n detaliu n seciunile corespunztoare. 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 detecie a conturului. Fiecrui coeficient al acestei transformate i corespunde un pixel din imagine. Aceti coeficieni sunt reprezentai ntr-o matrice n care elementele de deasupra diagonalei secundare corespund cu cele mai nalte frecvene ntlnite pe imagine. Aceste frecvene corespund contururilor care por fi determinate efectuaind o serializare a matricelor urmat de o normalizare. De asemenea aceast metod este foarte folosit n cazul marcrilor transparente ale imaginilor ce presupune includerea unui mesaj ascuns n contururile ntlnite ntr-o imagine.
2. Fundamentare teoretica
Logica fuzzy a devenit o soluie foarte promitoare pentru realizarea sistemelor decizionale. Tema acestei lucrri propune proiectarea eficient a unui sistem de sortare implementat pe baza logicii fuzzy. Pentru modelarea sistemului de clasificare i a algoritmilor de extragere a proprietilor obiectelor s-a folosit mediul de dezvoltare integrat Matlab, i mai exact Image Processing Toolbox, i Fuzzy Logic Toolbox.
10
Figura 1: Schem logic pentru metodologia propus Punctul de plecare n implementarea unui astfel de sistem de clasificare este reprezentat de specificaiile sistemului. Figur de mai sus reprezint schem logic a metodologiei propuse. Dup ce au fost fcute specificaiile sistemului de sortare urmeaz proiectarea unui model decizional cu logic fuzzy n Matlab FIS Editor. Acest model este analizat, testat i ajustat pn cnd rezultatele experimentale corespund cu performanele cerute.
11
Figura 2: Ilustrarea mulimilor TRUE i FALSE n logica boolean (a) i n logica fuzzy (b) Logica Fuzzy a luat natere 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 cmpuri, de la teoria controlului la inteligen artificial, aceasta rmne un subiect controversat n cele mai multe statistici, care prefer logica boolean, sau de ctre unii ingineri de control, care prefer lucrul cu dou valori logice. Logica fuzzy poate fi folosit atunci cnd nu exist o delimitare clar ntre mulimile ce reprezint valorile unei mrimi sau proprieti, sau evenimentele ori strile posibile ale unei variabile aleatoare.
A = { A ( x) / x} unde A ( x) reprezint funcia caracteristic sau funcia de apartenena a lui x la mulimea A. Semnul /" este folosit doar pentru a delimita valoarea real x de valoarea funciei de apartenena A ( x) . Funtia de apartenena se definete pe intervalul de valori posibile ale lui x cu valori reale, n intervalul [0,1]: A ( x) [0; 1]. Dac A conine doar 0 i 1, atunci A nu mai este o mulime fuzzy, ci una caracteristic logicii clasice. Dac funcia de apartenena este discret, atunci mulimea A se scrie ca:
A = 1 / x1 + 2 / x2 + ... + n / xn =
i =1
/ xi
Dac funcia de apartenena este o funcie continu, atunci mulimea fuzzy A se scrie ca: A = A ( x) / x
X
unde prin integrare se nelege totalitatea punctelor A ( x) / x . Pentru o mai bun nelegere a mulimilor fuzzy definim cinci concepte: 1. Variabil lingvistic x = : o proprietate, un atribut al obiectului (obiectelor) n discuie 2. Valoare lingvistic A = : un adverb, adjectiv asociatvariabilei lingvistice, care d i numele mulimii fuzzy asociate 3. Universul discuiei X = : o mulime clasic, tranant, pe care se definesc mulimile fuzzy 4. Gradul de apartenena = : arat masura n care un element aparine unei mulimi fuzzy,
[0;1]
A ( x) : X [0;1]
Astfel, mulimea fuzzy A este complet determinat de mulimea perechilor ordonate:
A = {( x, A ( x )) | x X }
Funciile de apartenena pot fi de mai multe tipuri. De exemplu, n toolboxul de Fuzzy Logic din Matlab sunt implementate 11 tipuri de mulimi 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 mulime fuzzy este mulimea de tip singleton a crei funcie de apartenena are valoarea 1 doar ntr-un punct particular i valoarea 0 n rest. [1]
13
O aplicaie de baz ar putea caracteriza gamele de variaie pentru o variabil continu. De exemplu, msurarea temperaturii pentru mpiedicarea blocrii frnelor unui automobil poate avea mai multe funcii membre separate, definind intervale de temperatur particulare necesare pentru controlul corespunztor al frnelor. Fiecare funcie indic aceeai valoare a temperaturii ctre o valoare de adevr n intervalul [0;1].
n aceast imagine, nelesul expresiilor RECE, CALD, FIERBINTE este reprezentat de funcii care acoper scara de temperatura. Un punct coninut n acest interval are trei valori de adevr- una pentru fiecare din aceste trei funcii. Linia vertical din imagine reprezint o anumit temperature pe care cele trei sgei (valori de adevr) de ecartament o indic. Din moment ce sageata roie pointeaza spre zero, acesta temperatur poate fi interpretat ca fiind nu fierbinte. Sageata portocalie (care indic spre 0,2) descrie aceast temperatur ca fiind uor cald, n timp ce sageata albastr (care pointeaza la 0,8) descrie temperatura ca fiind destul de rece.
este
unde A i B sunt mulimile fuzzy A i B modificate. Aflarea concluziei B se realizeaz n urma procesului de inferen (deducie) fuzzy, care matematic se poate rezolva folosind regula compoziional de inferen propus de Zadeh:
B = A o ( A unde:
B)
simbolizeaz operaia de implicaie (evaluarea regulii fuzzy); o simbolizeaz operaia de compunere a celor dou propoziii fuzzy din MPG. Folosind funciile de apartenen avem:
B ( y ) = A ( x) o A B ( x, y )
Trebuie stabilii operatorii pentru cele dou operaii: implicaie i compunere. Pentru implicaie cei mai folosii operatori sunt: min (Mamdani)
A B ( x, y ) = min( A ( x ), B ( y ))
A B ( x, y ) = A ( x ) B ( y ) produs (Larsen) Pentru compunere cel mai des se folosete compunerea max-min: B ( y ) = max min{ A ( x), A B ( x, y )} , y V x X unde X i V sunt universurile discuiei pentru cele dou variabile, x respectiv y . Folosirea compunerii max-min mpreun cu implicaiile min sau produs conduc la cele mai folosite mecanisme de inferen compoziional: Inferena compoziional max-min, sau Mamdani B ( y ) = max min{ A ( x), B ( y ))} , y V x X
Inferena compoziional max-produs, sau Larsen
B ( y ) = max min{ A ( x), A ( x) B ( y )} , y V x X A * este o mulime fuzzy rezultat n urma unui proces de fuzzificare (ce se va discuta n paragraful urmtor) i de cele mai multe ori este o mulime fuzzy singleton. Inferena compoziional este ilustrat n Figura 4, pentru trei tipuri de inferene: Mamdani, Larsen i TakagiSugeno. Avnd n vedere cazul particular de mulime fuzzy singleton pentru A *, inferena compoziional max-min se reduce la formula: B ( y ) = min{ A ( x ), min( A ( x), B ( y ))} , y V B ( y ) = min{min( A ( x ), A ( x), B ( y )} ,
y V n cazul n care mulimea fuzzy B este de tip Takagi-Sugeno de ordin zero (mulime fuzzy 16
singleton) indiferent de operatorul folosit pentru operaia de compunere, rezult inferena compoziional Takagi-Sugeno.[1]
A = {x | A ( x ) } sunt convexe pentru orice [0;1]. Punctul crossover. Pentru o mulime A punctul crossover este elementul pentru care funcia de apartenena are valoarea 0,5. Valori singulare fuzzy. O valoare singular (engl. singleton) este o mulime fuzzy care are un grad de apartenena pentru o singur valoare. Fie A o valoare singular pentru un interval X , x X , atunci A poate fi scris ca: A = / x Folosind aceast definiie, o mulime fuzzy poate fi considerat o reuniune de valori singulare.
n Figura 5. este prezentat structura unui SLF. Specific acestei structuri este lipsa fluxului informaional de la Baza de cunotine, att nspre interfaa de Fuzzificare ct i nspre interfaa de Defuzzificare
flux informaion al
Baza de cunotine Mulimi fuzzy de intrare (A) Baza de reguli fuzzy Mulimi fuzzy de ieire (B)
mulimi i reguli fuzzy x* Fuzzificare A* Inferen B* Valori tranante de intrare y* Defuzzificar e Valori tranan te de ieire
flux de calcul
18
Figura 5: Schema bloc a unui sistem cu logic fuzzy n structura SLF sunt cuprinse modulele: Fuzzificare =: interfaa ce transform valorile tranante ale variabilelor de intrare ( x *) n mulimi fuzzy de tip singleton ( A *); Baza de cunotine =: furnizeaz modulului Inferen informaiile necesare: - mulimile fuzzy pentru variabilele de intrare ( A ); - mulimile fuzzy pentru variabilele de ieire ( B ); - baza de reguli fuzzy. Inferen =: blocul care determin valorile fuzzy ale variabilelor de ieire ( B *) folosind inferena fuzzy; Defuzzificare =: interfaa ce transform valorile fuzzy ale variabilelor de ieire n valori tranante ( y *).
19
20
interacioneze cu motoarele de calcul simbolic gen Maple. Un pachet adiional, Simulink, ofer posibilitatea de a realiza simulri ale sistemelor dinamice i mbarcate utiliznd modele matematice. MATLAB e utilizat pe larg n industrie, n universiti i e disponibil cross-platform, sub diverse sisteme de operare: Windows, GNU/Linux, UNIX i Mac OS. MATLAB pune la dispoziia utilizatorului un set de Toolbox-uri specializate pentru rezolvarea diverselor cerine n cel mai optim mod. Astfel, n cea ce privete 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, incluznd JPEG, JPEG-2000, TIFF, PNG, HDF, HDF-EOS, FITS, Microsoft Excel, ASCII i fiiere binare. De asemenea, acesta suport formate de imagini multiband BIP i BIL, precum cele utilizate de LANDSAT, de exemplu. Nivelul jos de intrri/ieiri i funciile de mapare a memoriei ofer posibilitatea de a dezvolta rutine client pentru a opera cu orice format de date.
22
Figura 9: Editorul FIS Membership Function Editor (Editorul Funciilor Membre) - permite afiarea i editarea funciilor membre asociate variabilelor de intrare i de ieire a fiierului .FIS 24
Figura 10: Editorul de funcii membre Rule Editor (Editorul Regulilor) permite afiarea i editarea de reguli fuzzyfolosind unul din cele trei formate: sintaxa full-English, notaie simbolic concis, sau notaie indexat. Rule Viewer (Afiarea Regulilor) permite observarea detaliat a comportamentului unui fiier .FIS pentru a diagnostica dinamica unor reguli specifice su studia efectul modificrii variabilelor de intrare. Surface Viewer (Afiarea Sprafetelor) genereaz o suprafa tridimensional a doua variabile de intrare i o ieire a unui .FIS
2.3.9. Defuzzificarea
Operaia de asignare a unei valori reale corespunztoare unei funcii de apartenena se numete defuzzificare, fiind necesar n numeroase aplicaii n care rezultatele sunt fuzzy. n esen, defuzzificarea reprezint procesul de transformare a unei mrimi fuzzy ntr-o mrime crisp. Ieirea unui proces (sistem) fuzzy poate fi - din punct de vedere logic - reuniunea a dou sau mai multe funcii de apartenena fuzzy, definite pe universul de discurs al variabilei de ieire. De exemplu, putem presupune c ieirea fuzzy a unui sistem este alctuit din dou pri: prima parte de form trapezoidal A1 i a doua - de form triunghiular A2 . n general, ieirea fuzzy A a unui process poate implic mai multe funcii de apartenena fuzzy de diferite forme; n acest caz A = U Ai . Corespunztor conveniei adoptateexista mai multe metode de defuzzificare, alegerea
i =1 k
metodei n aplicaii bazndu-se pe criterii care in de aprecierea rezultatelor obinute n fiecare aplicaie dat. a) Metoda maximului funciei de apartenena. Aceast metod furnizeaz ca rezultat al defuzzificarii, valoarea crisp x , pentru care x X c ( x ) c ( x) , x X (Figura 12). Dac funcia de apartenena i atinge maximul ntr-un singur punct, valoarea reprezentativ a funciei de apartenena se consider ca fiind valoarea variabilei ( x ) pentru care se atinge maximul respectiv.
26
Figura 12: Metoda maximului funciei de apartenena b) Metoda (abscisei) centrului de mas este una dintre cele mai utilizate metode de defuzzificare c ( x) xdx . 1 i permite calculul valorii x (Figura 13) conform relaiei: f ( ( x )) = c ( x)dx
27
c) Metoda mediei ponderate este aplicabil pentru funcii de apartenena simetrice, fiind prezentat n Figur 14 din care rezult c valoarea defuzzificata se obine prin ponderarea valorilor funciilor C ( x ) x . 1 de apartenena n punctele de maxim: f ( ( x )) = c ( x )
28
29
Figura 16: Rezultatul obinut n urma rulrii funciei 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 funciei de dilatare a imaginii. Primul parametru al acestei funcii este imaginea rezultat anterior prin aplicarea funciei edge.Funcia imdilate parcurge intraga imagine i verific valoarea fiecrui pixel. n cazul pixelilor negrii (valoare 0) nu are loc nici o schimbare, deoarece aceti pixeli
30
sunt caracteristici fundalului, ns n cazul ntlnirii unui pixel alb, acestuia i va fi aplicat elementul structural definit mai sus, rezultnd o dilatare a conturului Figura 17.
Figura 17: Rezultatul obinut n urma rulrii funciei imdilate Dup terminarea procesului de dilatare a imaginii, urmeaz cel de umplere a golurilor, realizat prin utilizarea funciei imfill. Aceast funcie are definii doi parametrii, i anume: primul reprezint imaginea de intrare, mai precis imaginea dilatat, iar cel deal doilea parametru notatholes este unul predefinit n Matlab i reprezint un set de pixeli de fundal care nu pot fi atini prin umplarea fundalului cuprins n conturul imaginii.
Figura 18: Rezultatul obinut n urma rulrii funciei imfill n continuare am definit un nou element structural n form de diamant plat denumit seD. Al doilea parametru al funciei strel, care este un scalar numeric reprezint distana dintre originea elementului structural i colurile diamantului. Acest element structural este aplicat ca parametru n cadrul funciei de erodare a conturului imerode. Aceast funcie realizeaz erodarea, n urma parcurgerii ntregii imagini, aplicnd elementul structural pentru fiecare pixel alb care nu este ncadrat de ali 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 funciei bwareaopen, am implementat funcia de incrementare a ariei i am 31
decrementat fudgeFactor-ul, n aczul n care nu este ndeplinit condiia de ieire din bucla Figura 19.
BWs = edge(gray_img,'roberts', threshold * fudgeFactor); % returneaza contururile imaginii folosind aproximarea % de tip roberts. Contururile se gasesc in punctele % unde gradientul imaginii este maxim se90 = strel('line', 3, 90); % % se0 = strel('line', 3, 0); % % creeaza un unei linii creeaza un unei linii element structural de forma verticale de 3 elemente element structural de forma orizontala de 3 elemente
BWsdil = imdilate(BWs, [se90 se0]);% se dilata imaginea avand ca % element structural suma celor
32
% definite mai sus % acest lucru se realizeaza pentru a inchide contururile % obiectelor BWdfill = imfill(BWsdil, 'holes'); % % % % umple golurile din interiorul contururilor pentru a elimina eventualele contururi neinchise sau unii pixeli izolati
seD = strel('diamond',1); % creeaza un element structural de forma unei % matrici de 3x3 avand ca elemente 0 in % colturile matricii si 1 in rest BWfinal = imerode(BWdfill,seD); % se erodeaza imaginea cu scopul de a BWfinal = imerode(BWfinal,seD); % minimiza erorile produse de dilatare BWfinal = bwareaopen(BWfinal,90); % elimina din imagine obiectele cu o % dimensiune mai mica de 90 de pixeli for m = 1:r for n = 1:c if (BWfinal(m,n) == 1) arie = arie + 1; % se calculeaza aria obiectelor din % imagine (numarul de pixeli albi) end end end fudgeFactor = fudgeFactor - 0.1; % se decrementeaza pragul folosit daca % aria nu este suficient de mare end contur_img = BWfinal; % prima imagine care indeplineste conditia este % returnata
De menionat, ca acesta nu este un rezultat al muncii autorului n totalitate, ci a fost preluat din Matlab Image Processing Toolbox, aducandu-i-se mbuntiri pentru obinerea rezultatelor optime.
33
Iniial fotografiile au fost realizate pe fundal alb, ns datorit discrepanei ntre nuan de gri a umbrei i fundalul alb s-a ajuns la folosirea unui prag de comparaie de 90, mult prea mare. Astfel, n special n cazul fructelor de culoare nchis pe suprafaa crora se regsesc zone n care diferena maxim dintre pixelii suprapui ai planelor RGB este sub valoarea pragului, acetia vor fii considerai umbre i vor fi transformai n pixeli negri, urmnd s deformeze substanial imaginea original. n urma acestor incidente am ajuns la concluzia c folosirea unui fundal negru este cea mai potrivit. n continuare, este afiat codul n MATLAB, care implementeaz algoritmul de eliminare a umbrelor:
function [clear_img] = elim_umbre(orig_img, contur_img) [r,c,d] = size(orig_img); % returneaza dimensiunile imaginii:r -randuri % c -coloane % d adancime for m = 1:r for n = 1:c % % % if (contur_img(m,n) == 0)% % orig_img(m,n,1) = 0; % orig_img(m,n,2) = 0; % % orig_img(m,n,3) = 0; % end % end % end % dist = []; prag = 15; se parcurge imaginea daca in imaginea de intrare albnegru valoarea pixelului este 0(pixel negru atunci fiecare valoare a pixelilor corespunzatori din cele trei planuri (r,g,b) este setata la 0 astfel rezulta o imagine in care obiectul colorat este inconjurat de negru
% se declara vectorul distanta care va tine % diferentele absolute dintre valorile intensitatilor % pixelilor din planele de culori % se seteaza un prag sub care pixelul este considerat % ca avand o nuanta de gri
for m = 1:r for n = 1:c dist(1) % dist(2) % % dist(3) % % = abs(orig_img(m,n,1) se calculeaza diferenta = abs(orig_img(m,n,1) se calculeaza diferenta albastru = abs(orig_img(m,n,2) se calculeaza diferenta albastru orig_img(m,n,2)); dintre planurile rosu si verde orig_img(m,n,3)); dintre planurile rosu si orig_img(m,n,3)); dintre planurile verde si
daca valoarea maxima dintre cele 3 distante este mai mica decat pragul atunci in imaginea colorata pixelul corespunzator ia valoarea 0 (negru); 0; 0; 0;
34
clear_img = orig_img;
Imaginile din figurile de mai jos prezint rezultatele, nainte i dup, rulrii scriptului MATLAB ce conine codul de mai sus, realizate pe fundal negru cu prag 15:
Figura 20: Imaginea original pe fundal negru (nainte de aplicarea algoritmului de eliminare a umbrelor)
Figura 21: Imaginea fr umbre pe fundal negru (rezultat n urma aplicrii algoritmului de eliminare a umbrelor cu prag 15) Imaginile din figurile de mai jos prezint rezultatele, nainte i dup, rulrii scriptului MATLAB ce conine codul de mai sus, realizate pe fundal alb cu prag 90: 35
Figura 22: Imaginea original pe fundal alb (naintea de aplicarea algoritmului de eliminare a umbrelor)
Figura 23: Imaginea fr umbre pe fundal alb (rezultat n urma aplicrii algoritmului de eliminare a umbrelor cu prag 90)
36
Figura 24: Imaginea fr umbre pe fundal alb (rezultat n urma aplicrii algoritmului de eliminare a umbrelor cu prag 15)
parametru, notat cu MAP, definete harta color care va fi folosit n cadrul imaginii RGB. Acesta poate fi fie o matrice a hrii color de n 3 elemente, fie un ir de caractere care conine numele funciei hrii color (de exemplu jet), ori o funcie mner a funciei hrii color, care este folosit i n cazul nostrum, i anume @jet. Dac acest parametru nu este specificat este ales predefinit jet. Al treilea parametru reprezint culoarea fundalului, care dac nu este specificat este luat negru din oficiu. n continuarea programului sunt afiate rezultatele pariale obinute n urma rulrii algoritmului i care sunt reinute pentru a se afia contururile corespunztoare obiectelor Figura 25.
Figura 25: Obinerea formei n bucla for, realizat n continuare, se introduce conturul peste imaginea reinut anterior, cu ajutorul funciei plot care are c parametrii coordonatele conturului coninute n matricea bidimensional B, culoarea de afiare a acestuia i grosimea liniei de contur.
Figura 26: Aplicarea conturului asupra formei Funcia regionprops msoar proprietile regiunilor imaginii (analiza petelor de cerneal). Aceasta msoar un set de proprieti pentru fiecare regiune etichetat din matricea etichet L. Elementele ntregi positive din L corespund unor regiuni diferite. De exemplu, setului de elemente egale cu 1 din L corespunde regiunii 1, setul de elemente egale cu 2 corespund regiunii 2, i aa mai departe. stats reprezint o structur matrice, iar cmpurile coninute n aceast structur denot diverse proprieti ale fiecrei regiuni, separate prin virgule n seciunea de proprieti 38
specific celui de-al doilea parametru al funciei. Proprietile de care avem noi nevoie sunt cele privitoare la arie i la centrul de greutate, dup cum se poate observa i n seciunea de cod ataat. Ulterior se face o parcurgere a contururilor, care se rein n cadrul unei variabile denumit generic boundary, n vederea calculrii perimetrului conturului k. De asemenea, ntr-o variabil area se reine din structura matricial stats valoarea corespunztoare ariei obiectului k. Perimetrul i aria obiectului k se rein n vederea calculrii unei metrici ce reprezint coeficientul de rotunjime a obiectului k. Observm c formula pentru calculul metrici este metric (k ) = 4 area (k ) / perimeter 2 , care n cazul unui cerc perfect returneaz valoarea 1. n cazul n care obiectul nu este perfect rotund perimetrul obiectului va crete disproporional cu aria, iar rezultatul returnat va fi subunitar. Astfel, cu ct forma obiectului va fi mai ndeprtat de rotund cu att acest coeficient va fi mai apropiat de zero. n final rezultatul numeric al metricii este afiat pe imagine, la coordonatele specificate n cod, cu grosimea i culoarea menionat de asemenea n cod, iar n cazul mai multor obiecte se returneaz metrica cu valoarea cea mai mare Figura 3.1.4.c.
39
for k = 1:length(B) % fiecare contur gasit si retinut in matricea B boundary = B{k}; % se afiseaza peste imaginea afisata anterior plot(boundary(:,2), boundary(:,1), 'w', 'LineWidth', 2) end stats = regionprops(L,'Area','Centroid'); % pentru fiecare obiect etichetat % din matricea L se returneaza proprietatile % referitoare la arie si la centrul de greutate for k = 1:length(B) boundary = B{k}; % se face o parcurgere a tuturor contururilor % se retin coordonatele conturului k
delta_sq = diff(boundary).^2; perimeter = sum(sqrt(sum(delta_sq,2))); % se calculeaza perimetrul conturului area(k) = stats(k).Area; % se retine aria corespunzatoare conturului k metric(k) = 4*pi*area(k)/perimeter^2;%se calculeaza o metrica care %aproximeaza rotunjimea obiectului k metric_string = sprintf('%2.2f',metric); % se retine rezultatul obtinut % cu o precizie de 2 zecimale text(boundary(1,2)-35,boundary(1,1)+13,metric_string,'Color','y',... 'FontSize',14,'FontWeight','bold'); % se afiseaza metrica obtinuta end [aria_max index] = max(area); aspect = metric(index); % valoarea de retur a functiei este metrica % corespunzatoare obiectului cu cea mai mare % arie
Menionez, ca acesta nu este un rezultat al muncii autorului n totalitate, ci a fost preluat din Matlab Image Processing Toolbox, aducandu-i-se mbuntiri pentru obinerea rezultatelor optime.
Scriptul Matlab prezentat mai jos implementeaz algoritmul de calcul a dimensiunii fructului:
function [size_img] = marime(clear_img) [r,c,d] = size(clear_img); % se preiau dimensiunile imaginii arie = 0; dim = r*c; % se calculeaza aria totala a imaginii for m = 1:r for n = 1:c if (clear_img(m,n,1) ~= 0) arie = arie + 1; % se calculeaza aria obiectelor din imagine end end end size_img = arie/dim; % gradul de acoperire al imaginii
Mai jos sunt indicate rezultatele obinute n urma rulrii programului Matlab pentru obiectele: Cirea, Lmie respectiv Pepene: Cirea Lmie Pepene
HSV este urmtoarea: H-Hue (Nuana), S-Saturation (Saturaie), V-Value (Valoare). Dintre aceste trei valori, doar una singur prezint interes pentru noi i anume informaia de nuan returnat de variabila H. Astfel, pentru atingerea acestui deziderat am realizat conversia celor trei valori obinute din reprezentarea RGB n reprezentarea HSV, dup care prima valoare returnat este preluat separat de celalte dou i normalizat, rezultnd astfel o singur valoare numeric compatibil cu variabil de intrare Culoare a sistemului decisional. Codul Matlab care realizeaz procesul descries mai sus este urmtorul:
function [col] = color_detect (img) [r,c,d] = size(img); % returneaza dimensiunile imaginii:r - randuri % c - coloane % d - adancime contor = 0; % contorizeaza numarul de pixeli diferiti de negru for m = 1:r for n = 1:c if (~((img(m,n,1) == 0) && (img(m,n,2) == 0) && (img(m,n,3) == 0))) contor = contor + 1; % daca pixelul nu are valoarea 0 in toate end % planurile RGB contorul este incrementat end end p = sum(img,2); % se face suma valorilor pixelilor pe fiecare linie % obtinand o matrice tridimensionala avand o coloana % r randuri si 3 planuri o = sum(p); % se face o suma a fiecarei coloane obtinand astfel trei % valori reprezentand suma luminozitatilor tuturor % pixelilor din imagine pentru fiecare culoare se realizeaza o medie pentru componenta de rosu din imagine si se normalizeaza se realizeaza o medie pentru componenta de verde din imagine si se normalizeaza se realizeaza o medie pentru componenta de albastru din imagine si se normalizeaza
red
culoare = rgb2hsv([red, green, blue]); % se schimba sistemul de culori % din RGB in HSV col = culoare(1)*255; % re returneaza valoarea denormalizata a componentei % de nuanta
Mai jos sunt indicate rezultatele obinute n urma rulrii programului Matlab pentru obiectele: Cirea, Lmie respectiv Pepene: Cirea Lmie Pepene
tuturor algoritmilor premergtori, precum i a proceselor de fuzzificare, inferen i defuzzificare ulterioare algoritmilor menionai. Rezultatele finale ale ntregului proces reprezint returnarea a dou valori numerice, una reprezentnd tipul fructului iar cealalt starea acestuia, ambele valori fiind cuprinse n intervalele de definire a universului discuiei pentru ieirile corespunztoare: TipFruct definit pe intervalul continuu [-0.1;8.1], respectiv StareFruct derulat dea lungul intervalului [-0.1;1.1]. n realizarea acestui script s-a luat n considerare faptul c fiecare din mulimile fuzzy ale variabilelor de ieire poate s reprezinte un obiect sau starea acestuia, dac valoarea final returnat se afl n intervalul definit ntre mijloacele intervalelor determinate de de mulimea fuzzy corespunztoare obiectului respectiv i mulimile fuzzy corespunztoare obiectelor nvecinate. Excepie de la aceast regul fac doar mulimile fuzzy care sunt plasate la capetele de definire ale universelor variabilelor de ieire, i anume, mulimea Mr i Pepene aparinnd ieirii TipFruct, i ambele mulimi componente ale variabilei de intrare, StareFruct, Necopt respectiv Copt. Programul n limbaj Matlab care returneaz aceste valori finale este ilustrat n cele ce urmeaz:
function rez = rec_fruct(val_fr) slf=readfis('SLF.fis'); ValFruct = evalfis(val_fr, slf); if end -0.1 < ValFruct(1,1) & ValFruct(1,1) <= 0.5 TipFruct=' mar';
if 0.5 < ValFruct(1,1) & ValFruct(1,1) <= 1.5 TipFruct=' piersica'; end if 1.5 < ValFruct(1,1) & ValFruct(1,1) <= 2.5 TipFruct=' caisa'; end if 2.5 < ValFruct(1,1) & ValFruct(1,1) <= 3.5 TipFruct=' lamaie'; end if 3.5 < ValFruct(1,1) & ValFruct(1,1) <= 4.5 TipFruct=' portocala'; end if 4.5 < ValFruct(1,1) & ValFruct(1,1) <= 5.5 TipFruct=' cireasa'; end if 5.5 < ValFruct(1,1) & ValFruct(1,1) <= 6.5 TipFruct=' avocado'; end if 6.5 < ValFruct(1,1) & ValFruct(1,1) <= 7.5 TipFruct=' banana'; end if 7.5 < ValFruct(1,1) & ValFruct(1,1) <= 8.5 TipFruct=' pepene'; end
43
if -0.1 < ValFruct(1,2) & ValFruct(1,2) <= 0.5 StareFruct = ' necopt'; else StareFruct = ' copt'; end rez = strcat('Tipul fructului este',TipFruct,' iar starea sa este', StareFruct); end
Mai jos sunt indicate rezultatele obinute n urma rulrii programului Matlab de returnare a obiectelor i a strii acestora pentru cirea coapt, lmie necoapt i pepene copt: Cirea coapt
Lmie necoapt
Pepene copt
44
% fructului clear_img = elim_umbre(img, contur_img); % se elimina umbrele din imaginea % obtinuta anterior figure(2); imshow(clear_img); title('Imaginea fara umbre'); %% Determinare forma aspect = forma(clear_img); % se determina o valoare intre 0 si 1 % reprezentand cat de rotund este fructul % pentru val 1 fructul este un cerc perfect
= ', num2str(aspect)]); % afisarea valorii % aspectului %% Determinare dimensiune dimensiune = marime(clear_img); % se determina o valoare intre 0 si 1 % reprezentand gradul de acoperire al % imaginii (dimensiunea fructului) disp(['Dimensiunea = ', num2str(dimensiune)]);% se afiseaza dimensiunea %% Determinare culoare culoare = color_detect(clear_img); % algoritmul de detectie al culorii disp(['Culoarea = ', num2str(culoare)]); % se afiseaza valoarea nuantei % din sistemul hsv
disp(['Aspectul
3.2. Proiectarea Sistemului cu Logic Fuzzy n determinarea tipului fructului i strii acestuia
Obiectivul proiectului este proiectarea unui sistem decizional bazat pe logic fuzzy, care s dea ca ieirii tipul fructului i starea acestuia. 45
Am nceput proiectarea de la un model fuzzy cu trei intrri (Aspect, Dimensiune, Culoare) i dou ieiri (TipFruct i StareFruct). Modelul fuzzy proiectat n Matlab arat ca i n figur de mai jos:
Figura 28: Modelul sistemului fuzzy Cele trei dreptunghiuri de culoare galben reprezint cele trei intrri ale sistemului cu logic fuzzy, respective aspectul, dimensiunea i culoarea. La nivelul acestor trei blocuri are loc procesul de fuzzificare. Dreptunghiul de culoare gri deschis reprezint procesul de inferen, iar cele dou dreptunghiuri de culoare turqouis reprezint ieirile blocului de fuzzificare (la nivelul acestor dreptunghiuri are loc procesul de defuzzificare). Editarea regulior se face n dreptunghiul gri deschis (de inferen), n fereastra Rule Editor:
3.2.1. Intrri
3.2.1.1. Definirea mulimilor fuzzy pentru variabila de intrare aspect
Universul discuiei variabilei de intrare aspect, notat Aspect, se definete pe intervalul [0;1]. Pentru definirea mulimilor fuzzy pentru variabila de intrare Aspect se folosete o acoperire a universului variabilei de intrare, prin patru mulimi trapezoidale asimetrice (Alungit, Neregulat, Oval, Rotund) astfel nct cele patru mulimi s formeze o partiie fuzzy. Intervalul de definire a 46
universului discuiei i a mulimilor fuzzy constituente a fost determinat pe baza rezultatelor experimentale obinute n urma rulrii algoritmilor Matlab de extragere a caracteristicilor obiectelor fotografiate. Iniial am ales doar trei mulimi fuzzy pentru aceast intrare, ns pentru a obine rezultate mai precise fr o complicaie major a calculelor am ales patru mulimi fuzzy reprezentate n figur de mai jos:
Figura 30: Mulimile fuzzy peste universul discuiei variabilei de intrare Aspect
47
Figura 31: Mulimile fuzzy peste universul discuiei variabilei de intrare Dimensiune
48
Figura 32: Mulimile fuzzy initiale peste universul discuiei variabilei de intrare Culoare n vederea eliminrii acestui impediment am considerat o variabil de intrare Culoare, nou, definit pe intervalul [0;45]. Intervalele considerate pentru mulimile fuzzy coninute n aceasta au fost determinate experimental, fiind luate n calcul doar mulimile fuzzy corespunztoare culorilor din a cror combinaie se pot obine nuanele ntlnite n majoritatea cazurilor la fructe. Aceste mulimi sunt reprezentate n figur de mai jos:
Figura 33: Mulimile fuzzy finale peste universul discuiei variabilei de intrare Culoare
3.2.2. Ieirile 3.2.2.1. Definirea mulimilor fuzzy pentru variabila de ieire tipul fructului
Universul discuiei variabilei de ieire care indic tipul fructului, notat TipFruct, se definiste plecnd de la observaia c sistemul fuzzy proiectat este de tip decizional, iar mrimile fuzzy implicate nu reprezint un interval de variaie a mrimii de intrare, intervalele de definiie neavnd nici un punct de intersectare. Ca urmare universul discuiei pentru TipFruct este [-0.1;8.1]. Pentru definirea mulimilor fuzzy pentru ieirea TipFruct , s-a considerat un eantion de nou mulimi, fiecare asociat unui anumit tip de fruct (Mr, Piersic, Cais, Lmie, Portocal, Cirea, Avocado, Banan, Pepene) dup cum se observ n Figura 34. Intervalul de definire a mulimilor fuzzy sunt centrate n numerele ntregi cuprinse n intervalul de definire a universului discuiei, cu o lime la stnga i la dreapta, standard, de 0.1. Cele nou mulimi sunt mulimi fuzzy triunghiulare, definite astfel nct nu formeaz o partiie fuzzy.
49
Figura 34: Mulimile fuzzy peste universul discuiei variabilei de iesire TipFruct
Figura 35: Mulimile fuzzy peste universul discuiei variabilei de iesire StareFruct
capacitatea de decizie a sistemului. Regulile sunt afirmaii calitative deduse de ctre proiectantul sistemului de control fuzzy din datele i experimentele realizate n procesul de selecie a imaginilor cu algoritmii enunai. Astfel, am creat o baza ce conine 18 reguli enunate mai jos:
1. If (Aspect is Neregulat) and (Dimensiune is Mediu) and (Culoare is Verde) then (TipFruct is Avocado)(StareFruct is Copt)(1) 2. If (Aspect is Neregulat) and (Dimensiune is Mic) and (Culoare is Verde) then (TipFruct is Avocado)(StareFruct is Necopt) (1) 3. If (Aspect is Rotund) and (Dimensiune is FoarteMic) and (Culoare is Rosu) then (TipFruct is Cireasa)(StareFruct is Copt) (1) 4. If (Aspect is Rotund) and (Dimensiune is FoarteMic) and (Culoare is Verde) then (TipFruct is Cireasa)(StareFruct is Necopt) (1) 5. If (Aspect is Alungit) and (Dimensiune is Mare) and (Culoare is Galben) then (TipFruct is Banana)(StareFruct is Copt) (1) 6. If (Aspect is Alungit) and (Dimensiune is Mediu) and (Culoare is Verde) then (TipFruct is Banana)(StareFruct is Necopt) (1) 7. If (Aspect is Rotund) and (Dimensiune is Mediu) and (Culoare is Portocaliu) then (TipFruct is Caisa)(StareFruct is Copt) (1) 8. If (Aspect is Rotund) and (Dimensiune is Mic) and (Culoare is Verde) then (TipFruct is Caisa)(StareFruct is Necopt) (1) 9. If (Aspect is Oval) and (Dimensiune is Mare) and (Culoare is Galben) then (TipFruct is Lamaie)(StareFruct is Copt) (1) 10. If (Aspect is Oval) and (Dimensiune is Mediu) and (Culoare is Verde) then (TipFruct is Lamaie)(StareFruct is Necopt) (1) 11. If (Aspect is Rotund) and (Dimensiune is FoarteMare) and (Culoare is Portocaliu) then (TipFruct is Pepene)(StareFruct is Copt) (1) 12. If (Aspect is Rotund) and (Dimensiune is Mare) and (Culoare is Verde) then (TipFruct is Pepene)(StareFruct is Necopt) (1) 13. If (Aspect is Rotund) and (Dimensiune is Mare) and (Culoare is Rosu) then (TipFruct is Mar)(StareFruct is Copt) (1) 14. If (Aspect is Rotund) and (Dimensiune is Mediu) and (Culoare is Verde) then (TipFruct is Mar)(StareFruct is Necopt) (1) 15. If (Aspect is Rotund) and (Dimensiune is Mediu) and (Culoare is Rosu) then (TipFruct is Piersica)(StareFruct is Copt) (1) 51
16. If (Aspect is Rotund) and (Dimensiune is Mediu) and (Culoare is Verde) then (TipFruct is Piersica)(StareFruct is Necopt) (1) 17. If (Aspect is Rotund) and (Dimensiune is Mare) and (Culoare is Portocaliu) then (TipFruct is Portocala)(StareFruct is Copt) (1) 18. If (Aspect is Rotund) and (Dimensiune is Mediu) and (Culoare is Verde) then (TipFruct is Portocala)(StareFruct is Necopt) (1)
52
Figura 36: Fereastra Rule Viewer Valoarea de 0, 87239 din variabila de intrare Aspect este corespunztoare mulimii fuzzy Oval, cea de 0,067996, aparinnd variabilei de intrare Dimensiune, este corespunztoare mulimii fuzzy Mediu, iar valoarea de 35,4118 din variabila de intrare Culoare este asignat mulimii fuzzy Verde. Enunul regulii 10 este urmtorul: Dac Aspect este Oval i Dimensiune este Mediu i Culoare este Verde Atunci TipFruct este Lmie Starefruct este Necopt. n urma aplicrii operaiei de defuzzificare observm c avem returnate la ieirile sistemului decizional dou valori numerice: prima valoare este atribuit ieirii care indic tipul fructului (TipFruct), iar cea dea doua valoare este atribuit strii n care se afl acesta (StareFruct). Cele dou valori returnate n cazul nostru sunt: 3,02 pentru tipul fructului i -0,004 pentru starea sa. Dup cum am amintit anterior n cadrul definiri variabilelor de ieire, mulimile fuzzy corespunztoare fiecrei variabile de ieire sunt reprezentate n jurul unor valori ntregi cu o lime a intervalului la dreapta i la stnga de 0,1. Astfel, prin asocierea valorilor obinute cu fructul, respectiv cu starea corespunztoare rezultatele finale sunt: tipul fructului lmie, iar starea sa necopt, n concordan cu regula numrul 10, de aici rezultnd ca sistemul de sortare este corect funcional.
53
54
3.2.6. Defuzzificarea
Sistemul de sortare cu logic fuzzy realizat n aceast aplicaie este de tip Mamdani, iar metoda de defuzzificare aleas este mom adic media maximelor. Sistemele Mamdani difer fa de cele Takagi-Sugeno prin faptul c n cazul celor dinti ieirile reprezint o distribuie de mulimi fuzzy, n timp ce n cazul celor secundare intrarea este transformat ntr-o singur mulime fuzzy a crei suport este un singur punct din universal discuiei (valoare tranant), cu grad de apartenena 1. Fiecare regul are un anumit grad de activare n urma valorilor preluate, rezultate din procesarea algoritmilor corespunztori, de ctre sistemul de sortare cu logic nuanat. Operaia fuzzy aplicat asupra intrrilor este i, deoarece ieirea este influenat ca un cumul al celor trei intrri, iar metoda de implicaie folosit este min, care va trunchia gradul de activare al intrrilor supuse la operaia fuzzy la valoarea minim. Dup realizarea implicaiei are loc agregarea rezultatelor care este de tip max i care va cumula maximele fiecrei ieiri n vederea aplicrii metodei de defuzzificare. Metoda de defuzificare aleas este mom sau media maximelor. Am ales aceast metod datorit faptului c sistemul fuzzy antrenat nu este un sistem folosit pentru control ci este un sistem decizional, care returneaz valori tranante. Aceasta presupune reinerea celui mai mic maxim n valoare absolut (SOM), a celui mai mare maxim n valoare absolut (LOM) i realizarea mediei acestora (MOM). Deoarece, n cazul nostru, probabilitatea de a avea un platou este foarte redus, deoarece mulimile fuzzy de ieire sunt triunghiuri destul de nguste, cele trei valori s-ar putea s coincid sau dac nu s fie foarte apropiate. n urma stabilirii valorii medii maxime, sistemul decizional va considera mulimea fuzzy corespunztoare valorii respective, ca mulime de ieire corect, iar algoritmul Matlab realizat pentru returnarea rezultatelor finale va prelua valoarea corespunztoare ieirii n vederea afirii ei.
55
Concluzii
n aceast lucrare a fost prezentat o metodologie eficient de proiectare bazat pe model pentru implementarea unui sistem de sortare pe baz de logic fuzzy. Utiliznd aceast metodologie, sistemul decizional poate fi ajustat i testat n totalitate n mediul de simulare fr prea mari eforturi sau costuri ridicate specifice anumitor sisteme de dezvoltare softwear. Rezultatele experimentale au dovedit eficienta metodologiei propuse. Conform experimentelor realizate, n urma fotografierii obiectelor au fost sesizate diferite distorsiuni asupara obiectelor n special asupra culorii acestora. Astfel n cazul tructului avocado care are culoarea verde intens, corespunztor pe axa culorilor intervalului [80;90], se obinea n urma rulrii algoritmului de detecie a culorii valoarea aproximativ de 39 care nu aparine acestui interval, acest fapt ducnd la obinerea de rezultate eronate. Astfel a fost nevoie de definirea unor noi mulimi fuzzy pentru variabila de intrare Culoare n funcie de rezultatele experimentale obinute pentru baza de date. Pentru variabila de intrare Aspect s-a definit ulterior primelor experimente o nou mulime fuzzy ddenumita generic Neregulat care s ofere mai mult acuratee n determinarea formei corespunztoare fiecrui obiect de selectat. n cazul variabilei de intrare Dimensiune cele cinci mulimi fzzy definite la nceputul proiectrii au fost meninute pn n final datorit corectitudinii rezultatelor obinute pe parcursul experimentelor. De remarcat c aceste mulimi nu formeaz o partiie, iar modul de cretere o domeniilor de definiie nu respect o anumit regul de proporionalitate. Acest sistem de clasificare a fost proiectat innd cont c intrarea lui const n imagini color ale obiectelor de clasificat. Datele furnizate de algoritmii de extragere a celor trei caracteristici (aspect fizic, dimensiune, culoare) reprezint intrri pentru sistemul decizional cu logic fuzzy, date pentru care rezultatele obinute au fost foarte bune. Totui sistemul poate fi ajustat n precizie prin introducerea unei noi variabile de intrare n sistemul de sortare, de tip textur care s cuantizeze esutul obiectului din imagine ntr-o valoare numeric. De asemenea, cardinalul mulimilor fuzzy pentru variabila de intare culoare poate fii extins cu mulimi corespunztoare unor color noi pentru a mri plaj de obiecte care pot fi clasificate. Nu n ultimul rnd, o alt mbuntire care poate fi adus sistemului se refer la ieirile acestuia. Ieirea ce indic tipul fructului poate fi extins prin mbogirea bazei de date cu alte tipuri de fructe, precum i cu o mulime fuzzy ce indic eroarea n cazl n care obiectul din imaginea introdus la intrare nu corespunde cu nici un alt obiect din baza de date.
56
5. Bibliografie
[1] Tehnici fuzzy n proiectarea i modelarea circuitelor analogice Gabriel Oltean, Emilia Sipos Ed. U.T. Press, Cluj-Napoca [2] An Introduction to fuzzy set theory and fuzzy logic Chander Mohan [3] Image Processing Toolbox - Matlab [4] Image Acquisition Toolbox - Matlab [5] Toward a definition of Fuzzy Processes L. Luca, I. Despi [6] Spaii de procese fuzzy L. Luca, Ed. Mirton, Timioara, 2003 [7] www.mathworks.com/products/fuzzylogic/
57