Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 37

HỌC VIỆN KỸ THUẬT MẬT MÃ

KHOA CÔNG NGHỆ THÔNG TIN


¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

BÁO CÁO CHUYÊN ĐỀ KỸ THUẬT LẬP TRÌNH AN TOÀN


ĐỀ TÀI:
NGHIÊN CỨU XÁC THỰC BẰNG KHUÔN MẶT

Cán bộ hướng dẫn:

Sinh viên thực hiện:

Hà Nội - 2024
HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA AN TOÀN THÔNG TIN

KỸ THUẬT LẬP TRÌNH AN TOÀN


ĐỀ TÀI:
NGHIÊN CỨU XÁC THỰC BẰNG KHUÔN MẶT

Nhận xét của cán bộ hướng dẫn:...................................................................


.......................................................................................................................
.......................................................................................................................
.......................................................................................................................
.......................................................................................................................
.......................................................................................................................
.......................................................................................................................
.......................................................................................................................
.......................................................................................................................
Điểm chuyên cần:.........................................................................................
Điểm báo cáo:...............................................................................................
Xác nhận của cán bộ hướng dẫn

1
MỤC LỤC
BẢNG PHÂN CÔNG VIỆC.........................................................................................3
DANH MỤC HÌNH VẼ................................................................................................4
LỜI MỞ ĐẦU...............................................................................................................5
Chương 1: Tổng quan về xác thực sinh trắc học...........................................................6
1. Tổng quan về định danh và xác thực...................................................................6
2. Xác thực sinh trắc học..........................................................................................9
3. Khái niệm về Eigenface.....................................................................................11
4. State of the Art (SOTA).....................................................................................13
5. Một số khái niệm khác liên quan..........................................................................14
6. Kết luận..............................................................................................................17
Chương 2: Mô hình xác thực sinh trắc khuôn mặt......................................................19
1. Tổng quan về bài toán nhận diện khuôn mặt........................................................19
2. Thuật toán HOG trong việc phát hiện khuôn mặt................................................19
3. Framework Django và module Face_recognition................................................21
4. Một số lỗ hổng liên quan đến xác thực bằng sinh trắc khuôn mặt.......................23
Chương 3: Triển khai hệ thống xác thực khuôn mặt có đảm bảo tính riêng tư...........25
a. Quá trình train hệ thống.....................................................................................25
b. Quá trình thực hiện mô hình..............................................................................30
KẾT LUẬN.................................................................................................................34
a. Đánh giá kết quả đạt được..................................................................................34
b. Hạn chế, tồn tại..................................................................................................34
c. Phương hướng phát triển tương lai....................................................................34
TÀI LIỆU THAM KHẢO...........................................................................................35

2
BẢNG PHÂN CÔNG VIỆC
Sinh viên thực hiện Ghi chú
Chương 1
Chương 2
Chương 3

3
DANH MỤC HÌNH VẼ

Hình 1: Mô hình chung của bài toán nhận dạng khuôn mặt…………………………19
Hình : Mô tả thuật toán HOG

4
LỜI MỞ ĐẦU
Trong bối cảnh ngày càng gia tăng của cuộc sống số, việc xây dựng hệ thống
sinh trắc học không chỉ mang lại sự tiện lợi trong việc xác minh người dùng và quản
lý thông tin cá nhân, mà còn đặt ra những thách thức lớn về bảo mật và tính riêng tư.
Bản báo cáo này tập trung vào đề tài "Nghiên cứu hệ thống sinh trắc khuôn mặt" để
giải quyết những thách thức này.
Trong quá trình phát triển, chúng tôi đã nhận thức rõ về sự quan trọng của việc
không chỉ nâng cao hiệu suất xác minh và ứng dụng thực tế của hệ thống sinh trắc
học mà còn tập trung đặc biệt vào việc giảm thiểu rủi ro liên quan đến bảo mật và
tính riêng tư của người dùng. Điều này là nguyên tắc hướng dẫn mọi quyết định thiết
kế và triển khai của chúng tôi.
Trong các phần tiếp theo của báo cáo, chúng tôi sẽ trình bày một cái nhìn tổng
quan về sinh trắc học và tính riêng tư, đánh giá thách thức và cơ hội trong việc xây
dựng hệ thống sinh trắc học, và mô tả chi tiết về kiến trúc hệ thống và các biện pháp
bảo mật được tích hợp. Chúng tôi cũng sẽ chia sẻ kết quả thử nghiệm và đánh giá
hiệu suất của hệ thống, đồng thời so sánh chúng với các tiêu chí và quy định về tính
riêng tư.
Do kiến thức bản thân còn hạn chế cũng như chưa có kinh nghiệm làm một
chương trình lớn và có tính ứng dụng thực tế cao nên trong quá trình thực hiện nhóm
tôi còn phạm phải nhiều sai sót cũng như chương trình thành phẩm có thể còn tồn tại
lỗi không mong muốn. Rất mong nhận được góp ý của thầy để chúng tôi hoàn thiện
hơn và rút kinh nghiệm cho những đồ án, dự án lớn hơn trong tương lai. Một lần
nữa,chúng tôi xin chân thành cảm ơn thầy và chúc thầy nhiều sức khỏe!

5
Chương 1: Tổng quan về xác thực sinh trắc học
1. Tổng quan về định danh và xác thực

* Định danh

- Định danh là quá trình xác định một thực thể, người dùng, hoặc tài khoản cụ thể
trong hệ thống hoặc môi trường nào đó. Điều này có nghĩa là chúng ta xác định ai
đó bằng cách gán cho họ một tên định danh hoặc một dạng nhận dạng khác.
Thông tin định danh thường là duy nhất và không trùng lặp trong hệ thống.
- Định danh có thể là các thông tin như tên, địa chỉ email, số điện thoại, số chứng
minh thư, tên đăng nhập (username), hoặc bất kỳ thông tin nào có thể dùng để
phân biệt một người dùng hoặc thực thể khỏi các người dùng hoặc thực thể khác.

* Xác thực

- Xác thực là quá trình xác minh xem người dùng hoặc thực thể cố gắng truy cập
hệ thống hoặc dịch vụ có phải là người dùng hoặc thực thể đó hay không. Điều
này đảm bảo rằng chỉ những người dùng được phép và có quyền truy cập mới có
thể tiến hành truy cập.
- Xác thực thường đòi hỏi việc cung cấp bằng chứng cụ thể để chứng minh danh
tính. Trong trường hợp của username và password, mật khẩu (password) được sử
dụng làm bằng chứng để xác minh danh tính. Người dùng phải cung cấp mật
khẩu chính xác để được xác thực.
- Xác thực có thể được thực hiện bằng nhiều cách khác nhau, bao gồm cả sử dụng
thẻ thông tin, dấu vân tay, mã xác thực tạm thời, hoặc xác thực hai yếu tố (2FA).
- Một quá trình xác thực thành công là cơ sở để cấp quyền truy cập cho người dùng
vào hệ thống hoặc dịch vụ.

* Nhân tố xác thực

- Nhân tố xác thực (authentication factor) là thông tin sử dụng cho quá trình xác
thực.
- Có 3 loại nhân tố xác thực chính

 Cái người dùng biết (Something you know)


o Mật khẩu (password): Điều này thường là phương pháp chính để xác thực
người dùng. Họ phải nhập mật khẩu mà họ đã thiết lập để truy cập tài khoản
của họ.

6
o Câu hỏi riêng tư: Ngoài mật khẩu, một số hệ thống yêu cầu người dùng đưa
ra câu trả lời cho một hoặc một số câu hỏi riêng tư. Thông tin này thường
được sử dụng để khôi phục mật khẩu nếu người dùng quên nó.

o Ưu điểm của việc sử dụng các nhân tố xác thực này bao gồm sự đơn giản và
giá thấp:
 Đơn giản: Việc xác thực dựa trên username và password là cách đơn
giản để đảm bảo an toàn tài khoản. Người dùng chỉ cần nhớ mật khẩu và
câu trả lời cho câu hỏi riêng tư.
 Chi phí thấp: Triển khai hệ thống xác thực này không đòi hỏi nhiều
nguồn lực kỹ thuật hoặc tài chính.
o Tuy nhiên, cách tiếp cận này cũng có nhược điểm quan trọng:
 Nguy cơ bị lộ (đánh cắp): Mật khẩu và câu trả lời cho câu hỏi riêng tư có
thể bị đánh cắp bởi các kẻ xâm nhập hoặc trong các cuộc tấn công mạng.
Khi thông tin này bị tiết lộ, tài khoản của người dùng có thể bị đe dọa.
 Nguy cơ bị quên: Người dùng có thể quên mật khẩu hoặc câu trả lời cho
câu hỏi riêng tư, và việc khôi phục mật khẩu có thể trở nên phức tạp
hoặc đòi hỏi thời gian.

 Cái người dùng có (Something you have)


o Chìa khóa, giấy tờ tùy thân: Đây có thể là chìa khóa vật lý, giấy tờ tùy
thân như hộ chiếu hoặc giấy phép lái xe. Người dùng cần sở hữu và trình
diện chúng để xác thực danh tính.
o Thẻ từ, smartcard: Thẻ từ hoặc smartcard là một phương tiện vật lý chứa
thông tin xác thực. Người dùng cần cắm hoặc đọc thông tin từ thẻ để xác
thực.
o OTP token, Cryptographic token, khóa mật mã: Đây là các thiết bị tạo ra
mã một lần (OTP) hoặc chứa thông tin mật mã dùng để xác thực. Người
dùng cần cung cấp mã này để xác thực.
o SIM điện thoại: SIM điện thoại có thể được sử dụng để xác thực bằng
cách gửi mã xác thực đến số điện thoại của người dùng. Họ cần truy cập
mã này để hoàn thành quá trình xác thực.
o Ưu điểm của việc sử dụng các nhân tố xác thực này bao gồm khả năng
xác thực đa nhân tố, làm tăng tính bảo mật:
 Xác thực đa nhân tố: Kết hợp nhiều yếu tố xác thực này tạo ra một
hệ thống mạnh mẽ hơn để bảo vệ tài khoản người dùng.

7
o Tuy nhiên, cách tiếp cận này cũng có nhược điểm quan trọng:
 Chi phí cao: Các thiết bị vật lý như thẻ từ, smartcard, OTP token
hoặc khóa mật mã thường đắt tiền để triển khai.
 Có thể bị mất, chiếm đoạt, làm giả: Các thiết bị vật lý có thể bị
thất lạc, đánh cắp hoặc làm giả, dẫn đến vấn đề bảo mật và khôi
phục.
 Cái thuộc về bản thể người dùng (Something about you/that you are)
o Khuôn mặt, vân tay, bàn tay: Các đặc điểm về khuôn mặt, vân tay hoặc bàn
tay của người dùng được sử dụng để xác thực. Hệ thống quét và so sánh
chúng để kiểm tra danh tính.
o Võng mạc: Đặc điểm cụ thể của võng mạc của mắt người dùng được sử
dụng để xác thực danh tính.
o Giọng nói: Đặc điểm trong giọng điệu và cách nói của người dùng được sử
dụng để xác thực.
o Ưu điểm của việc sử dụng các nhân tố xác thực này bao gồm tính khó sao
chép, mất mát hoặc đánh cắp.
o Tuy nhiên, cách tiếp cận này cũng có nhược điểm quan trọng:
 Chi phí rất cao: Triển khai và duy trì các hệ thống xác thực dựa trên
sinh trắc học hoặc giọng nói có thể rất đắt đỏ.
 Có thể thay đổi theo thể trạng: Đặc điểm sinh trắc học như khuôn mặt
hoặc vân tay có thể thay đổi do sự thay đổi tự nhiên hoặc thương tích,
dẫn đến khó khăn trong việc xác thực.
 Không phù hợp cho xác thực qua mạng: Các phương thức xác thực
này đòi hỏi thiết bị cụ thể để thực hiện kiểm tra, điều này làm cho
chúng không phù hợp cho việc xác thực từ xa qua mạng.

- Có 2 nhóm nhân tố xác thực khác

 Đặc điểm hành vi người dùng


o Chữ ký bàn phím: Đặc điểm trong cách người dùng gõ phím trên bàn phím
được sử dụng để xác thực. Hệ thống theo dõi cách họ gõ từng phím và tạo
ra một loại "chữ ký" duy nhất.
o Chữ ký viết tay (tốc độ và gia tốc): Tốc độ và cách người dùng viết tay
được sử dụng để xác thực. Hệ thống quan sát tốc độ viết và gia tốc của bút
viết hoặc ngón tay trên màn hình cảm ứng.
o Ưu điểm của việc sử dụng các nhân tố xác thực này bao gồm tính khó sao
chép và đánh cắp.
8
o Tuy nhiên, cách tiếp cận này cũng có nhược điểm quan trọng:
 Chi phí cao: Triển khai và duy trì các hệ thống xác thực dựa trên đặc
điểm hành vi có thể đòi hỏi nhiều tài nguyên và có chi phí cao.
 Không ổn định; có thể thay đổi theo thời gian: Đặc điểm hành vi của
người dùng có thể thay đổi theo thời gian, ví dụ như thay đổi cách gõ
phím hoặc viết tay, làm cho việc xác thực trở nên không ổn định.
 Không phù hợp cho xác thực qua mạng: Các phương thức xác thực này
thường yêu cầu sự tương tác trực tiếp với thiết bị cụ thể, do đó không
phù hợp cho việc xác thực từ xa qua mạng.

 Vị trí của người dùng


o Việc sử dụng hệ thống định vị toàn cầu để xác định vị trí của họ trên mặt
đất. Thông qua các công nghệ định vị như GPS, Wi-Fi, hoặc các dịch vụ địa
lý, hệ thống có khả năng xác thực người dùng dựa trên vị trí địa lý hiện tại
của họ.
o Tuy nhiên, việc sử dụng định vị vị trí cũng có nhược điểm quan trọng:
 Chi phí rất cao: Triển khai và duy trì hệ thống định vị toàn cầu có thể đòi
hỏi sự đầu tư lớn, từ việc mua sắm và cài đặt thiết bị cho đến việc quản
lý và bảo trì.
 Làm lộ thông tin riêng tư người dùng: Thu thập thông tin vị trí có thể
tiềm ẩn vấn đề về quyền riêng tư của người dùng. Các dự án xác thực
dựa trên vị trí cần phải đảm bảo tính bảo mật và sự đồng thuận của
người dùng về việc chia sẻ thông tin địa lý của họ.
Sử dụng vị trí của người dùng để xác thực có thể hữu ích trong một số trường
hợp, nhưng cần được áp dụng cẩn thận và tuân thủ các quy định về quyền riêng
tư và bảo mật để đảm bảo sự tôn trọng đối với thông tin cá nhân của họ.

2. Xác thực sinh trắc học


2.1 Mô tả sơ lược
Sinh trắc học hay xác thực sinh trắc học là một hình thức bảo mật đo lường và
đối sánh các tính năng sinh trắc học của người dùng để xác minh rằng một người
đang cố gắng truy cập vào một thiết bị cụ thể được phép làm như vậy (có phải là
chính chủ hay không). Do sinh trắc học là đặc điểm sinh học riêng biệt của người
dùng cho nên sẽ có tính bảo mật cao.

9
Ưu điểm:

 Có khả năng cải thiện tính bảo mật, kiểm soát truy cập an toàn, thoải mái,
tránh để lộ thông tin người dùng cho tội phạm mạng
 Là một giải pháp bảo mật hiện đại và phức tạp nhất, có độ chính xác gần
như là tuyệt đối trong quá trình xác thực
 So với phương pháp xác thực truyền thống, bảo mật sinh trắc học có thao tác
thực hiện nhanh hơn, người dùng hạn chế tình trạng quên chuỗi mật khẩu
dài và phức tạp như trước kia
 Khắc phục hiện tượng quá tải thông tin đăng nhập trên các ứng dụng hoặc
thiết bị khác nhau
 Xác thực sinh trắc học có tính linh hoạt, dễ đăng ký và triển khai sử dụng
Hạn chế:

 Các thiết bị xác thực sinh trắc học thường có chi phí đắt hơn so với thiết bị
nhập mật khẩu truyền thống
 Nhận dạng sinh trắc học không chính xác 100%. Ví dụ: Máy xác thực sinh
trắc học sẽ không nhận diện được giọng nói khi người dùng bị cảm cúm
hoặc không nhận diện được khuôn mặt khi người dùng tăng/giảm cân
 Gây ảnh hưởng đến quyền riêng tư của người sử dụng
2.2 Dấu vân tay
Dấu vân tay là một trong những đặc điểm nhận dạng sinh trắc phổ biến
sử dụng nhất(sử dụng từ rất lâu trong lĩnh vực tìm kiếm tội phạm). Dấu
vân tay có thể được số hóa và đưa vào máy tính thông qua thiết bị quét.
Tuy nhiên nhận dạng dấu vân tay không đơn giản là so sánh ảnh
bitmap(điều hầu như là bất khả thi vì chúng thường khá lớn và rất dễ khác
biệt do xô lệch khi chụp quét). Cơ chế xử lý ở đây là xây dựng một biểu
diễn đồ thị từ một ảnh vân tay, trong đó mỗi đỉnh là một dạng đặc trưng
xác định trước(ví dụ như chóp uốn). Vì vậy bài toán nhận dạng dấu vân
tay có thể chuyển về thành một vấn đề thuật toán kinh điển là so khớp đồ
thị(graph matching).
2.3 Giọng nói
Có thể sử dụng theo hai cách – so khớp về giọng và so khớp về nội
dung. So khớp giọng nói là so khớp với các mẫu đã được ghi nhận trong
cơ sở dữ liệu hệ thống. Kỹ thuật này được thực hiện thông qua việc phân
10
tích chiết suất các đặc tính tín hiệu và từ đó thực hiện các phép kiểm tra
giả thiết thống kê(statistical hypothesis). Ngược lại so khớp nội dung
không quan tâm đến người nói mà chỉ cần kiểm tra nội dung của câu trả
lời có phù hợp câu hỏi hay không.
2.4 Mắt
Ảnh võng mạc mặt cũng được xem là dấu hiệu xác định duy nhất cho
từng người. Ảnh có thể thu được thông qua máy chụp(khi nhìn vào khe
chỉ định của máy đo), sau đó được phân tích để xác định các yếu tố đặc
trưng. Các phép kiểm tra giả thiết thống kê cũng được sử dụng để loại bỏ
sự trùng khớp ngẫu nhiên.

2.5 Mặt
Tương tự các phương pháp trên, khi mặt được giữ cố định, người ta có
các thiết bị để chụp và chiết xuất các yếu tố đặc trưng cần thiết mà tổ hợp
của chúng được cho là có thể xác định duy nhất đối tượng.
2.6 Mẫu gõ phím(keystroke pattern)
Mặc dù đây là một quá trình động, việc theo dõi ghi nhận tốc độ, các
khoảng trễ trong khi gõ phím có thể đưa lại những mẫu gõ phím mang tính
đặc trưng của mỗi người. Các đặc trưng chiết xuất(mẫu gõ) cũng có thể
được sử dụng để so khớp với mẫu có sặc để sử dụng vào xác thực.
3. Khái niệm về Eigenface
Eigenface là một khái niệm trong lĩnh vực xử lý ảnh và nhận dạng khuôn mặt.
Nó được giới thiệu lần đầu tiên bởi Matthew Turk và Alex Pentland vào năm
1991.
Eigenface là một tập hợp các khuôn mặt ảo được tạo ra bằng cách sử dụng
phân tích thành phần chính (PCA - Principal Component Analysis). Ý tưởng cơ
bản của eigenface là xác định các thành phần chính trong một tập hợp các khuôn
mặt và sử dụng chúng để biểu diễn một khuôn mặt mới.
Quá trình xây dựng eigenface bao gồm các bước sau:
 Thu thập và chuẩn bị dữ liệu: Thu thập một tập hợp các khuôn mặt huấn
luyện từ các nguồn khác nhau. Các khuôn mặt này cần được chụp trong
cùng một điều kiện ánh sáng và góc nhìn. Sau đó, các khuôn mặt được
chuẩn hóa để đảm bảo kích thước và độ tương phản đồ nhất.
 Xây dựng ma trận ảnh: Các khuôn mặt huấn luyện được biểu diễn dưới
dạng các ma trận ảnh 2D, trong đó mỗi hàng biểu diễn một khuôn mặt. Các
giá trị trong ma trận ảnh thể hiện cường độ của mỗi pixel trong khuôn mặt.
 Phân tích thành phần chính (PCA): Áp dụng phương pháp PCA để phân
tích các thành phần chính của ma trận ảnh. PCA sẽ tìm các vectơ riêng
11
(eigenvectors) và giá trị riêng (eigenvalues) của ma trận hiệp phương sai
của dữ liệu, Các eigenvectors tương ứng với các eigenvalues lớn nhất đại
diện cho các eigenfaces.
 Xác định eigenfaces: Các eigenvectors được sắp xếp theo thứ tự giảm dần
của eigenvalues. Các eigenvectors hàng đầu (có eigenvalues lớn nhất) được
chọn làm eigenfaces. Mỗi eigenface là một vectơ hàng.
 Biểu diễn khuôn mặt mới: Để biểu diễn một khuôn mặt mới, ta transform
khuôn mặt đó thành một vectơ và tính toán trọng số tương ứng với mỗi
eigenface. Trong số này thể hiện độ tương quan của khuôn mặt mới với các
eigenfaces.
 Nhận dạng và so sánh: Để nhận dạng một khuôn mặt mới, ta tính toán
trọng số của khuôn mặt đó trong không gian eigenface và so sánh với trọng
số của các khuôn mặt huấn luyện đã biết trước. Khuôn mặt nới được gán
nhãn của khuôn mặt có trọng số tương tự nhất.
3.1 Kỹ thuật PCA (Phân tích thành phần chính)
Eigenface dựa trên kỹ thuật PCA để phân tích và trích xuất các thành
phần quan trọng từ tập hợp các khuôn mặt. PCA giúp giảm chiều dữ liệu và
tìm ra các trục chính trong không gian dữ liệu. Các thành phần chính
(eigenvectors) tương ứng với eigenfaces, là các hướng quan trọng trong không
gian khuôn mặt.
3.2 Biểu diễn dữ liệu khuôn mặt
Mỗi khuôn mặt trong tập huấn luyện có thể được biểu diễn dưới dạng
một vectơ, bằng cách chồng các giá trị pixel của khuôn mặt thành một vectơ
hàng. Vi dụ, nếu kích thước của mỗi khuôn mặt là 64x64 pixel, vectơ biểu
diễn khuôn mặt sẽ có kích thước 1x4096.
3.3 Sự quan trọng của eigenfaces
Các eigenfaces hàng đầu tương ứng với các eigenvalues lớn nhất chứa
thông tin quan trọng về transform và biểu diễn các khuôn mặt. Các eigenfaces
có eigenvalues nhỏ tương ứng với các thành phần ít quan trọng hơn.
3.4 Giảm kích thước dữ liệu
Eigenface cho phép giảm kích thước dữ liệu ban đầu bằng cách chỉ lưu
trữ một số lượng nhỏ eigenfaces hàng đầu. Điều này giúp giảm bộ nhớ và tăng
tốc độ xử lý khi thực hiện quá trình nhận dạng.

12
3.5 Nhược điểm của eigenface
Mặc dù eigenface có những ưu điểm, nhưng nó cũng có một số hạn chế.
Ví dụ, eigenface không nhạy cảm với các biến thể về góc nhìn, ánh sáng hoặc
biểu thức khuôn mặt. Nếu một khuôn mặt mới khác biệt quá nhiều so với các
khuôn mặt huẩn luyện, eigenface có thể không đưa ra kết quả chính xác.

4. State of the Art (SOTA)


State of the Art (SOTA) là thuật ngữ được sử dụng để chỉ trạng thái của nghệ
thuật, công nghệ, hoặc lĩnh vực nghiên cứu đang đạt được hiệu suất, tiến bộ, hoặc
thành tựu tốt nhất tới thời điểm hiện tại.
Trong mỗi lĩnh vực, có sự phát triển liên tục và các nghiên cứu mới được công
bố. State of the Art là mức tiến bộ cao nhất mà các nhà nghiên cứu, nhà phát triển,
hoặc cộng đồng trong lĩnh vực đó đã đạt được tại thời điểm hiện tại. Nó thường
được xác định bằng cách so sánh và đánh giá các phương pháp, công nghệ, hoặc
kỹ thuật hiện có dựa trên các tiêu chí như hiệu suất, độ chính xác, tốc độ, hoặc các
yếu tố khác liên quan. Nó đại diện cho tiêu chuẩn tốt nhất hiện có và có thể được
sử dụng làm điểm tham chiếu để so sánh và đánh giá các phương pháp hoặc công
nghệ mới.
Trong lĩnh vực nhận diện khuôn mặt, State of the Art (SOTA) thường được đo
bằng các phương pháp và thuật toán đạt được độ chính xác và hiệu suất cac nhất
trên các tập dữ liệu và thử nghiệm cụ thể. SOTA trong nhận diện khuôn mặt
thường được cập nhật liên tục khi có sự tiến bộ trong lĩnh vực này. Dưới đây l
một số ví dụ về SOTA trong nhận diện khuôn mặt:
 Deep Neural Networks - DNN: Trong nhận diện khuôn mặt, các mạng
nơ-ron sâu như Convolutional Neural Networks (CNN) đã đạt được hiệu
suất cao và được coi là SOTA trong nhiều nhiệm vụ nhân viện khuôn
mặt. Các mạng nơ-ron sâu này sử dụng lớp tích chập để học các đặc
trưng của khuôn mặt và thực hiện phân loại hoặc nhận dạng.
 Deep Metric Learning: Phương pháp này tập trung vào việc học các
không gian biểu diễn chung cho các khuôn mặt và khoảng cách giữa
chúng. Điều này giúp tạo ra những biểu diễn mà các khuôn mặt của cùng
một người gần nhau hơn so với các khuôn mặt của những người khác.

13
Phương pháp này đã đạt được kết quả tốt và được coi là SOTA trong
việc nhận diện khuôn mặt trong các tình huống đa người.
 Attention-based models: được áp dụng trong việc nhận diện khuôn mặt
để tập trung vào các phần quan trọng của khuôn mặt như mắt, mũi,
miệng. Điều này giúp cải thiện độ chính xác và hiệu suất của hệ thống
nhận diện khuôn mặt. Các mô hình attention đã đạt được kết quả tốt và
được coi là SOTA trong một số thách thức nhận diện khuôn mặt khó
khăn.
 Kết hợp các phương pháp: Ngoài ra, để đạt được kết quả tốt hơn, các
nghiên cứu đã kết hợp nhiều phương pháp và kỹ thuật như mạng nơ-ron
sâu, học sâu học đại diện và mô hình attention. Kết hợp các phương
pháp này đã đạt được SOTA trong nhiều nhiệm vụ nhận diện khuôn mặt
khó khăn như nhân diện khuôn mặt ở góc nhìn chéo, trong điều kiện ánh
sáng yếu hoặc với các transform khác nhau của khuôn mặt
Lưu ý rằng SOTA có thể thay đổi theo thời gian và phụ thuộc vào các bộ dữ
liệu và tiêu chuẩn đánh giá được sử dụng. Do đó, để nắm bắt SOTA trong nhận
diện khuôn mặt, nên tham khảo các công trình nghiên cứu mới nhất và các cuộc
thi hoặc thứ nghiệm đánh giá hàng đầu trong lĩnh vực này.
5. Một số khái niệm khác liên quan
5.1 Mã hóa đồng cầu
Mã hóa đồng cầu là một phương pháp mật mã hóa đặc biệt mà cho phép các
phép tính được thực hiện trên dữ liệu đã được mã hóa mà không cần giải mã.
Điều này rất hữu ích trong nhiều tình huống, đặc biệt là khi đòi hỏi tính riêng tư
và bão mặt của dữ liệu.
Trong môi trường mã hóa đồng cầu, hai phép tính quan trọng là phép cộng và
phép nhân có thể được thực hiện trực tiếp trên các giá trị đã được mã hóa mà
không cần biết giá trị gốc. Kết quả của các phép tính này sau đó có thể được giải
mã để nhận được kết quả cuối cùng.
Một số ứng dụng quan trọng:
 Bảo vệ quyền riêng tư: Mã hóa đồng cấu cho phép xử lý dữ liệu mà
không tiết lộ thông tin nhạy cảm. Điều này rất hữu ích trong các lĩnh vực
như y tế, tài chính và điện toán đám mây, nơi đã liệu cần được bảo vệ
khỏi việc truy cập trái phép.
 Xử lý dữ liệu phân tán: Trong môi trường phân tán, nhiều bên có thể
tham gia vào xử lý dữ liệu chung mà không cần tiết lộ thông tin của họ.

14
Mã hóa đồng cầu cho phép các bên thực hiện các phép tính trên dữ liệu
đã mã hóa mà không cần n truy cập đến dü liệu gốc.
 Mật mã đám mây: Mã hóa đồng cầu cũng được sử dụng trong mô hình
mật mã đám mây, nơi dữ liệu được lưu trữ và xử lý trên các máy chủ
đám mây mà không cần tiết lộ cho các nhà cung cấp dịch vụ đám mây.
Một số hạn chế và thách thức:
 Hiệu suất tính toán: Phương pháp mã hóa đồng cầu thường có tính toán
phức tạp và yêu cầu tài nguyên tính toán cao hơn so với các phương
pháp mã hóa truyền thống. Điều này có thể ảnh hưởng đến hiệu suất và
tốc độ xử lý của hệ thống.
 Kích thước mã hóa: Dữ liệu sau khi được mã hóa thường có kích thước
lớn hơn so với dữ liệu gốc. Điều này có thể tạo ra các vấn đề về lưu trữ
và truyền dữ liệu trong một môi trường phân tần
 Hạn chế của các phép tỉnh: Trong một hệ thống mã hóa đồng cấu, chỉ
một số phép tính cụ thể như cộng và nhân có thể được thực hiện trên dữ
liệu đã được mã hóa. Các phép tính phức tạp khác như chia, căn bậc hai
hoặc các phép tính logic phức tạp không thể được thực hiện trực tiếp trên
dữ liệu đã mã hóa.
Tóm lại, mã hóa đồng cầu là một công nghệ quan trọng trong lĩnh vực bảo mật
dữ liệu và quyền riêng tư. Nó cho phép xử lý dữ liệu mà không tiết lộ thông tin
nhạy cảm, có nhiều ứng dụng thực tế và đang tiếp tục được nghiên cứu để cải
thiện hiệu suất và mở rộng khả năng.
5.2 Khử nhiễu mặt nạ bằng ROI
Khử nhiễu mặt nạ bằng ROI trên khuôn mặt là một phương pháp trong xử lý
ảnh nhằm loại bỏ nhiều hoặc các vùng không cần thiết xung quanh khuôn mặt
trong một hình ảnh. Phương pháp này tập trung vào việc xác định khu vực quan
tâm (Region of Interest - ROI) trên khuôn mặt và loại bỏ các thông tin không cần
thiết nằm ngoài ROI đó.
Trong quá trình xử lý ảnh khuôn mặt, một bước quan trọng là xác định được vị
trí và đường biên của khuôn mặt. Sau khi khuôn mặt được xác định, phương pháp
khử nhiễu mặt nạ bằng ROI sẽ tạo ra một mặt nạ hoặc vùng quan tâm bao quanh
khuôn mặt. Mặt nạ này thường được tạo thành bằng cách co lại hoặc cắt bớt các
vùng nằm ngoài khuôn mặt.

15
Quá trình này giúp loại bỏ các nhiễu như các vật thể lạ, phông nền không cần
thiết hoặc các chi tiết không liên quan khác có thể xuất hiện trong hình ảnh. Kết
quả là chỉ còn lại một mặt nạ chính xác bao quanh khuôn mặt, loại bỏ các yếu tố
ngoại vi và tập trung vào phần quan trọng nhất - khuôn mặt.
Phương pháp khử nhiễu mặt nạ bằng ROI trên khuôn mặt thường được sử dụng
trong các ứng dụng nhận dạng khuôn mặt, phân tích biểu cảm, xử lý ảnh khuôn
mặt và các tác vụ liên quan khác. Nó giúp cải thiện độ chính xác và hiệu suất của
hệ thống bằng cách giảm nhiễu và tối ưu hóa thông tin quan trọng trên khuôn
mặt.

5.3 Attention transfer trong nhận dạng khuôn mặt


Attention transfer trong nhận dạng khuôn mặt là một kỹ thuật trong xử lý ảnh
và thị giác máy tính, nhằm xác định và tập trung vào các phần quan trọng của
khuôn mặt để thực hiện các nhiệm vụ nhận dạng.
Trong quá trình nhận dạng khuôn mặt, một hình ảnh chứa khuôn mặt được đưa
vào hệ thống. Tuy nhiên, không phải tất cả các phần của khuôn mặt đều có ý
nghĩa và quan trọng trong việc nhận dạng. Attention transfer được sử dụng để xác
định và tập trung vào các phần quan trọng như mắt, mũi, miệng hoặc các điểm
đặc trưng khác trên khuôn mặt.
Có nhiều phương pháp và thuật toán được sử dụng để Attention transfe trong
nhận dạng khuôn mặt, và dưới đây là một số ví dụ:
 Attention models: sử dụng các cơ chế để tập trung vào các vùng
quan trọng trên khuôn mặt. Các mô hình này thường sử dụng các
lớp mạng nơ-ron để học attention và dùng để xác định các vùng
cần quan tâm trên khuôn mặt.
 Landmark-based attention: Phương pháp này sử dụng các điểm
đặc trung như mắt, mũi, miệng làm điểm attention để tập trung
vào các vùng xung quanh. Các đặc trưng này được xác định trước
hoặc được dự đoán trong quá trình nhận dạng khuôn mặt, và
attention được transfer dựa trên vị trí và các thông tin liên quan
của các điểm attention này.

16
 Face segmentation: Phân đoạn khuôn mặt là quá trình tách riêng
vùng khuôn mặt từ phông nền và các vùng không phải khuôn mặt
trong hình ảnh. Sau khi phân đoạn, attention có thể tập trung chỉ
vào khu vực chứa khuôn mặt, loại bỏ các yếu tố ngoại vi và tối ưu
hóa quá trình nhận dạng.
Attention transfer trong nhận dạng khuôn mặt giúp cải thiện độ chính xác và
hiệu suất của hệ thống. Nó giúp giảm thiểu sự ảnh hưởng của các yếu tố ngoại vi
và tập trung vào các vùng chứa thông tin quan trọng nhất trong quá trình nhận
dạng khuôn mặt.
5.4 Tách kênh trong miền tần số
Tách kênh trong miền tần số là một phương pháp xử lý ảnh để phân tách các
thành phần của một hình ảnh các transform-based miền tần số như transform
Fourier hoặc transform Cosine rời rạc. Thay vì làm việc trực tiếp trên hình ảnh
gốc trong miền không gian, phương pháp này transform hình ảnh sang miền tần
số để tách riêng các thành phần tương ứng với các bước sóng khác nhau. Quá
trình tách kênh trong miền tần số thường bao gồm các bước sau:
Bước 1: Transform miền không gian sang miền tần số: Hình ảnh được
transform từ miền không gian sang miền tần số bằng cách áp dụng các transform
miền tần số như transform Fourier (FFT) hoặc transform Cosine rời rạc (DCT).
Điều này cho phép biểu diễn hình ảnh dưới dạng thành phần tần số
Bước 2: Phân tích các thành phần tần số: Trong miền tần số, các thành phần tần
số khác nhau của hình ảnh có thể được quan sát và phân tích riêng biệt. Các thành
phần này thường liên quan đến thông tin về mức độ biến thiên và hướng của các
cấu trúc trong hình ảnh.
Bước 3: Tách riêng các thành phần tần số: Dựa trên các đặc điểm của các thành
phần tần số trong miền tần số, ta có thể áp dụng các quy tắc hoặc thuật toán để
tách riêng các thành phần tương ứng. Ví dụ, ta có thể xác định các thành phần tần
số cao cấp biểu thị các chỉ tiết nhỏ hoặc các cạnh, trong khi các thành phần tần số
thấp biểu thị thông tin toàn cục hoặc các cấu trúc tổng quát.
Bước 4: Transform lại miền không gian: Sau khi các thành phần tần số đã được
tách riêng, ta có thể transform chúng từ miền tần số trở lại miền không gian bằng
cách áp dụng phép nghịch transform tương ứng (như nghịch transform Fourier
hoặc nghịch transform Cosine rời rạc). Phương pháp tách kênh trong miền tần số
có thể được áp dụng trong nhiều ứng dụng xử lý ảnh, bao gồm giảm nhiễu, nén
ảnh, trích xuất đặc trưng và phân tích hình ảnh.
17
6. Kết luận
Công nghệ sinh trắc học đóng vai trò quan trọng trong việc xác định và xác
minh danh tính của con người dựa trên các đặc điểm sinh trắc học duy nhất của
họ. Ưu thế của công nghệ sinh trắc học bao gồm:
 Độ tin cậy cao: Các đặc điểm sinh trắc học như vân tay, khuôn mặt,
võng mạc, giọng nói, hình dạng cơ thể, hình dạng ký tự viết tay và nhận
diện hình mạch máu não đều là duy nhất và không thể sao chép hoặc mô
phỏng dễ dàng. Điều này giúp công nghệ sinh trắc học đạt được độ tin
cậy cao trong việc xác định và xác mình danh tính
 Bảo mật cao: Các đặc điểm sinh trắc học là thông tin cá nhân đặc biệt và
không thể thay đổi dễ dàng. Vì vậy, công nghệ sinh trắc học mang đến
mức độ bảo mật cao hơn so với các phương pháp xác định danh tính
truyền thống dựa trên mật khẩu hoặc thẻ thông minh.
 Đa dạng và linh hoạt: Công nghệ sinh trắc học có thể áp dụng cho nhiều
đặc điểm sinh trắc học khác nhau, cho phép lựa chọn và kết hợp các
phương pháp phù hợp với mục đích sử dụng. Người dùng có thể chọn sử
dụng một hoặc nhiều đặc điểm sinh trắc học để tăng cường tính bảo mật
và đáng tin cậy.
 Tiện lợi và tốc độ xử lý: Công nghệ sinh trắc học đã phát triển và tiến bộ
đáng kể trong việc tăng cường hiệu suất và tốc độ xử lý. Các công nghệ
và thuật toán mới đã giúp rút ngắn thời gian xác mình và cải thiện trải
nghiệm người dùng.
 Ứng dụng đa dạng: Công nghệ sinh trắc học được áp dụng rộng rãi trong
các lĩnh vực như an ninh, quản lý lưu trữ và truy cập thông tin, đăng ký
và xác minh thông tin cá nhân, y tế, ngân hàng và tài chính, giao thông
vận tải và nhiều lĩnh vực khác. Việc sử dụng công nghệ sinh trắc học
giúp tăng cường bảo mật, hiệu quả và thuận tiện trong các quy trình và
dịch vụ liên quan đến xác định danh tính.
Mặc dù mang lại nhiều lợi ích lớn, nhưng công nghệ sinh trắc học vẫn còn một
số lĩnh vực cần cải tiến, nhằm đảm bảo các vấn đề như tỉnh riêng tư khỏi các mối
hiểm họa tiềm tàng.

18
Chương 2: Mô hình xác thực sinh trắc khuôn mặt
Module Face_recognition: xác thực bằng khuôn mặt
1. Tổng quan về bài toán nhận diện khuôn mặt
Nhận dạng khuôn mặt người là một chủ đề nghiên cứu thuộc lĩnh vực thị giác
máy được phát triển từ những năm 90 của thế kỷ trước. Hiện nay, lĩnh vực nhận dạng
được đẩy mạnh phát triển và nhận được sự quan tâm của nhiều nhà nghiên cứu từ
nhiều lĩnh vực nghiên cứu khác nhau đặc biệt là nhận dạng khuôn mặt.

Hình 1: Mô hình chung của bài toán nhận dạng khuôn mặt
Bài toán nhận dạng khuôn mặt hướng tiếp cận cũng tương tự như hệ thống thị
giác của con người khi cần nhận dạng một ai đó khi nhìn vào một bức ảnh. Hoạt động
của hệ thống nhận dạng khuôn mặt có được triển khai chi tiết như sau:
 Bước 1: Phát hiện và xác định khuôn mặt trong bức ảnh
 Bước 2: Chuẩn hóa và trích chọn đặc trưng khuôn mặt đã được phát hiện trong
bước 1
 Bước 3: Tiến hành so sánh và nhận dạng các đặc trưng ở bước 2 với tập dữ liệu
huấn luyện đã có để đưa ra kết quả kết luận nhận dạng.

2. Thuật toán HOG trong việc phát hiện khuôn mặt


2.1 Định nghĩa
HOG là viết tắt của Histogram of Oriented Gradient - một loại “feature
descriptor”. Mục đích của “feature descriptor” là trừu tượng hóa đối tượng
bằng cách trích xuất ra những đặc trưng của đối tượng đó và bỏ đi những thông
tin không hữu ích. Vì vậy, HOG được sử dụng chủ yếu để mô tả hình dạng và
sự xuất hiện của một đối tượng trong ảnh.

19
Hình 2: Mô tả về thuật toán HOG
Bản chất của phương pháp HOG là sử dụng thông tin về sự phân bố của
các cường độ gradient (intensity gradient) hoặc của hướng biên (edge directins)
để mô tả các đối tượng cục bộ trong ảnh. Các toán tử HOG được cài đặt bằng
cách chia nhỏ một bức ảnh thành các vùng con, được gọi là “tế bào” (cells) và
với mỗi cell, ta sẽ tính toán một histogram về các hướng của gradients cho các
điểm nằm trong cell. Ghép các histogram lại với nhau ta sẽ có một biểu diễn
cho bức ảnh ban đầu. Để tăng cường hiệu năng nhận dạng, các histogram cục
bộ có thể được chuẩn hóa về độ tương phản bằng cách tính một ngưỡng cường
độ trong một vùng lớn hơn cell, gọi là các khối (blocks) và sử dụng giá trị
ngưỡng đó để chuẩn hóa tất cả các cell trong khối. Kết quả sau bước chuẩn hóa
sẽ là một vector đặc trưng có tính bất biến cao hơn đối với các thay đổi về điều
kiện ánh sáng.
2.2 Các bước cơ bản để xây dựng một vector HOG cho hình ảnh
 Tiền xử lý: Trước tiên, hình ảnh cần được tiền xử lý để chuẩn bị cho việc
tính toán. Điều này có thể bao gồm việc chuyển đổi hình ảnh sang không
gian màu xám, làm mịn hình ảnh để loại bỏ nhiễu, hoặc thậm chí có thể
thực hiện việc điều chỉnh độ sáng và độ tương phản.

20
 Tính gradient: Gradient của hình ảnh theo các hướng x và y được tính toán.
Điều này cho phép chúng ta đo được độ lớn và hướng của biến thiên cường
độ tại mỗi điểm ảnh.
 Tính vector đặc trưng cho từng ô (cells): Hình ảnh được chia thành các cell
nhỏ, và các gradient trong mỗi cell được sử dụng để tính toán các histogram
của hướng gradient. Các histogram này biểu diễn phân phối của các hướng
gradient trong cell.
 Chuẩn hóa khối (blocks): Các cell có thể được kết hợp thành các block lớn
hơn. Quá trình chuẩn hóa được thực hiện để giảm ảnh hưởng của ánh sáng
và độ tương phản, giúp tăng tính toàn vẹn của đặc trưng.
 Tính toán vector HOG: Cuối cùng, các block được kết hợp lại thành một
vector đặc trưng duy nhất, được gọi là vector HOG. Vector này chứa thông
tin quan trọng về hình dạng và cấu trúc của vật thể trong hình ảnh.
Khi đã có vector HOG, nó có thể được sử dụng cho việc nhận dạng và phân
loại đối tượng trong hình ảnh.

3. Framework Django và module Face_recognition


3.1 Framework Django
- Tổng quan về Django: Django là một framework phát triển ứng dụng web mạnh mẽ
và phổ biến được viết bằng ngôn ngữ Python. Được phát triển bởi Django Software
Foundation, Django được thiết kế để giúp nhà phát triển xây dựng các ứng dụng web
nhanh chóng, dễ bảo trì và có hiệu suất cao.
- Đặc điểm nổi bật của Django:
 Hoàn thiện: Django phát triển theo tư tưởng "Batteries included" (có thể hiểu ý
nghĩa là tích hợp toàn bộ, chỉ cần gọi ra mà dùng). Nó cung cấp mọi thứ cho
developer không cần phải nghĩ phải dùng cái ngoài. Chúng ta chỉ cần tập trung
vào sản phẩm, tất cả đều hoạt động liền mạch với nhau.
 Đa năng: Django có thể được dùng để xây dựng hầu hết các loại website, từ hệ
thống quản lý nội dung, cho đến các trang mạng xã hội hay web tin tức. Nó có
thể làm việc với framework client-side, và chuyển nội dung hầu hết các
loại format (HTML, RESS, JSON, XML, ...)

21
 Bảo mật: Django giúp các developer trang các lỗi bảo mật thông thường bằng
cách cung cấp framework rằng có những kĩ thuật "phải làm như vậy" để bảo vệ
website. Ví dụ: Django cung cấp bảo mật quản lý tên tài khoản và mật khẩu,
tránh các lỗi cơ bản như để thông tin session lên cookie, mã hóa mật khẩu thay
vì lưu thẳng.
 Dễ Scale: Django sử dụng kiến trúc shared-nothing dựa vào component (mỗi
phần của kiến trúc sẽ độc lập với nhau, và có thể thay thế hoặc sửa đổi nếu cần
thiết). Có sự chia tách rõ ràng giữa các phần nghĩa là nó có thể scale cho việc
gia tăng traffic bằng cách thêm phần cứng ở mỗi cấp độ: caching, servers,
database servers, hoặc application servers. Nhiều web về kinh doanh đã thành
công khi Django được scale đáp ứng yêu cầu của họ
 Dễ maintain: code Django được viết theo nguyên tắc thiết kế và pattern có thể
khuyến khích ý tưởng bảo trì và tái sử dụng code. Trên thực tế, nó sự theo khái
niệm Don't Repeat Yourself làm cho không có sự lặp lại không cần thiết, giảm
một lượng code.
 Tính linh động: Django được viết bằng Python, nó có thể chạy đa nền tảng. Nó
có nghĩa rằng bạn không ràng buộc một platform server cụ thể. Django được
hỗ trợ tốt ở nhiều nhà cung cấp hosting, họ sẽ cung cấp hạ tầng và tài liệu cụ
thể cho hosting web Django.
3.2 Module Face_recognition
Face recognition là một lĩnh vực trong computer vision và machine learning,
nó nhằm vào việc tự động nhận diện và xác định khuôn mặt của con người từ ảnh
hoặc video. Đây là một trong những ứng dụng phổ biến của deep learning và được sử
dụng trong nhiều lĩnh vực như bảo mật, giao diện người dùng, và phân tích dữ liệu.
Cách thức hoạt động của face recognition thường bao gồm các bước sau:
 Phát hiện khuôn mặt (Face detection): Trước hết, hệ thống phải phát hiện được
vị trí của các khuôn mặt trong ảnh hoặc video. Điều này thường được thực hiện
bằng cách sử dụng các thuật toán như Viola-Jones, Histogram of Oriented
Gradients (HOG), hoặc deep learning-based approaches như Single Shot
MultiBox Detector (SSD), Faster R-CNN, hoặc các mô hình convolutional
neural network (CNN).
 Rút trích đặc trưng (Feature extraction): Sau khi khuôn mặt được phát hiện, các
đặc trưng của chúng cần được trích xuất. Điều này thường làm bằng cách sử
dụng các thuật toán như Local Binary Patterns (LBP), Histogram of Oriented
22
Gradients (HOG), hoặc sử dụng các mạng neural như Convolutional Neural
Networks (CNNs) để học các biểu diễn dựa trên dữ liệu.
 So sánh và nhận diện (Matching and recognition): Cuối cùng, các đặc trưng
được so sánh với các đặc trưng của các khuôn mặt đã biết từ cơ sở dữ liệu để
nhận diện người đó. Phương pháp thông thường để thực hiện điều này là sử
dụng các thuật toán như k-nearest neighbors (KNN), Support Vector Machines
(SVM), hoặc sử dụng deep learning-based approaches như các mạng neural
network siêu cùng (siamese neural networks) hoặc triplet loss function để học
các biểu diễn tốt hơn.
Face recognition thường là một bài toán phức tạp với nhiều thách thức như biến
đổi ánh sáng, góc chụp, độ tuổi, và phong cách tóc khác nhau. Để xử lý những thách
thức này, các phương pháp tiên tiến trong deep learning và computer vision đang
được phát triển và áp dụng.

4. Một số lỗ hổng liên quan đến xác thực bằng sinh trắc khuôn mặt
Mặc dù xác thực bằng sinh trắc khuôn mặt có nhiều ưu điểm, nhưng cũng tồn
tại một số lỗ hổng và thách thức mà người ta cần phải đối mặt. Dưới đây là một số
lỗ hổng phổ biến liên quan đến xác thực bằng sinh trắc khuôn mặt:
 Sự độc lập của môi trường ánh sáng: Biến đổi ánh sáng môi trường có thể
ảnh hưởng đến chất lượng của hình ảnh khuôn mặt và dẫn đến sự mất mát
hoặc biến dạng của các đặc trưng sinh trắc học, gây khó khăn trong việc
nhận diện.
 Chuyển đổi góc chụp và độ nghiêng: Khi khuôn mặt được chụp từ các góc
độ khác nhau hoặc ở độ nghiêng khác nhau, có thể làm suy giảm độ chính
xác của quá trình nhận diện.
 Sự thay đổi về thời gian: Sự thay đổi về ngoại hình của một người qua thời
gian (ví dụ: sự thay đổi về kiểu tóc, việc đeo kính, sự già đi) có thể làm suy
giảm hiệu suất của hệ thống xác thực sinh trắc học.
 Thách thức từ đa dạng về dân tộc và tuổi tác: Một số hệ thống xác thực
khuôn mặt có thể không hoạt động hiệu quả trên các nhóm dân tộc hoặc độ
tuổi khác nhau do sự biến đổi về đặc trưng của khuôn mặt.
 Sự tấn công bằng hình ảnh: Kẻ tấn công có thể sử dụng hình ảnh của người
khác để vượt qua quá trình xác thực, điều này được gọi là tấn công bằng

23
hình ảnh (spoofing). Các biện pháp bảo mật như phát hiện chuyển động
hoặc phát hiện khuôn mặt 3D có thể được triển khai để chống lại loại tấn
công này.
 Bảo mật dữ liệu: Dữ liệu sinh trắc học về khuôn mặt là thông tin nhạy cảm
và cần được bảo vệ chặt chẽ để tránh rủi ro về việc sử dụng sai mục đích
hoặc sự xâm nhập vào quyền riêng tư của người dùng.
 Sự không nhất quán về quy định pháp lý: Các quy định về việc thu thập và
sử dụng dữ liệu sinh trắc học, bao gồm cả dữ liệu khuôn mặt, có thể không
nhất quán và đòi hỏi sự chú ý đặc biệt để tuân thủ.
Để giảm thiểu các lỗ hổng này, các nhà nghiên cứu và nhà phát triển đang tiến
hành nghiên cứu và phát triển các phương pháp mới và cải tiến để nâng cao chất
lượng và độ tin cậy của hệ thống xác thực bằng sinh trắc khuôn mặt.

24
Chương 3: Triển khai hệ thống xác thực khuôn mặt có đảm
bảo tính riêng tư

Triển khai hệ thống: Ngôn ngữ Python sử dụng thư viện OpenCV để thêm
người dùng mới vào tập dữ liệu hình ảnh khuôn mặt.
a. Quá trình train hệ thống
Thực hiện import các thư viện cần thiết

25
Cài đặt các tham số và mô hình

- MINSIZE: Một ngưỡng kích thước tối thiểu cho khuôn mặt được phát hiện.
Nếu kích thước khuôn mặt trong ảnh nhỏ hơn giá trị này, nó sẽ không được
xem xét.
- THRESHOLD: Ngưỡng cho việc xác định khuôn mặt. Một mảng chứa giá trị
ngưỡng cho các giai đoạn của MTCNN.
- FACTOR: Hệ số thu phóng ảnh khi thực hiện các giai đoạn thu nhỏ ảnh trong
quá trình phát hiện khuôn mặt.
Kích thước ảnh đầu vào và đầu ra:
- IMAGE_SIZE: Kích thước ảnh đầu ra của mô hình nhận diện khuôn mặt.
- INPUT_IMAGE_SIZE: Kích thước ảnh đầu vào được chuyển vào mô hình
nhận diện khuôn mặt.
Đường dẫn và tên của các mô hình:
- CLASSIFIER_PATH: Đường dẫn đến file chứa mô hình phân loại được đào
tạo trước để nhận diện người dùng.
- VIDEO_PATH: Đường dẫn đến video hoặc số thứ tự của camera mà chương
trình sẽ sử dụng.
- FACENET_MODEL_PATH: Đường dẫn đến mô hình Facenet được sử dụng
để trích xuất đặc trưng từ khuôn mặt.

26
Load mô hình phân loại được đào tạo trước từ file được lưu trữ. Trong
trường hợp này, sử dụng Support Vector Machine (SVM).

Khởi tạo đồ thị Tensorflow và load mô hình nhận diện khuôn mặt

Load FaceNet và cài đặt MTCNN

Xử lý video và nhận diện khuôn mặt

27
28
Tham số khác:
- sess: Đối tượng tf.compat.v1.Session của TensorFlow, được sử dụng để thực
hiện các phép toán trong đồ thị.
- pnet, rnet, onet: Các giai đoạn của MTCNN: pnet (P-Net), rnet (R-Net), và onet
(O-Net).
- people_detected: Một tập hợp (set) để theo dõi người đã được phát hiện.
- person_detected: Một đối tượng collections.Counter để đếm số lần mỗi người
đã được phát hiện.
- cap: Đối tượng VideoStream để đọc video hoặc từ camera.

Vòng lặp xử lý khung hình:


- frame: Mỗi khung hình từ video hoặc camera.
- bounding_boxes: Tọa độ hộp giới hạn của khuôn mặt được phát hiện trong
khung hình.

29
Xử lý kết quả phát hiện khuôn mặt:
- bb: Một mảng chứa tọa độ hộp giới hạn của khuôn mặt được chuyển đổi để sử
dụng trong các bước tiếp theo.
- scaled, scaled_reshape: Ảnh khuôn mặt được chuyển đến kích thước đầu vào
của mô hình nhận diện khuôn mặt.
- feed_dict: Dữ liệu đầu vào được đưa vào mô hình nhận diện khuôn mặt.
- emb_array: Mảng chứa đặc trưng của khuôn mặt được trích xuất từ mô hình
Facenet.
- predictions: Dự đoán của mô hình phân loại.
- best_class_indices, best_class_probabilities: Chỉ số và xác suất của lớp dự
đoán có xác suất cao nhất.

Hiển thị kết quả:


- cv2.imshow: Hiển thị kết quả trực tiếp lên màn hình.
- cv2.waitKey: Đợi và xử lý sự kiện từ bàn phím, thoát khỏi vòng lặp nếu phím
'q' được nhấn.
- cap.release, cv2.destroyAllWindows:Giải phóng tài nguyên và đóng cửa sổ khi
chương trình kết thúc.

Những tham số này cùng đóng góp vào việc thiết lập và thực thi quá trình nhận
diện khuôn mặt và xác minh danh tính từ video hoặc camera.

30
b. Quá trình thực hiện mô hình

 add_user: Hàm này được sử dụng để thêm một người dùng mới vào tập dữ liệu
hình ảnh khuôn mặt.
 user_id: ID của người dùng.
 username: Tên người dùng.
 path: Đường dẫn tới thư mục chứa dữ liệu hình ảnh khuôn mặt. Mặc định là
dataset_path đã được định nghĩa trước đó.

Định nghĩa đường đẫn đến thư mục chứa dữ liệu khuôn mặt

31
Quá trình bắt đầu bằng việc người dùng nhập ID và tên từ bàn phím. Sau đó,
camera được mở để chụp 30 bức hình liên tục từ gương mặt của người dùng trong khi
đóng gói nó vào một thư mục riêng.
Trong quá trình chụp hình, chương trình sử dụng một bộ phân loại khuôn mặt
Haar Cascade để tự động nhận diện và đánh dấu khuôn mặt trên hình ảnh. Mỗi bức
hình được lưu trữ với tên file có định dạng số thứ tự, tạo ra một chuỗi hình ảnh đa
dạng của gương mặt người dùng.
Quá trình này không chỉ tạo ra một tập dữ liệu phong phú mà còn giúp nâng
cao chất lượng của hệ thống nhận diện khuôn mặt, bằng cách cung cấp đủ biểu diễn
về khuôn mặt từ nhiều góc độ và điều kiện ánh sáng khác nhau. Điều này giúp đảm

32
bảo tính ổn định và độ chính xác của hệ thống trong các ứng dụng sinh trắc học và
nhận diện khuôn mặt.

Hình 6: Ảnh mô tả quá trình thêm và chụp liên tục các đặc trưng khuôn mặt
và lưu vào tập dữ liệu

Hình 7: List hình ảnh đã chụp

33
Hình 8: Kết quả của mô hình

Quá trình kiểm tra khuôn mặt mang lại kết quả chính xác và minh bạch,
với mỗi kết quả hiển thị trên màn hình bao gồm ID = 1 và tỷ lệ trùng khớp =
98% của các đặc trưng khuôn mặt so với hình đã được chụp trước đó.
Khi một người dùng đưa khuôn mặt của họ vào trước camera, hệ thống
sẽ tự động xác định ID của họ và hiển thị trên màn hình. Thông tin này
không chỉ giúp xác minh danh tính mà còn cung cấp một số liệu hữu ích về
mức độ giống nhau giữa khuôn mặt hiện tại và dữ liệu đã được lưu trước
đó.
Đặc biệt, tỷ lệ trùng khớp hiển thị trên màn hình là một chỉ số quan
trọng, cho biết độ tương đồng giữa khuôn mặt hiện tại và hình ảnh đã được
chụp. Nếu tỷ lệ trùng khớp cao, điều này chỉ ra rằng hệ thống đã nhận diện
và xác minh khuôn mặt hiệu quả, đồng thời cung cấp độ chính xác cao về
đặc trưng khuôn mặt của người dùng. Ngược lại, một tỷ lệ thấp có thể chỉ ra
sự khác biệt đáng kể giữa khuôn mặt hiện tại và dữ liệu đã được lưu, có thể
làm giảm độ chính xác của quá trình xác minh.

34
KẾT LUẬN
a. Đánh giá kết quả đạt được
Thông qua đề tài “Xây dựng hệ thống sinh trắc học đảm bảo tính riêng tư ” thì
nhóm chúng em đã rèn luyện cũng như tích lũy thêm được những kinh nghiệm
về mô hình học máy học sâu. Bên cạnh đó chúng em cũng thu được những kết
quả sau:
- Nhận Diện và Xác Minh Khuôn Mặt: Hệ thống đã thành công trong việc nhận
diện và xác minh danh tính dựa trên khuôn mặt người dùng. Mô hình nhận diện
khuôn mặt FaceNet đã chứng minh hiệu suất và độ chính xác cao.
- Tích Hợp Mã Hóa SEAL: Mã hóa SEAL đã được tích hợp để bảo vệ tính riêng
tư của dữ liệu nhận diện khuôn mặt. Điều này đảm bảo rằng thông tin cá nhân
của người dùng được bảo mật và không thể dễ dàng truy cập.
- Sử Dụng MTCNN Tối Ưu Hóa Quá Trình Nhận Diện: Mô-đun MTCNN đã
được tích hợp để chính xác xác định vị trí của khuôn mặt, tối ưu hóa quá trình
nhận diện và giảm tải cho hệ thống.
- Hiệu Suất Ổn Định trong Nhiều Tình Huống: Hệ thống đã thể hiện hiệu suất ổn
định và độ chính xác trong nhiều điều kiện ánh sáng và góc nhìn khác nhau.
b. Hạn chế, tồn tại
- Tối Ưu Hóa Hiệu Suất: Hiện hệ thống chưa được tối ưu hóa đầy đủ về mặt hiệu
suất, đặc biệt là trong việc xử lý số lượng lớn người dùng cùng một lúc.
- Thử Nghiệm Trong Nhiều Môi Trường: Hệ thống cần được thử nghiệm rộng
rãi trong nhiều môi trường khác nhau để đảm bảo tính ổn định và đáng tin cậy.
c. Phương hướng phát triển tương lai
- Tối Ưu Hóa Hiệu Suất và Tích Hợp Hệ Thống: Tăng cường tối ưu hóa hiệu
suất của hệ thống để có thể xử lý một lượng lớn người dùng đồng thời.
- Phát Triển Giao Diện Người Dùng Thân Thiện: Tạo ra một giao diện người
dùng thân thiện và dễ sử dụng để tối ưu hóa trải nghiệm người dùng.
- Kích Thước Dữ Liệu Lớn và Đào Tạo Thêm: Mở rộng kích thước của tập dữ
liệu để cải thiện khả năng tự động hóa và đào tạo thêm mô hình nhận diện
khuôn mặt.
- Phát Triển Hệ Thống Theo Dõi và Báo Cáo: Thêm các tính năng theo dõi và
báo cáo để theo dõi hiệu suất hệ thống và thu thập dữ liệu thống kê.
- Nghiên Cứu và Áp Dụng Công Nghệ Mới: Liên tục theo dõi và tích hợp các
công nghệ mới, đặc biệt là trong lĩnh vực nhận diện khuôn mặt và bảo mật dữ
liệu.
- Phát Triển Ứng Dụng Cho Nhiều Lĩnh Vực: Mở rộng ứng dụng của hệ thống
cho nhiều lĩnh vực khác nhau như an ninh, quản lý nhân sự, hay các ứng dụng
về trải nghiệm khách hàng.
35
TÀI LIỆU THAM KHẢO
[1] https://viblo.asia/p/tim-hieu-ve-phuong-phap-mo-ta-dac-trung-hog-histogram-of-
oriented-gradients-V3m5WAwxZO7
[2] https://phamdinhkhanh.github.io/2019/11/22/HOG.html

36

You might also like