Chuẩn hóa kích thước ảnh

Một phần của tài liệu Đề tài “Thiết kế hệ thống nhận dạng vân tay từ ảnh số” potx (Trang 38 - 71)

6. Trích chọn minutiae cho đối sánh vân tay

6.1.1.Chuẩn hóa kích thước ảnh

Ảnh chuẩn đầu vào có kích thước 364´256 pixel. Các thuật toán xử lý ảnh vân tay về sau thường áp dụng cho từng 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à 352´256 pixel. Để thực hiện điều này sẽ “cắt” đi vùng dữ liệu ảnh kích thước 12 256´ 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.

6.1.2. 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 gần 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 đồ án sử dụng ảnh có cùng kích thước cường độ sánh các điểm ảnh I i j[ ], =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.

6.2. Tăng cường nh cht 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 ảnh chất lượng ảnh ở đây là: histogram equalization (cân bằng lược đồ

xám) và biến đổiFourier rời rạc[1], tr. 104-113.

a) b) c)

Hình-21. 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.

6.2.1. Tăng cường ảnh bằng cân bằng histogram

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 cường độ ảnh đó. Cân bằng histogram sẽ làm đồng đều

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.

6.2.2. 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 [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 cuối công đoạn tạo ridge-map. (adsbygoogle = window.adsbygoogle || []).push({});

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.

Đồ á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 32´32pixel. 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 [1], khuyến nghị đặ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.

6.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ộ. Đây là cần thiết để chọn được 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).

6.3.1. Ướ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 trong 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ướngqij(tương ứng với nó là góc định hướng qijvà 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

Nguyên lý thực hiện tính định hướng: chia ảnh thành các khối w´w, 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 [3, 4]

a) b)

Hình-22. Ướ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 , ( ), 1 ( )( ), 2 , n d G i j i j arctg G i j q = æçç ö÷÷ è ø.

Ở đâ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 [5, 6].

Hàm thực hiện ước lượng trường định hướng là oriimafv. [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.

6.3.2. Khoanh vùng ảnh vân tay (adsbygoogle = window.adsbygoogle || []).push({});

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 [3].

Ảnh vân tay trong đồ á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ò backgroundforegroundđược phân tách nhờ một ngưỡng đặt trước [2].

Công thức tính certainty level cho từng block kích thước w w´ , 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,

· foreground nếu C( )i,j ³Tc.

Phương pháp này có lợi thế kế thừa được các kết quả tính toán trong phần

ước lượng orientation image.

a) b) c)

Hình-23. 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.

6.4. Trích chn minutiae

Giai đoạn này bao gồm: nhị phân hóa ảnh bằng thuật toán local threshold với

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 [1], ch. 4.

a) b)

Hình-24. Thông số của hai dạng minutiae quan trọng: a) bifurcation; b) termination.

6.4.1. 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 (adsbygoogle = window.adsbygoogle || []).push({});

ảnh xám đã tăng cường chất lượng đó thành ảnh đen trắng.

a) b)

Hình-25. 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ổ 32´32 pixel trong biến đổi Fourier rời rạc thì kích thước

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.

6.4.2. Phát hiện minutiae

Vân tay sau khi đã làm mảnh có thể bắt đầu tìm các minutiae. Thuật toán dùng

để phát hiện minutiae sử dụng trong đồ án là crossing number. Nó dùng một cửa sổ kích thước 3 3´ 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 mod8 1 2 1 ) ( i i i p val p val p cn

Ảnh sử dụng phát hiện các minutiae 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).

a) cn(p) = 2 b) cn(p) = 2

a) cp(n) = 3 d) cn(p) = 1

Hình-26. Phát hiện minutiae: 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 đó: (adsbygoogle = window.adsbygoogle || []).push({});

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,

6.4.3. Ướ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 trị trung bình khoảng cách giữa hai đường vân song song và gần nhau. Đây là một thông tin làm tiền

đề cho công đoạn lọc minutiae về sau.

Ảnh nhị phân có các đường vân đã được làm mảnh đến 1 pixel tạo ra từ khâu làm mảnh đã có, tỏ ra rất thuận tiện với phương pháp scan trong việc ước lượng khoảng cách đường vân. Theo cách này, sẽ quét một số dòng và một số cột trên

ảnh (thinned ridgemap), lưu lại vị trí điểm trên đường vân, sau đó tính giá trị

trung bình khoảng cách điểm là được kết quả cần tìm.

Hàm thực hiện phát hiện ước lượng độ rộng đường vân là mearidfv.

rd = mearidfv(g),

trong đó:

g : ảnh đầu vào có độ rộng đường vân môt pixel,

rd : độ rộng trung bình của đường vân.

6.4. Hiu chnh đường vân và lc minutiae sai

Trong phần này sẽ trình bay về vấn vân đề loại bỏ các minutiae sai. Những nhiễu này chủ yếu được tao ra từ quá trình làm mảnh đường vân, và cũng có những nhiễu từ khâu thu nhận ảnh

Các công việc thực hiện: làm “trơn” đường vân, “nối” các đường vân bị đứt trong ngưỡng giới hạn, “tách” các đường vân bị dính, cuối cùng là tạo mã vân tay từ minutiae.

6.4.1. Hiệu chỉnh đường vân và lọc minutiae sai cấp một

Giai đoạn này thực hiện hiệu chỉnh các vân tay và các tín hiệu cho là nhiễu (đoạn vân ngắn, chẽ nhánh cụt, vòng xuyến nhỏ…) sẽ được loại đi. Như vậy sẽ

làm tăng tính xác thực của các minutiae đã trích chọn được so với ảnh vân tay gốc ban đầu.

a) c)

Hình-27. Số minutiae phát hiện được: a) ngay sau làm mảnh vân; b) sau lọc minutiae. (vùng ảnh đánh dấu vuông và tròn thể hiện điển hình một số minutiae sai được loại bỏ)

Khi thực hiện hai nhiêm vụ này, thông tin cần cần biết trước là khoảng các trung bình giữa các đường vân rd. Nó đã được ước lượng từ bước scan ảnh vân tay làm mảnh trình bày ở trên. Sau đó, việc lọc minutiae sẽ căn cứ theo rd cộng thêm các điểm “nút” tìm thấy bằng thuật toán crossing number.

a)

b)

Hàm thực hiện phát hiện thuật toán hiệu chỉnh đường vân tay và lọc minutiae

cấp một là smoridfv.

[gs, ster, sbif] = smoridfv (g),

trong đó:

g : ảnh đầu vào có độ rộng đường vân một pixel, (adsbygoogle = window.adsbygoogle || []).push({});

gs : ảnh đầu ra đã được làm “trơn” đường vân,

ster : ma-trận lưu tọa độ của termination minutia,

sbif : ma-trận lưu tọa độ của bifurcation minutia.

6.4.2. Lọc minutiae sai cấp hai và tạo mã từ minutiae

Khi các đường vân đã làm “trơn”, các điểm minutiae được tìm kiếm một lần nữa và số lượng các điểm sai cũng đã được giảm đáng kể. Tuy nhiên còn hai lỗi mà quá trình trên chưa khắc phục được là “nối” các đường vân bị đứt (khoảng các giữa hai đầu mút < rd) và “cắt” đoạn vân nối hai đường vân dạng cầu chữ H

(khoảng cách cầu < rd).

Giải pháp thực khắc phục là so sánh khoảng cách định giữa hai điểm nút và góc định hướng của chúng theo ngưỡng (D Dd, q ) để loại bỏ. Trong đồ án chọn

[ 6, 6]

q p p

D Î - (khoảng góc rộng hơn hoặc hẹp hơn tỏ ra ít có hiệu quả trong khi thưc hiện đồ án), còn D =d rd.

Hàm thực hiện sai cấp hai và tạo mã từ minutiae là extminfv [eter, ebif] = extminfv (g),

trong đó:

g : ảnh đường vân môt pixelđã làm “trơn”.

eter : ma-trận lưu tọa độ của termination minutiae,

ebif : ma-trận lưu tọa độ của bifurcation minutiae.

Các minutiae trích chọn cuối cùng này sẽđược lưu trữ thành file tạo template

cho cơ sở dữ liệu. Thông tin lưu trữ là tọa độ, định hướng minutiae. Quá trình tạo mã từminutiae hoàn tất khâu trích chọn đặc tính đểđịnh danh.

7. Phân loi kiu vân tay

Hệ thống nhận dạng identification, cơ sở dữ liệu có thể lên đến hàng triệu chỉ

bản nên quá trình đối chiếu 1:N dĩ nhiên tốn rất nhiều thời gian [1], tr.173. Phân

Một phần của tài liệu Đề tài “Thiết kế hệ thống nhận dạng vân tay từ ảnh số” potx (Trang 38 - 71)