Dữ liệu sinh trắc học của từng cá nhân với đặc điểm khuôn mặt, ảnh chụp võng mạc, giọng nói sẽ được kết hợp với nhau bằng phần mềm để tạo ra mật khẩu dành cho những giao dịch điện tử, ph
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH
THỰC TẬP TỐT NGHIỆP BẢO VỆ MẪU ĐẶC TRƯNG SINH TRẮC GƯƠNG MẶT TRONG XÁC THỰC TRÊN THIẾT BỊ DI
Trang 2Th c T p T t Nghi p ực Tập Tốt Nghiệp ập Tốt Nghiệp ốt Nghiệp ệp 2014
LỜI CẢM ƠN
Lời đầu tiên, chúng tôi xin được gừi lời cảm ơn tới Khoa Khoa Học & Kỹ Thuật Máy Tính – Trường Đại Học Bách Khoa TPHCM đã tạo điều kiện cho chúng tôi trong suốt quá trình nghiên cứu và thực hiện đề tài này Chúng tôi cũng xin được cảm tới tới các thầy cô đã giảng dạy, truyền đạt nhiều kiến thức bổ ích trong suốt các năm học vừa qua, tạo tiền đề vững chắc để chúng tôi có thể có được nền tảng kiến thức vững vàng, phục vụ và hỗ trợ đắc lực cho quá trình nghiên cứu đề tài thành công tốt đẹp
Đặc biệt, chúng tôi xin gửi lời cảm ơn sâu sắc tới cô Lê Thị Bảo Thu, giảng viên đã trực tiếp hướng dẫn, chỉ bảo, giúp đỡ chúng tôi trong quá trình thực hiện đề tài này
Mặc dù đã rất cố gằng trong quá trình thực hiện đề tài, song vẫn không thể tránh khỏi những sai sót, rất mong được sự góp ý, chỉ bảo của các thầy cô
Xin chân thành cảm ơn !
i
Trang 3Th c T p T t Nghi p ực Tập Tốt Nghiệp ập Tốt Nghiệp ốt Nghiệp ệp 2014
TÓM TẮT NỘI DUNG
Trong phạm vi thực tập tốt nghiệp, đề tài sẽ bao gồm các nội dung chính như sau: giới thiệu tổngquan về dề tài, các cơ sở lý thuyết ( rút trích đặc trưng PCA, Secure Sketch, Fuzzy Etractor), hiện thực Demo trên nền tảng Android, hướng phát triển đề tài trong giai đoan tiếp theo
ii
Trang 4Th c T p T t Nghi p ực Tập Tốt Nghiệp ập Tốt Nghiệp ốt Nghiệp ệp 2014
M c L c ục Lục ục Lục
LỜI CẢM ƠN i
TÓM TẮT NỘI DUNG ii
MỤC LỤC HÌNH v
CÁC THUẬT NGỮ CHÍNH vi
Chương 1: TỔNG QUAN ĐỀ TÀI 1
1.1 Giới thiệu: 1
1.1.1 Tình hình sử dụng Smartphones tại Việt Nam 1
1.1.2 Tổng quan về hệ thống bảo mật dữ liệu trên Smartphones 1
1.1.3 Tổng quan về sinh trắc học 2
1.1.4 Vai trò quan trọng của sinh trắc học 2
1.2 Mục tiêu của bài toán 3
Chương 2: CƠ SỞ LÝ THUYẾT 4
2.1 Các phương pháp trích chọn đặc trưng 4
2.1.1 Khái quát về các đặc tính sinh trắc học của con người 4
2.1.2 Tổng quan về hệ thống nhận dạng mặt người cơ bản 5
2.1.3 Eigenfaces – PCA 7
Quá trình rút trích 9
2.1.4 Fisherfaces – LDA 13
2.1.5 So sánh PCA và LDA 14
2.2 Secure Sketch và Fuzzy Extractor 15
2.2.1 Secure Sketch 15
2.2.2 Fuzzy Extractor 16
Chương 3 CÁC NGHIÊN CỨU BỔ SUNG 17
3.1 Mô hình Small – Secure Sketch của Ee-Chien Chang và Qiming Li 17
3.1.1 Giải thuật 17
3.1.2 Đánh giá và kết luận 18 iii
Trang 5Th c T p T t Nghi p ực Tập Tốt Nghiệp ập Tốt Nghiệp ốt Nghiệp ệp 2014
3.2 Mô hình Codebook Secure Sketch của D-STAR Lab 18
3.2.1 Giải thuật 18
3.2.2 Đánh giá và kết luận 19
Chương 4 HIỆN THỰC DEMO 21
4.1 Tổng quan về Android 21
4.2 Các thư viện sử dụng 22
4.2.1 OpenCV 22
4.2.2 JavaCV 23
4.2.3 Apache Commons Library 23
4.2.4 Goole ZXing (Zebra Crossing) 23
4.3 Chương trình Demo 24
Chương 5: TỔNG KẾT 42
5.1 Đánh giá 42
5.2 Hướng phát triển luận văn 42
TÀI LIỆU THAM KHẢO 43
iv
Trang 6Th c T p T t Nghi p ực Tập Tốt Nghiệp ập Tốt Nghiệp ốt Nghiệp ệp 2014
MỤC LỤC HÌNH
Figure 1 Các đặc trừng sinh trắc của con người 4
Figure 2 Hệ thống nhận dạng mặt người cơ bản 5
Figure 3 Sơ đồ khối trích chọn đặc trưng sử dụng Eigenfaces 7
Figure 4 Chuẩn hóa ảnh 10
Figure 5 Trung bỉnh ảnh của tập dữ liệu 11
Figure 6 Kiến trúc của nền tảng Android 21
Figure 7 Các phiên bản Android 22
Figure 8 Cấu trúc chương trình 24
Figure 9 Icon demo 25
Figure 10 Màn hình chính của Demo 26
Figure 11 Màn hình training 27
Figure 12 Giao diện chụp ảnh 28
Figure 13 Giao diện sau khi chụp ảnh 29
Figure 14 Giao diện khi train 30
Figure 15 Một phần của data 31
Figure 16 Cửa sổ logcat khi train 32
Figure 17 Ảnh chụp thư mục train 33
Figure 18 Ảnh trung bình 33
Figure 19 Ảnh đặc trưng của từng khuôn mặt 34
Figure 20 Giao diện đăng ký 35
Figure 21 Giao diện sau khi chụp ảnh cần đăng ký 36
Figure 22 Giá trị đặc trưng của khuôn mặt đăng ký 37
Figure 23 Đăng ký thành công 38
Figure 24 Màn hình xác thực 39
Figure 25 Chụp ảnh khuôn mặt cần xác thực 40
Figure 26 Xác thực thành công 41
v
Trang 7Th c T p T t Nghi p ực Tập Tốt Nghiệp ập Tốt Nghiệp ốt Nghiệp ệp 2014
CÁC THUẬT NGỮ CHÍNH
AES Advanced Encryption Standard
DES Data Encryption Standard
JDK Java Development Kit
LDA Linear Discriminant Analysis
PCA Principal component analysis
vi
Trang 8Chương 1: TỔNG QUAN ĐỀ TÀI
1.1 Giới thiệu:
1.1.1 Tình hình sử dụng Smartphones tại Việt Nam
Ngày nay Smartphones đang dần trở nên phổ biến, với việc các hãng di động lớn như Apple,Samsung, LG, Sony…liện tục cho ra đời nhiều sản phẩm đa dạng với giá cả tầm trung, thì việc
sở hữu 1 chiếc Smartphones đã không còn là giấc mơ xa vời với nhiều người nữa Giờ đây chỉvới 1 người có thu nhập trung bình cũng có thể sở hữu trong tay 1 chiếc Smartphones với đầy đủcác tính năng nghe gọi, giải trí đa phương tiện Có thể nói Smartphones đã thâm nhập vào mọitầng lớp của xã hội, giờ đây nhắc tới điện thoại di động thì người ta đã tưởng tượng ngay đến 1công cụ phục vụ học tập, công việc, giải trí cho con người chứ không còn là thiết bị chỉ để nghe
và gọi
Tuy nhiên, bên cạnh những tiện ích thiết thực thì việc sử dụng Smartphones cũng mang đếnnhững rắc rối,rủi ro tiềm ẩn cho người dùng Nếu như lúc trước, khi mất đi một chiếc điện thoại,người dùng đơn thuần chỉ mất đi số tiền để mua chiếc điện thoại đó, thì ngày nay, giá trị màngười dùng mất đi sẽ rất lớn khi chiếc Smartphone của mình lọt vào tay kẻ gian Chính thói quenlàm việc và lưu trữ các thông tin cá nhân như mật khẩu máy chủ công ty, mật khẩu ATM, thôngtin tài khoản ngân hàng, thư điện tử,… trên Smartphones của người dùng đã gây ra điều này Khinhững thông tin cá nhân này rơi vào tay kẻ xấu, người dùng có nguy cơ mất tài sản lớn, các vấn
đề công việc của người dùng cũng bị ảnh hưởng, và thậm chí có nguy cơ bị mạo danh ngườidùng trong các dịch vụ khác ngoài đời
Tất cả các điều trên đã chứng tỏ được tầm quan trọng và cấp bách của việc bảo vệ dữ liệu ngườidùng trên Smartphones
1.1.2 Tổng quan về hệ thống bảo mật dữ liệu trên Smartphones
Có hai phương pháp cơ bản thường được sử dụng trong một hệ thống bảo vệ dữ liệu: xác thựcngười dùng và mã hóa dữ liệu
Phương pháp xác thực người dùng là phương pháp hệ thống kiểm tra người đang truy xuất vàtương tác với hệ thống của phải là người dùng thực và chủ nhân không Đa số các hệ thống hiệngiờ có phương pháp xác thực người dùng là sử dụng một chuỗi kí tự làm mật khẩu Xét về khíacạnh kỹ thuật, phương pháp này tương đối đơn giản Tuy nhiên, phương pháp này có bất lợi làngười dùng phải nhớ tên tài khoản định danh của mình và mật khẩu tương ứng để cung cấp cho
hệ thống mỗi lần muốn truy cập hệ thống dữ liệu lưu trữ Thêm nữa, việc tấn công một hệ thống
sử dụng mật khẩu là một chuỗi kí tự đơn giản sẽ không quá khó khăn cho kẻ gian
Trang 9Phương pháp mã hóa dữ liệu là phương pháp bảo vệ dữ liệu, chỉ người dùng nắm được khóa(key) giải mã mới có thể đọc được dữ liệu Có khá nhiều giải thuật mã hóa dữ liệu được các nhàkhoa học, các tổ chức lớn nghiên cứu và phát triển như DES, Triple DES, AES,… Đa số các hệthống mã hóa dữ liệu sử dụng khóa là một chuỗi kí tự tương tự như mật khẩu trong xác thực Tuynhiên, việc bắt người dùng phải nhớ được khóa tương ứng với dữ liệu là một bất lợi cho phươngpháp này.
Mỗi người có một đặc điểm sinh học duy nhất Dữ liệu sinh trắc học của từng cá nhân với đặc điểm khuôn mặt, ảnh chụp võng mạc, giọng nói sẽ được kết hợp với nhau bằng phần mềm để tạo
ra mật khẩu dành cho những giao dịch điện tử, phương thức đó là "công nghệ sinh trắc đa nhân tố" Sự phát triển của công nghệ đã thay đổi từ việc lăn tay trên mực và lưu trữ trên giấy sang quét trên máy và lưu trữ kỹ thuật số
1.1.4 Vai trò quan trọng của sinh trắc học.
Sử dụng sinh trắc học trong phương pháp xác thực người dùng và mã hóa dữ liệu là một giải
pháp rất hứa hẹn cho vấn đề bất tiện của người dùng được nêu ở mục trên (1.1.2) Sự tiện lợi và
hiệu quả của việc sử dụng sinh trắc học được thể hiện qua các đặc điểm dưới đây của sinh trắchọc con người:
Duy nhất: mỗi người đều có các sinh trắc học khác nhau Hai người tuy có giống nhau
như sinh đôi, nhưng vẫn khác nhau ở một số đặc điểm như vân tay Vấn đề kẻ xấu đoánmật khẩu sẽ trở nên khó khăn hơn khi dùng sinh trắc học
Phổ biến: tất cả mọi người đều sở hữu các đặc điểm sinh trắc học Điều này khiến
phương pháp sinh trắc học không giới hạn người dùng
Tiện lợi: người dùng không cần phải nhớ mật khẩu hay khóa của mình khi sử dụng hệ
thống vì chính bản thân con người họ cùng các đặc điểm sinh trắc học đã là mật khẩu vàkhóa
Trang 10Tuy nhiên, việc sử dụng sinh trắc học cũng gặp phải một số vấn đề cần lưu ý Việc bảo vệ sinhtrắc học cũng như việc dữ liệu đặc trưng sinh trắc học có thể bị nhiễu do điều kiện ngoại cảnh(ánh sáng trong hình ảnh, tiếng ồn khi thu âm giọng nói, các hệ thống hỗ trợ việc rút trích sinhtrắc học (sensors) có thể không chính xác) là những vấn đề cần có giải pháp khắc phục Do đó,
hệ thống bảo vệ dữ liệu trên Smartphones sử dụng sinh trắc học cần phải có phương pháp sửdụng sinh trắc học con người một cách hợp lý
1.2 Mục tiêu của bài toán
Tìm hiểu và trình bày cách thức rút trích dữ liệu sinh trắc học Đề tài sử dụng hình ảnhkhuôn mặt (hai chiều 2D) làm đặc trưng sinh trắc học người dùng trong xác thực và mãhóa dữ liệu vì hầu hết thiết bị di động Smartphones ngày nay đều có thiết bị chụp ảnh
Nghiên cứu 2 mô hình sửa lỗi và bảo vệ (template protection) là Secure Sketch và FuzzyExtractor
Xây dựng Demo ứng dụng trên thiết bị di động chạy hệ điều hành Android Việc chọnAndroid làm nền tảng xây dựng Demo xuất phát từ sự phát triển bùng nổ của nền tảngnày, hiện tại đa số Smartphones trên thị trường đều chạy hệ điều hành Android, ngoài raAndroid là nền tảng mã nguồn mở, có thể dễ dàng phát triển hệ thống và tùy chỉnh trongtương lai
Trang 112.1 Các phương pháp trích chọn đặc trưng
2.1.1 Khái quát về các đặc tính sinh trắc học của con người
Đặc tính sinh trắc của con người là đặc tính đo được các nét hành vi riêng của con người Nhậndiện người được thực hiện trong quá trình kiểm tra tính đồng nhất của đặc tính sinh trắc giữangười cần kiểm tra với đặc tính tương tự của người đã được lưu sẵn trong CSDL Có thể nhậndiện người dựa trên các đặc điểm sinh trắc tĩnh trên người như khuôn mặt, mắt, vân tay, bàn tay,gen…hay các đặc trưng hành vi
như dáng đi, chữ viết, giọng nói…
Figure 1 Các đặc trừng sinh trắc của con người
Dữ liệu sinh trắc lý tưởng của người cần phải có những đặc tính cơ bản như:
Tính tổng quát: Mỗi người đều được thể hiện bởi đặc tính này.
Tính duy nhất: Không thể tồn tại hai người có đặc tính giống nhau.
Tính thường xuyên: Là sự độc lập của đặc tính đối với thời gian.
Tính thu thập được: Là đặc tính được thu thập một cách tương đối đơn giản và nhanh
chóng từ mỗi cá nhân và có thể được chi tiết hóa
2.1.2 Tổng quan về hệ thống nhận dạng mặt người cơ bản
Trang 12Figure 2 Hệ thống nhận dạng mặt người cơ bản
Tiền xử lý
Tiền xử lý khuôn mặt là bước xử lý hình ảnh khuôn mặt hai chiều trước khi đưa vào quátrình xác thực làm tăng độ chính xác của việc xác thực người dùng Ngoài ra tiền xử lýcòn đảm bảo dữ liệu đưa vào luôn đồng nhất về kích thước và định dạng Một số kỹ thuậttrong bước tiền xử lý khuôn mặt là chuyển về dạng bitmap, chuyển về ảnh trắng đen(grayscale), nhận dạng khuôn mặt (face detection)
Chuyển về dạng bitmap: Hình ảnh thường được chụp và ghi lại bằng nhiều kích
thước và định dạng khác nhau Phần lớn các thư viện xử lý hình ảnh hiện nay đềuchỉ hoạt động được khi hình ảnh đưa vào cùng kích thước và định dạng Thựchiên bước này giúp cho hình ảnh đưa vào có cùng một dạng chuẩn bitmap (.bmp)
Chuyển về ảnh trắng đen (Gray-scaling): Để đảm bảo việc xử lý hình ảnh được
chính xác, ta cần phải loại bỏ những tác nhân gây nhiễu trong hình ảnh khuôn mặt
và màu sắc là một trong những tác nhân đó Do đặc trưng khuôn mặt của conngười thường ít phụ thuộc vào màu sắc và các giá trị màu sắc RGB thường ảnhhưởng đến các giải thuật nhận dạng khuôn mặt (ảnh hướng tới độ sáng tối, đặctrưng khuôn mặt) nên cần phải chuyển ảnh về dạng trắng đen trước khi xử lý
Nhận dạng khuôn mặt (Face detection): Hình ảnh đưa vào trong quá trình nhận
dạng thường không phải chỉ là hình ảnh khuôn mặt mà thường có thêm những chitiết xung quang như khung cảnh, phông nền … Những chi tiết này tuy không lớn
Trang 13nhưng sẽ ảnh hưởng phần nào đến kết quả của quá trình rút trích đặc trưng từkhuôn mặt Bước nhận dạng khuôn mặt sẽ xử lý vấn đề này bằng cách loại bỏ cácyếu tố xung quanh và chỉ xử lý trên khuôn mặt của người dùng Ngoài ra các đặctrưng không quan trọng và dễ thay đổi trên khuôn mặt như tóc đều sẽ được loại
bỏ Quá trình xử lý khuôn mặt sẽ chỉ tập trung vào các đặc trưng chính của khuônmặt như mắt, mũi, miệng Quá trình nhận dạng khuôn mặt sẽ bao gồm các bướcsau:
o Chuẩn bị một tập các ảnh huấn luyện (training set),
o Tính toán các eigenfaces từ tập huấn luyện và giữ lại M eigenfaces cóeigenvalue lớn nhất, M eigenfaces này định nghĩa “face space” cho việcnhận dạng
o Chiếu các ảnh khuôn mặt vào trong “face space” ta được các vector đặctrưng cho mỗi khuôn mặt là các vector của các hệ số
o Chiếu khuôn mặt cần được nhận dạng vào “face space” và xác định xem nóphù hợp nhất với khuôn mặt đã biết nào bằng cách so sánh vector hệ số của
nó với các vector trong tập huấn luyện
Trích rút đặc trưng:
Trích rút đặc trưng là kỹ thuật sử dụng các thuật toán để lấy ra những thông tin mangnhững đặc điểm riêng biệt của một người
Có 3 phương pháp: phương pháp tiếp cận toàn cục (global, ví dụ điển hình là Eigenfaces
- PCA, Fisherfaces - LDA), phương pháp tiếp cận dựa trên các đặc điểm cục bộ (localfeature based, như LBP, Gabor wavelets) và phương pháp lai (hybrid, là sự kết hợp củahai phương pháp toàn cục và local feature) Đề tài này sẽ sử dụng phương pháp tiếp cậntoàn cục – một phương pháp đơn giản và được sử dụng khá phổ biến
Các khâu trong quá trình trích chọn đặc trưng:
o Đầu vào: Ảnh đã được chuẩn hóa
o Đầu ra: vector đặc trưng của ảnh đầu vào
Quá trình trích rút đặc trưng được thể hiện qua lưu đồ sau:
Trang 14Figure 3 Sơ đồ khối trích chọn đặc trưng sử dụng Eigenfaces
2.1.3 Eigenfaces – PCA
Giới thiệu:
Phương pháp này được phát minh năm 1901 bởi Karl Pearson và hiện nay nó được sửdụng như công cụ để phân tích dữ liệu nghiên cứu và thực hiện các mô hình dự đoán.PCA còn bao gồm cả việc tính toán phân tích các giá trị đặc trưng của một ma trận tuơng
Trang 15quan dữ liệu hay phân tính các giá trị đơn của ma trận dữ liệu thường sau khi tính trungbình dữ liệu của mỗi thuộc tính PCA là phương pháp đơn giản nhất phân tích đa biếndựa trên các vector đặc trưng Thông thường hoạt động của nó có thể được hiểu nhằmkhám phá ra cấu trúc bên trong của dữ liệu Nếu một tập dữ liệu đa biến được xem xétnhư tập các tọa độ trong một không gian dữ liệu nhiều chiều (mỗi trục biểu diễn mộtbiến) thì phương pháp PCA cung cấp cho chúng ta một bức ảnh ít chiều, một cái bongcủa vật thể khi quan sát từ chính những đặc trưng cơ bản nhất của vật thể đó.
Đối với các ảnh khuôn mặt, dù có khác nhau như thế nào đi nữa thì chúng vẫn có chungcác “mẫu” (pattern) thông tin nhất định, gọi là các eigenfaces Các mẫu thông tin này cóđóng góp vào các khuôn mặt khác nhau với tỉ lệ khác nhau, mỗi khuôn mặt có thể xấp xỉthành một tổ hợp tuyến tính các eigenfaces và vector các hệ số là đặc trưng cho khuônmặt đó trong tập hợp các khuôn mặt hiện tại
Các eigenfaces là tập các eigenvector của ma trận hiệp phương sai xây dựng từ tập ảnhhuấn luyện
Mục tiêu của phương pháp PCA là “giảm số chiều” của 1 tập vector sao cho vẫn đảm bảo được “tối đa thông tin quan trọng nhất” Phương pháp PCA sẽ giữ lại K thuộc tính
“mới” từ M các thuộc tính ban đầu (K<M)
Tính eigenfaces:
Phương pháp PCA coi một ảnh xám R x C pixels là một vector trong không gian
N = R x C chiều Không gian mới được tạo ra bởi PCA được cấu thành từ K vector đơn
Trang 16Gọi A={Φ1, Φ2, … ,Φ M} ta có ma trận hiệp phương sai của A :
Gọi các giá trị riêng của C là λ1, λ2, … , λ n sắp xếp theo thứ tự giảm dần, tương
ứng với N vector riêng u1,u2, … , u n Các vector riêng này trực giao từng đôi một Mỗi
vector riêng u i được gọi là một eigenface Tập hợp vector ban đầu được biểu diễn trongkhông gian tạo bởi N eigenface theo mô tả sau:
Vector các hệ số khai triển [w1, w2, … , w k] chính là biểu diễn mới của ảnh được
tạo ra trong không gian PCA Ảnh mới ^x vẫn giữ được các đặc điểm chính của ảnh đầu
vào Vector [w1, w2, … , w k] được tính theo công thức sau :
M là số ảnh đầu vào Ta có thể chứng minh như sau: gọi v i , μ i lần lượt là vector riêng và
giá trị riêng của ma trận L:
AT.A.vi = v i μ i.
Nhân cả hai vế với A ta có : A.AT.A.vi = v i μ i.A
Ta thấy A.vi chính là vector riêng của C = A.AT ứng với giá trị riêng μ i
Quá trình rút trích
Giai đoạn 1 : Tạo ra các eigenfaces thông qua quá trình học các ảnh mẫu.
Trang 17 Giai đoạn 2 : Chiếu vector ảnh cần nhận dạng vào không gian eigenface Các
vector đặc trưng của ảnh đầu vào là phép chiếu từ ảnh ban đầu vào không giantạo bởi các eigenface
Chuẩn hóa ma trận ảnh :
Chuẩn hóa vector là khâu đầu tiên cần thực hiện khi sử dụng thuật toán PCA Sự phân bốcủa một vec-tơ trong không gian được thể hiện qua trung bình (mean) và chuẩn (standart)của vector đó
Cho vector X = [x1, x2, … , xn] trung bình và chuẩn của vector X được tính như sau :
Phép chuẩn hóa ma trận ảnh được thực hiện theo công thức sau:
Trong đó, Γ là ma trận ảnh đã được chuẩn hóa, (x, y) là tọa độ điểm ảnh Kết quả quá trình chuẩn hóa được thể hiện như sau:
Figure 4 Chuẩn hóa ảnh
Trang 18Tính trung bình tập ảnh đầu vào :
Khâu này cho ta xác định được gốc tọa độ của không gian vector biểu diễn các ảnh Ảnhtrung bình được tính bằng trung bình cộng của tất cả các ảnh Ảnh trung bình này thểhiện những điểm giống nhau nhất giữa tất cả các ảnh Gọi số ảnh học là N, mỗi ảnh cókích thước R x C
S = { Γ1, Γ2, … , ΓM}
Trung bình N ảnh trên được tính theo công thức:
Sau khi tính được ảnh trung bình của bộ ảnh học, các ảnh đầu vào sẽ được so sánh vớiảnh trung bình này Ảnh mới sẽ chứa những điểm khác nhau giữa ảnh đầu vào so với cácảnh còn lại Ta có tập vec-tơ đầu vào mới sau khi so sánh với trung bình :
Trang 19Tính eigenface:
Ma trận Covariance (covariance matrix) thể hiện sự tương quan của từng vectơ
đối với các vector còn lại trong không gian
Cho 2 vector N chiều X = [x1, x2, … , xn] và Y = [y1, y2, … , yn] ta có tương quan
giữa 2 vector trên được tính theo công thức
Nếu 2 vector được chuần hóa trước, ứng với :
Cho một tập M vector N chiều [Φ1, Φ2, … , Φn ] xếp thành một ma trận A kích
thước N x M , ta có covariance của ma trận A là một ma trận C có kích thước NxN , phần
tử C(i , j) được tính như sau :
Vector riêng (eigenvector) và giá trị riêng (eigenvalue): Cho ma trận vuông
C ∈ ℝNxN vector riêng u và giá trị riêng λ khi và chỉ khi : C.u = λ.u
Theo lý thuyết, eigenface chính là các vector riêng u ứng với các giá trị riêng v có giá trị lớn nhấtcủa ma trận covariance:
Để tính nhanh các eigenface này, người ta chuyển sang tính toán với ma trận L=AT.A Lựa chọn
K vector riêng v ứng với K giá trị riêng lớn nhất của L Ta có công thức chuyển đổi: u = A.v Các giá trị riêng của L cũng chính là các giá trị riêng của C
Gọi các giá trị riêng của L là: λ = { λ1, λ2, … , λn} sắp xếp theo thứ tự giảm dần K
giá trị riêng lớn nhất được lựa chọn theo công thức :
Trang 20Trong đó, ε là ngưỡng chọn.
2.1.4 Fisherfaces – LDA
Nếu như phương pháp Eigenface tập trung chỉ ra chỉ những feature đặc trưng để phân biệt 2object thực thể khiến việc xây dựng lại khuôn mặt ban đầu không hiệu quả, thì Fisherfaces đicùng với giải thuật tuyến tính LDA có thể làm được tốt việc này
Mục tiêu của Fisherface không tập trung vào việc tối đa phân hóa các cá thể, mà là tối đa phânhóa các lớp, gom cụm các cá thể thành lớp Các bước của thuật giải LDA được nêu sau:
Gọi X là 1 vector ngẫu nhiên trong tập mẫu từ c lớp
Ta có 2 ma trận SB và SW được tính như sau:
Hệ số trung bình tương tự như eigenface là
Hệ số trung bình cho c lớp là
Trang 21Theo lý thuyết và mục tiêu của LDA, ma trận chiếu W lúc này sẽ có dạng như bên dưới:
Có 1 vấn đề ở đây là SW có bậc là N-c (N tập mẫu, c lớp) Điều này dẫn đến, trong quá trìnhnhận dạng, SW lúc nào cũng nhỏ hơn số chiều dữ liệu đầu vào (số lượng pixel) Từ đó có thểthấy Sw là ma trận đơn (singular) Vấn đề này được giải quyết khi ta sử dụng LDA trên dữ liệu
đã được cắt giảm (reduced data), cụ thể:
Và ma trận cần tìm (transformation matrix) lúc này là:
Trang 22 Xét về các mẫu test với kích thước nhỏ PCA cho kết quả tốt hơn LDA những với nhữngmẫu test có kích thước lớn và cần sự biểu diễn riêng biệt cho mỗi lớp thì LDA tỏ ra vượttrội so với PCA
2.2 Secure Sketch và Fuzzy Extractor
Nội dung phần này sẽ giới thiệu về 2 mô hình nổi tiếng trong việc sửa lỗi và bảo vệ (template protection) là Secure Sketch và Fuzzy Extractor Các kiến thức về 2 mô hình này được tham khảo từ công trình nghiên cứu đã có trên thế giới
2.2.1 Secure Sketch
Khi chúng ta sử dụng đặc trưng sinh trắc học vào trong các hệ thống xác thực và mã hóa, các đặctrưng này thường không thể rút trích một cách chính xác qua nhiều lần khác nhau Nguyên nhândẫn đến vấn đề này là do đặc trưng sinh trắc học thường thay đổi theo thời gian, gặp phải cái yếu
tố gây nhiễu do điều kiện ngoại cảnh và không có một nguyên tắc tuyệt đối nào cho quá trình rúttrích đặc trưng sinh trắc học Để xử lý vấn đề này, Secure Sketch là một trong những phươngpháp giúp việc lấy dữ liệu đáng tin cậy từ mẫu dữ liệu có nhiễu và sửa lỗi
Secure Sketch là mô hình được sử dụng để khôi phục chính xác lại đặc trưng sinh trắc họcnguyên mẫu với đầu vào là một đặc trưng sinh trắc học có sự giống nhau một cách tương đối sovới mẫu ban đầu 2 mẫu sinh trắc học được xem là giống nhau khi khoảng cách giữa chúngkhông lớn hơn một ngưỡng nào đó
Mô hình Secure Sketch gồm có 2 bước: tạo sketch và khôi phục dữ liệu
Ở bước tạo sketch, dữ liệu đầu vào của hệ thống là 1 mẫu sinh trắc học và đầu ra là mộttập dữ liệu được gọi là sketch Sketch là 1 thông tin mở, có thể truy xuất được từ tất cảmọi người, bởi vì người dùng không thể khôi phục mẫu sinh trắc học chỉ với sketch
Ở bước khôi phục dữ liệu, hệ thống nhận dữ liệu đầu vào là sketch và mẫu sinh trắc họcmới Nếu mẫu sinh trắc học mới gần giống mẫu ban đầu thì hệ thống sẽ xuất ra mẫu sinhtrắc học ban đầu
Trong các mẫu dữ liệu sinh trắc học, ta thường có 2 loại nhiễu đặc trưng:
Nhiễu giá trị (white noise): loại nhiễu làm cho giá trị dữ liệu bị thay đổi Giá trị của dữliệu bị thay đổi một khoảng a so với dữ liệu gốc
Trang 23 Nhiễu thay thế (replacement noise): là loại nhiễu thay thế một phần tử của dữ liệu gốcbằng một phần tử khác ngẫu nhiên
Tương ứng với 2 loại nhiễu dữ liệu trên, chúng ta có 2 loại Secure Sketch được sử dụng riêngbiệt cho từng loại nhiễu:
Hamming distance Secure Sketch: Secure Sketch được sử dụng để xử lỷ nhiễu giá trị(white noise)
Set difference Secure Sketch: Secure Sketch được sử dụng để xử lý nhiễu thay thế(replacement noise)
2.2.2 Fuzzy Extractor
Fuzzy Extractor là mô hình bao gồm Secure Sketch và một bộ Randomness Extractor Nếu nhưvai trò của Secure Sketch chỉ là khôi phục và sửa lỗi đặc trưng sinh trắc học thì Fuzzy Extractorđảm nhận vai trò xác thực độ chính xác của đặc trưng sinh trắc vừa được khôi phục Ngoài ra,Fuzzy Extractor còn có đảm bảo các dữ liệu mà hệ thống sinh ra và lưu xuống là ngẫu nhiên(random) thông qua bộ Randomness Extractor
Cụ thể, Fuzzy Extractor hoạt động với 2 bước như sau:
Ở bước đầu tiên, Fuzzy Extractor cũng sẽ nhận đầu vào sinh trắc học và lưu các thông tincần thiết (Sketch)
Ở bước sau, dữ liệu đầu vào sinh trắc học khác sẽ được đưa vào bộ Secure Sketch FuzzyExtractor sử dụng Secure Sketch để khôi phục và sửa lỗi đặc trưng sinh trắc học
Cuối cùng, dữ liệu đã được sửa lỗi thông qua bộ Secure Sketch, sẽ tiếp tục được đưa qua
bộ Randomness Extractor để tạo ra dữ liệu ngẫu nhiên hoàn toàn Trong các quá trình xácthực thì dữ liệu ngẫu nhiên này có ý nghĩa rất lớn, đây chính là dữ liệu được lưu trữxuống để sử dụng cho việc xác thực người dùng Dữ liệu sinh ra là dữ liệu ngẫu nhiênnên kẻ tấn công attacker sẽ gặp khó khăn Điều này giúp độ bảo mật của hệ thống đượcnâng cao
Trang 24Chương 3 CÁC NGHIÊN CỨU BỔ SUNG
3.1 Mô hình Small – Secure Sketch của Ee-Chien Chang và Qiming Li
Mô hình Small Secure Sketch là mô hình sửa lỗi trên tập dữ liệu do Ee-Chien Chang và
Qiming Li đề xuất trong “Small Secure Sketch for Point-Set Difference” (2005)
Mô hình này hoạt động dựa trên cơ chế point-set difference và được dùng để sửa lỗi
“nhiễu thay thế”phần tử trong tập set bằng một phần tử khác Mô hình này dựa trên kháiniệm tính toán đa thức để giải bài toán sửa lỗi trong tập dữ liệu và có thể được dùng trongsửa lỗi đa tập multiset
3.1.1 Giải thuật
Gọi số lượng lỗi có thể sửa tối đa là t, mô hình sẽ hoạt động được với kích thước tập set tối đa là2t(1+log n) Giải thuật sẽ gồm các bước sau:
Tạo Sketch: Giả sử cho tập dữ liệu X = { x1, x2 x3, x4, …xn} với t là số lỗi tối đa có
thể sửa Ta tạo sketch theo các bước sau
o Xây dựng đa thức bậc n:
o Tính toán các giá trị trong tập P = ( p(0), p(1), p(2),…, p(2t-1))
o Tập P chính là sketch của tập dữ liệu
Sửa lỗi: Ta có giá trị đầu vào trong quá trình sửa lỗi là tập Y = {y1, y2, y3, , yn}và tập
Sketch P = ( p(0), p(1), p(2),…, p(2t-1)) Ta sửa lỗi theo các bước sau:
o Xây dựng đa thức bậc n:
o Tính toán các giá trị trong tập Q = ( q(0), q(1), q(2),…,q(2t-1))
o Xây dựng đa thức bậc t:
o Xây dựng đa thức bậc t:
Trang 25o Với 2 phương trình p’(x) và q’(x) ta có aj và bj là những tham số chưađược xác định Để xác định aj và bj, ta tiến hành giải hệ phương trình sau
q(i)p’(i) = q’(i)p(i) với 0 ≤ i ≤ 2t-1
o Thế aj và bj tìm được từ hệ phương trình trên vào đa thức p’(x) và q’(x) vàtìm nghiệm Ta gọi tập nghiệm của p’(x) là X’ và của q’(x) là Y’
o Kết quả của quá trình sửa lỗi là R = (Y ∩ X’) \ Y’
3.1.2 Đánh giá và kết luận
Nghiên cứu của Ee-Chien Chang và Qiming Li đã được đề tài hiện thực lại trên môi trường JDK1.7, Windows 8 với thư viện được sử dụng để hỗ trợ tính toán là Apache Commons Math
Đánh giá: nghiên cứu của Ee-Chien Chang và Qiming Li không phù hợp cho việc xử lý các tập
set lớn Với t và n lớn, các công nghệ phù hợp cho nền tảng di động Android hiện nay như Javagặp khó khăn trong việc tính toán nghiệm vì Java không phải là ngôn ngữ chuyên dụng cho tínhtoán chính xác Độ lớn của số hạng trong các đa thức là xt với (x [0,2000] và t [0,20]) thường cógiá trị rất lớn và nghiệm tìm được của các đa thức thường có sai số ảnh hưởng đến giải thuật
Kết luận: phương pháp của Ee-Chien Chang và Qiming Li không phù hợp với việc sửa lỗi trên
cái tập set có số lượng phần tử lớn như vector đặc trưng sinh trắc học
3.2 Mô hình Codebook Secure Sketch của D-STAR Lab
Mô hình Codebook Secure Sketch là mô hình sửa lỗi trên tập dữ liệu do Tran Tri Dang, QuynhChi Truong, Tran Khanh Dang nhóm Data Security Applied Research (D-STAR) Lab đề xuấttrong “Practical Construction of Face-based Authentication Systems with Template ProtectionUsing Secure Sketch” (2013)
Mô hình này hoạt động dựa trên ý tưởng của Y.Dodis trong để sửa lỗi khi nhiễu thay đổi giá trịcủa phần tử trong tập set một khoảng so với phần tử gốc Phần tử này sẽ được sửa nếu khoảngcách thay đổi bé hơn một khoảng t cho trước Mô hình này có độ chính xác khá cao trong các thí
nghiệm trên tập dữ liệu khuôn mặt Faces94.
3.2.1 Giải thuật
Mô hình Codebook hoạt động trên miền giá trị rời rạc nên cần bước lượng tử hóa (quantization)
để chuyển từ miền giá trị liên tục (số thực) về miền giá trị rời rạc (số nguyên)
Trang 26 Quantization: Quá trình quantization được thực hiện theo các bước sau:
o Sau khi chuẩn hóa, ta có các giá trị của vector đặc trưng chạy từ [0, 1]
o Chuyển từ miền [0, 1] thành [0, N], ta nhân các giá trị của vector với N
o Sau đó ta làm tròn các giá trị để chuyển về miền số nguyên
Tạo Sketch: Ta có [0, N] là miền giá trị của các phần tử trong vector và t là khoảng cách
tối đa có thể sửa lỗi
trong khoảng [0, N] và khoảng cách giữa mỗi 2 điểm là như nhau Khoảng cáchgiữa các điểm là 2t + 1 Do đó với mỗi codeword c trong codebook, tất cả các giátrị trong khoảng [c – t, c + t] sẽ được chuyển về codeword là c
tập Sketch của vector là S = {s0, s1, s2,…, sn} Với
si = wi – M(wi)
Sửa lỗi: Với giá trị đầu vào xác thực là Z = {z0, z1, z2,…,zn} và tập Sketch là S = {s0,
s1, s2,…, sn}, ta thực hiện như sau
o Ta có tập W’ = {w’0, w’1, w’2,…,w’n} là tập kết quả sau sửa lỗi
Sự chính xác của giải thuật được chứng minh như sau:
Ta có: w’i = M(zi-si) + si
Thế si = wi – M(wi), ta có w’i = M(zi-wi + M(wi)) + wi – M(wi)
Với | zi – wi | < t, ta có zi-wi + M(wi) nằm trong khoảng [M (w i) – t, M (w i) + t]
=> M(zi-wi + M(wi)) = M(wi)
=>w’ = w
3.2.2 Đánh giá và k t lu n ết luận ận.
Nghiên cứu của nhóm D-STAR đã được đề tài hiện thực trên nền tảng Android 2.2, JDK 1.6 sử dụng thư viện JavaCV 0.3