Tải bản đầy đủ (.pdf) (52 trang)

ĐẾM SỐ LƯỢNG NGƯỜI TRONG ẢNH NHỜ PHƯƠNG PHÁP PHÁT HIỆN 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 (1.9 MB, 52 trang )



TÓM TẮT

Tên đề tài: ĐẾM SỐ LƯỢNG NGƯỜI TRONG ẢNH NHỜ PHƯƠNG PHÁP PHÁT
HIỆN KHUÔN MẶT
1. Nguyễn Quốc Huy
2. Số thẻ SV: 106130165
3. Lớp: 13DT3

-

Tìm hiểu về Phát hiện khuôn mặt và tầm quan trọng của nó đối với đời sống con
người

-

Xây dựng cơ sở dữ liệu cho việc phát hiện khuôn mặt người

-

Viết chương trình máy tính cho việc phát hiện khuôn mặt

-

So sánh các phương pháp với nhau và nêu kết luận

Phát hiện khuôn mặt người trong ảnh gồm nhiều người và phông nền thay đổi, đánh
khung những khuôn mặt và số lượng khuôn mặt đã phát hiện được.
 Dựa trên những khuôn mặt đã được đánh khung đưa vào một thuật toán phân loại.
 Hiện số lượng khuôn mặt có trong bức ảnh




ĐẠI HỌC ĐÀ NẴNG

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

KHOA …………………………………………

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ tên sinh viên: Nguyễn Quốc Huy.....…….. Số thẻ sinh viên: 106130165………...
Lớp:13DT3…… Khoa: Điện Tử - Viễn Thông.... Ngành: Máy Tính……...................
1. Tên đề tài đồ án:
ĐẾM SỐ LƯỢNG NGƯỜI TRONG ẢNH NHỜ PHƯƠNG PHÁP PHÁT HIỆN
KHUÔN MẶT……………………………………………………………………………..
2. Đề tài thuộc diện: ☐ Có ký kết thỏa thuận sở hữu trí tuệ đối với kết quả thực hiện
3. Các số liệu và dữ liệu ban đầu:
……………………………………..……………………………………………..……......
……………………………………………………………………………………………..
………………………………….…..………………………..………………………
4. Nội dung các phần thuyết minh và tính toán:
…...………………………………………………………………………………………
…...………………………………………………………………………………………
…...………………………………………………………………………………………
…...………………………………………………………………………………………
…...………………………………………………………………………………………
5. Các bản vẽ, đồ thị ( ghi rõ các loại và kích thước bản vẽ ):

…...………………………………………………………………………………………
…...………………………………………………………………………………………
…...………………………………………………………………………………………
…...………………………………………………………………………………………
6. Họ tên người hướng dẫn: TS. Hồ Phước Tiến………………..……………………
7. Ngày giao nhiệm vụ đồ án:
25/9/2018
8. Ngày hoàn thành đồ án:
15/12/2018
Đà Nẵng, ngày
tháng
năm 201
Trưởng Bộ môn ……………………..

Người hướng dẫn


LỜI NÓI ĐẦU
Công nghệ thông tin ngày càng phát triển và có vai trò hết sức quan trọng
không thể thiếu trong cuộc sống hiện đại. Con người ngày càng tạo ra những cỗ máy
thông minh có khả năng tự nhận biết và xử lí được các công việc một cách tự động, phục
vụ cho lợi ích của con người. Trong những năm gần đây, một trong những bài toán nhận
được nhiều sự quan tâm và tốn nhiều công sức nhất của lĩnh vực công nghệ thông tin, đó
chính là bài toán nhận dạng. Tuy mới xuất hiện chưa lâu nhưng nó đã rất được quan tâm
vì tính ứng dụng thực tế của bài toán cũng như sự phức tạp của nó.
Đề tài phát hiện khuôn mặt là đề tài rất hay và khá phổ biến trong đời sống, lý do em
chọn đề tài này là vì phần lớn các thiết bị điện tử đều dần phát triển theo xu hướng tự
động hóa, thông minh, càng hiểu ý con người, chúng giao tiếp với con người mà không
cần một thiết bị trung gian nào, các thiết bị sử dụng thuật toán xử lý ảnh được xử dụng
ngày càng rộng rãi với nhiều mục đích khác nhau. Dùng cho các hệ thống bảo mật như

khóa vân tay, giọng nói, các thiết bị an ninh truy tìm tội phạm... Những kiến thức và kinh
nghiệm em nhận được từ quá trình thực hiện đề tài giúp em có thể tiếp cận và nghiên cứu
những công nghệ khác khi trở thành một kỹ sư. Trong quá trình thực hiện đồ án, em gặp
rất nhiều khó khăn, tuy nhiên với sự hướng dẫn tận tình của Thầy Hồ Phước Tiến đã giúp
em rất nhiều trong quá trình giải quyết các khó khăn đó.
Em xin chân thành cảm ơn Thầy Hồ Phước Tiến hướng dẫn và giúp đỡ em trong
suốt quá trình thực hiện đồ án. Trong quá trình thực hiện đồ án, dù em đã cố gắng rất
nhiều nhưng vẫn không tránh khỏi những thiếu sót. Em rất mong nhận được những lời
nhận xét, góp ý từ Thầy, Cô để đồ án được hoàn thiện hơn.


LỜI CAM ĐOAN
Em xin cam đoan nội dung của đồ án “Phát hiện khuôn mặt” không phải là bản sao
chép của bất kỳ một đồ án hoặc công trình nào có từ trước.

Đà Nẵng, ngày 30 tháng 11 năm 2018

Sinh viên thực hiện


MỤC LỤC

Trang
Tóm tắt
Nhiệm vụ đồ án
Lời nói đầu và cảm ơn

i

Lời cam đoan liêm chính học thuật


ii

Mục lục

iii

Danh sách các bảng biểu, hình vẽ và sơ đồ

v

Danh sách các cụm từ viết tắt

vi

CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ BÀI TOÁN PHÁT HIỆN KHUÔN MẶT 18
1.1 GIỚI THIỆU CHƯƠNG...................................................................................................... 18
1.2 KHÁI QUÁT VỀ XỬ LÝ ẢNH VÀ TẦM QUAN TRỌNG CỦA HỆ THỐNG PHÁT HIỆN KHUÔN
MẶT. .................................................................................................................................... 18
1.3 TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ KHÁI NIỆM VỀ PHÁT HIỆN KHUÔN MẶT ........................ 18
1.3.1 PHÁT HIỆN MẶT NGƯỜI TRONG ẢNH
18
1.4 CÁC BƯỚC XỬ LÝ CHÍNH TRONG QUÁ TRÌNH PHÁT HIỆN KHUÔN MẶT: ......................... 19
1.5 KẾT LUẬN CHƯƠNG ....................................................................................................... 20
CHƯƠNG 2: PHƯƠNG PHÁP TRÍCH XUẤT ĐẶC TRƯNG

20

2.1 GIỚI THIỆU CHƯƠNG...................................................................................................... 20
2.2 HISTOGRAM OF ORIENTED GRADIENTS (HOG) ............................................................ 21

2.2.1 GIỚI THIỆU CHUNG VỀ HOG
21
2.2.2 CÁC BƯỚC THỰC HIỆN HOG
22
2.3 PHƯƠNG PHÁP DENSE SCALE INVARIANT FEATURE TRANSFORM (DENSE SIFT) ........ 27
2.3.1 TỔNG QUAN
27
2.3.2 CÁC BƯỚC CHÍNH TRONG THUẬT TOÁN SIFT
28
2.4 KẾT LUẬN CHƯƠNG ....................................................................................................... 30


3.1 GIỚI THIỆU CHƯƠNG...................................................................................................... 31
3.2 MẠNG NƠ-RON NHÂN TẠO (ARTIFICIAL NEURAL NETWORK) [28] .............................. 31
3.2.1 GIỚI THIỆU CHUNG VỀ MẠNG NƠ-RON NHÂN TẠO:
31
3.2.2 CẤU TRÚC MẠNG NƠ-RON NHÂN TẠO
32
3.3 THUẬT TOÁN PHÂN BIỆT TUYẾN TÍNH LDA (LINEAR DISCRIMINANT ANALYSIS) [28] 33
3.4 PHƯƠNG PHÁP SUPPORT VECTOR MACHINE (SVM) .................................................... 35
3.4.1 SVM PHÂN LOẠI NHỊ PHÂN TUYẾN TÍNH
36
3.4.2 SVM PHI TUYẾN
37
3.4.3 ƯU VÀ NHƯỢC ĐIỂM CỦA PHƯƠNG PHÁP SVM:
37
ƯU ĐIỂM CỦA SVM :
37
NHƯỢC ĐIỂM CỦA SVM :
38

3.5 KẾT LUẬN CHƯƠNG ...................................................................................................... 38
CHƯƠNG 4: THỰC NGHIỆM VÀ KẾT QUẢ

39

4.1 GIỚI THIỆU CHƯƠNG...................................................................................................... 39
4.2 MỤC TIÊU VÀ QUÁ TRÌNH PHÁT HIỆN KHUÔN MẶT........................................................ 39
4.3 XÂY DỰNG THUẬT TOÁN PHÁT HIỆN KHUÔN MẶT ........................................................ 40
4.3.1 LƯU ĐỒ THUẬT TOÁN PHÁT HIỆN KHUÔN MẶT ĐƠN GIẢN
40
4.3.2 TIỀN XỬ LÝ THÔNG QUA KHAI THÁC MÀU DA VÀ BIẾN ĐỔI HÌNH THÁI HỌC:
42
4.3.3 TRÍCH XUẤT THUỘC TÍNH BẰNG HOG VÀ DENSE SIFT
45
4.4 THỰC NGHIỆM VÀ KẾT QUẢ........................................................................................... 47
4.4.1 CƠ SỞ DỮ LIỆU
47
4.4.2 THỰC NGHIỆM
47
4.4.2 CÁC CHỈ SỐ TIÊU CHÍ ĐỂ ĐÁNH GIÁ HIỆU SUẤT THUẬT TOÁN:
48
4.4.3 KẾT QUẢ
48
4.5 KẾT LUẬN CHƯƠNG ....................................................................................................... 51
TÀI LIỆU THAM KHẢO

52

PHỤ LỤC


56


CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ BÀI TOÁN PHÁT HIỆN KHUÔN
MẶT

1.1 Giới thiệu chương
Trong chương này em trình bày về tầm quan trọng của hệ thống phát hiện khuôn
mặt trong đời sống con người, những khó khăn mà hệ thống gặp phải trong thực tế và
khái quát về quy trình phát hiện khuôn mặt em đã thực hiện trong đồ án.
1.2 Khái quát về xử lý ảnh và Tầm quan trọng của hệ thống phát hiện khuôn
mặt.
Phát hiện khuôn mặt rất cần thiết trong nhiều hệ thống trong đời sống con người.
Chúng ta có thể sử dụng phát hiện khuôn mặt trong vấn đề an ninh như nhận biết tên
tuổi cũng như hành vi đã gây ra của tội phạm để đề phòng, chúng ta cũng có thể sử
dụng phát hiện khuôn mặt trong vấn đề quản lý nhân sự của các tổ chức, hay là sử
dụng phát hiện khuôn mặt để bảo mật đồ dùng cá nhân như máy tính, điện thoại, ô tô
hay văn phòng làm việc . . . Vì vậy việc phát hiện khuôn mặt có thể làm giảm thời
gian và đảm bảo được tính an ninh bảo mật tốt.
Phát hiện khuôn mặt còn được ứng dụng vào các phần mềm chụp ảnh hay quay
video trên smartphone.
Nhận dạng khuôn mặt rất cần thiết cho chúng ta ngày nay. Chúng ta có thể nhận
dạng khuôn mặt trong vấn đề an ninh , như nhận biết tên tuổi và hành vi đã gây ra của
tội phạm. Chúng ta cũng có thể sử dụng nhận dạng khuôn mặt trong vấn đề tổ chức
nhân sự nào đó. Ngoài ra chúng ta có thể sử dụng nó dùng để bảo mật diện thoại, máy
tính , thiết bị điện tử, ô tô , văn phòng làm việc... Vì vậy nhận dạng khuôn mặt có thể
giảm thời gian và đảm bảo được tính an ninh bảo mật tốt.
1.3 Tổng quan về xử lý ảnh và khái niệm về phát hiện khuôn mặt
1.3.1 Phát hiện mặt người trong ảnh
Phát hiện khuôn mặt là thuật toán tự động xác định và định vị khuôn mặt người

trong ảnh hoặc video. Một khuôn mặt được phát hiện trong ảnh được báo cáo tại một
18


vị trí có kích thước và hướng liên quan. Một khi khuôn mặt được phát hiện, nó có thể
được tìm kiếm các điểm mốc như mắt và mũi ( các điểm đặc trưng trên khuôn mặt ) .

Hình 1.1 Phát hiện và đánh khung khuôn mặt người trong ảnh.
Việc phát hiện mặt người trong ảnh gặp phải rất nhiều những khó khăn như:
- Trong bức ảnh có thể các khuôn mặt có kích thước khác nhau, hoặc hướng của
khuôn mặt đến camera của máy ảnh khác nhau như người nhìn lên, nhìn xuống,
nhìn nghiêng, nghiêng đầu, nghiêng nửa mặt…
- Có sự khác nhau giữa đặc điểm từng khuôn mặt: người mặt dài, mặt ngắn, đeo
kính, có nhiều râu…
- Các nét mặt theo cảm xúc khác nhau: vui buồn, giận hờn, ngạc nhiên …
- Mặt người bị che khuất...
- Khuôn mặt trẻ em, người trưởng thành và người già
- Người da đen và người da trắng...
1.4 Các bước xử lý chính trong quá trình phát hiện khuôn mặt:
Quá trình phát hiện khuôn mặt bao gồm hai bước chính như sau: trích thuộc
tính và nhận dạng. Hai bước này được giới thiệu một cách ngắn gọn như sau.
Thông tin từ ảnh trắng đen gồm cường độ mức xám tại từng điểm ảnh không
được đưa trực tiếp vào bộ phân loại mà đi qua một bộ trích xuất thuộc tính. Những bộ
trích xuất thuộc tính có chức năng trích xuất những thông tin quan trọng của ảnh, loại
bỏ những thông tin không hữu ích nhưng vẫn đảm bảo cho bộ phân loại có thể phân
biệt được các lớp dữ liệu. Chi tiết về những bộ trích xuất thuộc tính được em trình bày
trong chương 2: phương pháp trích xuất đặc trưng Hog và dense sift.
19



Sau khi trích thuộc tính, ta cần một bộ phân loại để có thể phân biệt đâu là khuôn mặt
và đâu không phải khuôn mặt. Có nhiều phương pháp cho bài toán phân loại như
mạng neuron, phân loại logistic. Trong đồ án của em, em đã sử dụng thuật toán Máy
hỗ trợ Vector (Support Vector Machine) để phân loại, chi tiết về bộ phân loại này
được em trình bày ở chương 3: Một số phương pháp phân loại đối tượng.
Sơ đồ tổng quát của quy trình phát hiện khuôn mặt
ẢNH
Đầu
Vào

TRÍCH XUẤT
ĐẶC TRƯNG

PHÂN
LOẠI

KẾT
QUẢ

Hình 1.2 Sơ đồ tổng quát phát hiện khuôn mặt
1.5 Kết luận chương
Trên đây em đã trình bày các khái niệm về phát hiện khuôn mặt. Về mặt
phương pháp, em đã khái quát sơ bộ và đưa ra sơ đồ tổng quát quy trình phát hiện
khuôn mặt

CHƯƠNG 2: PHƯƠNG PHÁP TRÍCH XUẤT ĐẶC TRƯNG
2.1 Giới thiệu chương
Trích xuất các đặc trưng của ảnh là một quy trình thực sự rất quan trọng trong đồ
án của em cũng như trong lĩnh vực xử lý ảnh. Tùy vào từng mục đích cụ thể mà ta sử
20



dụng phương pháp trích xuất đặc trưng một cách hợp lí. Đối với ứng dụng phát hiện
khuôn mặt thì em sử dụng các phương pháp rút trích đặc trưng HOG, Dense SIFT.
Nên trong chương này em sẽ giới thiệu về các phương pháp trích xuất đặc trưng này.
2.2 Histogram of Oriented Gradients (HOG)
2.2.1 Giới thiệu chung về HOG
HOG(histogram of oriented gradients) là một feature descriptor được sử dụng
trong computer vision và xử lý hình ảnh, dùng để detec một đối tượng. Các khái niệm
về HOG được nêu ra từ năm 1986 tuy nhiên cho đến năm 2005 HOG mới được sử
dụng rộng rãi sau khi Navneet Dalal và Bill Triggs công bố những bổ sung về HOG.
Hog tương tự như các biểu đồ edge orientation, scale-invariant feature transform
descriptors(như sift, surf,..), shape contexts nhưnghog được tính toán trên một lưới dày
đặc các cell và chuẩn hóa sự tương phản giữa các block để nâng cao độ chính xác. Hog
được sử dụng chủ yếu để mô tả hình dạng và sự xuất hiện của một object trong ảnh.
HOG là phương pháp dùng để biểu diễn ảnh bằng cách lấy các thông tin hữu ích,
cần thiết cho việc phát hiện và loại bỏ các thông tin không quan trọng trong ảnh. Sau
đó mỗi hình ảnh sẽ được biểu diễn bằng một vector đặc trưng cho hình ảnh đó. Vector
đặc trưng này được sử dụng rất hiệu quả trong việc phát hiện đối tượng cũng như
trong đồ án của em. Tùy vào từng mục đích cụ thể mà ta áp dụng phương pháp trích
xuất đặc trưng phù hợp với từng mục đích đó. Đối với phương pháp HOG sử dụng
trong đề tài này, đặc trưng được tách ra được sử dụng cho quá trình phát hiện khuôn
mặt nhưng với các mục đích khác như lưu ảnh hay trình chiếu ảnh thì không thể sử
dụng được vector này. Một vector đặc trưng hiệu quả để biểu diễn cho đối tượng phải
thể hiện được các đặc trưng khác biệt của nó so với các đối tượng khác ví dụ đối với
một khuôn mặt thì các đặc trưng cần thiết thể hiện sự khác biệt của khuôn mặt so với
các vật thể khác cơ bản là khuôn mặt có dạng oval, bên trong có mắt mũi, miệng ở các
vị trí phù hợp và bên ngoài có tóc.
Trong phương pháp biểu diễn hình ảnh bằng phương pháp HOG thì sự phân bố
(Histogram) của hướng và biên độ của ảnh gradient của từng vùng được sử dụng như

là các đặc trưng cho ảnh. Các đặc trưng này là quan trọng cho quá trình phát hiện vật
thể vì biên độ của ảnh gradient này có giá trị lớn ở các cạnh cũng như là các góc cong
21


của vật thể vì thông thường những vùng này có độ thay đổi mức xám lớn hơn những
vùng còn lại. Đồng thời, thông tin cơ bản như hình dạng của vật thể được thể hiện chủ
yếu những đường bao cũng như góc cong.
Trong báo cáo này vector đặc trưng được tính bằng cách chia ảnh ra thành các
vùng nhỏ (cell) để tiến hành tính hướng và biên độ của ảnh gradient cho từng vùng.
Sau đó biểu diễn sự phân bố các giá trị này thành một vector kết hợp cả biên độ và
góc. Cuối cùng vector đặc trưng được tạo ra bằng cách ghép giá trị phân bố của từng
vùng lại. Cụ thể hơn ảnh được sử dụng có kích thước 60x60 pixel được chia ra thành
100 vùng nhỏ, kích thước mỗi vùng nhỏ là 6x6 pixel. Sử dụng 9 bin để biểu diễn trong
histogram. Như vậy với mỗi vùng nhỏ sẽ được biểu diễn bằng 1 vector 1x9. Sau khi
ghép các vùng lại thì vector đặc trưng thu được có kích thước 1x900.

Ảnh

Tính
ảnh
gradi
ent

Chia
ảnh
thành
cell

Tính

vector
đặc
trưng

Sắp
xếp
các
cell
lại

Vector
đặc
trưng

Hình 2.1 Lưu đồ thuật toán HOG
2.2.2 Các bước thực hiện HOG
Tính ảnh gradient
Để thực hiện quá trình trích thuộc tính HOG, bước đầu tiên ta cần phải tính
gradient của ảnh theo hai chiều, phương nằm ngang và phương thẳng đứng. Cách đơn
giản nhất để thực hiện công việc này đó là lọc ảnh đưa vào bằng mặt nạ [-1,0,1 ].

Hình 2.2 Mặt nạ dùng để tạo ảnh gradient
22


Ngoài ra gradient của một điểm (x, y) còn có thể tính theo công thức:

Trong đó

Gx ( x, y)  H ( x 1, y)  H ( x 1, y)


(2.1)

Gy ( x, y)  H ( x, y  1)  H ( x, y  1)

(2.2)

G y ( x, y )

biểu diễn gradient theo phương dọc còn

gradient theo phương nằm ngang.

H( x, y )

Gx ( x, y)

biểu diễn

là giá trị mức xám của pixel.

Tiếp theo ta cần tìm biên độ và hướng của gradient theo các công thức:

G( x, y)  Gx ( x, y)2  Gy ( x, y) 2
 Gy ( x, y) 

 Gx ( x, y) 

 ( x, y)  tan 1 


(2.3)

(2.4)

Hình 2.2 Ảnh gradient của khuôn mặt. Từ trái sang, từ trên xuống.
1. Ảnh gốc; 2. Gradient theo phương x; 3. Gradient theo phương y;
4. Biên độ; 5. Hướng.
Ảnh gradient đã loại bỏ đi các thông tin không quan trọng như màu nền và giữ lại
các thông tin cần thiết. Khi nhìn vào ảnh gradient theo phương ngang, dọc hay biên độ
ta có thể dễ dàng biết đó có phải là một khuôn mặt hay không.

23


Hình 2.3 Ảnh gradient của ảnh không phải khuôn mặt. Từ trái sang, từ trên xuống.
[21]
1. Ảnh gốc; 2. Gradient theo phương x; 3. Gradient theo phương y;
4. Biên độ; 5. Hướng.

Tính vector đặc trưng biểu diễn cho từng vùng
Với mỗi ảnh huấn luyện có kích thước là 60x60 ta chia ảnh này thành 100 vùng
nhỏ (cell) mỗi vùng có kích thước là 6x6. Sau đó sẽ mô tả hướng và biên độ gradient
của mỗi cell bằng một giản đồ histogram.

Hình 2.4 Ảnh khuôn mặt và không phải khuôn mặt được chia thành các cell [21]
Với một cell có kích thước là 6x6 pixel và mỗi pixel lại chứa 1 giá trị biên độ và
hướng của gradient nên tổng số giá trị biểu diễn cho một cell sẽ là 6x6x2. Bằng cách
kết hợp các giá trị biên độ và hướng của ảnh gradient lại thành một vector bằng cách
sử dụng histogram gồm 9 bin để biểu diễn. 9 bin này sẽ thể hiện cho 9 hướng khác


24


nhau trong không gian đó là các hướng 0, 20, 40 …. 160o . Vì vậy với mỗi vùng ta sẽ
thu được 1 vector có kích thước 1x9.

Hình 2.5 Giá trị biên độ và góc của một cell. [21]
Cách kết hợp các giá trị biên độ và góc vào các bin trong giản đồ histogram được mô
tả như hình dưới.

Hình 2.6 Sự kết hợp các giá trị biên độ và góc vào các bin [21]
Với mỗi giá trị biên độ tương ứng với một pixel. Chúng ta sẽ xét xem hướng
của pixel này là bao nhiêu để quyết định phân chia giá trị của pixel này vào bin nào
cho hợp lí. Ví dụ với pixel có tọa độ (1; 2) trong mẫu này, giá trị của hướng là góc 180
độ, hướng này trùng với phương 0 độ nên toàn bộ giá trị biên độ của pixel này sẽ đặt
vào bin 0 độ. Xét pixel có tọa độ (4; 3) ta thấy góc của pixel này là 45 độ mà trong các
25


bin của ta không có giá trị này vì vậy ta xét hai bin gần nhất là bin 60 độ và bin 40 độ.
Giá trị biên độ này sẽ được chia cho hai bin này theo tỉ lệ phù hợp, các bin gần giá trị
này hơn sẽ chiếm trọng số lớn hơn trong sự phân chia giá trị mức xám của pixel.
Trong trường hợp này giá trị mà bin 40 sẽ nhận được là 200.8183*3/4 vì hướng của
pixel này gần hơn với bin 40 độ hơn bin 60 độ 3 lần. Tương tự như vậy sau khi xét hết
cho tất cả pixel thì mỗi cell sẽ được biểu diễn bằng 1 vector 1x9 với giá trị các phần tử
là độ lớn của mỗi bin.

Hình 2.7 Mô tả biểu đồ histogram cho một mẫu.
Chuẩn hóa các vector
Trong phần trước ta đã tính được vector đặc trưng cho từng vùng dựa vào

gradient của ảnh. Tuy nhiên gradient của ảnh rất nhạy cảm với cường độ chiếu sáng,
nếu ta thay đồi cường độ chiếu sáng thì giá trị biên độ của gradient cũng thay đổi làm
cho giá trị của vector đặc trưng của một khuôn mặt với các cường độ chiếu sáng khác
nhau cũng thay đổi theo. Để cho vector đặc trưng không bị ảnh hưởng bởi cường độ
chiếu sáng ta cần phải chuẩn hóa các vector này. Phương pháp chuẩn hóa đơn giản
được thực hiện như phương pháp L2 norm. Cụ thể với một vector ví dụ [128, 64, 32]
chiều dài của vector này là √1282 + 642 + 322 =146.64. Chuẩn hóa vector này theo
phương pháp L2 norm là chia các phần tử của vector này với chiều dài của nó và ta sẽ
được vector chuẩn hóa là [0.87, 0.43, 0.22]. Khi giá trị của vector này tăng gấp đôi (độ
sáng của ảnh tăng) thì giá trị vector bây giờ sẽ là 2 x [128, 64, 32] = [256, 128, 64].
Bây giờ ta thực hiện chuẩn hóa cho vector mới này thì thu được vector chuẩn hóa là
26


[0.87, 0.43, 0.22]. Vậy khi tăng giá trị của vector lên thì khi chuẩn hóa sẽ thu được
cùng một kết quả. Ta áp dụng kết quả này cho ảnh để thu được kết quả tốt hơn và
vector đặc trưng sẽ không bị phụ thuộc vào cường độ chiếu sáng.

Tính toán vector đặc trưng HOG
Sau khi có được vector đặc trưng cho các cell ta tiến hành ghép các vector đặc
trưng này lại thành một vector đặc trưng biểu diễn cho toàn bộ ảnh. Có nhiều cách
ghép các vector này lại với nhau. Trong báo cáo này chúng em sẽ ghép các vector này
lại theo thứ tự như sắp xếp của các cell. Với vector đặc trưng cho mỗi cell có kích
thước là 1x9. Mỗi ảnh training được chia ra 10x10 cell vì vậy vector đặc trưng cuối
cùng thu được sẽ có kích thước là 10x10x9 =900.
Vậy mỗi ảnh training sẽ được biểu diễn bằng một vector đặc trưng có kích thước
là 1x900.
2.3 Phương pháp Dense Scale Invariant Feature Transform (Dense SIFT)
2.3.1 Tổng quan
Scale Invariant Feature Transform là một bộ mô tả hình ảnh cho mục đích nhận

dạng và matching được phát triển bởi David Lowe [16]. Bộ mô tả SIFT bất biến về sự
biến đổi kích thước, sự xoay và sự tịnh tiến trong miền không gian đồng thời hoạt
động tốt đối với sự biến đổi phối cảnh và thay đổi độ sáng vừa phải. Thông qua thực
nghiệm, bộ mô tả SIFT đã chứng minh khả năng của mình trong image matching và
nhận dạng đối tượng trong nhiều điều kiện thực tế khác nhau.
Theo công thức gốc, bộ mô tả SIFT tìm những điểm nổi bật (interest point) dựa
trên sự ổn định của hướng các gradient địa phương, những gradient này được tính theo
cường độ ảnh (image intensities). Từ những điểm nổi bật này, những điểm lân cận của
nó sẽ được mô tả để tìm ra cấu trúc ảnh địa phương. Sau này, bộ mô tả SIFT được ứng
dụng với một lưới điểm phủ đều lên ảnh gọi là Dense SIFT, Dense SIFT không mô tả
từ những điểm nổi bật mà mô tả từ các điểm nằm trên một lưới chuẩn phân bố trên
ảnh. Dense SIFT đem lại hiệu năng tốt hơn cho phân loại đối tượng, phân loại cấu
trúc, image alignment và sinh trắc học.
27


2.3.2 Các bước chính trong thuật toán SIFT
SIFT bao gồm bốn bước chính: tìm điểm cực trị scale-space, địa phương hóa
những keypoint, sự ấn định hướng và mô tả những keypoint.
Trong tầng đầu tiên sử dụng hàm DOG (Difference of Gaussian) để nhận định
những điểm tiềm năng, những điểm mà bất biến về hướng và kích thước. DOG được
dùng để xấp xỉ Laplacian of Gaussian để tăng tốc độ tính toán.
D(x, y, )  (G(x, y, k  )  G(x, y,  ))  L(x, y, k  )  L(x, y,  )

Với k là một hằng số nhân, G(x,y,σ) thể hiện bằng hàm Gaussian nhiều

(2.6)
kích thước.

G(x, y,  )  (


1
2 2

)e

x2  y 2
2 2

(2.7)
Scale space của ảnh được định nghĩa bằng một hàm L(x,y,σ) là kết quả tích chập
của G và ảnh đầu vào I(x,y).
Trong bước địa phương hóa những keypoint, các điểm chính được chọn dựa trên
sự ổn định. Ta bỏ những điểm có độ tương phản thấp. Tuy nhiên việc loại bỏ những
điểm có độ tương phản thấp là chưa đủ vì hàm DOG phản ứng mạnh với sườn, những
vị trí này thường có tính xác định kém và không ổn định với lượng nhỏ nhiễu. Để loại
bỏ những keypoint này ta sử dụng ma trận Hessian.
Trong bước ấn định hướng, những hướng nhất quán của những đặc tính địa
phương của ảnh được ấn định vào mỗi keypoint. Việc mô tả các keypoint có liên
quan đến ấn định hướng là nhân tố quan trọng giúp đạt được sự bất biến đối với sự
xoay ảnh.
Ở mỗi kích thước riêng, biên độ m(x, y) và hướng θ(x, y) được tính theo công
thức:
m(x, y)  L2x  L2 y

(2.8)
28


 (x, y)  tan 1 (


Ly
Lx

)

(2.9)
Trong đó:
Lx  L(x 1, y)  L(x1, y)
Ly  L(x, y 1)  L(x, y 1)

Theo bài toán [16], Lowe thực nghiệm và nhận được kết quả tốt nhất khi sử dụng
mảng gồm 4x4 histogram với 8 bin cho mỗi histogram, kết quả là mỗi keypoint sẽ
được biểu diễn bằng một vector có độ dài 4x4x8= 128.

Hình 2.8 Mô tả tại một keypoint [20]
SIFT đã được ứng dụng trong phát hiện và nhận dạng vật thể. Tuy nhiên đối với
khuôn mặt được chiếu sáng hoặc thiếu kết cấu thì việc phát hiện keypoint thất bại và
chỉ tìm được một số ít keypoint. Đồng thời số lượng keypoint luôn thay đổi đối với
các khuôn mặt khác nhau dẫn đến các độ dài vector đặc trưng luôn thay đổi nên không
thể huấn luyện với SVM.
Trong đồ án này, thay vì chỉ trích xuất mô tả từ những điểm nổi bật (interest
point), những mô tả đặc trưng địa phương được trích xuất từ một lưới những điểm rải
đều lên ảnh cho một sự mô tả đặc cho ảnh khuôn mặt. Ta chọn bước nhảy là 4 pixel, ta
thu được một lưới điểm gồm 14x14= 196 điểm trên một patch kích thước 60x60 pixel.
Mỗi điểm sẽ được biểu diễn bằng một vector có độ dài 128. Vậy ta có được vector
thuộc tính biểu diễn cho một patch có độ dài 196x128= 25088.
29



Hình 2.9 Mô tả lưới điểm trích xuất Dense SIFT [27]

2.4 Kết luận chương
Qua chương này, chúng em đã giới thiệu các khái niệm cơ bản cũng như các
bước tính toán đặc trưng của các phương pháp HOG, Dense SIFT, mỗi phương pháp
rút trích đặc trưng đều có một cách mô tả ảnh khác nhau, tuy nhiên đều có điểm chung
đó là biểu diễn một ảnh đưa vào bằng một vector đặc trưng cho ảnh đó. Sự khác nhau
giữa các phương pháp đó là các vector thu được từ các phương pháp khác nhau cũng
thể hiện các thông tin khác nhau, độ dài của các vector cũng khác nhau. Các phương
pháp mô tả này đều được sử dụng trong ứng dụng phát hiện khuôn mặt để xem xét
hiệu quả của chúng.

Chương 3: PHÂN LOẠI ĐỐI TƯỢNG BẰNG PHƯƠNG PHÁP SVM
30


3.1 Giới thiệu chương
Nội dung chương này sẽ giới thiệu các phương pháp dùng để phân loại đối
tượng. Chúng em trình bày tóm lược hai phương pháp phân loại là mạng nơ-ron nhân
tạo (Artificial Neural Network) và thuật toán phân biệt tuyến tính (Linear
Discriminant Analysis) và trình bày cụ thể hơn về phương pháp được sử dụng trong
đề tài, phương pháp Máy hỗ trợ vector (Support Vector Machine).
3.2 Mạng nơ-ron nhân tạo (Artificial Neural Network) [28]
3.2.1 Giới thiệu chung về mạng nơ-ron nhân tạo:
Mạng neuron nhân tạo là một phương pháp được sử dụng phổ biến trong các
lĩnh vực như học máy, xử lý ảnh, xử lý tín hiệu; và đã thể hiện được nhiều kết quả tích
cực. Trong mục này, ta sẽ xem xét qua một số đặc điểm cơ bản của mạng neuron.
Mạng nơ-ron nhân tạo là một hệ thống tính toán được lấy cảm hứng từ cấu trúc,
phương pháp xử lý và khả năng học của một bộ não sinh học.
Mạng nơ-ron nhân tạo được giới thiệu từ năm năm 1943 bởi nhà thần kinh học

Warren McCulloch và nhà logic học Walter Pits. Nhưng tại thời điểm đó kỹ thuật này
chưa thực sự phổ biến, những năm gần đây thì kỹ thuật này được ứng dụng trong
nhiều lĩnh vực yêu cầu đến dự báo và phân loại. Ví dụ như trong lĩnh vực thị giác máy
tính, mạng nơ-ron được dùng để phát hiện và nhận dạng đối tượng.
Mạng nơ-ron nhân tạo gồm một lượng lớn các phần tử giản đơn, cùng các kết nối.
Các hiểu biết có được nhờ vào sự hình thành các kết nối, các kết nối được hình thành
thông qua một quá trình học.

31


Hình 3.1 Sơ đồ mô tả mạng nơ-ron nhân tạo [17]

3.2.2 Cấu trúc mạng nơ-ron nhân tạo
Các phần tử để cấu thành nên một mạng nơ-ron nhân tạo bao gồm đơn vị xử lý
(processing units), cấu trúc liên kết và thuật toán học. Trong phần này chúng em trình
bày về cách hoạt động tại một đơn vị xử lý.

Đơn vị xử lý (processing units)

32


Hình 3.2 Sơ đồ mô tả tại một đơn vị xử lý [18]
Input của node

netj= ∑𝑗 𝑤𝑖𝑗𝐼𝑖

(3.1)
Với mỗi đầu vào sẽ tương ứng với một trọng số w, net được tính bằng cách nhân

các trọng số với đầu vào tương ứng. Vì vậy, các đầu vào có trọng số càng lớn sẽ chi
phối càng lớn đến giá trị của net.
Output của node

Oj= f(neti)

(3.2)
Hàm f được gọi là hàm kích hoạt (activation function). Các hàm này dùng để xử
lý đầu ra trước khi chuyển đến layer tiếp theo. Ví dụ đối với hàm ngưỡng (threshold
function), nếu giá trị của net nhỏ hơn môt mức ngưỡng θ thì f(neti) sẽ cho giá trị 0,
ngược lại giá trị của f(neti) sẽ là 1.
3.3 Thuật toán phân biệt tuyến tính LDA (Linear Discriminant Analysis) [28]
LDA cũng là một phương pháp hữu hiệu có thể dùng cho bài toán phân loại. Ý
tưởng chính của LDA là ta sẽ tìm một đường thẳng để khi chiếu dữ liệu lên đường
thẳng đó thì dữ liệu sẽ dễ dàng phân thành hai lớp tách biệt. Phương pháp LDA được
mô tả ngắn gọn như sau.

33


Giả sử ta có một tập dữ liệu N chiều {x1,x2,x3,…,xN} bao gồm 2 lớp N1 và N2.
Chúng ta chiếu các giá trị x lên một trục wT, thu được y= wTx, w được chọn sao cho
kết quả của phép chiếu cho sự phân biệt giữa 2 lớp là tốt nhất.

Hình 3.3 Mô tả phép chiếu tối ưu [19]
Cách thức LDA tạo ra một trục mới
Để có được sự phân lớp tốt nhất ta cần tối thiểu hóa variance của các phần tử
trong cùng một lớp và tối đa hóa variance của các phần tử thuộc hai lớp khác nhau. Ta
tìm một trục wT sao cho khi chiếu các giá trị x lên đó thoải mãn yêu cầu trên.


Với 𝜇k là giá trị trung bình của lớp khi chiếu lên trục

34


×