Sunteți pe pagina 1din 14

BABES BOLYAI UNIVERSITY, CLUJ

NAPOCA, ROMÂNIA FACULTY OF


MATHEMATICS AND COMPUTER
SCIENCE

Detectia contururilor in imagini folosind


Automate Celulare

Mureșan Andrei (Software engineering)


Kiss Lorand (Baze de date)
Kadar David (Baze de date)
Mîrza Darius (Software engineering)
2018

Capitolul 1

Introducere
1.1 Date de test

Datele de test sunt reprezentate de imagini:


• http://home.bharathh.info/pubs/codes/SBD/download.html
• https://www2.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/
• http://serre-lab.clps.brown.edu/resource/multicue/
• https://www.cc.gatech.edu/~parikh/contour.html#data

1.2 Idea Proiectului

Proiectul are ca scop principal detectarea contururilor din imagini folosind Automate
Celulare. Pentru detectarea contururilor se vor folosi algoritmi de machine learning.
Automatul celular este un mod regasit în teoria compatibilității, matematică, fizică, etc.
E alcatuit din:
• Număr finit de stări
• Denumite
• Celule(„Pornit” și „Oprit”).

Automatul este de forma unei grile, cu o dimensiune finită. Pentru fiecare celulă în parte,
avem definite o vecinătate care include si celula insasi, ea fiind definită în raport cu celula
specificată.
T=0 reprezinta starea inițială, este selectată prin stabilirea unei stări pentru fiecare celulă.
O nouă generație este formată prin asignarea unei stări specifice (definită de o formulă
matematică) uneia dintre celule, implicit a celor ce se află în vecinătatea sa (timpul este
incrementat cu 1).
Machine Learning este un domeniu al inteligentei artificiale care utilizează tehnici
statistice pentru a oferi sistemelor informatice capacitatea de a "invata" (de exemplu,
îmbunătătirea treptată a performanței într-o anumită sarcină) din date, fără a fi programată în
mod explicit.
1.3 Lucrari care ar trebui citite:

A Novel Method of Edge Detection using Cellular Automata,


Link: https://pdfs.semanticscholar.org/b729/30d56832eac41fafeaf5f9ec77be7380a85c.pdf?
fbclid=IwAR1dpUxedH317kca-q9yo_KrXuzjyCxz6hHlXmEqe1Mtj_G8hgdY3pV8fHk

An Efficient Edge Detection Technique by Two


Dimensional Rectangular Cellular Automata,
Link: https://arxiv.org/ftp/arxiv/papers/1312/1312.6370.pdf

1.4 Obiective prima parte:

• Aplicatie ofera urmatoarele feature-uri:


1. Convertirea oricarei imagini colore in GrayScale si aplicarea algoritmului de
“sharpening”
2. Algoritm de detectare a conturului folosind Automate Celulare

Capitolul 2

2.1 Motivatie

Detectare tipuri de autovehicule(Ex: interzicerea anumitor tipuri pentru anumite zone).


Idee de dezvoltare in viitor pentru domeniul medical.
Detectarea varstei copacilor taiati ilegal din paduri(dupa numarul de inele).
Detectarea consistentei semnelor de circulatiei de pe carosabil(treceri de pietoni,
delimitatoare)
Scop educational: Scoala de arte->Portrete
Detectarea instrumentelor medicale din poze

2.2 Definirea precisa a problemei

Algoritmul va fi aplicat imaginilor dupa ce a fost aplicat Grayscale, pe fiecare imagine in


parte.
La imaginile GrayScale, fiecare pixel indică nivelul de luminozitate
al imaginii într-un anumit loc:
• 0 reprezintă negru
• 255 reprezintă alb

O margine este o schimbare bruscă de luminozitate (scala gri nivel pixeli). Informația de
margine pentru un anumit pixel este obținută prin explorarea luminozității pixelilor vecini din
acest pixel. Dacă toți pixelii vecini sunt de o luminozitate apropiata, atunci se presupune că nu
există nici o margine în acel moment. Cu toate acestea, dacă unii dintre vecini sunt mult mai
strălucitori decât alții, atunci există probabil o margine în acel moment.

Luminozitatea relativă a pixelilor dintr-o vecinatate este analoaga cu calculul derivatului


luminozității, valorile stralucirii sunt discrete, nu continue, deci aproximam derivata.

2.3 Abordari inrudite


a. Poza originala
b. Metoda Roberts
c. Metoda Frewitt
d. Metoda Sobel
e. Metoda Canny
f. Metoda Automate Celulare

Rezultatele arata în mod clar ca metoda Canny are un efect mai bun decat Prewitt,
Roberts si Sobel. Un rezultat produs de Celularul Automat are un contur mai bun de margine si
mai bune efecte de detectare în partea de sus a palariei, precum si zona gurii comparativ cu
metoda Canny.

Roberts, Prewitt și Sobel dau marginile foarte slabe și discontinue. Acesta include,
de asemenea, margini false, în timp ce Automate Celulare dau margini curate și aproape
continue.

2.4 Metoda de lucru


1. Algoritmi bazati pe automate celulare

Așa cum sa menționat anterior, tehnicile celulare automate apar ca un instrument natural pentru
prelucrarea imaginilor datorită naturii lor locale și implementării simple a calculului parallel. In
aceasta lucrare vom analiza si investiga un algoritm care foloseste automate celulare pentru
prelucrarea imagiinilor grayscale. Mai precis, vom analiza un algoritm de detectare al
contururilor.
Automatul cellular pentru prelucrarea imaginilor digitale gray scale se bazeaza pe un
automat bi-dimensional (IxI, V, N, f). Cu V = {1, 2, …, k-1}, unde k reprezinta numarul de stari,
N reprezinta tipul vecinatatii(ex. N este numarul total de vecinatati, varieaza intre 0 si 8), iar f
este functia de tranzitie de la Vn -> V. Avand o configuratie c a celulelor in automatul cellular la
un moment dat t, putem calcula cu ajutorul acestuia o configuratie c’ la un timp t+1 pentru
fiecare celula in parte, urmand formula c’(x) = f(c(x1 … xn)).
Ipoteza celularului automat este data de urmatoarele 2 ecuatii:
1) f ((vt (α + δ1 ) , vt (α + δ2 ), ……vt (α + δn )= E(α)
k −1
t
2) ∑ N ( Cj )=C target si sum (V (Ctarget)) > k-1, altfel B(α)
j=0

Unde Cj este clasa de stari ale pixelilor din vecinateata ( ht (α)) for j=0, 1, 2,…, m and v t (α + δ1
) € Cj. N (Cj) este numarul vecinatatilor a lui α care fac parte din clasa Cj (v t (C target)). E (α)
este numarul pixelilor de contur, B (α) este valoare pixelului background si k este numarul de
stari.
Mai este considerat faptul ca fiecare celula al automatului este reprezentat de cate un
pixel in planul imaginii digitale. Consideram si faptul ca fiecare automat individual dintr-o celula
este identic cu celelalte, astfel o singura functie de tranzitie poate fi definite pentru intreg
autmatul cellular.

2. Algorituml pentru gray level edge detection

In prcesarea de imagini digitale, fiecare imagine este cuantificata in pixeli. Pentru


imaginile gray scale fiecare pixel indica luminozitatea imaginii intr-un punct si poate avea
valoarea de 0 ce reprezinta negru si valoarea de 255 ce reprezinta albul.
Definim un contur ca si o schimbare ampla a luminozitatii pixelilor. Informatiile care ne
spun daca e un pixel face parte sau nu dintr-un contur sunt extrase analizand vecinatatea
pixelului respectiv. Daca aporape toti pixel din vecinatatea celui targetat au aprope aceeasi
luminozitate, atunci cel mai porbabil acel pixel nu apartine unui contrur. Calculare diferentei
luminozitatii este echivalentul calucalrii derivatei luminozitatii. Valorile luminozitatii sunt
discrete si nu continue, deci ca urmare aproximam derivate unei functii.
Ecuatiile ipotezei automatelor celulare se modifica doar la partea de egalitate, astfel incat
E(α) va fi 255, iar B(α) va fi 0.

Pseudo codul pentru algoritmul descris este urmatorul:

begin CA
image size = I[ M x N ]
Ctarget = the target pixel
max = 0;
sum = 0;
threshold= Otsu(I)
radius = 1; //The radius of the neighborhood
x = 2;
y = 2;
s = y1(x, y);
for i= radius:M-radius
for j= radius:N-radius
neighbors = moore(x, y);
g= n_data(neighbors, threshold)
sum = sum + g
end
end
if ((sum is_in Rule_List) && (sum > 255))
I(x,y) = 255
Else
I(x,y) = 0
End.

Descrierea Pseudo Codului:

Algoritmul propus de noi functioneaza pe orice tip de imagine si orice format.


Proiectul ia ca input un folder care contine imagini color sau alb negru, si are ca output un nou
folder cu imaginile pe care s-a aplicat algoritmul.
Algotimul citeste toate imaginile si aplica metoda de Cellular Automata pentru fiecare imagine
gasita.
In prima faza algoritmul parseaza imaginea si o transforma in grayscale, astfel facand posibila
aplicarea algoritmului si pe imagini color, nu doar alb-negru.
Aplicand metoda Otsu Thresholding pixelii din imagine sunt transformati in valori binare pentru
a putea lucra mai usor cu ei.
Aplicatia parseaza fiecare pixel in parte si lucreaza cu vecinii acestuia, vecinii fiind selectati
dupa “Vecinatatea lui Moore”
Ulterior pe acest set de date se aplica diferite verificari. In urma rezultatelor acestor verificari
pixelului ii este aplicata culoarea neagra sau alba in functie de regulile de colorare.
Algoritmul salveaza imaginea nou obtinuta care contine doar marginile detectate intr-un folder
separat.

2.5 Comparare rezultate intre abordarile inrudite

Metoda Canny are un efect mai bun decat metoda Prewitt, Roberts, Sobel
și continuitatea marginilor este puternica. CA are o curba mai buna a conturului
de margini si mai efecte bune de detectare a intregii camere, precum si caracteristicile corpului
în comparatie cu Canny. Metodele Roberts, Prewitt si Sobel dau rezultate foarte slabe si
discontinue care includ, de asemenea
margini false, in timp ce CA ofera margini continue mai bune si mai curate. Sobel si metoda
Prewitt nu au reusit sa detecteze marginile în fundal.

Celular Automata are un contur mai bun si efecte mai bune de detectare în comparație cu
Canny. Se poate vedea ca Roberts și metodele Prewitt ofera o precizie mai mica si rezultate
discontinue care includ si margini false, in timp ce CA da margini curate si continue. Pentru
comparatie, timpul de calcul e prezentat în tabelul 1.

Toate rezultatele testului au loc la timpul de calcul din intervalul de 0,14 până la 0,30 sec
per imagine, excluzand operatiile de input si output(Tabelele 2,3 si 4). Algoritmul de detectare
Sobel dureaza minim ca timp in comparatie cu metoda de gradient existent, in mod specific
metoda Prewitt si Roberts. Metoda bazata pe automate celulare are o eficienta computationala
mai mare în timp minim. Desi metoda Canny este buna la detectarea marginilor, metoda
propusa în continuare a dat rezultate mai bune decat Canny. Timpul de calcul al metodei Canny
este ridicat.

Tabel 1:

Computing Time
Edge detection method
Test Image(s) Image Size
Roberts Prewitt Sobel Canny Cellular Automata
Demo image 1 256 x 256 0.179 0.192 0.218 0.247 0.136
Demo image 2 256 x 256 0.210 0.219 0.234 0.259 0.148
Demo image 3 256 x 256 0.137 0.182 0.245 0.287 0.120
Demo image 4 256 x 256 0.198 0.207 0.231 0.256 0.172
Demo image 5 256 x 256

Analiza de timp a imaginilor folosind diferite metode de detectare a muchiilor:

Tabel 2:
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
Roberts Prewitt Sobel Canny Cellular Automata

Tabel 3:

0.3

0.25

0.2

0.15

0.1

0.05

0
Roberts Prewitt Sobel Canny Cellular Automata

Tabel 4:

0.3
0.25
0.2
0.15
0.1
0.05
0
Roberts Prewitt Sobel Canny Cellular Automata

Capitol 4 – Metoda Propusa


Metoda propusa de echipa noastra, pentru a rezolva problema detectarii marginilor este
folosirea celularelor automate in detectarea marginilor.
Automatul celular reprezinta un model discret studiat în teoria
compatibilitatii, matematica, fizica, stiințe complexe, biologie teoretică si modelarea
microstructurilor. Este format dintr-un numar finit de stari, denumite si celule, in general
„Pornit” si „Oprit”. Are forma unei grile, cu o dimensiune finită. Pentru fiecare celula in parte,
avem definite o vecinatate, incluzand in general si celula insasi, care este definita in raport cu
celula specificata. Starea initiala la timpul t=0, este selectata prin stabilirea unei stari pentru
fiecare celula. O noua generatie este formata prin asignarea unei stari specifice (definita de o
formulă matematica) uneia dintre celule, si implicit a celor ce se afla în vecinatatea sa (timpul
este incrementat cu 1). Aceasta metoda de lucru a iesit in evidenta in ultimii ani, mai ales in
domeniul prelucrarii imaginilor, datoria modului lor natural si simplu de a calcula date in paralel.
In alte cuvinte un autmoat cellular poate fi descries ca si o multime formata din 4
elemente CA = (I, N, V, f), unde I reprezinta saptiul cellular format dintr-un sir bi-dimensional
cu r x c celule, I = {(a,b), 1≤a≤r, 1≤b≤c}. V este multimea starilor celulelor. N este tipul
vecinatatii, iar f este functia de tranzitie de la Vn -> V.
Vecinatatea unei celule (a,b) este reprezentata de multimea celuler vecine al caror stare la
timpul t determina starea celulei (a,b) in timpul t+1, stare rezultate aplicand functia de tranzitie f.
Vecinatatile pot fi alese in mod diferit in functie de implementarea sau modul de lucru abordat,
dar in general se foloses vecinatatile de tip Neumann sau de tip Moore, reprezentate in figurile
urmatoare:

Fig.1 Vecinatati von Neumann Fig.2 Vecinatati Moore

Trebuie sa mentionam ca si celula principala este inclusa in asa zisa vecinatatea ei. O
vecinatate este definite de numar finit de idecsi, astfel incat toate celule fac parte din multimea
rezultata din uramtaorea formula V(a, b) = {(a + α1, b + β1), … , (a + αm, b + βm): αk, βk ϵ V}.

Capitol 5 – Aplicatia(validarea numerica)

Rezultate obtinute in urma aplicarii algoritmului:


Imaginile originale: Imagini rezultate
Consola aplicatiei dupa rulare cu timpii de rulare:

Timpii de executie al algoritmilor Sobel si Roberts in comparative cu CA:


Analiza de timp a imaginilor folosind diferite metode de detectare a muchiilor(comparatii facute
vs aplicatia propusa de noi):

Computing Time
Edge detection method
Test Image(s) Image Size
Roberts Prewitt Sobel Canny Cellular Automata
Demo image 1 256 x 256 1.3159 1.4503 1.5301 1.759 1.2143
Demo image 2 256 x 256 1.072 1.2165 1.2202 1.2346 0.8335
Demo image 3 256 x 256 0.8215 0.8995 1.007 1.023 0.6704
Demo image 4 256 x 256 0.9902 0.9981 1.2301 1.2563 0.8865

2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0

1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0

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