SlideShare une entreprise Scribd logo
1  sur  58
REPUBLIKA E SHQIPËRISË
UNIVERSITETI I TIRANËS
FAKULTETI I SHKENCAVE TË NATYRËS
DEGA: INFORMATIKË
Mikrotezë për mbrojtjen e gradës “Master i Shkencave” (MSC)
Tema: “Detektimi i numrave në imazhe duke përdorur Supported Vector
Machine si algoritëm i inteligjencës artificiale”
Punoi Udhëhoqi
Kejvi DOKO Dr. Olti QIRICI
(________________) (________________)
Tiranë, më _____/_____/_________
Faqe | 2
Tabel Përmbajtie
Mirënjohje....................................................................................................................................... 5
Abstrakt........................................................................................................................................... 6
Dallimi i Numrave............................................................................................................................ 7
Histori e Shkurtër ........................................................................................................................ 7
Mjete dhe programe ................................................................................................................... 8
Përpunim Dixhital i Imazhit............................................................................................................. 9
Teknika e propozuar (Paraprocesim Imazhi)............................................................................. 11
Detektimi i kontureve dhe Vijave.............................................................................................. 15
Algoritmi Canny Edge ............................................................................................................ 18
Barazimi i Histogramës.............................................................................................................. 25
Histograma ............................................................................................................................ 25
Teknika e barazimit të histogramës ...................................................................................... 29
Kufizimi i Kontureve .................................................................................................................. 30
Binarizimi i Imazheve................................................................................................................. 30
Detektim i ngjyrës dominante (K-Means)................................................................................. 34
K-Means (Algoritem Grupimi) ............................................................................................... 37
Filtra Morfologjik .......................................................................................................................... 43
Erosion....................................................................................................................................... 44
Dilatation................................................................................................................................... 45
Algortimat Machine Learning ....................................................................................................... 46
Supported Vector Machine....................................................................................................... 46
Funksione të ndryshëm KERNEL................................................................................................ 51
Avantazhet dhe Disavatazhet e SVM ........................................................................................ 52
Avantazhet............................................................................................................................. 52
Disavantazhet ........................................................................................................................ 52
Rezultatet...................................................................................................................................... 53
Kufizime dhe përmirësime............................................................................................................ 56
Aplikime të mundshme................................................................................................................. 57
Bibliografi...................................................................................................................................... 58
Faqe | 3
Tabela e Figurave
Figure 1 Shembull Numrash në Imazh.......................................................................................... 11
Figure 2 Detektime Fallco ............................................................................................................. 12
Figure 3 Eleminimi i Detektimeve Fallco....................................................................................... 12
Figure 4 Zona e izoluar e imazhit.................................................................................................. 12
Figure 5 Zona e izoluar e imazhit e binarizuar.............................................................................. 12
Figure 6 Zona e izoluar e imazhit pas Mbylljes............................................................................. 13
Figure 7 Matrica e Trainimit ......................................................................................................... 14
Figure 8 Rrjedha e procesit të detektimit të numrave ................................................................. 15
Figure 9 Detektimi i Kontureve dhe Vijave (a).............................................................................. 16
Figure 10 Detektimi i Kontureve dhe Vijave (b)............................................................................ 16
Figure 11 Brinjë më shkalle ideale................................................................................................ 18
Figure 12 Imazhi Fillestar.............................................................................................................. 20
Figure 13 Imazhi i Zbutur .............................................................................................................. 20
Figure 14 Imazhi i Zbutur .............................................................................................................. 21
Figure 15 Madhesit e Gradientit................................................................................................... 21
Figure 16 Drejtimi i Gradientëve................................................................................................... 22
Figure 17 Vlerat e Gradientëve..................................................................................................... 23
Figure 18 Pas anullimit të jo-maksimumeve................................................................................. 23
Figure 19 Brinjët pas eleminimit të jo-maksimumeve.................................................................. 24
Figure 20 Segmentim i dyfishtë .................................................................................................... 24
Figure 21 Segmentim i Dyfishtë.................................................................................................... 25
Figure 22 Ndjekja e brinjëve ......................................................................................................... 25
Figure 23 Imazhi rezultant ............................................................................................................ 25
Figure 24 Shembull Histogramë.................................................................................................... 26
Figure 25 Transformimi i histogramës.......................................................................................... 29
Figure 26 Shembull binarizimi statik në imazhe të botës reale.................................................... 33
Figure 27 Majtas- Segmentim me Vlerë të Mesatarizuar. Djathtas- Segmentim Gausian........... 34
Figure 28 Imazh më background më të erret se shkrimi.............................................................. 35
Figure 29 Binarizimi i Imazhit........................................................................................................ 35
Figure 30 Imazhi pasi është aplikar algoritmi kmean ................................................................... 36
Figure 31 Histograma e Imazhit pas KMean................................................................................. 37
Figure 32 K mesataret fillestarë janë gjeneruar në mënyrë të rastësishme. Tregohen më ngjyra
si në figurë..................................................................................................................................... 40
Figure 33 K grupet janë krijuar duke shoqëruar çdo vrojtim më mestaren më të afërt. Paraqitja
është një diagram Voronoi. .......................................................................................................... 40
Figure 34 Centroid për çdo k grup bëhet mesatarja e re. ............................................................ 40
Figure 35 Hapat 2 dhe 3 përsëriten deri sa arrihet konvergjenca................................................ 41
Figure 36 Imazh më 2 kanale ngjyre për ilustrim ......................................................................... 42
Figure 37 Kuntizimi i Vektorëve të ngjyrave në qeliza Voronoi duke përdorur k-means............. 42
Faqe | 4
Figure 38 Imazhi Binar I dhe Filtri H.............................................................................................. 44
Figure 39 Shembull Operacioni Erozioni....................................................................................... 45
Figure 40 Shembull Operacioni Dilitacioni.................................................................................... 45
Figure 41a) Fqinjët më të Afërt b) Pemët e Vendimit c) Rjetat Neurale ...................................... 46
Figure 42 Diagrama për SVM ........................................................................................................ 47
Figure 43 Shpjegim i teoremës Lagranzh...................................................................................... 49
Figure 44 Shtimi i një dimensioni per te zgjidhur rastin linerisht të pa ndashëm........................ 52
Figure 45 Rast Linearisht i Pandashem......................................................................................... 52
Figure 46 Testimi Nr 1................................................................................................................... 55
Figure 47 Testimi Nr 2................................................................................................................... 55
Lista e Tabelave
Table 1 Ndyshimi i histogramës me ndryshimin e kontrastit....................................................... 27
Table 2Testimet dhe Rezultatet.................................................................................................... 54
Table 3 Numri 1 më probleme...................................................................................................... 56
Faqe | 5
Mirënjohje
I jam shumë mirënjohës çdo personi që ka kontribuar në realizimin e këtij projekti. Ky projekt ka
qënë për mua një experiencë unike. Njohuritë dhe eksperienca e marë në këtë projekt do më
shërbejne mua dhe kolegëve të mi që ta cojnë zhvillimin e kësaj teme në një nivel tjetër. Gjatë
punës për këtë projekt kam lexuar dhe kam thelluar njohuritë e mia mbi teknologji të reja dhe
punime shkencore që janë realizuar nga univerisitet dhe kompanitë më prestigjoze në botë.
Gjej rastin ti shpreh falenderim dhe mirënjohje pedagogut dhe udhëheqësit tim shkencor Dr. Olti
Qiricit, për mbështetjen, këshillat, orientimin dhe udhëheqjen shkencore në realizimin e këtij
punimi.
Të fundit po jo më pak të rëndësishmit, dua të falenderoj familjen time dhe miqtë për
mbështetjen morale, insipirmin dhe kurajon pa të cilët përfundimi i ketij projekti më sukses do
të ishte thuajse i pamundur.
Faqe | 6
Abstrakt
Ky punim është i fokusuar në detektimin e numrave në imazhe dixhitale ose fotografi të botës
reale duke përdorur SVM1
(ang: Support Vector Machine) si algoritëm i inteligjencës artificiale.
Krahas këtij algortimi në këtë punim tregohen të gjitha teknikat dhe hapat e paraprocesimit të
imazhit që duhen ndjekur më qëllimi që faza e trajnimit dhe faza detektimit të numrava të jetë
sa më e sukseshme.
Në këtë punim është propozuar një teknik orgjinale për detektimin e imazheve si dhe janë
shpjeguar më detaje hapat në të cilat duhet të kalojë një imazh përpara se ti jepet klasifikuesit.
Ndër teknikat që janë përodorur mund të përmend detektimin e kontureve, binarizimin e
imazheve, detekmin e ngjyrës dominante etj.
Pasi imazhi ka kaluar në të gjitha fazat e paraprocesimit bëhet trajnimi i SVM më imazhe të
gjeneruara në forme dixhitale, duke i dhënë për çdo numër 7 imazhe përfaqësuese në fonte dhe
pamje të ndryshme. Më perfundimin e trajnimit, klasifikuesi i SVM është gati për të bërë
detektimin e numrave.
1
SVM (ang: Support Vector Machine) algoritëm i inteligjencës artificiale, propozuar nga Vladimir N. Vapnik dhe
Alexey Ya. Chervonenkis
Faqe | 7
Dallimi i Numrave
Histori e Shkurtër
Njohja optike e karaktereve (ang: OCR) konsiston në konvertimin e imazheve të teksteve të
shkruara më dorë ose të printuara, në tekst të kuptueshëm nga kompiuterat, të ekstraktuara nga
imazhe të skanuara ose të fotografuara. Përdoret gjerësisht si një formë për futjen e të dhënave
nga dokumentat e printuara siç mund të jënë pasaporta, fatura, karvizita etj. Është një mënyrë
shumë e përdorshme për dixhitalizimin e të dhënave më qëllim që të mund të përpunohen më
pas në mënyre dixhitale. Njohja optike e karaktereve është një fushë e gjerë kërkimore duke
aplikuar machine learning 2
, inteligjencë artificiale, të mësuarit njohës dhe imazheria
kompiuterike.
Versionet e vjetra duhej të trajnoheshin më imazhe për çdo karakter dhe mund të procesonin një
shkronje në një kohe. Sistemet e sotme më të avancuara mund të procesojne disa imazhe
njëkohëshit dhe mund të detektojnë grupe shkronjash në të njëjtën kohë. Saktësia dhe gama e
elementëve strukturorë që mund të detektojne është bërë gjithnje e më madhe.
Aplikimet më të mëdhja të këtyre teknologjive kanë qënë në zhvillimin e telegrafisë dhe krijimin
e paisjeve për personat më aftësi të kufizuara të shikimit që të kënë mundesi të lexojnë dhe të
perceptojnë botën përreth tyre.
Për herë të parë në 13 Janar 1976 u krijua nga Ray Kurzweil një paisje që mund të lexonte
karakteret për të personat më aftësia të kufizuara të shikimit. Shpikja e kësaj paisje erdhi së
bashku më shpikjen e sintetizuesit zanor.
Në ditët e sotme më futjen e paisjeve portabël si smartphone, tablet, google glasses etj aplikimi
i këtyre teknologjive është bërë dhe më i përhapur dhe më i nevojshem.
Ndër aplikimet më të përhapura janë:
2
Machine Learning: Disiplinë e inteligjencës artificiale që tenton të trajnojë dhe të mësojë sistemet kompiuterike
ashtu siç mesojnë njerzit.
Faqe | 8
1. Futjen e të dhënave për dokumenta biznesi
2. Njohje automatike e numrit të targave të makinave
3. Ekstraktimi i të dhënave të kartëvizitave dhe shtimi i tyre në listën e kontakteve
4. Realizimi më i shpejtë i versioneve tekst për dokumentat e printuar
5. Realizimin e kërkimit mbi dokumenta të skanuara ose të printuara
6. Konvertimi i shkrimit të dorës në kohe reale në shkronja dixhitale (pen computing)
7. Mbrojtia e sistemeve CAPTCHA nga botet3
(Ndërtimi i CAPTCHA të cilat nuk mund të
njihen nga OCR)
8. Ndërtimi i teknologjive asistuese për personat e verbër
Mjete dhe programe
Për realizimin e kësaj detyre kam përdorur disa software dhe disa librari që ndihmojnë në
realizimin e kësaj detyre:
1. Adobe Photoshop CS6
2. Microsoft Visio 2016
3. Google Sketch Up LayOut
4. Visual Studio 2015
5. ImageJ
6. OpenCV
Paisje:
1. Nikon D3200
2. Nexus 6P
3. HP ProBook 4740s, 8GB Ram, Core i5 3230M 2.6 GHz
3
Bot: Software autonom të ndërtuar me një qellim specifik që tenton të imitojë sjelljen njerëzore duke naviguar në
website dhe sisteme të ndryshme me qellim vjedhje informacioni, mbledhje të dhenash etj.
Faqe | 9
OpenCV është një ankronim për Open Source Computer Vision Library, është një librari që
përmban funksione për përpunimin kompiuterik të imazheve. Është zhvilluar nga Intel dhe
tashmë menaxhohet nga Willow Garage. Libraria ofron funksionet në platforma të ndryshme ku
përfshihen Windows, Android, Free BSD, Maemo, iOS, OpenBSD, Linux dhe Mac OS. Libraria në
momentin e shkrimit të këtij dokumenti ka arritur në versionin 3.0.1.
Fokusi kryesor i librarisë është procesimi në kohë reale i imazheve dhe implementimi i
algoritmave të inteligjencës artificiale. Duke përdorur këtë librari në mund të përmirësojmë
koston e llogaritjeve dhe të marim inisiativen drejt aplikacioneve që përdorin në mënyrë
intensive procesorin.
Fushat ku mund të përdoret OpenCV janë njohja e fytyrave, OCR, identifikimi i objekteve, ndjekja
e lëvizjes, njohja e gjesteve etj.
OpenCV gjithashtu përfshin librari për mësimin statistik të makinave që mbështët fushat e
mësipërme. Emrat e funksioneve që mbështësin këtë librari janë pemet e vendimit, klasifikuesi
naiv i Bayes, k-fqinjet më të afërt, rrjetat neurale, support vector machine e shumë të tjerë.
Libraria është shkruar në gjuhe C dhe për shkak të ndërfaqes në C është e portueshme në
platforma të ndryshme. Për të rritur përdorshmërine e kësaj librarie janë krijuar shumë klasa
ndihmëse (ang: wrapper) në gjuhë të ndryshme si C#, Pyhon, Ruby dhe Java.
Imazhet që janë përdorur për testime janë imazhe të gjeneruar në mënyrë dixhitale nëpërmjet
Adobe Photoshop ose janë shkrepur nga aparati dixhital.
Imazhet e përdoruara për trajnim janë krijuar nga unë duke përdorur Adobe Photoshop. Në
imazhet e ndërtuara për trainim janë vendosur të gjithë numrat në disa fontë të ndryshme që ta
trajnoi klasifikuesin për një gamë sa të më të gjerë numrash.
Përpunim Dixhital i Imazhit
Ka shumë teknika që përdoren në njohjen e tekstit dhe numrave në vecanti. Shumica e këtyre
teknikave bazohen në ekstraktimin e karakteristikave nga imazhi. Ekstraktimi i këtyre
karakterisktikave bazohet mbi percaktimin e disa karakteristikave primitive dhe aplikimi i tyre në
Faqe | 10
të gjithë imazhin në shkalle të ndryshme zmadhimi dhe rrotullimi. Kjo teknikë ka disa probleme
të dukshme:
1. Kohë e madhe procesimi
Në përdorimin e kësaj teknike imaxhi konsiderohet si një matricë më pika (piksel). Numrat që
duam të detektojmë në një imazh mund të jenë karahasimisht shumë të vogla ose shumë të
mëdha në lidhje më dimensionet e vetë imazhit. Gjithashtu numrat mund të jene të vendosur në
kënde të ndryshme gjë e cila e bën shumë të vështirë dhe të kushtueshme në terma procesimi.
Supozojme se kemi zgjedhur një klasifikues Supported Vector Machine ose një rrjet neural. Ky
klasifikues është trajnuar më një bashkësi trajnimi ku janë dhënë disa shembuj numrash në një
madhësi të caktuar. Për të detektuar numrat duhet që të skanojme imazhin nga e majta në të
djathtë dhe nga lartë, poshtë. Kjo zone e imazhit duhet të rishkallëzohet në madhesin e mostrave
të pvrdorura gjatë procedurës së trajnimit. Zona e imazhit i jepet klasifikuesit që të bëj
klasifikimin. Problemi qëndron në faktin që imazhi duhet skanuar në mënyre iterative duke
zmadhur zonën e skanimit gjë që zgjat shumë kohën e procesimit. Një problem tjetër që lind më
këtë teknike është fakti që imazhi duhet skanuar për të gjitha simbolet e mundshme dhe në të
gjitha pozicionet e mundshme gjë që do të donte një kohe shumë të madhe. Përdorimi i ksaj
teknike për shkak të kohës së gjatë të procesimit e bën të pamundur përdorimin e saj në imazhe
që transmetohen në kohe reale.
2. Detektime fallco
Për shkak të mënyrës iterative të funksionimit të ketij algoritmi zona e skanimit mund të ndodhi
që të kapi disa herë të njëjtin numër dhe kjo do bëj që klasifikuesi të kalasifikoje atë si një numër
më shumë se 1 herë. Eleminimi i këtyre dublikave është shumë kompleks dhe shumë i
kushtueshëm në terma kohor.
Faqe | 11
Figure 1 Shembull Numrash në Imazh
Teknika e propozuar (Paraprocesim Imazhi)
Në vijim do e shpjegoj shkurtimisht një përafrim që unë kam zgjedhur ndaj këtij problemi.
Problemi kryesor i prezantuar më siper qëndronte në faktin se algoritmi duhet të bridhte një
numër shumë të madh herësh për të detektuar vetite e çdo numri. Për të percaktuar sa më
shpejtë zonat e imazhit që mund të përmbanin numra aplikohet një algoritëm për detektimin e
vijave dhe të kontureve. Në fund të aplikimit të kësaj faze kemi perfituar elementët strukturor që
formojnë një vije ose një kontur.
Pasi janë detektuar konturet dhe vijat të cilët mund të jenë të formave dhe permasave të
ndryshme në imazh, për të punuar më lehtë gjejmë drejtekendeshin më të madh që perfshin
secilin prej këtyre elementëve. Për shkak të formës së tyre algoritmi për detektimin e vijave dhe
kontureve mund të detektoje pjesë të vecanta në numrave si konture ose si vija më vete si në
shembullin më poshte:
Faqe | 12
Figure 2 Detektime Fallco Figure 3 Eleminimi i Detektimeve Fallco
Si mund të shikoni në figurën nr.2 algoritmi për detektimin e kontureve ka detektuar edhe pjesën
e brendshme të numrit 8 dhe 9 si konture dhe vija të pavarura. Eleminimi i këtyre dublikatave
realizohet bazuar mbi mbivendosjen e sipërfaqeve dhe mbi masën e mbulimit.
Pas perfundimit të hapit të parë kemi listën e pjesëve të imazhit që pretendohet të jenë numra.
Çdo element i kësaj liste duhet të kovertohet në një imazh të binarizuar duke e konvertuar ate
imazh në formatin bardhë e zi. Për të bërë këtë binarizim përdoret një filtër Gaussian që bën një
binarizimi pothuajse të pavarur nga teprica apo mungesa e ndricimit të imazhit.
Figure 4 Zona e
izoluar e imazhit
Figure 5 Zona e
izoluar e imazhit e
binarizuar
Faqe | 13
Duket qartë që pas procesit të binarizimit kemi një numër të qartë dhe paraqitur sakte por ende
procesi nuk është i perfunduar. Në imazhin e perftuar ka disa mbetje (artifakte) që mund të
dëmtojnë procesin e detektimit të numrit. Për të shmangur çdo pasaktësi të mundëshme mbi
imazhin e figures 5 aplikojmë një operacion mbyllje.
Operacioni i mbylljes tenton të largojë nga imazhi struktura të vogla duke aplikuar njeri pas
tjetërit në këtë radhe një operacion dilitacioni dhe një operacion erozioni.
Në përfundim të operacionit të mbylljes nga imazhi janë larguar të gjitha mbetjet (artifaktet) dhe
është gati që të kalojë në fazën përfundimtare të procesimit për të percaktuar se çfarë numri
është ky imazh. Imazhi rishkallezohet në dimensione fikse (30 𝑝𝑖𝑥𝑒𝑙 × 45 𝑝𝑖𝑥𝑒𝑙 ) për të siguruar
një mënyrë uniforme të analizimit të tyre dhe i jepet si parameter algoritmit të mësuarit të
makinës (ang: Machine Learning Algorithm).
Të gjithe hapat e përmendur më siper bëjnë pjese në fazën pergatitore ose faza e para procesimit.
Në keto hapa siç sqaruam dhe më siper vecohen dhe pastrohen elementët më me interes për
procesin tonë. Në fazën e dytë bëhët trainimi i algoritmit të mësuarit të makines më një bashkësi
trainimi dhe testimi i tij më rastet individuale.
Në fazën përfundimtare bëhet trajnimi i klasifikuesit. Përcaktohet një bashkësi trajnimi më 7
përfaqësues për çdo klasë. Elementët e bashkësisë së trainimit janë imazhe në formatin jpg më
dimensione të fiksuara (30 𝑝𝑖𝑥𝑒𝑙 × 45 𝑝𝑖𝑥𝑒𝑙 ) dhe gjithashtu të binarizuara. Klasifikuesi që kam
zgjedhur është një SVM i cili ofrohet nga libraria OpenCV në formën e një funksioni.
Imazhet e bashkësis së trajnimit ruhen në një matric trajnimi në formën e mëposhtme:
Figure 6 Zona e izoluar e imazhit pas Mbylljes
Faqe | 14
Figure 7 Matrica e Trainimit
Për të përfunduar trainimin e klasifikuesit duhet që për çdo imazh të bashkësis se trainimit të
përcaktojmë dhe një shënjues pra të tregojme kuptimin që ka për në ky imazh. Pra nëse bashkësia
e trainimit ka 5 imazhe përfaqësuese për çdo numër nga 0-9 atëhere klasifikuesi duhet të mari si
parametër një matricë 1D ku çdo imazhi i vihet në korrespondencë një numër. Kjo matricë
përcakton dhe bashkësin e klasave të klasifikuesit. Klasifikuesi ndërton aq klasa sa janë edhe
element në matricën e shenjuesve.
Faqe | 15
Eleminimi i Duplikatave
Detektim i Vijava
dhe Kontureve
Kufizimi i Zonave
me Interes
1
Binarizimi i
Imaxheve
Ripermasimi i
Zonave te Interesit
Operacion
Mbyllje
Operacion DiletationiOperacion Erozioni
Trajnimi i SVM
Parashikimi i
SVM
Rezultati
Barazuesi i
Histogramës
2
Detektimi
i Ngjyrës
Dominante
3
Inverto Ngjyrat
PO
JO
6 45
Figure 8 Rrjedha e procesit të detektimit të numrave
Detektimi i kontureve dhe Vijave
Një nder fazat e perpunimit të imazhit gjate detektimit të tekstit në përgjithësi dhe i numrave në
vecanti është detektimi i kontureve dhe vijave. Vijat dhe konturet e detektuara janë zona interesi
për algoritmin tonë. Në një mënyrë të ngjashme funksionon edhe sistemi pamor tek njeriu. Siç
mund ta keni venë re ju mund të dalloni pa medyshje një objekt vetëm më disa vija në formën e
një karikature.
Vijat janë zona të cakuara të imazhit ku ka ndryshime të ndjeshme të intensitetit në një drejtim
të caktuar. Sa më i fort të jetë ky ndryshim aq më e qartë është që kemi të bëjmë më një vijë.
Faqe | 16
Figure 9 Detektimi i Kontureve dhe Vijave (a) Figure 10 Detektimi i Kontureve dhe Vijave (b)
Ka disa teknika që përdoren për detektimin e vijave dhe të kontureve:
1. Detektim i vijave bazuar mbi gradient
2. Dektimi i vijave bazuar mbi filtra
a. Operatorët Prewitt dhe Sobel
b. Operatori Roberts
c. Operatori Kompas
3. Detektektimi i vijave bazuar mbi derivatin e dytë
a. Operatori Canny
Matematikisht madhësia që tregon madhësin e ndryshimit në lidhje më distancën hapsinore
është derivati i pare i funksionit. Mbi këtë teknikë bazohet edhe modeli i pare i detektimit të
kontureve (Detektim i vijave bazuar mbi gradientin). Supozojmë se funksioni që jep intensiteitin
në imazhin 𝐼 më funksionin𝑓(𝑥). Duke marë derivatin e parë 𝑓′(𝑥) =
𝑑𝑓
𝑑𝑥
(𝑥). Derivati i parë është
i pa përcaktuar për një funksion diskret 𝑓(𝑢) dhe duhet një metode për ta vlerësuar këtë. Derivati
i parë i një funksioni të vazhdueshëm mund të interpretohet si vija tangenete më funksionin në
ate pike. Një përafrim i mire për të vlerësuar këtë tangjente në një funksion diskret është të
vendosim një vije të drejtë mes vlerave fqinje të funksionit 𝑓(𝑢). Kjo aplikohet në drejtimin
vertikal dhe atë horizontal.
Faqe | 17
Ky derivat i parë mund të përafrohet nëpërmjet një filtri linear më komponente horizontale 𝐻 𝑥
𝐷
=
[−0.5 0 0.5] dhe komponente vertikale 𝐻 𝑦
𝐷
= [
−0.5
0
0.5
].
Për detektimin e vijave dhe të kontureve përdoren operatorët e vijave. Ndër operatorët më të
njohur janë Perwitt dhe Sobel. Janë shumë të ngjajshëm me njeri tjetrin në mënyrën e
funksionimit. Operatorët Prewitt dhe Sobel përdorin filtra linear që aplikohen në tre vija dhe
kolona fqinje njëkohësisht për të asnjëanësuar ndjeshmërin nga zhurmat që mund të këtë një
operator ndryshimi.
𝐻 𝑥
𝑃
= [
−1 0 1
−1 0 1
−1 0 1
] 𝐻 𝑦
𝑃
= [
−1 −1 −1
0 0 0
1 1 1
]
Gjithashtu edhe filtri Sobel ka të njëjtën strukturë perveç ndryshimit të peshave në linjen e mesit.
𝐻 𝑥
𝑃
= [
−1 0 1
−2 0 2
−1 0 1
] 𝐻 𝑦
𝑃
= [
−1 −2 −1
0 0 0
1 2 1
]
Një problem kryesor më teknikat që kemi prezantuar më siper është fakti që ato mund të
detektojne vetëm vija që janë plotësisht horizontale ose plotësisht vertikale duke neglizhuar
shmangie minimaliste.
Një operator tjetër për detektimin e vijave është operatori i Kompas. Ndërtimi i filtrave linear për
detektimin e brinjëve ka një ane negative: Sa më fortë që përgjigjet filtri në strukturat e birnjëve
Faqe | 18
aq më e ndjeshme bëhet ajo ndaj orientimit. Për të zgjidhur këtë problem nuk ndërtohen një cift
filtrash të gjerë për dy drejtime por ndërtohen një bashkësi e madhe filtrash më orientime të
ndara ngushtë që prodhojnë keto 8 filtra ku orientimet janë të ndarë me 45°
.
Teknika që është përdorur për të detektuar konturet në këtë implementim është Canny Edge
Detection Algorithm.
Algoritmi Canny Edge
Qëllimi i detektimit të brinjëve dhe kontureve është në pergjithësi për të reduktuar në mënyrë
të ndjeshme sasinë e informacionit në imazh por duke ruajtur vetitë strukturore të imazhit për
procesime të mëtejshme. Ekzistojnë shumë teknika dhe algoritma siç kemi diskutuar më sipër
por ndër më të përdorshmit është algoritmi i ndërtuar nga Jonhn F. Canny (JFC).Ky është një ndër
algoritmat standart që përdoren në fushën kerkimore edhe pse është shumë i vjeter.
Qëllimi i JFC është të ndërtoj një algortitëm që është optimal në përputhje më kriteret e
mëposhtme:
1. Detektimi: Duhet të maksimizohet probabiliteti i detektimit të brinjëve të verteta ndërsa
probabiliteti i detektimeve false (pika jo në brinjë) duhet të minimizohet. Kjo i
korrespondon maksimizimit të raportit sinjal / zhurmë.
2. Lokalizimi: Brinjët e detektuara duhet të jenë sa më afer brinjëve të vërteta.
3. Numri i përgjigjeve: Nuk duhet që për një brinjë të vërtet të detektohet më shumë se 1
brinjë.
Figure 11 Brinjë më shkalle ideale
Faqe | 19
Me formulimin matematik që i është bërë ketij algoritmi ai është optimal për një klas të caktuar
brinjësh që njohura si brinjë më shkalle ideale (ang: step edges).
Marim një imazh për test për të demonstruar mënyrën e funksionimit të algorimitmit Canny.
Detektimi i kontureve është një fazë e rëndesishme në rastin e përcaktimit të pozës së objektit.
Imazhi në këtë rast është paraprocesuar siç përshkruhet më poshtë:
 Përcaktohet Zona e Interesit që perfshin vetëm zonën e objektit dukë hequar pjesët e
tjera të panevojshme të imazhit.
 Konvertimi i imazhit në shkallë të grisë për të bërë më të thjështë përllogaritjet.
 Shtrirja e histogramës, që imazhi të përdori të gjithë shkallën gri. Ky hap mund të mos jetë
i nevojshëm por përfshihet që të asnjëanësoj rregullimin automatik të dritës që bëhet nga
aparati fotografik.
Algoritmi Canny për detektimin e brinjëve kalon në 5 hapa të ndarë:
1. Zbutja ( ang: Smoothing) përdoret për të larguar zhurmën nga imazhi
2. Gjetja e gradientëve: Brinja duhet të shënohet atje ku magnituda e gradientit është më
madhë
3. Eleminimi i jo maksimumeve (ang: Non-maximum suppression): vetëm maksimumet
lokale do të shënohen si brinjë.
4. Pragje të Dyfishta (ang: Double Thresholding): Brinjët potenciale përcaktohen nga pragjet,
segmentimi.
5. Ndjekja e brinjëve më “hysteresis”: Brinjët finale përcakohen dukë eleminuar të gjithë
brinjët që nuk janë të lidhura tek një brinjë e dukshme.
Zbutja (ang Smoothing)
Është e sigurt që të gjitha imazhet e marë nga aparatet dizhitalë kanë një sasi të caktuar zhurme.
Për të parandaluar që kjo zhurmë të detektohet gabimisht si brinjë, zhurma duhet të reduktohet.
Prandaj imazhi në fillim zbutet dukë aplikuar një filtër Gausian që është një filter linear. Kerneli i
filtërit Gausian më devijim standart 𝜎 = 1.4 është si më poshtë:
Faqe | 20
𝐵 =
1
159
[
2
4
5
4
2
4
9
12
9
4
5 4 2
12 9 4
15 12 5
12 9 4
5 4 2 ]
Figure 12 Imazhi Fillestar Figure 13 Imazhi i Zbutur
Filtri i mësipërm është një filtër linear me madhësi 5x5 dhe më “hot spot” vlerën 15 që është dhe
qëndra e filtrit.
Llogaritja e Gradientit
Algoritmi Canny gjen një brinjë në ate zonë të imazhit ku intensiteti i shkallës gri ndryshon më
shumë. Këto zona gjenden duke përcaktuar gradientin e imazhit. Gradienti për çdo pixel në një
imazh të zbutur llogaritet duke aplikuar atë që njihet si operatori Sobel. Hapi i pare është të
përcaktohet gradienti në drejtimin x dhe y respektivisht duke aplikuar kernel-at e treguar më
poshtë:
𝐾 𝐺𝑥 = [
−1 0 1
−2 0 2
−1 0 1
]
Faqe | 21
𝐾 𝐺𝑦 = [
1 2 1
0 0 0
−1 −2 −1
]
Magnituda e gradientit (njihet ndryshe dhe fortësia e brinjës) mund të përcaktohet si një distancë
Euklidiale duke aplikuar ligjin e Pitagorës të trëguar në ekuacionin e më poshtëm. Ndonjë herë
mund të thjështësohet duke aplikuar distancën e thjështë të Manhatan-it për të reduktuar
kompleksistetin e llogaritjeve. Distanca e Euklidit është aplikuar mbi imazhin test. Fortësia e
brinjëve të llogaritura janë karahasuar më imazhin e zbutur.
|𝐺| = √ 𝐺𝑥
2 + 𝐺 𝑦
2
|𝐺| = |𝐺𝑥| + |𝐺 𝑦|
ku 𝐺𝑥 dhe 𝐺 𝑦 janë gradientët sipas drejtimit x dhe y përkatësisht.
Është e dukshme nga figura e mëposhtëme, që një imazh i madhësive të gradientit shpesh tregon
brinjët në mënyrë shumë të qartë. Megjithatë brinjët janë shpesh të gjera dhe nuk tregojnë
ekzaktësisht pozicionin ku janë brinjët. Për të bërë te mundur për të përcaktuar këtë, duhet të
përacaktohet drejtimi i brinjës dhe të ruhet si në ekuacion e mëposhtëm.
𝜃 = arctan (
|𝐺 𝑦|
|𝐺𝑥|
)
Figure 14 Imazhi i Zbutur Figure 15 Madhesit e Gradientit
Madhësia e gradientëve në një imazh të zbutur që tregohen në figuren (14) dhe (15) si dhe drejtimi i tyre përcaktohet duke
aplikuar operatorin e Sobel-it
Faqe | 22
Anullimi i Jo-Maksimumeve (ang: Non-Maximum Suppression)
Qëllimi i këtij hapi është të konvertojë brinjët e “zbutura” në imazhin e madhësive të gradientit
në brinjë të “theksuara”. Kjo realizohet duke ruajtuar të gjitha maskimumet lokale në imazhin e
gradientëve dhe duke fshirë të gjitha të tjerat. Algoritmi është për çdo pixel në imazhin e
gradintëve.
1. Përafrim i drejtimit të gradientit 𝜃 në 45o
më të afërt, në lidhje më përdorimin e 8 fqinjëve
të lidhur më të.
2. Krahaso fortësin e brinjës në pixel aktual më fortësin e brinjëve të pixel më drejtim të
gradientit pozitiv dhe negativ. Nëse drejtimi i gradientit është Veri (𝜃 = 90°), krahasoje
më pixel më drejtim Veri dhe Jug.
3. Nëse fortësia e brinjës e pixel korent është më e madhja ruaj vlerën e fortësis se brinjës
përndryshe hiqe (anulloje).
Një shembull i thjeshtë për anullimin e jo-maksimumeve tregohet në shembullin e mëposhtëm.
Pothuajse të gjithë pixel kanë një drejtim të gradientit nga Veriu. Ato janë krahasuar më pixel
sipër dhe poshtë tyre. Pixel që rezultojnë të jenë maksimal pas krahasimit markohen më konture
të bardha. Të gjithe pixel-at e tjerë eleminohen.
Figure 16 Drejtimi i Gradientëve
Ilustrimi i eleminimit të jo-maksimumeve. Fortësia e brinjëve është shënuar edhe si numër edhe
si ngjyrë, kurse drejtimi i gradientit është shënuar më shigjetë. Pixel-at rezultant janë shënuar
më të bardhë.
Faqe | 23
Figure 17 Vlerat e Gradientëve Figure 18 Pas anullimit të jo-maksimumeve
Anullimi i jo-maksimumeve. Pixel-at e brinjëve janë ruajtur vetëm aty ku gradienti ka
maksimum lokal.
Pragëzim (Segmentim) i dyfishtë
Pixel-at e brinjëve që ngelen pasi aplikohen anullimi i jo-maksimumeve janë ende të markuar më
fortësin e tyre pixel për pixel. Shumë prej këtyre do të jenë brinjë të vërteta në imazh por disa
prej tyre mund të jenë shkaktuar nga zhurmat ose nga variacioni i ngjyrave p.sh për shkak të një
siperfaqje të ashpër. Mënyra më e thjeshtë për ti ndarë këto do të ishte të përdorje një vlerë
kufitare, kështu që vetëm brinjët më fortësi mbi një nivel të caktuar do të ruheshin. Algoritmi
Canny për detektimin e brinjëve përdor një segmentim të dyfishtë. Pixel-at e brinjëve më fortësi
më të madhe se një vlerë e sipërme maksimale markohen si brinjë të forta, pixel-at e brinjëve më
vlerë më të vogël se një vlerë e poshtmë minimale do të eleminohen dhe pixel-at e birnjëve me
fortësi më të vogël se vlera e sipërme maskimale dhe më e madhe se vlera e poshtme minimale
shënohen si brinjë të dobta. Efekte të segmentimit të dyfishtë më vlera 20 dhe 80 mbi imazhin e
fundit janë si më poshte:
Faqe | 24
Figure 19 Brinjët pas eleminimit të jo-maksimumeve Figure 20 Segmentim i dyfishtë
Në imazhin e dytë brinjët e forta janë shënuar më të bardhë kurse brinjët e dobta janë shënuar
më gri. Brinjët më vlerë më të vogël se dy kufijtë janë eleminuar.
Ndjekja e brinjëve më “hysteresis”
Brinjët e forta janë interpretuar si “brinjë të sigurta” dhe mund të përfshihen direkt në imazhin
final të brinjëve. Brinjët e dobëta përfshihen vetëm dhe vetëm në qoftë se ato janë të lidhuara
më një brinjë të fortë.
Logjika është që sigurisht zhurmat dhe variacionet e vogla janë të pazakonta të rezultojnë në një
brinjë të fortë (më një rregullim të kujdeshëm të vlerave kufitare). Brinjët e forta do të jenë
(pothuajse) gjithmonë për shkak të brinjëve të vërteta në imazhin orgjinal. Brinjët e dobta mund
të jenë për shkak të brinjëve të vërteta në imazh ose për shkak të zhurmave ose variacioneve të
ngjyrave. Në rastin e dytë këto lloje duhet të jenë të shpërndara në gjithë imazhin në mënyrë
pothuajse të njëtrajtshme. Në rastin e brinjëve të dobta që janë brinjë të vërteta në imazh në
shumicën e rasteve janë të lidhura direkt më një brinjë të fortë.
Ndjekja e brinjëve mund të implementohet nëpërmjet analizës BLOB (Objekte Binare të Mëdha)
(ang: Binary Large Object). Pixel të brinjës që janë të ndare nga BLOB-e të lidhura më fqinjesi më
Faqe | 25
8 fqinjë. BLOB-et që përmbajne të paktën një pixel të një brinjë të fortë ruhen, BLOB-et e tjera
eleminohen. Efektet e ndjekjes se brinjëve tregohen më poshtë:
Figure 21 Segmentim i Dyfishtë Figure 22 Ndjekja e brinjëve Figure 23 Imazhi rezultant
Imazhi në mes tregon brinjët e forta më të bardhë, brinjët e dobta të lidhura më brinjë të forta
më blu dhe brinjët e tjera të dobta më të kuqe.
Barazimi i Histogramës
Histograma
Histograma pëdoret për të përshkruar në mënyrë statistikore dhe lehtësisht te interpretueshme
një imazh. Nga histograma është e lehtë të përcaktohen probleme të caktuara në një imazh, për
shëmbull mund të përcaktosh lehtësisht nëse një imazh është i ekspozuar siç duhet vëtëm duke
parë histogramën. Histogramat janë një mjet shumë i rëndësishme edhe si mjet investigues për
të kuptuar cfarë operacionesh janë aplikuar mbi një imazh.
Histograma në përgjithësi është frekuenca e shpërndarjeve, dhe histograma e imazheve
përshkruan frekuencën e vlerave të intensitetit për një imazh. Le të konsiderojmë një imazh me
shkallë gri me thellësi te kanalit (q) dhe dimensione (U) dhe (V). Intensiteti i nje pixel 𝐼(𝑢, 𝑣) ∈
[0 − 2 𝑞
]. Histograma e një imazhi të tillë do të kishte 𝐾 = 2 𝑞
rekorde. Çdo rekord individual i
histogramës percaktohet si:
ℎ(𝑖) = 𝑛𝑢𝑚𝑟𝑖 𝑖 𝑝𝑖𝑥𝑒𝑙 𝑛ë 𝑖𝑚𝑎𝑧ℎ𝑖𝑛 𝐼 𝑞ë 𝑘𝑎 𝑖𝑛𝑡𝑒𝑛𝑠𝑖𝑡𝑒𝑡 𝑖
Faqe | 26
Në mënyre më formale mund të shprehet:
ℎ(𝑖) = 𝑐𝑎𝑟𝑑 {(𝑢, 𝑣)|𝐼(𝑢, 𝑣) = 𝑖}4
Figure 24 Shembull Histogramë
Duke qënë se histograma nuk ruan asnjë informacion mbi pozicionin se ku gjendet çdo pixel
individualisht nga histograma nuk mund të nxirret asnjë informacion mbi organizimin hapsinor
të pixel.
Në histogram përshkruhen probleme qe vijnë gjatë marjes së imazhit, siç janë ato që përfshijnë
kontrastin, rangun dinamik si dhe aritfaktet që vijnë si pasojë e procesimit të imazhit hap pas
hapi. Histogramat përdoren shpesh për të përcaktuar nësë një imazh po përdor siç duhet rangun
e intensitetit duke ekzaminuar madhësin dhe uniformitetin e shpërndarjes së histogramës.
Ekspozimi
Histograma i bën problemet klasike të ekspozimit menjëherë të dukshme. Për shembull kur në
një histogram kemi një zonë të caktuar pothuajse të papërdorur dhe pjesën tjetër të mbi
ngarkuar kemi të bëjmë me një imazh të ekspozuar dobët.
Kontrasti
4
card përcaktohet si numri i elementëve në një bashkësie
Faqe | 27
Kontrasti kuptohet se si rangu i vlerave të intensitetit përdoret në mënyre efektive në një imazh
të dhënë, që është diferenca mes vlerës maksimale dhe minimale të pixel-ave të imazhit. Një
imazh me kontrast të plotë pëdor të gjithë rangun e vlefshëm të intensitetit nga a=amin ... amax=0
... K-1 (zeza deri tek e bardha).
Table 1 Ndyshimi i histogramës me ndryshimin e kontrastit
Si ndikohet histograma nga ndryshimet e kontrastit: kontrast i ulët | kontrast normal | kontrast i lartë
Rangu Dinamik
Rangu dinamik i një imazhi, në parim, kuptohet si numri i pixel-ave me vlera unike në imazh. Në
rastin ideal, rangu dinamik kompenson të gjitha K vlerat e papërdorura, në këtë rast gjithë rangu
është plotësisht i përdorur. Kur një imazh ka nje rang kontrasti të vlefshme a=aulët ... alartë, me
amin<aulët dhe alartë<amax dhe maksimumi i rangut të mundshëm arrihet kur të gjitha vlerat që
shtrihen në atë rang janë përdorur. Imazhet me një rang dinamik të gjerë janë më të
preferueshme pasi vuajnë më pak pasojat e procesimit dhe kompresimit të imazhit.
Faqe | 28
Llogaritja e histogramës ne rastin kur imazhi ka vetëm një kanal është një detyrë e thjeshtë pasi
mjafton te marim 256 numërues për një imazh me thellësi kanali 8 bit dhe të bredhim gjithë
imazhin duke numeruar pixel-at individual.
Në rastin e imazheve me ngjyra, zakonisht me tre kanale R (ang: Red - Kuqe), G (ang: Green-
Gjelber) B (ang: Blue – Blu) histograma mund të realizohet në dy forma. Mund të realizohet
histograma për çdo kanal në mënyrë individuale që është praktikisht një histogram për një imazh
më një kanal. Mund të realizohet një histogram duke marë mesataren e vlerave për çdo kanal ku
çdo kanal ka peshë të barabartë ose ndonjë prej kanaleve ka peshë më të madhe dhe në këtë
rast do bëhet një mesatare e peshuar.
Histograma Kumulative
Histograma kumulative që derivohet nga histograma e zakonshme është e përdorshme në rastet
kur performojmë operacione të caktuara si për shembull barazimin e histogramës.
Histograma kumulative përcaktohet si më poshte:
𝐻(𝑖) = ∑ ℎ(𝑗)
𝑖
𝑗=0
𝑝ë𝑟 0 ≤ 𝑖 < 𝐾
Në veçanti një vlerë H(i) është shuma e të gjitha vlerave h(j) për 𝑗 ≤ 𝑖 në histogramën e
zakonshme. Në mënyrë rekurzive do ta përcaktonim:
𝐻(𝑖) = {
ℎ(0) 𝑝ë𝑟 𝑖 = 0
𝐻(𝑖 − 1) + ℎ(𝑖) 𝑝ë𝑟 0 < 𝑖 < 𝐾
}
Histograma kumulative është një funksion monoton rritës me një vlerë maksimale:
𝐻(𝐾 − 1) = ∑ ℎ(𝑗)
𝐾−1
𝑗=0
= 𝑀 ∙ 𝑁
që është numri total i pixel në imazhin me lartësi N dhe gjerësi M.
Faqe | 29
Teknika e barazimit të histogramës
Shpesh imazhet e fotografuara në mjedise reale kanë probleme më kontrastin pasi janë të
ekspozuara keq ndaj dritës. Ka zona që kanë marë shumë ndricim ose që quhen të “mbi
ekspozuara” ose janë të “nën ekspozuara” dhe shfaqen në imazh si zona të errta. Po të shohim
histogramën e një imazhi të tillë do të vëm re se pjesa më e madhe e pixel janë të përqëndruar
në një zonë të ngushtë të histogramës.
Barazimi i histogramës është një metodë në procesimin e imazheve për rregullimin automatik të
kontrastit duke përdorur histogramën e imazhit.
Figure 25 Transformimi i histogramës
Kjo metode përgjithsisht rrit kontrastin e përgjithshëm në shumë imazhe, vecanërisht kur të
dhëna të rëndësishme të imazhit shfaqen më vlera të afërta të kontrastit. Përmes ketij rregullimi,
intensitetet mund të shpërndahen më mire në histogram. Kjo teknike lejon që zona të caktuara
të imazhit më nivel të ulët kontrasti që të marin një vlerë më të lartë të kontrastit. Barazimi i
Histogramës e realizon këtë duke rishpërndar në mënyrë efektive vlerat më frekuente të
intesistetit.
Kjo metodë është më e përdorshme në imazhe më background5
dhe foreground6
që janë të dy
ose të zbardhuar ose të errët. Në vecanti kjo metodë përdoret për të marë një pamje të të mire
në imazherin mjekësore (rreze x). Gjithashtu mund të marim detaje më të mira nga fotografitë
që janë pak ose shumë të ekspozuara. Avantazh i kësaj teknike qëndron në faktin që është një
5
Background: Element i imazhit që gjendet më afër planit të imazhit.
6
Foreground: Ajo pjesë e imazhit që gjendet pas subjektit kryesor.
Faqe | 30
teknikë e drejtpërdrejte. Në teori nqs funksioni i histogramës dihet mund të meret histograma
origjinale. Llogaritjet nuk janë shumë intensive. Një disavantash i kësaj teknike është fakti që
shepesh kjo teknike mund të diskriminojë. Ajo mund të rrisë intensitetin e zhurmës në
background duke zvogëluar intensitetin e sinjalit të vlefshëm.Në imazherin shkencore ku lidhja
hapsinore është më e rëndesishme se intensiteti i imazhit, raporti i vogel mes sinjalit dhe zhurmes
zakonisht pengon detektimin pamor.
Barazimi i histogramës zakonisht prodhon efekte jo realiste të fotografi megjithatë kjo është
shumë e rëndesishme për imazherin shkencore si imazheri termale, satelitore. Gjithashtu
barazimi i histogramës mund të sjelli efekte të padëshiruara kur aplikohet mbi imazhe më thellësi
kanali të ulët. Nëse për shembull do të aplikohet mbi një imazh më shakllë gri më thellësi të
kanalit 8 bit do të reduktoje dhe më tej variacionet e ngjyrës gri. Në rastin e detektimit të tekstit
kjo teknikë aplikohet mbi imazhe më një thellësi të kanalit 24-bit që janë gjeneruar nga një aparat
fotografik profesional (Nikon D3200) dhe këto efekte nuk vihen re. Teknika e barazimit të
histogramave është e përshtatshme të aplikohet në imazhe më thellësi të kanalit mbi 16 bit.
Kufizimi i Kontureve
Në mënyrën si është ndërtuar alogritmi për detektimin e numrave nuk na intereson në mënyrë
të veçant brinja apo konturi i detektuar. Ajo çka na intereson është drejtkëndëshi më i vogël që
përfshin gjithë konturin. Kjo bëhet më qëllim që procesi i vlerësimit nga SVM të jetë sa më
thjeshtë pasi dhe elementët e bashkësis së trajnimit që janë përdorur për të trajnuar SVM janë
imazhe drejtëkëndëshe më dimensione dhe rezolucion të fiksuar.
Binarizimi i Imazheve
Për të rritur saktësin e detektimit të numrave në imazhe është më e përshtatshme të punohet
më imazhe të binarizuara. Keto imazhe janë bardhë e zi dhe elementet (konturet dhe brinjët)
janë shumë më të theksuara. Aplikimi i një procesi binarizimi ose quantizimi të rangut të vlerave
të intensitetit në 2 intensitete të mundshme prodhon disa probleme në imazh (ang: image
artifacts). Këto probleme eleminohen duke përdorur filtrat morfologjik.
Libraria OpenCV ofron disa mënyra për të realizuar procesin e binarizimit apo kuantizimit të
vlerave. Në thelb të procesit të binarizimit qëndron vendosja e vlerave të intensitetit të imazhit
Faqe | 31
në një rang të caktuar dhe vlerat që nuk bien në këto kufij bëhen 0. Kjo nuk është një detyrë e
lehtë kur kemi të bëjmë më imazhe të botës reale në të cilat mund të këtë zhurma të ndryshme,
shpërndarje të pabarabartë të ndricimit etj. OpenCV ofron mënyrën statike për binarizimin e
imazheve. Këto teknika zbatojne të njejtin rregull mbi të gjithë pixel-at e imazhit dhe njihen si
binarizim i fiksuar (statik).
1. Segmentim Binar (ang: Threshold Binary): Në këtë rast përcaktohet një vlerë që njihet si
vlerë kufitare ose vlerë prag dhe për të gjitha vlerat më të mëdha se kjo vlerë vendoset
një vlerë maksimale përndryshe vendoset 0.
a. 𝑃𝑖𝑥𝑒𝑙 𝑅𝑒𝑧𝑢𝑙𝑡𝑎𝑡 (𝑥, 𝑦) =
{
𝑉𝑙𝑒𝑟ë 𝑀𝑎𝑘𝑠𝑖𝑚𝑎𝑙𝑒 𝑁𝑞𝑠 𝑃𝑖𝑥𝑒𝑙 𝑂𝑟𝑖𝑔𝑗𝑖𝑛𝑎𝑙 (𝑥, 𝑦) > 𝑃𝑟𝑎𝑔
0 𝑃ë𝑟𝑛𝑑𝑟𝑦𝑠ℎ𝑒
}
2. Segmentim Binar (Invertuar): Funksionon në të njëjtën mënyre si Segmentimi Binar por
anasjelltas. Matematikisht shprehet:
a. 𝑃𝑖𝑥𝑒𝑙 𝑅𝑒𝑧𝑢𝑙𝑡𝑎𝑡 (𝑥, 𝑦) =
{
0 𝑁𝑞𝑠 𝑃𝑖𝑥𝑒𝑙 𝑂𝑟𝑖𝑔𝑗𝑖𝑛𝑎𝑙 (𝑥, 𝑦) > 𝑃𝑟𝑎𝑔
𝑉𝑙𝑒𝑟𝑎 𝑀𝑎𝑘𝑠𝑖𝑚𝑎𝑙𝑒 𝑃ë𝑟𝑛𝑑𝑟𝑦𝑠ℎ𝑒
}
Faqe | 32
3. Segmentim më Kufizim: Kontrollon nësë intensisteti i një pixel është më i madh se një
kufij i sipërm atëherë në vend të atij pixeli vendoset vlerë e kufirit përndryshe lihet e
pandryshuar.
a. 𝑃𝑖𝑥𝑒𝑙 𝑅𝑒𝑧𝑢𝑙𝑡𝑎𝑡 (𝑥, 𝑦) =
{
𝑃𝑟𝑎𝑔𝑢 𝑁𝑞𝑠 𝑃𝑖𝑥𝑒𝑙 𝑂𝑟𝑖𝑔𝑗𝑖𝑛𝑎𝑙 (𝑥, 𝑦) > 𝑃𝑟𝑎𝑔
𝑃𝑖𝑥𝑒𝑙 𝑂𝑟𝑖𝑔𝑗𝑖𝑛𝑎𝑙 (𝑥, 𝑦) 𝑃ë𝑟𝑛𝑑𝑟𝑦𝑠ℎ𝑒
}
4. Segmentim më 0: Kontrollon nese intentisiteti i një pixel është më i madh se kufiri atëherë
e lë atë pixel të pa ndryshuar përndryshe e bën 0.
a. 𝑃𝑖𝑥𝑒𝑙 𝑅𝑒𝑧𝑢𝑙𝑡𝑎𝑡 (𝑥, 𝑦) =
{
𝑃𝑖𝑥𝑒𝑙 𝑂𝑟𝑖𝑔𝑗𝑖𝑛𝑎𝑙 (𝑥, 𝑦) 𝑁𝑞𝑠 𝑃𝑖𝑥𝑒𝑙 𝑂𝑟𝑖𝑔𝑗𝑖𝑛𝑎𝑙 (𝑥, 𝑦) > 𝑃𝑟𝑎𝑔
0 𝑃ë𝑟𝑛𝑑𝑟𝑦𝑠ℎ𝑒
}
5. Kufizim më 0 i invertuar: Funksion në të njëjtën mënyrë si Segmentimi më 0 por
anasjelltas.
a. 𝑃𝑖𝑥𝑒𝑙 𝑅𝑒𝑧𝑢𝑙𝑡𝑎𝑡 (𝑥, 𝑦) =
{
0 𝑁𝑞𝑠 𝑃𝑖𝑥𝑒𝑙 𝑂𝑟𝑖𝑔𝑗𝑖𝑛𝑎𝑙 (𝑥, 𝑦) > 𝑃𝑟𝑎𝑔
𝑃𝑖𝑥𝑒𝑙 𝑂𝑟𝑖𝑔𝑗𝑖𝑛𝑎𝑙 (𝑥, 𝑦) 𝑃ë𝑟𝑛𝑑𝑟𝑦𝑠ℎ𝑒
}
Faqe | 33
Duket qartë dhe nga formulimi i këtyre teknikave të segmentimit që ato sillen njësoj pavarsisht
nga mënyra e shpërdarjes së ndricimit. Kjo bën që teknikat e përmendura më sipër japin
rezultate të dobëta në imazhe të botes reale.
Për të marë një binarizim më të mire të imazhit na duhet një teknikë që të bëj një vlerësim bazuar
mbi vlerën e intensitetit të ndricimit që ka marë një zonë e caktuar e imazhit krahasur më një
zonë tjetër të imazhit. Për këtë përdoret një teknikë që quhet segmentim adaptiv i imazhit (ang:
adaptive image thresholding).
1. Segmentim më Vlerë të Mesatarizuar: Kjo teknikë nuk përdor një vlerë pragu për të gjithë
imazhin ashtu si në shembujt e mësipërm. Kjo teknike ndërton një vlerë kufitare bazuar
mbi mesatarën e vlerave fqinje. Duke përdorur vlerën e gjeneruar aplikon për ate zonë
një segmentues binar.
Figure 26 Shembull binarizimi statik në imazhe të botës reale
Faqe | 34
2. Segmentim Gaussian: Funksionon në mënyre të ngjashme më Segmentimin e më vlerë të
mesatarizuar por në këtë rastë vlera prag llogaritet në formën e një mesatare të peshuar
ku peshat janë vlera të një “dritareje gausiane” (ang: Gaussian Window). Pesha e pixel-
ave në këtë rast sa vjen dhe rritet duke u afruar afër qëndrës së dritares.
Figure 27 Majtas- Segmentim me Vlerë të Mesatarizuar. Djathtas- Segmentim Gausian
Ky është rezultati kur përdorim segmentim adaptiv dhe duket qartë që cilesia e segmentimit
është shumë më e mirë se në rastin e pare.
Detektim i ngjyrës dominante (K-Means)
Një tjetër problem që duhet zgjidhur gjate fazës se paraprocesimi të imazhit është mënyra se si
është printuar imazhi. Problemi lind gjatë fazës se binarizimit për vetë mënyrën se si funksionin
kjo teknike. Imazhi i mëposhtëm paraqet një numër të printuar nëpërmjet kontrastit që krijon
më background. Në këtë rast numri është paraqitur më ngjyrë të bardhë kurse background është
më ngjyrë blu. Procesi i binarizimit tenton të konvertoj imazhin në dy ngjyra kryesore, në rastin
tonë në të bardhe dhe të zezë si dhe të theksojë detaje që janë të rendësishme për procesin duke
berë një segmentim të imazhit.
Faqe | 35
Figure 28 Imazh më background më të erret se shkrimi Figure 29 Binarizimi i Imazhit
Klasifikuesi jonë është trajnuar më imazhe në të cilat numrat janë të paraqitur më ngjyrë të zezë
dhe background është më ngjyrë të bardhë. Binarizimi i imazheve që kane background më të
errët se ngjyra që është përdorur për shkrimin e tekstit do të prodhonte një imazh të binarizuar
që ka background të zi dhe shrkrmin të bardhe. Një imazh të tillë nuk mund ta përdorim për të
testuar klasifikuesin tonë pasi nuk do ishte në gjëndje ta detektonte numrin në të dhe kjo për
shkak të kompozimit të gabuar të imazhit.
Një mënyre e thjeshtë për të zgjidhur këtë problem është të bëhet një invertim i ngjyrave dhe në
këtë rast do të marim një imazh më kompozimin e duhur. Që të bëjmë një invertim të ngjyrave
duhet që paraprakisht të marim një vendim nëse imazhi është një imazh i kompozuar në mënyrë
të gabuar apo jo. Për të bërë këtë duhet që të kuptojme se cilat janë dy ngjyrat më dominante
në imazhin që po analizojmë. Kjo nuk është dicka e thjeshtë për tu bërë pasi kemi të bëjmë më
imazhe që janë të fotografuar dhe ngjyrat shfaqen më reflekse të ndryshme dhe në nivele të
ndryshme intensisteti për shkak të sasisë së ndricimit që kanë marë gjatë momentit të shkrepjes
së fotografisë.
Faqe | 36
Për ta thjështëzuar problemin dhe për të zvogëluar numrin e përllogaritjeve e konvertojmë
imazhin në shkalle gri. Kjo na jep mundësin që të analizojmë intensitetin e një kanalin dhe jo të 3
kanaleve si do të ishte në rastin e një imazhi më ngjyra.
Duhet të bëjmë një grupim të vlerave të intensiteteve të imazhit më qellim që të nxjerrim 2 vlerat
që përsëriten më shumë dhe të bejme një riparaqitje të imazhit më keto dy vlera të intensitetit.
Ajo cka marim është një imazh që ka dy lloje pixel-ash; pixel që janë në background dhe pixel që
janë në foreground. Për gjenerimin e këtij imazhi aplikohet algoritmi k-means për të cilin do
flasim në vijim.
Figure 30 Imazhi pasi është aplikar algoritmi kmean
Pasi kemi ndërtuar imazhin e mësipërm duhet të ndërtojmë histogramën e këtij imazhi për të
kuptuar numrin e pixel-ave që janë më ngjyrën e pare dhe numrin e pixel që janë më numrin e
dyte.
Rezultati i histogramës së imazhit të mësipërm është si në grafikun e mëposhtem:
Vihet re që kemi dy piqe, njera është për vlerën 80 të intensitetit më 18950 pixel dhe vlera e dyte
është për intensitetin 192 më 6880 pixel.
Faqe | 37
Figure 31 Histograma e Imazhit pas KMean
Nga rezultati i histogramës duket qartë që kemi të bëjmë më një imazh që pjesa më e madhe e
imazhit është më e errët se pjesa më çelur e imazhit. Pjesën më të madhe e ze background
ateherë mund të themi më një siguri të mirë që kemi të bëjmë më një imazh që duhet invertuar.
Duket qartë që pjesa më të vështirë në këtë zgjidhje është grupimi i vlerave dhe fluktacioneve të
intensitetit të imazhit dhe grupimi i tyre në dy ngjyra të vetme dhe riparaqitja e këtij imazhi më
këto dy ngjyra. Për të realizuar këtë ne përdorëm K-Means.
K-Means (Algoritem Grupimi)
K-Means është një metodë për kuntizimin e vlerave të vektorëve, është përdorur më pare në
procesimin e sinjalit, në analizat e grupuara në data mining. Grupimi k-means synon të
particionojë n vëzhgime në k grupe ku çdo vëzhgim është pjese e grupit më afërsinë më të madhe,
duke shërbyer si një prototip (përfaqësues) për grupin. Kjo rezulton në ndarjen e hapsirës së të
dhëanve në qeliza Voronoi.
Faqe | 38
Problemi është i vështirë në përllogaritje (NP-Fortë); megjithëse ka algoritma heuristik që
përdoren më shpesh dhe konvergjojnë shpejtë në një optimum lokal. Këto janë zakonisht të
ngjajshme më algoritmat për maksimizimin e pritshmërive për kompozimet e shpërdarjeve
Gaussiane nëpërmjet një përafrimi të rafinuar që përdoret nga të dy algoritmat. Gjithashtu ata
të dy përdorin qëndrën e grupit për të modeluar të dhënat; megjithatë k-means tënton të gjejë
grupe më shtrirje hapsinore të krahasueshme, kurse mekanizmi i maksimizimit të pritshmerive i
lejon grupet që të kenë forma të ndryshme.
Ky algoritëm ka një lidhje të dobët më klasifikuesin k-fqinjet më të afërt, një algoritëm i
inteligjencës artificiale dhe shpesh konfuzohen më njeri tjetrin. Klasifikuesi k-fqinjet më të afërt
trajnohet bazuar mbi bashkësin e trajnimit duke e copëzuar bashkësin e të dhënave në grupe. Ky
klasifikues i trajnuar tashmë mund të përdoret për të përcaktuar një input të ri, se në cilën prej
grupeve bën pjesë.
Përshkrim
Supozojmë se kemi një bashkësi vorjtimesh (𝑥1, 𝑥2, 𝑥3, 𝑥4 … 𝑥 𝑛) ku çdo vrojtim është një vektor
d-dimensional më vlera reale, k-means synon të particionojë n vrojtimet në 𝑘(≤ 𝑛) bashkësi 𝑆 =
{𝑆1, 𝑆2, 𝑆3 … , 𝑆 𝑘} që të minimizoje shumën e katrorëve brenda grupit (ang: WCSS: Within Cluster
Sum of Squares)(shuma e funksionit të distancës nga çdo pikë në grup në qendrën e grupit). Më
fjalë të tjera objektivi është të gjejmë:
𝑎𝑟𝑔 = min
𝑠
∑ ∑‖ 𝑋 − 𝜇𝑖‖2
𝑥∈𝑆 𝑖
𝑘
𝑖=1
ku 𝜇𝑖 është mesatarja e pikave në 𝑆𝑖.
Algoritmi
Algoritmi më i njohur përdor një teknike përmirësimi iterative. Për shkak të gjithë përfshirjes
është quajtur shpesh k-means; I janë referuar edhe ndryshe si algoritmi i Lloyd-it, vecanërisht në
komunitetin e shkencave kompiuterike.
Faqe | 39
Marim bashkësin e k-menas 𝑚1
(1)
, 𝑚2
(1)
… , 𝑚 𝑘
(1)
algoritmi procedon duke alternuar nepërmjet 2
hapave:
Hapi i Vlerëdhënies: Vendose çdo vrojtim në një grup mesatarja e të cilit jep jo më shumë
se shuma e katrorëve të grupit. Duke qënë se shuma e katrorëve është distancë
Euklidiane, kjo është intuitivisht e mesmja më e afert.
𝑆𝑖
(𝑡)
= {𝑥 𝑝: ‖𝑥 𝑝 − 𝑚𝑖
(𝑡)
‖
2
≤ ‖𝑥 𝑝 − 𝑚𝑗
(𝑡)
‖
2
∀ 𝑗, 𝑖 ≤ 𝑗 ≤ 𝑘}
ku 𝑥 𝑝 i vendoset ekzaktësisht një 𝑆(𝑡)
, edhe pse mund ti vendoset dy ose më shumë prej
tyre.
Hapi i Perditesimit: Llogarit mesataren e re për të qënë centroidi i vrojtimeve në grupin
e ri.
𝑚𝑖
(𝑡+1)
=
1
|𝑆𝑖
(𝑡)
|
∑ 𝑥𝑗
𝑥 𝑗∈𝑆𝑖
(𝑡)
Algoritmi ka konvergjuar në momentin kur vlerëdhënia nuk ka ndryshuar. Duke qënë se të dy
hapat përmirësojnë objektivin WCSS, dhe ekziston një numër i fundëm i ndarjeve të tilla,
algoritmi duhet të konvergjojë në një optimum lokal. Nuk garantohet nga ky algoritem që
optimumi global është arritur.
Algoritmi shpesh herë paraqitet si vendosja e objekteve në grupin më të afërt bazuar mbi
distancën. Algoritmi standart synon të minimizoje objektivin WCSS dhe kjo vlerëdhënie bëhet
bazuar mbi “shumën më të vogël të katrorëve” që është ekuivalente më vlerëdhënien bazuar mbi
distancën më të vogël Euklidieane. Përdorimi i funksioneve të tjera të distancës veç (katrorëve)
distancës Euklidiane mund të bëj që algoritmi të mos konvergjojë.
Metodat e Inicializimit
Metodat më të njohura që përdoren për të inicializuar janë “Forgy” dhe “Random Partition”.
Metoda Forgy zgjedh në mënyrë të rastësishme 𝑘 vrojtime nga bashkësia e të dhënave dhe i
Faqe | 40
përdor ato si të mesme fillestare. Metoda “Random Partition” në fillim i vendos në mënyrë të
rastesishme çdo vrojtimi një grup dhe më pas vazhdon në hapin e përditëtsimit, duke llogaritur
mesataren fillestare për të qënë centroid i grupit më pikat të përcaktuara në mënyrë të
rastësishme. Metoda “Forgy” tenton të shpërndaj mesataren filletare, ndërkoh “Random
Partition” i vendos ato afër qëndrës së bashkësis së të dhënave.
Figure 32 K mesataret fillestarë janë gjeneruar në mënyrë të rastësishme. Tregohen më ngjyra si në figurë.
Figure 33 K grupet janë krijuar duke shoqëruar çdo vrojtim më mestaren më të afërt. Paraqitja është një diagram Voronoi.
Figure 34 Centroid për çdo k grup bëhet mesatarja e re.
Faqe | 41
Figure 35 Hapat 2 dhe 3 përsëriten deri sa arrihet konvergjenca
Duke qënë se është një algoritëm heuristik nuk ka ndonjë garanci që do të konvergjojë në një
optimum global dhe rezultati mund të varet nga cluster fillestar. Duke qënë se algoritmi është
shumë i shpejte është zakonshme që të ekzekutohet disa herë më kushte të ndryshme fillestare.
Gjithsesi algoritmit k-menas në rastin më të keq do ti duhet shumë kohë që të konvergjoje: në
vecanti është treguar se ekziston një bashkësi pikash edhe në 2 dimensione ku k-means i duhet
një kohë eksponenciale që është 2Ω(𝑛)
për të konvergjuar. Nga eksperienca duket që bashkësi të
tilla nuk shfaqen shpesh dhe në shumicën e rasteve koha e konvergjimit të algoritmit k-menas
është polinomiale.
Kompleksiteti
Në lidhje më kompleksitetin e llogaritjeve, të gjesh zgjidhjen optimale të një problem grupimi k-
means për vrojtime më d dimensione ka keto implikime:
 Kemi një problem NP-Fortë në hapsira Euklidiane më d dimensione edhe kur kemi 2
grupe.
 Kemi një problem NP-Fortë për një numër të përgjithshëm grupesh k edhe në plan
 Nësë k dhe d (dimensioni) janë të fiksuar, problemi mund të zgjidhet ekzaktësisht në
kohën 𝑂(𝑛 𝑑∙𝑘+1
log 𝑛) ku n është numri i rekordeve që duhet të grupohen.
Në përgjithësi janë përdorur shumë algoritma heuristik si algoritmi i Lloyds.
Faqe | 42
Aplikime të k-means
K-Means në vecanti kur përdor heuristika si algoritmi Lloyd-it është shumë i thjeshtë për tu
implementuar dhe aplikuar edhe në të bashkësi të dhënash të mëdhaja. Për këtë arsye është
përdorur në fusha të ndryshme duke përfshirë ndarje e tregut, imazherin kompiuterike, statistika
gjeografike, astronomi dhe agrikulture. Shpesh është përdorur si hap paraprocesimi për
algoritma të tjerë, për shembull për të gjetur një konfigurim fillestar.
Kuantizimi i Vektorëve
Figure 36 Imazh më 2 kanale ngjyre për ilustrim Figure 37 Kuntizimi i Vektorëve të ngjyrave në qeliza Voronoi
duke përdorur k-means
K-Means ka orgjinën nga procesimi i sinjalit dhe ende gjen përdorim në këtë domain. Përdoret
në grafikën kompiuterike, kuantizimin e ngjyrave për të zvogëluar lloje të ngjyrave që mund të
shfaqen në një imazh.
Analizë Grupi
Në analizën e grupi k-means përdoret për të copëzuar të dhënat e hyrëse në k grupe. Një limitim
që ka algoritmi në keto raste është se nuk mund të aplikohet funksioni i distancës mbi të dhëna
që nuk janë numerike.
Faqe | 43
Filtra Morfologjik
Filtrat morfologjik sillen më mënyrë më të kontrolluar ndryshe nga filtrat linear të cilet veprojnë
në mënyrë krejt të rastësishme. Shpesh herë na duhet që të eleminojme nga një imazh pjesë të
imazhit që janë shumë të vogla dhe të panevojshme. Teknika që aplikohet për heqjen e këtyre
pjesëve nga imazhi njihet si “Ngjesh dhe Zgjero” (ang: Shrink and Let Grow). Procesi kalon në disa faza:
1. Të gjitha strukturat e imazhit në mënyrë iterative zvogëlohen duket hequr një shtresë të
një trashësie të caktuar rreth kontureve.
2. Mbas çdo iteracioni strukturat bëhen më të vogla deri sa vetëm struktura e madhe ngelet.
3. Strukturat e ngelura zgjerohen duke i shtuar një shtresë të një trashësie të caktuar.
4. Struktura e madhe është rikthyer pothuajse në madhësin e saj fillestare.
Për këtë na duhen dy operacione. Operacioni i Ngjeshjes ku duhet që strukturave tiu hiqet një
shtresë më pixel nga zona rrethuese dhe një operacion Zgjerimi që duhet të shtoi një shtresë më
pixel në zonën rethuese.
Për të dy operacionet përcaktohet kutpimi i dy pixel që të jenë fqinjë. Kemi dy lloje fqinjësish:
1. Fqinjësi 4-she ( Një pixel është fqinj më pixel në drejtimin veritikal dhe horizontal)
2. Fqinjësi 8-she (Një pixel është fqinj më pixel në drejtimin veritial, horizontal dhe atë
diagonal.)
Ashtu si dhe në filtrat linear ku kemi një matricë më koeficiente, në filtrat morfologjikë vetitë e
filtrit specifikohen në matricën e strukturimit që për imazhet binare vlerat e tij do jenë 1 ose 0.
Faqe | 44
𝐻(𝑖, 𝑗) ∈ {0,1}
Hot spot edhe këtë radhë është qëndra e sistemit koordinativ por ndryshe nga rasti i filtrave
linear jo gjithmon është në atë pozicion.
•
• • •
•
Për të bëre një parashtrim më të qarte të operacioneve morfologjike duhet që paraprakisht të
bejme një shpjegim në lidhje më Imazhet binare.
Për një imazh binar 𝐼(𝑢, 𝑣) ∈ {0,1} bashkesia e pikave të imazhit shprehet si më poshte:
𝑄𝐼 = {𝑝(𝑢, 𝑣)| 𝐼(𝑝) = 1}
Paraqitja e imazhveve binare si pika bashkësie na mundëson që të shprehim operacione bazike
si veprime të thjeshta bashkësish.
Invertimi i Imazheve Binare 𝑄𝐼 = 𝑄𝐼
̅̅̅ = { 𝑝 ∈ ℤ2
|𝑝 ∉ 𝑄𝐼}
Bashkimi I dy imazheve 𝑄𝐼1∨𝐼2
= 𝑄𝐼1
∪ 𝑄𝐼2
Translacioni ( vector d) 𝐼 𝑑 ≡ {( 𝑝 + 𝑑)|𝑝 ∈ 𝐼}
Erosion
Erozioni është pothujse operacionin i anasjelltë i Dilitacionit. Erozionin i përcaktuar në formatin
e bashkësive është si më poshtë:
𝐼 ⊝ 𝐻 ≡ {𝑝 ∈ ℤ2
|(𝑝 + 𝑞) ∈ 𝐼, 𝑝ë𝑟 𝑐𝑑𝑜 𝑞 ∈ 𝐻}
Figure 38 Imazhi Binar I dhe Filtri H
Faqe | 45
Një pozicion p ruhet në rezultatin 𝐼 ⊝ 𝐻 nqs dhe vetem nqs kur elementi H vendoset në
pozicionin p mbahet plotesisht në pixel-at e dukeshëm në imazhit origjinal.
𝐼 ⊖ 𝐻 ≡ {(1,1)} 𝑠𝑒𝑝𝑠𝑒 (1,1) + (0,0) = (1,1) ∈ 𝐼 ∧ (1,1) + (1,0) = (2,1) ∈ 𝐼
Dilatation
Dilitacioni është një operacion morfologjik që i korrespondon konceptit tonë intuitivë në lidhje
më “zgjerimin”. Dilitacioni mund të shprehet duke përdorur notatcionin e bashkësive si më
poshtë:
𝐼⨁𝐻 ≡ {(𝑝 + 𝑞)|𝑝𝑒𝑟 𝑐𝑑𝑜 𝑝 ∈ 𝐼, 𝑞 ∈ 𝐻}
Në mënyrë alternative operacioni i dilitacionit mund të shikohet si një element strukturor i H që
replikohet në çdo pixel të dukshëm të imazhit i ose anasjelltas, imazhi replikohet në çdo
element të dukshëm të H.
Figure 40 Shembull Operacioni Dilitacioni
Figure 39 Shembull Operacioni Erozioni
Faqe | 46
𝐼 ≡ {(1,1), (2,1), (2,2)}, 𝐻 ≡ {(0,0), (1,0)}
𝐼⨁𝐻 = {
(1,1) + (0,0), (1,1) + (1,0),
(2,1) + (0,0), (2,1) + (1,0),
(2,2) + (0,0), (2,2) + (1,0)
}
Algortimat Machine Learning
Supported Vector Machine
Supported Vector Machine është një teknik klasifikimi nga më të përparuarat. Ky algoritëm u
krijua nga Vladimir N. Vapnik dhe Alexey Ya. Chervonenkis. Krijuesit e këtij algoritmi sugjeruan
krijimin e një kalsifikuesi jo linear që tenton të maksimizojë marxhinat e hiperplanit. Ky lloj
përafrimi njihet si “widest street approach” pra ndërtimi i një “vije” që siguron ndarjen e
maksimale.
Në themel të çdo problemi klasifikimi qëndron pyetja: Si mund të ndahet një hapsirë në kufij
vendimi? Disa nga teknikat e propozuara më siper do të bënin një ndarje të hapsirës si më poshte:
Figure 41a) Fqinjët më të Afërt b) Pemët e Vendimit c) Rjetat Neurale
Në rastin e SVM kemi një situatë tjetër. Supozojmë se kemi shëmbullin e mësipërm dhe duam të
gjejmë një mënyrë për të ndarë shembujt pozitiv nga ata negative:
Faqe | 47
Duhet të përcaktojmë nëse shembulli i ri (u), i panjohur gjendet në anën e majtë apo në anën e
djathtë të hiperplanit. Marim një vektor 𝑤⃗⃗ pingul më mesoren e hiperplanit dhe projektojmë
vektorin 𝑢⃗ mbi vektorin 𝑤⃗⃗ dhe kontrollojmë nqs projeksioni është në anën e majtë apo në të
djathtën.
𝒘⃗⃗⃗ ∙ 𝒖⃗⃗ ≥ 𝑪
𝒘⃗⃗⃗ ∙ 𝒖⃗⃗ + 𝒃 ≥ 𝟎
(1)
Problemi qendron në faktin që ka shumë vektor 𝑤⃗⃗ të tille pasi mund të jene më gjatesi të
ndryshme dhe duhet të percaktohet dhe vlera e b. Për të gjetur dy vlera të tilla të vetme duhet
të vendosim disa kufizime sa i takon rregullave të vendimit.
𝒘⃗⃗⃗ ∙ 𝑿+
⃗⃗⃗⃗⃗ + 𝒃 ≥ 𝟏
𝒘⃗⃗⃗ ∙ 𝑿−
⃗⃗⃗⃗⃗ + 𝒃 ≤ 𝟏 (2)
Figure 42 Diagrama për SVM
Faqe | 48
Keto ekuacione qendrojnë për shembujt që janë në kufijtë e hiperplanit. Për lehtësi
matematikore po prezantojme një variabel të ri 𝑌𝑖:
𝑌𝑖 = {
−1 𝑝𝑒𝑟 𝑠ℎ𝑒𝑚𝑏𝑢𝑗 𝑛𝑒𝑔𝑎𝑡𝑖𝑣
+1 𝑝𝑒𝑟 𝑠ℎ𝑒𝑚𝑏𝑢𝑗 𝑝𝑜𝑧𝑖𝑡𝑖𝑣
Bazuar mbi këtë variabël sistemi ekuacionit (2) mund të rishkruhet si më poshte:
{
𝑌𝑖 ∙ (𝑤⃗⃗ ∙ 𝑥𝑖⃗⃗⃗ + 𝑏 ) ≥ 1
𝑌𝑖 ∙ (𝑤⃗⃗ ∙ 𝑥𝑖⃗⃗⃗ + 𝑏 ) ≥ 1
Siç mund të shihet është një ekuacion i vetëm: 𝑌𝑖 ∙ (𝑤⃗⃗ ∙ 𝑥𝑖⃗⃗⃗ + 𝑏 ) ≥ 1. Ky ekuacion mund të
rishkruhet si më poshte: 𝑌𝑖 ∙ (𝑤⃗⃗ ∙ 𝑥𝑖⃗⃗⃗ + 𝑏) − 1 ≥ 0 .
Një kufizim tjetër që vendoset është për vlerat që ndodhen në kufijtë e kanalit:
𝒀𝒊 ∙ (𝒘⃗⃗⃗ ∙ 𝒙𝒊⃗⃗⃗ + 𝒃 ) − 𝟏 = 𝟎 (3)
Ky algoritëm tenton të maksimizojë gjerësin e hiperplanit (kanalit). Gjerësin e kanalit e shprehim
si një relacion mes kufijëve të kanalit.
𝑾𝑰𝑫𝑯𝑻 =
(𝒙+⃗⃗⃗⃗ − 𝒙−⃗⃗⃗⃗ ) ∙ 𝒘⃗⃗⃗
‖𝒘⃗⃗⃗ ‖ (4)
Madhësia
𝑤⃗⃗
‖𝑤⃗⃗ ‖
është vektori njësi mbi të cilin do projektohet diferenca e vektorëve nga ku
llogaritet gjerësia e kanalit. Duke u bazuar në ekuacionin (3) dhe (4) mund të rishkruajmë
ekuacionin (4).
𝑾𝑰𝑫𝑯𝑻 =
(𝒙+⃗⃗⃗⃗ − 𝒙−⃗⃗⃗⃗ ) ∙ 𝒘⃗⃗⃗
‖𝒘⃗⃗⃗ ‖
=
𝑤⃗⃗ ∙ 𝑥+⃗⃗⃗⃗ − 𝑤⃗⃗ ∙ 𝑥−⃗⃗⃗⃗
‖𝒘⃗⃗⃗ ‖
Për shembujt që janë në kufijt e kanailit shkruhet ekuacioni (3):
1. Shembujt Pozitiv: 𝑌𝑖 = 1 → (𝒘⃗⃗⃗ ∙ 𝒙+⃗⃗⃗⃗ + 𝒃 ) − 𝟏 = 𝟎 → (𝒘⃗⃗⃗ ∙ 𝒙+⃗⃗⃗⃗ ) = 𝟏 − 𝒃
Faqe | 49
2. Shembujt Pozitiv: 𝑌𝑖 = −1 → (𝒘⃗⃗⃗ ∙ 𝒙−⃗⃗⃗⃗ + 𝒃 ) − 𝟏 = 𝟎 → −(𝒘⃗⃗⃗ ∙ 𝒙−⃗⃗⃗⃗ ) = 𝟏 + 𝒃
Pra pikërisht kjo është shprehja që duhet të maksimizojme. Por mund të maksimizojme edhe
1
‖𝑤⃗⃗ ‖
ose mund të minimizojme ‖𝑤⃗⃗ ‖ ose mund të minimizojmë madhësin
‖𝑤⃗⃗ ‖2
2
. Të gjitha këto
transformime bëhen për të bërë më të thjeshtë zgjidhjen, për lehtësi matematike.
Problemi që shtrohet është i tillë, duhet të minimizojmë një madhësi pra duhet të gjejmë
ekstremumet si dhe duhet të respesktojme disa kufizime që kemi vendosur. Për këtë perdoret
teorema Koeficientet e Lagranzhit (ang: Lagrange Multipliers Theorem).
Teorema e Lagranzh zvendëson funksionin dhe kufizimet që janë vendosur në një funksion të
vetem ndaj të cilit nuk duhet të kujdesemi për të respektuar kufizimet.
𝑾𝑰𝑫𝑯𝑻 =
(𝒙+⃗⃗⃗⃗ − 𝒙−⃗⃗⃗⃗ ) ∙ 𝒘⃗⃗⃗
‖𝒘⃗⃗⃗ ‖
=
𝒘⃗⃗⃗ ∙ 𝒙+⃗⃗⃗⃗ − 𝒘⃗⃗⃗ ∙ 𝒙−⃗⃗⃗⃗
‖𝒘⃗⃗⃗ ‖
=
𝟏 + 𝒃 + 𝟏 − 𝒃
‖𝒘⃗⃗⃗ ‖
=
𝟐
‖𝒘⃗⃗⃗ ‖
(5)
Figure 43 Shpjegim i teoremës Lagranzh
Faqe | 50
Nqs kemi në funksion 𝑓(𝑥1, 𝑥2, 𝑥3 … 𝑥 𝑛) dhe një kufizim
𝑔(𝑥1, 𝑥2, 𝑥3 … 𝑥 𝑛) 𝑎𝑡𝑒ℎ𝑒𝑟𝑒 𝑘𝑟𝑖𝑗𝑜ℎ𝑒𝑡 𝑓𝑢𝑛𝑘𝑠𝑖𝑜𝑛𝑖:
𝐹(𝑥1, 𝑥2, 𝑥3 … 𝑥 𝑛, 𝜆1, 𝜆2, 𝜆3 … 𝜆 𝑚) = 𝑓(𝑥1, 𝑥2, 𝑥3 … 𝑥 𝑛) − ∑ 𝜆 𝑘 ∙ 𝑔 𝑘(𝑥1, 𝑥2, 𝑥3 … 𝑥 𝑛)
𝑚
𝑘=1
Në rastin që po studiojmë funksioni i Lagranzhe ndërtohet si më poshtë:
𝐿 =
‖𝑤⃗⃗ ‖2
2
− ∑ 𝜆𝑖 ∙ (𝒘⃗⃗⃗ ∙ 𝒙𝑖⃗⃗⃗ + 𝑏) − 1
𝑛
𝑖=1
Nga Analiza Matematike dimë që ekstremumet e një funksioni gjenden duke llogaritur derivatin
e parë të tij. Në këtë rast do llogarisim derivatet e pare në lidhje më 𝒘⃗⃗⃗ dhe 𝑏.
𝜕𝐿
𝜕𝑤
= 𝒘⃗⃗⃗ − ∑ 𝛼𝑖 ∙ 𝑦𝑖 ∙ 𝑥𝑖
𝑛
𝑖=1
= 0 ≡ 𝒘⃗⃗⃗ = ∑ 𝛼𝑖 ∙ 𝑦𝑖 ∙ 𝑥𝑖
𝑛
𝑖=1
𝜕𝐿
𝜕𝑏
= ∑ 𝛼𝑖 ∙ 𝑦𝑖
𝑛
𝑖=1
= 0
Ky është një problem optimizimi kuadratik.
Zvendesojme në ekuacionin e Lagrananzhe ekuacionin 𝒘⃗⃗⃗ = ∑ 𝛼𝑖 ∙ 𝑦𝑖 ∙ 𝑥𝑖
𝑛
𝑖=1 .
𝐿 =
1
2
∙ (∑ 𝜆𝑖 ∙ 𝑦𝑖 ∙ 𝑥𝑖
𝑛
𝑖=1
) ∙ (∑ 𝜆𝑗 ∙ 𝑦𝑗 ∙ 𝑥𝑗
𝑛
𝑗=1
) − ∑ 𝜆𝑖 ∙ 𝑦𝑖 ∙ 𝑥𝑖 ∙ ∑ 𝜆𝑗 ∙ 𝑦𝑗 ∙ 𝑥𝑗
𝑛
𝑖=1
𝑛
𝑖=1
− ∑ 𝜆𝑖 ∙ 𝑦𝑖 ∙ 𝑏
𝑛
𝑖=1
+ ∑ 𝜆𝑖
𝑛
𝑖=1
𝐿 = ∑ 𝜆𝑖
𝑛
𝑖=1
− ∑ ∑ 𝜆𝑖 ∙ 𝜆𝑗 ∙
𝑛
𝑗=1
𝑛
𝑖=1
𝑦𝑖 ∙ 𝑦𝑗 ∙ 𝑥𝑖 ∙ 𝑥𝑗
Faqe | 51
Nga kjo trajtë e ekuacionit të Lagranzhe duket qartë që problem i optimizimit varet drejt për drejt
nga shembujt e bashkësis se trainimit. Rregull i vendimit ndërtohet si më poshte:
∑ 𝜆𝑖 ∙
𝑛
𝑖=1
𝑦𝑖 ∙ 𝑥𝑖 ∙ 𝑢⃗ + 𝑏 ≥ 0 ⟹ 𝑆ℎ𝑒𝑚𝑏𝑢𝑙𝑙 𝑃𝑜𝑧𝑖𝑡𝑖𝑣 ⊕
∑ 𝜆𝑖 ∙
𝑛
𝑖=1
𝑦𝑖 ∙ 𝑥𝑖 ∙ 𝑢⃗ + 𝑏 ≤ 0 ⟹ 𝑆ℎ𝑒𝑚𝑏𝑢𝑙𝑙 𝑁𝑒𝑔𝑎𝑡𝑖𝑣 ⊖
Funksione të ndryshëm KERNEL
Ka disa raste kur supported vector machine nuk mund të jap një zgjidhje përfundimtare kjo për
shkak të konfigurimit të shembujve. Keto raste janë raste linearisht të pandashme. Në këtë rast
duhet të shohim në një prespektive tjetër, pra duhet të shtojmë një dimension tjetër. Në
shembujt që kemi duhet të shtojme dhe karakteristike tjetër më qellim që të mund ti ndajme ato
shembuj.
Na duhet një funksion që të bëj transformimin nga një hapsirë në një hapsirë më një dimension
më shumë. Supozojmë se ekziston një transformim i tillë 𝜙(𝑥𝑖) . Në nuk na intereson
transformimi 𝜙(𝑥𝑖) në na duhet madhësia Κ(𝑥𝑖 ∙ 𝑥𝑗) = 𝜙(𝑥𝑖) ∙ 𝜙(𝑥𝑗)
Funksionet kernel më të perhapur janë:
LINEAR (𝑈⃗⃗ ∙ 𝑉⃗ + 1)
𝑛
EKSPONENCIAL 𝑒
−|𝑥 𝑖−𝑥 𝑗|
𝜎
Faqe | 52
Përdorimi dhe zgjidhja e këtyre funksionve kernel është pjesa më e vështirë e SVM. Për pjesën
më të madhe të aplikimeve përdoret një kernel polinomial. Në rastin e klasifikimit të tekstit më
e pershtatshme është një kernel linear pasi ka një numër të madh dimensione karakteristikash.
Avantazhet dhe Disavatazhet e SVM
Avantazhet
Ka një numër të madh avantazhesh perdorim i një klasifikuesi SVM. Këta lloje klasifikuesish janë
shumë efektiv kur kemi të bëjme më hapsira të mëdha dimensionale. Gjithashtu në rastet kur
numri i dimensioneve bëhet shumë më i madhë se numri elementëve trajnuese pikerisht është
momenti për të përdorur SVM. SVM është shumë performante në përdorimin e memories pasi
përdor një pjesë të shembujve të trajnimit.
Disavantazhet
Një disavantazh për SVM është rasti kur numri i vetive është shumë më i madh se numri i
shëmbujve në raste të tilla SVM do të këtë një performancë të ulët. Një problem tjetër më svm
është rasti kur kemi të dhëna jo të zakonshme si p.sh vargje karakteresh ose struktura të
dhënash si pemët. Ky algoritëm gjithashtu nuk bën vlerësime probabilitare dhe për pasoje këto
vlerësime duhet të bëhen në mënyrë indirekte.
Figure 45 Rast Linearisht i Pandashem
Figure 44 Shtimi i një dimensioni per te zgjidhur rastin linerisht të pa ndashëm
Faqe | 53
Rezultatet
Algoritmi i propozuar është trajnuar dhe ka vlerësuar një bashkësi trajnimi më 70 imazhe që
përmbanin 10 numra nga 0 – 9 më fonte dhe paraqitje të ndryshme. Keto imazhe shembull janë
krijuar nga unë në Adobe Photoshop CS6.
Imazhet e bashkësis së tarjnimit kanë dimensione 30 x 45 pixel dhe kanë një kanal ngjyre, me
shkalle gri. Për të krijuar imazhet e bashkësis së trajnimit janë përdorur këto fonte:
1. Arial
2. Hobo Std
3. Berlin Sans FB Demi
4. Calibri
5. Peoplar Std
6. Ravie
7. Paypyrus
Për të testuar korrektësin e algoritmit janë mare imazhe të ndryshme test. Këto imazhe janë marë
nga burime të ndryshme. Imazhet janë marë nga burimet e mëposhtme:
 Janë marë në mënyrë të rastësishme në web.
 Janë gjeneruar në Adobe Photoshop CS6
 Janë fotografi7
të botës reale të realizuara nga unë.
Kompiuteri që është përdorur për të ekzekutuar algoritmin është HP ProBook 4740S:
 CPU: Intel Core i5 - 3230M @2.6 GHz
 RAM: 8 GB
 SSD SanDisk Ultra II
7
Fotografite janë realizuar duke perdorur nje aparat fotografik dixhital (Nikon D3200) si dhe nje aparat mobile
(Huawei Nexus 6P)
Faqe | 54
Algoritmi funksionon më imazhe në formate të ndryshme .jpg, .png, .bmp kjo dhe për vetë
lehtësinë që të jep libraria e OpenCV.
Imazhet që përdoren nga ky algoritëm kanë rezolucion nga 400 x 500 deri në 6016 x 4000.
Algoritmi arrin ti përpunoj imazhet në një kohe relativisht të shpëjte kjo dhe në varësi të numrit
të zonave të interesit8
që gjenden në atë imazh edhe pse rezolucioni i imazhit mund të jetë shumë
i lartë.
Në mënyrë që të vlerësojme sa më saktë algoritmin e propozuar duhet të bëjmë disa vlerësime
matematikore dhe sasiore.
Shkalla e Gabimit: përcaktohet si numri i detektimeve false në një imazh pjestuar më
numrin total të detektimeve.
𝑆ℎ𝐺 =
𝑁𝑢𝑚𝑟𝑖 𝑖 𝐷𝑒𝑡𝑒𝑘𝑡𝑖𝑚𝑒𝑣𝑒 𝐹𝑎𝑙𝑠𝑒
𝑁𝑢𝑚𝑟𝑖 𝑇𝑜𝑡𝑎𝑙 𝑖 𝐷𝑒𝑡𝑒𝑘𝑡𝑖𝑚𝑒𝑣𝑒
∙ 100%
Detektimet false janë struktura që janë detektuar si një numër por që nuk është ai numër.
Numri total i detektimeve është shuma totale e detektimeve të mara.
Gjate ketij studimi janë zhvilluar shumë testime duke provuar algoritmin mbi grupe të caktuara
të domain të numrave për të përcaktuar si si ndikon bashkësia e trainimit mbi rezultatet dhe
përafrimet që bën algoritmi.
Algoritmi u testuar më 34 imazhe që ishin numra 1,3,4,6 por të paraqitur në fonte dhe pozicione
të ndryshme. Rezultatet ishin si më poshte:
Table 2Testimet dhe Rezultatet
Testi
Nr
Numri Total i
Numrave
Numra të
detektuara Gabim
Numra të
Detektuara Sakte
Shkalla e
Gabimit (%)
Shkalla e
Suksesit
1 34 5 29 14.7 85.3
2 34 2 32 5.8 94.2
8
Zona interesi (ang: ROI Region of Interes) janë ato struktuara të imazhit për e cilat jemi duke kerkuar. Në këtë
raste janë zonat më numra.
Faqe | 55
Figure 46 Testimi Nr 1
Figure 47 Testimi Nr 2
Duke studiuar më vëmendje bashkësin e trajnimit dhe rastet në të cilat algortimi kishte gabuar
arrita të kuptoj arsyen pse algortimi për një numër të caktuar rastesh nuk kishte arrituar të
detektonte më saktësi numrin e duhur. Nga rezultatet bie në sy që algoritmi ka gabuar në
29, 85%
5, 15%
Analiza e imazheve për numrat 1 , 3 ,
4 , 6
Sukses
Deshtim
32, 94%
2, 6%
Analiza e imazheve për numrat 1 , 3 ,
4 , 6
Sukses
Deshtim
Faqe | 56
detektimin e numrit 1. Imazhet e numrave 1 që nuk mund të detektoheshin kishin numrin 1 të
ngjitur djathas dhe pa pjesen e poshtme të 1 si në tabelen 2.
Table 3 Numri 1 më probleme
Në bashkësinë e trajnimit nuk gjendej asnjë imazh që të kishte numërin 1 në një konfigurim të
ngjashëm që algoritmi ta përdorte për tu trajnuar. Mbas shtimit në bashkësin e trajnimit të një
imazhi më konfigurimin e 1 në një forme të ngjashme saktësia e algoritmit u përmirësua më 9%.
Kufizime dhe përmirësime
Natyrisht që ka disa limitime në algortimin që kam propozuar për detektimin e numrave. Keto
limitime lindin nga mënyra e kompozimit të imazhit të fotografuar ose të gjeneruar. Në rastet kur
imazhi është shumë i errët ose shumë i ndritshëm është shumë e vështire të ekstraktohen numrat
nga imazhi. Problem tjetër sjellin dhe rastet kur kemi superpozim të numrave, pra kemi disa
numra të vendosur njëri mbi tjetrin gjë që e bën shumë të veshtirë dallimin mes tyre.
Ky aplikim mund të zhvillohet akoma më tej më njohjen e shkronjave gjë që do ta kompletonte
funksionin e një OCR9
. Një aplikim i tille do bënte të mundur detektimin dhe kuptimin e plotë të
teksteve.
Algoritmi i propozuar deri më tani detekton dhe njeh vetëm tekstet e printuara në formë
dixhitale. Në të ardhmen mendoj ta zgjeroj këtë kërkim duke ndertuar një algoritëm që të mund
të detektojë dhe kuptoje dhe tekstin e shkruar më dorë. Kjo përben një sfidë të vertetë teknike
për vetë variacionet që ka mënyra e të shkruarit në njerëz të ndryshëm.
9
OCR (Optical Character Recognition) Njohje Optike e Karaktereve
Faqe | 57
Aplikime të mundshme
Zgjidhje të tilla kanë shumë përdorime në fusha të ndryshme të industrise dhe nder to mund të
përmendim:
1. Marje automatike e të dhënave në dokumenta biznesi si për shembull pashaporta, fatura,
dokumenta banke etj.
2. Njohje automatike e targave të makinave
3. Nxjerrje automatike e informacioneve kryesore për dokumentat e sigurimeve.
4. Ekstraktimi i informacioneve nga kartevizitat.
5. Konvertim në versione teksti të editueshëm nga dokumentat e printuara.
6. Ndërtimi i sistemeve për mbrojtjen ndaj sistemeve robotike (CAPTCHA)
7. Teknologji ndihmëse për personat e verbër ose më shikim të dëmtuar.
Duket qartë që kjo zgjidhje ofron shumë aplikime të ndryshme por ajo që mua më intereson më
shumë dhe që ka një imapakt më të madh në shoqëri janë aplikimet mjekësore. Një algoritëm që
është në gjendje të lexoje tekstin do ishte një ndihmë shumë e madhe për personat më mungesë
ose më shikim të dëmtuar. Tekstet e gjeneruara prej këtij algoritmi mund ti transmetohen
përdoruesit nepërmjet audios ose nepërmjet alfabetit të tyre special. Integrimi i kësaj teknologjie
në një shakllë të gjerë ose bërja e saj mobile do ju jepte më shumë akses këtij grupi shoqëror në
tregun e punës si dhe do ti integronte ata më lehtë në jetën shoqërore të vendit. Kjo është
filozofia ime për teknologjine dhe shkencën në përgjithësi, nqs nuk është në funksion të njerzve
atëherë nuk ka asnjë vlerë.
Faqe | 58
Bibliografi
[1] Sergei Azernikov. Sweeping solids on manifolds. In Symposium on Solid and Physical
Modeling,
pages 249–255, 2008.
[2] John Canny. A computational approach to edge detection. Pattern Analysis and Machine
Intelligence, IEEE Transactions on, PAMI-8(6):679–698, Nov. 1986.
[3] F. Mai, Y. Hung, H. Zhong, and W. Sze. A hierarchical approach for fast and robust ellipse
extraction. Pattern Recognition, 41(8):2512–2524, August 2008.
[4] Thomas B. Moeslund. Image and Video Processing. August 2008.
[5] Optical Charater Recognition
https://en.wikipedia.org/wiki/Optical_character_recognition#Applications
[6] Principlas of Digital Image Processing – Fundamentals Techniques
[7] Learning OpenCV- OReilly
[8] Thresholding. Bryan S. Morse, Brigham Young University, 1998–2000
[9] MIT OpenCourseWare http://ocw.mit.edu/courses/electrical-engineering-and-computer-
science/6-034-artificial-intelligence-fall-2010/
[10] Support Vector Machines: Patrick H. Winston
https://www.youtube.com/watch?v=_PwhiWxHK8o&index=4&list=PLMfKZLNucVwqKNaknw6T
4p0fJPSn5EN4x
[11] Pattern Recognition: K-Menas Algorithm and Hierarchical Clustering. Indian Statistical
Institute, Kolata
[12] Edge and Corner Detection: UC Davis University
https://www.youtube.com/watch?v=P35WsRDnTsU&list=PLMfKZLNucVwqKNaknw6T4p0fJPSn
5EN4x&index=9
[13] Nearest Neighbors: Patrick H. Winston
https://www.youtube.com/watch?v=09mb78oiPkA&index=2&list=PLMfKZLNucVwqKNaknw6T4
p0fJPSn5EN4x
[14] OpenCV API Reference http://docs.opencv.org/2.4/modules/refman.html
[15] Histogram Equalization: Computer Vision: Algorithms and Applications By Richard Szeliski
[16] Advances in K-means Clustering: A Data Mining Thinking By Junjie Wu

Contenu connexe

Similaire à OCR using Supported vector Machine

Informatika Biznesore Resurse interneti biznesi_elektronik -dispensa-fshab
Informatika Biznesore Resurse interneti biznesi_elektronik -dispensa-fshabInformatika Biznesore Resurse interneti biznesi_elektronik -dispensa-fshab
Informatika Biznesore Resurse interneti biznesi_elektronik -dispensa-fshabValdet Shala
 
Programi i BDI-së 2020-2024 - "Koha për kryeministrin e parë shqiptar"
Programi i BDI-së 2020-2024 - "Koha për kryeministrin e parë shqiptar"Programi i BDI-së 2020-2024 - "Koha për kryeministrin e parë shqiptar"
Programi i BDI-së 2020-2024 - "Koha për kryeministrin e parë shqiptar"Portalb.mk
 
E drejta kontraktore_skender gojani
E drejta kontraktore_skender gojaniE drejta kontraktore_skender gojani
E drejta kontraktore_skender gojaniSkender Gojani
 
Psikologji forenzike shqip
Psikologji forenzike  shqip Psikologji forenzike  shqip
Psikologji forenzike shqip Nasuf GËRMIZAJ
 
Psikologjiforenzikeshqip 111216100617-phpapp02
Psikologjiforenzikeshqip 111216100617-phpapp02Psikologjiforenzikeshqip 111216100617-phpapp02
Psikologjiforenzikeshqip 111216100617-phpapp02Ministry of Health
 

Similaire à OCR using Supported vector Machine (7)

Informatika Biznesore Resurse interneti biznesi_elektronik -dispensa-fshab
Informatika Biznesore Resurse interneti biznesi_elektronik -dispensa-fshabInformatika Biznesore Resurse interneti biznesi_elektronik -dispensa-fshab
Informatika Biznesore Resurse interneti biznesi_elektronik -dispensa-fshab
 
Udhëzuesi i Kturtle
Udhëzuesi i KturtleUdhëzuesi i Kturtle
Udhëzuesi i Kturtle
 
Programi i BDI-së 2020-2024 - "Koha për kryeministrin e parë shqiptar"
Programi i BDI-së 2020-2024 - "Koha për kryeministrin e parë shqiptar"Programi i BDI-së 2020-2024 - "Koha për kryeministrin e parë shqiptar"
Programi i BDI-së 2020-2024 - "Koha për kryeministrin e parë shqiptar"
 
E drejta kontraktore_skender gojani
E drejta kontraktore_skender gojaniE drejta kontraktore_skender gojani
E drejta kontraktore_skender gojani
 
Algoritmi dhe programimi , prezantime per shkolla te mesme
Algoritmi dhe  programimi , prezantime per shkolla te mesmeAlgoritmi dhe  programimi , prezantime per shkolla te mesme
Algoritmi dhe programimi , prezantime per shkolla te mesme
 
Psikologji forenzike shqip
Psikologji forenzike  shqip Psikologji forenzike  shqip
Psikologji forenzike shqip
 
Psikologjiforenzikeshqip 111216100617-phpapp02
Psikologjiforenzikeshqip 111216100617-phpapp02Psikologjiforenzikeshqip 111216100617-phpapp02
Psikologjiforenzikeshqip 111216100617-phpapp02
 

OCR using Supported vector Machine

  • 1. REPUBLIKA E SHQIPËRISË UNIVERSITETI I TIRANËS FAKULTETI I SHKENCAVE TË NATYRËS DEGA: INFORMATIKË Mikrotezë për mbrojtjen e gradës “Master i Shkencave” (MSC) Tema: “Detektimi i numrave në imazhe duke përdorur Supported Vector Machine si algoritëm i inteligjencës artificiale” Punoi Udhëhoqi Kejvi DOKO Dr. Olti QIRICI (________________) (________________) Tiranë, më _____/_____/_________
  • 2. Faqe | 2 Tabel Përmbajtie Mirënjohje....................................................................................................................................... 5 Abstrakt........................................................................................................................................... 6 Dallimi i Numrave............................................................................................................................ 7 Histori e Shkurtër ........................................................................................................................ 7 Mjete dhe programe ................................................................................................................... 8 Përpunim Dixhital i Imazhit............................................................................................................. 9 Teknika e propozuar (Paraprocesim Imazhi)............................................................................. 11 Detektimi i kontureve dhe Vijave.............................................................................................. 15 Algoritmi Canny Edge ............................................................................................................ 18 Barazimi i Histogramës.............................................................................................................. 25 Histograma ............................................................................................................................ 25 Teknika e barazimit të histogramës ...................................................................................... 29 Kufizimi i Kontureve .................................................................................................................. 30 Binarizimi i Imazheve................................................................................................................. 30 Detektim i ngjyrës dominante (K-Means)................................................................................. 34 K-Means (Algoritem Grupimi) ............................................................................................... 37 Filtra Morfologjik .......................................................................................................................... 43 Erosion....................................................................................................................................... 44 Dilatation................................................................................................................................... 45 Algortimat Machine Learning ....................................................................................................... 46 Supported Vector Machine....................................................................................................... 46 Funksione të ndryshëm KERNEL................................................................................................ 51 Avantazhet dhe Disavatazhet e SVM ........................................................................................ 52 Avantazhet............................................................................................................................. 52 Disavantazhet ........................................................................................................................ 52 Rezultatet...................................................................................................................................... 53 Kufizime dhe përmirësime............................................................................................................ 56 Aplikime të mundshme................................................................................................................. 57 Bibliografi...................................................................................................................................... 58
  • 3. Faqe | 3 Tabela e Figurave Figure 1 Shembull Numrash në Imazh.......................................................................................... 11 Figure 2 Detektime Fallco ............................................................................................................. 12 Figure 3 Eleminimi i Detektimeve Fallco....................................................................................... 12 Figure 4 Zona e izoluar e imazhit.................................................................................................. 12 Figure 5 Zona e izoluar e imazhit e binarizuar.............................................................................. 12 Figure 6 Zona e izoluar e imazhit pas Mbylljes............................................................................. 13 Figure 7 Matrica e Trainimit ......................................................................................................... 14 Figure 8 Rrjedha e procesit të detektimit të numrave ................................................................. 15 Figure 9 Detektimi i Kontureve dhe Vijave (a).............................................................................. 16 Figure 10 Detektimi i Kontureve dhe Vijave (b)............................................................................ 16 Figure 11 Brinjë më shkalle ideale................................................................................................ 18 Figure 12 Imazhi Fillestar.............................................................................................................. 20 Figure 13 Imazhi i Zbutur .............................................................................................................. 20 Figure 14 Imazhi i Zbutur .............................................................................................................. 21 Figure 15 Madhesit e Gradientit................................................................................................... 21 Figure 16 Drejtimi i Gradientëve................................................................................................... 22 Figure 17 Vlerat e Gradientëve..................................................................................................... 23 Figure 18 Pas anullimit të jo-maksimumeve................................................................................. 23 Figure 19 Brinjët pas eleminimit të jo-maksimumeve.................................................................. 24 Figure 20 Segmentim i dyfishtë .................................................................................................... 24 Figure 21 Segmentim i Dyfishtë.................................................................................................... 25 Figure 22 Ndjekja e brinjëve ......................................................................................................... 25 Figure 23 Imazhi rezultant ............................................................................................................ 25 Figure 24 Shembull Histogramë.................................................................................................... 26 Figure 25 Transformimi i histogramës.......................................................................................... 29 Figure 26 Shembull binarizimi statik në imazhe të botës reale.................................................... 33 Figure 27 Majtas- Segmentim me Vlerë të Mesatarizuar. Djathtas- Segmentim Gausian........... 34 Figure 28 Imazh më background më të erret se shkrimi.............................................................. 35 Figure 29 Binarizimi i Imazhit........................................................................................................ 35 Figure 30 Imazhi pasi është aplikar algoritmi kmean ................................................................... 36 Figure 31 Histograma e Imazhit pas KMean................................................................................. 37 Figure 32 K mesataret fillestarë janë gjeneruar në mënyrë të rastësishme. Tregohen më ngjyra si në figurë..................................................................................................................................... 40 Figure 33 K grupet janë krijuar duke shoqëruar çdo vrojtim më mestaren më të afërt. Paraqitja është një diagram Voronoi. .......................................................................................................... 40 Figure 34 Centroid për çdo k grup bëhet mesatarja e re. ............................................................ 40 Figure 35 Hapat 2 dhe 3 përsëriten deri sa arrihet konvergjenca................................................ 41 Figure 36 Imazh më 2 kanale ngjyre për ilustrim ......................................................................... 42 Figure 37 Kuntizimi i Vektorëve të ngjyrave në qeliza Voronoi duke përdorur k-means............. 42
  • 4. Faqe | 4 Figure 38 Imazhi Binar I dhe Filtri H.............................................................................................. 44 Figure 39 Shembull Operacioni Erozioni....................................................................................... 45 Figure 40 Shembull Operacioni Dilitacioni.................................................................................... 45 Figure 41a) Fqinjët më të Afërt b) Pemët e Vendimit c) Rjetat Neurale ...................................... 46 Figure 42 Diagrama për SVM ........................................................................................................ 47 Figure 43 Shpjegim i teoremës Lagranzh...................................................................................... 49 Figure 44 Shtimi i një dimensioni per te zgjidhur rastin linerisht të pa ndashëm........................ 52 Figure 45 Rast Linearisht i Pandashem......................................................................................... 52 Figure 46 Testimi Nr 1................................................................................................................... 55 Figure 47 Testimi Nr 2................................................................................................................... 55 Lista e Tabelave Table 1 Ndyshimi i histogramës me ndryshimin e kontrastit....................................................... 27 Table 2Testimet dhe Rezultatet.................................................................................................... 54 Table 3 Numri 1 më probleme...................................................................................................... 56
  • 5. Faqe | 5 Mirënjohje I jam shumë mirënjohës çdo personi që ka kontribuar në realizimin e këtij projekti. Ky projekt ka qënë për mua një experiencë unike. Njohuritë dhe eksperienca e marë në këtë projekt do më shërbejne mua dhe kolegëve të mi që ta cojnë zhvillimin e kësaj teme në një nivel tjetër. Gjatë punës për këtë projekt kam lexuar dhe kam thelluar njohuritë e mia mbi teknologji të reja dhe punime shkencore që janë realizuar nga univerisitet dhe kompanitë më prestigjoze në botë. Gjej rastin ti shpreh falenderim dhe mirënjohje pedagogut dhe udhëheqësit tim shkencor Dr. Olti Qiricit, për mbështetjen, këshillat, orientimin dhe udhëheqjen shkencore në realizimin e këtij punimi. Të fundit po jo më pak të rëndësishmit, dua të falenderoj familjen time dhe miqtë për mbështetjen morale, insipirmin dhe kurajon pa të cilët përfundimi i ketij projekti më sukses do të ishte thuajse i pamundur.
  • 6. Faqe | 6 Abstrakt Ky punim është i fokusuar në detektimin e numrave në imazhe dixhitale ose fotografi të botës reale duke përdorur SVM1 (ang: Support Vector Machine) si algoritëm i inteligjencës artificiale. Krahas këtij algortimi në këtë punim tregohen të gjitha teknikat dhe hapat e paraprocesimit të imazhit që duhen ndjekur më qëllimi që faza e trajnimit dhe faza detektimit të numrava të jetë sa më e sukseshme. Në këtë punim është propozuar një teknik orgjinale për detektimin e imazheve si dhe janë shpjeguar më detaje hapat në të cilat duhet të kalojë një imazh përpara se ti jepet klasifikuesit. Ndër teknikat që janë përodorur mund të përmend detektimin e kontureve, binarizimin e imazheve, detekmin e ngjyrës dominante etj. Pasi imazhi ka kaluar në të gjitha fazat e paraprocesimit bëhet trajnimi i SVM më imazhe të gjeneruara në forme dixhitale, duke i dhënë për çdo numër 7 imazhe përfaqësuese në fonte dhe pamje të ndryshme. Më perfundimin e trajnimit, klasifikuesi i SVM është gati për të bërë detektimin e numrave. 1 SVM (ang: Support Vector Machine) algoritëm i inteligjencës artificiale, propozuar nga Vladimir N. Vapnik dhe Alexey Ya. Chervonenkis
  • 7. Faqe | 7 Dallimi i Numrave Histori e Shkurtër Njohja optike e karaktereve (ang: OCR) konsiston në konvertimin e imazheve të teksteve të shkruara më dorë ose të printuara, në tekst të kuptueshëm nga kompiuterat, të ekstraktuara nga imazhe të skanuara ose të fotografuara. Përdoret gjerësisht si një formë për futjen e të dhënave nga dokumentat e printuara siç mund të jënë pasaporta, fatura, karvizita etj. Është një mënyrë shumë e përdorshme për dixhitalizimin e të dhënave më qëllim që të mund të përpunohen më pas në mënyre dixhitale. Njohja optike e karaktereve është një fushë e gjerë kërkimore duke aplikuar machine learning 2 , inteligjencë artificiale, të mësuarit njohës dhe imazheria kompiuterike. Versionet e vjetra duhej të trajnoheshin më imazhe për çdo karakter dhe mund të procesonin një shkronje në një kohe. Sistemet e sotme më të avancuara mund të procesojne disa imazhe njëkohëshit dhe mund të detektojnë grupe shkronjash në të njëjtën kohë. Saktësia dhe gama e elementëve strukturorë që mund të detektojne është bërë gjithnje e më madhe. Aplikimet më të mëdhja të këtyre teknologjive kanë qënë në zhvillimin e telegrafisë dhe krijimin e paisjeve për personat më aftësi të kufizuara të shikimit që të kënë mundesi të lexojnë dhe të perceptojnë botën përreth tyre. Për herë të parë në 13 Janar 1976 u krijua nga Ray Kurzweil një paisje që mund të lexonte karakteret për të personat më aftësia të kufizuara të shikimit. Shpikja e kësaj paisje erdhi së bashku më shpikjen e sintetizuesit zanor. Në ditët e sotme më futjen e paisjeve portabël si smartphone, tablet, google glasses etj aplikimi i këtyre teknologjive është bërë dhe më i përhapur dhe më i nevojshem. Ndër aplikimet më të përhapura janë: 2 Machine Learning: Disiplinë e inteligjencës artificiale që tenton të trajnojë dhe të mësojë sistemet kompiuterike ashtu siç mesojnë njerzit.
  • 8. Faqe | 8 1. Futjen e të dhënave për dokumenta biznesi 2. Njohje automatike e numrit të targave të makinave 3. Ekstraktimi i të dhënave të kartëvizitave dhe shtimi i tyre në listën e kontakteve 4. Realizimi më i shpejtë i versioneve tekst për dokumentat e printuar 5. Realizimin e kërkimit mbi dokumenta të skanuara ose të printuara 6. Konvertimi i shkrimit të dorës në kohe reale në shkronja dixhitale (pen computing) 7. Mbrojtia e sistemeve CAPTCHA nga botet3 (Ndërtimi i CAPTCHA të cilat nuk mund të njihen nga OCR) 8. Ndërtimi i teknologjive asistuese për personat e verbër Mjete dhe programe Për realizimin e kësaj detyre kam përdorur disa software dhe disa librari që ndihmojnë në realizimin e kësaj detyre: 1. Adobe Photoshop CS6 2. Microsoft Visio 2016 3. Google Sketch Up LayOut 4. Visual Studio 2015 5. ImageJ 6. OpenCV Paisje: 1. Nikon D3200 2. Nexus 6P 3. HP ProBook 4740s, 8GB Ram, Core i5 3230M 2.6 GHz 3 Bot: Software autonom të ndërtuar me një qellim specifik që tenton të imitojë sjelljen njerëzore duke naviguar në website dhe sisteme të ndryshme me qellim vjedhje informacioni, mbledhje të dhenash etj.
  • 9. Faqe | 9 OpenCV është një ankronim për Open Source Computer Vision Library, është një librari që përmban funksione për përpunimin kompiuterik të imazheve. Është zhvilluar nga Intel dhe tashmë menaxhohet nga Willow Garage. Libraria ofron funksionet në platforma të ndryshme ku përfshihen Windows, Android, Free BSD, Maemo, iOS, OpenBSD, Linux dhe Mac OS. Libraria në momentin e shkrimit të këtij dokumenti ka arritur në versionin 3.0.1. Fokusi kryesor i librarisë është procesimi në kohë reale i imazheve dhe implementimi i algoritmave të inteligjencës artificiale. Duke përdorur këtë librari në mund të përmirësojmë koston e llogaritjeve dhe të marim inisiativen drejt aplikacioneve që përdorin në mënyrë intensive procesorin. Fushat ku mund të përdoret OpenCV janë njohja e fytyrave, OCR, identifikimi i objekteve, ndjekja e lëvizjes, njohja e gjesteve etj. OpenCV gjithashtu përfshin librari për mësimin statistik të makinave që mbështët fushat e mësipërme. Emrat e funksioneve që mbështësin këtë librari janë pemet e vendimit, klasifikuesi naiv i Bayes, k-fqinjet më të afërt, rrjetat neurale, support vector machine e shumë të tjerë. Libraria është shkruar në gjuhe C dhe për shkak të ndërfaqes në C është e portueshme në platforma të ndryshme. Për të rritur përdorshmërine e kësaj librarie janë krijuar shumë klasa ndihmëse (ang: wrapper) në gjuhë të ndryshme si C#, Pyhon, Ruby dhe Java. Imazhet që janë përdorur për testime janë imazhe të gjeneruar në mënyrë dixhitale nëpërmjet Adobe Photoshop ose janë shkrepur nga aparati dixhital. Imazhet e përdoruara për trajnim janë krijuar nga unë duke përdorur Adobe Photoshop. Në imazhet e ndërtuara për trainim janë vendosur të gjithë numrat në disa fontë të ndryshme që ta trajnoi klasifikuesin për një gamë sa të më të gjerë numrash. Përpunim Dixhital i Imazhit Ka shumë teknika që përdoren në njohjen e tekstit dhe numrave në vecanti. Shumica e këtyre teknikave bazohen në ekstraktimin e karakteristikave nga imazhi. Ekstraktimi i këtyre karakterisktikave bazohet mbi percaktimin e disa karakteristikave primitive dhe aplikimi i tyre në
  • 10. Faqe | 10 të gjithë imazhin në shkalle të ndryshme zmadhimi dhe rrotullimi. Kjo teknikë ka disa probleme të dukshme: 1. Kohë e madhe procesimi Në përdorimin e kësaj teknike imaxhi konsiderohet si një matricë më pika (piksel). Numrat që duam të detektojmë në një imazh mund të jenë karahasimisht shumë të vogla ose shumë të mëdha në lidhje më dimensionet e vetë imazhit. Gjithashtu numrat mund të jene të vendosur në kënde të ndryshme gjë e cila e bën shumë të vështirë dhe të kushtueshme në terma procesimi. Supozojme se kemi zgjedhur një klasifikues Supported Vector Machine ose një rrjet neural. Ky klasifikues është trajnuar më një bashkësi trajnimi ku janë dhënë disa shembuj numrash në një madhësi të caktuar. Për të detektuar numrat duhet që të skanojme imazhin nga e majta në të djathtë dhe nga lartë, poshtë. Kjo zone e imazhit duhet të rishkallëzohet në madhesin e mostrave të pvrdorura gjatë procedurës së trajnimit. Zona e imazhit i jepet klasifikuesit që të bëj klasifikimin. Problemi qëndron në faktin që imazhi duhet skanuar në mënyre iterative duke zmadhur zonën e skanimit gjë që zgjat shumë kohën e procesimit. Një problem tjetër që lind më këtë teknike është fakti që imazhi duhet skanuar për të gjitha simbolet e mundshme dhe në të gjitha pozicionet e mundshme gjë që do të donte një kohe shumë të madhe. Përdorimi i ksaj teknike për shkak të kohës së gjatë të procesimit e bën të pamundur përdorimin e saj në imazhe që transmetohen në kohe reale. 2. Detektime fallco Për shkak të mënyrës iterative të funksionimit të ketij algoritmi zona e skanimit mund të ndodhi që të kapi disa herë të njëjtin numër dhe kjo do bëj që klasifikuesi të kalasifikoje atë si një numër më shumë se 1 herë. Eleminimi i këtyre dublikave është shumë kompleks dhe shumë i kushtueshëm në terma kohor.
  • 11. Faqe | 11 Figure 1 Shembull Numrash në Imazh Teknika e propozuar (Paraprocesim Imazhi) Në vijim do e shpjegoj shkurtimisht një përafrim që unë kam zgjedhur ndaj këtij problemi. Problemi kryesor i prezantuar më siper qëndronte në faktin se algoritmi duhet të bridhte një numër shumë të madh herësh për të detektuar vetite e çdo numri. Për të percaktuar sa më shpejtë zonat e imazhit që mund të përmbanin numra aplikohet një algoritëm për detektimin e vijave dhe të kontureve. Në fund të aplikimit të kësaj faze kemi perfituar elementët strukturor që formojnë një vije ose një kontur. Pasi janë detektuar konturet dhe vijat të cilët mund të jenë të formave dhe permasave të ndryshme në imazh, për të punuar më lehtë gjejmë drejtekendeshin më të madh që perfshin secilin prej këtyre elementëve. Për shkak të formës së tyre algoritmi për detektimin e vijave dhe kontureve mund të detektoje pjesë të vecanta në numrave si konture ose si vija më vete si në shembullin më poshte:
  • 12. Faqe | 12 Figure 2 Detektime Fallco Figure 3 Eleminimi i Detektimeve Fallco Si mund të shikoni në figurën nr.2 algoritmi për detektimin e kontureve ka detektuar edhe pjesën e brendshme të numrit 8 dhe 9 si konture dhe vija të pavarura. Eleminimi i këtyre dublikatave realizohet bazuar mbi mbivendosjen e sipërfaqeve dhe mbi masën e mbulimit. Pas perfundimit të hapit të parë kemi listën e pjesëve të imazhit që pretendohet të jenë numra. Çdo element i kësaj liste duhet të kovertohet në një imazh të binarizuar duke e konvertuar ate imazh në formatin bardhë e zi. Për të bërë këtë binarizim përdoret një filtër Gaussian që bën një binarizimi pothuajse të pavarur nga teprica apo mungesa e ndricimit të imazhit. Figure 4 Zona e izoluar e imazhit Figure 5 Zona e izoluar e imazhit e binarizuar
  • 13. Faqe | 13 Duket qartë që pas procesit të binarizimit kemi një numër të qartë dhe paraqitur sakte por ende procesi nuk është i perfunduar. Në imazhin e perftuar ka disa mbetje (artifakte) që mund të dëmtojnë procesin e detektimit të numrit. Për të shmangur çdo pasaktësi të mundëshme mbi imazhin e figures 5 aplikojmë një operacion mbyllje. Operacioni i mbylljes tenton të largojë nga imazhi struktura të vogla duke aplikuar njeri pas tjetërit në këtë radhe një operacion dilitacioni dhe një operacion erozioni. Në përfundim të operacionit të mbylljes nga imazhi janë larguar të gjitha mbetjet (artifaktet) dhe është gati që të kalojë në fazën përfundimtare të procesimit për të percaktuar se çfarë numri është ky imazh. Imazhi rishkallezohet në dimensione fikse (30 𝑝𝑖𝑥𝑒𝑙 × 45 𝑝𝑖𝑥𝑒𝑙 ) për të siguruar një mënyrë uniforme të analizimit të tyre dhe i jepet si parameter algoritmit të mësuarit të makinës (ang: Machine Learning Algorithm). Të gjithe hapat e përmendur më siper bëjnë pjese në fazën pergatitore ose faza e para procesimit. Në keto hapa siç sqaruam dhe më siper vecohen dhe pastrohen elementët më me interes për procesin tonë. Në fazën e dytë bëhët trainimi i algoritmit të mësuarit të makines më një bashkësi trainimi dhe testimi i tij më rastet individuale. Në fazën përfundimtare bëhet trajnimi i klasifikuesit. Përcaktohet një bashkësi trajnimi më 7 përfaqësues për çdo klasë. Elementët e bashkësisë së trainimit janë imazhe në formatin jpg më dimensione të fiksuara (30 𝑝𝑖𝑥𝑒𝑙 × 45 𝑝𝑖𝑥𝑒𝑙 ) dhe gjithashtu të binarizuara. Klasifikuesi që kam zgjedhur është një SVM i cili ofrohet nga libraria OpenCV në formën e një funksioni. Imazhet e bashkësis së trajnimit ruhen në një matric trajnimi në formën e mëposhtme: Figure 6 Zona e izoluar e imazhit pas Mbylljes
  • 14. Faqe | 14 Figure 7 Matrica e Trainimit Për të përfunduar trainimin e klasifikuesit duhet që për çdo imazh të bashkësis se trainimit të përcaktojmë dhe një shënjues pra të tregojme kuptimin që ka për në ky imazh. Pra nëse bashkësia e trainimit ka 5 imazhe përfaqësuese për çdo numër nga 0-9 atëhere klasifikuesi duhet të mari si parametër një matricë 1D ku çdo imazhi i vihet në korrespondencë një numër. Kjo matricë përcakton dhe bashkësin e klasave të klasifikuesit. Klasifikuesi ndërton aq klasa sa janë edhe element në matricën e shenjuesve.
  • 15. Faqe | 15 Eleminimi i Duplikatave Detektim i Vijava dhe Kontureve Kufizimi i Zonave me Interes 1 Binarizimi i Imaxheve Ripermasimi i Zonave te Interesit Operacion Mbyllje Operacion DiletationiOperacion Erozioni Trajnimi i SVM Parashikimi i SVM Rezultati Barazuesi i Histogramës 2 Detektimi i Ngjyrës Dominante 3 Inverto Ngjyrat PO JO 6 45 Figure 8 Rrjedha e procesit të detektimit të numrave Detektimi i kontureve dhe Vijave Një nder fazat e perpunimit të imazhit gjate detektimit të tekstit në përgjithësi dhe i numrave në vecanti është detektimi i kontureve dhe vijave. Vijat dhe konturet e detektuara janë zona interesi për algoritmin tonë. Në një mënyrë të ngjashme funksionon edhe sistemi pamor tek njeriu. Siç mund ta keni venë re ju mund të dalloni pa medyshje një objekt vetëm më disa vija në formën e një karikature. Vijat janë zona të cakuara të imazhit ku ka ndryshime të ndjeshme të intensitetit në një drejtim të caktuar. Sa më i fort të jetë ky ndryshim aq më e qartë është që kemi të bëjmë më një vijë.
  • 16. Faqe | 16 Figure 9 Detektimi i Kontureve dhe Vijave (a) Figure 10 Detektimi i Kontureve dhe Vijave (b) Ka disa teknika që përdoren për detektimin e vijave dhe të kontureve: 1. Detektim i vijave bazuar mbi gradient 2. Dektimi i vijave bazuar mbi filtra a. Operatorët Prewitt dhe Sobel b. Operatori Roberts c. Operatori Kompas 3. Detektektimi i vijave bazuar mbi derivatin e dytë a. Operatori Canny Matematikisht madhësia që tregon madhësin e ndryshimit në lidhje më distancën hapsinore është derivati i pare i funksionit. Mbi këtë teknikë bazohet edhe modeli i pare i detektimit të kontureve (Detektim i vijave bazuar mbi gradientin). Supozojmë se funksioni që jep intensiteitin në imazhin 𝐼 më funksionin𝑓(𝑥). Duke marë derivatin e parë 𝑓′(𝑥) = 𝑑𝑓 𝑑𝑥 (𝑥). Derivati i parë është i pa përcaktuar për një funksion diskret 𝑓(𝑢) dhe duhet një metode për ta vlerësuar këtë. Derivati i parë i një funksioni të vazhdueshëm mund të interpretohet si vija tangenete më funksionin në ate pike. Një përafrim i mire për të vlerësuar këtë tangjente në një funksion diskret është të vendosim një vije të drejtë mes vlerave fqinje të funksionit 𝑓(𝑢). Kjo aplikohet në drejtimin vertikal dhe atë horizontal.
  • 17. Faqe | 17 Ky derivat i parë mund të përafrohet nëpërmjet një filtri linear më komponente horizontale 𝐻 𝑥 𝐷 = [−0.5 0 0.5] dhe komponente vertikale 𝐻 𝑦 𝐷 = [ −0.5 0 0.5 ]. Për detektimin e vijave dhe të kontureve përdoren operatorët e vijave. Ndër operatorët më të njohur janë Perwitt dhe Sobel. Janë shumë të ngjajshëm me njeri tjetrin në mënyrën e funksionimit. Operatorët Prewitt dhe Sobel përdorin filtra linear që aplikohen në tre vija dhe kolona fqinje njëkohësisht për të asnjëanësuar ndjeshmërin nga zhurmat që mund të këtë një operator ndryshimi. 𝐻 𝑥 𝑃 = [ −1 0 1 −1 0 1 −1 0 1 ] 𝐻 𝑦 𝑃 = [ −1 −1 −1 0 0 0 1 1 1 ] Gjithashtu edhe filtri Sobel ka të njëjtën strukturë perveç ndryshimit të peshave në linjen e mesit. 𝐻 𝑥 𝑃 = [ −1 0 1 −2 0 2 −1 0 1 ] 𝐻 𝑦 𝑃 = [ −1 −2 −1 0 0 0 1 2 1 ] Një problem kryesor më teknikat që kemi prezantuar më siper është fakti që ato mund të detektojne vetëm vija që janë plotësisht horizontale ose plotësisht vertikale duke neglizhuar shmangie minimaliste. Një operator tjetër për detektimin e vijave është operatori i Kompas. Ndërtimi i filtrave linear për detektimin e brinjëve ka një ane negative: Sa më fortë që përgjigjet filtri në strukturat e birnjëve
  • 18. Faqe | 18 aq më e ndjeshme bëhet ajo ndaj orientimit. Për të zgjidhur këtë problem nuk ndërtohen një cift filtrash të gjerë për dy drejtime por ndërtohen një bashkësi e madhe filtrash më orientime të ndara ngushtë që prodhojnë keto 8 filtra ku orientimet janë të ndarë me 45° . Teknika që është përdorur për të detektuar konturet në këtë implementim është Canny Edge Detection Algorithm. Algoritmi Canny Edge Qëllimi i detektimit të brinjëve dhe kontureve është në pergjithësi për të reduktuar në mënyrë të ndjeshme sasinë e informacionit në imazh por duke ruajtur vetitë strukturore të imazhit për procesime të mëtejshme. Ekzistojnë shumë teknika dhe algoritma siç kemi diskutuar më sipër por ndër më të përdorshmit është algoritmi i ndërtuar nga Jonhn F. Canny (JFC).Ky është një ndër algoritmat standart që përdoren në fushën kerkimore edhe pse është shumë i vjeter. Qëllimi i JFC është të ndërtoj një algortitëm që është optimal në përputhje më kriteret e mëposhtme: 1. Detektimi: Duhet të maksimizohet probabiliteti i detektimit të brinjëve të verteta ndërsa probabiliteti i detektimeve false (pika jo në brinjë) duhet të minimizohet. Kjo i korrespondon maksimizimit të raportit sinjal / zhurmë. 2. Lokalizimi: Brinjët e detektuara duhet të jenë sa më afer brinjëve të vërteta. 3. Numri i përgjigjeve: Nuk duhet që për një brinjë të vërtet të detektohet më shumë se 1 brinjë. Figure 11 Brinjë më shkalle ideale
  • 19. Faqe | 19 Me formulimin matematik që i është bërë ketij algoritmi ai është optimal për një klas të caktuar brinjësh që njohura si brinjë më shkalle ideale (ang: step edges). Marim një imazh për test për të demonstruar mënyrën e funksionimit të algorimitmit Canny. Detektimi i kontureve është një fazë e rëndesishme në rastin e përcaktimit të pozës së objektit. Imazhi në këtë rast është paraprocesuar siç përshkruhet më poshtë:  Përcaktohet Zona e Interesit që perfshin vetëm zonën e objektit dukë hequar pjesët e tjera të panevojshme të imazhit.  Konvertimi i imazhit në shkallë të grisë për të bërë më të thjështë përllogaritjet.  Shtrirja e histogramës, që imazhi të përdori të gjithë shkallën gri. Ky hap mund të mos jetë i nevojshëm por përfshihet që të asnjëanësoj rregullimin automatik të dritës që bëhet nga aparati fotografik. Algoritmi Canny për detektimin e brinjëve kalon në 5 hapa të ndarë: 1. Zbutja ( ang: Smoothing) përdoret për të larguar zhurmën nga imazhi 2. Gjetja e gradientëve: Brinja duhet të shënohet atje ku magnituda e gradientit është më madhë 3. Eleminimi i jo maksimumeve (ang: Non-maximum suppression): vetëm maksimumet lokale do të shënohen si brinjë. 4. Pragje të Dyfishta (ang: Double Thresholding): Brinjët potenciale përcaktohen nga pragjet, segmentimi. 5. Ndjekja e brinjëve më “hysteresis”: Brinjët finale përcakohen dukë eleminuar të gjithë brinjët që nuk janë të lidhura tek një brinjë e dukshme. Zbutja (ang Smoothing) Është e sigurt që të gjitha imazhet e marë nga aparatet dizhitalë kanë një sasi të caktuar zhurme. Për të parandaluar që kjo zhurmë të detektohet gabimisht si brinjë, zhurma duhet të reduktohet. Prandaj imazhi në fillim zbutet dukë aplikuar një filtër Gausian që është një filter linear. Kerneli i filtërit Gausian më devijim standart 𝜎 = 1.4 është si më poshtë:
  • 20. Faqe | 20 𝐵 = 1 159 [ 2 4 5 4 2 4 9 12 9 4 5 4 2 12 9 4 15 12 5 12 9 4 5 4 2 ] Figure 12 Imazhi Fillestar Figure 13 Imazhi i Zbutur Filtri i mësipërm është një filtër linear me madhësi 5x5 dhe më “hot spot” vlerën 15 që është dhe qëndra e filtrit. Llogaritja e Gradientit Algoritmi Canny gjen një brinjë në ate zonë të imazhit ku intensiteti i shkallës gri ndryshon më shumë. Këto zona gjenden duke përcaktuar gradientin e imazhit. Gradienti për çdo pixel në një imazh të zbutur llogaritet duke aplikuar atë që njihet si operatori Sobel. Hapi i pare është të përcaktohet gradienti në drejtimin x dhe y respektivisht duke aplikuar kernel-at e treguar më poshtë: 𝐾 𝐺𝑥 = [ −1 0 1 −2 0 2 −1 0 1 ]
  • 21. Faqe | 21 𝐾 𝐺𝑦 = [ 1 2 1 0 0 0 −1 −2 −1 ] Magnituda e gradientit (njihet ndryshe dhe fortësia e brinjës) mund të përcaktohet si një distancë Euklidiale duke aplikuar ligjin e Pitagorës të trëguar në ekuacionin e më poshtëm. Ndonjë herë mund të thjështësohet duke aplikuar distancën e thjështë të Manhatan-it për të reduktuar kompleksistetin e llogaritjeve. Distanca e Euklidit është aplikuar mbi imazhin test. Fortësia e brinjëve të llogaritura janë karahasuar më imazhin e zbutur. |𝐺| = √ 𝐺𝑥 2 + 𝐺 𝑦 2 |𝐺| = |𝐺𝑥| + |𝐺 𝑦| ku 𝐺𝑥 dhe 𝐺 𝑦 janë gradientët sipas drejtimit x dhe y përkatësisht. Është e dukshme nga figura e mëposhtëme, që një imazh i madhësive të gradientit shpesh tregon brinjët në mënyrë shumë të qartë. Megjithatë brinjët janë shpesh të gjera dhe nuk tregojnë ekzaktësisht pozicionin ku janë brinjët. Për të bërë te mundur për të përcaktuar këtë, duhet të përacaktohet drejtimi i brinjës dhe të ruhet si në ekuacion e mëposhtëm. 𝜃 = arctan ( |𝐺 𝑦| |𝐺𝑥| ) Figure 14 Imazhi i Zbutur Figure 15 Madhesit e Gradientit Madhësia e gradientëve në një imazh të zbutur që tregohen në figuren (14) dhe (15) si dhe drejtimi i tyre përcaktohet duke aplikuar operatorin e Sobel-it
  • 22. Faqe | 22 Anullimi i Jo-Maksimumeve (ang: Non-Maximum Suppression) Qëllimi i këtij hapi është të konvertojë brinjët e “zbutura” në imazhin e madhësive të gradientit në brinjë të “theksuara”. Kjo realizohet duke ruajtuar të gjitha maskimumet lokale në imazhin e gradientëve dhe duke fshirë të gjitha të tjerat. Algoritmi është për çdo pixel në imazhin e gradintëve. 1. Përafrim i drejtimit të gradientit 𝜃 në 45o më të afërt, në lidhje më përdorimin e 8 fqinjëve të lidhur më të. 2. Krahaso fortësin e brinjës në pixel aktual më fortësin e brinjëve të pixel më drejtim të gradientit pozitiv dhe negativ. Nëse drejtimi i gradientit është Veri (𝜃 = 90°), krahasoje më pixel më drejtim Veri dhe Jug. 3. Nëse fortësia e brinjës e pixel korent është më e madhja ruaj vlerën e fortësis se brinjës përndryshe hiqe (anulloje). Një shembull i thjeshtë për anullimin e jo-maksimumeve tregohet në shembullin e mëposhtëm. Pothuajse të gjithë pixel kanë një drejtim të gradientit nga Veriu. Ato janë krahasuar më pixel sipër dhe poshtë tyre. Pixel që rezultojnë të jenë maksimal pas krahasimit markohen më konture të bardha. Të gjithe pixel-at e tjerë eleminohen. Figure 16 Drejtimi i Gradientëve Ilustrimi i eleminimit të jo-maksimumeve. Fortësia e brinjëve është shënuar edhe si numër edhe si ngjyrë, kurse drejtimi i gradientit është shënuar më shigjetë. Pixel-at rezultant janë shënuar më të bardhë.
  • 23. Faqe | 23 Figure 17 Vlerat e Gradientëve Figure 18 Pas anullimit të jo-maksimumeve Anullimi i jo-maksimumeve. Pixel-at e brinjëve janë ruajtur vetëm aty ku gradienti ka maksimum lokal. Pragëzim (Segmentim) i dyfishtë Pixel-at e brinjëve që ngelen pasi aplikohen anullimi i jo-maksimumeve janë ende të markuar më fortësin e tyre pixel për pixel. Shumë prej këtyre do të jenë brinjë të vërteta në imazh por disa prej tyre mund të jenë shkaktuar nga zhurmat ose nga variacioni i ngjyrave p.sh për shkak të një siperfaqje të ashpër. Mënyra më e thjeshtë për ti ndarë këto do të ishte të përdorje një vlerë kufitare, kështu që vetëm brinjët më fortësi mbi një nivel të caktuar do të ruheshin. Algoritmi Canny për detektimin e brinjëve përdor një segmentim të dyfishtë. Pixel-at e brinjëve më fortësi më të madhe se një vlerë e sipërme maksimale markohen si brinjë të forta, pixel-at e brinjëve më vlerë më të vogël se një vlerë e poshtmë minimale do të eleminohen dhe pixel-at e birnjëve me fortësi më të vogël se vlera e sipërme maskimale dhe më e madhe se vlera e poshtme minimale shënohen si brinjë të dobta. Efekte të segmentimit të dyfishtë më vlera 20 dhe 80 mbi imazhin e fundit janë si më poshte:
  • 24. Faqe | 24 Figure 19 Brinjët pas eleminimit të jo-maksimumeve Figure 20 Segmentim i dyfishtë Në imazhin e dytë brinjët e forta janë shënuar më të bardhë kurse brinjët e dobta janë shënuar më gri. Brinjët më vlerë më të vogël se dy kufijtë janë eleminuar. Ndjekja e brinjëve më “hysteresis” Brinjët e forta janë interpretuar si “brinjë të sigurta” dhe mund të përfshihen direkt në imazhin final të brinjëve. Brinjët e dobëta përfshihen vetëm dhe vetëm në qoftë se ato janë të lidhuara më një brinjë të fortë. Logjika është që sigurisht zhurmat dhe variacionet e vogla janë të pazakonta të rezultojnë në një brinjë të fortë (më një rregullim të kujdeshëm të vlerave kufitare). Brinjët e forta do të jenë (pothuajse) gjithmonë për shkak të brinjëve të vërteta në imazhin orgjinal. Brinjët e dobta mund të jenë për shkak të brinjëve të vërteta në imazh ose për shkak të zhurmave ose variacioneve të ngjyrave. Në rastin e dytë këto lloje duhet të jenë të shpërndara në gjithë imazhin në mënyrë pothuajse të njëtrajtshme. Në rastin e brinjëve të dobta që janë brinjë të vërteta në imazh në shumicën e rasteve janë të lidhura direkt më një brinjë të fortë. Ndjekja e brinjëve mund të implementohet nëpërmjet analizës BLOB (Objekte Binare të Mëdha) (ang: Binary Large Object). Pixel të brinjës që janë të ndare nga BLOB-e të lidhura më fqinjesi më
  • 25. Faqe | 25 8 fqinjë. BLOB-et që përmbajne të paktën një pixel të një brinjë të fortë ruhen, BLOB-et e tjera eleminohen. Efektet e ndjekjes se brinjëve tregohen më poshtë: Figure 21 Segmentim i Dyfishtë Figure 22 Ndjekja e brinjëve Figure 23 Imazhi rezultant Imazhi në mes tregon brinjët e forta më të bardhë, brinjët e dobta të lidhura më brinjë të forta më blu dhe brinjët e tjera të dobta më të kuqe. Barazimi i Histogramës Histograma Histograma pëdoret për të përshkruar në mënyrë statistikore dhe lehtësisht te interpretueshme një imazh. Nga histograma është e lehtë të përcaktohen probleme të caktuara në një imazh, për shëmbull mund të përcaktosh lehtësisht nëse një imazh është i ekspozuar siç duhet vëtëm duke parë histogramën. Histogramat janë një mjet shumë i rëndësishme edhe si mjet investigues për të kuptuar cfarë operacionesh janë aplikuar mbi një imazh. Histograma në përgjithësi është frekuenca e shpërndarjeve, dhe histograma e imazheve përshkruan frekuencën e vlerave të intensitetit për një imazh. Le të konsiderojmë një imazh me shkallë gri me thellësi te kanalit (q) dhe dimensione (U) dhe (V). Intensiteti i nje pixel 𝐼(𝑢, 𝑣) ∈ [0 − 2 𝑞 ]. Histograma e një imazhi të tillë do të kishte 𝐾 = 2 𝑞 rekorde. Çdo rekord individual i histogramës percaktohet si: ℎ(𝑖) = 𝑛𝑢𝑚𝑟𝑖 𝑖 𝑝𝑖𝑥𝑒𝑙 𝑛ë 𝑖𝑚𝑎𝑧ℎ𝑖𝑛 𝐼 𝑞ë 𝑘𝑎 𝑖𝑛𝑡𝑒𝑛𝑠𝑖𝑡𝑒𝑡 𝑖
  • 26. Faqe | 26 Në mënyre më formale mund të shprehet: ℎ(𝑖) = 𝑐𝑎𝑟𝑑 {(𝑢, 𝑣)|𝐼(𝑢, 𝑣) = 𝑖}4 Figure 24 Shembull Histogramë Duke qënë se histograma nuk ruan asnjë informacion mbi pozicionin se ku gjendet çdo pixel individualisht nga histograma nuk mund të nxirret asnjë informacion mbi organizimin hapsinor të pixel. Në histogram përshkruhen probleme qe vijnë gjatë marjes së imazhit, siç janë ato që përfshijnë kontrastin, rangun dinamik si dhe aritfaktet që vijnë si pasojë e procesimit të imazhit hap pas hapi. Histogramat përdoren shpesh për të përcaktuar nësë një imazh po përdor siç duhet rangun e intensitetit duke ekzaminuar madhësin dhe uniformitetin e shpërndarjes së histogramës. Ekspozimi Histograma i bën problemet klasike të ekspozimit menjëherë të dukshme. Për shembull kur në një histogram kemi një zonë të caktuar pothuajse të papërdorur dhe pjesën tjetër të mbi ngarkuar kemi të bëjmë me një imazh të ekspozuar dobët. Kontrasti 4 card përcaktohet si numri i elementëve në një bashkësie
  • 27. Faqe | 27 Kontrasti kuptohet se si rangu i vlerave të intensitetit përdoret në mënyre efektive në një imazh të dhënë, që është diferenca mes vlerës maksimale dhe minimale të pixel-ave të imazhit. Një imazh me kontrast të plotë pëdor të gjithë rangun e vlefshëm të intensitetit nga a=amin ... amax=0 ... K-1 (zeza deri tek e bardha). Table 1 Ndyshimi i histogramës me ndryshimin e kontrastit Si ndikohet histograma nga ndryshimet e kontrastit: kontrast i ulët | kontrast normal | kontrast i lartë Rangu Dinamik Rangu dinamik i një imazhi, në parim, kuptohet si numri i pixel-ave me vlera unike në imazh. Në rastin ideal, rangu dinamik kompenson të gjitha K vlerat e papërdorura, në këtë rast gjithë rangu është plotësisht i përdorur. Kur një imazh ka nje rang kontrasti të vlefshme a=aulët ... alartë, me amin<aulët dhe alartë<amax dhe maksimumi i rangut të mundshëm arrihet kur të gjitha vlerat që shtrihen në atë rang janë përdorur. Imazhet me një rang dinamik të gjerë janë më të preferueshme pasi vuajnë më pak pasojat e procesimit dhe kompresimit të imazhit.
  • 28. Faqe | 28 Llogaritja e histogramës ne rastin kur imazhi ka vetëm një kanal është një detyrë e thjeshtë pasi mjafton te marim 256 numërues për një imazh me thellësi kanali 8 bit dhe të bredhim gjithë imazhin duke numeruar pixel-at individual. Në rastin e imazheve me ngjyra, zakonisht me tre kanale R (ang: Red - Kuqe), G (ang: Green- Gjelber) B (ang: Blue – Blu) histograma mund të realizohet në dy forma. Mund të realizohet histograma për çdo kanal në mënyrë individuale që është praktikisht një histogram për një imazh më një kanal. Mund të realizohet një histogram duke marë mesataren e vlerave për çdo kanal ku çdo kanal ka peshë të barabartë ose ndonjë prej kanaleve ka peshë më të madhe dhe në këtë rast do bëhet një mesatare e peshuar. Histograma Kumulative Histograma kumulative që derivohet nga histograma e zakonshme është e përdorshme në rastet kur performojmë operacione të caktuara si për shembull barazimin e histogramës. Histograma kumulative përcaktohet si më poshte: 𝐻(𝑖) = ∑ ℎ(𝑗) 𝑖 𝑗=0 𝑝ë𝑟 0 ≤ 𝑖 < 𝐾 Në veçanti një vlerë H(i) është shuma e të gjitha vlerave h(j) për 𝑗 ≤ 𝑖 në histogramën e zakonshme. Në mënyrë rekurzive do ta përcaktonim: 𝐻(𝑖) = { ℎ(0) 𝑝ë𝑟 𝑖 = 0 𝐻(𝑖 − 1) + ℎ(𝑖) 𝑝ë𝑟 0 < 𝑖 < 𝐾 } Histograma kumulative është një funksion monoton rritës me një vlerë maksimale: 𝐻(𝐾 − 1) = ∑ ℎ(𝑗) 𝐾−1 𝑗=0 = 𝑀 ∙ 𝑁 që është numri total i pixel në imazhin me lartësi N dhe gjerësi M.
  • 29. Faqe | 29 Teknika e barazimit të histogramës Shpesh imazhet e fotografuara në mjedise reale kanë probleme më kontrastin pasi janë të ekspozuara keq ndaj dritës. Ka zona që kanë marë shumë ndricim ose që quhen të “mbi ekspozuara” ose janë të “nën ekspozuara” dhe shfaqen në imazh si zona të errta. Po të shohim histogramën e një imazhi të tillë do të vëm re se pjesa më e madhe e pixel janë të përqëndruar në një zonë të ngushtë të histogramës. Barazimi i histogramës është një metodë në procesimin e imazheve për rregullimin automatik të kontrastit duke përdorur histogramën e imazhit. Figure 25 Transformimi i histogramës Kjo metode përgjithsisht rrit kontrastin e përgjithshëm në shumë imazhe, vecanërisht kur të dhëna të rëndësishme të imazhit shfaqen më vlera të afërta të kontrastit. Përmes ketij rregullimi, intensitetet mund të shpërndahen më mire në histogram. Kjo teknike lejon që zona të caktuara të imazhit më nivel të ulët kontrasti që të marin një vlerë më të lartë të kontrastit. Barazimi i Histogramës e realizon këtë duke rishpërndar në mënyrë efektive vlerat më frekuente të intesistetit. Kjo metodë është më e përdorshme në imazhe më background5 dhe foreground6 që janë të dy ose të zbardhuar ose të errët. Në vecanti kjo metodë përdoret për të marë një pamje të të mire në imazherin mjekësore (rreze x). Gjithashtu mund të marim detaje më të mira nga fotografitë që janë pak ose shumë të ekspozuara. Avantazh i kësaj teknike qëndron në faktin që është një 5 Background: Element i imazhit që gjendet më afër planit të imazhit. 6 Foreground: Ajo pjesë e imazhit që gjendet pas subjektit kryesor.
  • 30. Faqe | 30 teknikë e drejtpërdrejte. Në teori nqs funksioni i histogramës dihet mund të meret histograma origjinale. Llogaritjet nuk janë shumë intensive. Një disavantash i kësaj teknike është fakti që shepesh kjo teknike mund të diskriminojë. Ajo mund të rrisë intensitetin e zhurmës në background duke zvogëluar intensitetin e sinjalit të vlefshëm.Në imazherin shkencore ku lidhja hapsinore është më e rëndesishme se intensiteti i imazhit, raporti i vogel mes sinjalit dhe zhurmes zakonisht pengon detektimin pamor. Barazimi i histogramës zakonisht prodhon efekte jo realiste të fotografi megjithatë kjo është shumë e rëndesishme për imazherin shkencore si imazheri termale, satelitore. Gjithashtu barazimi i histogramës mund të sjelli efekte të padëshiruara kur aplikohet mbi imazhe më thellësi kanali të ulët. Nëse për shembull do të aplikohet mbi një imazh më shakllë gri më thellësi të kanalit 8 bit do të reduktoje dhe më tej variacionet e ngjyrës gri. Në rastin e detektimit të tekstit kjo teknikë aplikohet mbi imazhe më një thellësi të kanalit 24-bit që janë gjeneruar nga një aparat fotografik profesional (Nikon D3200) dhe këto efekte nuk vihen re. Teknika e barazimit të histogramave është e përshtatshme të aplikohet në imazhe më thellësi të kanalit mbi 16 bit. Kufizimi i Kontureve Në mënyrën si është ndërtuar alogritmi për detektimin e numrave nuk na intereson në mënyrë të veçant brinja apo konturi i detektuar. Ajo çka na intereson është drejtkëndëshi më i vogël që përfshin gjithë konturin. Kjo bëhet më qëllim që procesi i vlerësimit nga SVM të jetë sa më thjeshtë pasi dhe elementët e bashkësis së trajnimit që janë përdorur për të trajnuar SVM janë imazhe drejtëkëndëshe më dimensione dhe rezolucion të fiksuar. Binarizimi i Imazheve Për të rritur saktësin e detektimit të numrave në imazhe është më e përshtatshme të punohet më imazhe të binarizuara. Keto imazhe janë bardhë e zi dhe elementet (konturet dhe brinjët) janë shumë më të theksuara. Aplikimi i një procesi binarizimi ose quantizimi të rangut të vlerave të intensitetit në 2 intensitete të mundshme prodhon disa probleme në imazh (ang: image artifacts). Këto probleme eleminohen duke përdorur filtrat morfologjik. Libraria OpenCV ofron disa mënyra për të realizuar procesin e binarizimit apo kuantizimit të vlerave. Në thelb të procesit të binarizimit qëndron vendosja e vlerave të intensitetit të imazhit
  • 31. Faqe | 31 në një rang të caktuar dhe vlerat që nuk bien në këto kufij bëhen 0. Kjo nuk është një detyrë e lehtë kur kemi të bëjmë më imazhe të botës reale në të cilat mund të këtë zhurma të ndryshme, shpërndarje të pabarabartë të ndricimit etj. OpenCV ofron mënyrën statike për binarizimin e imazheve. Këto teknika zbatojne të njejtin rregull mbi të gjithë pixel-at e imazhit dhe njihen si binarizim i fiksuar (statik). 1. Segmentim Binar (ang: Threshold Binary): Në këtë rast përcaktohet një vlerë që njihet si vlerë kufitare ose vlerë prag dhe për të gjitha vlerat më të mëdha se kjo vlerë vendoset një vlerë maksimale përndryshe vendoset 0. a. 𝑃𝑖𝑥𝑒𝑙 𝑅𝑒𝑧𝑢𝑙𝑡𝑎𝑡 (𝑥, 𝑦) = { 𝑉𝑙𝑒𝑟ë 𝑀𝑎𝑘𝑠𝑖𝑚𝑎𝑙𝑒 𝑁𝑞𝑠 𝑃𝑖𝑥𝑒𝑙 𝑂𝑟𝑖𝑔𝑗𝑖𝑛𝑎𝑙 (𝑥, 𝑦) > 𝑃𝑟𝑎𝑔 0 𝑃ë𝑟𝑛𝑑𝑟𝑦𝑠ℎ𝑒 } 2. Segmentim Binar (Invertuar): Funksionon në të njëjtën mënyre si Segmentimi Binar por anasjelltas. Matematikisht shprehet: a. 𝑃𝑖𝑥𝑒𝑙 𝑅𝑒𝑧𝑢𝑙𝑡𝑎𝑡 (𝑥, 𝑦) = { 0 𝑁𝑞𝑠 𝑃𝑖𝑥𝑒𝑙 𝑂𝑟𝑖𝑔𝑗𝑖𝑛𝑎𝑙 (𝑥, 𝑦) > 𝑃𝑟𝑎𝑔 𝑉𝑙𝑒𝑟𝑎 𝑀𝑎𝑘𝑠𝑖𝑚𝑎𝑙𝑒 𝑃ë𝑟𝑛𝑑𝑟𝑦𝑠ℎ𝑒 }
  • 32. Faqe | 32 3. Segmentim më Kufizim: Kontrollon nësë intensisteti i një pixel është më i madh se një kufij i sipërm atëherë në vend të atij pixeli vendoset vlerë e kufirit përndryshe lihet e pandryshuar. a. 𝑃𝑖𝑥𝑒𝑙 𝑅𝑒𝑧𝑢𝑙𝑡𝑎𝑡 (𝑥, 𝑦) = { 𝑃𝑟𝑎𝑔𝑢 𝑁𝑞𝑠 𝑃𝑖𝑥𝑒𝑙 𝑂𝑟𝑖𝑔𝑗𝑖𝑛𝑎𝑙 (𝑥, 𝑦) > 𝑃𝑟𝑎𝑔 𝑃𝑖𝑥𝑒𝑙 𝑂𝑟𝑖𝑔𝑗𝑖𝑛𝑎𝑙 (𝑥, 𝑦) 𝑃ë𝑟𝑛𝑑𝑟𝑦𝑠ℎ𝑒 } 4. Segmentim më 0: Kontrollon nese intentisiteti i një pixel është më i madh se kufiri atëherë e lë atë pixel të pa ndryshuar përndryshe e bën 0. a. 𝑃𝑖𝑥𝑒𝑙 𝑅𝑒𝑧𝑢𝑙𝑡𝑎𝑡 (𝑥, 𝑦) = { 𝑃𝑖𝑥𝑒𝑙 𝑂𝑟𝑖𝑔𝑗𝑖𝑛𝑎𝑙 (𝑥, 𝑦) 𝑁𝑞𝑠 𝑃𝑖𝑥𝑒𝑙 𝑂𝑟𝑖𝑔𝑗𝑖𝑛𝑎𝑙 (𝑥, 𝑦) > 𝑃𝑟𝑎𝑔 0 𝑃ë𝑟𝑛𝑑𝑟𝑦𝑠ℎ𝑒 } 5. Kufizim më 0 i invertuar: Funksion në të njëjtën mënyrë si Segmentimi më 0 por anasjelltas. a. 𝑃𝑖𝑥𝑒𝑙 𝑅𝑒𝑧𝑢𝑙𝑡𝑎𝑡 (𝑥, 𝑦) = { 0 𝑁𝑞𝑠 𝑃𝑖𝑥𝑒𝑙 𝑂𝑟𝑖𝑔𝑗𝑖𝑛𝑎𝑙 (𝑥, 𝑦) > 𝑃𝑟𝑎𝑔 𝑃𝑖𝑥𝑒𝑙 𝑂𝑟𝑖𝑔𝑗𝑖𝑛𝑎𝑙 (𝑥, 𝑦) 𝑃ë𝑟𝑛𝑑𝑟𝑦𝑠ℎ𝑒 }
  • 33. Faqe | 33 Duket qartë dhe nga formulimi i këtyre teknikave të segmentimit që ato sillen njësoj pavarsisht nga mënyra e shpërdarjes së ndricimit. Kjo bën që teknikat e përmendura më sipër japin rezultate të dobëta në imazhe të botes reale. Për të marë një binarizim më të mire të imazhit na duhet një teknikë që të bëj një vlerësim bazuar mbi vlerën e intensitetit të ndricimit që ka marë një zonë e caktuar e imazhit krahasur më një zonë tjetër të imazhit. Për këtë përdoret një teknikë që quhet segmentim adaptiv i imazhit (ang: adaptive image thresholding). 1. Segmentim më Vlerë të Mesatarizuar: Kjo teknikë nuk përdor një vlerë pragu për të gjithë imazhin ashtu si në shembujt e mësipërm. Kjo teknike ndërton një vlerë kufitare bazuar mbi mesatarën e vlerave fqinje. Duke përdorur vlerën e gjeneruar aplikon për ate zonë një segmentues binar. Figure 26 Shembull binarizimi statik në imazhe të botës reale
  • 34. Faqe | 34 2. Segmentim Gaussian: Funksionon në mënyre të ngjashme më Segmentimin e më vlerë të mesatarizuar por në këtë rastë vlera prag llogaritet në formën e një mesatare të peshuar ku peshat janë vlera të një “dritareje gausiane” (ang: Gaussian Window). Pesha e pixel- ave në këtë rast sa vjen dhe rritet duke u afruar afër qëndrës së dritares. Figure 27 Majtas- Segmentim me Vlerë të Mesatarizuar. Djathtas- Segmentim Gausian Ky është rezultati kur përdorim segmentim adaptiv dhe duket qartë që cilesia e segmentimit është shumë më e mirë se në rastin e pare. Detektim i ngjyrës dominante (K-Means) Një tjetër problem që duhet zgjidhur gjate fazës se paraprocesimi të imazhit është mënyra se si është printuar imazhi. Problemi lind gjatë fazës se binarizimit për vetë mënyrën se si funksionin kjo teknike. Imazhi i mëposhtëm paraqet një numër të printuar nëpërmjet kontrastit që krijon më background. Në këtë rast numri është paraqitur më ngjyrë të bardhë kurse background është më ngjyrë blu. Procesi i binarizimit tenton të konvertoj imazhin në dy ngjyra kryesore, në rastin tonë në të bardhe dhe të zezë si dhe të theksojë detaje që janë të rendësishme për procesin duke berë një segmentim të imazhit.
  • 35. Faqe | 35 Figure 28 Imazh më background më të erret se shkrimi Figure 29 Binarizimi i Imazhit Klasifikuesi jonë është trajnuar më imazhe në të cilat numrat janë të paraqitur më ngjyrë të zezë dhe background është më ngjyrë të bardhë. Binarizimi i imazheve që kane background më të errët se ngjyra që është përdorur për shkrimin e tekstit do të prodhonte një imazh të binarizuar që ka background të zi dhe shrkrmin të bardhe. Një imazh të tillë nuk mund ta përdorim për të testuar klasifikuesin tonë pasi nuk do ishte në gjëndje ta detektonte numrin në të dhe kjo për shkak të kompozimit të gabuar të imazhit. Një mënyre e thjeshtë për të zgjidhur këtë problem është të bëhet një invertim i ngjyrave dhe në këtë rast do të marim një imazh më kompozimin e duhur. Që të bëjmë një invertim të ngjyrave duhet që paraprakisht të marim një vendim nëse imazhi është një imazh i kompozuar në mënyrë të gabuar apo jo. Për të bërë këtë duhet që të kuptojme se cilat janë dy ngjyrat më dominante në imazhin që po analizojmë. Kjo nuk është dicka e thjeshtë për tu bërë pasi kemi të bëjmë më imazhe që janë të fotografuar dhe ngjyrat shfaqen më reflekse të ndryshme dhe në nivele të ndryshme intensisteti për shkak të sasisë së ndricimit që kanë marë gjatë momentit të shkrepjes së fotografisë.
  • 36. Faqe | 36 Për ta thjështëzuar problemin dhe për të zvogëluar numrin e përllogaritjeve e konvertojmë imazhin në shkalle gri. Kjo na jep mundësin që të analizojmë intensitetin e një kanalin dhe jo të 3 kanaleve si do të ishte në rastin e një imazhi më ngjyra. Duhet të bëjmë një grupim të vlerave të intensiteteve të imazhit më qellim që të nxjerrim 2 vlerat që përsëriten më shumë dhe të bejme një riparaqitje të imazhit më keto dy vlera të intensitetit. Ajo cka marim është një imazh që ka dy lloje pixel-ash; pixel që janë në background dhe pixel që janë në foreground. Për gjenerimin e këtij imazhi aplikohet algoritmi k-means për të cilin do flasim në vijim. Figure 30 Imazhi pasi është aplikar algoritmi kmean Pasi kemi ndërtuar imazhin e mësipërm duhet të ndërtojmë histogramën e këtij imazhi për të kuptuar numrin e pixel-ave që janë më ngjyrën e pare dhe numrin e pixel që janë më numrin e dyte. Rezultati i histogramës së imazhit të mësipërm është si në grafikun e mëposhtem: Vihet re që kemi dy piqe, njera është për vlerën 80 të intensitetit më 18950 pixel dhe vlera e dyte është për intensitetin 192 më 6880 pixel.
  • 37. Faqe | 37 Figure 31 Histograma e Imazhit pas KMean Nga rezultati i histogramës duket qartë që kemi të bëjmë më një imazh që pjesa më e madhe e imazhit është më e errët se pjesa më çelur e imazhit. Pjesën më të madhe e ze background ateherë mund të themi më një siguri të mirë që kemi të bëjmë më një imazh që duhet invertuar. Duket qartë që pjesa më të vështirë në këtë zgjidhje është grupimi i vlerave dhe fluktacioneve të intensitetit të imazhit dhe grupimi i tyre në dy ngjyra të vetme dhe riparaqitja e këtij imazhi më këto dy ngjyra. Për të realizuar këtë ne përdorëm K-Means. K-Means (Algoritem Grupimi) K-Means është një metodë për kuntizimin e vlerave të vektorëve, është përdorur më pare në procesimin e sinjalit, në analizat e grupuara në data mining. Grupimi k-means synon të particionojë n vëzhgime në k grupe ku çdo vëzhgim është pjese e grupit më afërsinë më të madhe, duke shërbyer si një prototip (përfaqësues) për grupin. Kjo rezulton në ndarjen e hapsirës së të dhëanve në qeliza Voronoi.
  • 38. Faqe | 38 Problemi është i vështirë në përllogaritje (NP-Fortë); megjithëse ka algoritma heuristik që përdoren më shpesh dhe konvergjojnë shpejtë në një optimum lokal. Këto janë zakonisht të ngjajshme më algoritmat për maksimizimin e pritshmërive për kompozimet e shpërdarjeve Gaussiane nëpërmjet një përafrimi të rafinuar që përdoret nga të dy algoritmat. Gjithashtu ata të dy përdorin qëndrën e grupit për të modeluar të dhënat; megjithatë k-means tënton të gjejë grupe më shtrirje hapsinore të krahasueshme, kurse mekanizmi i maksimizimit të pritshmerive i lejon grupet që të kenë forma të ndryshme. Ky algoritëm ka një lidhje të dobët më klasifikuesin k-fqinjet më të afërt, një algoritëm i inteligjencës artificiale dhe shpesh konfuzohen më njeri tjetrin. Klasifikuesi k-fqinjet më të afërt trajnohet bazuar mbi bashkësin e trajnimit duke e copëzuar bashkësin e të dhënave në grupe. Ky klasifikues i trajnuar tashmë mund të përdoret për të përcaktuar një input të ri, se në cilën prej grupeve bën pjesë. Përshkrim Supozojmë se kemi një bashkësi vorjtimesh (𝑥1, 𝑥2, 𝑥3, 𝑥4 … 𝑥 𝑛) ku çdo vrojtim është një vektor d-dimensional më vlera reale, k-means synon të particionojë n vrojtimet në 𝑘(≤ 𝑛) bashkësi 𝑆 = {𝑆1, 𝑆2, 𝑆3 … , 𝑆 𝑘} që të minimizoje shumën e katrorëve brenda grupit (ang: WCSS: Within Cluster Sum of Squares)(shuma e funksionit të distancës nga çdo pikë në grup në qendrën e grupit). Më fjalë të tjera objektivi është të gjejmë: 𝑎𝑟𝑔 = min 𝑠 ∑ ∑‖ 𝑋 − 𝜇𝑖‖2 𝑥∈𝑆 𝑖 𝑘 𝑖=1 ku 𝜇𝑖 është mesatarja e pikave në 𝑆𝑖. Algoritmi Algoritmi më i njohur përdor një teknike përmirësimi iterative. Për shkak të gjithë përfshirjes është quajtur shpesh k-means; I janë referuar edhe ndryshe si algoritmi i Lloyd-it, vecanërisht në komunitetin e shkencave kompiuterike.
  • 39. Faqe | 39 Marim bashkësin e k-menas 𝑚1 (1) , 𝑚2 (1) … , 𝑚 𝑘 (1) algoritmi procedon duke alternuar nepërmjet 2 hapave: Hapi i Vlerëdhënies: Vendose çdo vrojtim në një grup mesatarja e të cilit jep jo më shumë se shuma e katrorëve të grupit. Duke qënë se shuma e katrorëve është distancë Euklidiane, kjo është intuitivisht e mesmja më e afert. 𝑆𝑖 (𝑡) = {𝑥 𝑝: ‖𝑥 𝑝 − 𝑚𝑖 (𝑡) ‖ 2 ≤ ‖𝑥 𝑝 − 𝑚𝑗 (𝑡) ‖ 2 ∀ 𝑗, 𝑖 ≤ 𝑗 ≤ 𝑘} ku 𝑥 𝑝 i vendoset ekzaktësisht një 𝑆(𝑡) , edhe pse mund ti vendoset dy ose më shumë prej tyre. Hapi i Perditesimit: Llogarit mesataren e re për të qënë centroidi i vrojtimeve në grupin e ri. 𝑚𝑖 (𝑡+1) = 1 |𝑆𝑖 (𝑡) | ∑ 𝑥𝑗 𝑥 𝑗∈𝑆𝑖 (𝑡) Algoritmi ka konvergjuar në momentin kur vlerëdhënia nuk ka ndryshuar. Duke qënë se të dy hapat përmirësojnë objektivin WCSS, dhe ekziston një numër i fundëm i ndarjeve të tilla, algoritmi duhet të konvergjojë në një optimum lokal. Nuk garantohet nga ky algoritem që optimumi global është arritur. Algoritmi shpesh herë paraqitet si vendosja e objekteve në grupin më të afërt bazuar mbi distancën. Algoritmi standart synon të minimizoje objektivin WCSS dhe kjo vlerëdhënie bëhet bazuar mbi “shumën më të vogël të katrorëve” që është ekuivalente më vlerëdhënien bazuar mbi distancën më të vogël Euklidieane. Përdorimi i funksioneve të tjera të distancës veç (katrorëve) distancës Euklidiane mund të bëj që algoritmi të mos konvergjojë. Metodat e Inicializimit Metodat më të njohura që përdoren për të inicializuar janë “Forgy” dhe “Random Partition”. Metoda Forgy zgjedh në mënyrë të rastësishme 𝑘 vrojtime nga bashkësia e të dhënave dhe i
  • 40. Faqe | 40 përdor ato si të mesme fillestare. Metoda “Random Partition” në fillim i vendos në mënyrë të rastesishme çdo vrojtimi një grup dhe më pas vazhdon në hapin e përditëtsimit, duke llogaritur mesataren fillestare për të qënë centroid i grupit më pikat të përcaktuara në mënyrë të rastësishme. Metoda “Forgy” tenton të shpërndaj mesataren filletare, ndërkoh “Random Partition” i vendos ato afër qëndrës së bashkësis së të dhënave. Figure 32 K mesataret fillestarë janë gjeneruar në mënyrë të rastësishme. Tregohen më ngjyra si në figurë. Figure 33 K grupet janë krijuar duke shoqëruar çdo vrojtim më mestaren më të afërt. Paraqitja është një diagram Voronoi. Figure 34 Centroid për çdo k grup bëhet mesatarja e re.
  • 41. Faqe | 41 Figure 35 Hapat 2 dhe 3 përsëriten deri sa arrihet konvergjenca Duke qënë se është një algoritëm heuristik nuk ka ndonjë garanci që do të konvergjojë në një optimum global dhe rezultati mund të varet nga cluster fillestar. Duke qënë se algoritmi është shumë i shpejte është zakonshme që të ekzekutohet disa herë më kushte të ndryshme fillestare. Gjithsesi algoritmit k-menas në rastin më të keq do ti duhet shumë kohë që të konvergjoje: në vecanti është treguar se ekziston një bashkësi pikash edhe në 2 dimensione ku k-means i duhet një kohë eksponenciale që është 2Ω(𝑛) për të konvergjuar. Nga eksperienca duket që bashkësi të tilla nuk shfaqen shpesh dhe në shumicën e rasteve koha e konvergjimit të algoritmit k-menas është polinomiale. Kompleksiteti Në lidhje më kompleksitetin e llogaritjeve, të gjesh zgjidhjen optimale të një problem grupimi k- means për vrojtime më d dimensione ka keto implikime:  Kemi një problem NP-Fortë në hapsira Euklidiane më d dimensione edhe kur kemi 2 grupe.  Kemi një problem NP-Fortë për një numër të përgjithshëm grupesh k edhe në plan  Nësë k dhe d (dimensioni) janë të fiksuar, problemi mund të zgjidhet ekzaktësisht në kohën 𝑂(𝑛 𝑑∙𝑘+1 log 𝑛) ku n është numri i rekordeve që duhet të grupohen. Në përgjithësi janë përdorur shumë algoritma heuristik si algoritmi i Lloyds.
  • 42. Faqe | 42 Aplikime të k-means K-Means në vecanti kur përdor heuristika si algoritmi Lloyd-it është shumë i thjeshtë për tu implementuar dhe aplikuar edhe në të bashkësi të dhënash të mëdhaja. Për këtë arsye është përdorur në fusha të ndryshme duke përfshirë ndarje e tregut, imazherin kompiuterike, statistika gjeografike, astronomi dhe agrikulture. Shpesh është përdorur si hap paraprocesimi për algoritma të tjerë, për shembull për të gjetur një konfigurim fillestar. Kuantizimi i Vektorëve Figure 36 Imazh më 2 kanale ngjyre për ilustrim Figure 37 Kuntizimi i Vektorëve të ngjyrave në qeliza Voronoi duke përdorur k-means K-Means ka orgjinën nga procesimi i sinjalit dhe ende gjen përdorim në këtë domain. Përdoret në grafikën kompiuterike, kuantizimin e ngjyrave për të zvogëluar lloje të ngjyrave që mund të shfaqen në një imazh. Analizë Grupi Në analizën e grupi k-means përdoret për të copëzuar të dhënat e hyrëse në k grupe. Një limitim që ka algoritmi në keto raste është se nuk mund të aplikohet funksioni i distancës mbi të dhëna që nuk janë numerike.
  • 43. Faqe | 43 Filtra Morfologjik Filtrat morfologjik sillen më mënyrë më të kontrolluar ndryshe nga filtrat linear të cilet veprojnë në mënyrë krejt të rastësishme. Shpesh herë na duhet që të eleminojme nga një imazh pjesë të imazhit që janë shumë të vogla dhe të panevojshme. Teknika që aplikohet për heqjen e këtyre pjesëve nga imazhi njihet si “Ngjesh dhe Zgjero” (ang: Shrink and Let Grow). Procesi kalon në disa faza: 1. Të gjitha strukturat e imazhit në mënyrë iterative zvogëlohen duket hequr një shtresë të një trashësie të caktuar rreth kontureve. 2. Mbas çdo iteracioni strukturat bëhen më të vogla deri sa vetëm struktura e madhe ngelet. 3. Strukturat e ngelura zgjerohen duke i shtuar një shtresë të një trashësie të caktuar. 4. Struktura e madhe është rikthyer pothuajse në madhësin e saj fillestare. Për këtë na duhen dy operacione. Operacioni i Ngjeshjes ku duhet që strukturave tiu hiqet një shtresë më pixel nga zona rrethuese dhe një operacion Zgjerimi që duhet të shtoi një shtresë më pixel në zonën rethuese. Për të dy operacionet përcaktohet kutpimi i dy pixel që të jenë fqinjë. Kemi dy lloje fqinjësish: 1. Fqinjësi 4-she ( Një pixel është fqinj më pixel në drejtimin veritikal dhe horizontal) 2. Fqinjësi 8-she (Një pixel është fqinj më pixel në drejtimin veritial, horizontal dhe atë diagonal.) Ashtu si dhe në filtrat linear ku kemi një matricë më koeficiente, në filtrat morfologjikë vetitë e filtrit specifikohen në matricën e strukturimit që për imazhet binare vlerat e tij do jenë 1 ose 0.
  • 44. Faqe | 44 𝐻(𝑖, 𝑗) ∈ {0,1} Hot spot edhe këtë radhë është qëndra e sistemit koordinativ por ndryshe nga rasti i filtrave linear jo gjithmon është në atë pozicion. • • • • • Për të bëre një parashtrim më të qarte të operacioneve morfologjike duhet që paraprakisht të bejme një shpjegim në lidhje më Imazhet binare. Për një imazh binar 𝐼(𝑢, 𝑣) ∈ {0,1} bashkesia e pikave të imazhit shprehet si më poshte: 𝑄𝐼 = {𝑝(𝑢, 𝑣)| 𝐼(𝑝) = 1} Paraqitja e imazhveve binare si pika bashkësie na mundëson që të shprehim operacione bazike si veprime të thjeshta bashkësish. Invertimi i Imazheve Binare 𝑄𝐼 = 𝑄𝐼 ̅̅̅ = { 𝑝 ∈ ℤ2 |𝑝 ∉ 𝑄𝐼} Bashkimi I dy imazheve 𝑄𝐼1∨𝐼2 = 𝑄𝐼1 ∪ 𝑄𝐼2 Translacioni ( vector d) 𝐼 𝑑 ≡ {( 𝑝 + 𝑑)|𝑝 ∈ 𝐼} Erosion Erozioni është pothujse operacionin i anasjelltë i Dilitacionit. Erozionin i përcaktuar në formatin e bashkësive është si më poshtë: 𝐼 ⊝ 𝐻 ≡ {𝑝 ∈ ℤ2 |(𝑝 + 𝑞) ∈ 𝐼, 𝑝ë𝑟 𝑐𝑑𝑜 𝑞 ∈ 𝐻} Figure 38 Imazhi Binar I dhe Filtri H
  • 45. Faqe | 45 Një pozicion p ruhet në rezultatin 𝐼 ⊝ 𝐻 nqs dhe vetem nqs kur elementi H vendoset në pozicionin p mbahet plotesisht në pixel-at e dukeshëm në imazhit origjinal. 𝐼 ⊖ 𝐻 ≡ {(1,1)} 𝑠𝑒𝑝𝑠𝑒 (1,1) + (0,0) = (1,1) ∈ 𝐼 ∧ (1,1) + (1,0) = (2,1) ∈ 𝐼 Dilatation Dilitacioni është një operacion morfologjik që i korrespondon konceptit tonë intuitivë në lidhje më “zgjerimin”. Dilitacioni mund të shprehet duke përdorur notatcionin e bashkësive si më poshtë: 𝐼⨁𝐻 ≡ {(𝑝 + 𝑞)|𝑝𝑒𝑟 𝑐𝑑𝑜 𝑝 ∈ 𝐼, 𝑞 ∈ 𝐻} Në mënyrë alternative operacioni i dilitacionit mund të shikohet si një element strukturor i H që replikohet në çdo pixel të dukshëm të imazhit i ose anasjelltas, imazhi replikohet në çdo element të dukshëm të H. Figure 40 Shembull Operacioni Dilitacioni Figure 39 Shembull Operacioni Erozioni
  • 46. Faqe | 46 𝐼 ≡ {(1,1), (2,1), (2,2)}, 𝐻 ≡ {(0,0), (1,0)} 𝐼⨁𝐻 = { (1,1) + (0,0), (1,1) + (1,0), (2,1) + (0,0), (2,1) + (1,0), (2,2) + (0,0), (2,2) + (1,0) } Algortimat Machine Learning Supported Vector Machine Supported Vector Machine është një teknik klasifikimi nga më të përparuarat. Ky algoritëm u krijua nga Vladimir N. Vapnik dhe Alexey Ya. Chervonenkis. Krijuesit e këtij algoritmi sugjeruan krijimin e një kalsifikuesi jo linear që tenton të maksimizojë marxhinat e hiperplanit. Ky lloj përafrimi njihet si “widest street approach” pra ndërtimi i një “vije” që siguron ndarjen e maksimale. Në themel të çdo problemi klasifikimi qëndron pyetja: Si mund të ndahet një hapsirë në kufij vendimi? Disa nga teknikat e propozuara më siper do të bënin një ndarje të hapsirës si më poshte: Figure 41a) Fqinjët më të Afërt b) Pemët e Vendimit c) Rjetat Neurale Në rastin e SVM kemi një situatë tjetër. Supozojmë se kemi shëmbullin e mësipërm dhe duam të gjejmë një mënyrë për të ndarë shembujt pozitiv nga ata negative:
  • 47. Faqe | 47 Duhet të përcaktojmë nëse shembulli i ri (u), i panjohur gjendet në anën e majtë apo në anën e djathtë të hiperplanit. Marim një vektor 𝑤⃗⃗ pingul më mesoren e hiperplanit dhe projektojmë vektorin 𝑢⃗ mbi vektorin 𝑤⃗⃗ dhe kontrollojmë nqs projeksioni është në anën e majtë apo në të djathtën. 𝒘⃗⃗⃗ ∙ 𝒖⃗⃗ ≥ 𝑪 𝒘⃗⃗⃗ ∙ 𝒖⃗⃗ + 𝒃 ≥ 𝟎 (1) Problemi qendron në faktin që ka shumë vektor 𝑤⃗⃗ të tille pasi mund të jene më gjatesi të ndryshme dhe duhet të percaktohet dhe vlera e b. Për të gjetur dy vlera të tilla të vetme duhet të vendosim disa kufizime sa i takon rregullave të vendimit. 𝒘⃗⃗⃗ ∙ 𝑿+ ⃗⃗⃗⃗⃗ + 𝒃 ≥ 𝟏 𝒘⃗⃗⃗ ∙ 𝑿− ⃗⃗⃗⃗⃗ + 𝒃 ≤ 𝟏 (2) Figure 42 Diagrama për SVM
  • 48. Faqe | 48 Keto ekuacione qendrojnë për shembujt që janë në kufijtë e hiperplanit. Për lehtësi matematikore po prezantojme një variabel të ri 𝑌𝑖: 𝑌𝑖 = { −1 𝑝𝑒𝑟 𝑠ℎ𝑒𝑚𝑏𝑢𝑗 𝑛𝑒𝑔𝑎𝑡𝑖𝑣 +1 𝑝𝑒𝑟 𝑠ℎ𝑒𝑚𝑏𝑢𝑗 𝑝𝑜𝑧𝑖𝑡𝑖𝑣 Bazuar mbi këtë variabël sistemi ekuacionit (2) mund të rishkruhet si më poshte: { 𝑌𝑖 ∙ (𝑤⃗⃗ ∙ 𝑥𝑖⃗⃗⃗ + 𝑏 ) ≥ 1 𝑌𝑖 ∙ (𝑤⃗⃗ ∙ 𝑥𝑖⃗⃗⃗ + 𝑏 ) ≥ 1 Siç mund të shihet është një ekuacion i vetëm: 𝑌𝑖 ∙ (𝑤⃗⃗ ∙ 𝑥𝑖⃗⃗⃗ + 𝑏 ) ≥ 1. Ky ekuacion mund të rishkruhet si më poshte: 𝑌𝑖 ∙ (𝑤⃗⃗ ∙ 𝑥𝑖⃗⃗⃗ + 𝑏) − 1 ≥ 0 . Një kufizim tjetër që vendoset është për vlerat që ndodhen në kufijtë e kanalit: 𝒀𝒊 ∙ (𝒘⃗⃗⃗ ∙ 𝒙𝒊⃗⃗⃗ + 𝒃 ) − 𝟏 = 𝟎 (3) Ky algoritëm tenton të maksimizojë gjerësin e hiperplanit (kanalit). Gjerësin e kanalit e shprehim si një relacion mes kufijëve të kanalit. 𝑾𝑰𝑫𝑯𝑻 = (𝒙+⃗⃗⃗⃗ − 𝒙−⃗⃗⃗⃗ ) ∙ 𝒘⃗⃗⃗ ‖𝒘⃗⃗⃗ ‖ (4) Madhësia 𝑤⃗⃗ ‖𝑤⃗⃗ ‖ është vektori njësi mbi të cilin do projektohet diferenca e vektorëve nga ku llogaritet gjerësia e kanalit. Duke u bazuar në ekuacionin (3) dhe (4) mund të rishkruajmë ekuacionin (4). 𝑾𝑰𝑫𝑯𝑻 = (𝒙+⃗⃗⃗⃗ − 𝒙−⃗⃗⃗⃗ ) ∙ 𝒘⃗⃗⃗ ‖𝒘⃗⃗⃗ ‖ = 𝑤⃗⃗ ∙ 𝑥+⃗⃗⃗⃗ − 𝑤⃗⃗ ∙ 𝑥−⃗⃗⃗⃗ ‖𝒘⃗⃗⃗ ‖ Për shembujt që janë në kufijt e kanailit shkruhet ekuacioni (3): 1. Shembujt Pozitiv: 𝑌𝑖 = 1 → (𝒘⃗⃗⃗ ∙ 𝒙+⃗⃗⃗⃗ + 𝒃 ) − 𝟏 = 𝟎 → (𝒘⃗⃗⃗ ∙ 𝒙+⃗⃗⃗⃗ ) = 𝟏 − 𝒃
  • 49. Faqe | 49 2. Shembujt Pozitiv: 𝑌𝑖 = −1 → (𝒘⃗⃗⃗ ∙ 𝒙−⃗⃗⃗⃗ + 𝒃 ) − 𝟏 = 𝟎 → −(𝒘⃗⃗⃗ ∙ 𝒙−⃗⃗⃗⃗ ) = 𝟏 + 𝒃 Pra pikërisht kjo është shprehja që duhet të maksimizojme. Por mund të maksimizojme edhe 1 ‖𝑤⃗⃗ ‖ ose mund të minimizojme ‖𝑤⃗⃗ ‖ ose mund të minimizojmë madhësin ‖𝑤⃗⃗ ‖2 2 . Të gjitha këto transformime bëhen për të bërë më të thjeshtë zgjidhjen, për lehtësi matematike. Problemi që shtrohet është i tillë, duhet të minimizojmë një madhësi pra duhet të gjejmë ekstremumet si dhe duhet të respesktojme disa kufizime që kemi vendosur. Për këtë perdoret teorema Koeficientet e Lagranzhit (ang: Lagrange Multipliers Theorem). Teorema e Lagranzh zvendëson funksionin dhe kufizimet që janë vendosur në një funksion të vetem ndaj të cilit nuk duhet të kujdesemi për të respektuar kufizimet. 𝑾𝑰𝑫𝑯𝑻 = (𝒙+⃗⃗⃗⃗ − 𝒙−⃗⃗⃗⃗ ) ∙ 𝒘⃗⃗⃗ ‖𝒘⃗⃗⃗ ‖ = 𝒘⃗⃗⃗ ∙ 𝒙+⃗⃗⃗⃗ − 𝒘⃗⃗⃗ ∙ 𝒙−⃗⃗⃗⃗ ‖𝒘⃗⃗⃗ ‖ = 𝟏 + 𝒃 + 𝟏 − 𝒃 ‖𝒘⃗⃗⃗ ‖ = 𝟐 ‖𝒘⃗⃗⃗ ‖ (5) Figure 43 Shpjegim i teoremës Lagranzh
  • 50. Faqe | 50 Nqs kemi në funksion 𝑓(𝑥1, 𝑥2, 𝑥3 … 𝑥 𝑛) dhe një kufizim 𝑔(𝑥1, 𝑥2, 𝑥3 … 𝑥 𝑛) 𝑎𝑡𝑒ℎ𝑒𝑟𝑒 𝑘𝑟𝑖𝑗𝑜ℎ𝑒𝑡 𝑓𝑢𝑛𝑘𝑠𝑖𝑜𝑛𝑖: 𝐹(𝑥1, 𝑥2, 𝑥3 … 𝑥 𝑛, 𝜆1, 𝜆2, 𝜆3 … 𝜆 𝑚) = 𝑓(𝑥1, 𝑥2, 𝑥3 … 𝑥 𝑛) − ∑ 𝜆 𝑘 ∙ 𝑔 𝑘(𝑥1, 𝑥2, 𝑥3 … 𝑥 𝑛) 𝑚 𝑘=1 Në rastin që po studiojmë funksioni i Lagranzhe ndërtohet si më poshtë: 𝐿 = ‖𝑤⃗⃗ ‖2 2 − ∑ 𝜆𝑖 ∙ (𝒘⃗⃗⃗ ∙ 𝒙𝑖⃗⃗⃗ + 𝑏) − 1 𝑛 𝑖=1 Nga Analiza Matematike dimë që ekstremumet e një funksioni gjenden duke llogaritur derivatin e parë të tij. Në këtë rast do llogarisim derivatet e pare në lidhje më 𝒘⃗⃗⃗ dhe 𝑏. 𝜕𝐿 𝜕𝑤 = 𝒘⃗⃗⃗ − ∑ 𝛼𝑖 ∙ 𝑦𝑖 ∙ 𝑥𝑖 𝑛 𝑖=1 = 0 ≡ 𝒘⃗⃗⃗ = ∑ 𝛼𝑖 ∙ 𝑦𝑖 ∙ 𝑥𝑖 𝑛 𝑖=1 𝜕𝐿 𝜕𝑏 = ∑ 𝛼𝑖 ∙ 𝑦𝑖 𝑛 𝑖=1 = 0 Ky është një problem optimizimi kuadratik. Zvendesojme në ekuacionin e Lagrananzhe ekuacionin 𝒘⃗⃗⃗ = ∑ 𝛼𝑖 ∙ 𝑦𝑖 ∙ 𝑥𝑖 𝑛 𝑖=1 . 𝐿 = 1 2 ∙ (∑ 𝜆𝑖 ∙ 𝑦𝑖 ∙ 𝑥𝑖 𝑛 𝑖=1 ) ∙ (∑ 𝜆𝑗 ∙ 𝑦𝑗 ∙ 𝑥𝑗 𝑛 𝑗=1 ) − ∑ 𝜆𝑖 ∙ 𝑦𝑖 ∙ 𝑥𝑖 ∙ ∑ 𝜆𝑗 ∙ 𝑦𝑗 ∙ 𝑥𝑗 𝑛 𝑖=1 𝑛 𝑖=1 − ∑ 𝜆𝑖 ∙ 𝑦𝑖 ∙ 𝑏 𝑛 𝑖=1 + ∑ 𝜆𝑖 𝑛 𝑖=1 𝐿 = ∑ 𝜆𝑖 𝑛 𝑖=1 − ∑ ∑ 𝜆𝑖 ∙ 𝜆𝑗 ∙ 𝑛 𝑗=1 𝑛 𝑖=1 𝑦𝑖 ∙ 𝑦𝑗 ∙ 𝑥𝑖 ∙ 𝑥𝑗
  • 51. Faqe | 51 Nga kjo trajtë e ekuacionit të Lagranzhe duket qartë që problem i optimizimit varet drejt për drejt nga shembujt e bashkësis se trainimit. Rregull i vendimit ndërtohet si më poshte: ∑ 𝜆𝑖 ∙ 𝑛 𝑖=1 𝑦𝑖 ∙ 𝑥𝑖 ∙ 𝑢⃗ + 𝑏 ≥ 0 ⟹ 𝑆ℎ𝑒𝑚𝑏𝑢𝑙𝑙 𝑃𝑜𝑧𝑖𝑡𝑖𝑣 ⊕ ∑ 𝜆𝑖 ∙ 𝑛 𝑖=1 𝑦𝑖 ∙ 𝑥𝑖 ∙ 𝑢⃗ + 𝑏 ≤ 0 ⟹ 𝑆ℎ𝑒𝑚𝑏𝑢𝑙𝑙 𝑁𝑒𝑔𝑎𝑡𝑖𝑣 ⊖ Funksione të ndryshëm KERNEL Ka disa raste kur supported vector machine nuk mund të jap një zgjidhje përfundimtare kjo për shkak të konfigurimit të shembujve. Keto raste janë raste linearisht të pandashme. Në këtë rast duhet të shohim në një prespektive tjetër, pra duhet të shtojmë një dimension tjetër. Në shembujt që kemi duhet të shtojme dhe karakteristike tjetër më qellim që të mund ti ndajme ato shembuj. Na duhet një funksion që të bëj transformimin nga një hapsirë në një hapsirë më një dimension më shumë. Supozojmë se ekziston një transformim i tillë 𝜙(𝑥𝑖) . Në nuk na intereson transformimi 𝜙(𝑥𝑖) në na duhet madhësia Κ(𝑥𝑖 ∙ 𝑥𝑗) = 𝜙(𝑥𝑖) ∙ 𝜙(𝑥𝑗) Funksionet kernel më të perhapur janë: LINEAR (𝑈⃗⃗ ∙ 𝑉⃗ + 1) 𝑛 EKSPONENCIAL 𝑒 −|𝑥 𝑖−𝑥 𝑗| 𝜎
  • 52. Faqe | 52 Përdorimi dhe zgjidhja e këtyre funksionve kernel është pjesa më e vështirë e SVM. Për pjesën më të madhe të aplikimeve përdoret një kernel polinomial. Në rastin e klasifikimit të tekstit më e pershtatshme është një kernel linear pasi ka një numër të madh dimensione karakteristikash. Avantazhet dhe Disavatazhet e SVM Avantazhet Ka një numër të madh avantazhesh perdorim i një klasifikuesi SVM. Këta lloje klasifikuesish janë shumë efektiv kur kemi të bëjme më hapsira të mëdha dimensionale. Gjithashtu në rastet kur numri i dimensioneve bëhet shumë më i madhë se numri elementëve trajnuese pikerisht është momenti për të përdorur SVM. SVM është shumë performante në përdorimin e memories pasi përdor një pjesë të shembujve të trajnimit. Disavantazhet Një disavantazh për SVM është rasti kur numri i vetive është shumë më i madh se numri i shëmbujve në raste të tilla SVM do të këtë një performancë të ulët. Një problem tjetër më svm është rasti kur kemi të dhëna jo të zakonshme si p.sh vargje karakteresh ose struktura të dhënash si pemët. Ky algoritëm gjithashtu nuk bën vlerësime probabilitare dhe për pasoje këto vlerësime duhet të bëhen në mënyrë indirekte. Figure 45 Rast Linearisht i Pandashem Figure 44 Shtimi i një dimensioni per te zgjidhur rastin linerisht të pa ndashëm
  • 53. Faqe | 53 Rezultatet Algoritmi i propozuar është trajnuar dhe ka vlerësuar një bashkësi trajnimi më 70 imazhe që përmbanin 10 numra nga 0 – 9 më fonte dhe paraqitje të ndryshme. Keto imazhe shembull janë krijuar nga unë në Adobe Photoshop CS6. Imazhet e bashkësis së tarjnimit kanë dimensione 30 x 45 pixel dhe kanë një kanal ngjyre, me shkalle gri. Për të krijuar imazhet e bashkësis së trajnimit janë përdorur këto fonte: 1. Arial 2. Hobo Std 3. Berlin Sans FB Demi 4. Calibri 5. Peoplar Std 6. Ravie 7. Paypyrus Për të testuar korrektësin e algoritmit janë mare imazhe të ndryshme test. Këto imazhe janë marë nga burime të ndryshme. Imazhet janë marë nga burimet e mëposhtme:  Janë marë në mënyrë të rastësishme në web.  Janë gjeneruar në Adobe Photoshop CS6  Janë fotografi7 të botës reale të realizuara nga unë. Kompiuteri që është përdorur për të ekzekutuar algoritmin është HP ProBook 4740S:  CPU: Intel Core i5 - 3230M @2.6 GHz  RAM: 8 GB  SSD SanDisk Ultra II 7 Fotografite janë realizuar duke perdorur nje aparat fotografik dixhital (Nikon D3200) si dhe nje aparat mobile (Huawei Nexus 6P)
  • 54. Faqe | 54 Algoritmi funksionon më imazhe në formate të ndryshme .jpg, .png, .bmp kjo dhe për vetë lehtësinë që të jep libraria e OpenCV. Imazhet që përdoren nga ky algoritëm kanë rezolucion nga 400 x 500 deri në 6016 x 4000. Algoritmi arrin ti përpunoj imazhet në një kohe relativisht të shpëjte kjo dhe në varësi të numrit të zonave të interesit8 që gjenden në atë imazh edhe pse rezolucioni i imazhit mund të jetë shumë i lartë. Në mënyrë që të vlerësojme sa më saktë algoritmin e propozuar duhet të bëjmë disa vlerësime matematikore dhe sasiore. Shkalla e Gabimit: përcaktohet si numri i detektimeve false në një imazh pjestuar më numrin total të detektimeve. 𝑆ℎ𝐺 = 𝑁𝑢𝑚𝑟𝑖 𝑖 𝐷𝑒𝑡𝑒𝑘𝑡𝑖𝑚𝑒𝑣𝑒 𝐹𝑎𝑙𝑠𝑒 𝑁𝑢𝑚𝑟𝑖 𝑇𝑜𝑡𝑎𝑙 𝑖 𝐷𝑒𝑡𝑒𝑘𝑡𝑖𝑚𝑒𝑣𝑒 ∙ 100% Detektimet false janë struktura që janë detektuar si një numër por që nuk është ai numër. Numri total i detektimeve është shuma totale e detektimeve të mara. Gjate ketij studimi janë zhvilluar shumë testime duke provuar algoritmin mbi grupe të caktuara të domain të numrave për të përcaktuar si si ndikon bashkësia e trainimit mbi rezultatet dhe përafrimet që bën algoritmi. Algoritmi u testuar më 34 imazhe që ishin numra 1,3,4,6 por të paraqitur në fonte dhe pozicione të ndryshme. Rezultatet ishin si më poshte: Table 2Testimet dhe Rezultatet Testi Nr Numri Total i Numrave Numra të detektuara Gabim Numra të Detektuara Sakte Shkalla e Gabimit (%) Shkalla e Suksesit 1 34 5 29 14.7 85.3 2 34 2 32 5.8 94.2 8 Zona interesi (ang: ROI Region of Interes) janë ato struktuara të imazhit për e cilat jemi duke kerkuar. Në këtë raste janë zonat më numra.
  • 55. Faqe | 55 Figure 46 Testimi Nr 1 Figure 47 Testimi Nr 2 Duke studiuar më vëmendje bashkësin e trajnimit dhe rastet në të cilat algortimi kishte gabuar arrita të kuptoj arsyen pse algortimi për një numër të caktuar rastesh nuk kishte arrituar të detektonte më saktësi numrin e duhur. Nga rezultatet bie në sy që algoritmi ka gabuar në 29, 85% 5, 15% Analiza e imazheve për numrat 1 , 3 , 4 , 6 Sukses Deshtim 32, 94% 2, 6% Analiza e imazheve për numrat 1 , 3 , 4 , 6 Sukses Deshtim
  • 56. Faqe | 56 detektimin e numrit 1. Imazhet e numrave 1 që nuk mund të detektoheshin kishin numrin 1 të ngjitur djathas dhe pa pjesen e poshtme të 1 si në tabelen 2. Table 3 Numri 1 më probleme Në bashkësinë e trajnimit nuk gjendej asnjë imazh që të kishte numërin 1 në një konfigurim të ngjashëm që algoritmi ta përdorte për tu trajnuar. Mbas shtimit në bashkësin e trajnimit të një imazhi më konfigurimin e 1 në një forme të ngjashme saktësia e algoritmit u përmirësua më 9%. Kufizime dhe përmirësime Natyrisht që ka disa limitime në algortimin që kam propozuar për detektimin e numrave. Keto limitime lindin nga mënyra e kompozimit të imazhit të fotografuar ose të gjeneruar. Në rastet kur imazhi është shumë i errët ose shumë i ndritshëm është shumë e vështire të ekstraktohen numrat nga imazhi. Problem tjetër sjellin dhe rastet kur kemi superpozim të numrave, pra kemi disa numra të vendosur njëri mbi tjetrin gjë që e bën shumë të veshtirë dallimin mes tyre. Ky aplikim mund të zhvillohet akoma më tej më njohjen e shkronjave gjë që do ta kompletonte funksionin e një OCR9 . Një aplikim i tille do bënte të mundur detektimin dhe kuptimin e plotë të teksteve. Algoritmi i propozuar deri më tani detekton dhe njeh vetëm tekstet e printuara në formë dixhitale. Në të ardhmen mendoj ta zgjeroj këtë kërkim duke ndertuar një algoritëm që të mund të detektojë dhe kuptoje dhe tekstin e shkruar më dorë. Kjo përben një sfidë të vertetë teknike për vetë variacionet që ka mënyra e të shkruarit në njerëz të ndryshëm. 9 OCR (Optical Character Recognition) Njohje Optike e Karaktereve
  • 57. Faqe | 57 Aplikime të mundshme Zgjidhje të tilla kanë shumë përdorime në fusha të ndryshme të industrise dhe nder to mund të përmendim: 1. Marje automatike e të dhënave në dokumenta biznesi si për shembull pashaporta, fatura, dokumenta banke etj. 2. Njohje automatike e targave të makinave 3. Nxjerrje automatike e informacioneve kryesore për dokumentat e sigurimeve. 4. Ekstraktimi i informacioneve nga kartevizitat. 5. Konvertim në versione teksti të editueshëm nga dokumentat e printuara. 6. Ndërtimi i sistemeve për mbrojtjen ndaj sistemeve robotike (CAPTCHA) 7. Teknologji ndihmëse për personat e verbër ose më shikim të dëmtuar. Duket qartë që kjo zgjidhje ofron shumë aplikime të ndryshme por ajo që mua më intereson më shumë dhe që ka një imapakt më të madh në shoqëri janë aplikimet mjekësore. Një algoritëm që është në gjendje të lexoje tekstin do ishte një ndihmë shumë e madhe për personat më mungesë ose më shikim të dëmtuar. Tekstet e gjeneruara prej këtij algoritmi mund ti transmetohen përdoruesit nepërmjet audios ose nepërmjet alfabetit të tyre special. Integrimi i kësaj teknologjie në një shakllë të gjerë ose bërja e saj mobile do ju jepte më shumë akses këtij grupi shoqëror në tregun e punës si dhe do ti integronte ata më lehtë në jetën shoqërore të vendit. Kjo është filozofia ime për teknologjine dhe shkencën në përgjithësi, nqs nuk është në funksion të njerzve atëherë nuk ka asnjë vlerë.
  • 58. Faqe | 58 Bibliografi [1] Sergei Azernikov. Sweeping solids on manifolds. In Symposium on Solid and Physical Modeling, pages 249–255, 2008. [2] John Canny. A computational approach to edge detection. Pattern Analysis and Machine Intelligence, IEEE Transactions on, PAMI-8(6):679–698, Nov. 1986. [3] F. Mai, Y. Hung, H. Zhong, and W. Sze. A hierarchical approach for fast and robust ellipse extraction. Pattern Recognition, 41(8):2512–2524, August 2008. [4] Thomas B. Moeslund. Image and Video Processing. August 2008. [5] Optical Charater Recognition https://en.wikipedia.org/wiki/Optical_character_recognition#Applications [6] Principlas of Digital Image Processing – Fundamentals Techniques [7] Learning OpenCV- OReilly [8] Thresholding. Bryan S. Morse, Brigham Young University, 1998–2000 [9] MIT OpenCourseWare http://ocw.mit.edu/courses/electrical-engineering-and-computer- science/6-034-artificial-intelligence-fall-2010/ [10] Support Vector Machines: Patrick H. Winston https://www.youtube.com/watch?v=_PwhiWxHK8o&index=4&list=PLMfKZLNucVwqKNaknw6T 4p0fJPSn5EN4x [11] Pattern Recognition: K-Menas Algorithm and Hierarchical Clustering. Indian Statistical Institute, Kolata [12] Edge and Corner Detection: UC Davis University https://www.youtube.com/watch?v=P35WsRDnTsU&list=PLMfKZLNucVwqKNaknw6T4p0fJPSn 5EN4x&index=9 [13] Nearest Neighbors: Patrick H. Winston https://www.youtube.com/watch?v=09mb78oiPkA&index=2&list=PLMfKZLNucVwqKNaknw6T4 p0fJPSn5EN4x [14] OpenCV API Reference http://docs.opencv.org/2.4/modules/refman.html [15] Histogram Equalization: Computer Vision: Algorithms and Applications By Richard Szeliski [16] Advances in K-means Clustering: A Data Mining Thinking By Junjie Wu