Tải bản đầy đủ (.doc) (16 trang)

Nhận dạng vân tay bằng thuật toán SVM

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (624.42 KB, 16 trang )

MỤC LỤC
A. GIỚI THIỆU
Nhận dạng vân tay là một hướng nghiên cứu của nhận dạng sinh trắc học. Khoa
học nhận dạng vân tay cũng đã hình thành từ lâu, đã và đang trở thành một ứng dụng
không thể thiếu trong đời sống xã hội của con người. Với sự ra đời của ngân hàng điện
tử, thương mại diện tử…các biện pháp bảo mật và mang tính riêng tư cần được tổ chức
và lưu trữ trong các cơ sở dữ liệu khác nhau. Định danh cá nhân một cách tự động
ngày càng trở thành một vấn đề quan trọng và cấp thiết. Các ứng dụng của hệ thống
định danh cá nhân được phát triển rộng lớn trong đời sống của con người như: quản lý
hộ chiếu, hệ thống rút tiền tự động ATM…Việc định danh cá nhân trước đây theo
phương pháp truyền thống như bằng password và PIN, nhưng các phương pháp này đã
được chứng minh là không hiệu quả. Bởi vì, password là những con số khó nhớ, dễ
quên và dễ bị đánh cắp. Bằng cách sử dụng vân tay và mật mã, việc xác nhận một
người có thể được thực hiện bằng một hệ thống nhận dạng vân tay an toàn và thuận
tiện
Lý thuyết Máy học Vector hỗ trợ (SVM) bắt đầu từ thập kỷ 1970 do
Vapnik,Chervonenkis. Tuy nhiên, sự chú ý bắt đầu từ thập kỷ 1990 . SVM là tập các
phương pháp học có giám sát dùng để phân lớp. Tính chất nổi trội của SVM là đồng
thời cực tiểu lỗi phân lớp và cực đại khoảng cách lề giữa các lớp . SVM là một phương
pháp phân lớp hiện đại và hiệu quả, nắm chắc phương pháp này sẽ tạo nền tảng giúp
chúng ta trong việc phát triển các giải pháp phân loại và dự đoán , xây dựng được
những ứng dụng quan trọng trong thực tế. Ưu thế của SVM so với các thuật giải học
khác như Neural Net, cây quyết định là giải quyết rất tốt bài toán quá khớp. SVM
được sử dụng nhiều trong phân loại và nhận dạng (chữ viết tay, mặt người, vân tay, ).
SVM chia tập học thành hai lớp {+1,-1}.
Trang 2
B. NỘI DUNG
I. Tổng quan về nhận dạng vân tay
1. Qui trình nhận dạng ảnh
Qui trình nhận dạng ảnh tổng quát gồm các giai đoạn chính như sau:
Thu nhận ảnh là giai đoạn nhận ảnh từ máy quét, máy quay… Ảnh thu được có thể


là ảnh màu, ảnh mức xám, ảnh nhị phân. Độ phân giải ảnh tùy thuộc vào đối tượng cần
thu nhận. Chất lượng ảnh có thể sẽ thấp do cách lấy ảnh cũng như chất lượng của các
thiết bị. Vì vậy, một bước tiền xử lý ảnh được đòi hỏi nhằm nâng cao chất lượng ảnh
ban đầu. Bước kế tiếp là trích chọn các đặc trưng từ ảnh đã được nâng cao chất lượng,
các đặc trưng này sẽ được trích chọn bằng các phương pháp khác nhau tùy vào từng
đối tượng cần nhận dạng (Ví dụ: hệ thống nhận dạng khuôn mặt sẽ trích các đặc trưng
như: mắt, mũi, miệng, mày…, hệ thống nhận dạng vân tay sẽ trích các điểm đặc biệt
trên các đường vân như: điểm kết thúc, điểm rẽ nhánh). Sau khi có được các đặc trưng,
qui trình nhận dạng sẽ có hai hướng tiếp chuyển. Hướng thứ nhất là tiến hành phân lớp
xem ảnh thu nhận được thuộc lớp nào trong cơ sở dữ liệu rồi mới đối sánh với các ảnh
thuộc lớp đó. Hướng thứ hai là tiến hành đối sánh trực tiếp với các ảnh thuộc cơ sở dữ
liệu và đây cũng chính là hướng tiến hành của đề tài.
2. Đặc điểm vân tay
Vân tay là một bản sao của lớp biểu bì ở một đầu ngón tay được phơi bày ra khi ấn
một ngón tay xuống một bề mặt bằng phẳng. Hầu hết cấu trúc đặc trưng của một vân
tay là một mẫu xen kẽ của những đường vân (Ridges) và rãnh (Valleys) trong một ảnh
vân tay (Hình 2). Những đường vân và rãnh thường chạy song song với nhau, có khi bị
rẽ nhánh hoặc kết thúc.
Trang 3
Khi phân tích ở mức toàn cục, mẫu vân tay thể hiện những vùng mà tại đó những
đường vân mang những hình dạng đặc biệt. Những vùng này được gọi là Singularities
hoặc Singular Regions, có thể phân chúng vào ba loại: delta, whorl, loop. Một vài giải
thuật đối sánh canh chỉnh lại ảnh vân tay theo một điểm mốc gọi là core, điểm này gần
như nằm ở trung tâm của vùng Singular thuộc kiểu loop (Hình 3). Một điều cần lưu ý
là cũng có những vân tay không chứa những vùng Singular thuộc kiểu loop hoặc
whorl vì thế khó xác định được điểm core (Kiểu Arch). Năm lớp chính của một vân
tay: Left loop, Right loop, Whorl, Arch, Tented Arch (Hình 4).
Ở mức cục bộ, những đặc trưng quan trọng khác được gọi là minutiae. Minutiae có
Trang 4
nghĩa là chi tiết vụn vặt, trong ngữ cảnh của vân tay, nó đề cập đến những cách thức

khác nhau mà những đường vân bị gián đoạn. Ví dụ: đường vân bị kết thúc
(Termination), đường vân bị rẽ nhánh (Bifurcation). Francis Galton (1822- 1911) là
người đầu tiên phân loại và quan sát các minutiae, thấy rằng chúng không thay đổi
trong thời gian sống của một cá nhân. Các kiểu minutiae phổ biến nhất được trình bày
trong hình 5.
Sự phân loại minutiae chỉ dựa trên điểm kết thúc và rẽ nhánh. Mỗi minutiae được
biểu diễn bằng tọa độ (x, y) và góc giữa tiếp tuyến đường vân tại điểm đó với trục
hoành (Hình 6).
3. Thu nhận và biểu diễn ảnh
Quá trình thu nhận ảnh bao gồm quá trình cảm biến (biến đổi năng lượng quang
học thành năng lượng điện) và tổng hợp năng lượng điện thành ảnh. Các thiết bị thu
nhận ảnh có hai loại chính tương ứng với hai loại ảnh thông dụng là Raster và Vector.
Thiết bị thu ảnh Raster là camera, thiết bị thu ảnh Vector là sensor. Ảnh trên máy
tính là kết quả thu nhận từ các phương pháp số hóa. Chất lượng ảnh phụ thuộc rất lớn
vào độ phân giải. Vì vậy, cần lựa chọn độ phân giải phù hợp với nhu cầu sử dụng cũng
như đặc trưng của mỗi ảnh cụ thể.
Trang 5
• Mô hình Raster: là mô hình phổ biến nhất, ảnh được biểu diễn dưới dạng ma
trận điểm ảnh. Thuận lợi cho việc in ấn và hiển thị.
• Mô hình Vector: là mô hình giúp tiết kiệm bộ nhớ, thuận lợi cho việc in ấn và
hiển thị, dễ dàng sao chép, di chuyển, tìm kiếm. Mô hình này sử dụng hướng giữa các
vector của điểm ảnh lân cận để mã hóa và tái tạo hình ảnh ban đầu. Các công nghệ
phần cứng chỉ hỗ trợ cho ảnh Raster vì thế mà các nghiên cứu trên mô hình Vector tập
trung vào việc chuyển đổi qua lại giữa hai mô hình trên.
4. Trích chọn đặc trưng
Sau khi đã thu nhận được ảnh đầu vào, bước tiếp theo của quá trình xử lý ảnh là
tiến hành trích đặc trưng mà từ đó có thể sử dụng chúng vào những mục đích khác
nhau. Sơ đồ minh họa cho giai đoạn trích đặc trưng, cụ thể là trích đặc trưng trên ảnh
vân tay được trình bày trong hình 9.
Giai đoạn trích đặc trưng bao gồm các xử lý chính sau:

• Phân đoạn (Segmentation).
• Tính hướng đường vân cục bộ (Local Orientation).
Trang 6
• Tính tần số vân cục bộ (Local Frequency).
• Tìm các vùng Singularity (Singular Region).
• Tăng cường ảnh (Enhancement).
• Trích các điểm Minutiaes (Minutiae Extraction).
a) Phân đoạn
Tách ảnh vân tay thành hai vùng phân biệt, chỉ sử dụng vùng hữu ích để tránh
trích lọc đặc tính trên vùng ảnh không có vân hoặc vùng vân không thể phục hồi.
b) Tính hướng đường vân cục bộ
Phương pháp tự nhiên và đơn giản nhất để trích lọc hướng cục bộ là dựa trên
Gradient, phương pháp này đơn giản và hiệu quả được đề xuất bởi Ratha và các cộng
sự
c) Tính tần số vân cục bộ
Tần số vân cục bộ tại điểm [x, y] là số vân trên một đơn vị chiều dài dọc theo một
đoạn trọng tâm tại [x, y] và trực giao với hướng cục bộ tại [x, y]. Phương pháp tính tần
số vân cục bộ được trình bày bởi Hong và các cộng sự (1998) [3], phương pháp này
tính tần số cục bộ bằng cách đếm số pixel trung bình giữa hai đường vân.
d) Tìm các vùng Singular
Dựa vào trường định hướng của ảnh vân tay. Phương pháp tốt nhất là phương
pháp dựa trên Poincare được đưa ra bởi Kawagoe và Tojo.
e) Tăng cường ảnh
Trong một ảnh vân tay lý tưởng thì những đường vân và rãnh xen kẽ nhau và chạy
theo một hướng cục bộ cố định. Trong trường hợp đó, những đường vân dễ dàng được
tìm thấy và những điểm minutiae cũng được định vị chính xác. Tuy nhiên trong thực
tế, do điều kiện da (Ví dụ: ẩm, khô, bị vết nứt, vết thâm …), nhiễu cảm biến do chất
lượng thiết bị, áp lực tay khi thu nhận, hoặc vốn đã chất lượng thấp (Ví dụ: người lớn
tuổi, công nhân làm việc bằng tay…).
Tác dụng mà các giải thuật tăng cường mang lại là làm sáng sủa cấu trúc đường

vân trong những vùng có thể phục hồi được. Đầu vào của giải thuật tăng cường là ảnh
mức xám, đầu ra là ảnh mức xám hoặc ảnh nhị phân. Một phương pháp hiệu quả dựa
trên bộ lọc Gabor.
f) Trích các điểm minutiae
Hầu hết các phương pháp đều đòi hỏi ảnh đầu vào là ảnh mức xám để có thể
Trang 7
chuyển đổi sang ảnh nhị phân. Các giải thuật tăng cường thường cho ra trực tiếp ảnh
nhị phân nên sự khác biệt giữa tăng cường và nhị phân hóa là mờ nhạt. Ảnh nhị phân
thu được từ giai đoạn nhị phân hóa sẽ được làm mảnh đến độ dày một pixel.
Cuối cùng là dò tìm các điểm minutiae trên ảnh thu được (Hình 10).
II. Tìm hiểu về Support Vector Machines (SVM)
1. Giới thiệu
SVM thuộc họ các giải thuật học (Learning Algorithm) nhằm phân lớp các đối
tượng vào hai lớp khác nhau (Binary Classification). Phương pháp SVM được Vapnik
đề xuất năm 1995, dựa trên lý thuyết học thống kê (Statistical Learning Theory) nên có
một nền tảng toán học chặt chẽ đảm bảo kết quả đạt được là tối ưu. Ý tưởng của
phương pháp này là chuyển tập dữ liệu mẫu từ không gian ít chiều R
n
sang không gian
nhiều chiều hơn R
d
, sau đó tìm một siêu phẳng (Hyperplane) tối ưu trong R
d
để phân
chia tập mẫu theo phân lớp của chúng.
Dữ liệu đầu vào: cho một tập huấn luyện S={(x
1
,y
1
),….,(x

N
,y
N
)} của những đối
tượng x
i


X và phân lớp đã biết của chúng y
i


{-1,+1}
Dữ liệu đầu ra: một bộ phân lớp f : X → {-1,+1}, sẽ dự báo lớp f(x) của một đối
tượng mới bất kỳ x

X
2. Bài toán SVM phân chia tuyến tính (Linear SVM)
Bài toán SVM đơn giản là bài toán phân chia tập huấn luyện một cách tuyến tính.
Đối tượng của SVM là những vector hữu hạn chiều:
x

=(x
1
,x
2
,…,x
m
) biểu diễn những
đặc trưng của một đối tượng trong thế giới thực. Ví dụ: khi xét đối tượng là một con

người ta có thể hình dung ra mỗi chiều của vector là một thông tin về người đó,
x

=(HoTen,NamSinh,ChieuCao,MauDa )
Công thức tích vô hướng của hai vector:
Trang 8
Hàm quyết định cho việc phân lớp:
Minh họa cho bộ phân lớp tuyến tính được trình bày ở hình 2.1 và hình 2.2
Hình 2.1 : Bộ phân lớp tuyến tính
Hình 2.2 : Phân chia tuyến tính tập huấn luyện
Như đã nói ở trên, việc giải quyết bài toán SVM là tìm một siêu phẳng tối ưu để
phân chia tập huấn luyện. Vậy một câu hỏi đặt ra là “siêu phẳng như thế nào được cho
là tối ưu?”. Và câu trả lời cho câu hỏi này đã được chính người đề xuất SVM – Vapnik
trả lời rằng: “Largest margin”, có nghĩa là “lề rộng nhất”. Chúng ta sẽ xem minh họa
trong hình 2.3 để hiểu về lề.
Hình 2.3 : Siêu phẳng tối ưu với lề rộng nhất
Như vậy, độ rộng lề của một siêu phẳng là khoảng cách ngắn nhất từ một điểm
trong tập huấn luyện đến siêu phẳng, và điểm nằm gần lề nhất được gọi là vector hỗ
trợ (Support Vector). Công việc cần làm là làm sao để tìm được một siêu phẳng tối ưu.
Trang 9
Chúng ta hãy nhìn lại sự phân chia tập huấn luyện trong hình 2.4.
Gọi: x
1
là điểm nằm trên siêu phẳng.
x
2
là điểm nằm trên lề với giá trị phân lớp là +1.
Ta có:
Trừ hai vế ta được:
Do đó:

Những mẫu thuộc lớp Positive (y
i
= +1):
Những mẫu thuộc lớp Negative (y
i
= -1):
Tổng hợp cả hai trường hợp, ta có:
Để tìm được siêu phẳng tối ưu với lề rộng nhất, ta chỉ cần tìm cặp sao cho
→ Min với ràng buộc
Hình 2.4 : Bộ phân lớp tuyến tính với hai giá trị của hàm quyết định (-1, +1)
Đây là bài toán qui hoạch toàn phương (Quadratic Programming). Trong qui
hoạch toán học, một khái niệm khá quan trọng và giúp ích rất nhiều trong việc giải
quyết bài toán đó là khái niệm bài toán đối ngẫu. Thay vì giải quyết bài toán gốc một
cách khó khăn, ta có thể giải quyết bài toán đối ngẫu một cách dễ dàng hơn mà việc
giải bài toán đối ngẫu cũng tương đương với giải bài toán gốc. Đó là ý nghĩa của bài
toán đối ngẫu.
Trở lại bài toán qui hoạch toàn phương ở trên, ta có thể chuyển nó về dạng đối
ngẫu như sau:
Gọi α
i
là biến đối ngẫu cho mỗi ràng buộc.
Biểu thức Lagrangian
Trang 10

Giải bài toán đối ngẫu là tìm để cực đại hóa:
Với ràng buộc:
Sau khi tìm được ta thu được tương ứng với siêu phẳng tối ưu.
Hàm quyết định trở thành:
Hình 2.5 : Các vector hỗ trợ tương ứng với siêu phẳng tối ưu
Tóm lại: chúng ta cần tìm một siêu phẳng tối ưu với lề rộng nhất, và việc này có

thể giải quyết một cách dễ dàng bằng cách sử dụng biểu thức đối ngẫu. Các vector hỗ
trợ thu được có thể sẽ rất nhỏ so với kích thước tập huấn luyện ban đầu. Chỉ những
vector hỗ trợ là quan trọng để dự báo kết quả phân lớp cho những điểm mới trong
tương lai, các điểm khác thuộc tập huấn luyện có thể bỏ qua.
Tuy nhiên, đối với tập huấn luyện không phân chia tuyến tính thì sẽ không có giải
pháp cho một vài biến α
i
, tức là không tìm được α
i
lớn hơn cũng như giá trị cực đại
của biểu thức đối ngẫu. Một giải pháp được đưa ra trong trường hợp này là giới hạn lại
phạm vi của
α

để chắc chắn rằng có một giải pháp tồn tại.
Gọi C là một hằng số để giới hạn phạm vi
α

, ràng buộc ở bài toán trên trở thành:
0<= α
i
<=C(i=1 N)
Trang 11
Hình 2.6 : Các vector hỗ trợ trong giới hạn C
3. Bài toán SVM không phân chia tuyến tính (Non-Linear SVM)
Chúng ta hãy xem minh họa sau đây để thấy được sự phân chia không tuyến tính
của một tập huấn luyện hình 2.7
Hình 2.7: Tập huấn luyện không phân chia tuyến tính
Để giải quyết vấn đề này, chúng ta cần một ánh xạ để chuyển chúng về dạng phân
chia tuyến tính (Hình 2.8)

Hình 2.8 : Đưa tập huấn luyện về dạng phân chia tuyến tính
Một khái niệm đơn giản Nhưng quan trọng đó là nhân (Kernel). Cho một ánh xạ Φ
từ không gian của những đối tượng X đến không gian đặc trưng, kernel đơn giản của
hai đối tượng x và x’ là tích vô hướng của hình ảnh của chúng trong không gian đặc
trưng :
Ví dụ: nếu khi
Như vậy, để huấn luyện một SVM trong không gian đặc trưng, ta chỉ việc thay thể
mỗi trong giải thuật SVM thành
Trang 12
Ta được :

Với ràng buộc:
Dự báo kết quả phân lớp, hàm quyết định trở thành:
Nhận xét: sự tính toán của Φ(x) là không cần thiết, chỉ kernel K(x, x') là đủ.
Dưới đây là các kernel thông dụng:
Polymonial:
Radial basis function:
Gaussian radial basis function:
III. Đối sánh vân tay bằng SVM
Để đối sánh vân tay ta dựa trên tập các điểm minutiae và thuộc tính weight. Mỗi
điểm minutiae có một thuộc tính weight là khoảng cách ngắn nhất giữa minutiae đó
với minutiae gần nó nhất.
1. Trích đặc trưng
Trích các điểm minutiae
Tính khoảng cách giữa các điểm minutiae, từ đó tính thuộc tính weight của từng
minutiae
Sắp xếp các điểm minutiae theo thứ tự giảm dần của thuộc tính weight. Nghĩa là
mỗi ảnh vân tay chúng ta sẽ có một dãy các điểm minutiae p
1
, p

2
, … p
n
với giá trị
weight giảm dần.
2. Đối sánh hai ảnh vân tay
Gọi p
1
, p
2
, … p
n
là dãy các minutiae của I
test
còn q
1
, q
2
, … q
m
là dãy các
Trang 13
minutiae của I
temp
. Chúng ta tính tổng số điểm minutiae đối sánh với nhau. Và ta tính
được số cặp minutiae giống nhau là t.
3. Sinh ra vector đối sánh và sử dụng SVM
Chúng tôi định nghĩa vector V(n, m, t, ave) đại diện cho mức độ giống nhau của
hai ảnh vân tay I
temp

và I
test
. Sau đây là các bước tạo ra vector V:
• Bước 1: ghi nhận số minutiae n của I
test
, m của I
temp
và số cặp minutiae giống
nhau nhiều nhất t.
• Bước 2: với các cặp minutiae giống nhau, giả sử tham số weight của các
minutiae của I
test
là v1, v2, … , vt và của I
temp
là u1, u2, … , ut. Tham số ave
được tính theo công thức:
Với mỗi vector V, ta phải gán nhãn cho nó là “+1” nếu hai ảnh vân tay giống
nhau, và gán nhãn “-1” nếu hai ảnh vân tay khác nhau, sau đó dùng SVM để phân lớp.
IV. Quy trình huấn luyện và nhận dạng
1. Huấn luyện
Quá trình huấn luyện được thực hiện khi thêm một người mới vào tập dữ liệu. Như
đã nói ở trên, chúng ta sẽ sử dụng SVM làm bộ phân lớp. Để huấn luyện chúng ta cần
một tập các ảnh vân tay của cùng một ngón tay của một người (Tập S) và một tập các
ảnh vân tay của người khác (Tập D). Công việc huấn luyện được thực hiện như sau:
• Từ tập S, chúng ta chọn ra một ảnh làm ảnh gốc (I
temp
) để lưu lại và dùng để
đối sánh sau này.
• Với mỗi ảnh còn lại trong tập S, ta lần lượt đối sánh với ảnh gốc để được các
vector huấn luyện có nhãn là “+1”.

• Với mỗi ảnh trong tập D, ta lần lượt đối sánh với ảnh gốc để được các vector
huấn luyện có nhãn là “-1”.
• Ta dùng các vector huấn luyện làm đầu vào cho SVM để sinh ra mô hình
SVM ứng với người mới được thêm vào.
2. Nhận dạng
Nhận dạng là khi ta được một ảnh vân tay mới vào xem có phải là của một người
nào đó trong tập dữ liệu hay không. Công việc nhận dạng được thực hiện như sau:
Trang 14
• Lấy ảnh cần nhận dạng (I
test
) đối sánh với ảnh gốc của người cần kiểm tra
(I
temp
) ta được vector đối sánh V.
• Ta sử dụng mô hình SVM của người cần kiểm tra và vector V làm đầu vào để
SVM dự đoán (Predict) xem I
test
thuộc lớp “+1” (Phải) hay “-1” (Không phải).
Trang 15
C. KẾT LUẬN
Phân loại vân tay là một bước quan trọng xây dựng bộ phân loại để áp dụng trong
nhân dạng vân tay đó là một đề tài rất thú vị và có nhiều ứng dụng trong khoa học kỹ
thuật và đời sống. Sau một thời gian tìm hiểu và vận dụng các kiến thức đã học vào
yêu cầu thực tế của đề tài, tiểu luận đã đáp ứng yêu cầu đặt ra, tìm hiểu các vấn đề về
phân loại vân tay , thu thập và tìm kiếm chi tiết đặc trưng của vân tay, áp dụng thuật
toán SVM trong phân loại vân tay.Trên cơ sở tìm hiểu về SVM và áp dụng trong phân
loại vân tay, do thời gian và khả năng kiến thức còn hạn chế nên trong tiểu luận này
chỉ mới dừng lại ở mức tìm hiểu lý thuyết, chưa xây dựng được demo thực nghiệm.
Trang 16

×