CHƢƠNG 4 : XÂY DỰNG MÔ HÌNH THỰC NGHIỆM
4.1. Xây dựng mơ hình
4.1.1. Phƣơng pháp xây dựng
4.1.1.1. Các giai đoạn tiến trình
Các giai đoạn xây dựng đƣợc tóm tắt trong hình.
Nguồn [2]
Hình 4.1: Các giai đoạn của tiến trình
- Các đặc trƣng khn mặt đƣợc rút trích. Các định dạng của các đặc trƣng đƣợc rút trích phụ thuộc vào các phƣơng pháp nhận dạng khuôn mặt đƣợc sử dụng.
- Quá trình lƣợng tử đƣợc áp dụng cho giá trị đặc trƣng trong phạm vi liên tục để chuyển đổi chúng thành các giá trị trong phạm vi riêng biệt. Giai đoạn này là cần thiết bởi vì giá trị riêng biệt cho phép dễ dàng phục hồi chính xác hơn so với các giá trị liên tục. Các giá trị lƣợng tử đóng vai trị của w và w' nhƣ đƣợc mô tả trong phần secure sketch [5.2.1].
- Giai đoạn tạo sketch s bởi w.
- Và cuối cùng, giai đoạn phục hồi đặc trƣng cố khôi phục w ban đầu bằng w' và s. Xác minh xem việc so khớp đặc trƣng đã phục hồi với đặc trƣng w ban đầu, một hàm băm một chiều có thể đƣợc áp dụng cho w và kết quả đƣợc lƣu trữ. Sau đó, cùng một hàm băm đƣợc áp dụng cho đặc trƣng đã phục hồi và kết quả của nó đƣợc so sánh với giá trị đƣợc lƣu trữ. [26]
4.1.1.2. Rút trích đặc trƣng 4.1.1.2.1. Eigenfaces 4.1.1.2.1. Eigenfaces
Cho một tập huấn luyện hình ảnh khn mặt, phƣơng pháp Eigenfaces tìm thấy một khơng gian con tốt nhất để hiển thị những hình ảnh khuôn mặt. Tọa độ của
Feature extraction Quantization
Sketch generation
không gian con này đƣợc gọi là eigenfaces vì là vector riêng của ma trận hiệp phƣơng sai của tập hình ảnh khn mặt ban đầu và có cùng kích thƣớc nhƣ các hình ảnh khn mặt. Các chi tiết của tính tốn các eigenfaces nêu trong phần [4.3.1].
Khi eigenfaces đƣợc tính tốn, mỗi hình ảnh có thể đƣợc chiếu lên khơng gian của nó. Nếu số lƣợng eigenfaces là N, sau đó mỗi hình ảnh trong khơng gian này đƣợc trình bày bởi một vector N chiều. [26]
4.1.1.2.2. Fisherfaces
Phƣơng pháp này tìm kiếm sự giảm kích thƣớc dựa trên mục đích phân biệt. Phƣơng sai giữa các khn mặt trong cơ sở dữ liệu có thể có từ biến dạng nhƣ chiếu sáng, biểu hiện trên khuôn mặt, và sự thay đổi thái độ. Và đôi khi, những biến dạng này lớn hơn so với biến dang trong số những khn mặt chuẩn. Những hình ảnh của một khuôn mặt đặc biệt, dƣới ánh sáng khác nhau nhƣng cố định tƣ thế, nằm trong một không gian con tuyến tính 3D của hình ảnh khơng gian chiều cao. (khơng có bóng). [26]
Fisherfaces cố gắng tìm một cơ sở có thể giảm thiểu sự thay đổi trong nội bộ lớp nhƣng bảo vệ sự biến đổi giữa các lớp. Chứ không phải mơ hình hóa một cách rõ ràng độ lệch này, chúng ta tuyến tính tạo ra hình ảnh vào một khơng gian con theo cách thức giảm giá các vùng của khuôn mặt với độ lệch lớn [26]
4.1.1.2.3. Biểu đồ Local Binary Patterns
Trong phƣơng pháp này, lần đầu tiên, một hình ảnh khn mặt đƣợc chuyển thành LBP hình ảnh. Mỗi giá trị pixel đƣợc tính bằng giá trị lân cận của mình. Nếu các điểm ảnh trung tâm là lớn hơn hoặc bằng giá trị lân cận nó, sau đó biểu thị nó bằng 1 và 0 nếu ngƣợc lại. Các pixels xung quanh mang lại một số nhị phân cho một pixel trung tâm. Sau đó, hình ảnh đƣợc chia thành các khu vực nhỏ và biểu đồ đƣợc tính tốn cho từng khu vực. Các vector đặc trƣng thu đƣợc bằng cách ghép các biểu đồ cục bộ. Trong trƣờng hợp này, nếu một hình ảnh đƣợc chia thành các khu vực A, sau đó nó đƣợc trình bày bởi một vector N chiều, trong trƣờng hợp này N = 256A (256 màu xám). [26]
4.1.1.3. Lƣợng tử
Mục đích của giai đoạn lƣợng tử hóa là để chuyển đổi giá trị đặc trƣng từ miền liên tục vào miền rời rạc. Trong cái nhìn thống qua, giai đoạn này có thể làm giảm sự an tồn của các q trình xác thực đáng kể bằng cách giảm khơng gian tìm
kiếm liên tục với các yếu tố vơ hạn để tìm kiếm một khơng gian riêng biệt với phần tử hữu hạn. Tuy nhiên, kẻ thăm dị tấn cơng sẽ hiểu rằng xác thực sinh trắc học khơng phải là một q trình đối sánh chính xác, và do đó khơng cần phải thử tất cả các giá trị có thể, nhƣng chỉ có giá trị cách nhau bởi một ngƣỡng. Nói cách khác, chỉ có giá trị hữu hạn là cần thiết để bắt buộc tấn công các giá trị mẫu liên tục. Hơn nữa, chúng ta có thể kiểm sốt kích thƣớc của vùng lƣợng tử bằng cách thay đổi phạm vi của các giá trị liên tục mà đã ánh xạ tới các giá trị lƣợng tử tƣơng tự. Đối với những lý do này, giai đoạn này thực sự không ảnh hƣởng đến sự an toàn của hệ thống xác thực. [26]
Quá trình lƣợng tử hoạt động nhƣ sau: sau khi chuẩn hóa, giá trị của mỗi phần tử của các vector đặc trƣng là một số điểm nổi trong [0,1]. Sau đó, q trình lƣợng tử sẽ thay đổi giá trị này đến một số nguyên trong [0, N], với N > 0. Cho x là giá trị trƣớc khi lƣợng tử hóa, và x' là giá trị sau khi lƣợng tử hóa, sau đó cơng thức lƣợng tử có thể đƣợc viết nhƣ (6.1). Chức năng vòng trả về một số nguyên gần nhất với một tham số.
x' = round(xN) (6.1)
4.1.1.4. Tạo sketch
Giai đoạn tạo sketch cho ra thơng tin cơng khai s có thể đƣợc sử dụng sau này để phục hồi mẫu lƣợng tử hóa w. Q trình này đƣợc mơ tả nhƣ sau. [26]
Vùng của w là [0, N]. Chúng ta tạo ra một codebook ở đó từ các codewords phủ khắp khoảng [0, N] và khoảng cách giữa bất kỳ cặp hàng codeword lân cận là nhƣ nhau. Đặc biệt, khoảng cách giữa các codewords ci và ci+1 là 2δ trong đó δ là một số nguyên dƣơng. Sau đó, đối với bất kỳ giá trị của w trong phạm vi [ci - δ, ci + δ], hàm đối ánh xạ M trả về codeword gần nhất của w, hoặc M (w) = ci. Quy trình tạo sketch sử dụng chức năng ánh xạ để trả lại một giá trị w khác biệt và codeword gần nhất, hoặc
SS(w) = w – M(w) (6.2)
Các giá trị của quy trình tạo sketch SS(w) là trong khoảng [- δ, δ] phân biêt với giá trị đặc biệt của w. Vì vậy, với SS (w), một kẻ tấn công chỉ biết rằng giá trị chính xác w là dƣới hình thức SS (w) + M (w). Để bắt buộc tấn công hệ thống, những kẻ tấn công cần phải thử tất cả các giá trị có thể của M(w), hay tất cả codeword. Các δ lớn hơn là, nhỏ hơn các không gian codeword là. Lƣu ý rằng
không gian codeword luôn luôn là nhỏ hơn so với không gian lƣợng tử [0, N]. Khi δ = 1, không gian codeword nhỏ hơn so với không gian lƣợng tử ba lần, và khi δ = 2, con số này là năm lần.
4.1.1.5. Phục hồi đặc trƣng
Cung cấp đầu vào xác thực w', giai đoạn phục hồi đặc trƣng sử dụng s và w' để tái tạo w nếu sự khác biệt giữa w và w' nhỏ hơn hoặc bằng δ. Gọi là giá trị phục hồi là w", nó đƣợc tính nhƣ
w" = M(w' – SS(w)) + SS(w) (6.3)
Để chứng minh w đúng là sao chép lại khi | w - w ' | ≤ δ, thay thế SS (w) bơi right-hand-side (2), chúng ta có
w" = M (w' - w + M (w)) + w - M (w) (6.4)
Nếu |w - w'| ≤ δ, sau đó w' - w + M (w) là trong [M (w) - δ, M (w) + δ]
Theo cơng trình codebook, áp dụng các hàm ánh xạ trên bất kỳ giá trị trong phạm vi này sẽ trả lại codeword gần nhất, cũng là M(w). Thay thế các hàm M (w' - w + M (w)) nhƣ M (w) trong cơng thức (6.4), chúng ta có w" = w
4.1.1.6. Phân tích bảo mật
Trong phần này, chúng ta xem xét sự an tồn của cơng trình đề xuất chống lại các cuộc tấn công cơ bản nhất: brute-force. Mỗi mẫu đặc trƣng w có thể đƣợc coi nhƣ là một vector của N thành phần. Để có đƣợc w đúng, mọi phần tử trong vector phải đƣợc sửa chữa thành công. Trong phần trƣớc, chúng ta đã chứng minh rằng mỗi từ mã phải cố gắng để tấn công brute-force một phần tử. Trong xây dựng hiện hành, chúng ta sử dụng lƣợng tử hóa và codebook nhƣ nhau cho tất cả các yếu tố phân biệt phân bố giá trị của nó. Vì vậy, giả sử có S codewords trong một codebook, và sau đó trung bình, một kẻ tấn cơng phải cố gắng SN/2 trƣờng hợp để có đƣợc w đúng bằng một cuộc tấn công brute-force. Tất nhiên, kẻ tấn cơng có thể sử dụng các thơng tin phân bố cúa các giá trị để giảm số lƣợng tìm kiếm cần thiết, nhƣng nó vƣợt khỏi phạm vi báo cáo này. [26]
Dƣới đây là số liệu cụ thể liên quan đến độ bảo mật của các thử nghiệm. - Phạm vi lƣợng tử là [0, 1000]
- Eigenfaces:
+ Ta thử nghiệm với N = 10, 12, 14, 16, 18
+ Bảo mật tối thiểu và tối đa đƣợc cung cấp là 2010 và 20018 - Fisherfaces
+ Ta thử nghiệm với N = 10, 12, 14, 16, 18
+ Không gian codeword S = 20 (với δ = 25) đến 200 (với δ = 2) + Bảo mật tối thiểu và tối đa đƣợc cung cấp là 2010 và 20018 - LBPH
+ Chúng ta chia các hình ảnh vào một lƣới 5 x 5. Vì vậy, ta có N = 5 x 5 x 256 = 6400
+ Không gian codeword S = 5 (với δ = 85) đến 10 (với δ = 50) + Bảo mật tối thiểu và tối đa đƣợc cung cấp là 56400 và 106400
4.1.2. Thí nghiệm
Cơng trình xây dựng đƣợc thử nghiệm với cơ sở dữ liệu Faces94 [16]. Các thí nghiệm đo lƣờng tỷ lệ chấp nhận sai (tỷ lệ mỗi lần hệ thống trả lời là đúng đối với dữ liệu vào là sai) và tỷ lệ từ chối sai (tỷ lệ mỗi lần hệ thống trả lời là sai đối với dữ liệu vào là đúng) của các thuật toán nhận dạng khác nhau và với không gian codeword khác nhau. Mục đích của thí nghiệm là để xác minh khả năng áp dụng các cơng trình xây dựng trong ứng dụng thực tế với ngƣỡng hợp lý. Ta chọn ảnh của 19 ngƣời, lấy ngẫu nhiên trong cơ sở dữ liệu Faces94 để kiểm thử. Mỗi ngƣời lấy 18 ảnh để huấn luyện và 2 ảnh để kiểm thử. Và cho kiểm thử phân phối với nhau nhƣ vậy là ta có 19x19 lần thử. [26]
4.1.2.1. Eigenfaces
Ta sử dụng 18 ảnh huấn luyện để tạo ra các vector đăc trƣng. Sau đó, sử dụng tập còn lại để phục hồi các vectơ đăc trƣng đặc trƣng ban đầu. Cho mỗi cặp hình ảnh, x và y, chƣơng trình này cố gắng phục hồi x từ y. Vì vậy, nếu x và y là nhƣ nhau, hệ thống sẽ phục hồi một cách chính xác và nếu x là khác nhau từ y, hệ thống không thể phục hồi x. Số eigenfaces chọn là 10, 12, 14, 16 và 18. Và từ codeword đƣợc lựa chọn với không gian nhƣ nhau và phạm vi là 2-25. Tỷ lệ từ
Nguồn [tác giả]
Hình 4.2: Tỷ lệ chấp nhận sai của thuật toán eigenfaces.
4.1.2.2. Fisherfaces
Ta sử dụng 18 ảnh huấn luyện để tạo ra các vector đăc trƣng. Sau đó, sử dụng tập còn lại để phục hồi các vectơ đăc trƣng đặc trƣng ban đầu. Cho mỗi cặp hình ảnh, x và y, chƣơng trình này cố gắng phục hồi x từ y. Vì vậy, nếu x và y là nhƣ nhau, hệ thống sẽ phục hồi một cách chính xác và nếu x là khác nhau từ y, hệ thống không thể phục hồi x. Số eigenfaces chọn là 10, 12, 14, 16 và 18. Và từ codeword đƣợc lựa chọn với không gian nhƣ nhau và phạm vi là 2-25. Tỷ lệ từ
chối sai luôn luôn là 5%. Tỷ lệ chấp nhận sai đƣợc mơ tả trong hình 4.3.
Nguồn [tác giả]
4.1.2.3. Biểu đồ Local Binary Patterns
Đối với các thuật toán Local Binary Patterns Histograms, ta chia hình ảnh khuôn mặt vào một lƣới 5 x 5, và cho mỗi ơ của lƣới, có 256 giá trị cho 256 cấp độ màu xám. Do đó, kích thƣớc của các vector đặc trƣng trong trƣờng hợp này là 5x5x256, đó là 6400. Từ codeword đƣợc lựa chọn với không gian nhƣ nhau và phạm vi từ 50 đến 85. Lý do ta dừng lại ở 85 vƣợt quá giá trị này, tỷ lệ chấp nhận sai giảm đáng kể. Giống nhƣ 2 thuật toán trƣớc, Local Binary Patterns Histograms tỷ lệ từ chối sai là 10% khi kích thƣớc của là nhiều hơn một số ngƣỡng. Tỷ lệ
chấp nhận sai của thuật tốn này đƣợc mơ tả trong hình 4.4
Nguồn [tác giả]
Hình 4.4: Tỷ lệ chấp nhận sai của thuật tốn LBPH.
4.2. Thiết kế ứng dụng
Sản phẩm ứng dụng xác thực sinh trắc học khuôn mặt trên thiết bị di động đƣợc xây dựng trên hệ điều hành Android
Môi trƣờng phần mềm đƣợc sử dụng xây dựng ứng dụng bao gồm:
- JDK (Java Development Kit): một tập hợp những công cụ phần mềm đƣợc phát triển bởi Sun Microsystems dành cho các nhà phát triển phần mềm, dùng để viết những applet Java hay những ứng dụng Java.
- Môi trƣờng phát triển tích hợp Eclipse IDE: Eclipse IDE for Java EE Developers là một IDE đa ngôn ngữ đƣợc viết trên Java với một hệ thống plug-in mở rộng cho phép ngƣời dùng bổ sung nhiều tính năng. Eclipse là một trong số công cụ phát triển phần mềm mạnh nhất hiện nay.
- Bộ công cụ phát triển ứng dụng Android (Android SDK).
- ADT Plugin (phần mở rộng cho Eclipse) để tạo một mơi trƣờng tích hợp xây dựng một ứng dụng Android.
- Hệ điều hành Windows 7
Sản phẩm ứng dụng bao gồm 2 chức năng sau: - Bảo mật các ứng dụng mà ngƣời dùng áp dụng
- Xác thực ngƣời dùng bằng đặc trƣng sinh trắc học khuôn mặt
Nguồn [tác giả]
Hình 4.5: Mơ hình ứng dụng
4.3. Giao diện ứng dụng
Files
Activities, Java classes
Java Native Interfaces
Jni framework
Files
Nguồn [Tác giả]
Nguồn [Tác giả]
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN Kết luận
Luận văn đã mô tả nền tảng lý thuyết của một hệ thống xác thực ngƣời dùng qua đặc trƣng khn mặt, luận văn trình bày lý thuyết tổng quan về xác thực sinh trắc học, lý thuyết về các đặc trƣng khuôn mặt và các phƣơng pháp rút trích đặc trƣng. Nhƣng quan trọng hơn là trong luận văn đã mô tả các phƣơng pháp bảo mật mẫu trắc học với những thuận lợi và hạn chế riêng. Lý thuyết về phƣơng bảo mật đƣợc lựa chọn trong luận văn là Fuzzy Extractor và Secure Sketch để áp dụng bảo mật cho các mẫu sinh trắc học khuôn mặt trong sản phẩm.
Tuy chƣa có đóng góp quan trọng nào vào trong lý thuyết về phƣơng pháp rút trích đặc trƣng và phƣơng bảo mật Fuzzy Extractor và Secure Sketch nhƣng tôi đã mất rất nhiều thời gian đọc các tài liệu kèm theo để hiểu phƣơng pháp bảo mật thật tốt này và hiện thực hóa ứng dụng trên thiết bị di động thông minh đang đƣợc sử dụng rất phổ biến trong xã hội góp phần bảo vệ dữ liệu ngƣời dùng đƣợc lƣu trên thiết bị.
Xây dựng đƣợc một ứng dụng xác thực sinh trắc học khuôn măt trên thiết bị di động, kiểm tra và đánh giá kết quả.
Hƣớng phát triển
Tích hợp xác thực sinh trắc học vào hệ điều hành Android
Thử nghiệm trên các tập dữ liệu thực lớn. Từ đó tiến hành nghiên cứu nâng cao hiệu quả sử dụng của ứng dụng.
Sử dụng các đặc trƣng sinh trắc học khác
Kết hợp nhiều đặc trƣng sinh trắc cùng một lúc. Sử dụng các phƣơng pháp rút trích đặc trƣng khác Hiện thực trên các hệ điều hành khác: IOS, …
TÀI LIỆU THAM KHẢO
[1] Amit Sethi, Omair Manzoor, Tarun Sethi - User Authentication on Mobile Devices, 2010
[2] Anil K. Jain, Karthik Nandakumar và Abhishek Nagar - Biometric Template Security, 2008
[3] Ann Cavoukian và Alex Stoianov - Biometric Encryption: A Positive-Sum Technology that Achieves Strong Authentication, Security AND Privacy, 2007
[4] ASN Chakravarthy và Prof.P S Avadhani - A Probabilistic Approach for Authenticating Text or Graphical Passwords Using Back Propagation, 2011
[5] Advantages and Limitations,
http://www.scourge.fr/mathdesc/documents/facerecog/AdvantagesLimitations. htm, truy cập ngày 25/06/2013
[6] Timo Ahonen, Abdenour Hadid, and Matti Pietikăainen: Face Recognition