Với tập dữ liệu thực nghiệm là 20 ảnh đầu vào, đối với bộ lọc STFT ta thu được kết quả như hình 3.4. Đường màu xanh thể hiện thời gian sau khi cải tiến, đường màu đỏ thê hiện kết quả ban đầu nâng cao chất lượng ảnh bằng bộ lọc STFT. Qua hình 3.4 ta thấy kết quả sau khi cải tiến để nâng cao tốc độ thi hành đối với bộ lọc STFT đã được thay đổi nhất định.
Hình 3. 4 Kết quả cải tiến đối với bộ lọc STFT
0 200 400 600 800 1,000 1,200 1,400 1,600 1,800 2,000 1 5 9 131721252933374145495357616569737781858993
Thời gian nâng cao ảnh vân tay sử dụng bộ lọc Gabor Thời gian sau cải tiến bộ lọc Gabor
(ms) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 1 2 3 4 5 6 7 8 9 10
Thời gian sau cải tiến bộ lọc STFT
KẾT LUẬN CHUNG Kết quả đạt đƣợc của luận văn
Với kết quả thu được như trên, ta thấy kết quả của việc cải tiến tốc độ đối với các bộ lọc là khá hiệu quả. Kết quả này rất hữu ích đối với những hệ thống thực tế đang vận hành mà có tập dữ liệu là lớn như: ứng dụng nhận dạng vân tay vào quản lý bằng lái xe, quản lý dân số, quản lý thay cho chứng minh thư…
Với cách tiếp cận giảm thiểu những bước tính toán trung gian, tính trước những giá trị xấp xỉ có thể được, luận văn đã thử nghiệm được những kỹ thuật cải thiện tốc độ nâng cao chất lượng ảnh vân tay và đánh giá bước đầu cho phép khẳng định được ưu điểm về mặt tốc độ, đảm bảo chất lượng của kỹ thuật đã cài đặt.
Kết quả thu được của luận văn có thể cho phép cải thiện được tốc độ trích rút đặc trưng vân tay của các hệ thống nhận dạng vân tay.
Hƣớng nghiên cứu tiếp theo
Kết quả của luận văn bước đầu cho thấy nghiên cứu đã cải thiện được tốc độ trích rút đặc trưng vân tay của các hệ thống nhận dạng vân tay mà không ảnh hưởng đến chất lượng của ảnh so với trước khi chưa cải tiến.
Tiếp theo, luận văn sẽ hướng đến nghiên cứu, tìm hiểu một số phương pháp, kỹ thuật hiện đại phục vụ so khớp đặc trưng vân tay với số lượng lớn.
TÀI LIỆU THAM KHẢO Tiếng Anh
[1] Mazumdar, Subhra; Dhulipala, Venkata (2008). "Biometric Security Using Finger Print Recognition". University of California, San Diego. p. 3..
[2] Keming Mao, Zhiliang Zhu, Huiyan Jiang, ―A Fast Fingerprint Image Enhancement Method‖, Third International Joint Conference on Computational Science and Optimization, IEEE, 2010.
[3] Patil, Ashwini R, Zaveri, Mukesh A. ―A Novel Approach for Fingerprint Matching Using Minutiae‖, Mathematical/Analytical Modelling and Computer Simulation (AMS), 2010 Fourth Asia International Conference, 26-28 May 2010. [4] D. Maltoni, D. Maio, A.K. Jain, S. Prabhakar, Handbook of Fingerprint Recognition, Springer, New York, Springer Professional Computing, 2009.
[5] Robert Muller, User requirement document, 2011. [6] Sea Solution, Fingerprint Software Design, 2/2012.
[7] Information Technology — Biometric data interchange Formats — Part 2: Finger minutiae data ISO/IEC 19794-2:2005.
[8] Data Sheet - 3D TouchPrint - Optical Fingerprint Recognition USB Module KIA U- 5110 B3, version 1.1, 2011.
[9] Programmer’s Guide for Fingerprint’s SDK, 3D TouchPrint® Optical Fingerprint USB Module KGTU- 5510 A/B, version 1.2, 2011.
[10] User’s Manual for Fingerprint’s SDK - 3D TouchPrint® - Optical Fingerprint USB Module KGTU-5110A, version 1.0, 2011.
[11] Papoulis and Pillai.Probability, Random Variables and Stochastic processes. Mc Graw Hill, 2002. 4th edition.
[12] L. Hong, Y. Wang, and A. K. Jain. Fingerprint image enhancement: Algorithm and performance evaluation.Transactions onPAMI, 21(4):777–789, August 1998. [13] N. Otsu. A threshold selection method from gray level histograms.IEEE Transactions on Systems, Man and Cybernetics,9:62–66, 1979.
[14] Sonka, Hlavac, and Boyle.Image Processing, Analysis and Machine Vision, second edition. Thomson Asia, 2004.
[15] INGERPRINT IMAGE ENHANCEMENT USING STFT ANALYSISSharat S. Chikkerur, Alexander N. Cartwright and Venu Govindaraju
[16] A. Ravishankar Rao.A Taxonomy of Texture Descriptions. Springer Verlag. [17] B.G.Sherlock, D.M.Monro, and K.Millard. Fingerprint enhancement by directional fourier filtering. InVisual Image Signal Processing, volume 141, pages 87– 94, 1994.
[18] C. I. Watson, G. T. Candela, and P. J. Grother. Comparison of fft fingerprint filtering methods for neural network classification.NISTIR, 5493, 1994.
[19] L. Hong, Y. Wang, and A. K. Jain. Fingerprint image enhancement: Algorithm and performance evaluation.Transactions onPAMI, 21(4):777–789, August 1998. [20] C. Wilson et al. ―Fingerprint Vendor Technology Evaluation 2003: Summary of
Tiếng Việt:
[21] Nguyễn Đức Huân (2006), Nghiên cứu và phát triển ứng dụng nhận dạng vân tay, Khóa luận tốt nghiệp đại học, Trường Đại Học Công Nghệ, Đại
học Quốc Gia Hà Nội, tr.7-9.
Internet
[22] Sharat Chikkerur, https://sites.google.com/site/sharatchikkerur/code, Jan 21, 2009, 3:52 PM.
PHỤ LỤC
Phụ lục 1: Các thuật toán sử dụng đối với bộ lọc Gabor
1. Giảm nhiễu Sensor
Function SubstractNoise
Input:
BYTE *inImg: pointer to the input image buffer BYTE *noiseImg: pointer to the noise buffer
Output:
BYTE *oImg: pointer to the result image buffer
Params:
BYTE pNoiseGray: a parameter to increase the image histogram, default=64
Begin
for (each pixel i in inImg)
oImg[i] = (BYTE)(inImg[i] - noiseImg[i] + pNoiseGray;
End
2. Tăng độ tương phản
Function BoostImgContrast
Input:
BYTE *inImg: pointer to the input image buffer
Output:
BYTE *oImg: pointer to the result image buffer
Begin
Compute the gray min & max value of all inImg pixels;
for (each pixel inImg[i])
oImg[i] = (inImg[i] - min) * 255 / (max - min);
End
3. Phân mảnh và chuẩn hóa ảnh
Function SegmentNormImg
BYTE *inImg: pointer to the input image buffer
Output:
BYTE * segImg: pointer to the result image buffer
Params:
BYTE pSegWin ;// window size of block for segmentation, default =16
BYTE pSegThreshold ;//threshold to separate
background/foreground; default = 90
Begin
Compute the gray min & max value of all inImg pixels;
for (j,i are the first row/col in each block k of inImg){ Compute the mean gray value Mk of current block k; Compute the variance Vk of current block k;
If (Vk > pSegThreshold){ // foreground
Normalize all pixels in current block Bk;
Change the last bit of all pixels of Bk to 1 (that means the ROI)
}else{//background
Change the last bit of all pixels of Bk to 0; } } End 4. Lọc Gabor Function FilterGabor Input:
BYTE * norImg: pointer to the segmented&normalized image buffer
Output:
int *filteredImg: pointer to the result image buffer after filter
Params:
BYTE pOrientWin;// window size for orientation estimation; default=8
BYTE pFixFreq;//fix frequency constant; default = 19 BYTE pGaborWin;// window size for Gabor filter; default = 9
Begin
Estimate the orientation of each image blocks (no-overlap) sized
of pOrientWin;
For each pixel P(i,j)
If P(i,j) is background, filteredImg(i,j)=0; Else{
Get the orientation O of current pixel (0-1800); Get the frequency F of current pixel (=pFixFreq); Compute the sum H of Gabor filter for all pixels in
block centered at i,j; sized of pGaborWin;
filteredImg[pos] = (int)H | 1; //assume this is in foreground
} }
End
Phục lục 2: các thuật toán sử dụng đối với bộ lọc STFT
1. Xác định hướng đường vân
function [gimg,oimg] = orientation_image_rao(x) %--- %parameters %--- alpha = 0.3; N = 16; %--- %smoothen the image
%---
msk = fspecial('gaussian',7);
x = imfilter(x,msk,'symmetric','same'); x = pseudo_matched_filter(x,alpha);
%--- %obtain gradient image
%--- hy = -fspecial('sobel') hx = transpose(hy);
gx = imfilter(x,hx,'symmetric','same'); gy = imfilter(x,hy,'symmetric','same');
gmag = sqrt(gx.^2+gy.^2); theta = atan(gy./(gx+1e-5)); %--- %perform averaging %--- oimg = []; gimg = []; [h,w] = size(x); for ii=1:N:h-N+1 oln = []; gln = []; for jj=1:N:w-N+1 a = theta(ii:ii+N-1,jj:jj+N-1); g = gmag(ii:ii+N-1,jj:jj+N-1).^2; %--- %vector averaging %--- num = sum(sum(g.*sin(2*a))); den = sum(sum(g.*cos(2*a))); t = atan2(num,(den+1e-5)); t(t<0) = t(t<0)+2*pi; t = 0.5*t; %convert to [0,pi] g = sum(sum(g)); oln = [oln,t]; gln = [gln,g]; end; gimg = [gimg;gln]; oimg = [oimg;oln]; end; %--- %smoothen the orientation image %--- for i = 1:3
oimg = smoothen_orientation_image(oimg); end;
%end function orientation_image
2. Xác địnhtần số ảnh
smoothen_frequency_image(fimg,RLOW,RHIGH,diff_cycles)
valid_nbrs = 3; %uses only pixels with more then valid_nbrs for diffusion [ht,wt] = size(fimg); nfimg = fimg; N = 1; %--- %perform diffusion %--- h = fspecial('gaussian',2*N+1); cycles = 0;
invalid_cnt = sum(sum(fimg<RLOW | fimg>RHIGH));
while((invalid_cnt>0 &cycles < diff_cycles) | cycles <diff_cycles)
%--- %pad the image %---
fimg = [flipud(fimg(1:N,:));fimg;flipud(fimg(ht- N+1:ht,:))]; %pad the rows
fimg = [fliplr(fimg(:,1:N)),fimg,fliplr(fimg(:,wt- N+1:wt))]; %pad the cols
%--- %perform diffusion %--- for i=N+1:ht+N for j = N+1:wt+N blk = fimg(i-N:i+N,j-N:j+N); msk = (blk>=RLOW & blk<=RHIGH); if(sum(sum(msk))>=valid_nbrs) blk =blk.*msk; nfimg(i-N,j-
N)=sum(sum(blk.*h))/sum(sum(h.*msk)); else
nfimg(i-N,j-N)=-1; %invalid value end;
end; end;
%prepare for next iteration %---
fimg = nfimg;
invalid_cnt = sum(sum(fimg<RLOW | fimg>RHIGH)); cycles = cycles+1;
cycles
3. Nâng cao chất lượng ảnh
function [cimg] = compute_coherence(oimg) [h,w] = size(oimg);
cimg = zeros(h,w); N = 2;
%--- %pad the image %---
oimg = [flipud(oimg(1:N,:));oimg;flipud(oimg(h- N+1:h,:))]; %pad the rows
oimg = [fliplr(oimg(:,1:N)),oimg,fliplr(oimg(:,w- N+1:w))]; %pad the cols
%compute coherence for i=N+1:h+N for j = N+1:w+N th = oimg(i,j); blk = oimg(i-N:i+N,j-N:j+N); cimg(i-N,j-N)=sum(sum(abs(cos(blk- th))))/((2*N+1).^2); end; end;