Metoda de Selectionare Bazata Pe Fuzzy Logic
-
Upload
razvan-stanescu -
Category
Documents
-
view
132 -
download
7
Transcript of Metoda de Selectionare Bazata Pe Fuzzy Logic
Metodă de selecţionare bazată pe
Fuzzy Logic
Capitolul 1 - Introducere
1.1 Tema proiectului
Metodele de selecţionare bazate pe Fuzzy Logic reprezintă o soluţie modernă şi
avansată în realizarea sistemelor decizionale, bazate pe diverse trăsături asemănătoare ale
obiectelor. În această lucrare s-a propus realizarea proiectării şi dezvoltării unui astfel de
model de clasificare, bazat pe extragerea unor caracteristici şi apoi utilizarea acestora pentru
realizarea selecţiei (luarea deciziei). Intrarea acestui model constă în imagini color ale
obiectelor de clasificat.
Aplicaţia beneficiază de o implementare pe două nivele, respectiv primul nivel fiind
reprezentat de algoritmii de extragere a celor trei caracteristici (marime, culoare, aspect
fizic), realizaţi în mediul de dezvoltare integrat (IDE) Matlab, iar cel de-al doilea nivel
constând în proiectarea unui model de decizie cu Fuzzy Logic, de tip Mamdani, cu trei
intrări, corespunzătoare trăsăturilor obiectelor şi două ieşiri, ce semnifică tipul, respectiv
starea obiectelor. Ulterior, este realizată legatura între sistemul de selecţionare şi parametrii
de intrare rezultaţi în urma prelucrării imaginilor cu algoritmii corespunzători.
Deoarece, sistemul în discuţie este unul decizional şi nu unul de control, am utilizat ca
metodă de defuzzificare metoda mediei maximelor (MOM). Valorile returnate la ieşire în
urma defuzzificarii sunt corelate cu variabilele lingvistice corespunzătoare în vederea afişării
rezultatelor finale, rezultate care dovedesc corectitudinea proiectării şi implementării
întregului proces.
1
1.1.1 Fundamentare teoretică
Logica Fuzzy a devenit o soluţie foarte promiţătoare pentru realizarea metodelor
decizionale. Tema acestei lucrări propune proiectarea eficientă a unui sistem de sortare
implementat pe baza logicii fuzzy. Pentru modelarea sistemului de clasificare şi a
algoritmilor de extragere a proprietăţilor obiectelor s-a folosit mediul de dezvoltare integrat
Matlab, şi mai exact Image Processing Toolbox, şi Fuzzy Logic Toolbox.
1.1.2 Metodologia propusă
Fig.1 - Schema logică pentru metodologia propusă
2
Punctul de plecare în implementarea unei astfel de metode de clasificare este
reprezentat de specificaţiile sistemului. Figura de mai sus reprezintă schema logică a
metodologiei propuse.
După ce au fost făcute specificaţiile sistemului de selecţionare urmează proiectarea
unui model decizional cu Fuzzy Logic în Matlab FIS Editor. Acest model este analizat, testat
şi ajustat până când rezultatele experimentale corespund cu performanţele cerute.
1.2 Logica Fuzzy
Logica Fuzzy (cuvant provenit din limba engleza care inseamna logică vagă) este o
formă de logică multi-valorica derivată din setul teoretic fuzzy, folsită pentru concluzionarea
unor propoziţii ale căror valoare de adevăr este mai mult aproximativă decât precisă. Spre
deosebire de logica clasică, care lucrează cu două valori numerice exacte (0 pentru fals şi 1
pentru adevărat), logica fuzzy foloseşte o plajă continuă de valori logice cuprinse în
intervalul [0;1], unde 0 indică falsitatea completă, iar 1 indică adevărul complet. Astfel, dacă
în logica clasică un obiect poate aparţine (1) sau nu (0) unei mulţimi date, în logica fuzzy
putem defini gradul de apartenenţă al obiectului la mulţime care poate lua valori între 0 şi 1.
Mai mult, atunci când sunt folosite variabile lingvistice, gradele de apartenenţa pot fi
controlate prin funcţii specifice.
Diferenţă esenţială dintre logica clasică şi cea fuzzy, este faptul că legea “terţului
exclus", nu mai este valabilă. În Figura 2 de mai jos este ilustrată diferenţa între logica
booleană şi cea fuzzy. Dacă în primul caz există o delimitare clară între cele două valori de
adevăr, în al doilea caz există o zonă de nedeterminare, în care valoarea de adevăr poate fi 0
şi 1 în acelaşi timp, într-o anumită măsură dată de gradul dapartenenta.[3]
3
Fig. 1 - Ilustrarea mulţimilor “TRUE” şi “FALSE” în logica booleană (a) şi în logica fuzzy (b) [3]
1.2.1 Mulţimile Fuzzy
Conceptul de mulţime fuzzy, introdus de către Zadeh, a apărut ca o urmare firească a
imposibilităţii de a modela un sistem indenit cu ajutorul unor instrumente matematice
precise, cum ar fi cele ale teoriei probabilistice.
Fie X o colecţie de obiecte. Mulţimea fuzzy A definită pe mulţimea X este o mulţime
de perechi ordonate:
{ ( ) / }AA x x
unde ( )A x reprezintă funcţia caracteristică sau funcţia de apartenenţa a lui x la mulţimea A.
Semnul ”/" este folosit doar pentru a delimita valoarea reală x de valoarea funcţiei de
apartenenţa ( )A x .
Functia de apartenenţa se defineşte pe intervalul de valori posibile ale lui x cu valori
reale, în intervalul [0,1]: ( )A x [0; 1].
Dacă A conţine doar 0 şi 1, atunci A nu mai este o mulţime fuzzy, ci una
caracteristică logicii clasice. Dacă funcţia de apartenenţa este discretă, atunci mulţimea A se
scrie ca:
1 1 2 21
/ / ... / /n
n n i ii
A x x x x
Dacă funcţia de apartenenţa este o funcţie continuă, atunci mulţimea fuzzy A se scrie
ca:
4
( ) /A
X
A x x
unde prin integrare se înţelege totalitatea punctelor ( ) /A x x .
Pentru o mai bună înţelegere a mulţimilor fuzzy definim cinci concepte:
1. Variabilă lingvistică x : o proprietate, un atribut al obiectului (obiectelor) în discuţie
2. Valoare lingvistică A: un adverb, adjectiv asociatvariabilei lingvistice, care dă şi numele
mulţimii fuzzy asociate
3. Universul discuţiei X : o mulţime clasică, tranşantă, pe care se definesc mulţimile fuzzy
4. Gradul de apartenenţa : arată masura în care un element aparţine unei mulţimi fuzzy,
[0;1]
5. Funcţia de apartenenţa A : asociază fiecărui element x gradul de apartenenţa la mulţimea
fuzzy A :
( ) : [0;1]A x X
Astfel, mulţimea fuzzy A este complet determinată de mulţimea perechilor ordonate:
{( , ( )) | }AA x x x X
Funcţiile de apartenenţa pot fi de mai multe tipuri. De exemplu, în toolboxul de Fuzzy
Logic din Matlab sunt implementate 11 tipuri de mulţimi fuzzy reprezentate în Figură 3.
Acestea sunt triunghiulare (trimf), trapezoidale (tramf), de tip Gauss (gaussmf şi gauss2mf),
clopot generalizat (gbellmf), sigmoidale (sigmf, dsigmf, psigmf) şi curbe polinomiale (zmf,
pimf, smf).
Un tip special de mulţime fuzzy este mulţimea de tip “singleton” a cărei funcţie de
apartenenţa are valoarea 1 doar într-un punct particular şi valoarea 0 în rest. [1]
5
Figura 2: Cele 11 tipuri de mulţimi fuzzy [7]
1.2.2 Variabile lingvistice
În timp ce variabilele matematice iau de obicei valori numerice, în aplicaţiile cu
logică fuzzy, variabilele lingvistice nenumerice sunt adesea folosite pentru a facilita
exprimarea regulilor şi a faptelor.
O variabilă lingvistică precum “vârsta” poate lua o valoare precum “tânăr” sau
antonimul acestuia “bătrân”. Oricum, marea utilitate a variabilelor lingvistice este aceea că
pot fi modificate prin intermediul pragurilor lingvistice aplicate termenilor primari. De
asemenea, pragurile lingvistice pot fi asociate unor funcţii certe.
1.2.3 Grade de adevăr
Logica fuzzy şi logica probalisică sunt similare din punct de vedere matematic,
ambele având grade de adevăr cuprinse în intervalul 0-1, dar conceptual sunt diferite, datorită
6
interpretărilor diferite. Logica fuzzy corespunde unor “grade de adevăr”, în timp ce logică
probalistică corespunde “probabilităţii, posibilităţii”. Consecvent, probabilitatea nu are nimic
în comun cu fuzzificarea, acestea sunt concepte diferite care la o privire superficială par
similare din cauza folosirii aceluiaşi interval de valori numerice reale, [0;1]. Totuşi, din
moment ce teoreme, precum cea a lui De Morgan, au aplicabilităţi duale, şi proprietăţile
variabilelor aleatoare sunt similare cu proprietăţile stărilor logice binare, se pot observa
cazurile în care ar putea apărea confuzii.
1.2.4 Aplicarea valorilor de adevăr
O aplicaţie de bază ar putea caracteriza gamele de variaţie pentru o variabilă continuă.
De exemplu, măsurarea temperaturii pentru împiedicarea blocării frânelor unui automobil
poate avea mai multe funcţii membre separate, definind intervale de temperatură particulare
necesare pentru controlul corespunzător al frânelor. Fiecare funcţie indică aceeaşi valoare a
temperaturii către o valoare de adevăr în intervalul [0;1].
În această imagine, înţelesul expresiilor RECE, CALD, FIERBINTE este reprezentat
de funcţii care acoperă scara de temperatura. Un punct conţinut în acest interval are trei
“valori de adevăr”- una pentru fiecare din aceste trei funcţii. Linia verticală din imagine
reprezintă o anumită temperature pe care cele trei săgeţi (valori de adevăr) de ecartament o
indică. Din moment ce sageata roşie pointeaza spre zero, acesta temperatură poate fi
interpretată ca fiind “nu fierbinte”. Sageata portocalie (care indică spre 0,2) descrie această
7
temperatură ca fiind “uşor caldă”, în timp ce sageata albastră (care pointeaza la 0,8) descrie
temperatura ca fiind “destul de rece”. [1]
1.2.5 Raţionament Fuzzy
Raţionamentul fuzzy (denumit si raţionamentul aproximativ) este analogul logicii
predicatelor pentru raţionamentul cu propoziţii precise şi este, aşadar, o extensie a logicii
propoziţiilor clasice. Raţionamentul fuzzy foloseşte propoziţii fuzzy care sunt afirmaţii ce
pot fi adevărate în anumite grade cuprinse în intervalul [0; 1]. Aceste propoziţii sunt
exprimate folosind limbajul natural. Un model de propoziţie fuzzy este:
“ este ”
unde este o variabilă lingvistică iar este o valoare lingvistică a variabilei . Înţelesul
acestei propoziţii este determinat de mulţimea fuzzy definită pe universul discuţiei variabilei .
Regulile fuzzy sunt propoziţii condiţionale de tipul DACĂ-ATUNCI care folosesc
variabile şi valori lingvistice fuzzy:
“ Daca este atunci este ”
unde şi sunt valori lingvistice definite prin mulţimi fuzzy pentru variabilele lingvistice , respectiv y.
Partea DACĂ a regulii ( este ) se numeşte premisă sau antecedent, pe când partea
ATUNCI ( este ) se numeşte concluzie sau consecvent.
Interpretarea unei reguli fuzzy are loc în două etape: mai întâi se evaluează premisa
iar apoi se aplică acest rezultat concluziei. Dacă premisa este adevărată într-un anumit grad,
atunci concluzia este adevărată în acelaşi grad.
În logica Booleană principalele instrumente de raţionament sunt tautologiile, cum
sunt modus ponens şi modus tolens. În logica fuzzy este folosit acelaşi principiu, dar în locul
8
premisă implicaţie concluzieconcluzie
ABB
propoziţiilor tranşante sunt folosite propoziţii şi reguli fuzzy. Cea mai folosită tautologie în
raţionamentul fuzzy este modus ponens generalizat (MPG):
unde şi sunt mulţimile fuzzy şi modificate.
Aflarea concluziei se realizează în urma procesului de inferenţă (deducţie) fuzzy, care matematic se poate rezolva folosind regula compoziţională de inferenţă propusă de Zadeh:
= o ( )
unde: “” simbolizează operaţia de implicaţie (evaluarea regulii fuzzy);
“o” simbolizează operaţia de compunere a celor două propoziţii fuzzy din MPG.
Folosind funcţiile de apartenenţă avem:
Trebuie stabiliţi operatorii pentru cele două operaţii: implicaţie şi compunere. Pentru implicaţie cei mai folosiţi operatori sunt:
min
(Mamdani)
produs
(Larsen)
Pentru compunere cel mai des se foloseşte compunerea max-min:
9
,
unde şi sunt universurile discuţiei pentru cele două variabile, respectiv .
Folosirea compunerii max-min împreună cu implicaţiile min sau produs conduc la
cele mai folosite mecanisme de inferenţă compoziţională:
Inferenţa compoziţională max-min, sau Mamdani
,
Inferenţa compoziţională max-produs, sau Larsen
,
* este o mulţime fuzzy rezultată în urma unui proces de fuzzificare (ce se va discuta în paragraful următor) şi de cele mai multe ori este o mulţime fuzzy singleton. Inferenţa compoziţională este ilustrată în Figura 4, pentru trei tipuri de inferenţe: Mamdani, Larsen şi
Takagi-Sugeno. Având în vedere cazul particular de mulţime fuzzy singleton pentru *, inferenţa compoziţională max-min se reduce la formula:
,
,
În cazul în care mulţimea fuzzy este de tip Takagi-Sugeno de ordin zero (mulţime fuzzy singleton) indiferent de operatorul folosit pentru operaţia de compunere, rezultă inferenţa compoziţională Takagi-Sugeno.[1]
10
Fig. 3 - Inferenţa compoziţională [8]
1.2.6 Proprietăţile mulţimilor Fuzzy
Normalitatea. O mulţime fuzzy este normală dacă valoarea maximă afunctiei de
apartenenţa este 1:
( ) 1x x
11
unde x reprezintă supremul sau maximul lui x . În caz contrar vom spune că mulţimea este
subnormală.
Convexitatea. O mulţime fuzzy A este convexă dacă şi numai dacă mulţimile A
definite ca:
{ | ( ) }AA x x
sunt convexe pentru orice [0;1].
Punctul “crossover”. Pentru o mulţime A punctul “crossover” este elementul
pentru care funcţia de apartenenţa are valoarea 0,5.
Valori singulare fuzzy. O valoare singulară (engl. singleton) este o mulţime fuzzy
care are un grad de apartenenţa pentru o singură valoare. Fie A o valoare singulară pentru un
interval X , x X , atunci A poate fi scrisă ca: /A x
Folosind această definiţie, o mulţime fuzzy poate fi considerată o reuniune de valori
singulare. [1]
Capitolul 2 - Sisteme Fuzzy
Un sistem cu logică fuzzy (SLF) permite modelarea şi implementarea funcţionării
oricărui proces prin descrierea relaţiilor de intrare-ieşire folosind variabile şi valori
lingvistice şi reguli fuzzy DACĂ-ATUNCI (IF-THEN). Valorile numerice tranşante ale
variabilelor de ieşire rezultă prin aplicarea unor operaţii: fuzzificare, inferenţă fuzzy,
defuzzificare, asupra valorilor numerice ale variabilelor de intrare.
După Brubaker dezvoltarea unui sistem cu logică fuzzy este justificată pentru
sistemele a căror funcţionare este prea complexă pentru a putea fi definită adecvat prin
tehnici tradiţionale:
sisteme prea complexe pentru a fi modelate precis;
12
Fuzzificare Inferenţă DefuzzificareA* B* y*x*
Valori tranşante de intrare Valori tranşante de ieşire
Mulţimi fuzzy de intrare (A) Mulţimi fuzzy de ieşire (B)Baza de
reguli fuzzy
Baza de cunoştinţe
mulţimi şi reguli fuzzy
flux informaţional
flux de calcul
sisteme cu funcţionare mediu spre puternic neliniară;
sisteme ce prezintă anumite incertitudini fie în intrări fie în funcţionare.
În Figura 5. este prezentată structura unui SLF. Specific acestei structuri este lipsa
fluxului informaţional de la Baza de cunoştinţe, atât înspre interfaţa de Fuzzificare cât şi
înspre interfaţa de Defuzzificare [1]
Figura 4: Schema bloc a unui sistem cu logică fuzzy [1]
În structura SLF sunt cuprinse modulele:
Fuzzificare =: interfaţa ce transformă valorile tranşante ale variabilelor de intrare
( *) în mulţimi fuzzy de tip singleton ( *);
Baza de cunoştinţe =: furnizează modulului Inferenţă informaţiile necesare:
- mulţimile fuzzy pentru variabilele de intrare ( );
- mulţimile fuzzy pentru variabilele de ieşire ( );
- baza de reguli fuzzy.
Inferenţă =: blocul care determină valorile fuzzy ale variabilelor de ieşire ( *)
folosind inferenţa fuzzy;
Defuzzificare =: interfaţa ce transformă valorile fuzzy ale variabilelor de ieşire în
13
valori tranşante ( *).
1.3 Sisteme cu locică 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 utilizează mulţimi fuzzy obişnuite, pe când sistemele Takagi-Sugeno (T-S) folosesc în concluzie funcţii (liniare) a variabilelor de intrare.
Fluxul de date dintr-un SLF este prezentat grafic în Figura 6. Valorile tranşante * şi
* ale variabilelor de intrare sunt fuzzificate rezultând mulţimile fuzzy singleton *,
respectiv *. Gradele de activare (adevăr) ale celor două reguli sunt , respectiv şi sunt valori intermediare folosite în cadrul inferenţei. Menţionăm că regula R2 este o regulă compusă conţinând în partea de premisă ambele variabile legate prin conectivul fuzzy ŞI. Pentru conectivul ŞI este folosit operatorul “min”. Valorile fuzzy parţiale ale variabilei de
ieşire furnizate de cele două reguli sunt * şi * în cazul unui SLF T-S de ordin zero,
respectiv * şi * în cazul unui SLF T-S de ordin unu. Aceste valori parţiale sunt agregate şi apoi defuzzificate folosind metoda de defuzzificare numită medie ponderată. În urma
defuzzificării se obţine valoarea tranşantă * a variabilei de ieşire corespunzătoare valorilor
tranşante * şi * ale celor două variabile de intrare.[1]
14
Fig. 5 - Prelucrarea semnalelor într-un sistem cu logică fuzzy Takagi-Sugeno [1]
1.4 Sistemele cu logică Fuzzy Mamdani
Metoda de inferenţă Mamdani este cea mai des folosită în metodologia fuzzy. Această
metodă a fost de departe cea dintâi metodă de control utilizând logică fuzzy. A fost propusă
în 1975 de către Ebrahim Mamdani într-o încercare de a controla o combinaţie între un motor
pe bază de abur şi un boiler prin sintetizarea unui set de control cu reguli lingvistice obţinut
pe bază de 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 afişată în Figura 7.
Inferenţa de tip Mamdani, Figura 8, presupune că funcţiile member de ieşire să fie
mulţimi fuzzy. După finalizarea procesului de agregare, există o mulţime fuzzy pentru
fiecare variabilă de ieşire care necesită defuzzificare. Este posibil, şi în multe cazuri mult mai
eficient, să folosim un singur vârf ca ieşire a funcţiilor member decât un set de mulţimi
fuzzy distribuite. Acest tip de ieşire poartă numele de ieşire a funcţiilor member “singleton”,
şi poate fi gândit că un set fuzzy pre-defuzzificat. Ea îmbunătăţeşte eficienţa procesului de
15
defuzzificare, deoarece simplifică modul de calcul cerut de metoda mult mai generală
Mamdani, care determină centrul de greutate a unei funcţii bidimensionale. Mai degrabă
decât integrarea în funcţia bidimensională pentru a determina centrul de greutate, putem
folosi o medie ponderată pentru câteva puncte date. [1]
Fig. 6 - Structura unui sistem cu logică fuzzy Mamdani [1]
Fig. 7 - Interpretarea diagramei fuzzy de inferenţa de tip Mamdani [1]
16
Capitolul 3 - Instrumente software
1.5 Mediul de programare MATLAB
MATLAB (de la Matrix Laboratory) este un mediu de dezvoltare pentru calcul
numeric şi analiză statistică care conţine limbajul de programare cu acelaşi nume, creeat de
MathWorks. MATLAB permite manipularea matricilor, vizualizarea funcţiilor,
implementarea algoritmilor, crearea de interfeţe şi poate interacţiona cu alte aplicaţii.
Este un limbaj interactiv de nivel superior care permite realizarea unor cerinţe de
calcul dificile cu o viteză de lucru mai ridicată decât cea a limbajelor de programare
tradiţionale, precum C, C++ sau Fortran. Chiar dacă e specializat în calcul numeric, există
pachete care îi permit să interacţioneze cu motoarele de calcul simbolic gen Maple. Un
pachet adiţional, Simulink, oferă posibilitatea de a realiza simulări ale sistemelor dinamice şi
îmbarcate utilizând modele matematice. MATLAB e utilizat pe larg în industrie, în
universităţi şi e disponibil cross-platform, sub diverse sisteme de operare: Windows,
GNU/Linux, UNIX şi Mac OS.
MATLAB pune la dispoziţia utilizatorului un set de Toolbox-uri specializate pentru
rezolvarea diverselor cerinţe în cel mai optim mod. Astfel, în cea ce priveşte preluarea şi
procesarea imaginilor avem definite două toolbox-uri şi anume: Image Acquizition şi Image
Processing. Acest mediu suportă date standard şi formate de imagine, incluzând JPEG,
JPEG-2000, TIFF, PNG, HDF, HDF-EOS, FITS, Microsoft Excel, ASCII şi fişiere binare.
De asemenea, acesta suportă formate de imagini multibandă BIP şi BIL, precum cele
utilizate de LANDSAT, de exemplu. Nivelul jos de intrări/ieşiri şi funcţiile de mapare a
memoriei oferă posibilitatea de a dezvolta rutine client pentru a opera cu orice format de
date. [2]
17
1.6 Image Acquizition Toolbox
Image Acquizition Toolbox permite achiziţia videoclipurilor şi imaginilor direct în
MATLAB şi Simulink de la unităţi hardware compatibile PC. Hardware-ul poate fi detectat
automat şi configurat în conformitate cu cerinţele problemei, previzualizând achiziţia, după
care are loc achiziţia clipurilor video şi imaginilor. Având 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 până la camere ştiinţifice performanţe care
confruntă iluminatul slab, viteză ridicată, precum şi alte provocări.[4]
1.7 Image Processing Toolbox
Softul Image Processing Toolbox oferă un set comprehensiv de algoritmi-referinţă
standard şi unelte grafice pentru procesarea, analiza, vizualizarea şi dezvoltarea imaginilor.
Acesta oferă capacitatea de a restaura imagini afectate de zgomot sau degradate,
îmbunătăţirea imaginilor pentru creşterea inteligibitatii, extragerea de caracteristici,
analizarea formelor şi texturilor şi înregistrarea a două imagini. Cele mai multe funcţii ale
toolboxurilor sunt scrise în limbaj MATLAB deschis, oferind abilitatea inspectării
algoritmilor, modificării codului sursă, şi creării propriilor funcţii client.
Image Processing Toolbox suportă un set divers de tipuri de imagini, inclusive cu
gama dinamică ridicată, rezoluţii 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, incluzând camere digitale,
sateliţi sau senzori de aer, dispozitive de imagistică medicală, microscoape, telescoape şi alte
dispozitive stintifice. Aceste imagini pot fi vizualizate, analizate şi procesate în mai multe
tipuri de date, incluzând puncte flotante cu precizie singulară şi duală, şi întregi cu semn sau
fără semn pe 8, 16 şi 32 de biţi.
18
Împreună, cele două toolboxuri promovate de MATLAB, oferă un mediu complet
pentru dezvoltarea aplicaţiilor cu imagini personalizate. [4]
1.8 Afişarea şi explorarea imaginilor
Image Procesing Toolbox ramifică grafica MATLAB pentru a oferi capabilităţi de
afişare personaliizata ale imaginilor. Se pot creea afişaje cu imagini mulltiple într-o singură
fereastră, afişaje adnotate cu text şi grafice, şi crearea de afisaaje specializate precum
histogramele, profilele şi conturarea subiectelor.
Adiţional funcţiilor de afişaj, toolboxul dezvoltă o gamă de unelte interactive pentru
explorarea imaginilor. Se pot obţine informaţiile de imagine, mărirea şi conturarea acesteia
precum şi examinarea în detaliu a unei regiuni de pixeli. De asemenea, se poate manipula
interactiv regiuni de interes precum punctele, liniile, pologoanele, elipsele şi formele
neregulate sau se pot ajusta contrastele ori masura distanţele. [4]
1.9 Procesarea şi postprocesarea imaginilor
Acest toolbox oferă algoritmi referinta-standard pentru procesarea şi postprocesarea
cerinţelor pentru rezolvarea frecvenţelor probleme de sistem, precum zgomotul, intervalul
dinamic redus, optica defocalizată şi diferenţa între reprezentarea diferită a intrării respectiv
ieşirii unui dispoziv.
Algoritmii de detecţie a conturului permit determiarea marginilor unui obiect conţinut
într-o imagine. Aceşti algoritmi includ metodele Sobel, Prewitt, Roberts, Canny şi Laplasian
din Gaussian. Metoda Canny care este foarte performanţă poate determină contururi foarte
slabe fără a fi influenţă de zgomot.
Algorimii de segmentare a imaginilor determină regiunile de limitare dintr-o imagine.
Există diverse abordări ale segmentării imaginilor, incluzând determinarea automată a unui
prag, metode bazate pe contur, şi metode bazate pe morfologie precum transformarea
cotiturilor, utillizata des pentru segmentarea obiectelor focalizate.[4]
19
1.10 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. Interfaţa grafică prezintă paşii de urmat în în
proiectarea sistemelor fuzzy. Sunt puse la dispoziţie funcţii pentru numeroase metode cu
logică fuzzy comune, inclusiv gruparea fuzzy ori învăţarea neurofuzzy adaptivă.
Toolboxul permite modelarea comportamentală a sistemelor logice complexe folosind
reguli logice simple, iar apoi implementarea acestor reguli într-un sistem de inferenţă fuzzy.
Acest toolbox poate fi folosit ca un motor de inferenţă de sine stătător. Alternativ, se pot
folosi blocuri de inferenţă fuzzy în Simulink, iar simularea sistemului fuzzy se face folosind
un model comprehensiv al întregului sistem dinamic. [4]
1.11 Utilizarea Fuzzy Logic Toolbox
Acest toolbox oferă interfeţe grafice ce permit dezvoltarea de sisteme fuzzy clasice şi
moduri de recunoaştere. Folosind toolboxul se pot realiza sisteme de inferenţă fuzzy, sisteme
de inferenţă neurofuzzy adaptive şi clasificări fuzzy. Suplimentar, acesta oferă un controller-
bloc fuzzy care poate fi folosit în Simulink pentru modelarea şi simularea sistemelor fuzzy
de control logic. Din Simulink se poate genera cod în limbajul de programare C pentru a fi
folosit în aplicaţii imbricate ce include logică fuzzy. [4]
1.12 Construirea unui sistem de inferenţă fuzzy
Inferenţa fuzzy este o metodă de interpretare a vectorului de intrare, bazată pe reguli
definite de utilizator, şi asignarea de valori vectorului de ieşire. Utilizând interfeţele grafice
de editare şi afisre conţinute în Fuzzy Logic Toolbox, se poate defini setul de reguli, a
20
funcţiilor membre şi analiza comportamentul unui sistem de inferenţă fuzzy. Următoarele
interfeţe de editare şi afişare sunt oferite: [1][4]
FIS Editor - afişează informaţii generale despre sistemul de inferenţă fuzzy
Fig. 8 - Editorul FIS [4]
Membership Function Editor (Editorul Funcţiilor Membre) - permite afişarea şi editarea funcţiilor membre asociate variabilelor de intrare şi de ieşire a fişierului .FIS
Fig. 9 - Editorul de funcţii membre
21
Rule Editor (Editorul Regulilor) – permite afişarea şi editarea de reguli fuzzyfolosind unul din cele trei formate: sintaxa full-English, notaţie simbolică concisă, sau notaţie indexată.
Rule Viewer (Afişarea Regulilor) – permite observarea detaliată a comportamentului unui fişier .FIS pentru a diagnostica dinamica unor reguli specifice său studia efectul modificării variabilelor de intrare.
Surface Viewer (Afişarea Sprafetelor) – generează o suprafaţă tridimensională a doua variabile de intrare şi o ieşire a unui .FIS
Figura 10: Afişarea suprafeţelor
1.13 Modelarea utilizând logică fuzzy
Fuzzy Logic Toolbox permite aplicarea tehnicilor de clasificare şi neurofuzzy pentru
diverse mdele şi clasificarea comportamentelor sistemelor. [4]
Inferenţa neurofuzzy adaptivă
Utilizând Sistemul de Inferenţă Adaptivă Neurofuzzy (ANFIS) se pot forma funcţii
membre prin instruirea acestora cu date de intrare/ieşire, mai degrabă decât specificându-le
22
manual. Toolboxul foloseşte un algoritm de post-propagare singular sau în combinaţie cu
metoda pătratelor mai mici, capabilizand sistemul fuzzy să înveţe pe parcurs de la date.
Clasificarea fuzzy
Fuzzy Logic Toolbox 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 aparţine
unei clase într-un anumit grad specificat de gradul de apartenenţa. Este o metodă care arăta
cum să se grupeze obiectele ce populează un spaţiu multidimensional într-un număr
specificat de clase diferite. Funcţia “fcm” din Fuzzy Logic Toolbox porneşte cu o estimare
iniţială a centrelor de clase, menite să marcheze locaţia medie a fiecărei clase. De obicei,
estimarea iniţială acentrelor este cel mai probabil incorectă. În plus, “fcm” atribuie (aleator)
fiecărui obiect un grad de apartenenţa la fiecare clasă. Prin actualizarea iterativă a centrelor
claselor şi a gradelo de apartenenţa a tuturor obiectelor “fcm” deplasează iterativ centrele
claselor în locaţiile cele mai potrivite setului de date. Această iterare (optimizare) se bazează
pe minimizarea unei funcţii obiectiv ce reprezintă suma distanţelor de la fiecare obiect la un
centru de clasă, ponderat cu gradul de apartenenţa al acelui obiect la acea clasă. [6]
1.14 Defuzificarea
Operaţia de asignare a unei valori reale corespunzătoare unei funcţii de apartenenţa se
numeşte defuzzificare, fiind necesară în numeroase aplicaţii în care rezultatele sunt fuzzy.
În esenţă, defuzzificarea reprezintă procesul de transformare a unei mărimi fuzzy într-
o mărime crisp. Ieşirea unui proces (sistem) fuzzy poate fi - din punct de vedere logic -
reuniunea a două sau mai multe funcţii de apartenenţa fuzzy, definite pe universul de discurs
al variabilei de ieşire. De exemplu, putem presupune că ieşirea fuzzy a unui sistem este
alcătuită din două părţi: prima parte de formă trapezoidală şi a doua - de formă
triunghiulară . În general, ieşirea fuzzy a unui process poate implică mai multe funcţii
23
de apartenenţa fuzzy de diferite forme; în acest caz . Corespunzător convenţiei
adoptateexista mai multe metode de defuzzificare, alegerea metodei în aplicaţii bazându-se
pe criterii care ţin de aprecierea rezultatelor obţinute în fiecare aplicaţie dată. [1][4][6]
a) Metoda maximului funcţiei de apartenenţa. Această metodă furnizează ca rezultat al
defuzzificarii, valoarea crisp , pentru care , (Figura 12).
Dacă funcţia de apartenenţa îşi atinge maximul într-un singur punct, valoarea reprezentativă
a funcţiei de apartenenţa se consideră ca fiind valoarea variabilei ( ) pentru care se atinge
maximul respectiv.
Fig. 11 - Metoda maximului funcţiei de apartenenţa [1][4][6]
b) Metoda (abscisei) centrului de masă este una dintre cele mai utilizate metode de
defuzzificare şi permite calculul valorii (Figura 13) conform relaţiei:
24
.
Fig. 12 - Metoda centrului de masă [1][4][6]
c) Metoda mediei ponderate este aplicabilă pentru funcţii de apartenenţa simetrice, fiind
prezentată în Figură 14 din care rezultă că valoarea defuzzificata se obţine prin ponderarea
valorilor funcţiilor de apartenenţa în punctele de maxim: .
25
Fig. 13 - Metoda mediei ponderate [1][4][6]
d) Metoda mediei maximelor presupune calculul lui (Figura 15) unde:
Fig. 14 - Metoda mediei maximelor [1][4][6]
26
Bibliografie
[1] Gabriel Oltean, Emilia Sipos - Tehnici fuzzy în proiectarea şi modelarea circuitelor analogice – Ed. U.T. Press
[2] Chander Mohan - An Introduction to fuzzy set theory and fuzzy logic
[3] M. Ivanovici - Procesarea imaginilor folosind Logica Fuzzy
[4] Image Processing Toolbox - Matlab
[5] Image Acquisition Toolbox - Matlab
[6] www.mathworks.com/products/fuzzylogic/
[7] http://www.bel.utcluj.ro/dce/didactic/tice/03_LogicaMultimiFuzzy.pdf
[8] http://www.bel.utcluj.ro/rom/dce/goltean/tice/04_RationamentAproximativ.pdf
27