Tải bản đầy đủ (.docx) (75 trang)

Nhận dạng khuôn mặt

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

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN VIỄN THÔNG
---------------o0o---------------

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

THIẾT KẾ HỆ THỐNG
NHẬN DẠNG KHUÔN MẶT TRÊN KIT RASPBERRY PI

SINH VIÊN THỰC HIỆN:
NGUYỄN ĐÌNH THẮNG - 41303783
GIẢNG VIÊN HƯỚNG DẪN:
HÀ HOÀNG KHA

TP. HỒ CHÍ MINH, THÁNG 12 NĂM 2018


ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Độc lập – Tự do – Hạnh phúc.
-----✩---------✩----Số: ______ /BKĐT
Khoa: Điện – Điện tử
Bộ Môn: Viễn Thông

NHIỆM VỤ LUẬN VĂN TỐT NGHIỆP
1.

HỌ VÀ TÊN: Nguyễn Đình Thắng


MSSV: 41303783

2.
3.
4.

NGÀNH: ĐIỆN TỬ - VIỄN THÔNG
LỚP : DD13DV3
Đề tài:
Nhiệm vụ (Yêu cầu về nội dung và số liệu ban đầu):
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
5. Ngày giao nhiệm vụ luận văn: ...............................
6. Ngày hoàn thành nhiệm vụ: ...................................
7. Họ và tên người hướng dẫn:
Phần hướng dẫn
.................................................................
.....................................
.................................................................
.....................................
Nội dung và yêu cầu LVTN đã được thông qua Bộ Môn.
Tp.HCM, ngày…... tháng….. năm 20
CHỦ NHIỆM BỘ MÔN

PHẦN DÀNH CHO KHOA, BỘ MÔN:
Người duyệt (chấm sơ bộ):.......................

Đơn vị:......................................................
Ngày bảo vệ : ...........................................
Điểm tổng kết: .........................................
Nơi lưu trữ luận văn: ...............................

NGƯỜI HƯỚNG DẪN CHÍNH



Lời cảm ơn

GVHD: Hà Hoàng Kha

LỜI CẢM ƠN
Thực tế luôn cho thấy, sự thành công nào cũng gắn liền với những sự hỗ trợ và
giúp đỡ của những người xung quanh dù cho sự giúp đỡ đó là ít hay nhiều, trực tiếp
hay gián tiếp. Trong suốt quãng thời gian làm luận văn, em luôn nhận được sự quan
tâm, giúp đỡ của thầy cô, gia đình và bạn bè xung quanh.
Với tấm lòng biết ơn vô cùng sâu sắc, em xin gửi lời cảm ơn chân thành nhất
đến các quý thầy cô trường đại học BKHCM, những người đã dùng những tri thức và
tâm huyết của mình để truyền đạt cho chúng em vốn kiến thức quý trong suốt thời gian
học tập tại trường. Đặc biệt, em xin chân thành cảm ơn thầy Hà Hoàng Kha, người đã
hết lòng hỗ trợ và giúp đỡ em trong quá trình tìm hiểu và hoàn thiện đề tài luận văn tốt
nghiệp của mình.
Và em cũng xin gửi lời cảm ơn tới bố mẹ và những người thân trong gia đình vì
đã nuôi nấng, dạy dỗ, chăm lo cho và động viên tôi hoàn thành thật tốt khóa học này.
Mặc dù đã hết sức cố gắng hoàn thành luận văn nhưng chắc chắn sẽ không
tránh khỏi những sai sót. Kính mong nhận được sự cảm thông, chỉ bảo tận tình của các
quý thầy cô và các bạn.
Em xin chân thành cảm ơn!


Tp. Hồ Chí Minh, ngày

tháng

năm

.

Sinh viên

1


Luận văn tốt nghiệp
Kha

GVHD: Hà Hoàng

MỤC LỤC

LỜI CẢM ƠN.........................................................................................................i
MỤC LỤC.............................................................................................................ii
DANH SÁCH HÌNH MINH HỌA.......................................................................v
DANH SÁCH BẢNG SỐ LIỆU.........................................................................vii
DANH SÁCH TỪ VIẾT TẮT...........................................................................viii

Mở đầu..................................................................................................................9
1. Tính cấp thiết của đề tài luận văn................................................................9
2. Tổng quan về tình hình nghiên cứu thuộc lĩnh vực đề tài............................9

3. Mục tiêu, đối tượng và phạm vi nghiên cứu................................................9
4. Cấu trúc luận văn.........................................................................................9
Chương 1. Cơ sở lý thuyết của hệ thống nhận dạng khuôn mặt..........................11
1.1.Bài toán nhận dạng khuôn mặt và những vấn đề cơ bản............................11
1.1.1 Giới thiệu............................................................................................11
1.1.2 Thách thức trong nhận dạng khuôn mặt.............................................12
1.1.3 Các cách tiếp cận cho bài toán nhận dạng khuôn mặt........................13
1.2 Xử lý ảnh và những vấn đề cơ bản............................................................15
1.2.1 Xử lý ảnh là gì ?.................................................................................15
1.2.2 Điểm ảnh (Picture Element - Pixel)...................................................16
1.2.3 Độ phân giải (Resolution)..................................................................17
1.2.4 Mức xám của ảnh...............................................................................18
1.2.5 Mô hình màu RGB.............................................................................18
Chương 2. Các kỹ thuật áp dụng trong hệ thống nhận dạng khuôn mặt.............20
2.1 Biểu đồ gradient định hướng.....................................................................20
2.1.1 Tính gradient......................................................................................21
2


Luận văn tốt nghiệp
Kha

GVHD: Hà Hoàng

2.1.2 Gán hướng..........................................................................................22
2.1.3 Tính histogram của các khối................................................................22
2.1.4 Chuẩn hóa khối....................................................................................22
2.2 Đặc trưng Haar-like...................................................................................24
2.3 Mạng Nơron tích chập đa lớp - Deep Convolutional Neural Network
(CNN)...............................................................................................................26

2.3.1 Kiến trúc mạng Nơron tích chập.........................................................27
2.3.2 Ứng dụng Mạng Nơron tích chập vào việc mã hóa khuôn mặt.........30
2.4 Không gian Euclide đa chiều.....................................................................32
Chương 3. Phần mềm và thư viện hỗ trợ.............................................................36
3.1 Thư viện OpenCV......................................................................................36
3.2 Thư viện Dlib.............................................................................................40
3.3 Ngôn ngữ lập trình Python.........................................................................41
3.3.1 Vài nét cơ bản về ngôn ngữ lập trình Python:....................................41
3.2.2 Lịch sử của Python..............................................................................44
Chương 4. Các thiết bị phần cứng sử dụng trong đề tài......................................45
4. Máy tính nhúng Raspberry Pi......................................................................45
4.1

Giới thiệu............................................................................................45

4.2

Phần cứng của Raspberry Pi...............................................................47

4.3

Các hệ điều hành của Raspberry Pi....................................................52

4.4 Cài đặt hệ điều hành Raspbian cho Raspberry Pi..................................53
Chương 5. Thiết kế hệ thống nhận dạng khuôn mặt...........................................58
5.1 Tạo cơ sở dữ liệu ảnh.................................................................................58
5.2 Trích xuất đặc trưng...................................................................................60
5.3 Nhận dạng đối tượng..................................................................................61
5.4 Kết quả thực hiện:......................................................................................63
5.4.1 Thực nghiệm tạo CSDL ảnh...............................................................64

5.4.2 Thực nghiệm trích xuất đặc trưng khuôn mặt....................................65
3


Luận văn tốt nghiệp
Kha

GVHD: Hà Hoàng

5.4.3 Thực nghiệm nhận dạng khuôn mặt...................................................66
Chương 6. Kết luận và hướng phát triển.............................................................69
6.1 Kết luận......................................................................................................69
6.2 Hướng phát triển........................................................................................69
Tài liệu tham khảo...............................................................................................71

4


Luận văn tốt nghiệp
Kha

GVHD: Hà Hoàng

DANH SÁCH HÌNH MINH HỌA
Hình 1.1: Một số thông tin có thể tìm thấy trong một bức ảnh khuôn mặt...................12
Hình 1.2: Các bước xử lý trong hệ thống nhận dạng khuôn mặt..................................14
Hình 1.3: Quy trình xử lý ảnh......................................................................................16
Hình 1.4: Ví dụ về pixel ảnh........................................................................................17
Hình 1.5: Sự thay đổi độ mịn của hình ảnh theo kích thước........................................17
Hình 1.6: Mô hình màu RGB.......................................................................................18

Hình 2.1: Ảnh input và hai đạo hàm của nó................................................................21
Hình 2.2: Ảnh input và kết quả phát hiện vùng ảnh mặt sử dụng HOG.......................23
Hình 2.3: Các đặc trưng Haar-like cơ bản..................................................................24
Hình 2.4a: Đặc trưng cạnh..........................................................................................24
Hình 2.4b: Đặc trưng đường.......................................................................................24
Hình 2.4c: Đặc trưng xung quanh tâm........................................................................24
Hình 2.5: Ví dụ cách tính tổng giá trị mức xám của vùng D trên hình........................25
Hình 2.6: Xác định vùng ảnh mặt với đặc trưng haarlike............................................26
Hình 2.7: Kiến trúc cơ bản của mạng tích chập..........................................................27
Hình 2.8: Ví dụ bộ lọc tích chập được sử dụng trên ma trận điểm ảnh.......................28
Hình 2.9: Trường hợp thêm/không thêm viền trắng vào ảnh khi tích chập..................29
Hình 2.10: Phương thức Avarage Pooling và Max Pooling.........................................30
Hình 2.11: Quá trình đào tạo mạng nơron...................................................................31
Hình 2.12: Một ví dụ về mã hóa khuôn mặt sử dụng mạng ResNet..............................32
Hình 13: Không gian Euclide 3 chiều..........................................................................33
Hình 3.1: Cấu trúc của thư viện OpenCV....................................................................36
Hình 3.2: Cấu trúc của thư viện dlib...........................................................................40
Hình 3.3: Bảng xếp hạng ngôn ngữ lập trình...............................................................43
5


Luận văn tốt nghiệp
Kha

GVHD: Hà Hoàng

Hình 3.4:Biểu đồ thống kê ngôn ngữ lập trình được áp dụng vào giảng dạy ở 39
trường khoa học máy tính............................................................................................43
Hình 3.5: Guido van Rossum – Tác giả chính của Python...........................................44
Hình 4.1 Raspberry Pi 3 model B................................................................................45

Hình 4.2: Sơ đồ khối chung của các model Raspberry Pi............................................47
Hình 4.3: Module camera Raspberry Pi v2.................................................................52
Hình 4.4: Format thẻ nhớ bằng phần mềm SDFormatter............................................54
Hình 4.5: Ghi hệ điều hành lên thẻ nhớ SD.................................................................55
Hình 4.6: Truy cập command window của Raspberry Pi.............................................55
Hình 4.7: Cửa sổ cài đặt cấu hình của hệ điều hành Raspbian...................................56
Hình 4.8: Giao diện hệ điều hành Raspbian................................................................57
Hình 5.1: Phát hiện vùng khuôn mặt bằng đặc trưng HOG.........................................64
Hình 5.2: Cơ sở dữ liệu ảnh của đối tượng..................................................................65
Hình 5.3: Tính toán giá trị đặc trưng cho CSDL ảnh..................................................65
Hình 5.4: Dữ liệu mã hóa khuôn mặt...........................................................................66
Hình 5.5 Kết quả nhận dạng với khuôn mặt có trong CSDL........................................67

6


Luận văn tốt nghiệp
Kha

GVHD: Hà Hoàng

DANH SÁCH BẢNG SỐ LIỆU
Bảng 2.1: Sự thay đổi của kết quả nhận dạng với sự thay đổi khoảng cách Euclide...34
Bảng 4.1: Cổng GPIO của Raspberry Pi Model A, B, A+, B+....................................50
Bảng 4.2: Cổng GPIO của P5 trên board Raspberry Pi Model B rev 2.......................51

STT
1

Từ viết tắt

HOG

Ý nghĩa
Histogram of Oriented – Biểu đồ đặc trưng của các vector định hướng
7


Luận văn tốt nghiệp
Kha

2
3
4

CNN
GPU
CSDL

GVHD: Hà Hoàng

Convolutional Neural Network – Mạng nơ ron tích chập
Graphics Processing Unit – Bộ vi xử lý đồ họa
Cơ sở dữ liệu

DANH SÁCH TỪ VIẾT TẮT

8


Luận văn tốt nghiệp


GVHD: Hà Hoàng Kha

Mở đầu
1. Tính cấp thiết của đề tài luận văn
Nhận dạng mặt là bài toán có nhiều ứng dụng trong thực tế và nhận được sự quan
tâm lớn từ cộng đồng các nhà khoa học nghiên cứu về Thị giác máy tính trong thời gian
gần đây. Một hệ thống nhận dạng mặt có nhiều bước và mỗi bước lại là một lĩnh vực
nghiên cứu với các cách tiếp cận khác nhau. Do vây, hầu hết các nghiên cứu đều thực hiện
các thực nghiệm trên các cơ sở dữ liệu chuẩn, có sẵn các dữ liệu cần thiết, mà không tập
trung vào việc xây dựng một hệ thống tự động nhận dạng từ các dữ liệu thô ban đầu (các
ảnh mặt chưa qua xử lý).
2. Tổng quan về tình hình nghiên cứu thuộc lĩnh vực đề tài
Hiện nay các nghiên cứu về nhận dạng mặt được chia thành các hướng tiếp cận
khác nhau cho từng khâu của một hệ thống hoàn chỉnh vốn gồm có nhiều bước, mỗi bước
có một chức năng và ảnh hưởng khác nhau tới hiệu năng chung của hệ thống. Các thử
nghiệm về tỉ lệ nhận dạng của các cách phương pháp đề xuất thường được tiến hành trên
các tập dữ liệu được thu nhận trong điều kiện hạn chế về ánh sáng, hướng nhìn của khuôn
mặt,… Do đó, khi áp dụng vào thực tế thì kết quả thu được thường kém xa so với môi
trường thử nghiệm. Chính vì vậy, trong đề tài này, em tập trung vào việc xây dựng một hệ
thống tự động nhận dạng và thử nghiệm với các điều kiện ảnh thu nhận được trong các
điều kiện thực tế.
3. Mục tiêu, đối tượng và phạm vi nghiên cứu
Mục tiêu của đề tài là xây dựng một hệ thống nhận dạng mặt hoàn toàn tự động với
dữ liệu đầu vào là các ảnh mặt người được lấy trực tiếp từ camera thông qua các phương
pháp phát hiện vùng khuôn mặt như Histogram of Oriented Gradient (HOG) hay bộ phân
lớp Haarcascade của thư viện OpenCV. Hệ thống sẽ được cài đặt trên máy tính nhúng
Raspberry Pi bao gồm các module thực hiện: phát hiện vùng ảnh mặt, trích chọn đặc trưng
và nhận dạng.
4. Cấu trúc luận văn

9


Luận văn tốt nghiệp

GVHD: Hà Hoàng Kha

Dựa trên mục tiêu cụ thể đã trình bày trong phần trước, luận văn được tổ chức
thành năm chương với các nội dung cụ thể như sau:
Chương 1: Trong chương tổng quan này, ta sẽ có ra cái nhìn tổng quan về các
hướng tiếp cận và giải pháp đã được ứng dụng trong bài toán nhận khuôn mặt, từ đó lựa
chọn ra một phương hướng giải pháp cụ thể cho đề tài.
Chương 2: Chương này sẽ đi sâu hơn vào lý thuyết của các thuật toán xử lý hệ
thống bao gồm: phát hiện vùng khuôn mặt bằng đặc trưng HOG và bộ phân lớp
Haarcascade, huấn luyện nhận dạng với mạng FaceNet của mạng Nơron tích chập (CNN)
và cuối cùng là tính toán khoảng cách giữa 2 khuôn mặt thông qua không gian đa chiều
Euclide.
Chương 3: Trong chương này, ta sẽ đi vào phần mô tả của các phần mềm và thư
viện hỗ trợ được sử dụng trong đề tài như: thư viện OpenCV, thư viện Dlib, ngôn ngữ
Python và các phiên bản phần mềm của nó.
Chương 4: Chương này tập trung trình bày về các thiết bị phần cứng sử dụng trong
đề tài, cụ thể là máy tính nhúng Raspberry Pi bao gồm: giới thiệu về các phần cứng và
cách cài đặt hệ điều hành cho nó.
Chương 5: Chương này trình bày các thiết kế của hệ thống bao gồm sơ đồ khối và
lưu đồ thuật toán cho từng bước xử lý và kết quả thực nghiệm.
Chương 6: Chương này sẽ trình bày về những gì đã làm được so với mục tiêu để ra
và đề xuất hướng phát triển của đề tài.

10



Luận văn tốt nghiệp

GVHD: Hà Hoàng Kha

Chương 1. Cơ sở lý thuyết của hệ thống nhận dạng khuôn mặt
Cơ sở lý thuyết của đề tài bao gồm các vấn đề của xử lý ảnh và bài toán nhận dạng khuôn
mặt. Cụ thể là cách tiếp cận và xử lý bài toán nhận dạng khuôn mặt cũng như một vài thuật
ngữ trong xử lý ảnh.
1.1. Bài toán nhận dạng khuôn mặt và những vấn đề cơ bản
1.1.1 Giới thiệu
Nhận dạng khuôn mặt (Face recognition) là một chủ đề nghiên cứu thuộc lĩnh vực
thị giác máy tính (Computer vision) đã được phát triển từ đầu những năm 90 của thế kỷ
trước [1]. Cho tới hiện nay, đây vẫn là một chủ đề nghiên cứu mở 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 như nhận dạng mẫu
(Pattern recognition), học máy (Machine learning), thống kê (Statistic), sinh trắc học
(Biometrics). Điều này là do có rất nhiều ứng dụng thực tế cần tới một hệ thống nhận dạng
khuôn mặt, từ các hệ thống quản lý đăng nhập đơn giản cho tới các ứng dụng giám sát tại
các địa điểm công cộng (Public Area Surveillance) hoặc quản lý dân số (Population
Management) và pháp lý (Forsensics). Bên cạnh đó, so với các hệ thống nhận dạng dựa
trên các đặc điểm sinh trắc học khác của con người như nhận dạng mống mắt và vân tay
(Fingerprint and iris), dáng đi (Gait recognition), nhận dạng khuôn mặt có nhiều ưu điểm:
-

Một hệ thống nhận dạng khuôn mặt không đòi hỏi có sự tương tác trực tiếp giữa đối
tượng được nhận dạng và hệ thống

-

Việc thu nhận dữ liệu (các bức ảnh về khuôn mặt con người) cho quá trình nhận

dạng một con người dễ thực hiện hơn so với việc thu nhận các đặc điểm sinh trắc
học khác (như việc thu nhận dấu vân tay, mống mắt …)

-

Dữ liệu về khuôn mặt phổ biến hơn so với các đặc trưng khác do sự bùng nổ các
mạng xã hội ( Facebook, Twitter, Yahoo…), các dịch vụ chia sẻ dữ liệu da phương
tiện ( Youtube, Vimeo…) và sự phát triển nhanh chóng của các thiết bị thu nhận
11


Luận văn tốt nghiệp

-

GVHD: Hà Hoàng Kha

hình ảnh.
Từ khuôn mặt của một người, ta có thể khai thác nhiêu thông tin liên quan chứ
không chỉ là danh tính của người đó, ví dụ như giới tính (Gender), màu da (Skin
Color), hướng nhìn (Gaze Direction), chủng tộc, hành vi, sức khỏe, độ tuổi, cảm
xúc… Ví dụ như hình 1.1 dưới đây:

Hình 1.1: Một số thông tin có thể tìm thấy trong một bức ảnh khuôn mặt
1.1.2 Thách thức trong nhận dạng khuôn mặt
Tuy nhiên việc xây dựng một hệ thống nhận dạng khuôn mặt hoàn toàn tự động với
khả năng nhận dạng chính xác cao thực sự là một thách thức đối với các nhà nghiên cứu.
Điều này là do các yếu tố (chủ quan và khách quan) ảnh hưởng tới quá trình thu nhận hình
ảnh và tạo ra các bức ảnh có độ khác biệt rất lớn của cùng một khuôn mặt. Có thể liệt kê ra
đây các yếu tố chủ yếu ảnh hưởng đến độ chính xác của một hệ thống nhận dạng khuôn mặt

[2]:

- Ánh sáng ( Light conditions): Các bức ảnh thu được ở các điều kiện ánh sáng khác
nhau sẽ rất khác nhau và làm giảm đi sự chính xác trong quá trình nhận dạng.
- Thay đổi về tuổi tác (Aging changes): Khuôn khuôn mặt có các thay đổi lớn khi tuổi
tác thay đổi khó nhận dạng hơn ngay cả đối với hệ thống thị giác của con người.
- Các vấn đề về hướng (Pose variations): Việc nhận dạng với các ảnh có góc chụp thẳng
(Frontal) có kết quả tốt hơn rất nhiều so với các ảnh chụp được ở góc nghiêng lớn.
Giải pháp thường thấy đối với các ảnh có hướng chụp lớn là sử dụng các thuật toán
nội suy để cố gắng bù đắp phần khuôn mặt bị che khuất.
12


Luận văn tốt nghiệp

-

GVHD: Hà Hoàng Kha

Cảm xúc (Facial expresion variantions): Ở trạng thái cảm xúc khác nhau các đặc
điểm quan trọng cho nhận dạng khuôn mặt (như mắt, mũi, miệng) có thể bị biến
dạng và dẫn tới các kết quả nhận dạng sai.

-

Che khuất (Occlusions): Các bức ảnh khuôn mặt có thể bị che khuất bởi các yếu tố
khách quan như vật chắn ở trước mặt hoặc chủ quan như các phụ kiện trên khuôn
mặt (như khăn quấn, kính mắt …) làm cho quá trình nhận dạng bị sai.
Các hệ thống nhận dạng khuôn mặt được chia làm 2 loại là: xác định danh tính


(Face indentification) và xác thực danh tính ( Face verification). Bài toán xác định danh
tính là bài toán dạng 1–N trong đó hệ thống sẽ đưa ra kết quả là danh tính của ảnh được
nhận dạng dựa trên sự tương đồng của ảnh input với một danh sách N ảnh đã biế danh tính
chính xác. Trong khi đó, với bài toán xác thực hệ thống sẽ đưa ra câu trả lời đúng hoặc sai
dựa vào việc xác định xem 2 bức ảnh có thuộc về cùng một người hay không. Trong phạm
vi đề tài này, em chỉ tập trung vào bải toán xác định danh tính.
1.1.3

Các cách tiếp cận cho bài toán nhận dạng khuôn mặt
Dựa vào việc sử dụng các đặc trưng của khuôn mặt trong khi nhận dạng, các hệ

thống nhận dạng được chia thành hai hướng tiếp cận chính: Hướng tiếp cận toàn cục
(Global Approaches) và hướng tiếp cận cục bộ (Local Featueres Based Approaches). Các
phương pháp theo hướng tiếp cận toàn cục sẽ sử dụng các đặc điểm toàn cục của khuôn
mặt (hình dạng, màu sắc, các đường nét chính …) trong khi các hệ thống theo hướng tiếp
cận dựa vào các đặc trưng cục bộ sử dụng các đặc điêm cục bộ của khuôn mặt (các điểm
ảnh, các chi tiết như mắt, mũi, miệng, lông mày …) để nhận dạng. Trong sốc các hệ thống
nhận dạng khuôn mặt dựa trên các đặc điểm toàn cục Eigenfaces và Fisherfaces là các hệ
thống tiêu biểu nhất. Eigenfaces sử dụng phép phân tích thành phần chính PCA (Principal
Components Analysis) để biểu diễn mỗi ảnh mặt như là một tổ hợp tuyến tính của các
vector riêng thu được từ phép phân giải ma trận hiệp phương sai được tính từ các ảnh mặt
sau khi đã chuẩn hóa. Do PCA là một thuật toán không có giám sát nên không tận dụng
được các thông tin về lớp khi tập ảnh huấn luyện có nhiều hơn một mẫu cho mỗi lớp nên
trong Fisherfaces phương pháp phân tích tuyến tính khác biệt LDA (Linear Discriminant
13


Luận văn tốt nghiệp

GVHD: Hà Hoàng Kha


Analysis) đã được sử dụng nhằm khai thác tốt hơn các thông tin này. Về các hệ thống nhận
dạng khuôn mặt dựa trên các đặc điểm cục bộ thì phương pháp mẫu nhị phân cục bộ LBP
( Local Binary Pattern) và biến đổi song nhỏ Gabor (Gabor Wavelets) là các kỹ thuật điển
hình dùng để trích xuất các đặc điểm cục bộ từ ảnh khuôn mặt.
Các nghiên cứu cho thấy các hệ thống trên dựa trên các đặc điểm cục bộ cho kết quả
tốt hơn các hệ thống theo cách tiếp cận toàn cục, đặc biệt là sau khi làm việc với các ảnh bị
ảnh hưởng bởi các điều kiện như đã đề cập ở trên. Một cách tiếp cận khác là kết hợp cả hai
đặc trưng cục bộ và toàn cục để nhận được một hệ thống lai ghép (Hybrid system) nhằm
đạt được hiệu quả cao hơn. Hệ thống được xây dựng trong tài liệu này dựa trên các đặc
trưng cục bộ.
Về cơ bản một hệ thống nhận dạng khuôn mặt làm việc giống 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. Ở bước đầu tiên hệ
thống cần xác định xem có khuôn khuôn mặt nào trong bức ảnh input hay không, sau đó
nếu có thì chỉ vùng ảnh đó sẽ được quan tâm, xử lý, bước này được gọi là phát hiện khuôn
mặt (Face detection). Tiếp đến, các đặc điểm là đặc trưng nhất của khuôn mặt (giúp phân
biệt khuôn khuôn mặt này với người khác và các ảnh thuộc về cùng một người) sẽ được
trích chọn (Extract) để nhận dạng, bước này gọi là trích chọn đặc trưng (Feature
Extraction). Cuối cùng, hệ thống sẽ đối sánh các đặc trưng vừa nhận được với một kho dữ
liệu các đặc trưng của các nhân vật đã biết rõ danh tính (Face recognize) để xác định và
đưa ra kết luận về danh tính tương ứng với khuôn mặt có tỉ lệ tương đồng lớn nhất. Tỉ lệ
các ảnh nhận dạng đúng danh tính (so với dữ liệu thực tế) trên tổng số ảnh cần nhận dạng
đúng danh tính (so với dữ liệu thực tế) trên tổng số ảnh cần nhận dạng gọi là tỉ lệ nhận
dạng (Recognition rate) và được dùng để đánh giá hiệu năng (độ chính xác) của một hệ
thống nhận dạng.

14


Luận văn tốt nghiệp


GVHD: Hà Hoàng Kha

Hình 1.2: Các bước xử lý trong hệ thống nhận dạng khuôn mặt
Trên thực tế, việc xây dựng một hệ thống nhận dạng mặt sẽ gồm nhiều bước chi tiết
hơn như được chỉ ra trong hình 1.2. Sau bước trích chọn đặc trưng, mỗi ảnh mặt sẽ được
biểu diễn dưới dạng một vector đặc trưng có số chiều lớn (từ vài nghìn cho tới hàng trăm
nghìn) và chứa nhiều thông tin dư thừa, không cần thiết cho quá trình nhận dạng. Do đó,
một thuật toán học sẽ được sử dụng để loại bỏ các đặc điểm dư thừa và đồng thời làm tăng
tính phân biệt (Discriminative) của các thuộc tính được giữ lại nhằm làm tăng hiệu năng
của hệ thống về cả tốc độ xử lý (do chỉ cần làm việc với các vector có số chiều nhỏ hơn rất
nhiều) và độ chính xác. Cuối cùng, ở bước nhận dạng (Classification Stage), có nhiều thuật
toán có thể sử dụng, chẳng hạn như bộ phân lớp k-láng giềng gần nhất (kNearestNeighbors
– kNN), SVM (Support vector machine) hoặc mạng Nơron (Neural network).
Do một hệ thống nhận dạng mặt gồm nhiều bước nên các nghiên cứu về nhận dạng
mặt cũng chia thành các lĩnh vực nhỏ hơn chỉ tập trung vào các phương pháp để giải quyết
từng bước trong cả hệ thống. Vì thế, mặc dù đã có nhiều nghiên cứu về nhận dạng mặt,
song việc xây dựng hoàn chỉnh một hệ thống hoàn toàn tự động từ bước đầu tiên tới cuối
cùng vẫn còn chưa nhiều. Trong đề tài này, em hướng tới việc xây dựng một hệ thống nhận
dạng mặt hoàn toàn tự động với các kỹ thuật được áp dụng cho các bước như sau:
-

Phát hiện khuôn mặt : sử dụng bộ phân lớp Haarcascade [3] của OpenCV và bộ
phát hiện đặc trưng HOG của Dlib [4].

-

Trích chọn đặc trưng: xác định 128 giá trị định lượng của khuôn mặt thông qua
mạng ResNet đào tạo sẵn của Dlib.
15



Luận văn tốt nghiệp

-

GVHD: Hà Hoàng Kha

Nhận dạng đối tượng: dựa trên khoảng cách Euclide [5] giữa 2 khuôn mặt đã mã
hóa để đưa ra kết luận.

1.2 Xử lý ảnh và những vấn đề cơ bản
1.2.1 Xử lý ảnh là gì ?
Xử lý ảnh [6] là một phân ngành trong xử lý số tín hiệu với tín hiệu xử lý là ảnh. Đây
là một phân ngành khoa học mới rất phát triển trong những năm gần đây. Xử lý ảnh gồm 4
lĩnh vực chính: xử lý nâng cao chất lượng ảnh, nhận dạng ảnh, nén ảnh và truy vấn ảnh. Sự
phát triển của xử lý ảnh đem lại rất nhiều lợi ích cho cuộc sống của con người. Ngày nay xử
lý ảnh đã được áp dụng rất rộng rãi trong đời sống như: photoshop, nén ảnh, nén video, nhận
dạng biển số xe, nhận dạng khuôn mặt, nhận dạng chữ viết, xử lý ảnh thiên văn, ảnh y tế…
Xử lý ảnh là một quá trình thao tác với ảnh đầu vào nhằm cho ra một kết quả theo
mong muốn. Quá trình xử lý ảnh được mô tả bởi hình 1.3 dưới đây, kết quả của quá trình
này có thể là một bức ảnh “tốt hơn” hoặc là một kết luận.

Hình 1.3: Quy trình xử lý ảnh

1.2.2 Điểm ảnh (Picture Element - Pixel)
Gốc của ảnh (ảnh tự nhiên) [6] là ảnh liên tục về không gian và độ sáng. Để xử lý dữ
liệu dạng hình ảnh bằng máy tính thì hình ảnh cần phải được số hoá. Số hoá ảnh là sự biến
đổi gần đúng một ảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí (không gian)
và độ sáng (mức xám). Khoảng cách giữa các điểm ảnh đó được thiết lập sao cho mắt người

không phân biệt được ranh giới giữa chúng. Mỗi một điểm như vậy gọi là điểm ảnh (PEL:
Picture Element) hay gọi tắt là Pixel.
16


Luận văn tốt nghiệp

GVHD: Hà Hoàng Kha

Điểm ảnh (Pixel) là một phần tử của ảnh số tại toạ độ(x, y) với độ xám hoặc màu nhất
định. Kích thước và khoảng cách giữa các điểm ảnh đó được chọn thích hợp sao cho mắt
người cảm nhận sự liên tục về không gian và mức xám (hoặc màu) của ảnh số gần như ảnh
thật. Mỗi phần tử trong ma trận được gọi là một phần tử ảnh. Để dễ hiểu hơn về pixel thì ta
có thể quan sát hình 1.4 dưới đây.

Hình 1.4: Ví dụ về pixel ảnh
1.2.3 Độ phân giải (Resolution)
Độ phân giải (Resolution) [6] của ảnh là mật độ điểm ảnh trên một ảnh số được hiển
thị. Theo định nghĩa trên, khoảng cách giữa các điểm ảnh phải được chọn sao cho lúc quan
sát bằng mắt thường vẫn cảm nhận đước sự liên tục của bức ảnh. Việc lựa chọn khoảng cách
thích hợp tạo nên một mật độ phân bổ, đó chính là độ phân giải và được phân bố theo trục x
và y trong không gian hai chiều. Ví dụ: độ phân giải của ảnh trên màn hình CGA (Color
Graphic Adaptor) là một lưới điểm theo chiều ngang màn hình: 320 điểm chiều dọc * 200
điểm ảnh (320*200). Rõ ràng, cùng màn hình CGA 12” ta nhận thấy mịn hơn màn hình
CGA 17” độ phân giải 320*200, nguyên nhân là cùng một mật độ (độ phân giải) nhưng diện
tích màn hình rộng hơn thì sự liên tục của hình ảnh kém hơn, có thể quan sát hình 1.5 dưới
đây để thấy rõ hơn sự thay đổi độ mịn của hình ảnh theo kích thước.

17



Luận văn tốt nghiệp

GVHD: Hà Hoàng Kha

Hình 1.5: Sự thay đổi độ mịn của hình ảnh theo kích thước
1.2.4 Mức xám của ảnh
Một điểm ảnh (pixel) [6] có hai đặc trưng cơ bản là vị trí (x, y) của điểm ảnh và độ
xám của nó. Mức xám của điểm ảnh là cường độ sáng của nó được gán bằng giá trị số tại
điểm đó. Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256. Trong kỹ thuật máy
tính thường dùng 1 byte (8 bit) để biểu diễn mức xám, mức xám dùng 1 byte biểu diễn sẽ là
2^8 = 256 mức, vì vậy 256 là mức xám khá thông dụng trong xử lý ảnh. Tuy nhiên cũng tùy
theo mức xám sử dụng khác nhau ta có một số loại ảnh đặc trưng khác nhau ví dụ như ảnh
đen trắng, ảnh nhị phân, ảnh màu. Khái niệm của các loại ảnh trên được mô tả như sau:
-

Ảnh đen trắng: là ảnh có hai màu đen, trắng (không chứa màu khác) với mức xám ở
các điểm ảnh có thể khác nhau.

-

Ảnh nhị phân:ảnh chỉ có 2 mức đen trắng phân biệt tức dùng 1 bit mô tả 2^1 mức
khác nhau, như vậy mỗi điểm ảnh của ảnh nhị phân chỉ có thể là 0 hoặc 1.

-

Ảnh màu: dựa trên lý thuyết ba màu (Red, Blue, Green) để tạo nên thế giới màu,
người ta thường dùng 3 byte để mô tả mức màu, khi đó các giá trị màu: 2^8*3=2^24
xấp xỉ 16,7 triệu màu.


1.2.5 Mô hình màu RGB

18


Luận văn tốt nghiệp

GVHD: Hà Hoàng Kha

Hình 1.6: Mô hình màu RGB
Mô hình màu RGB [7] sử dụng mô hình bổ sung trong đó ánh sáng đỏ, xanh lá cây và
xanh lam được tổ hợp với nhau theo nhiều phương thức khác nhau để tạo thành các màu
khác trong hệ màu, có thể quan sát hình 1.6 ở trên để thấy được quá trình tạo ra các màu
khác từ ba màu cơ bản ban đầu. Mô hình màu RGB không định nghĩa như thế nào là màu
“đỏ”, “xanh lá cây” và “xanh lam” một cách chính xác, vì thế với cùng các giá trị như nhau
của RGB có thể mô tả các màu tương đối khác nhau trên các thiết bị khác nhau có cùng một
mô hình màu.
Một trong những ứng dụng phổ biến nhất của mô hình màu RGB là việc hiển thị màu
sắc trong các ống tia âm cực, màn hình tinh thể lỏng hay màn hình plasma, chẳng hạn như
màn hình máy tính hay ti vi. Mỗi điểm ảnh trên màn hình có thể được thể hiện trong bộ nhớ
máy tính như là các giá trị độc lập của màu đỏ, xanh lá cây và xanh lam. Các giá trị này
được chuyển đổi thành các cường độ và gửi tới màn hình. Bằng việc sử dụng các tổ hợp
thích hợp của các cường độ ánh sáng đỏ, xanh lá cây và xanh lam, màn hình có thể tái tạo lại
phần lớn các màu trong khoảng đen và trắng. Các phần cứng hiển thị điển hình được sử dụng
cho các màn hình máy tính trong năm 2003 sử dụng tổng cộng 24 bit thông tin cho mỗi điểm
ảnh (trong tiếng Anh thông thường được biết đến như bits per pixel hay bpp). Nó tương ứng
với mỗi 8 bit cho màu đỏ, xanh lá cây và xanh lam, tạo thành một tổ hợp 256 các giá trị có
thể, hay 256 mức cường độ cho mỗi màu. Với hệ thống như thế, khoảng 16,7 triệu màu rời
rạc có thể tái tạo.
Khi biểu diễn dưới dạng số, các giá trị RGB trong mô hình 24 bpp thông thường được

ghi bằng cặp ba số nguyên giữa 0 và 255, mỗi số đại diện cho cường độ của màu đỏ, xanh lá
cây, xanh lam trong trật tự như thế. Ví dụ: (0, 0, 0) là màu đen, (255, 255, 255) là màu trắng,
19


Luận văn tốt nghiệp

GVHD: Hà Hoàng Kha

(255, 0, 0) là màu đỏ… Định nghĩa trên sử dụng thỏa thuận được biết đến như là toàn bộ
khoảng RGB. Thông thường, RGB cho video kỹ thuật số không phải là toàn bộ khoảng này.
Thay vì thế video RGB sử dụng thỏa thuận với thang độ và các giá trị tương đối chẳng hạn
như (16, 16, 16) là màu đen, (235, 235, 235) là màu trắng…

Chương 2. Các kỹ thuật áp dụng trong hệ thống nhận dạng khuôn mặt

Như đã đề cập ở chương trước, để xây dựng một hệ thống nhận dạng khuôn mặt thì cần các
bước xử lý cơ bản như dưới đây:
-

Bước 1: tìm tất cả các khuôn mặt có trong bức ảnh, em sử dụng đặc trưng HOG của
biểu đồ gradient định hướng và đặc trưng haar-like của bộ phân lớp haarcascade.

-

Bước 2: mã hóa khuôn mặt vừa tìm thấy bằng mạng nơron tích chập - Convolutional
neural network(CNN) [7], cụ thể trong đề tài này em sử dụng model FaceNet đã
được đào tạo sẵn của Dlib.

-


Bước 3: dựa vào khoảng cách Euclide giữa hai khuôn mặt để đánh giá sự tương đồng
giữa chúng.

Chương này sẽ trình bày về cơ sở lý thuyết của đặc trưng HOG, haar-like, mạng nơron tích
chập, không gian đa chiều Euclide cũng như cách mà chúng được áp dụng trong đề tài.
2.1 Biểu đồ gradient định hướng

20


Luận văn tốt nghiệp

GVHD: Hà Hoàng Kha

Các đặc trưng HOG ban đầu được thiết kế để phát hiện người (human detection)
trong dữ liệu ảnh nhưng sau đó được mở rộng và được sử dụng rộng rãi cho các bài toán
phát hiện đối tượng nói chung (object detection). Phương pháp HOG dựa trên việc đếm số
lần xuất hiện của các hướng đạo hàm (gradient orientation) trong các vùng cục bộ của ảnh.
Bản chất của phương pháp HOG là các thông tin về hình dáng và vẻ bề ngoài của các
đối tượng cục bộ trong ảnh có thể được mô tả bằng cách sử dụng thông tin về sự phân bố
của các cường độ gradient (intensity gradients) hoặc của các hướng biên (edge directions).
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à các “tế bào” (cells) và với mỗi cell đó một histogram về các hướng của gradients sẽ
được tính cho các điểm nằm trong cell. Ghép các histogram này lại 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 của ảnh, 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ả của bước chuẩn hóa này là vector đặc trưng sẽ 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.

Các bước cơ bản của việc tính một vector HOG cho một ảnh gồm có: Tính gradient,
gán hướng vào các vùng giá trị khác nhau, tính histogram của các khối và cuối cùng là chuẩn
hóa các khối.
2.1.1 Tính gradient
Đây là bước đầu tiên trong phương pháp HOG và thường được thực hiện bằng hai
phép nhân chập ảnh gốc với 2 nhân 1 chiều tương ứng với các toán tử lấy đạo hàm ảnh theo
hai hướng Ox và Oy, cụ thể là:

Dx   1 0 1
trong đó

T



Dy   1 0 1

T

là ký hiệu của phép chuyển vị ma trận.

Với một ảnh input I, ta sẽ có 2 ảnh đạo hàm riêng theo 2 hướng được tính bằng các công
thức:
21


Luận văn tốt nghiệp

GVHD: Hà Hoàng Kha


I x  I .Dx

I  I .D

y
và y
Thành phần cường độ (magnitude) và hướng (orientation) sẽ được tính theo các công thức:

G  I x2  I y2



  arctan( I x , I y )

Ví dụ về kết quả của phép lấy đạo hàm có thể xem ở hình 2.1:

Hình 7.1: Ảnh input và hai đạo hàm của nó
2.1.2 Gán hướng
Sau khi tính đạo hàm, ta có thành phần hướng ở các điểm ảnh trong mỗi cell của ảnh
o
input. Các giá trị hướng này được chia thành các vùng hướng đều nhau trong khoảng từ 0
o
tới 360 . Theo các tác giả của HOG, thì 9 vùng chia cho kết quả tốt nhất đối với các bài toán
o
o
nhận dạng. Có nghĩa là các giá trị hướng nằm trong khoảng (0 , 40 ) sẽ được gán bằng 1 (coi
o
o
là như nhau), các giá trị hướng trong khoảng (40 ,80 ) sẽ được gán bằng 2, tương tự cho các


phần tiếp theo. Sau đó histogram của mỗi cell sẽ được tính độc lập.
2.1.3 Tính histogram của các khối
Để đáp ứng tốt hơn với các thay đổi về điều kiện ánh sáng và độ tương phản, các giá
trị gradient cần phải được chuẩn hóa cục bộ, điều này đòi hỏi việc nhóm các cell thành các
vùng liên kết không gian với nhau gọi là các khối. Vector HOG do đó sẽ là tổng hợp các
histogram của các cell đã được chuẩn hóa từ tất cả các khối. Các khối sẽ được chia và không
22


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×