Segmentace Otisku Prstu A Výpočet Orientačního Pole: Jan Ferbr

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

Segmentace otisku prstu a

výpočet orientačního pole


Jan Ferbr
Cíl práce
Segmentace otisků prstů

Výpočet orientačního pole pro každý otisk

Postup:
-Gradient (x,y)
-Velikost gradientu
-Segmentace za pomoci thresholdingu
-Výpočet orientačního pole
Implementace (CPU)
Matlab
−1 0 1 −1 −2 −1
sobelx = −2 0 2 sobely = 0 0 0
−1 0 1 1 2 1
2 2
Gradmag(i, j) = Gradx(i, j) + Grady(i, j)

Thresholding
16 16
1 −1 ∑i=1 ∑j=1 2Gradx(i, j)Grady(i, j) π
θ = tan ( 16 16 )+
2 ∑i=1 ∑j=1 (Gradx(i, j)2 − Grady(i, j)2) 2

Každý pixel zpracováván sekvenčně


Implementace (GPU)
Pro každý krok byl vytvořen jeden kernel za pomoci jazyku
CUDA

Konvoluce (po řádcích s využitím sdílené paměti)


Výpočet velikosti gradientu

Segmentace (po blocích, výpočet průměrné hodnoty uložen do


sdílené paměti, thresholding)

Výpočet orientačního pole (po řádcích, každé vlákno


zpracovává jeden “blok” z kterého počítá průměr)
Testování

3 datasety

Časy měřeny bez ukládání a načítání obrázků

Celkový čas potřebný na zpracování 10ti snímků

Doba zpracování jednoho snímku

Doba trvání jednotlivých kernelů


Výsledky
Convolution Segmentation Grad_mag Orientation GPU CPU CPU GPU

14000 1,6 16

10500 1,2 12
Čas/ mikrosekundy

Čas / sekundy

Čas/ sekundy
7000 0,8 8

3500 0,4 4

0 0 0
0 1 3 4 5 0 3 5 8 10 0 1 2 2 3
Měření # Měření # Měření #
Čas / sekundy CPU GPU

Doba zpracování jednoho snímku 1.39829 0.01458

Doba zpracování 10ti snímků 14.73445 0.19022

Doba trvání kernelu: Konvoluce 0.000446

Doba trvání: Segmentace 0.001793

Doba trvání kernelu: Orientační pole 0.011470

Doba trvání kernelu: Velikost gradientu 0.000133

You might also like