Vân tay có thể lưu trữ theo hai cách: trên giấy (giấy thường, giấy ảnh...) hoặc file ảnh. Đối với cách thứ nhất vẫn còn được ứng dụng trong giám định, định danh hình sự (các bằng chứng về dấu tay tội phạm cần được thể hiện bằng ảnh in trên giấy). Cách thứ hai được ứng dụng phổ biến trong nhận dạng nói chung và ngày càng chiếm được nhiều ưu thế (có thể lưu trữ, tìm kiếm thuận tiện). Luận văn này tập trung đến hình thức lưu trữ ảnh theo file.
Hình 3.2. Các loại vân tay
a) Vân tay latent; b) Vân tay lăn mực; c) Vân tay trong Db2b-FVC2000 Có nhiều định dạng ảnh vân tay khác nhau, phổ biến hơn cả là: jpeg, bmp, tif, gif, png,... Các thông số ảnh bao gồm: độ rộng của ảnh, độ phân giải, số bit dành cho một pixel, độ chính xác hình học, méo,... Khi thiết kế hệ thống nhận dạng vân tay, các thông số ảnh thông thường được quy chuẩn theo giải giá trị nào đó sao cho phù hợp với hệ thống. Hệ thống nhận dạng vân tay bằng ảnh số, ảnh số là đại lượng đầu vào nên hai thông số quan tâm hơn cả: kích thước và độ phân giải.
Như đã trình bày ở trên, luận văn này sử dụng dữ liệu ảnh FVC2000 để tạo cơ sở dữ liệu hệ thống nhận dạng và kiểm tra kết quả nhận dạng. Các mẫu vân tay lưu theo file ảnh, có phần mở rộng .tif, kích thước của ảnh 364 x 256 pixel. Mỗi mẫu vân tay gồm bảy ảnh khác nhau và được lưu tên theo quy ước xx_y. Trong đó xx là chỉ số về thứ tự của bộ mẫu (còn gọi là chỉ bản) trong tập
dữ liệu ảnh, y là thứ tự của ảnh trong một bộ mẫu. Bộ mẫu sẽ được chia làm hai: một phần dùng để thực hiện trích chọn và tạo mã cho vân tay thông qua các thuật toán xử lý ảnh (mục đích cuối là tạo ra các template xây dựng cơ sở dữ liệu); phần còn lại dùng để kiểm tra, đánh giá thuật toán xử lý.
3.3.Thiết kế thuật toán
3.3.1.Thuật toán trích chọn đặc trƣng
Luận văn này được thiết kế bằng cách chia nhỏ các công đoạn chính trên thành các mô-đun nhỏ hơn. Hướng chung là chọn các phương pháp mà có thể tận dụng được các mô-đun chương trình ở công đoạn này và áp dụng được cho công đoạn khác. Nhưng các phương pháp lựa chọn phải đạt yêu cầu cho bài toán nhận dạng cuối cùng. Vì vậy, tạo tính mở cho hệ thống và tiết kiệm thời gian thiết kế.
Hình 3.3. Sơ đồ thuật toán trích chọn đặc trưng
Với sơ đồ này thấy rằng, trích chọn đặc trưng thực hiện qua 8 khâu. · Khối tiền xử lý ảnh thực hiện chuẩn hóa kích thước ảnh.
· Khối tăng cường chất lượng ảnh thực hiện làm nổi rõ đường vân. · Khối orientation image thực hiện ước lượng trường định hướng.
· Khối segmentation (khoanh vùng ảnh vân tay) thực hiện tách vùng ảnh cần quan tâm nhiều trong xử lý trích chọn đặc tính.
· Khối tạo ridge map (ảnh nhị phân với đường vân có giá trị logic 1).
· Khối làm mảnh đường vân. Đường vân làm mảnh tới độ rộng đồng nhất một pixel từ ridge map.
· Khối hiệu chỉnh đường vân và lọc minutiae sai cấp một. Đường vân sẽ được làm “trơn”, minutiae sai kiểu lake (dạng hình xuyến nhỏ), dạng điểm, chẽ ngắn, đoạn vân ngắn sẽ loại bỏ.
· Lọc minutiae sai cấp hai và tạo mã vân tay bằng minutiae. Kết thúc khâu này các template sẽ được tạo ra.
3.3.1.1. Chuẩn hóa ảnh đầu vào
Chuẩn hóa ảnh đầu vào là bước cần thiết trước khi vào bước tiền xử lý ảnh. Do ảnh dùng cho trích trọn đặc tính có thể không phù hợp về kích thước cũng như phân bố mức xám. Trong luận văn, giai đoạn này gồm: chuẩn hóa kích thước ảnh và đồng đều hóa cường độ sáng giữa các ảnh đầu vào khác nhau.
* Chuẩn hóa kích thƣớc ảnh
Ảnh chuẩn đầu vào có kích thước 364 x 256 pixel. Các thuật toán xử lý ảnh vân tay về sau thường áp dụng cho từng block vuông trên ảnh (thường sử dụng các block vuông cạnh 16 pixel, 32 pixel,…). Nên kích thước ảnh chuẩn hóa hợp lý hơn là 352x256 pixel. Để thực hiện điều này sẽ “cắt” đi vùng dữ liệu ảnh kích thước 12 x256 pixel. Phần này cũng không ảnh hưởng quá nhiều tới kết quả nhận dạng cuối cùng vì đối với bộ dữ liệu đã chọn, các vùng ảnh ở gần khung thường đóng vai trò làm background.
Hàm thực hiện chuẩn hóa kích thước ảnh đầu vào là norsizfv. gns = norsizfv(g, bs),
Trong đó:
g : ảnh số đầu vào có kích thước cần được chuẩn hóa,
bs : kích thước của block mà ảnh đầu ra sẽ được làm tròn theo, gns : ảnh đầu ra có kích thước đã chuẩn hóa.
* Cân bằng cƣờng độ sáng của ảnh
Do điều kiện thu thập ảnh khác nhau với mỗi lần lấy mẫu vân tay; do kỹ thuật thu nhận ảnh (sử dụng sensor, scanner,…) khác nhau nên độ sáng ảnh vân tay không đồng nhất. Vì vậy cần làm đồng đều cường độ sáng của các ảnh vân tay trong bộ dữ liệu. Phương pháp thực hiện: dùng một ảnh mẫu có cường độ
sáng đồng đều, rồi chuẩn hóa độ sáng của các ảnh khác theo ảnh này bằng bình phương cực tiểu. Trong luận văn sử dụng ảnh có cùng kích thước cường độ sáng các điểm ảnh [5], I(ij)= 128 (là mức xám trung trung bình trong 255 mức).
* Hàm thực hiện cân bằng cƣờng độ sáng của ảnh là briequfv
gbb = briequfv(g,ref) Trong đó:
g : ảnh số đầu vào cần được chuẩn hóa cường độ sáng, ref : ảnh số làm mẫu,
gbb : ảnh đầu ra có cường độ sáng gần với ảnh mẫu.
3.3.1.2. Tăng cƣờng chất lƣợng ảnh
Thu nhận ảnh không phải lúc nào cũng cho những ảnh với chất lượng tốt. Tăng cường ảnh sẽ giúp cải thiện chất lượng ảnh trước khi thực hiện các thuật toán xử lý ảnh tiếp theo nhằm gia tăng hiệu quả xử lý. Hai thuật toán sử dụng để tăng cường chất lượng ảnh ở đây là: histogram equalization (cân bằng lược đồ xám) và biến đổi Fourier rời rạc [8], tr. 104-113
Hình 3.4. Tăng cường ảnh
a) Ảnh ban đầu; b) Ảnh sau cân bằng histogram; c) Ảnh sau biến đổi Fourier rời rạc
Histogram của ảnh xám là một biểu đồ thể hiện quan hệ giữa cường độ ảnh và số pixel có cùng cường độ ảnh đó. Cân bằng histogram sẽ làm đồng đều cường độ sáng trong ảnh đó.
Hàm thực hiện tăng cường ảnh bằng cân bằng lược đồ xám là hisequfv. ghe = hisequfv(g),
Trong đó:
g : ảnh số đầu vào,
ghe : ảnh đầu ra đã được tằng cường bằng cân bằng lược đồ xám.
* Tăng cƣờng ảnh bằng biến đổi Fourier-2D
Sử dụng lọc Gabor và biến đổi Fourier 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 histogram equalization, 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 [5, 10, 11, 12].
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 cuối công đoạn tạo ridge-map.
Công thức tính toán cho thuật toán tăng cường ảnh bằng biến đổi Fourier rời rạc có dạng như sau:
k enh F F I x y F I x y I 1 , , . Trong đó: k : hệ số mũ của phổ Fourier, |F(I[x,y])|: phổ Fourier.
Luận văn thực hiện tăng cường chất lượng ảnh bằng biến đổi Fourier rời rạc cho từng block có kích thước 3232 pixel. Theo cách này, các thành phần ảnh có tần số trội sẽ được giữ lại, đó là các vùng ảnh thể hiện làm đường vân. Ảnh sau biến đổi Fourier rời rạc có các đường vân “nổi” hơn, sự phân tách giữa các đường vân cũng thể hiện rõ ràng hơn. Đồng thời các vùng ảnh nhiễu sẽ loại bớt đi.
Số mũ của phổ Fourier, k đóng vai trò làm hệ số điều chỉnh. Trong [5], nên đặt k = 0,6 khi tính toán với kích thước block như trên. Tuy nhiên, trong quá trình thực hiện, đặt k = 0,35 thì cho kết quả tốt hơn so với việc chọn giá trị khác. Vì phổ Fourier đóng vai trò làm hàm lọc, do đó: k càng nhỏ hàm lọc tiến tới 1 (ảnh gốc và ảnh sau khi tăng cường không khác nhau nhiều); với k lớn, các đoạn vân cục bộ có thể bị biến dạng không còn khả năng xử lý cho công đoạn tiếp nữa.
Hàm thực hiện tăng cường ảnh bằng biến đổi Fourier rời rạc là fouenhfv. gfe = fouenhfv(g,k)
Trong đó:
g : ảnh số đầu vào, k : hệ số,
gfe : ảnh đầu ra đã được tăng cường bằng biến đổi Fourier.
3.3.1.3. Ƣớc lƣợng orientation image và khoanh vùng ảnh vân tay
Trong phần này sẽ trình bày các ước lượng định hướng vân tay cục bộ. Việc này để chọn các thông số thích hợp để lọc ảnh về sau (lọc nhiễu, khoanh vùng ảnh...). Vì orientation image (trường định hướng) mang tính mô tả góc định hướng đường vân, nên kết quả này còn được áp dụng để phân loại kiểu vân tay (quyết định bởi sự tạo hình của các đường vân).
* Ƣớc lƣợng orientation image
Trường định hướng thể hiện bản chất tự nhiên của đường vân và các rãnh đường vân. Trường định hướng cung cấp nhiều thông tin quan trọng cho các bước xử lý tiếp theo. Phần này sẽ trình bày về ước lượng orientation image D, phần tử định hướng ij (tương ứng với nó là góc định hướng ij và mô-đun định hướng). Có sự phân biệt khác nhau giữa các thuật ngữ mô tả phần tử định hướng orientation (có ij [0, ] ), direction (có ij [0, 2]) khi tính toán trường định hướng [5].
Nguyên lý thực hiện tính định hướng: chia ảnh thành các khối ww , sau đó khảo sát lần lượt định hướng cục bộ của đường vân trong từng khối đó. Orientation image sẽ được ước lượng bằng phương pháp Gradient [6, 7]
Hình 3.5. Ước lượng orientation image
a) Ảnh vân tay ban đầu; b) Orientation image tương ứng
Các công thức tính toán: 2 2 2 2 , , 2 , w i w i u w j w j v y x n i j g u v g u v G 2 2 2 2 2 2 , , , w i w i u w j w j v y x d i j g u v g u v G j i G j i G arctg j i d n , , 2 1 ,
Ở đây: gx(i,j), gy(i,j) là các gradient tại ( i,j) theo các trục x, y và tính bằng toán tử Sobel [8, 9].
[iD, iC, DF] = oriimafv(g,bs), Trong đó:
g: ảnh số đầu vào,
bs: kích thước block vuông ước lượng định hướng, iD: ma trận lưu đính hướng của mỗi block,
iC: ma trận lưu level-certenty của mỗi block,
DF: ma trận lưu định hướng và tọa độ tâm của mỗi block.
* Khoanh vùng ảnh vân tay
Khoanh vùng ảnh vân tay nhằm mục đích phân chia các vùng khác nhau trên ảnh vân tay. Ở đây, chúng ta quan tâm đến foreground/background (ảnh nền và ảnh trên nền) cùng với biên ảnh vân tay. Trong nhận dạng vân tay, vùng ảnh mang thông tin hữu ích giới hạn bởi vùng có các đường vân (đóng vai trò làm foreground). Vùng ảnh còn lại thường là các nhiễu tạo ra trong quá trình thu nhận, sao chép, lưu trữ ảnh… (đóng vai trò làm background) cần được tách ra khỏi foreground. Khoanh vùng ảnh vân tay nằm trong nhóm thuật toán segmentation. Tổng quát, nó dựa vào hai tính chất của ảnh số liên quan đến cường độ sáng để thực hiện, đó là: sự không liên tục và sự tương tự nhau [6].
Ảnh vân tay trong luận văn sẽ khoanh vùng lấy vùng hữu ích dựa vào cả hai tính chất kể trên. Tiêu chí đánh giá là certainty level (một giá trị thể hiện sự biến thiên của cường độ sáng theo các đường vân). Theo cách này vùng ảnh đóng vai trò background và foreground được phân tách nhờ một ngưỡng đặt trước [5].
Công thức tính certainty level cho từng block kích thước ww, trọng tâm tương ứng của block có tọa độ [ i,j] như sau:
j i G j i G j i G w w j i C s d n , , . 1 , 2 2
Một ngưỡng Tc được đặt ra và block đó định nghĩa làm · background nếu C(i,j) < Tc ,
Phương pháp này có lợi thế là kế thừa được các kết quả tính toán trong phần ước lượng orientation image.
Hình 3.6. Khoanh vùng ảnh vân tay
a)Ảnh ban đầu; b) Variance field; c) Ảnh đã khoanh vùng đường vân. Hàm thực hiện khoanh vùng ảnh có các đường vân tay là segimafv.
area = segimafv(iC,k), Trong đó:
iC: ma trận lưu giá trị level-certenty cục bộ, bs: kích thước block,
area: vùng ảnh vân tay đã được khoanh.
3.3.1.4. Trích chọn đặc trƣng
Giai đoạn này bao gồm: nhị phân hóa ảnh bằng thuật toán local threshold với ảnh đã được tăng cường kết hợp với kết quả khoanh vùng ảnh vân tay ở phần trên; sau đó với ảnh có các đường vân đã được làm mảnh đến độ rộng một pixel thì thực hiện tìm minutiae bằng thuật toán crossing number [5], ch. 4.
Hình 3.7. Thông số của hai dạng minutiae quan trọng a) Bifurcation; b) Termination.
* Nhị phân hóa và làm mảnh đƣờng vân
Sau tăng cường ảnh bằng biến đổi Fourier rời rạc, đường vân tây đã nổi rõ hơn so với ảnh ban đầu. Đây là lúc sử dụng thuật toán local threshold chuyển đổi ảnh xám đã tăng cường chất lượng đó thành ảnh đen trắng.
Hình 3.8. Nhị phân hóa và làm mảnh đường vân a) Ridge-map; b)Thinned ridge-map
Kích thước cửa sổ 32x32 pixel trong biến đổi Fourier rời rạc thì kích thước block cho phân ngưỡng cục bộ có thể là: 32x32, 32x16, 16x16, 16x8 pixel… Thử nghiệm với block 16x16 pixel thì cho kết quả tốt hơn (các đường vân tách biệt rõ ràng hơn). Ảnh này tiếp tục được làm mảnh bằng thuật toán morphology cho ảnh đen trắng sau cùng với đường vân thể hiện bằng đường màu trắng (giá trị logic 1) có độ rộng đồng nhất một pixel.
Hàm thực hiện nhị phân hóa ảnh vân tay là locthrfv. glt = locthrfv(g,bs,adj), Trong đó: g: ảnh đầu vào, bs: kích thước block, adj: hệ số hiệu chỉnh,
glt: ảnh đầu ra đã được nhị phân hóa.
* Phát hiện điểm đặc trƣng
Vân tay sau khi đã làm mảnh có thể bắt đầu tìm các điểm đặc trưng. Thuật toán dùng để phát hiện đặc trưng sử dụng trong luận văn là crossing number. Nó dùng một cửa sổ kích thước 3x3 pixel, lấy tất cả các điểm ảnh trong cửa sổ, sau đó khảo sát giá trị logic của các điểm ảnh xung quanh điểm ảnh [i,j] ở chính giữa cửa sổ đó.
Tùy vào kết quả tính toán của biểu thức crossing number thì kết luận rằng: điểm [i,j] đang xét là một điểm phân nhánh, điểm cụt hay đang nằm trên một đường vân.
Công thức tính như sau:
8 1 1 8 mod 2 1 i i i val p p val p cn
Ảnh sử dụng phát hiện các đặc trưng phải là ảnh nhị phân, do đó val(p){0,1}. Các biến p1, p2,.., p7 thứ tự tạo thành các điểm lân cận điểm giữa cửa sổ đang khảo sát xét theo một chiều thuận hoặc ngược kim đồng hồ.
Khi đó định nghĩa điểm [ i,j] đang xét là: · trên đường vân nếu cp(n) = 2,
· termination minutiae nếu cn(p) = 1, · bifurcation minutiae nếu cn(p) = 3.
Thuật toán tìm kiếm và giá trị crossing number có vai trò quan trọng. Không những được dùng trong việc phát hiện minutiae mà nó còn giúp loại bỏ các minutiae sai (được cho là nhiễu).
Hình 3.9. Phát hiện đặc trưng
a), b) pixel trên đường vân; c) bifurcation minutiae; d) termination minutiae.
Hàm thực hiện phát hiện minutiae là finminfv. [ter, bif] = finminfv(g), Trong đó:
g : ảnh đầu vào có độ rộng đường vân một pixel, ter : ma-trận lưu tọa độ của termination minutia, bif : ma-trận lưu tọa độ của bifurcation minutia.
* Ƣớc lƣợng khoảng cách đƣờng vân
Vân tay trên ngón tay không giống nhau giữa mỗi người. Ngay cả trường hợp ở một người, các đường vân cũng thể hiện sự khác biệt trên từng ngón tay. Do vậy, ước lượng khoảng các đường vân được hiểu là dải giá trị trung bình khoảng cách giữa hai đường vân song song và gần nhau. Đây là