Sunteți pe pagina 1din 57

UNIVERSITATEA TEHNIC DIN CLUJ-NAPOCA FACULTATEA DE ELECTRONIC, TELECOMUNICAII I TEHNOLOGIA INFORMAIEI Specializarea: Electronic Aplicat

Sistem de sortare bazat pe logic fuzzy Proiect de diplom

PREEDINTE COMISIE, Prof. dr. ing. Marina OPA

DECAN, Prof. dr. ing. Marina OPA

CONDUCATOR, Prof. dr. ing. Gabriel OLTEAN

ABSOLVENT, Teodor Florin CIORTEA

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

CONDUCTOR, Prof. dr. ing. Gabriel OLTEAN

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.

Cluj-Napoca, 24 iunie 2010

ABSOLVENT, Teodor Florin CIORTEA

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.

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 integrated development environment (IDE), and the second level consists in designing of a Mamdani type fuzzy logic decision system, with three inputs, corresponding to the features of the objects, and two outputs, wich means the type respectively the state of the object. 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 defuzzification method, are correlated with appropriate words to display final results, results that prove the correctness of the whole design and implementation process.

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

Index de imagini continute in text


Figura 1: Schem logic pentru metodologia propus...................................11 Figura 2: Ilustrarea mulimilor TRUE i FALSE n logica boolean (a) i n logica fuzzy (b)...12 Figura 3: Cele 11 tipuri de mulimi fuzzy...........................................................................................14 Figura 4: Inferena compoziional.....................................................................................................17 Figura 5: Schema bloc a unui sistem cu logic fuzzy........................................................................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 inferena de tip Mamdani................................................21 Figura 9: Editorul FIS..........................................................................................................................24 Figura 10: Editorul de funcii membre................................25 7

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

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 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

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 propoziii ale cror valoare de adevr este mai mult aproximativ dect precis. Spre deosebire de logica clasic, care lucreaz cu dou valori numerice exacte (0 pentru fals i 1 pentru adevrat), logica fuzzy folosete o plaj continu de valori logice cuprinse n intervalul [0;1], unde 0 indic falsitatea complet, iar 1 indic adevrul complet. Astfel, dac n logica clasic un obiect poate aparine (1) sau nu (0) unei mulimi date, n logica fuzzy putem defini gradul de apartenen al obiectului la mulime care poate lua valori ntre 0 i 1. Mai mult, atunci cnd sunt folosite variabile lingvistice, gradele de apartenena pot fi controlate prin funcii specifice. Diferen esenial dintre logica clasic i cea fuzzy, este faptul c legea terului exclus", defnit de Aristotel, nu mai este valabil. n Figura 2. de mai jos este ilustrat diferena ntre logica boolean i cea fuzzy. Dac n primul caz exist o delimitare clar ntre cele dou valori de adevr, n al doilea caz exist o zon de nedeterminare, n care valoarea de adevr poate fi 0 i 1 n acelai timp, ntr-o anumit msur dat de gradul dapartenenta.

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.

2.2.1. Mulimile fuzzy


Conceptul de mulime fuzzy, introdus de ctre Zadeh, a aprut ca o urmare freasc a imposibilitii de a modela un sistem indenit (din engl.: ill-defned) cu ajutorul unor instrumente matematice precise, cum ar fi cele ale teoriei probabilistice. Fie X o colecie de obiecte. Mulimea fuzzy A definit pe mulimea X este o mulime de perechi ordonate: 12

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]

5. Funcia de apartenena A : asociaz fiecrui element x gradul de apartenena la mulimea fuzzy A:

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

Figura 3: Cele 11 tipuri de mulimi fuzzy

2.2.2. Variabile lingvistice


n timp ce variabilele matematice i-au de obicei valori numerice, n aplicaiile cu logic fuzzy, variabilele lingvistice nenumerice sunt adesea folosite pentru a facilita exprimarea regulilor i a faptelor. O variabil lingvistic precum vrsta poate lua o valoare precum tnr sau antonimul acestuia btrn. 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 funcii certe.

2.2.3. Grade de adevr


Logica fuzzy i logica probalisic sunt similare din punct de vedere matematic, ambele avnd grade de adevr cuprinse n intervalul 0-1, dar conceptual sunt diferite, datorit interpretrilor diferite. Logica fuzzy corespunde unor grade de adevr, n timp ce logic probalistic corespunde probabilitii, posibilitii. Consecvent, probabilitatea nu are nimic n comun cu fuzzificarea, acestea sunt concepte diferite care la o privire superficial par similare din cauza folosirii aceluiai interval de valori numerice reale, [0;1]. Totui, din moment ce teoreme, precum cea a lui De Morgan, au aplicabiliti duale, i proprietile variabilelor aleatoare sunt similare cu proprietile strilor logice binare, se pot observa cazurile n care ar putea aprea confuzii.

2.2.4. Aplicarea valorilor de adevr


14

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.

2.2.5. Raionament fuzzy


Raionamentul fuzzy (sau raionamentul aproximativ) este analogul logicii predicatelor pentru raionamentul cu propoziii precise i este, aadar, o extensie a logicii propoziiilor clasice. Raionamentul fuzzy folosete propoziii fuzzy care sunt afirmaii ce pot fi adevrate n anumite grade cuprinse n intervalul [0; 1]. Aceste propoziii sunt exprimate folosind limbajul natural. Un model de propoziie fuzzy este: x este A unde x este o variabil lingvistic iar A este o valoare lingvistic a variabilei x . nelesul acestei propoziii este determinat de mulimea fuzzy A definit pe universul discuiei variabilei x . Regulile fuzzy sunt propoziii condiionale 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 mulimi fuzzy pentru variabilele lingvistice x , respectiv y. Partea DAC a regulii ( x este A ) se numete premis sau antecedent, pe cnd partea ATUNCI ( y este B ) se numete concluzie sau consecvent. Interpretarea unei reguli fuzzy are loc n dou etape: mai nti se evalueaz premisa iar apoi se aplic acest rezultat concluziei. Dac premisa este adevrat ntr-un anumit grad, atunci concluzia este adevrat n acelai grad. n logica Boolean principalele instrumente de raionament sunt tautologiile, cum sunt modus ponens i modus tolens. n logica fuzzy este folosit acelai principiu, dar n locul propoziiilor tranante sunt folosite propoziii i reguli fuzzy. Cea mai folosit tautologie n raionamentul fuzzy este modus ponens generalizat (MPG): 15

premis implicaie concluzie concluzie

este DAC este ATUNCI este bbbbbbberww n

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]

Figura 4: Inferena compoziional

2.2.6. Proprietile mulimilor fuzzy


Normalitatea. O mulime fuzzy este normal dac valoarea maxim afunctiei de apartenena este 1: x ( x) = 1 unde x reprezint supremul sau maximul lui x . n caz contrar vom spune c mulimea este subnormal. Convexitatea. O mulime fuzzy A este convex dac i numai dac mulimile A definite ca: 17

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.

2.2.7. Sisteme cu logic fuzzy


Un sistem cu logic fuzzy (SLF) permite modelarea i implementarea funcionrii oricrui proces prin descrierea relaiilor intrare-ieire folosind variabile i valori lingvistice i reguli fuzzy DAC-ATUNCI. Valorile numerice tranante ale variabilelor de ieire rezult prin aplicarea unor operaii: fuzzificare, inferen fuzzy, defuzzificare, asupra valorilor numerice ale variabilelor de intrare. Dup Brubaker dezvoltarea unui SLF este justificat pentru sistemele a cror funcionare este prea complex pentru a putea fi definit adecvat prin tehnici tradiionale: sisteme prea complexe pentru a fi modelate precis; sisteme cu funcionare mediu spre puternic neliniar; sisteme ce prezint anumite incertitudini fie n intrri fie n funcionare.

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 *).

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 mulimi fuzzy obinuite, pe cnd sistemele Takagi-Sugeno (T-S) folosesc n concluzie funcii (liniare) a variabilelor de intrare. Fluxul de date dintr-un SLF este prezentat grafic n Figura 6. Valorile tranante x1 * i x2 * ale variabilelor de intrare sunt fuzzificate rezultnd mulimile fuzzy singleton A1 *, respectiv A2 *. Gradele de activare (adevr) ale celor dou reguli sunt 1 , respectiv 2 i sunt valori intermediare folosite n cadrul inferenei. Menionm c regula R2 este o regul compus coninnd n partea de premis ambele variabile legate prin conectivul fuzzy I. Pentru conectivul I este folosit operatorul min. Valorile fuzzy pariale ale variabilei de ieire 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 pariale sunt agregate i apoi defuzzificate folosind metoda de defuzzificare numit medie ponderat. n urma defuzzificrii se obine valoarea tranant y * a variabilei de ieire corespunztoare valorilor tranante x1 * i x2 * ale celor dou variabile de intrare.[1]

19

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 dinti metod de control utiliznd logic fuzzy. A fost propus n 1975 de ctre Ebrahim Mamdani ntr-o ncercare de a controla o combinaie ntre un motor pe baz de abur i un boiler prin sintetizarea unui set de control cu reguli lingvistice obinut pe baz de axperimentare. Efortul lui Mamdani a fost bazat pe teoriile lui Lotfi Zadeh privitoare la algoritmii fuzzy pentru sisteme complexe i procese decizionale. Structura unui sistem cu logic fuzzy de tip Mamdani este afiat n Figur 7. Inferena de tip Mamdani, Figura 8, presupune c funciile member de ieire s fie mulimi fuzzy. Dup finalizarea procesului de agregare, exist o mulime fuzzy pentru fiecare variabil de ieire care necesit defuzzificare. Este posibil, i n multe cazuri mult mai eficient, s folosim un singur vrf ca ieire a funciilor member dect un set de mulimi fuzzy distribuite. Acest tip de ieire poart numele de ieire a funciilor member singleton, i poate fi gndit c un set fuzzy predefuzzificat. Ea mbuntete eficiena procesului de defuzzificare, deoarece simplific modul de calcul cerut de metoda mult mai general Mamdani, care determin centrul de greutate a unei funcii bidimensionale. Mai degrab dect integrarea n funcia bidimensional pentru a determina centrul de greutate, putem folosi o medie ponderat pentru cteva puncte date.

20

Figura 7: Structura unui sistem cu logic fuzzy Mamdani

Figura 8: Interpretarea diagramei fuzzy de inferena 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 conine limbajul de programare cu acelai nume, creeat de MathWorks. MATLAB permite manipularea matricilor, vizualizarea funciilor, implementarea algoritmilor, crearea de interfee i poate interaciona cu alte aplicaii. Este un limbaj interactiv de nivel superior care permite realizarea unor cerine de calcul dificile cu o vitez de lucru mai ridicat dect cea a limbajelor de programare tradiionale, precum C, C++ sau Fortran. Chiar dac e specializat n calcul numeric, exist pachete care i permit s 21

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.

2.3.1. Image Acquizition Toolbox


Image Acquizition Toolbox permite achiziia videoclipurilor i imaginilor direct n MATLAB i Simulink de la uniti hardware compatibile PC. Hardware-ul poate fi detectat automat i configurat n conformitate cu cerinele problemei, previzualiznd achiziia, dup care are loc achiziia clipurilor video i imaginilor. Avnd suport pentru furnizori multiplii de hardware, poate folosi un domeniu larg de dispozitive de imagistic, de la camere web comune sau acaparatori industriali de frame-uri pn la camere tiinifice performane care confrunt iluminatul slab, vitez ridicat, precum i alte provocri.[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, mbuntirea imaginilor pentru creterea inteligibitatii, extragerea de caracteristici, analizarea formelor i texturilor i nregistrarea a dou imagini. Cele mai multe funcii ale toolboxurilor sunt scrise n limbaj MATLAB deschis, oferind abilitatea inspectrii algoritmilor, modificrii codului surs, i crerii propriilor funcii client. Image Processing Toolbox suport un set divers de tipuri de imagini, inclusive cu gama dinamic ridicat, rezoluii de gigapixeli sau imagini tomografice. Uneltele dinamice permit explorarea unei imagini, examinarea unei regiuni de pixeli, ajustarea contrastului, crearea de contururi sau histograme i manipularea regiunilor de interes. De asemenea, imaginile suportate sunt generate de o gam larg de dispzitive, incluznd camere digitale, satelii 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, incluznd puncte flotante cu precizie singular i dual, i ntregi cu semn sau fr semn pe 8, 16 i 32 de bii. mpreun, cele dou toolboxuri promovate de MATLAB, ofer un mediu complet pentru dezvoltarea aplicaiilor cu imagini personalizate. [3]

22

2.3.3. Afiarea i explorarea imaginilor


Image Procesing Toolbox ramific grafica MATLAB pentru a oferi capabiliti de afiare personaliizata ale imaginilor. Se pot creea afiaje cu imagini mulltiple ntr-o singur fereastr, afiaje adnotate cu text i grafice, i crearea de afisaaje specializate precum histogramele, profilele i conturarea subiectelor. Adiional funciilor de afiaj, toolboxul dezvolt o gam de unelte interactive pentru explorarea imaginilor. Se pot obine informaiile de imagine, mrirea 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 distanele.

2.3.4. Procesarea i postprocesarea imaginilor


Acest toolbox ofer algoritmi referinta-standard pentru procesarea i postprocesarea cerinelor pentru rezolvarea frecvenelor probleme de sistem, precum zgomotul, intervalul dinamic redus, optica defocalizat i diferena ntre reprezentarea diferit a intrrii respectiv ieirii unui dispoziv. Algoritmii de detecie a conturului permit determiarea marginilor unui obiect coninut ntr-o imagine. Aceti algoritmi includ metodele Sobel, Prewitt, Roberts, Canny i Laplasian din Gaussian. Metoda Canny care este foarte performan poate determin contururi foarte slabe fr a fi influen de zgomot. Algorimii de segmentare a imaginilor determin regiunile de limitare dintr-o imagine. Exist diverse abordri ale segmentrii imaginilor, incluznd 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 sistemelor bazate pe logic fuzzy. Interfaa grafic prezint paii de urmat n n proiectarea sistemelor fuzzy. Sunt puse la dispoziie funcii pentru numeroase metode cu logic fuzzy comune, inclusiv gruparea fuzzy ori nvarea 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 stttor. Alternativ, se pot folosi blocuri de inferen fuzzy n Simulink, iar simularea sistemului fuzzy se face folosind un model comprehensiv al ntregului sistem dinamic. 23

2.3.6. Utilizarea Fuzzy Logic Toolbox


Acest toolbox ofer interfee grafice ce permit dezvoltarea de sisteme fuzzy clasice i moduri de recunoatere. Folosind toolboxul se pot realiza sisteme de inferen fuzzy, sisteme de inferen neurofuzzy adaptive i clasificri 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 aplicaii imbricate ce include logic fuzzy.

2.3.7. Construirea unui sistem de inferen fuzzy


Inferena fuzzy este o metod de interpretare a vectorului de intrare, bazat pe reguli definite de utilizator, i asignarea de valori vectorului de ieire. Utiliznd interfeele grafice de editare i afisre coninute n Fuzzy Logic Toolbox, se poate defini setul de reguli, a funciilor membre i analiza comportamentul unui sistem de inferen fuzzy. Urmtoarele interfee de editare i afiare sunt oferite: FIS Editor - afieaz informaii generale despre sistemul de inferen fuzzy

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

Figura 11: Afiarea suprafeelor 25

2.3.8. Modelarea utiliznd logic fuzzy


Fuzzy Logic Toolbox permite aplicarea tehnicilor de clasificare i neurofuzzy pentru diverse mdele i clasificarea comportamentelor sistemelor. Inferena neurofuzzy adaptiv Utiliznd Sistemul de Inferen Adaptiv Neurofuzzy (ANFIS) se pot forma funcii membre prin instruirea acestora cu date de intrare/ieire, mai degrab dect specificndu-le manual. Toolboxul folosete un algoritm de post-propagare singular sau n combinaie cu metoda ptratelor mai mici, capabilizand sistemul fuzzy s nvee pe parcurs de la date. Clasificarea fuzzy Fuzzy Logic Toolbox ofer suport pentru metoda de clasificare fuzzy 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 aparine unei clase ntr-un anumit grad specificat de gradul de apartenena. Este o metod care arta cum s se grupeze obiectele ce populeaz un spaiu multidimensional ntr-un numr specificat de clase diferite. Funcia fcm din Fuzzy Logic Toolbox pornete cu o estimare iniial a centrelor de clase, menite s marcheze locaia medie a fiecrei clase. De obicei, estimarea iniial acentrelor este cel mai probabil incorect. n plus, fcm atribuie (aleator) fiecrui obiect un grad de apartenena la fiecare clas. Prin actualizarea iterativ a centrelor claselor i a gradelo de apartenena a tuturor obiectelor fcm deplaseaz iterativ centrele claselor n locaiile cele mai potrivite setului de date. Aceast iterare (optimizare) se bazeaz pe minimizarea unei funcii obiectiv ce reprezint suma distanelor de la fiecare obiect la un centru de clas, ponderat cu gradul de apartenena al acelui obiect la acea clas. [7]

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

Figura 13: Metoda centrului de mas

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 )

Figura 14: Metoda mediei ponderate a+b 2

1 d) Metoda mediei maximelor presupune calculul lui x (Figura 15) unde: f ( ( x )) =

Figura 15: Metoda mediei maximelor

28

3. Proiectare i rezultate experimentale


Tema proiectului trateaz un sistem de sortare bazat pe logic fuzzy. Aplicaia a fost realizat n mediul de programare MATLAB, utiliznd toolboxurile pentru achiziie 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 ncrcarea ei n matlab, extragerea caracteristicilor obiectului (Culoare, Aspect, Dimensiune), realizarea unui sistem decizional cu logic fuzzy i introducerea caracteristicilor obinute anterior i clasificarea obiectului pe baza caracteristicilor extrase utiliznd algoritmul de clasificare fuzzy. De asemenea, de menionat 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 fiecrui obiect, principalul impediment n atingerea scopului dorit a fost reprezentat de umbre care, n lipsa unui algoritm eficient de eliminare a umbrelor influeneaz dramatic rezultatele finale, deprtndu-le de realitate.

3.1.1. Achiziia imaginilor


n cazul n care achiziia nu se face n timp real, de la o camer web spre exemplu, ncrcarea imaginilor n Matlab se realizeaz relativ simplu prin intermediul funciei imread. n fragmentul de cod afiat mai jos, partea comentat, reprezint implementarea modului de achiziie a unor imagini n timp real de la dispozitive precum camere web sau alt tip de camere, asupra crora mediul de dezvoltare integrat (IDE) Matlab, ofer compatibilitate. Funcia videoinput realizeaz achiziia de la dispozitivul respectiv n funcie de anumii 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 ctre dispozitiv sau intreaga cale de directoare de configurare a dispozitivului. Funcia preview cu un singur parametru realizeaz o fereastr de previzualizare video care afisaza filmri n timp real pentru dispozitivul de achiziie. n final, funcia getsnapshot returneaz, imediat, un singur cadru al imaginii primite de la dispozitivul de achiziie. Secvena pause implic o procedur de oprire a funciei n derulare i ateptarea apsrii unei taste de ctre utilizator pentru reluarea acesteia.
function [img] = achizitie() % vidobj = videoinput('winvideo', 1, 'RGB24_640x480'); % preview(vidobj); % pause; % img = getsnapshot(vidobj); img = imread('cireasa.jpg');

29

3.1.2. Algoritmul de detecie 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 spaiul (R,G,B) (spaiu numit al componentelor primare de culoare: rou, verde i albastru, prin a cror combinare aditiv ponderat putem obine orice culoare din spectru). Acest model este vzut c o suprapunere de trei planuri, planul Rou, planul Verde i planul Albastru, fiecare dintre cele trei planuri coninnd un pixel din culoarea respectiv ce definete o anumit intensitate a nuanei. Intervalul de valori pe care sunt definii pixelii este [0,255]. Prin combinarea acestor planuri se obine 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 funciei edge. Observm n script definirea unui prag, returnat de funcia edge, funcie 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 nct s fie ndeplinite dou cerine de baza privitoare la acest aspect i anume: acest factor trebuie s aibe o valoare suficient de mic pentru a menine timpi de rulare a algoritmului ct mai scuri posibili, iar pe de alt parte valoarea lui trebuie s fie suficient de mare pentru a ncepe realizarea deteciei contururilor de la cele mai fine detalii ntlnite n imaginea n nivele de gri. Ulterior se vor iniializa dou variabile: arie, care n urma incrementrii va stabili existenta obiectului prin comparare cu cea dea dou variabil, denumit generic prag, stabilit astfel nct orice valoare a primei variabile care depete pragul s fie considerat obiect. n cadrul buclei while se aplic nti funcia edge ca o variabil de trei parametri ce reprezint imaginea pe care se aplic funcia, tipul de aproximare folosit n determinarea conturului i pragul returnat mai sus de aceeai funcie. Aceast funcie ignor toate pragurile mai mari dect cel setat, iar n cazul n care nu avem definit un prag, sau valoarea pragului este nedeterminat, funcia allege un prag automat Figura 16.

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.

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');%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<prag % atata timp cat suma pixelilor obiect(albi) nu % depaseste pragul setat se repeta operatiile de % detectie de contur cu un prag mai mic

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.

3.1.3. Algoritmul de eliminare al umbrelor


n vedera eliminrii umbrelor rezultate n urma fotografierii am luat n considerare c umbrele sunt cel mai apropiate de nuan de gri, cu uoare influene ale culorii predominante a fructului. De aici am dedus ca zonele corespunztoare n planul RGB umbrelor trebuie s aibe pixelii corespunztori unei poziii apropiai ca valoare (n cazul unei nuane de gri, perfect uniforme, pixelii asociai trebuie s fie de valori identice ntre 0 i 255 n funcie intensitatea griului). Astfel am realizat o diferen ntre valorile fiecaror trei pixeli, luai doi cte doi, suprapui din planul RGB, rezultatele urmnd s fie considerate n valoare absolut. Cele trei valori astfel obinute sunt comparate ntre ele, exercitnd interes doar valoarea cea mai mare. Aceast valoare urmeaz s fie comparat cu un prag de 15 stabilit experimental, iar n cazul n care pragul este mai mare dect valoarea maxim, pixelul respectiv va fi considerat umbr i va prelua valoarea 0 corespunztoare culorii negru.

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

if max(dist) < prag % % % % orig_img(m,n,1) = orig_img(m,n,2) = orig_img(m,n,3) = end end end

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)

3.1.4. Algoritmul de detecie a formei


Acest algoritm se aplic asupra imaginii rezultate n urma rulrii algoritmului de eliminare a umbrelor. Primul pas n realizarea acestui proces este este transformarea imaginii fr umbre n imagine n nivele de gri, obiectiv atins prin folosirea funciei rgb2gray. Ulterior prin intermediul funciei bwboundaries se determin limitele exterioare ale unui obiect, precum i contururile unor guri coninute n interiorul obiectului, returnndu-se dou elemente folosite pe parcursul programului n cadrul a diverse funcii. Prefixul bw implic faptul c imaginea trebuie s fie neaprat binar n care pixelii cu valoare diferit de 0 reprezint pri constituente ale obiectului, iar pixelii de valoare 0 (negri) reprezint pixeli de fond. Primul element, notat B, reprezint o matrice de de n 2 elemente, unde n reprezint numrul de pixeli ce intr n alctuirea conturului, n B fiind localizat mai exact conturul obiectului din imagine, fiecare linie din matricea amintit codificnd de fapt coordonatele unui anumit pixel component al conturului. Aceste coordinate sunt ordonate n sensul acelor de ceasornic. Al doilea argument de ieire, notat L, reprezint o matrice etichet. Sunt etichetate att obiectele ct i gurile coninute. L este o matrice bidimensional de valori ntregi nenegative ce reprezint o regiune contigu din imagine. Observm c aceast funcie este dependent de doi parametrii: primul reprezint imaginea de intrare, pe care se aplic funcia, iar cel deal doilea, care este un ir de caractere predefinit n Matlab, i anume noholes, grbete operarea algoritmului, obligndu-l s realizeze cutri numai pentru contururile obiectelor, cele ale eventualelor guri fiind eliminate. Mai departe avem definit funcia label2rgb care realizeaz conversia mtricii eticheta L, obinut mai sus, ntr-o imagine colorat RGB cu scopul de vizualizare a regiunilor etichetate. Matricea etichet L este vzut, de asemenea, ca prim parametru al acestei funcii. Cel deal doilea 37

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.

Figura 27: Rezultatul final al algoritmului de determinare a formei


function [aspect] = forma(img) gray_img = rgb2gray(img); % se transforma in tonuri de gri imaginea % originala [B,L] = bwboundaries(gray_img,'noholes'); % determina matricea B in care se % gasesc contururile obiectelor din imagine % pt fiecare obiect in B se gaseste o matrice % de nx2 elemente unde n este numarul de pixeli % ce alcatuiesc conturul, pe fiecare linie din % matrice fiind tinute coordonatele pixelilor % din contur. De asemenea se returneaza si o % matrice L continand etichete pentru fiecare % obiect gasit in imagine forma_img = label2rgb(L, @jet, 'black');% Se retin obiectele gasite si se % transpun pe un fond negru figure(3); imshow(forma_img); title('Aspectul fructului'); hold on; % se retine imaginea plotata pentru a se afisa % contururile peste aceasta

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.

3.1.5. Algoritmul de determinare a dimensiunii


Metoda aleas pentru determinarea dimensiunii obiectelor fotografiate este una relativ simpl. Imaginea pe care se lucreaz eate imaginea rezultat n urma algoritmului de elimiare a umbrelor. Iniial intraga imagine este parcurs n vederea determinrii ariei totale a acesteia, dup care se calculeaz aria obiectului coninut n imagine. Imaginea rezultat n urma eliminrii umbrelor reprezint obiectul fotografiat nconjurat de un fundal negru dup cum se poate observa n Figur xxx. Aria obiectului se determin prin adunarea tuturor pixelilor care au valoarea diferit de 0 (pixeli care nu sunt negri). Pentru a obine o valoare final cuprins n intervalul [0;1] suprafata ocupat de fruct este mprit la aria total a imaginii. n acest interval valoarea 1 reprezint valoarea maxim, practic, imposibil de atins deoarece asta ar nsemna c fructul ocup ntreaga imagine. 40

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

3.1.6. Algoritmul de detecie a culorii


i n cazul acestui algoritm imaginea care a fost luat n considerare pentru prelucrare este cea obinut n urma eliminrii umbrelor din imaginea original. n vederea realizrii lui am considerat o variabil denumit generic contor, care n urma parcurgerii ntregii imagini se incrementeaz cu fiecare pixel, de culoare diferit de negru, ntlnit. Ulterior, se realizeaz suma valorilor fiecrui pixel pe fiecare linie, obinndu-se o matrice tridimensional (o dimensiune pentru fiecare din planurile R, G, B) cu o coloan i r rnduri, unde r reprezint numrul de rnduri ale imaginii. La matricea astfel obinut se realizeaz o sum a coloanei specifice fiecrui plan, obinndu-se n final trei valori ce indic luminozitatea tuturor pixelilor din imagine pentru fiecare plan de culoare. Dup obinerea acestor valori are loc o mediere prin mprirea lor cu valoarea final a variabilei contor. n final realizm o normalizare a valorilor recent obinute prin mprirea lor cu valoarea numeric 255. n acest moment am ntlnit o nou problem n ceea ce privete compatibilitatea dintre valorile determinate n urma procesrii imaginii cu algoritmii specifici i sistemul decizional cu logic fuzzy. Algoritmul de detecie a culorii returneaz trei valori distincte, cte una asociat fiecrui plan, n timp ce intrarea corespunztoare culorii n sistemul de sortare cu logic fuzzy poate primii o singur valoare numeric pentru a o introduce n procesul de fuzzificare. Astfel, trebuie cutat o soluie pentru a obine informaia de nuan coninut ntr-o singur variabil numeric. Soluia gsit pentru a trece peste acest impediment a fost de a trece din planul RGB de reprezentare a imaginii n planul HSV. Aparent problema nu este rezolvat deoarece la fel ca i planul RGB i planul HSV ncapsuleaz trei valori ale informaiei de culoare. Totui, diferena dintre cele dou reprezentri este aceea c, spre deosebire de planul RGB, n care culoarea final se obine prin combinarea celor trei plane cromatice, informaiile de culoare coninute n reprezentarea 41

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

= (o(:,:,1)/contor)/255; % % green = (o(:,:,2)/contor)/255; % % blue = (o(:,:,3)/contor)/255; % %

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

3.1.7. Algoritmul de returnare a obiectelor i a strii acestora


Acest algoritm implementeaz ultima etap n derularea ntregului process de sortare bazat pe sisteme cu logic fuzzy, i anume afiarea tipului obiectului i a strii acestuia n urma rulrii 42

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

3.1.8. Funcia principal


Funcia principal reprezint seciunea de cod n care sunt apelate n ordine toate funciile enumerate mai sus, fiecare realiznd algoritmul corespunztor ei. Aceasta este prezentat n rndurile ce urmeaz:
clear all; close all; clc; addpath(genpath(pwd)); %% Preluare imagine fruct img = achizitie(); % se preia imaginea figure(1); imshow(img); title('Imaginea originala'); %% Detectie contur contur_img = contur(img); % detectia de contur a fructului % conturul poate fii eronat din cauza umbrelor

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

%% Recunostere fruct val_fr = [aspect dimensiune culoare]; fruct = rec_fruct(val_fr); disp(fruct)

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:

Figura 29: Editarea Regulilor

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

3.2.1.2. Definirea mulimilor fuzzy pentru variabila de intrare dimensiune


Universul discuiei variabilei de intrare dimensiune, notat Dimensiune, se definete pe intervalul [0;0,45]. Pentru definirea mulimilor fuzzy pentru variabila de intrare Dimensiune se folosete o acoperire a universului variabilei de intrare, prin dou mulimi trapezoidale asimetrice (FoarteMic i FoarteMare) i trei mulimi triunghiulare asimetrice (Mic, Mediu, Mare) astfel nct cele cinci mulimi nu formeaz o partiie datorit intervalului de definire a mulimilor Mare i FoarteMare dup cum se observ n figuta de mai alturat. Intervalul de definire a 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.

47

Figura 31: Mulimile fuzzy peste universul discuiei variabilei de intrare Dimensiune

3.2.1.3. Definirea mulimilor fuzzy pentru variabila de intrare culoare


Universul discuiei variabilei de intrare culoare, notat Culoare, se definete pe intervalul [0;45]. Pentru definirea mulimilor fuzzy pentru variabila de intrare Aspect se folosete o acoperire a universului variabilei de intrare, prin patru mulimi trapezoidale asimetrice (Rou, Portocaliu, Galben, Verde) astfel nct cele patru mulimi s formeze o partiie fuzzy. La fel ca i n cazurile de mai sus intervalul de definire a universului discuiei i a mulimilor fuzzy coninute n acesta a fost obinut pe baza rezultatelor experimentale obinute n urma rulrii scriptului Matlab pentru extragerea caracteristicilor obiectelor din imagini. Iniial universul discuiei pentru variabila de intrare Culoare a fost definit pe intervalul [0;255]. n aceast reprezentare, universul discuiei este domeniul valorilor posibile pentru nuan, X=[0;255], iar variabila din universul discuiei este nuana. Pentru fiecare culoare vom avea definit cte o mulime fuzzy. Ca urmare avem un total de zece mulimi fuzzy, cu funciile de apartenena notate prin: Rou, Orange, Galben, Verde, Cyan, Albastru, Purpuriu, Mov, Roz i iari Rou cu valori n [0;255], formnd o partiie. Pentru simplitatea reprezentrii, alegem o abordare simpl din literatur de specialitate n care cele zece mulimi sunt reprezentate prin funcii de apartenena liniare pe poriuni (triunghiulare i trapezoidale). Aezare este identic cu cea a unui cerc trigonometric intrarea avnd ca mulime de nceput i sfrit mulimea Rou. n urma extragerii caracteristicilor de culoare din obiectele pozate s-a observat un anumit decalaj intre valoarea culorii medii a obiectului i corespondentul acesteia din intrarea Culoare. De exemlu, pentru Avocado, un fruct de culoare verde intens (specificat pe axa culorilor prin intervalul[62;119]), valoarea culorii medii extrase de algoritmul de detecie a culorii este de aproximativ 40 corespunztor culorii galben pe axa culorilor. n urma stabilirii regulilor sistemului cu logic nuanat, regula asociat fructului Avocado nu va fi activat datorit existenei acestui decalaj, acest fapt conducnd la erori n afiarea rezultatelor finale. Cele zece mulimi i parametrii lor sunt prezentate n figur de mai jos:

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

3.2.2.2. Definirea mulimilor fuzzy pentru variabila de ieire a strii fructului


La fel ca i n cazul variabilei TipFruct, i n cazul variabilei de ieire care reflect starea fructului, denumit generic StareFruct, trebuie avut n vedere c sistemul cu logic fuzzy are caracter decizional. Universul discuiei n cazul acesteia este cuprins n intervalul [-0.1;1.1], iar mulimile fuzzy asociate variabilei de ieire StareFruct sunt n numr de dou, respectiv Necopt i Copt fiecare definite pe un ntreg din intervalul de mai sus, cu o lime la stnga i respectiv dreapta de 0.1. Cele dou mulimi, illustrate n figur de mai jos, sunt mulimi fuzzy triunghiulare, definite astfel nct nu formeaz o partiie fuzzy.

Figura 35: Mulimile fuzzy peste universul discuiei variabilei de iesire StareFruct

3.2.3. Definirea setului de reguli pentru SLF


Dup ce am stabilit structura celor trei variabile de intrare i a celor dou variabile de ieire este nevoie de conceperea unor reguli de baza dup care va funciona sistemul de sortare. n funcie de valorile preluate de intrrile acestui sistem, valori rezultate prin prelucrarea imaginilor cu algoritmii prezentai anterior, vom obine la ieirile sistemului decizional un anumit tip de fruct aflat ntr-o anumit stare. Regulile de tip Ifthen/Dacatunci ale sistemului cu logic fuzzy reflect 50

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)

3.2.4. Funcionarea sistemului cu logic fuzzy


Pentru a nelege mai bine modul n care funcioneaz sistemul de srtare cu logic fuzzy proiectat anterior voi prezenta n cele ce urmeaz un exemplu cu modul de activare a regulilor. Exemplul din fereastr de mai jos se refer la cazul n care aspectul este cuprins n intervalul [0.8375;0.88], dimensiunea se afl n intervalul [0.042;0.08], iar culoarea este definite pe intervalul[31;45]. Aspectul are valoarea 0,87239, dimensiunea are valoarea 0,067996 i culoarea are valoarea 35,4118. Pentru valoarea 0,87239 a aspectului, regulile ce se activeaz sunt: 9 i 10. fiecare din aceste reguli se activeaz cu un anumit grad,n cazul celor dou gradul de activare fiind similar de 100%. Pentru cazul dimensiunii, regulile ce se pot activa sunt: 1, 5, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 18. La fel ca n cazul aspectului , fiecare din aceste reguli se activeaz ntr-o anumit proporie: regulile 1, 6, 7, 10, 14, 15, 16, 18 se activeaz n proporie de 100% i regulile 5, 9, 12, 13, 17 n proporie de aproximativ 25%. Pentru culoare, regulile ce se activeaz sunt: 1, 2, 4, 6, 8, 10, 12, 14, 16, 18, toate activate n proporie de 100%. Combinnd cele trei seturi de reguli ce se pot activa obinem setul final de o singur regul n acest caz, i anume regula 10.

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

3.2.5. Rezultatele proiectrii sistemului de sortare


Rezultatele obinute n urma proiectrii sistemului de sortare sunt prezentate n figurile de mai jos, prin intermediul a trei grafice tridimensionale ce indic tipul fructului, i a altor trei ce indic starea fructului n funcie de cele trei intrri considerate dou cte dou.

Figura 37: Ieirea TipFruct n funcie de ntrrile Aspect i Dimensiune

Figura 38: Ieirea StareFruct n funcie de intrrile Dimensiune i Culoare

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

S-ar putea să vă placă și