ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
NGUYỄN VĂN THƠ
C
C
R
L
T.
XÂY DỰNG HỆ THỐNG NHẬN DẠNG KHUÔN MẶT
SỬ DỤNG RASPBERRY PI VÀ OPENCV
DU
LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ
Đà Nẵng – Năm 2020
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
NGUYỄN VĂN THƠ
XÂY DỰNG HỆ THỐNG NHẬN DẠNG KHUÔN MẶT
SỬ DỤNG RASPBERRY PI VÀ OPENCV
C
C
R
L
T.
DU
Chuyên ngành : Kỹ thuật Điện tử
Mã số
: 852.02.03
LUẬN VĂN THẠC SĨ
Người hướng dẫn khoa học: TS. NGUYỄN DUY NHẬT VIỄN
Đà Nẵng – Năm 2020
LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi.
Các số liệu và kết quả trong luận văn là trung thực và chưa được ai công bố trong
bất kỳ công trình nào.
Tác giả luận văn
Nguyễn Văn Thơ
C
C
DU
R
L
T.
XÂY DỰNG HỆ THỐNG NHẬN DẠNG KHUÔN MẶT
SỬ DỤNG RASPBERRY PI VÀ OPENCV
Học viên: Nguyễn Văn Thơ
Chuyên ngành: Kỹ thuật điện tử
Mã số:
Khóa: K38 Trường Đại học Bách khoa - ĐHĐN
Tóm tắt – Hệ thống nhận dạng khuôn mặt là một nhiệm vụ nghiên cứu phổ biến
trong lĩnh vực xử lý hình ảnh và thị giác máy tính, do khả năng ứng dụng to lớn cũng
như giá trị lý thuyết của nó. Hệ thống này được triển khai rộng rãi nhiều ứng dụng
trong thế giới thực như an ninh, giám sát, an ninh nội địa, kiểm soát truy cập, tìm
kiếm hình ảnh, người-máy và giải trí. Tuy nhiên, các ứng dụng này đặt ra những
thách thức khác nhau như điều kiện ánh sáng và nét mặt. Luận văn nêu bật các nghiên
cứu gần đây về phương pháp cũng như các thuật toán phát hiện và nhận dạng khuôn
mặt. Qua đó đề xuất hệ thống nhận dạng khuôn mặt trên máy tính nhúng Raspberry
Pi 3 sử dụng thư viện mã nguồn mở OpenCV. Hệ thống sử dụng mạng Neural tích
chập với các Model CNN (convolutional neural network) trong thuật toán phát hiện
và nhận dạng khuôn mặt. Hệ thống với kích thước nhỏ gọn, độ chính xác cao và khả
năng nhận dạng đáp ứng thời gian thực, có thể triển khai được trong các ứng dụng
IoT, hệ thống điểm danh tự động…
C
C
R
L
T.
DU
Từ khóa – Hệ thống nhận dạng khuôn mặt; OpenCV; mạng Neural tích chập;
Raspberry Pi; chấm công tự động.
BUILDING A FACE RECOGNITION SYSTEM
USING RASPBERRY PI AND OPENCV
Abstract - The facial recognition system is a popular research task in the field of image
processing and computer vision, due to its enormous applicability and theoretical value.
The system is widely deployed in real-world applications such as security, surveillance,
domestic security, access control, image search, robotics and entertainment. However,
these applications pose various challenges such as lighting conditions and facial
expressions. The thesis highlights recent studies on facial detection methods as well as
algorithms for detection and recognition. Thereby proposing facial recognition system
on Raspberry Pi 3 embedded computer using OpenCV open source library. The system
uses convolutional neural network (model CNN) in face detection and recognition
algorithm. The system with compact size, high accuracy and real-time response
identification, can be deployed in IoT applications, automatic attendance system…
Key words - The facial recognition system; OpenCV; convolutional neural network
(CNN); Raspberry Pi; automatic attendance system.
MỤC LỤC
MỞ ĐẦU ......................................................................................................................... 1
1. Tính cấp thiết của đề tài ...................................................................................... 1
2. Mục đích nghiên cứu .......................................................................................... 2
3. Đối tượng và phạm vi nghiên cứu ...................................................................... 2
4. Phương pháp nghiên cứu .................................................................................... 2
5. Ý nghĩa khoa học và thực tiễn của đề tài ............................................................ 2
6. Bố cục luận văn................................................................................................... 3
CHƯƠNG 1. TỔNG QUAN VỀ HỆ THỐNG NHẬN DẠNG KHUÔN MẶT ........ 4
1.1. Giới thiệu chương ..................................................................................................... 4
1.2. Tổng quan về hệ thống nhận dạng khuôn mặt .......................................................... 4
1.2.1. Các vấn đề liên quan ..................................................................................... 4
1.2.2. Kiến trúc tổng quát của hệ thống nhận dạng khuôn mặt .............................. 5
C
C
1.2.3. Những khó khăn, thách thức của hệ thống nhận dạng khuôn mặt ................ 6
1.2.4. Những ứng dụng hệ thống nhận dạng khuôn mặt ......................................... 7
1.3. Kết luận chương ....................................................................................................... 9
R
L
T.
DU
CHƯƠNG 2. KỸ THUẬT TRÍCH CHỌN ĐẶC TRƯNG VÀ PHƯƠNG PHÁP
PHÂN LỚP ỨNG DỤNG TRONG NHẬN DẠNG KHUÔN MẶT ........................ 10
2.1. Giới thiệu chương ................................................................................................... 10
2.2. Kỹ thuật phát hiện khuôn mặt bằng thuật toán Haar .............................................. 10
2.2.1. Tổng quan về các đặc trưng Haar-like ........................................................ 10
2.2.2. Mô hình phân tầng Cascade of Classifiers.................................................. 12
2.3. Các phương pháp nhận dạng khuôn mặt ................................................................ 14
2.3.1. Nhận dạng dựa trên đặc trưng giữa các phần tử (Feature Based)............... 14
2.3.2. Nhận dạng dựa trên xét toàn diện khuôn mặt (Appearance Based) ........... 15
2.4. Kỹ thuật trích chọn đặc trưng PCA ........................................................................ 19
2.4.1. Giới thiệu về phương pháp PCA ................................................................. 19
2.4.2. Thuật toán PCA .......................................................................................... 21
2.5. Phương pháp đối sánh trong nhận dạng ................................................................. 22
2.6. Phương pháp máy vector hỗ trợ ............................................................................. 23
2.7. Phương pháp mạng neural tích chập ...................................................................... 25
2.7.1. Nhận dạng khuôn mặt sử dụng mạng neural tích chập ............................... 25
2.7.2. Lớp tích chập .............................................................................................. 27
2.7.3. Lớp tinh chỉnh đơn vị tuyến tính (ReLU layer) .......................................... 29
2.7.4. Pooling layer ............................................................................................... 29
2.7.5. Lớp kết nối hoàn chỉnh (The Fully connected layer) ................................. 30
2.7.6. Hàm mất mát (Loss function) ..................................................................... 30
2.8. Kết luận chương ..................................................................................................... 31
CHƯƠNG 3. XÂY DỰNG HỆ THỐNG NHẬN DẠNG KHUÔN MẶT TRÊN
MÁY TÍNH NHÚNG RASPBERRY PI 3 ................................................................. 32
3.1. Giới thiệu chương ................................................................................................... 32
3.2. Máy tính nhúng Raspberry Pi 3 .............................................................................. 32
3.2.1. Giới thiệu chung ......................................................................................... 32
3.2.2. Cấu trúc phần cứng ..................................................................................... 33
3.2.3. Hệ điều hành ............................................................................................... 36
3.2.4. Ưu, nhược điểm .......................................................................................... 36
3.3. Ngôn ngữ Python .................................................................................................... 36
3.3.1. Giới thiệu Python ........................................................................................ 36
3.3.2. Các chức năng chính của Python ................................................................ 36
3.4. Thư viện OpenCV .................................................................................................. 37
3.4.1. Giới thiệu OpenCV ..................................................................................... 37
3.4.2. Tổ chức thư viện OPENCV ........................................................................ 38
3.5. Quy trình xây dựng hệ thống nhận dạng khuôn mặt .............................................. 39
3.5.1. Sơ đồ chức năng hệ thống nhận dạng khuôn mặt ....................................... 39
3.5.2. Phát hiện khuôn mặt sử dụng mạng neural tích chập nối tầng đa nhiệm
C
C
R
L
T.
DU
(MTCNN) ...................................................................................................................... 41
3.5.3. Mã hóa và nhận dạng khuôn mặt ................................................................ 44
3.6. Kết luận chương ..................................................................................................... 46
CHƯƠNG 4. THỰC NGHIỆM VÀ ĐÁNH GIÁ HỆ THỐNG ............................... 47
4.1. Giới thiệu chương ................................................................................................... 47
4.2. Kết quả thực hiện hệ thống ..................................................................................... 47
4.3. Đánh giá hệ thống ................................................................................................... 50
4.3.1. Tiêu chí đánh giá......................................................................................... 50
4.3.2. Xây dựng cơ sở dữ liệu và phân tích kết quả ............................................. 51
4.4. Kết luận chương ..................................................................................................... 53
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI ................................................... 54
DANH MỤC TÀI LIỆU THAM KHẢO
PHỤ LỤC
QUYẾT ĐỊNH GIAO ĐỀ TÀI (Bản sao)
DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt
Tiếng anh
Dịch nghĩa tiếng việt
Artificial Neural Network
Mạng neural nhân tạo
Artificial Intelligence
Trí tuệ nhân tạo
CNN
Convolutional Neural Network
Mạng nơ-ron tích chập
DSP
Digital Signal Processing
Xử lý tín hiệu số
FSVM
Fuzzy support vector machines
Máy vector hỗ trợ mờ
HOG
Histogram of Oriented
Gradians
Biểu đồ Gradients
IoT
Internet of Things
Kết nối vạn vật
ID
Identification
Nhận dạng
Linear Discriminant Analysis
Phương pháp phân tích sai khác
tuyến tính
ANN
AI
LDA
MTCNN
C
C
Mạng nơ-ron tích chập nối tầng
đa nhiệm
R
L
T.
Multi-Task Cascaded
Convolutional Networks
DU
PCA
Principal Component Analysis
SVM
Support Vector Machine
Phương pháp phân tích thành
phần chính
Máy vector hỗ trợ
DANH MỤC CÁC BẢNG
Số hiệu
bảng
Tên bảng
Trang
4.1.
Ma trận confusion matrix
51
4.2.
Kết quả nhận dạng của hệ thống
52
4.3.
Kết quả nhận dạng của hệ thống
52
4.4.
Tham số ma trận nhầm lẫn của hệ thống
52
4.5.
Kết quả thống kê tham số RC, PR, Acc
52
C
C
DU
R
L
T.
DANH MỤC CÁC HÌNH
Số hiệu
hình
Tên hình
Trang
1.1
Kiến trúc tổng quan của hệ thống nhận dạng khuôn mặt [5]
5
1.2
Giao diện chương trình FaceFinder
8
1.3
Máy chấm công FK605 dùng FaceID
9
2.1
Các đặc trưng Haar-like cơ sở
10
2.2
Các đặc trưng Haar-like mở rộng
10
2.3
Cách tính Integral Image của ảnh
11
2.4
Ví dụ cách tính nhanh tổng điểm ảnh của vùng D trên ảnh với
các đặc trưng xoay 45o
12
2.5
Minh họa mô hình phân tầng Cascade of Classifiers
2.6
Hình ảnh nhìn từ 2 phía khác nhau của con lạc đà
16
2.7
Không gian mới (Aex1, Axe2)có độ biến thiên dữ liệu cao hơn
so với không gian cũ, tìm theo PCA
17
2.8
Phân loại với LDA
19
2.9
Phân loại dựa trên between và within theo LDA
19
2.10
Phân lớp SVM trong mặt phẳng
24
2.11
Siêu phẳng h phân chia dữ liệu thành 2 lớp + và - với khoảng
cách biên lớn nhất, các điểm gần nhất (được khoanh tròn) là
24
C
C
R
L
T.
DU
13
các vector hỗ trợ
2.12
Kiến trúc cơ bản một mạng neural tích chập (CNN)
26
2.13
Mạng neural ứng dụng trong phân loại đối tượng
26
2.14
Các thành phần của tích chập
27
2.15
Minh họa tích chập
27
2.16
Ảnh mờ hơn sau khi áp dụng phép tích chập
28
2.17
Ảnh được phát hiện biên sau khi chập
28
2.18
Đồ thị hàm ReLU
29
2.19
Tính toán với phương pháp MaxPooling
30
3.1
Máy tính nhúng Raspberry Pi 3
32
3.2
Sơ đồ phần cứng Raspberry Pi 3
33
3.3
Sơ đồ chân vào/ ra của Raspberry Pi 3
34
3.3
Tổ chức thư viện OpenCV
38
3.5
Sơ đồ quá trình nhận dạng khuôn mặt trên Raspberry Pi 3
39
Số hiệu
Tên hình
hình
Trang
3.6
Sơ đồ chức năng của hệ thống
40
3.7
Kiến trúc mạng MTCNN
41
3.8
Các bước phát hiện và cân chỉnh khuôn mặt sử dụng MTCNN
44
3.9
Quy trình mã hóa khuôn mặt sử dụng mạng Neural tích chập
44
3.10
Kết quả mã hóa khuôn mặt thành vecto 128 chiều
45
3.11
Quá trình mã hóa và phân lớp khuôn mặt
45
3.12
Quá trình huấn luyện mạng sử dụng hàm triple loss
46
4.1
Giao diện đăng ký thông tin
47
4.2
Quá trình đăng ký từ những hình ảnh có sẵn
48
4.3
Quá trình đăng ký hình ảnh trực tiếp từ camera
48
4.4
Cơ sở dữ liệu data_face sau khi đăng ký các đối tượng
49
4.5
Giao diện nhận dạng khuôn mặt
49
4.6
Hệ thống nhận dạng nhiều đối tượng cùng lúc
DU
R
L
T.
C
C
50
1
MỞ ĐẦU
1. Tính cấp thiết của đề tài
Ngày nay, nghiên cứu các kỹ thuật xử lý và nhận dạng ảnh đang và được triển khai
rộng rãi ở nước ta. Xử lý ảnh là một phân ngành trong xử lý tín hiệu số nhưng đối tượng
tín hiệu cụ thể là ảnh. Đối tượng ảnh chủ yếu được sử dụng ở đây là ảnh số, và việc xử
lý được tiến hành trên hệ thống máy tính. Thông thường việc xử lý ở đây được tiến hành
theo quy trình sau. Đầu tiên, thông qua các phép biến đổi ảnh như làm mượt, nhị phân
ảnh, trích xuất viền,… ta có thể thu được các thông tin hữu ích. Sau đó, từ các thông tin
hữu ích, thông qua các phương pháp phân nhóm hay phân loại, nhận dạng ta có thể xây
dựng được các hệ thống thông minh phục vụ cho cuộc sống của con người. Cụ thể ở
nước ta, đã có các công trình nghiên cứu liên quan đến xử lý ảnh như nhận dạng dấu vân
tay, nhận dạng chữ viết, nhận dạng khuôn mặt…
C
C
Nhận dạng mặt người (Face recognition) là một lĩnh vực nghiên cứu của ngành
Computer Vision, và cũng được xem là một lĩnh vực nghiên cứu của ngành Biometrics
(tương tự như nhận dạng vân tay – Fingerprint recognition, hay nhận dạng mống mắt Iris recognition). Xét về nguyên tắc chung, nhận dạng mặt có sự tương đồng rất lớn với
nhận dạng vân tay và nhận dạng mống mắt, tuy nhiên sự khác biệt nằm ở bước trích
R
L
T.
DU
chọn đặt trưng (feature extraction) của mỗi lĩnh vực. Trong khi nhận dạng vân tay và
mống mắt đã đạt tới độ chín, tức là có thể áp dụng trên thực tế một cách rộng rãi thì nhận
dạng mặt người vẫn còn nhiều thách thức và vẫn là một lĩnh vực nghiên cứu thú vị với
nhiều người. So với nhận dạng vân tay và mống mắt, nhận dạng mặt có nguồn dữ liệu
phong phú hơn (bạn có thể nhìn thấy mặt người ở bất cứ tấm ảnh, video clip nào liên
quan tới con người trên mạng) và ít đòi hỏi sự tương tác có kiểm soát hơn (để thực hiện
nhận dạng vân tay hay mống mắt, dữ liệu input lấy từ con người đòi hỏi có sự hợp tác
trong môi trường có kiểm soát).
Nhận dạng khuôn mặt được ứng dụng rất rộng rãi trong đời sống hằng ngày của
con người, như các hệ thống bảo mật, an ninh, giám sát, quản lý vào ra, tìm kiếm thông
tin, ứng dụng trong mạng xã hội như Facebook, google… Vì vậy nhận dạng khuôn mặt
được nhiều nhóm nghiên cứu, công ty công nghệ lớn trên thế giới quan tâm. Thêm nữa
cùng với sự ra đời và phát triển bùng nổ của khoa học máy tính, nhận dạng khuôn mặt
đang đòi hỏi nhiều yêu cầu cao về kết quả, độ tin cậy, tính bảo mật.
Hiện nay, tất cả các thuật toán nhận diện khuôn mặt được phát triển phần lớn đều
dựa trên nền tảng hệ thống xử lý tín hiệu số DSP (Digital Signal Processing) với lượng
tài nguyên tính toán rất lớn và giá thành cao, vì vậy khó có thể tích hợp vào các hệ thống
nhận dạng yêu cầu giá thành thấp. Để giải quyết vấn đề này, luận văn hướng đến nghiên
2
cứu nhận dạng khuôn mặt trên máy tính nhúng Raspberry Pi, với đặc trưng là tài nguyên
tính toán giới hạn nhỏ gọn, giá thành thấp nhưng vẫn đảm bảo độ chính xác.
Khi trí tuệ nhân tạo AI và Internet vạn vật (IoT) đang phát triển mạnh mẽ, cùng
với đó là các thiết bị thông minh ngày càng có sẵn cho người tiêu dùng, nhu cầu về một
hệ thống kết nối nhận dạng khuôn mặt với các tiện ích thông minh trở nên phổ biến thì
máy tính nhúng Raspberry là một trong những lựa chọn phù hợp và hiệu quả cao.
2. Mục đích nghiên cứu
Luận văn xây dựng hệ thống nhận dạng khuôn mặt trên máy tính nhúng Raspberry
Pi 3 sử dụng thư viện mã nguồn mở OpenCV.
Thông qua việc nghiên cứu lý thuyết và thực nghiệm hệ thống nhận dạng khuôn
mặt, luận văn đưa ra khảo sát đánh giá về độ chính xác cũng như tính đáp ứng thời gian
thực.
Từ đó luận văn hướng đến triển khai hệ thống nhận dạng ứng dụng trong thực tiễn.
C
C
3. Đối tượng và phạm vi nghiên cứu
Lý thuyết tổng quan về hệ thống nhận dạng khuôn mặt.
Phương pháp để nhận dạng và phân lớp đối tượng ứng dụng trong nhận dạng
khuôn mặt.
R
L
T.
DU
Lý thuyết tổng quan về máy tính nhúng Raspberry Pi và thư viện xử lý ảnh
OpenCV
Thuật toán nhận dạng khuôn mặt sử dụng mạng Neural tích chập
Các tiêu chí đánh giá hiệu năng của hệ thống nhận dạng khuôn mặt: tỉ lệ nhận
dạng đúng, thời gian nhận dạng.
4. Phương pháp nghiên cứu
Luận văn được nghiên cứu theo phương pháp thu thập dữ liệu kết hợp giữa lý
thuyết và thực nghiệm, theo thứ tự sau:
Thu thập tài liệu nghiên cứu, bao gồm tài liệu lý thuyết và thực nghiệm.
Tìm hiểu, khảo sát cơ sở vật chất, kỹ thuật và công nghệ, thiết bị sẵn có, linh
kiện phù hợp có mặt trên thị trường.
Xây dựng mô hình tổng quan về nhận dạng khuôn mặt trên hệ thống nhúng (kit
Raspberry Pi).
Thao tác thử nghiệm các thuật toán trực tiếp trên phần cứng .
Xây dựng bản demo hệ thống nhận dạng khuôn mặt
5. Ý nghĩa khoa học và thực tiễn của đề tài
Luận văn thực hiện lại các nghiên cứu từ các tài liệu, bài báo cáo khoa học về kỹ
thuật nhận dạng khuôn mặt dựa trên nền tảng OpenCV và Raspberry Pi. Kết quả luận
văn sẽ là tài liệu tham khảo để rút ra ưu điểm và những hạn chế của phương pháp nhận
3
dạng khuôn mặt trên hệ thống nhúng Raspberry Pi. Trên cơ sở đó có thể sử dụng
Raspberry Pi để ứng dụng vào các hệ thống điều khiển, quản lý, giám sát, an ninh…
6. Bố cục luận văn
Luận văn được chia ra làm 4 chương như sau:
Chương 1: Tổng quan về hệ thống nhận dạng khuôn mặt
Phân tích tổng quan hệ thống nhận dạng khuôn mặt, tình hình phát triển của kỹ
thuật này cũng như tóm tắt sơ lược về các phương pháp, kỹ thuật nhận dạng khuôn mặt.
Chương 2: Kỹ thuật trích chọn đặc trưng và phương pháp phân lớp ứng dụng trong
nhận dạng khuôn mặt
Tập trung phân tích lý thuyết cho hệ thống từ mức tổng quan đến chi tiết từng thuật
toán. Ở chương này, Luận văn trình bày lý thuyết chung cho từng kỹ thuật ứng dụng
trong luận văn: kỹ thuật phân tích thành phần chính PCA, kỹ thuật huấn luyện bằng
phương pháp đối sánh và phương pháp máy vector hỗ trợ SVM, phương pháp mạng
Neural tích chập.
Chương 3: Hệ thống nhận dạng khuôn mặt trên máy tính nhúng Raspberry Pi 3
Trình bày các kiến thức tổng quan về Raspberry Pi 3 và thư viện mã nguồn mở
OpenCV, quy trình thực hiện nhận dạng khuôn mặt thực hiện trên Raspberry Pi.
Chương 4: Thực nghiệm và đánh giá hệ thống
Trình bày hệ thống nhận dạng khuôn mặt thực nghiệm, đánh giá hiệu năng của hệ
thống. Từ đó rút ra kết luận và hướng phát triển của đề tài
C
C
R
L
T.
DU
Luận văn được thực hiện dựa trên các nguồn tài liệu tham khảo được thu thập từ
nhiều nguồn khác nhau: các bài báo trong các tạp chí hoặc hội thảo khoa học chuyên
ngành, các báo cáo khoa học, cơ sở dữ liệu Đồ án và Luận văn tại các trường Đại học,
được trích dẫn trong suốt luận văn và danh mục tài liệu được liệt kê cụ thể ở phần Tài
liệu tham khảo.
4
CHƯƠNG 1
TỔNG QUAN VỀ HỆ THỐNG NHẬN DẠNG KHUÔN MẶT
1.1. Giới thiệu chương
Hệ thống nhận dạng khuôn mặt là một ứng dụng máy tính tự động xác định hoặc
nhận dạng một người nào đó từ một hình ảnh kỹ thuật số hoặc một khung hình video từ
một nguồn video. Một trong những cách để thực hiện điều này là so sánh các đặc điểm
khuôn mặt chọn trước từ hình ảnh và một cơ sở dữ liệu về khuôn mặt. Công nghệ nhận
dạng khuôn mặt là công nghệ sinh trắc học ít tác động đến người dùng nhất và là công
nghệ sinh trắc học nhanh nhất. Nhà quản lý có thể chủ động hơn trong việc kiểm soát,
hệ thống sẽ nhận diện khuôn mặt một cách kín đáo bằng cách chụp ảnh khuôn mặt của
những ai bước vào một khu vực được xác định từ camera giám sát. Trong chương này
sẽ trình bày những khái niệm cơ bản về nhận dạng khuôn mặt, quá trình nhận dạng
khuôn mặt và những thách thức, khó khăn cũng như những giải pháp công nghệ đã được
đưa ra để nâng cao tính hiệu quả của nhận dạng khuôn mặt.
C
C
R
L
T.
1.2. Tổng quan về hệ thống nhận dạng khuôn mặt
1.2.1. Các vấn đề liên quan
Đặc tính sinh trắc học: Những thuộc tính vật lý hoặc các mẫu hành vi, các đặc
điểm sinh học đặc trưng như dấu vân tay, mẫu mống mắt, giọng nói, khuôn mặt, dáng
đi... để nhận diện con người [1, 2].
DU
Dữ liệu sinh trắc lý tưởng của người luôn luôn phải có những đặc tính cơ bản
như sau:
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.
Hệ thống sinh trắc học: Hệ thống sinh trắc học là một hệ thống được thiết kế
để xác minh và nhận dạng một người dựa vào những đặc trưng sinh học duy nhất của
người đó.
Hệ thống nhận dạng khuôn mặt: Hệ thống nhận dạng khuôn mặt là một hệ thống
được thiết kế để tìm thông tin của một người. Kĩ thuật nhận dạng là kiểm tra sự phù hợp
dựa trên phép so sánh một-nhiều, cụ thể là tìm ra một người là ai trong số những người
đã được lưu trữ trong hệ thống dựa vào thông tin khuôn mặt [3-5].
Hệ thống xác minh hay xác thực mặt người: Hệ thống xác minh/xác thực khuôn
5
mặt là một hệ thống được thiết kế để xác minh thông tin của một người. Kĩ thuật xác
minh là kiểm tra sự phù hợp trên phép so sánh một-một, cụ thể là đối chiếu thông tin mới
nhận về một người với thông tin đã lưu trữ về người này có khớp hay không dựa trên
thông tin khuôn mặt [3].
1.2.2. Kiến trúc tổng quát của hệ thống nhận dạng khuôn mặt
Nhận dạng khuôn mặt là một kiểu nhận dạng trực quan, khuôn mặt được xem là
một đối tượng với sự thay đổi của ánh sáng, tư thế, cảm xúc sẽ được xác định dựa trên
ảnh hai chiều. Nhiệm vụ của hệ thống nhận dạng khuôn mặt là xử lý tự động thông tin
từ các hình ảnh đầu vào và đưa ra quyết định về thông tin khuôn mặt [3]. Trong đề tài
này, cấu trúc của hệ thống nhận dạng khuôn mặt được thực hiện theo quy trình như
hình sau:
Image
Phát hiện
khuôn mặt
Trích xuất
đặc trưng
DU
R
L
T.
C
C
Nhận dạng
khuôn mặt
ID
Dữ liệu
khuôn
mặt
Hình 1.1. Kiến trúc tổng quan của hệ thống nhận dạng khuôn mặt [5]
Chức năng từng khối mô tả cụ thể như sau:
Phát hiện khuôn mặt: Hệ thống nhận dạng khuôn mặt đầu tiên bắt đầu với việc
định vị khuôn mặt người trong một hình ảnh cụ thể. Mục đích của bước này là xác định
xem hình ảnh đầu vào có chứa khuôn mặt người hay không. Sự thay đổi của ánh sáng
và biểu cảm khuôn mặt có thể ngăn cản việc phát hiện khuôn mặt thích hợp. Nhiều kỹ
thuật được sử dụng để phát hiện và định vị hình ảnh khuôn mặt người, ví dụ, máy dò
Viola - Jones [8, 9], biểu đồ của gradient định hướng (HOG) [10], và phân tích thành
phần chính (PCA) [17-19 ].
Trích xuất đặc trưng: Chức năng chính của bước này là trích xuất các đặc điểm
của hình ảnh khuôn mặt được phát hiện trong bước đầu tiên. Bước này đại diện cho một
khuôn mặt với một tập hợp các vectơ đặc điểm được gọi là “đặc trưng” mô tả các đặc
điểm nổi bật của hình ảnh khuôn mặt như miệng, mũi và mắt với sự phân bố hình học
của chúng [21]. Mỗi khuôn mặt được đặc trưng bởi cấu trúc, kích thước và hình dạng
cho phép nó được nhận dạng. Một số kỹ thuật liên quan đến việc trích xuất hình dạng
6
của miệng, mắt hoặc mũi để xác định khuôn mặt bằng cách sử dụng kích thước và
khoảng cách. HOG [10], Eigenface [18, 21], phân tích thành phần độc lập (ICA), phân
tích phân biệt tuyến tính (LDA) [19], biến đổi tính năng bất biến tỷ lệ (SIFT) [22], bộ
lọc gabor, lượng tử hóa pha cục bộ (LPQ) [23] và kỹ thuật mẫu nhị phân cục bộ (LBP)
[24] được sử dụng rộng rãi để trích xuất các đặc trưng của khuôn mặt.
Nhận dạng khuôn mặt: Bước này xem xét các đặc trưng được trích xuất trong
bước trích xuất đặc trưng và so sánh nó với các khuôn mặt đã biết được lưu trữ trong cơ
sở dữ liệu cụ thể. Trong bước nhận dạng, một khuôn mặt thử nghiệm được so sánh với
một tập hợp các khuôn mặt trong dữ liệu có sẵn nhằm tìm ra khuôn mặt phù hợp nhất.
Trong bước nhận dạng, một khuôn mặt kiểm tra được so sánh với các khuôn mặt đã biết
trong cơ sở dữ liệu để đưa ra quyết định [25, 26].
1.2.3. Những khó khăn, thách thức của hệ thống nhận dạng khuôn mặt
- Tư thế, góc chụp: Ảnh chụp khuôn mặt có thể thay đổi rất nhiều bởi vì góc chụp
giữa camera và khuôn mặt. Chẳng hạn như: chụp thẳng, chụp xéo bên trái hay xéo bên
phải, chụp từ trên xuống, chụp từ dưới lên, v.v...Với các tư thế khác nhau, các thành
phần trên khuôn mặt như mắt, mũi, miệng có thể bị khuất một phần hoặc thậm chí khuất
hết [8].
- Sự xuất hiện hoặc thiếu một số thành phần của khuôn mặt: các đặc trưng như râu
mép, râu hàm, mắt kính, v.v... có thể xuất hiện hoặc không. Vấn đề này làm cho bài toán
càng trở nên khó hơn rất nhiều.
C
C
R
L
T.
DU
- Sự biểu cảm của khuôn mặt: Biểu cảm của khuôn mặt người có thể làm ảnh
hưởng đáng kể lên các thông số của khuôn mặt. Chẳng hạn, cùng một khuôn mặt một
người, nhưng có thể sẽ rất khác khi họ cười hoặc sợ hãi,v.v...
- Sự che khuất: Khuôn mặt có thể bị che khuất bởi các đối tượng khác hoặc các
khuôn mặt khác.
- Điều kiện của ảnh: Ảnh được chụp trong các điều kiện khác nhau về: chiếu sáng,
về tính chất camera (máy kỹ thuật số, máy hồng ngoại,v.v...) ảnh hưởng rất nhiều đến
chất lượng ảnh khuôn mặt. Tuy vậy, hệ thống nhận dạng mặt người cần đảm bảo các
yêu cầu sau:
- Độ chính xác nhận dạng có thể chấp nhận được đối với yêu cầu của bài toán nhận
dạng người.
- Tốc độ vận hành cao đối với các cơ sở dữ liệu lớn và số lượng các yêu cầu có thể
giải quyết được.
- Đơn giản trong việc cài đặt, lựa chọn thiết bị và vận hành, an toàn với người sử
dụng.
7
1.2.4. Những ứng dụng hệ thống nhận dạng khuôn mặt
Ngày nay, trên thế giới ước tính có khoảng 79% số lượng vi xử lý dùng trong các
hệ thống nhúng. Thị trường hệ thống nhúng sẽ sớm vượt thị trường của các hệ thống
dạng PC, và đương nhiên, hệ thống phần mềm và các thuật toán kèm theo cũng được dự
đoán là sẽ tăng vượt bậc. Và hệ thống nhận dạng khuôn mặt trên nền hệ thống nhúng
cũng nằm trong quy luật phát triển đó.
Trong nước, các nghiên cứu về hệ thống nhận dạng khuôn mặt chỉ tập trung vào
nền tảng PC với nhiều thuật toán phức tạp.
Rất nhiều nghiên cứu của các tác giả trong nước về các thuật toán nhận dạng khuôn
mặt cũng như xây dựng nhiều hệ thống thực nghiệm để đánh giá. Các ứng dụng trên
được mô phỏng và xử lý tốt với Matlab, và có thể phát triển thành các ứng dụng cụ thể
với ngôn ngữ C#. Các hệ thống này đáp ứng rất tốt tính thời gian thực, độ chính xác rất
cao, tuy nhiên trong phạm vi hệ thống nhúng, các phương pháp tính này tỏ ra chưa phù
hợp khi chưa đảm bảo được tính hiệu quả ở nhiều thông số như: năng lượng, kích thước
hệ thống, hiệu quả sử dụng và giá thành.
Bên cạnh đó, trên thế giới, để đáp ứng nhu cầu về phát triển hệ thống nhúng chuyên
dụng cho mục đích nhận dạng khuôn mặt thì đã có nhiều nhóm nghiên cứu tiến hành
thực hiện và đánh giá các thuật toán và đạt được kết quả rất khả quan. Các bài toán phát
hiện khuôn mặt sử dụng FPGA, Kit Xilinx XC5VLX50, có khả năng xử lý các bức ảnh
tĩnh có độ phân giải 10242 pixels cũng như các hệ thống sử dụng OpenCV cascade of
C
C
R
L
T.
DU
classifiers cho khuôn mặt chính diện và lưu trữ được đến 2730 Haar-like classifiers.
Từ năm 2009 đến 2013, nhiều nhóm nghiên cứu đã tiếp tục phát triển các hệ thống
nhúng nhận dạng khuôn mặt trên chip ARM với các bộ cơ sở dữ liệu có sẵn như AT&T,
Yale, Face94.... Hệ thống được xây dựng trên chip ARM 7, hệ điều hành Window với
kết nhận dạng rất tốt. Tuy nhiên, các kết quả trên chỉ có thể áp dụng để phát triển và
đánh giá thuật toán, mà không thể đi vào ứng dụng thực tiễn do mô hình hệ thống chưa
phù hợp (thiếu các cơ cấu IO chấp hành, cửa sổ hiển thị phải dùng Matlab...).
Nhận dạng khuôn mặt đang được phát triển và ứng dụng rộng rãi trong nhiều lĩnh
vực khác nhau. Cụ thể có thể nói đến hệ thống nhận diện khuôn mặt được triển khai ở
Mỹ, vốn trước kia chỉ dành cho các cơ quan thực thi pháp luật của nước này. Chính phủ
Mỹ hiện đang ứng dụng công nghệ này để đảm bảo an ninh quốc gia thông qua việc
nhận diện khuôn mặt kẻ tội phạm ngay khi chúng xuống sân bay hay loại bỏ những lá
phiếu gian lận thông qua việc xác định khuôn mặt người đi bầu cử. Một ứng dụng khác rất
tiềm năng là việc xác thực rút tiền từ máy rút tiền tự động ATM, một giải pháp bảo mật hứa
hẹn sẽ trở nên phổ biến trong tương lai gần.
Trên lĩnh vực điện thoại di động, ứng dụng nhận diện khuôn mặt để mở máy đã có
8
trong hệ điều hành Android 4.x, thành quả thu được của Google sau thắng lợi trong cuộc
chiến bằng sáng chế trước các đối thủ cạnh tranh. Cùng thời điểm đó, Apple cũng đã tiết
lộ bằng sáng chế khóa và mở khóa các dòng sản phẩm của hãng ứng dụng công nghệ
nhận diện khuôn mặt.
Tháng 6/2012, việc mạng xã hội Facebook mua lại công ty nhận diện khuôn mặt
Face.com đã tạo ra những hy vọng nhất định cho các công ty hoạt động trong lĩnh vực
này. Trước đó, Google và Sony cũng đã ứng dụng công nghệ nhận diện khuôn mặt trong
các phần mềm của họ, tương ứng là Picasa và Picture Motion Browser. Tất nhiên, tất cả
mới chỉ dừng lại ở việc tạo sự thuận tiện cho người sử dụng. Các lĩnh vực và sản phẩm
cụ thể đã áp dụng nhận dạng khuôn mặt có thể liệt kê như:
- Face Identification: Hệ thống này nhận dạng khuôn mặt bởi hình ảnh khuôn mặt
trực tuyến chứ không phải thông qua các mã PIN, ID hay password cổ điển. Ứng dụng
cụ thể như nhận dạng bằng lái xe, chứng minh nhân dân, passports hay kiểm phiếu bầu
C
C
cử. Năm 2000, Faceit technology đã lần đầu tiên ứng dụng nhận dạng khuôn mặt chống
gian lận trong bầu cử. Người bỏ phiếu được nhận dạng và lưu lại trong cơ sở dữ liệu
nhằm đối sánh để loại bỏ các trường hợp trùng lặp người bỏ phiếu. Hay như hệ thống
R
L
T.
Viisage’s face Finder của Department of State for the Diversity Visa Program Hoa Kỳ
(hình 1.2) chứa xấp xỉ 50000 thông tin khuôn mặt phục vụ cho quản lý bằng lái xe.
DU
Hình 1.2. Giao diện chương trình FaceFinder
9
- Access control: Ứng dụng cho việc giới hạn đăng nhập vào hệ thống bất kì như
máy tính, hệ thống tòa nhà,...Hệ thống này yêu cầu ảnh hoặc video phải được thu nhận
dưới các ràng buột nhất định về hướng khuôn mặt hay độ sáng khung hình...Năm 2000,
các máy tính của IBM được tích hợp Facelt và camera Ultraport cho phép người dùng
quản trị máy tính bằng khuôn mặt. Admin của hệ thống được quan sát từ video tích hợp
trên máy tính, nếu admin không có trước màn hình máy tính, hệ thống sẽ tự động khóa
bàn phím và chuột, cho đến khi admin trở về và kích hoạt đăng nhập bằng khuôn mặt.
Dễ thấy hơn cả là các hệ thống Facegate sử dụng khuôn mặt để đăng nhập hoặc chấm
công, được sử dụng rộng rãi trên toàn thế giới
C
C
R
L
T.
DU
Hình 1.3. Máy chấm công FK605 dùng FaceID
- An ninh: Ngày nay, hơn bao giờ hết, an ninh là một mối quan tâm chính tại các
địa điểm công cộng và sự kiện tập trung nhiều người. Ví dụ như hệ thống an ninh sân
bay sử dụng công nghệ nhận dạng khuôn mặt đã được thực hiện tại nhiều nơi trên toàn
thế giới. Mặc dù nó có thể kiểm soát điều kiện ánh sáng và định hướng khuôn mặt trong
một số ứng dụng bảo mật, (ví dụ, bằng cách sử dụng một làn đường cho người đi bộ duy
nhất với ánh sáng kiểm soát), một trong những thách thức lớn nhất đối với nhận dạng
khuôn mặt ở những nơi công cộng là số lượng lớn các mặt mà cần phải được kiểm tra
nên hiệu suất nhận dạng chưa cao.
1.3. Kết luận chương
Với nội dung chương 1, luận văn đã trình bày tổng quát về hệ thống nhận dạng
khuôn mặt nói chung, cụ thể là về những đặc điểm của hệ thống cũng như các khó khăn,
thách thức hiện nay đối với nhận dạng khuôn mặt. Chương này cũng giới thiệu một số
ứng dụng cụ thể của công nghệ nhận dạng khuôn mặt đang được triển khai.
10
CHƯƠNG 2
KỸ THUẬT TRÍCH CHỌN ĐẶC TRƯNG VÀ PHƯƠNG PHÁP
PHÂN LỚP ỨNG DỤNG TRONG NHẬN DẠNG KHUÔN MẶT
2.1. Giới thiệu chương
Trong chương này sẽ trình bày tổng quan về kỹ thuật phát hiện và nhận dạng khuôn
mặt, cụ thể là về phương pháp trích chọn đặc trưng và nhận dạng khuôn mặt. Kỹ thuật
phát hiện khuôn mặt sử dụng thuật toán Haar và trích chọn đặc trưng khuôn mặt dựa
trên phương pháp PCA. Sau đó đưa ra phương pháp nhận dạng được áp dụng vào PCA,
đó là phương pháp đối sánh và phương pháp SVM.
2.2. Kỹ thuật phát hiện khuôn mặt bằng thuật toán Haar
2.2.1. Tổng quan về các đặc trưng Haar-like
Đặc trưng Haar-like diễn đạt được tri thức về các đối tượng trong ảnh (bởi vì nó
biểu diễn mối liên hệ giữa các bộ phận của đối tượng), điều mà bản thân từng điểm ảnh
không diễn đạt được [7,8]. Mỗi đặc trưng Haar-like chứa 2, 3 hoặc 4 miền hình học có
màu “trắng” hoặc “đen” như sau:
C
C
R
L
T.
DU
Hình 2.1. Các đặc trưng Haar-like cơ sở
Hình 2.2. Các đặc trưng Haar-like mở rộng
Giá trị của một đặc trưng Haar-like chỉ đơn giản là sự khác biệt giữa tổng các giá
trị xám của các pixel trong vùng “đen” với tổng các giá trị xám của các pixel trong vùng
“trắng”:
f(x) = Tổngvùng đen (mức xám của pixel) - Tổngvùng trắng (mức xám của pixel)
(2.1)
- Xem thêm -