Sử dụng lọc Gabor và biến đổi Fourier trong bộ lọc STFT là hai nền tảng chính để thực hiện tăng cường ảnh trong xử lý ảnh vân tay. Ảnh sau khi đã được tăng cường chất lượng bằng biểu đồ cân bằng, thực hiện bước kế tiếp là tăng cường ảnh bằng thuật toán biến đổi Fourier [1, 8, 9, 10]. So với các phương pháp trên cơ sở lọc Gabor, nó lợi thế hơn ở chỗ không yêu cầu việc tính toán chính xác định hướng cục bộ của đường vân và tần số vân tay, phục vụ cho mục đích tìm ra các đặc trưng để so khớp trong giai đoạn cuối của hệ thống nhận dạng. Từ kết quả thực nghiệm của Kovesi trong [20] cho thấy rằng kết quả của bộ lọc STFT tốt hơn hẳn so với bộ lọc Gabor và bộ lọc gốc, có thể do việc tính toán đồng thời các thành phần (tần số ảnh, hướng đường vân, mặt nạ) khi thực
sự định hướng đường vân sinh ra cách xác định tần số ảnh dẫn đến việc thiết lập cấu trúc đường vân không hoàn hảo.
a) Ảnh gốc có chất lượng kém;
b) Ảnh được nâng cao chất lượng bằng bộ lọc gốc;
c) Ảnh được nâng cao chất lượng bằng bộ lọc Gabor;
d) Ảnh được nâng cao chất lượng bằng bộ lọc STFT.
Chƣơng 3.CẢI THIỆN TỐC ĐỘ NÂNG CAO CHẤT LƢỢNG ẢNH VÂN TAY VÀ THỰC NGHIỆM
3.1. Giới thiệu
Luận văn tập trung đến việc cải thiện, nâng cao tốc độ quá trình trích rút đặc trưng vân tay, cụ thể ở bước nâng cao chất lượng ảnh vân tay, với hai kỹ thuật sử dụng bộ lọc Gabor và bộ lọc STFT cùng với một số kỹ năng tính toán khác đã có thể cải thiện được tốc độ của quá trình nhận dạng khá hiệu quả. Để cải tiến với bộ lọc Gabor, tôi đã nghiên cứu và ứng dụng kết quả bộ công cụ phát triển SDK về nhận dạng vân tay được phát triển trong bộ môn Các hệ thống thông tin – trường đại học Công nghệ. Bộ thư viện SDK này được viết trên môi trường Visual C++, bao gồm cả hai loại định danh và kiểm tra vân tay. Việc đề xuất cải tiến để nâng cao tốc độ thi hành của quá trình trích rút đặc trưng vân tay đối với bộ lọc Gabor trong mô hình này đã thu được kết quả nhất định. Đối với bộ lọc STFT, việc cải tiến dựa mã nguồn viết trên Matlab của Sharat Chikkerur [22]. Quá trình cải tiến dựa trên việc phân tích và tính toán đối với từng bộ lọc, qua đó tôi đề xuất hai phương pháp thực hiện sau: Phương pháp xấp xỉ và kĩ thuật tính toán trung gian.
3.1.1. Phƣơng pháp xấp xỉ
Phương pháp tính xấp xỉ thường được dùng trong các ngành toán học tính toán, liên quan tới việc xây dựng và áp dụng các phương pháp khác nhau để thu được những kết quả bằng số gần đúng cho các bài toán, nhưng lại giảm được khá hiệu quả thời gian và độ phức tạp trong tính toán. Có nhiều loại phương pháp tính xấp xỉ, cụ thể có thể chia thành các nhóm sau:
i) Phương pháp tính xấp xỉ các giá trị của một hàm số hoặc một biểu thức nào đó;
ii) Phương pháp tính xấp xỉ để tính tích phân các hàm số;
iii) Phương pháp tính xấp xỉ để giải các phương trình và hệ phương trình đại số, siêu việt;
Trong đề xuất cải tiến, tôi sử dụng phương pháp tính xấp xỉ loại (i) để tính xấp xỉ giá trị các hàm sin(x) và cos(x) đối với bộ lọc Gabor và STFT.
Hướng cải tiến chỉ tập trung thực hiện tính toán chỉ với những góc định hướng đường vân có giá trị lớn hơn 40 , và các bước thực hiện tính toán đối với các góc có giá trị từ 0 đến (180/GABOR_STEP_ANGLE)+1), với GABOR_STEP_ANGLE được đề nghị là 4, nhưng vẫn không ảnh hướng tới bản chất của thuật toán và cấu trúc các đường vân tay. Mặt khác, tần số đường vân còn được coi là số điểm ảnh giữa hai được vân, tần số được đề xuất trong thuật toán cải tiến là từ 0 đến 25, đề xuất này đã được đánh giá qua quá trình thực nghiệm và cũng đã giảm đáng kể thời gian truy xuất và tốc độ thi hành của thuật toán mà bản chất của thuật toán không thay đổi.
3.1.2. Kĩ thuật giảm tính toán trung gian
Để giảm thời gian tính toán đối vơi hai bộ lọc, kỹ thuật giảm tính toán trung gian được áp dụng qua việc thực hiện tính toán tất cả các giá trị có thể tính được của sin/cos của các góc từ 0 đến 3600 được tính trước và lưu trữ trong hai mảng tĩnh sinT, cosT. Hơn nữa các giá trị Sin(x), Cos(x) trong thư viện toán học là kết quả của việc tính giá trị của biểu thức Talor, có độ phức tạp tính toán cao, mỗi hàm khi cần tính giá trị sin/cos cần đưa lời gọi hàm để xác định giá trị các biểu thức Talor này. Do đó, thời gian thực hiện theo phương pháp cũ là không tối ưu. Thay vào đó, tôi đưa ra giải pháp lưu các giá trị trị sin/cos vào hai mảng tĩnh sinT/ cosT, mỗi lần cần tính giá trị chỉ cần truyền tham số tới mảng tĩnh này. Đối với bộ lọc STFT, do trong Matlab chỉ số mảng được bắt đầu từ 1, nên khi cần xác định giá trị của góc i, thì giá trị của nó nằm ở cột thứ i+1, nghĩa là ta phải gọi sinT[i+1], cosT[i+1].
Các góc được tính trước nằm trong phạm vi từ 0 đến 3600. sinT[i]=(float)sin((double)i*PI/180.0);
cosT[i]=(float)cos((double)i*PI/180.0).
Đối với giá trị của bộ lọc Gabor, tính trước giá trị có thể của mảng 4 chiều Exp[x][y][o][f], các tham số được cải tiến tối ưu nhất có thể, các giá trị này
được tính toán và lưu hết vào mảng gabor
Exp[15][15][(180/GABOR_STEP_ANGLE)+1][25].
Vẫn tư tưởng đó, đối với bộ lọc STFT, việc thực hiện trên Matlab cũng dễ dàng hơn. Tôi tạo một mảng a có giá trị từ [0..360], việc tính trước các giá trị của mảng sinT/cosT được thực hiện như sau:
sinT=sin(a*pi/180); cosT=cos(a*pi/180);
Khi cần tính giá trị của bộ lọc ứng với từng tham số có được, chỉ cần truyền vào mảng để xác định giá trị đó, do đó thời gian truy xuất sẽ nhanh hơn.
3.2. Môi trƣờng thử nghiệm
- Cải tiến đối với bộ lọc STFT: Các thử nghiệm được viết bằng ngôn ngữ Matlap.Về mặt xử lý tín hiệu nói chung và xử lý ảnh nói riêng, Matlab là công cụ rất mạnh. Hầu hết các thuật toán về ảnh và xử lý ảnh đều đã được thể hiện trong các hàm của Matlab như các hàm đọc, ghi ảnh, chuyển đổi giữa các hệ màu của ảnh, các thuật toán phát hiện biên, tách đối tượng, khớp mẫu, các phép biến đổi ảnh như xoay ảnh, chuẩn kích thước, tịnh tiến... Các thư viện ngày càng được mở rộng, các hàm ứng dụng có thể được lập bởi người sử dụng. Ứng dụng phần mềm Matlab trong xử lý ảnh sẽ có được nhiều tiện ích và trợ giúp. Câu lệnh Matlab được viết rất gần với các thuật ngữ mô tả kỹ thuật, câu lệnh ngắn gọn và dễ dàng tra cứu. Các chương trình có sử dụng một một số thư viện của Matlab (chủ yếu trong Image Processing Toolbox, Statistics Toolbox). - Cải tiến đối với bộ lọc Gabor: Các thử nghiệm được viết bằng ngôn ngữ C++, trên hệ điều hành win7-32 bit. Đây là một ngôn ngữ rất mạnh với thư viện toán học phong phú, thích hợp cho tính toán và các thao tác xử lý ảnh.
Bảng các công cụ thử nghiệm
1 Tên phần mềm, công
cụ sử dụng Nguồn cung cấp
2 Bộ SDK nhận dạng vân tay Bộ môn Các hệ thống thông tin
3
Mã nguồn mở nâng cao chất lượng vân tay
STFT ngôn ngữ Matlab
https://sites.google.com/site/sharatchikkerur/code.
4 Phần cứng
Hệ điều hành Win 7-32 bit, CPU Core i3 – M370 2.4GHz, Ram 2GHz.
3.3. Dữ liệu thử nghiệm
vào thư mục KoehlkDB. Trong quá trình thực hiện, tôi thi hành với 94 ảnh đầu vào bất kì trong tập dữ liệu trên, kết quả thu được là khá hiệu quả đối với phương pháp cải tiến của mình. Đối với bộ lọc STFT, do hạn chế về cách thức đọc ảnh vào để xử lý, nên tôi đã sử dụng 20 ảnh ngẫu nhiên từ tập 400 ảnh trên.
3.4. Kết quả thử nghiệm
3.4.1. Kết quả trực quan
Tôi đã tiến hành hai bước thử nghiệm độc lập, với đầu vào là ảnh vân tay, đầu ra là ảnh đã được nâng cao chất lượng, và có được kết quả như sau trực quan như sau:
- Đối với bộ lọc STFT:
a) Trước khi cải tiến b) Sau khi cải tiến
- Đối với bộ lọc Gabor:
a) Trước khi cải tiến b) Sau khi cải tiến
Hình 3. 2 Kết quả cải tiến trên bộ lọc Gabor.
Qua hình 3.1 và hình 3.2 ta thấy rằng, bằng trực quan thì kết quả nhận dạng là như nhau đối với cả hai bộ lọc, chỉ khác nhau về thời gian cải tiến.
3.4.2. Kết quả cải tiến trên bộ lọc Gabor.
Thực hiện nâng cao chất lượng với tập dữ liệu là 94 ảnh đầu vào, đối với bộ lọc Gabor kết thu được như hình 3.3. Đường màu xanh thể hiện thời gian khi chưa cải tiến, đường mầu đỏ là kết quả của việc cải tiến bộ lọc Gabor, tốc độ được cải tiến trong quá trình nâng cao chất lượng cũng như trích chọn đặc trưng là khá đáng kể.
Hình 3. 3Kết quả cải tiến đối với bộ lọc Gabor
3.4.3. Kết quả cải tiến với bộ lọc STFT
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
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;