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

Nghiên cứu một số phương pháp nhận dạng khuôn mặt trong ảnh và ứng dụng (tt)

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 (1021.2 KB, 22 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

NGUYỄN ANH XUÂN

NGHIÊN CỨU MỘT SỐ PHƢƠNG PHÁP NHẬN DẠNG KHUÔN MẶT
TRONG ẢNH VÀ ỨNG DỤNG

CHUYÊN NGÀNH :
MÃ SỐ:

HỆ THỐNG THÔNG TIN
8480104

TÓM TẮT LUẬN VĂN THẠC SĨ

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGUYỄN ĐÌNH HÓA

HÀ NỘI - 2018


Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Người hướng dẫn khoa học: TS. NGUYỄN ĐÌNH HÓA
Phản biện 1:
……………………………………………………………………………
Phản biện 2:
…………………………………………………………………………..
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện
Công nghệ Bưu chính Viễn thông


Vào lúc: ....... giờ ....... ngày ....... tháng ....... .. năm ...............
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông


1

MỞ ĐẦU
Bài toán phát hiện mặt người được bắt đầu nghiên cứu từ những năm 1970, và
đã có rất nhiều công trình nghiên cứu về việc phát hiện mặt người trong ảnh, tuy
nhiên cho đến hôm nay do sự đa dạng và tính phức tạp của thực tế do đó giải pháp
toàn diện vẫn đang còn là một thách thức và đang trong giai đoạn nghiên cứu.
Gần đây, lĩnh vực nghiên cứu nhận dạng đang được quan tâm nhiều nhất là
nhận dạng khuôn mặt, vân tay, giọng nói …Trong đó phát hiện khuôn mặt chiếm một
vị trí đáng kể và cũng không kém quan trọng. Nó được ứng dụng trong nhiều lĩnh vực
cho các hệ thống an toàn bảo mật, hình sự…Xuất phát từ nhu cầu thực tế khoa học kỹ
thuật phát triển những ứng dụng của nó trong đời sống trở nên phổ biến và tình hình
tội phạm đang ngày càng phát triển, tinh vi hơn, ứng dụng phát hiện người trong ảnh,
camera trở nên quan trọng vì nó giúp cho cơ quan an ninh nhanh chóng xác định
được mục tiêu và hỗ trợ con người trong việc cảnh báo và bảo mật thông tin. Việc
phát hiện khuôn mặt trong ảnh còn được dùng để đếm số người trong ảnh, việc đếm
số người này có ý nghĩa thực tiễn trong cuộc sống như xác định được số lượng khách
ra vào siêu thị, mật độ lưu thông trên đường…
Như chúng ta đã biết khuôn mặt đóng vai trò quan trọng trong quá trình giao
tiếp giữa người với người, và nó cũng mang một lượng thông tin trong đó như tuổi
tác, giới tính, trạng thái cảm xúc…Nếu chúng ta để ý hơn thì khi hai người đối diện
nói chuyện với nhau mình có thể biết người đó đang muốn nói cái gì. Chính vì thế mà
phát hiện khuôn mặt là một lĩnh vực nghiên cứu hấp dẫn và được nhiều người quan
tâm. Do đó, dựa trên những kiến thức đã tìm hiểu được và mong muốn nghiên cứu
sâu hơn về một vấn đề khá thiết thực hiện nay, cùng với sự hướng dẫn của TS

Nguyễn Đình Hóa, tôi đã chọn đề tài “Nghiên cứu một số phương pháp phát hiện
khuôn mặt trong ảnh và ứng dụng” làm đề tài luận văn tốt nghiệp.
Ngoài phần mở đầu và kết luận, nội dung chính của luận văn được trình bày trong 3
chương:
Chƣơng I. Tổng quan về phát hiện khuôn mặt.


2

Trình bày các khái niệm cơ bản về xử lý ảnh, giới thiệu về bài toán phát hiện
khuôn mặt trong ảnh, các phương pháp tiêu biểu trong phát hiện khuôn mặt, những
khó khăn thách thức của bài toán phát hiện khuôn mặt và ứng dụng của nó trong thực
tế.
Chƣơng II. Phát hiện khuôn mặt sử dụng Adaboost.
Trình bày phương pháp trích chọn đặc trưng khuôn mặt Haar-like, nêu những
ưu điểm vượt trội cũng chính là lý do để lựa chọn thuật toán AdaBoost trong phát
hiện khuôn mặt. Trình bày các ý tưởng chính của thuật toán.
Chƣơng III. Thực nghiệm và đánh giá.
Giới thiệu môi trường thực nghiệm, cách thức thu thập, tổ chức và xử lý dữ
liệu, cài đặt thuật toán AdaBoost và tiến hành thực nghiệm phát hiện khuôn mặt trên
các bộ dữ liệu thu thập được và đánh giá kết quả đạt được.


3

Chương I: TỔNG QUAN VỀ PHÁT HIỆN KHUÔN MẶT
1.1. Một số kiến thức cơ bản trong xử lý ảnh
1.1.1. Xử lý ảnh là gì?
Những năm gần đây, với sự phát triển của phần cứng máy tính, xử lý ảnh và đồ
hoạ theo đó phát triển một cách mạnh mẽ và có nhiều ứng dụng trong cuộc sống. Xử

lý ảnh và đồ hoạ đóng một vai trò quan trọng trong tương tác người máy.
Quá trình xử lý ảnh được xem như quá trình thao tác ảnh đầu vào nhằm cho ra
kết quả mong muốn. Kết quả đầu ra của một quá trình xử lý ảnh có thể là một ảnh
“tốt hơn” hoặc là một kết luận.

Hình 1.1. Quá trình xử lý ảnh [1]
Hình 1.2 dưới đây mô tả các bước trong quá trình xử lý ảnh.

Hình 1.2 Các bước cơ bản trong xử lý ảnh [1]
1.2. Bài toán phát hiện khuôn mặt
Bài toán phát hiện mặt người là hệ thống nhận vào là một ảnh hoặc một đoạn
video, qua xử lý trên máy tính thuật toán xác định được tất cả vị trí, kích thước khuôn
mặt người trong ảnh đó, nhưng sẽ bỏ qua những thứ khác như ngôi nhà, mặt con vật,
cơ thể con người ,…


4

Các lĩnh vực ứng dụng bài toán phát hiện khuôn mặt
Hệ thống quan sát và theo dõi hành vi
Hệ thống tương tác giữa người và máy
Bảo mật
Một số ứng dụng khác
1.3. Các phương pháp phát hiện mặt người trong ảnh
1.3.1. Phương pháp tiếp cận dựa trên các luật tri thức
1.3.2. Phương pháp tiếp cận dựa trên các đặc trưng bất biến
1.3.3. Phương pháp tiếp cận dựa trên đối sánh mẫu
1.3.4. Phương pháp tiếp cận dựa trên kỹ thuật học máy
a. Adaboost
b. Mạng nơ ron

c. Support Vector Machine (SVM)\
d. Mạng lọc thưa (SNoW)
e. Mô hình Markov ẩn (HMM)
f. Phân loại Bayes
1.3.5. Phương pháp tiếp cận dựa vào đặc trưng 3D


5

Chương II: PHÁT HIỆN KHUÔN MẶT SỬ DỤNG ADABOOST
2.1. AdaBoost và bài toán hát hiện mặt người thời gian thực
Riêng phương pháp AdaBoost cho kết quả khả quan khi phát hiện mặt người
trong thời gian thực vì có thể xử lý đến khoảng 15-20 khung hình trong một giây.
Đây là phương pháp có tốc độ xử lý nhanh nhất trong tất cả các phương pháp học
máy. Trong luận văn, em sử dụng phương pháp này để giải quyết bài toán.
2.2. Trích chọn đặc trưng mặt người Haar-like
Trong luận văn này, em sử dụng đặc trưng đơn giản là đặc trưng Haar-like [6,
7, 8]. Đặc trưng Haar-like cũng là đặc trưng được sử dụng trong thuật toán AdaBoost
sẽ trình bày ở mục sau. Đặc trưng này được xây dựng từ các hình chữ nhật có kích
thước bằng nhau, dùng để tính độ chênh lệch giữa các giá trị điểm ảnh trong các vùng
kề nhau. Mỗi đặc trưng Haar-like là sự kết hợp gồm 2 hoặc 3 khối chữ nhật mang giá
trị “đen” hoặc “trắng”. Những khối chữ nhật này thể hiện sự liên hệ tương quan giữa
các bộ phận trong ảnh mà bản thân từng giá trị pixel không thể diễn đạt được.

Hình 2.1: Đặc trưng Haar-like cơ bản
Để áp dụng vào bài toán phát hiện mặt người, đặc trưng haar-like được mở
rộng ra và được chia thành 3 tập đặc trưng như sau:

(1). Đặc trưng theo cạnh


(2). Đặc trưng theo đường


6

(3). Đặc trưng xung quanh tâm
Hinh 2.2: Đặc trưng Haar-like mở rộng
Dựa theo các đặc trưng trên, giá trị của đặc trưng Haar-like được xây dựng bởi
độ chênh lệch giữa tổng các pixel của các vùng đen so với tổng các pixel của các
vùng trắng.
f(x) = Tổng vùng đen(các mức xám của pixel) - Tổng vùng trắng(các mức xám của pixel)
Trong quá trình huấn luyện, số lượng xử lý trên các đặc trưng Haar-like là rất
lớn, việc tính tổng các điểm ảnh cho bởi từng đặc trưng làm cho thời gian xử lý tăng
đáng kể. Do vậy Viola và Jones [6, 7, 8] đã đề xuất ra khái niệm “Integral Image”
(ảnh chia nhỏ) để tính toán cho các đặc trưng cơ bản nhằm giảm thiểu chi phí cho bài
toán để bài toán có thể xử lý với thời gian thực.

P(x,y)

Hình 2.3: Cách tính Integral Image của ảnh
Integral Image tại vị trí (x,y) bằng tổng các giá trị điểm ảnh phía trên và bên
trái của (x,y), bao gồm:

P( x, y)  x,  x, y,  y i( x , , y , )
Sau khi đã tính được Integral Image, việc tính tổng điểm ảnh của một vùng bất
kỳ nào đó trên ảnh thực hiện rất đơn giản theo cách sau: (Giả sử ta cần tính tổng điểm
ảnh của vùng D như trong hình 2.4):
D = A + B + C + D – (A+B) – (A+C) + A
Với A + B + C + D chính là giá trị tại điểm P4 trên Integral Image, tương tự
như vậy A+B là giá trị tại điểm P2, A+C là giá trị tại điểm P3, và A là giá trị tại điểm

P1. Vậy ta có thể viết lại biểu thức tính D ở trên như sau:
D = P4- P2 - P3 + P1 = (x4, y4) - (x2, y2) - (x3, y3) + (x1, y1)


7
A

P1

C

B

P2

D
P3

P4

Hình 2.4: Ví dụ cách tính nhanh tổng các điểm ảnh của vùng D trên ảnh
B A C
1
2

D

3

4


RSAT(x,y)

(b)

(a)

Hình 2.5: 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
2.3. Phát hiện mặt người với thuật toán AdaBoost
2.3.1. Giới thiệu
Học theo Adaboost là một cách trong hướng tiếp cận dựa trên diện mạo, Viola
và Jones dùng AdaBoost kết hợp cascade để xác định khuôn mặt người [7] với các
đặc trưng dạng Haar wavelet-like. Tốc độ xử lý khá nhanh và tỷ lệ chính xác hơn
80% trên ảnh xám.
2.3.2. Tiếp cận Boosting
Nguyên lý cơ bản của boosting là sự kết hợp các phân lớp yếu (weak
classification) thành một phân lớp mạnh (strong classification) . Trong đó, phân lớp
yếu là các bộ phân loại đơn giản chỉ cần có độ chính xác trên 50%. Bằng cách này,
chúng ta nói bộ phân loại đã được “boost”.
2.3.3. Thuật toán AdaBoost
Thuật toán AdaBoost tuân theo các bước sau: [7]
1. Cho một tập gồm n mẫu có đánh dấu (x1, y1), (x2, y2),… (xn, yn) với xk =
(xk1, xk2, … , xkm) là vector đặc trưng Haar và yk = (-1, 1) là nhãn của mẫu
(1 ứng với đối tượng, -1 ứng với không phải đối tượng - background).
2. Khởi tạo trọng số ban đầu cho tất cả các mẫu: với m là số mẫu đúng (ứng
với object và y = 1) và l là số mẫu sai (ứng với background và y = -1).


8


3. Xây dựng T phân loại yếu
Lặp t = 1, …, T
 Với mỗi đặc trưng trong vector đặc trưng, xây dựng một phân loại yếu hj
với ngưỡng θj và lỗi εj.
n

 j   wt ,k | h j ( xk )  y k |
k

 Chọn ra hj với εj nhỏ nhất, ta được ht:
ht : X  {1,  1}

 Cập nhật lại trọng số:

wt 1,k



e t , ht ( xk )  y k

 
t
Zt 
e , ht ( xk )  y k

wt ,k

 Trong đó:


1
2

 t  ln(

1  j

j

)

Zt: Hệ số dùng để đưa Wt+1 về đoạn [0,1] (normalization factor)
4. Phân loại mạnh được xây dựng :
T

H ( x)  sign( t ht ( x))
t 1

Sơ đồ khối :


9

Hình 2.8: Lưu đồ thuật toán
2.4. Chuỗi các bộ phân lớp Cascade of Classifiers
Thuật toán Cascade training:
Bước 1: Người dùng chọn các giá trị.
- f: false positive rate lớn nhất chấp nhận được của mỗi bộ phân lớp trong
cascade.
- d: detection rate nhỏ nhất chấp nhận được của mỗi bộ phân lớp trong cascade.

- Ftarget: false positive rate lớn nhất chấp nhận được của cascade.
Bước 2: Khởi gán
- P = tập các mẫu là khuôn mặt (positive)
- N = tập các mẫu không phải là khuôn mặt (negative)
- F0 = 1.0; D0 = 1.0
- i = 0. //Chỉ số của bộ phân lớp trong cascade.
Bước 3:Trong khi mà Fi> Ftarget:
- i = i +1.
//Xây dưng bộ phân lớp thứ i trong cascade.
- ni = 0. //Số bộ phân lớp yếu của bộ phân lớp thứ i


10

- Fi = Fi-1.
Trong khi mà Fi> f * Fi-1


ni = ni + 1.



Thuật toán Adaboost: Dùng bộ P và N để huấn luyện 1 bộ phân lớp
với ni đặc trưng (ni bộ phân lớp yếu.)



Tính Fi và Di của cascade hiện tại thông qua validation set.




Giảm ngưỡng của bộ phân lớp thứ i cho tới khi cascade hiện tại đạt
detection rate ít nhất là d*Di-1 (để ý là Fi cũng sẽ thay đổi theo.)

- N = 0.
- Nếu Fi> Ftarget: Đưa những mẫu không phải là khuôn mặt vào cascade hiện tại
và tiến hành detect. Những mẫu mà bị nhận dạng là khuôn mặt sẽ được đưa vào N.
Minh họa thuật toán Cascade Tranning :

Hình 2.9: Minh họa sự huấn luyện của một cascade gồm N stages. Ở mỗi stage, weak
classifier tương ứng sẽ được huấn luyện sao cho độ chính xác của nó là h và false
alarm bằng f.
Chương III: THỰC NGHIỆM VÀ ĐÁNH GIÁ
3.1. Môi trường thực nghiệm
Chương trình được xây dựng trên nền tảng Windows Platform, sử dụng ngôn
ngữ lập trình Visual C++ MFC của bộ Visual Studio 2012, và bộ thư viện xử lý ảnh
mã nguồn mở OpenCV version 2.4.6 của Intel . Cấu hình máy tính sử dụng để tiến
hành thực nghiệm:
- Hệ điều hành: Windows 8.1 64bit
- Processor: Intel(R) Core(TM) i7-4720HQ CPU @2.60GHz
- RAM: 8GB.


11

3.2. Xử lý dữ liệu
3.2.1. Sơ đồ thiết kế hệ thống phát hiện khuôn mặt

Hình 3.1: Tổng quan về hệ thống phát hiện mặt người trong ảnh
3.2.2. Bộ dữ liệu đầu vào

Trong luận văn, em sưu tập các dữ liệu ảnh tĩnh chứa khuôn mặt với các bộ dữ
liệu sau:
Bao Face Database (gồm 400 ảnh chứa một và nhiều khuôn mặt)
Caltech Faces 1999 Database (gồm 7092 ảnh chứa một hoặc nhiều khuôn mặt)
Face Detection DataSet and Benchmark, University of Massachusetts Amherst (gồm trên 10.000 ảnh chứa khuôn mặt các loại)
BioID-FaceDatabase-V1 (chứa 452 ảnh chứa một khuôn mặt) [9].
Tổng cộng có khoảng gần 20.000 ảnh khuôn mặt (cá nhân và tập thể) được sưu tập
trong luận văn.
Đối với dữ liệu khuôn mặt trong file video, em thu thập dữ liệu bao gồm NRCIIT Facial Video Database từ [8] với 24 video có độ phân giải thấp (160x120,
320x240) , thời lượng trung bình từ 10-20 giây (tổng số frame khoảng 300), file dạng
đuôi .AVI với tốc độ 20fps, 06 video tự quay trong thực tế với độ phân giải cao, định
dạng MP4, 02 video thu thập từ internet khác, định dạng .MPG
Thuật toán học với AdaBoost đòi hỏi ngoài tập ảnh chứa khuôn mặt (Positive)
còn cần các tập ảnh không chứa khuôn mặt hay còn gọi là ảnh nền (Negative). Tập


12

ảnh negative được sưu tầm trên Internet với 3364 ảnh, gồm các nền ảnh từ đơn giản
tới phức tạp.
Tất cả các ảnh thu thập được đều được xử lý chuyển về định dạng .bmp và
đánh tên theo tứ tự tăng dần, gợi nhớ để tiện trong việc quản lý dữ liệu và tiến hành
thực nghiệm, đánh giá.
3.2.3. Huấn luyện phát hiện khuôn mặt trong ảnh
Để hỗ trợ người dùng dễ dàng tiếp cận hơn với các kỹ thuật phát hiện đối
tượng, OpenCV đã cung cấp một bộ công cụ rất mạnh mẽ hỗ trợ quá trình huấn luyện
để phát hiện đối tượng trong ảnh với tên gọi HaarKit. HaarKit bao gồm các công cụ
sau:
create_list.bat; ObjectMarker.exe;


samples_creation.bat; haarTraining.bat.

Quá trình huấn luyện trải qua 3 bước:
a. Chuẩn bị dữ liệu ảnh huấn luyện.
b. Lấy mẫu đối tượng từ bộ dữ liệu
c. Huấn luyện máy học.
a) Chuẩn bị dữ liệu ảnh huấn luyện
b) Lấy mẫu đối tượng từ bộ dữ liệu
c) Huấn luyện máy học
Quá trình này gồm 2 bước :
Bước 1 : Tạo ra file vector đưa vào huấn luyện ở bước 2 .
Bước 2: Học huấn luyện với HaarTraining
Trong quá trình huấn luyện này, em sử dụng máy tính có cấu hình:
- Processor: Intel(R) Core(TM) i7-4720HQ CPU @2.60GHz
- RAM: 8GB.
- Hệ điều hành: Windows 8.1 Pro.
Thời gian huấn luyện phân tầng cỡ khoảng 10 ngày. Việc phân tầng ở những
tầng đầu mất vài phút, trong khi từ khoảng tầng 15 trở đi mỗi tầng lên tới hàng chục
giờ. Thời gian phân tầng lâu do tập ảnh đầu vào lớn, trong đó nhiều ảnh chứa trên 10


13

khuôn mặt, có những ảnh lên tới trên 30 khuôn mặt.bSau khi giai đoạn này hoàn tất ta
có được các phân tầng đặc trưng của khuôn mặt theo thuật toán AdaBoost
Việc sử dụng bao nhiêu tầng để phát hiện khuôn mặt một cách hiệu quả và
chính xác nhất là một câu hỏi vô cùng khó trả lời. Hiện không có một nghiên cứu nào
đưa ra một con số chính xác cho số tầng này, do đó em đã thử nghiệm chương trình
với số phân tầng từ 15 đến 30 tầng thì nhận thấy với số tầng nhỏ hơn 20, việc chương
trình phát hiện nhầm các nhiễu là khá nhiều (đặc biệt với số tầng nhỏ), ngược lại với

số tầng >22 thì số khuôn mặt bị loại bỏ là tương đối nhiều (chương trình lọc cả các
khuôn mặt vì tưởng nhầm là background). Với số tầng là 20 em nhận thấy chương
trình cho kết quả với độ chính xác cao nhất.

3.2.4. Phát hiện khuôn mặt với OpenCV
Để sử dụng file “output.xml” cho việc phát hiện khuôn mặt, trong ứng
dụng em sử dụng các hàm (cv::CascadeClassifier*) load("output.xml") để load dữ
liệu đã được huấn luyện ở phần trước.
Một số kết quả của chương trình:

Hình 3.20: Giao diện chính của ứng dụng.


14

Hình 3.21: Ví dụ về phát hiện một khuôn mặt trong ảnh.

Hình 3.22: Ví dụ về phát hiện nhiều khuôn mặt trong ảnh (4 khuôn mặt).


15

Hình 3.23: Ví dụ về phát hiện thiếu khuôn mặt trong ảnh (thiếu 3/17 khuôn mặt).

Hình 3.24: Ví dụ về phát hiện thừa khuôn mặt trong ảnh (thừa 1 khuôn mặt).


16

3.3. Các kết quả đạt được và đánh giá

3.3.1. Phát hiện khuôn mặt trên ảnh tĩnh
Để kiểm nghiệm chương trình trên ảnh tĩnh, em tiến hành trích rút một số
lượng ảnh nhất định (1150 ảnh) từ các bộ dữ liệu đã thu thập được (trong đó gồm 900
ảnh chứa 2197 khuôn mặt và 250 ảnh không chứa khuôn mặt nào), các ảnh này cũng
chưa từng sử dụng trong quá trình huấn luyện phát hiện khuôn mặt ở bước trước.
Dưới đây là bảng kết quả khi chạy thực nghiệm trên 04 bộ ảnh tĩnh được trích
rút từ CSDL:
Bảng 3.1: Kết quả thực nghiệm phát hiện khuôn mặt trên ảnh tĩnh
Số
Số ảnh
TT

Tên bộ dữ liệu

sử
dụng

khuôn

Số khuôn

mặt

mặt phát

xuất

hiện đúng

hiện


(%)

thực tế
1

2

Bao

Face

Database
Caltech_WebFa
ces Database

200

1215

250

356

300

476

150


150

250

0

Số khuôn
mặt bị
phát hiện
thiếu
(%)

Số khuôn
mặt bị
phát hiện
thừa
(%)

1152

63

25

(94,81%)

(5.19%)

(2,05%)


315

41

12

(88,48%)

(11,52%)

(3.37%)

450

26

18

(94,53%)

(5,47%)

(3.78%)

142

8

3


(94,66%)

(5,34%)

(2%)

-

-

Face Detection
DataSet
3

and

Benchmark,
University

of

Massachusetts Amherst
4

5

Faces.tar
Tập
Negative


ảnh

3
(1.2%)


17

(không

chứa

khuôn mặt)
Tổng số

1150

2197

2059

138

61

(93,7%)

(6,3%)

(2.7%)


Nhận xét kết quả:
Qua bảng kết quả thực nghiệm với ảnh tĩnh ta nhận thấy:
- Chương trình cho tỷ lệ phát hiện đúng khuôn mặt rất cao (93,7%).
- Số lượng khuôn mặt bị phát hiện thiếu khá thấp (6,3%), chủ yếu là các trường
hợp ảnh phức tạp (góc nghiêng lớn, bị che khuất, điều kiện ánh sáng quá kém).
- Số lượng khuôn mặt bị phát hiện sai (thừa - cho rằng background là khuôn
mặt) rất thấp (2,7%
- Chương trình phát hiện chính xác nhiều ảnh khuôn mặt phức tạp như: bị
nghiêng lớn, điều kiện ánh sáng kém, bị che khuất một phần, đeo kính, khuôn mặt
trong các hình vẽ có hình dáng khá kỳ dị, phức tạp...


18

KẾT LUẬN
Kết luận
Qua một thời gian nghiên cứu nghiêm túc, luận văn đã thực hiện được một số
công việc như sau:
Tìm hiểu các khái niệm cơ bản về xử lý ảnh và các kiến thức tổng quan về các
phương pháp phát hiện khuôn mặt trong ảnh.Trên cơ sở các phương pháp đã nghiên
cứu, luận văn đã đánh giá ưu nhược điểm của các phương pháp, từ đó lựa chọn thuật
toán AdaBoost và đặc trưng Haar-like làm nền tảng để nghiên cứu chuyên sâu và xây
dựng ứng dụng phát hiện khuôn mặt.
Tiến hành cài đặt và thực nghiệm phương pháp đã nghiên cứu trên các bộ dữ
liệu ảnh tĩnh và dữ liệu video thu thập được từ trên mạng internet và tự quay với bộ
thư viện xử lý ảnh mã nguồn mở OpenCV. Kết quả thực nghiệm cho thấy chương
trình có khả năng phát hiện khuôn mặt với tỷ lệ cao (trên 94% với các ảnh tĩnh và
khoảng 80% với các video). Riêng đối với các ảnh chụp và video tự quay trực diện
khuôn mặt thì tỷ lệ phát hiện khuôn mặt chính xác gần như tuyệt đối (100%).Khi

giảm chất lượng video xuống (kích thước nhỏ) thì chương trình có thể đáp ứng phát
hiện khuôn mặt trong thời gian thực.
Hướng phát triển
Tuy vậy, luận văn vẫn còn một số hạn chế như chương trình cho kết quả chưa
cao đối với các khuôn mặt chụp nghiêng một góc quá lớn và chị che khuất nhiều. Tốc
độ phát hiện khuôn mặt chậm đối với các video có độ phân giải cao (kích thước
khung hình lớn), chưa đáp ứng được trong thời gian thực. Luận văn mới chỉ dừng lại
ở mức phát hiện khuôn mặt chứ chưa đề cập đến vấn đề nhận dạng khuôn mặt. Trong
thời gian tới, em sẽ nghiên cứu thêm để khắc phục các hạn chế trên. Ngoài ra, em
cũng sẽ tìm hiểu để tích hợp các nội dung đã nghiên cứu được vào hệ thống nhận
dạng khuôn mặt.
Do thời gian thực hiện không nhiều nên chắc chắn luận văn không thể tránh
khỏi những hạn chế và thiếu sót. Em rất mong nhận được các ý kiến đóng góp của
các thầy cô và các bạn đọc để luận văn ngày một hoàn thiện hơn.


19

Xin chân thành cảm ơn!


20

TÀI LIỆU THAM KHẢO
Tiếng Việt
[1]. PGS.TS Nguyễn Quang Hoan (2006). Xử lý ảnh. Học viện Công nghệ Bưu chính
Viễn Thông.
[2]. Trần Văn Minh (2013). Phát hiện mặt người trong ảnh dựa vào đặc trưng 3D.
Khoa Công nghệ Thông tin – Đại học Lạc Hồng.
Tiếng Anh

[3] E. Osuna, R. Freund, and F. Girosi (1997), “Training Support Vector Machines:
An Application to Face Detection” Proc. IEEE Conf. Computer Vision and Pattern
Recognition, pp. 130-136, 1997.
[4]. G.Yang, T. S. Huang (1994), "Human Face Detection in Complex Background",
Pattern Recognition, Vol .27, No. 1, pp. 50-65, 1994.
[5]. H. Rowley, S. Baluja, T. Kanade (1998),"Neural network-based face detection",
IEEE Transaction on Pattern Analysis and Machine Intelligence, Vol. 20, No. 1, pp.
40-55, Jan 1998.
[6]. Ming-Hsuan Yang, David J.Kriegman, Narendra Ahuja,"Detecting Faces in
Image: A Survey", IEEE Transaction on Pattern Analysis and Machine Intelligence
(PAMI), Vol.24, No 1, pp. 30-49 , Jan 2012.
[7]. Paul Viola and Michael J. Jones (2001). Rapid object detection using a boosted
cascade of simple Feature. Computer Vision and Pattern Recognition.
[8]. NRC-IIT Facial Video Database
/>[9]. />


×