Phân mảnh mịn và phân loại vân tay tự động

Một phần của tài liệu Nghiên cứu xây dựng thuật toán phân mảnh chỉ bản mười ngón dựa trên kỹ thuật véctơ hóa ảnh đường nét và ứng dụng (Trang 59 - 63)

Nhƣ đã trình bày ở trên, vân tay thƣờng đƣợc phân chi tiết thành 7 loại cơ bản sau: Cung thƣờng (Arch), Cung trồi (Tented Arch), Quai trái (Left Loop), Quai phải (Right Loop), Xoáy thƣờng (Whorl), Xoáy đôi quai (Twin Loop) và Xoáy bất thƣờng (Acidental Whorl). Thuật toán này thực hiện việc tìm các tiêu điểm (tâm điểm và tam phân điểm) của ảnh vân tay, sau đó phân loại dựa trên số lƣợng và vị trí của những điểm này. Việc phân loại này sẽ không thay đổi khi quay, dịch hoặc thay đổi tỷ lệ của ảnh.

Thuật toán phân loại này gồm ba bƣớc chính: - Tính hƣớng của điểm trên ảnh;

- Tìm tiêu điểm trên ảnh đã đƣợc tính hƣớng; - Phân loại ảnh dựa trên bảng quyết định.

Mỗi bƣớc của thuật toán sẽ đƣợc trình bày chi tiết trong các phần sau đây.

Thuật toán tính ma trận hướng

Phƣơng pháp tính hƣớng vân của từng pixel trên ảnh vân tay đã đƣợc nhiều tác giả đề cập [15 ], [17], [22], [25], ở đây ta sẽ trình bày một thuật toán tính hƣớng nhƣ sau:

Phƣơng pháp tính ma trận hƣớng vân của ảnh vân tay đầu vào đƣợc thực hiện bằng cách tính hƣớng tại mỗi điểm trên ảnh. Để tính đƣợc hƣớng tại mỗi điểm trên ảnh ta sử dụng một mặt nạ 9 x 9 với điểm chính giữa của mặt nạ chính là điểm đang xét. Ta tính tổng giá trị mức xám của các điểm trong tám hƣớng (vị trí các hƣớng đƣợc đánh số từ 0 đến 7) và lƣu lại thành tám tổng s0, s1, ..., s7. Ví dụ, giá trị mức xám của ảnh tại điểm (i,j) đƣợc biểu hiện bằng I(i,j) thì tổng s1 tại điểm (i,j) đƣợc tính nhƣ sau:

s1 = I(i-2,j-4) + I(i-1,j-2) + I(i+1,j+2) + I(i+2,j+4)

Việc tính toán tƣơng tự cũng đƣợc thực hiện với các tổng còn lại. Việc tính đƣợc 8 tổng từ s0 đến s7 cũng tƣơng đƣơng với việc tính tích chập với tám mặt nạ 9x9 m0, m1,

- 59 –

…, m7. Mặt nạ mi sẽ có giá trị 1 tại vị trí mà mặt nạ đƣợc chỉ ra ở hình dƣới đây có giá trị i, còn các vị trí còn lại có giá trị 0. 6 5 4 3 2 7 6 5 4 3 2 1 7 1 0 0 (i,j) 0 0 1 7 1 2 3 4 5 6 7 2 3 4 5 6 Đặt 0 p,q7 trong đó 7 ,..., 0 min   i i p s s 7 ,..., 0 max   i i q s s

Hƣớng của mỗi pixel trên ảnh đƣợc định nghĩa là hƣớng p nếu pixel đó nằm trên một đƣờng vân (vùng tối) và là hƣớng q nếu pixel đó nằm trên một đƣờng rãnh (vùng sáng). Nếu giá trị cấp xám tại điểm đang cần tính hƣớng là C, thì hƣớng d của nó sẽ đƣợc tính nhƣ sau:            otherwise q s s s C if p d p q i i 7 0 8 3 4

Việc tính toán theo công thức trên sẽ cho chúng ta hƣớng của mỗi pixel trên ảnh, đƣợc định lƣợng bằng 8 giá trị. Những hƣớng tính đƣợc này thƣờng không chính xác do ảnh hƣởng của nhiễu, vì vậy ta cần phải làm trơn và tính trung bình với các hƣớng láng giềng. Có một khó khăn trong việc tính hƣớng trung bình là vì các hƣớng này là các giá trị modulo 8 nên việc tính trung bình bằng một phép cộng đơn giản sẽ không đem lại kết quả chính xác. Do đó có một phƣơng pháp biểu diễn đẹp hơn cho các hƣớng này là sử dụng vector. Với mỗi pixel, ta tính hƣớng của chúng là một góc α độ (α [0,180o]), nhân giá trị này cho 2, và thay thế nó bằng một vector đơn vị với hƣớng v = (cos2α,sin2α). Ảnh đƣợc biểu diễn theo cách này có thể đƣợc làm trơn bằng cách tính trung bình 2 thành phần của vector này một cách riêng biệt. Với cách biểu diễn nhƣ vậy, chúng ta tính đƣợc vectơ hƣớng trung bình cũng nhƣ độ dài của nó. Và cũng thật dễ dàng khi muốn chuyển đổi một vector đƣợc biểu diễn dạng (x,y) về một

- 60 – giá trị hƣớng d bằng cách tính        x y d arctan 2 1

. Tuy nhiên, khi tính các giá trị trung bình hay làm trơn, chúng ta vẫn có thể làm việc bình thƣờng với cách biểu diễn vector và chỉ chuyển chúng về hƣớng biểu diễn theo góc độ khi cần thiết.

Sau khi tính đƣợc hƣớng của tất cả các pixel trên ảnh, chúng ta chuyển đổi các hƣớng này về cách biểu diễn bằng vector đơn vị. Một ảnh gồm 512x512 vector sẽ đƣợc lát bằng các cửa sổ có kích thƣớc là 8x8 và các vector trong mỗi cửa sổ này đƣợc tính trung bình để đƣa ra một ảnh vector có kích thƣớc 64x64. Ảnh có kích thƣớc tƣơng đối nhỏ này lại tiếp tục đƣợc làm trơn (làm trơn mỗi vector thành phần một cách riêng biệt). Ta sử dụng một cửa sổ lọc trung bình có kích thƣớc 3x3. Cửa sổ lọc này đem lại hiệu quả rất cao và nó đƣợc áp dụng nhiều lần nhằm làm trơn và hạ bậc ảnh vector. Một trong những vấn đề cốt yếu nhất của thuật toán phân loại vân tay là xác định đƣợc số lần cần thiết làm trơn trên ảnh vector 64x64. Ta sẽ sử dụng một phép lặp, mỗi lần làm trơn ảnh một lần, ta sẽ thử phân loại ảnh đó, nếu kết quả phân loại chƣa chính xác, ta làm trơn ảnh một lần nữa và lại tiếp tục phân loại tiếp. Quá trình làm trơn cuối cùng sẽ kết thúc ví bất cứ ảnh nào khi làm trơn đủ một số lần sẽ thu đƣợc ảnh với hƣớng không thay đổi. Và ta có thể phân loại ảnh đó là dạng cung thường.

Thuật toán định vị các (tâm điểm và tam phân điểm) và phân loại vân tay theo các dạng cơ bản.

Để phân loại đƣợc ảnh đầu vào với kích thƣớc 64x64 các vector có hƣớng, trƣớc hết ta phải tìm đƣợc các tiêu điểm (tâm điểm và tam phân điểm), sau đó phân loại ảnh dựa trên số lƣợng và vị trí của các tiêu điểm đó. Việc định nghĩa tâm điểm và tam phân điểm ở đây có thể khác với một số bài báo khác trên thế giới (chẳng hạn, Henry [16] định nghĩa tâm điểm là điểm cao nhất của vân trong cùng nhất trên vân tay). Với chúng ta, một điểm trên một ảnh vân tay có hƣớng xác định sẽ thuộc một trong hai loại: điểm bình thƣờng hay tiêu điểm (tâm điểm, tam phân điểm). Dựa vào việc tính chỉ số Pointcaré (Pointcaré Index) của một đƣờng cong khép kín nhỏ xung quanh điểm đó ta sẽ xác định đƣợc điểm đó thuộc loại nào . Chỉ số Pointcaré đƣợc tính toán bằng cách tổng hợp sự thay đổi góc hƣớng xung quanh đƣờng cong đó. Khi chạy đủ một vòng ngƣợc chiều kim đồng hồ xung quanh mỗi đƣờng cong trên toàn bộ ảnh có hƣớng, chúng ta sẽ nhận thấy sự thay đổi góc hƣớng trả về sau mỗi lần tổng hợp thƣờng là o o o

360 , 180 ,

0   ,… Một điểm đƣợc gọi là điểm bình thƣờng nếu góc trả về là

o

0 , là tâm điểm nếu góc trả về là o

180 và là tam phân điểm nếu góc trả về là o

180  . Còn các giá trị trả về cao hơn hoặc thấp hơn có thể gọi điểm đó là tâm điểm kép hoặc tam phân điểm kép.

- 61 –

Trong ảnh 64x64, ta có thể tính chỉ số Pointcaré tại mỗi điểm (i,j) bằng cách sử dụng 1 cửa sổ 2x2 lấy điểm góc trên bên trái làm điểm cần tính. Cửa sổ này sẽ đƣợc chạy vòng quanh theo chiều ngƣợc chiều kim đồng hồ:

  i,ji1,j  i1,j1  i,j1   i,j

Khi tính đô ̣ chênh lê ̣ch giữa 2 góc (giá trị có thể đạt tới o

180

 ), chúng ta sẽ chọn giá trị có giá trị tuyệt đối nhỏ hơn.

Sau khi xác định đƣợc tất cả các tâm điểm và tam phân điểm, ta sẽ phân loại ảnh vân tay dựa trên số lƣợng và vị trí của những điểm này. Nhƣ đã trình bày ở trên, ảnh vân tay cung thƣờng sẽ không có tâm điểm và tam phân điểm, cung trồi và các dạng hình quai có 1 tâm điểm và 1 tam phân điểm, còn xoáy thƣờng và xoáy đôi quai thì có 2 tâm điểm và 2 tam phân điểm.

Ta phân biệt cung trồi và các dạng hình quai (đều có 1 tâm điểm và 1 tam phân điểm) bằng cách sử dụng một đƣờng thẳng giả tƣởng nối tâm điểm và tam phân điểm. Đối với cung trồi, hƣớng của đƣờng thẳng sẽ dọc theo hƣớng của các vector của ảnh nằm trên đƣờng thẳng đó, trong khi với các dạng hình quai thì hƣớng của đƣờng thẳng đó sẽ cắt ngang các vector nằm trên đƣờng thẳng. Gọi  là góc nghiêng của đƣờng thẳng đó và 1,2,...,n là góc hƣớng của các vector nằm trên đoạn thẳng đó. Nếu tổng trung bình      n i i n 1 sin 1  

nhỏ hơn một ngƣỡng nào đó (ở đây chọn là 0,25 theo các thử nghiệm của chƣơng trình), thì ảnh đó đƣợc phân loại về dạng cung trồi, ngƣợc lại là dạng hình quai. Cách thức nhƣ vậy cũng đƣợc sử dụng tƣơng tự cho việc phân loại giữa xoáy thƣờng và xoáy đôi quai với đƣờng thẳng giả tƣởng đó là đƣờng thẳng nối 2 tâm điểm. Đối với xoáy thƣờng thì 2 tâm điểm có thể đƣợc nối với nhau dọc theo hƣớng vector của chung, còn xoáy đôi quai thì không thể nối đƣợc nhƣ vậy. Cũng nhƣ thế ta có thể phân biệt xoáy thƣờng với quai búp (cùng có 1 tâm và 2 tam phân điểm). Việc phân loại giữa quai trái với quai phải thì đƣợc thực hiện nhƣ sau: khi xuất phát từ tâm điểm kẻ một đƣờng thẳng dọc theo hƣớng của vector nếu tam phân điểm nằm về phía bên trái thì ảnh đó là dạng quai phài còn nằm về phía bên phải là quai phải, cụ thể hơn gọi tâm điểm là điểm C, tam phân điểm là điểm D, ta xuất phát từ điểm C chạy dọc theo hƣớng của vector đến khi cắt đƣờng biên của ảnh tại điểm B. Ảnh sẽ đƣợc phân loại về dạng quai phải nếu hiệu

BrCrDcCc  BcCcDrCr

lớn hơn 0 và ngƣợc lại là dạng quai trái (r c là hàng và cột của một điểm trên ảnh)

- 62 –

Việc xây dựng đƣợc ma trận hƣớng của ảnh vân tay có rất nhiều hữu ích cho các phép xử lí ảnh vân tay tiếp theo sau này. Một trong những ứng dụng quan trọng của nó là dùng để phân mảnh ảnh vân tay tự động. Ta xây dựng một thuật toán phân mảnh ảnh gồm các bƣớc chính sau:

- Xây dựng hƣớng cho từng điểm trên ảnh. - Xây dựng hƣớng cho mỗi vùng gồm 8x8 điểm.

- Xác định những vùng có tính định hƣớng tốt làm vùng ảnh. - Làm trơn vùng ảnh và lƣu kết quả.

Sau khi xây dựng đƣợc hƣớng cho từng pixel trên ảnh, ta xây dựng hƣớng cho mỗi vùng 8x8 pixel trên ảnh. Một vùng có tính định hƣớng tốt là vùng có độ chênh lệch giữa sp và sq lớn còn ngƣợc lại là vùng có tính định hƣớng kém. Ta duyệt ảnh từ trong ra ngoài, giữ lại các vùng có tính định hƣớng tốt và cắt đi những phần có tính định hƣớng kém.

Ta cũng có thể áp dụng thêm luật cân bằng trắng đen để xác định vùng nào là vùng ảnh vùng nào là vùng nền. Từ đó có thể tách đƣợc chính xác vùng ảnh.

Nhƣ vậy ảnh thu đƣợc sẽ chỉ là vùng ảnh với các đƣờng vân vừa có tính định hƣớng tốt, vừa cân bằng trắng đen, còn lại các vùng ảnh xấu (không xác định) đã cắt bỏ đi và vùng nền của ảnh.

Một phần của tài liệu Nghiên cứu xây dựng thuật toán phân mảnh chỉ bản mười ngón dựa trên kỹ thuật véctơ hóa ảnh đường nét và ứng dụng (Trang 59 - 63)

Tải bản đầy đủ (PDF)

(90 trang)