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

nghiên cứu thư viện opencv ứng dụng nhận dạng khuôn mặt người

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 (3.79 MB, 67 trang )

TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CNTT & TT
BỘ MÔN TIN HỌC ỨNG DỤNG

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

NGHIÊN CỨU THƯ VIỆN OPENCV
ỨNG DỤNG NHẬN DẠNG
KHUÔN MẶT NGƯỜI

Sinh viên thực hiện

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

Nguyễn Hoàng Phúc

Ths.Nguyễn Đức Khoa

MSSV : 1111540

Cần Thơ, 2015


TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CNTT & TT
BỘ MÔN TIN HỌC ỨNG DỤNG

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

NGHIÊN CỨU THƯ VIỆN OPENCV
ỨNG DỤNG NHẬN DẠNG


KHUÔN MẶT NGƯỜI
Sinh viên thực hiện

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

Nguyễn Hoàng Phúc

Ths. Nguyễn Đức Khoa

MSSV : 1111540

Cán bộ phản biện
1.Ths.Huỳnh Phụng Toàn
2.Ks.Phạm Phương Hồng Ngân
Luận văn được bảo vệ tại: Hội đồng chấm luận văn tốt nghiệp Bộ môn Tin học Ứng
dụng Khoa CNTT & TT, Trường Đại học Cần Thơ vào ngày 14 tháng 5 năm 2015
Có thể tìm hiểu luận văn tại:
-Trung tâm Học liệu, Trường Đại học Cần Thơ
-Website: />
Cần Thơ, 2015


Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời tri ân đến quý Thầy Cô Khoa Công nghệ thông tin &
Truyền thông nói chung và Thầy Cô Bộ môn Tin học ứng dụng nói riêng, những người
đã giảng dạy, cung cấp những kiến thức và tạo điều kiện để em thực hiện đề tài.

Đặc biệt, em xin gửi lời cảm ơn sâu sắc đến Thầy Ths. Nguyễn Đức Khoa người
đã tận tình hướng dẫn, truyền đạt kinh nghiệm, kiến thức và chỉ bảo em trong suốt quá
trình thực hiện đề tài.
Con xin gửi lời biết ơn sâu sắc và kính trọng đến cha mẹ - gia đình đã giúp con
có được những thành quả ngày hôm nay.
Sau cùng, xin chân thành gửi lời cảm ơn đến các bạn bè đã đóng góp ý kiến, giúp
đỡ và động viên tôi trong những lúc khó khăn và tiếp thêm cho tôi động lực để hoàn
thành đề tài.
Cần thơ, ngày 4 tháng 5 năm 2015.
1111540 - Nguyễn Hoàng Phúc

Trang i


Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

MỤC LỤC
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI ..........................................................................1
1.1

Đặt vấn đề ..........................................................................................................1

1.2

Một số nghiên cứu trước đây .............................................................................1

1.3


Phạm vi đề tài .....................................................................................................2

1.4

Phương pháp nghiên cứu ...................................................................................3

1.5

Bố cục và nội dung ............................................................................................ 3

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT .............................................................................4
2.1

Bài toán dò tìm khuôn mặt .................................................................................4

2.1.1

Định nghĩa bài toán .....................................................................................4

2.1.2

Những yếu tố ảnh hưởng bài toán ............................................................... 4

2.1.3

Các phương pháp dò tìm khuôn mặt ........................................................... 4

2.2

Giới thiệu đặc trưng Haar-Like ..........................................................................5


2.2.1

Đặc trưng Haar-Like ...................................................................................7

2.2.2

Trích đặc trưng Harr-Like từ ảnh ................................................................ 8

2.2.3

Mô hình Cascades of Boosted Classifiers .................................................11

2.2.4

Adaboost....................................................................................................12

2.2.4.1

Tổng quan về Adaboost .....................................................................12

2.2.4.2

Sơ lược Boosting................................................................................12

2.2.4.3

Kỹ thuật Adaboost – nhận dạng đối tượng ........................................14

2.3


Định vị đối tượng ............................................................................................. 21

2.4

Tổng quan về thư viện OpenCV ......................................................................22

2.4.1

Tổng quan ..................................................................................................22

2.4.2

Cấu trúc và ứng dụng của OpenCV .......................................................... 23

2.4.3

Những đặc trưng của OpenCV ..................................................................25

2.5

Thư viện Emgu CV .......................................................................................... 26

2.6

GSMComm ......................................................................................................28

CHƯƠNG 3: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU ......................................29
Trang ii



Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

3.1

Quy trình cơ bản của hệ thống .........................................................................29

3.2

Phát hiện và nhận dạng đối tượng với đặc trưng Haar-Like ............................ 29

3.2.1

Huấn luyện dữ liệu ....................................................................................29

3.2.2

Hệ thống nhận dạng đối tượng ..................................................................35

3.3

Thực nghiệm hệ thống ..................................................................................... 36

3.3.1

Huấn luyện dữ liệu ....................................................................................36

3.3.2


Thực nghiệm nhận dạng đối tượng với Emgu CV: ...................................39

KẾT LUẬN VÀ ĐỀ NGHỊ ......................................................................................... 47
PHỤ LỤC ..................................................................................................................... 49
TÀI LIỆU THAM KHẢO........................................................................................... 58

Trang iii


Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

DANH MỤC HÌNH

Hình 2.1: Dò tìm khuôn mặt ............................................................................................ 4
Hình 2.2: Đặc trưng Haar-Like........................................................................................ 6
Hình 2.3: Tính toán vùng S dựa trên các vùng trước đó .................................................7
Hình 2.4: Các đặc trưng Haar-Like cơ bản .....................................................................7
Hình 2.5: Các đặc trưng mở rộng từ đặc trưng Haar-like cơ sở .....................................8
Hình 2.6: Cách tính Integral Image của ảnh ....................................................................9
Hình 2.7: Cách tính nhanh vùng D với tổng các điểm ảnh trên ảnh ............................... 9
Hình 2.8: Cách tính nhanh tổng điểm ảnh D trên ảnh với các đặc trưng xoay 45o .......10
Hình 2.9: Cách trích đặc trưng Haar-like ......................................................................10
Hình 2.10: Cấu trúc phân tầng với N giai đoạn ............................................................. 11
Hình 2.11: Kỹ thuật Boosting ........................................................................................ 14
Hình 2.12: Nguyên tắc Adaboost ..................................................................................15
Hình 2.13: Kỹ thuật Adaboost ....................................................................................... 16
Hình 2.14: Lược đồ huấn luyện nhận dạng đối tượng ...................................................18

Hình 2.15: Ưu tiên trọng số lớn để phân hoạch ............................................................ 19
Hình 2.16: Adaboost và Cascades of Boosted Classifier ..............................................20
Hình 2.17: Dò tìm đối tượng với Haar Like Features - Cascade of Boosted Classifiers
.......................................................................................................................................21
Hình 2.18: Thư viện OpenCV ....................................................................................... 22
Hình 2.19: Lịch sử các phiên bản OpenCV ...................................................................23
Hình 2.20: Cấu trúc cơ bản của OpenCV ......................................................................23
Hình 2.21: Các khía cạnh và ứng dụng của OpenCV ...................................................25
Hình 2.22 Thư viện Emgu CV....................................................................................... 26
Hình 2.23: Cấu trúc của Emgu CV ................................................................................27
Hình 2.24: Sơ đồ cơ bản hệ thống GSM .......................................................................28
Hình 3.1: Quy trình hệ thống ......................................................................................... 29
Hình 3.2: Thư mục chứa ảnh và các tập tin liên quan ...................................................30
Trang iv


Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

Hình 3.3: Thu ảnh thông qua Webcam ..........................................................................30
Hình 3.4: Ảnh chứa đối tượng – Positives ....................................................................31
Hình 3.5: Ảnh không có đối tượng – Negatives ............................................................ 31
Hình 3.6: Đánh dấu vị trí đối tượng và lưu vào tập tin Positive.txt .............................. 31
Hình 3.7: Ghi nhận ảnh không có đối tượng vào tập tin Negatives.txt ......................... 32
Hình 3.8: Gói thư viện tạo vectơ với Positives ............................................................. 33
Hình 3.9: Cấu trúc phân tầng tập tin Xml .....................................................................34
Hình 3.10: Đánh dấu vị trí đối tượng ............................................................................36
Hình 3.11: Lưu ảnh không đối tượng ............................................................................36
Hình 3.12: Tạo file vectơ ............................................................................................... 37

Hình 3.13: Các bước huấn luyện ...................................................................................37
Hình 3.14: Các Stage (tầng) được tạo ra .......................................................................38
Hình 3.15: File Xml sau khi ghép lại ............................................................................38
Hình 3.16: Giao diện chương trình ................................................................................43
Hình 3.17: Nhận dạng đối tượng ...................................................................................43
Hình 3.18: Chụp ảnh đối tượng ..................................................................................... 44
Hình 3.19: Thanh trackbar ............................................................................................. 45
Hình 3.20: Lưu thành công video ..................................................................................45
Hình 3.21: Kết nối và gửi tin nhắn ................................................................................46

Trang v


Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

DANH MỤC KÝ HIỆU VÀ VIẾT TẮT

Viết đầy đủ

Ký hiệu và viết tắt
AdaBoost

Adaptive Boost

API

Application Programming Interface


GUI

Graphic User Interface

GSMComm

Global System for Mobile Communications

OpenCV

Open Source Computer Vision Library

RSAT

Rotated Summed Area Table

IPP

Intergrated Performance Primitives

XML

eXtensible Markup Language

-w

Width of Image

-h


Height of Image

vec

Vector

Trang vi


Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

TÓM TẮT
Tóm Tắt: Luận văn này sẽ tìm hiểu về OpenCV - thư viện xử lý ảnh mã nguồn mở và
các giải thuật để nhận dạng, phát hiện đối tượng trên thời gian thực. Các giải thuật máy
học được áp dụng kết hợp với thư viện Emgu (nền tảng từ OpenCv được triển khai trên
ngôn ngữ C#) để xây dựng ứng dụng phát hiện đối tượng (đối tượng cụ thể là khuôn mặt
người). Haar-like Features là giải thuật máy học được áp dụng trong đề tài để trích các
đặc trưng của đối tượng cần dò tìm, kết hợp với bộ phân tầng Cascade of Boosted
Classifiers nhằm nhận dạng, phát hiện đối tượng trên mặt phẳng ảnh thông qua giải thuật
Adaboost để phân lớp. Đề tài đã thu thập 6000 ảnh (trong đó: 1500 ảnh có đối tượng,
4500 ảnh không có đối tượng). Ứng dụng sẽ thực thi phát hiện, khoanh vùng, lưu ảnh
đối tượng hoặc lưu lại đoạn phim khi đối tượng bị nhận dạng. Sử dụng hệ thống GSM
để gửi tin nhắn SMS vào điện thoại nhằm báo cáo về thời gian đối tượng bị phát hiện,
đồng thời phát ra tín hiệu báo động.
Abstract: The purpose of this research is study about OpenCV – the open source image
processing library and algorithms to identify and detect objects in real time. The
machine learning algorithms are applied in conjunction with Emgu library (which is
derived from OpenCv and deployed on the C# language) to create object-detecting

applications (the specific objects are human faces). Haar-like Features - a machine
learning algorithm is applied in the study for extracting features of the object to be
detected, combined with Boosted Cascade of Classifiers to identify, detect objects on
the image plane via algorithms AdaBoost for classification. A total of 6,000 photos
(1,500 contained object images and 4,500 did not contain object images) were collected
for study. The application will discover, zone, and save images or clips whenever the
objects are identified. The use of GSM system is to send an SMS to a cellphone to report
the time that the objects are detected, and to give an alarm.
Từ khoá (Keyword): Haar-Like feature, Adaboost, Cascade of Booted Classsifier,
nhận dạng đối tượng, Emgu, OpenCV

Trang vii


Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI
1.1 Đặt vấn đề
Trong thời kỳ phát triển mạnh mẽ của công nghệ thông tin, con người đang dần
áp dụng các ứng dụng khoa học máy tính để phục vụ các công việc hằng ngày. Trong
đó, những ứng dụng bảo mật an ninh dựa vào hệ thống thị giác máy tính để thực hiện
việc phát hiện, nhận dạng xuất hiện ngày càng nhiều với những đối tượng ngày càng
phong phú, đa dạng. Hiện nay, các ứng dụng nhận dạng khuôn mặt được xây dựng và
phát triển trên rất nhiều thiết bị cũng như hệ thống nhằm giúp con người thuận tiện hơn
trong việc quản lý, bảo mật, giám sát hoặc tìm kiếm. Các ứng dụng nhận diện khuôn
mặt, nụ cười trong máy ảnh hoặc smartphone dần trở nên quen thuộc với mọi người.
Nhận thấy sự cần thiết trong nghiên cứu nhằm giúp con người dễ dàng quản lý
và an tâm hơn trong việc bảo vệ tài sản, kèm theo đó là tiền đề cho việc phát triển và

nghiên cứu nâng cao về hệ thống thị giác máy tính, ứng dụng nhận dạng đối tượng. Đề
tài với tên gọi: “Nghiên cứu thư viện Opencv – Ứng dụng nhận dạng khuôn mặt người”
được thực hiện với mong muốn khai thác những khía cạnh về phát hiện và nhận dạng
đối tượng. Có thể nói, đây là hướng nghiên cứu nhằm phục vụ tốt nhu cầu của xã hội
hiện nay.
1.2 Một số nghiên cứu trước đây
Có rất nhiều nghiên cứu sử dụng các phương pháp khác nhau để giải quyết bài
toán nhận dạng khuôn mặt, hai cách phổ biến nhất là nhận dạng dựa trên các phần tử
của khuôn mặt (Feature based face recognition) và nhận dạng dựa trên xét tổng thể của
khuôn mặt (Appearance based face recognition). Nhìn chung, các phương pháp đều có
ưu nhược điểm nhằm giải quyết bài toán nhận dạng mặt người. [2,tr.1-2]
 Những năm 1960, Woody Bledsoe, Helen Chan Wolf, và Charles Bisson đã cho
ra đời hệ thống nhận dạng khuôn mặt bán tự động đầu tiên. Hệ thống yêu cầu
người quản trị xác định vị trí các đặc trưng như: mắt, tai, mũi và miệng trên các
tấm ảnh. Sau đó, hệ thống sẽ tính khoảng cách và tỷ lệ đến một điểm tham chiếu
chung. Cuối cùng là so sánh với kho dữ liệu lưu trữ.
 Năm 1970, Goldstein, Harmon và Lesk sử dụng 21 dấu hiệu chủ quan như: màu
tóc và độ dày môi để nhận dạng tự động. Giống như ở giải pháp trước, các phép
đo và các vị trí được tính bằng tay nên đòi hỏi nhiều thời gian.
 Năm 1988, Kirby và Sirovich áp dụng phương pháp phân tích thành phần chính
(PCA), phương pháp này sử dụng chuẩn đại số tuyến tính cho vấn đề nhận dạng

Trang 1


Nguyễn Hoàng Phúc – 1111540
















Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

khuôn mặt. Đây được coi là cột mốc quan trọng vì nó cho thấy ít hơn một trăm
giá trị cần thiết để nhận dạng một khuôn mặt được chuẩn hoá.
Năm 1991, Turk và Pentland sử dụng thuật toán eigenfaces để nhận dạng khuôn
mặt tự động trên thời gian thực. Dù phương pháp này một phần nào bi hạn chế
bởi yếu tố môi trường nhưng nó cũng góp phần đáng kể cho sự phát triển của
công nghệ nhận dạng khuôn mặt.
Năm 2001, Paul Viola và Michael J.Jones đã cho ra đời đặc trưng Haar-Like, đó
là những đặc trưng ảnh số cũng với phương pháp tích phân ảnh (integral images)
để nâng cao khả năng rút trích đặc trưng trên thời gian thực.
Tháng 7-2003, Trần Phước Long và Nguyễn Văn Lượng dùng mạng Neural để
dò tìm khuôn mặt trên ảnh, kết hợp phương pháp phân tích thành phần chính và
biến đổi Cosine rời rạc để rút ra Vector đặc trưng làm đầu vào cho hai bộ nhận
dạng SVM và HMM. Hệ thống tiếp cận từ các phương pháp học mạnh, nhưng
nhiều trường hợp tối ưu cần thử nghiệm nhiều lần với nhiều bộ tham số khác
nhau.
Năm 2005, Trần Lê Hồng Dũ sử dụng các đặc trưng lòi lõm để phát hiện khuôn
mặt trên ảnh nhưng còn hạn chế về độ sáng, quan hệ hình học và các đặc trưng

cùng mức.
Năm 2007, Lê Hồng Chuyên đã sử dụng mạng Neural để phát hiện khuôn mặt
trên ảnh. Hệ thống đã nhận dạng được những khuôn mặt ở các tư thế: thẳng đứng,
không thẳng đứng hoặc bị che mất một phần. Nhưng kết quả dò tìm không cao
trong môi trường ảnh có nhiều người.
Năm 2013, Mã Trường Thành thực hiện đề tài “Điều khiển Robot Pioneer P3DX bám sát đối tượng” đã sử dụng đặc trưng Haar-Like, bộ phân tầng Cascades
of Boosted Classifiers và thuật toán Adaboost để nhận dạng đối tượng.
Năm 2013, Châu Ngân Khánh đã sử dụng đặc trưng Haar-Like, bộ phân tầng
Cascades of Boosted Classifiers và thuật toán Adaboost để nhận dạng đối tượng
bằng cách so khớp SIFT. Nhưng cơ sở dữ liệu không bao quát được hết sự thay
đổi của khuôn mặt con người trên thời gian thực.

1.3 Phạm vi đề tài
Đề tài tập trung nghiên cứu gói thư viện mã nguồn mở OpenCV để giải quyết bài
toán quan sát, phát hiện và nhận dạng đối tượng theo thời gian thực bằng đặc trưng HaarLike Features – Cascades of Boosted Classifiers.
Triển khai nghiên cứu bằng việc thu thập ảnh, huấn luyện và giải quyết bài toán
thực tế về nhận dạng khuôn mặt người với các tác vụ cơ bản như: lưu hoạt động của đối
tượng dưới dạng ảnh và video thông qua Webcam; thực hiện tác vụ chống trộm với
nhiều hình thức khác nhau (đề xuất thông qua tin nhắn và báo động tại chỗ).
Trang 2


Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

1.4 Phương pháp nghiên cứu
 Nghiên cứu gói thư viện OpenCv – cụ thể là gói thư viện Emgu với ngôn ngữ
được sử dụng là C# (C Sharp).
 Sử dụng các hàm trong thư viện OpenCV bằng việc kết hợp đặc trưng HaarLike với thuật toán Adaboost và mô hình Cascades of Boosted Classifiers để

thực hiện dò tìm đối tượng trên mặt phẳng ảnh theo thời gian thực để triển khai
giải quyết bài toán đặt ra.
1.5 Bố cục và nội dung
Luận văn sẽ thực hiện nghiên cứu về việc phát hiện nhận dạng mặt người với
OpenCV (cụ thể là phiên bản C# – EmguCV) với những nội dung sau:
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI
Giới thiệu tổng quan về đề tài, xác định vấn đề, bối cảnh và nội dung bài toán cần
giải quyết. Trình bày về lịch sử giải quyết vấn đề, các nghiên cứu và thành quả của
những người đi trước trong cùng lĩnh vực, phạm vi và phương pháp nghiên cứu đề tài.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Giới thiệu về bài toán dò tìm khuôn mặt, đặc trưng Haar-Like Features, thuật toán
AdaBoost và bộ phân tầng Cascade of Boosted Classifier. Tổng quan về gói thư viện
OpenCV để nghiên cứu về nhận dạng mặt người, thư viện Emgu nền tảng của OpenCV
trên nền ngôn ngữ C# và hệ thống gửi tin nhắn GSMComm.
CHƯƠNG 3: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU
Thể hiện cách giải quyết bài toán thông qua hệ thống thực nghiệm. Xây dựng một
bộ huấn luyện nhằm nhận dạng khuôn mặt người trên mặt phẳng ảnh. Nêu lên các thiết
kế về chương trình và trình bày về thực nghiệm chương trình kèm theo hướng dẫn.

Trang 3


Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Bài toán dò tìm khuôn mặt
2.1.1 Định nghĩa bài toán
Dò tìm, xác định mặt người là một kỹ thuật máy tính dùng để xác định kích thước

và vị trí của các khuôn mặt trong ảnh, video hay từ camera. Kỹ thuật này nhận biết các
đặc trưng của khuôn mặt bỏ qua các yếu tố ngoại cảnh khác như cây cối, nhà cửa v.v.

Hình 2.1: Dò tìm khuôn mặt
2.1.2

Những yếu tố ảnh hưởng bài toán

Có nhiều yếu tố ảnh hưởng đến việc nhận dạng đối tượng như [1,tr.7]:
Tư thế, góc chụp: hướng của khuôn mặt trong ảnh có thể thay đổi nhiều do vị trí
của máy ảnh, camera, webcam, v.v, như nhìn thẳng, nhìn nghiêng, hay nhìn từ
trên xuống. 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.
- Sự xuất hiện hoặc thiếu một số thành phần: sự có mặt của các chi tiết không
phải là đặc trưng riêng của khuôn mặt người, như mắt kính, râu, v.v. Vấn đề này
càng làm cho bài toán trở nên khó hơn rất nhiều.
- Sự che khuất: mặt người có thể bị che khuất bởi các đối tượng khác.
- Sự biểu cảm của khuôn mặt: sự biểu cảm có thể làm thay đổi đáng kể các đặc
trưng và thông số của khuôn mặt, ví dụ như khuôn mặt của một người sẽ rất khác
khi người đó cười, tức giận hay sợ hãi, v.v.
- Sự phức tạp của hình nền: hình nền phức tạp sẽ khiến việc xác định khuôn mặt
trở nên khó khăn.
- Đ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 (máy ảnh kỹ thuật số, webcam, v.v) ảnh hưởng rất nhiều đến chất
lượng ảnh khuôn mặt.
2.1.3 Các phương pháp dò tìm khuôn mặt
-

Có bốn phương pháp xác định khuôn mặt trên ảnh, tương ứng với bốn hướng tiếp
cận khác nhau [1,tr.7-8]:

Trang 4


Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

 Hướng tiếp cận dựa trên tri thức: Dựa vào các thuật toán, mã hóa các đặc trưng và
quan hệ giữa các đặc trưng của khuôn mặt thành các luật. Những luật này thường là
các mối quan hệ giữa các thành phần trên khuôn mặt. Trong hướng tiếp cận này, các
luật sẽ phụ thuộc rất lớn vào tri thức của những tác giả nghiên cứu. Một vấn đề phức
tạp khác khi dùng hướng tiếp cận này là làm sao chuyển từ tri thức con người sang
các luật một cách hiệu quả. Nếu các luật quá chi tiết thì khi dò tìm khuôn mặt sẽ có
thể sót các đối tượng, vì những đối tượng này không thỏa tất cả các luật được đưa ra.
Nhưng các luật quá tổng quát thì có thể gây ra nhận dạng lầm một vùng nào đó không
phải khuôn mặt mà lại dò tìm là khuôn mặt;
 Hướng tiếp cận dựa trên đặc trưng bất biến: Xây dựng các thuật toán để tìm các
đặc trưng của khuôn mặt mà các đặc trưng này không phụ thuộc tư thế khuôn mặt
hay vị trí đặt máy ảnh, camera (webcam) thay đổi, điều kiện chiếu sáng, và các khó
khăn khác. Vấn đề của các thuật toán theo hướng tiếp cận này là cần phải điều chỉnh
cho phù hợp điều kiện ánh sáng, nhiễu, và bị che khuất… đôi khi bóng của đối tượng
sẽ tạo thêm cạnh mới, mà cạnh này lại rõ hơn cạnh thật sự của nó, vì thế nếu dùng
cạnh để xác định đối tượng sẽ gặp khó khăn;
 Hướng tiếp cận dựa trên so sánh khớp mẫu: Dùng các mẫu chuẩn của khuôn mặt
(các mẫu này đã được chọn và lưu trữ) để mô tả các khuôn mặt hay các đặc trưng của
khuôn mặt (các mẫu này được chọn tách biệt theo tiêu chuẩn đã được các tác giả đề
ra để so sánh). Các mẫu này được dùng để phát hiện khuôn mặt bằng cách quét nó
qua ảnh và tính toán giá trị tương đồng cho mỗi vị trí. Việc xuất hiện khuôn mặt tại
vị trí nào đó trong ảnh phụ thuộc vào giá trị tương đồng của điểm đó so với mẫu
chuẩn. Hướng tiếp cận này có lợi thế là rất dễ cài đặt, nhưng không đạt hiệu quả khi

tỷ lệ, tư thế, và hình dáng thay đổi;
 Hướng tiếp cận dựa trên diện mạo: Trái ngược với hướng tiếp cận dựa trên so sánh
khớp mẫu, các mô hình (hay các mẫu) sẽ được học từ một tập ảnh huấn luyện mà thể
hiện tính chất tiêu biểu của sự xuất hiện của mặt người trong ảnh. Nói cách khác, các
thuật toán dùng các kỹ thuật phân tích thống kê và máy học để xấp xỉ một hàm phân
lớp tuyến tính. Sau đó hệ thống (mô hình) sẽ xác định mặt người. Phương pháp này
còn được biết đến với tên gọi tiếp cận theo các phương pháp học máy.
2.2 Giới thiệu đặc trưng Haar-Like
Đặc trưng Haar-Like của Viola và Jones là những đặc trưng ảnh số được sử dụng
trong nhận dạng đối tượng. Những đặc trưng cơ bản Haar-Like thường dùng để dò tìm
khuôn mặt, do đó Haar-Like là sự lựa chọn phù hợp cho mục đích nhận dạng nhanh
chóng và chính xác trong thời gian thực. [7,tr.27-40]
Trong lịch sử, hầu như các tương tác nhận dạng đều làm việc trên cường độ sáng
tối của ảnh, cụ thể là làm việc trên từng điểm (pixel) trong ảnh, đòi hỏi người dùng phải
Trang 5


Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

làm việc trên mức độ tính toán lớn. Để giải quyết được bài toán “tính toán lớn trên từng
điểm ảnh”, Viola và Jones đã phát triển và điều chỉnh ý tưởng sử dụng những đặc trưng
cơ bản Haar-Like với việc dùng những hình chữ nhật lân cận tại một địa điểm cụ thể
trong cửa sổ dò tìm nhằm thực hiện việc phát hiện đối tượng. Song đó, tính năng phổ
biến của Haar-Like để dò tìm đối tượng là tập hợp của các hình chữ nhật liền kề và định
vị vị trí của các hình chữ nhật liên quan được xác định nhằm mục đích là bao quanh đối
tượng cần tìm trên cửa sổ phát hiện đối tượng.
Đặc trưng Haar-Like sẽ được trích bằng cách: di chuyển cửa số kích thước trên
ảnh và được tính toán cụ thể trên từng vùng ảnh nhỏ, sau đó được so sánh với một

ngưỡng học được phân biệt là không phải đối tượng từ đối tượng đó trên ảnh. Ưu điểm
chính của việc trích đặc trưng Haar-Like so với hầu hết cách trích đặc trưng khác là tốc
độ tính toán. Do sử dụng cách tính tích phân ảnh (integral images) nên đặc trưng HaarLike có thể trích bất kì kích thước nào trong thời gian liên tục.
Đặc trưng Haar-Like sẽ phản ánh sự tương phản giữa các mối liên hệ của đối
tượng mà Haar-Like trích đặc trưng. Những đối tượng cần dò và phát hiện có thể được
xác định bởi một bộ những đặc trưng này thông qua những liên hệ không gian giữa
chúng.

Hình 2.2: Đặc trưng Haar-Like
Để có thể huấn luyện bộ phân lớp (Classifier), Viola-Jones đã sử dụng việc phân
tầng với các bộ phân lớp được nâng cao dần, được huấn luyện với vài trăm các mẫu đối
tượng cần dò và phát hiện. Chúng sử dụng những mẫu có đối tượng trong ảnh (những
mẫu này có thể co giãn với kích thước 20x20) – được gọi là mẫu khẳng định (Positive)
và những mẫu không có đối tượng cần phát hiện – gọi là mẫu phủ định (Negative). Song
đó, bộ phân lớp sẽ làm nhiệm vụ là xuất ra giá trị một nếu vùng đó giống như đối tượng
mà chúng ta quan tâm và ngược với đối tượng không phải đối tượng cần tìm thì bộ phân
lớp sẽ trả về giá trị không. Chúng ta sẽ di chuyển cửa sổ tìm kiếm dọc theo ảnh nhằm
mục đích và xác định trên từng vị trí bởi việc sử dụng bộ phân lớp để tìm kiếm đối tượng
trong toàn bộ bức ảnh thu được từ Camera. Bên cạnh đó, đối với trường hợp tìm kiếm
Trang 6


Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

những đối tượng chưa biết cụ thể kích thước, chúng ta cần phải có một thuật toán quét
qua ảnh trong nhiều lần với tỷ lệ co giãn khác nhau để tìm được đối tượng mà chúng ta
quan tâm.
-


Ảnh tích phân (Integral image):

Để nâng cao khả năng rút trích đúng, chính xác và nhanh chóng những đặc trưng
Haar – Like, Viola và Jones đã sử dụng ảnh tích phân. Đây là ảnh đã được xử lý trước
nhằm tăng cường khả năng rút trích.
Tại mỗi điểm (i, j) trong ảnh gốc, chúng ta tính tổng giá trị tất cả những điểm ảnh
phía bên trái và ở trên so với điểm (i, j):

Hình 2.3: Tính toán vùng S dựa trên các vùng trước đó
/>
2.2.1 Đặc trưng Haar-Like
Viola và Jones đã đề xuất 4 đặc trưng cơ bản để xác định đối tượng và trích đặc
trưng của chúng. . Mỗi đặc trưng Haar-Like là sự kết hợp của hai hay ba hình chữ nhật
“trắng” hay “đen”.

Hình 2.4: Các đặc trưng Haar-Like cơ bản
Ngoài 4 đặc trưng cơ bản trên, để xác định các góc cạnh và cụ thể là các đường
cong thì rất khó để xác định chính xác. Do đó, với bài toán khó như nhận dạng mặt người
thì Viola và Jones đã mở rộng ra 3 tập (nhóm) đặc trưng sau :

Trang 7


Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

1. Đặc trưng cạnh (edge features):


2. Đặc trưng đường (line features):

3. Đặc trưng xung quanh tâm (center-surround features):

Hình 2.5: Các đặc trưng mở rộng từ đặc trưng Haar-like cơ sở
2.2.2 Trích đặc trưng Harr-Like từ ảnh
Đặc trưng Haar-like sẽ 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 – dựa trên việc co giãn của khung cửa sổ tìm kiếm. Để tính giá
trị các đặc trưng Haar-Like, ta tính sự chênh lệch giữa tổng của các pixel của các vùng
đen và các vùng trắng như trong công thức:

f(x) = ∑𝑣ù𝑛𝑔 đ𝑒𝑛(𝑝𝑖𝑥𝑒𝑙) − ∑𝑣ù𝑛𝑔 𝑡𝑟ắ𝑛𝑔(𝑝𝑖𝑥𝑒𝑙)

(2.1)

Vì vậy chúng ta sẽ thấy rằng, với tổng các pixel trên ảnh (pixel vùng trắng và
pixel vùng đen) sẽ cho ta các giá trị của đặc trưng Haar – Like. Nhưng để tính toán những
giá trị của các đặc trưng Haar-like cho tất cả các vị trí trên ảnh đòi hỏi chi phí tính toán
khá lớn, dẫn đến không thể đáp ứng được cho các ứng dụng đòi hỏi tính thời gian
thực(run-time) trực tiếp từ Camera (hay Webcam trên Laptop). Do đó Viola và Jones đề
xuất một khái niệm gọi là “tích phân ảnh” (Integral Image) để tính toán nhanh cho các
đặc trưng cơ bản của Haar-like.
Tuy rằng “tích phân ảnh” đã chinh phục nhiều nhà nghiên cứu trên cộng đồng
thị giác máy tính, nhưng để tính toán cho các đặc trưng có góc xoay 45o thì việc tính
toán từ các đặc trưng trên sẽ rất khó. Do vậy, Lienhart đã kế thừa Viola-Jones trong khái
niệm tích phân ảnh và phát triển nhằm đưa ra thêm khái niệm RSAT – Rotated Summed
Trang 8



Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

Area Table. Tích phân ảnh được định nghĩa bằng một mảng 2 chiều với kích thước bằng
với kích thước ảnh cần tính.
Mỗi phần tử của mảng trong đạo hàm ảnh được tính bằng cách tính tổng của điểm
ảnh phía trên (dòng-1) và bên trái (cột-1) của nó. Bắt đầu từ vị trí trên, bên trái đến vị
trí dưới, bên phải của ảnh, để thực hiện tính toán nhanh chóng – chúng đơn thuần chỉ
dựa trên phép cộng số nguyên đơn giản.

P(x,y)
𝑃(𝑥, 𝑦) =

𝑖(𝑥 ′ , 𝑦 ′ )


𝑥 ′ ≤𝑥,𝑦 ′ ≤𝑦

Hình 2.6: Cách tính Integral Image của ảnh
Sau khi đã tính được tích phân ảnh, 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:
 Tính toán với các đặc trưng căn bản:
A

P1 B

P2
(x2,y2)


D

C

P4 (x4,y4)

P3
(x3,y3)

Hình 2.7: Cách tính nhanh vùng D với tổng các điểm ảnh trên ảnh
-

Tính điểm D:
 Tổng = A + B + C + D
 D =Tổng – (A+B) – (A+C) + A

(2.2)

Với A + B + C + D chính là giá trị tại điểm P4 trên đảo hàm ảnh , 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:
𝐷 = 𝑃4 − 𝑃2 − 𝑃3 + 𝑃1
𝐷 = (𝑥4 , 𝑦4 ) − (𝑥2 , 𝑦2 ) − (𝑥3 , 𝑦3 ) + (𝑥1 , 𝑦1 )

Trang 9

(2.3)


Nguyễn Hoàng Phúc – 1111540


Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

 Sử dụng RSAT – tính toán đặc trưng xoay
B

A

P2

D

C
P1
P3

P4

RSAT(x,y)

Ảnh 2

Ảnh 1

Hình 2.8: Cách tính nhanh tổng điểm ảnh D trên ảnh với các đặc trưng xoay 45o
Với các đặc trưng Haar-like xoay 45o của tích phân ảnh tại một điểm (x, y) được
tính theo công thức (Lienhart):
𝑃(𝑥, 𝑦) =




𝐼(𝑥 ′ , 𝑦 ′ )

(2.4)

𝑥≤𝑥,𝑥≤𝑥−|𝑦−𝑦|

Tổng pixel của một vùng bất kỳ (cụ thể vùng D) trên ảnh vẫn được tính theo cách
sau:
D = A + B + C + D – (A+B) – (A+C) + A

(2.5)

Như vậy tổng các điểm ảnh trong một hình chữ nhật (kể cả trường hợp xoay 45º)
bất kì đều có thể được tính nhanh dựa trên tích phân ảnh tại 4 đỉnh của nó:
(2.6)
Sum (D ) = P4 - P2 – P3 + P1
Do cách tính là sự kết hợp giữa các phép toán cộng (+), trừ (-) nên độ phức tạp
cho mỗi phép toán là O(1)  Tốc độ tính toán với các điểm trên ảnh nhanh hơn  Áp
dụng tốt cho các bài toán tính theo thời gian thực.

Hình 2.9: Cách trích đặc trưng Haar-like

Trang 10


Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người


2.2.3 Mô hình Cascades of Boosted Classifiers
Ta thấy trong quá trình huấn luyện, bộ phân loại phải duyệt qua tất cả các đặc
trưng của các mẫu trong tập huấn luyện dẫn đến tốn rất nhiều thời gian. Tuy nhiên, trong
các mẫu đưa vào, không phải mẫu nào cũng thuộc loại khó nhận dạng, có những mẫu
nền rất dễ nhận ra (ta gọi đây là những mẫu đơn giản). Đối với những mẫu này, ta chỉ
cần xét một hay vài đặc trưng đơn giản là có thể nhận diện được chứ không cần xét tất
cả các đặc trưng. Nhưng đối với các bộ phân loại thông thường thì cho dù mẫu cần nhận
dạng là dễ hay khó thì nó vẫn sẽ xét tất cả các đặc trưng mà nó rút ra được trong quá
trình học. Do đó, chúng tốn thời gian xử lý một cách không cần thiết.
Cấu trúc phân tầng (Cascade of Classifiers) được xây dựng chính là nhằm rút
ngắn thời gian xử lý, giảm thiểu nhận dạng lầm (false alarm) cho bộ phân loại. Cascade
tree gồm nhiều stage (hay còn gọi là layer), mỗi stage của cây sẽ là một stage classifier.
Một mẫu để được phân loại là đối tượng thì nó cần phải đi qua hết tất cả các stages của
cây. Các stage classifiers ở stage sau được huấn luyện bằng những mẫu không có đối
tượng (negative) mà stage classifier trước nó nhận dạng sai, tức là nó sẽ tập trung học
từ các mẫu nền khó hơn, do đó sự kết hợp các stage classifiers này lại sẽ giúp bộ phân
loại có false alarm thấp. Với cấu trúc này, những mẫu nền dễ nhận diện sẽ bị loại ngay
từ những stages đầu tiên, giúp đáp ứng tốt nhất đối với độ phức tạp gia tăng của các mẫu
đưa vào, đồng thời giúp rút ngắn thời gian xử lý.
-

Minh họa thuật toán Cascade training:
……

2

stage 1

hitrate = hN


h
1-f

N

N-1
h

1-f

1-f

h (tỷ lệ nhận dạng
chính xác đối tượng)
N
1-f falsealarms = f

Không phải đối tượng

Hình 2.10: Cấu trúc phân tầng với N giai đoạn
Hình trên minh họa huấn luyện của một tầng (cascade) gồm N giai đoạn (stages).
Ở mỗi giai đoạn, bộ phân lớp yếu 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 (tỷ lệ nhận dạng lầm).

Trang 11


Nguyễn Hoàng Phúc – 1111540

-


Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

Thuật toán Cascade training:
1. Gọi:
F là giá trị false alarm
d là độ chính xác của weak classifier ở mỗi stage
Ftarget: Giá trị max false alarm.
P, N là số lượng mẫu positive và negative.
Pi, Ni là tập positive và negative cho bộ phân lớp ở tầng thứ i.
Fi, Di: Giá trị false alarm và độ chính xác của cascade trước khi đến tầng thứ i.
2. Khởi tạo i=0; F0=1.0; D0 = 1.0
3. Lặp: while Fi>Ftarget
 i = i+1;
 Huấn luyện bộ phân loại hi từ tập Pi và Ni với detection rate d và max
false alarm f. Thêm hi vào cây phân lớp.
 Dùng cây phân lớp hiện có để tính Fi: Duyệt qua N mẫu negative cho đến
khi nào tìm đủ n mẫu mà cây phân lớp hiện có phân loại sai.
𝑛
(𝐹𝑖 = 𝑁)
 N := ∅
 Nếu Fi >Ftarget
N = { số mẫu sai ở stage hiện tại phân loại sai }.
P = { số mẫu positive mà stage hiện tại phân loại dúng }
2.2.4 Adaboost
2.2.4.1 Tổng quan về Adaboost

Với hướng tiếp cận dựa trên diện mạo chính là cách mà chúng ta cho dữ liệu học
theo Adaboost, Viola và Jones đã dùng AdaBoost kết hợp với cascade để xác định đối
tượng, mà cụ thể là khuôn mặt người với việc sử dụng trích các đặc trưng dạng Haarlike. Có được tốc độ xử lý nhanh (như trình bày ở trên) và tỷ lệ chính xác hơn 80% trên

ảnh xám.
Adaboost, thuật toán máy học được phát triển dựa trên nền tảng thuật toán máy
học Boosting.
2.2.4.2 Sơ lược Boosting
Kearns người đã khơi nguồn cho giải thuật Boosting với câu hỏi nổi tiếng: “Liệu
có thể tạo ra một bộ phân lớp mạnh hơn từ một tập các bộ phân lớp yếu”. Năm 1990,
Robert Schapire đưa ra thuật toán boosting đầu tiên. Sau đó, được phát triển, áp dụng,
kiểm nghiệm vào những năm 1993 trong các chương trình nhận dạng do Drucker,
Schapire và Simard thực hiện. Yoav Freund đã cùng Robert Schaprire tiếp tục nghiên
Trang 12


Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

cứu và phát triển, và đến năm 1995 thì ông cùng với Schapire phát triển boosting thành
AdaBoost.
Dựa vào câu nói của Kearns đã cho ta có thể biết được nguyên lý hoạt động cơ
bản của Boosting là sự kết hợp bộ phân lớp yếu (weak classifier) thành một phân lớp
mạnh hơn (strong classifier). Với những gì mà Freund và Schaprire đã phát triển thì bộ
phân lớp yếu chỉ cần có độ chính xác trên 50% là có thể áp dụng “boost” được.
Để hiểu cách hoạt động của thuật toán boosting, ta xét một bài toán phân loại 2
lớp (mẫu cần nhận dạng chỉ thuộc một trong hai lớp) với D là tập huấn luyện gồm có n
mẫu. Trước tiên, chúng ta sẽ chọn ngẫu nhiên ra n1 mẫu từ tập D (n1Sau đó, chúng ta sẽ xây dựng weak classifier đầu tiên C1 từ tập D1. Tiếp theo, chúng ta
xây dựng tập D2 để huấn luyện bộ phân loại C2. D2 sẽ được xây dựng sao cho một nửa
số mẫu của nó được phân loại đúng bởi C1 và nửa còn lại bị phân loại sai bởi C1. Bằng
cách này, D2 chứa đựng những thông tin bổ sung cho C1. Bây giờ chúng ta sẽ xây huấn
luyện C2 từ D2.

Tiếp theo, chúng ta sẽ xây dựng tập D3 từ những mẫu không được phân loại tốt
bởi sự kết hợp giữa C1 và C2: những mẫu còn lại trong D mà C1 và C2 cho kết quả khác
nhau. Như vậy, D3 sẽ gồm những mẫu mà C1 và C2 hoạt động không hiệu quả. Sau
cùng, chúng ta sẽ huấn luyện bộ phân loại C3 từ D3.
Bây giờ chúng ta đã có một strong classifier: sự kết hợp C1, C2 và C3. Khi tiến
hành nhận dạng một mẫu X, kết quả sẽ được quyết định bởi sự thỏa thuận của 3 bộ C1,
C2 và C3: Nếu cả C1 và C2 đều phân X vào cùng một lớp thì lớp này chính là kết quả
phân loại của X; ngược lại, nếu C1 và C2 phân X vào 2 lớp khác nhau, C3 sẽ quyết định
X thuộc về lớp nào.

Trang 13


Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

Hình 2.11: Kỹ thuật Boosting
2.2.4.3 Kỹ thuật Adaboost – nhận dạng đối tượng
AdaBoost (Adaptive Boost) là một bộ phân loại mạnh phi tuyến phức dựa trên
hướng tiếp cận boosting được Freund và Schapire đưa ra vào năm 1995. Adaboost hoạt
động trên nguyên tắc kết hợp tuyến tính các phân lớp yếu (weak classifier) dựa trên dữ
liệu đầu vào là các đặc trưng Haar- Like để hình thành một phân lớp mạnh hơn (strong
classifier).
Adaboost thực hiện sử dụng một trọng số (weight) để đánh dấu các mẫu khó
nhận dạng khi kết hợp các bộ phân lớp yếu. Trong quá trình huấn luyện, cứ mỗi phân
lớp yếu (weak classifier) được xây dựng thì thuật toán sẽ tiến hành cập nhật lại trọng số
để chuẩn bị cho việc xây dựng phân lớp yếu (weak classifier) tiếp theo. Theo nguyên
tắc: “tăng trọng số của các mẫu bị nhận dạng sai và giảm trọng số của các mẫu được
nhận dạng đúng bởi phân lớp yếu (weak classifier) vừa xây dựng”. Bằng cách này,

phân lớp yếu sau có thể tập trung vào các mẫu mà các phân lớp yếu trước đó chưa thực
hiện tốt. Sau cùng, các phân lớp yếu sẽ được kết hợp tùy theo mức độ ‘tốt’ của chúng
để tạo nên một phân lớp mạnh hơn.

Trang 14


Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

Hình 2.12: Nguyên tắc Adaboost
Ý tưởng chính của Boosting là thực hiện lặp lại nhiều lần quá trình học của bộ
phân lớp yếu nghĩa là tập trung học lại các phần tử bị phân lớp sai. Tại mỗi giai đoạn
(stages) của Cascades of Boosted Classifiers được huấn luyện là một Adaboost.
Các weak classifiers hk(x) là các bộ phân loại yếu được lấy từ việc trích các đặc
trưng Haar-like, được biểu diễn như sau:
ℎ𝑘 (𝑥) = {

1 𝑛ế𝑢 𝑝𝑘 𝑓𝑘 (𝑥) < 𝑝𝑘 𝜃𝑘
0
𝑛ế𝑢 𝑛𝑔ượ𝑐 𝑙ạ𝑖

(2.7)

 Trong đó:
X : mẫu hay cửa sổ con cần xét (X = (x1,x2,…,xn) là vector đặc trưng của mẫu);
𝜃k: ngưỡng (θ = teta);
fk: giá trị của đặc trưng Haar-like; (2.1)
pk: hệ số quyết định chiều của bất phương trình (a parity indicating the

direction of the inequality sign).
Bộ phân lớp mạnh ℎ𝑚ạ𝑛ℎ (𝑥) được tạo ra bằng cách kết hợp tuyến tính N bộ phân
loại yếu (2.7). Vấn đề cốt lõi là thực hiện chọn các trọng số α1,…,αn thích hợp.
𝑁
𝑦ế𝑢
ℎ𝑚ạ𝑛ℎ (𝑥) = 𝑠𝑖𝑔𝑛 ∑ 𝛼𝑘 . ℎ𝑘 (𝑥)

(2.8)

𝑘=1

Công thức trên (2.7) có thể diễn giải như sau: Nếu giá trị đặc trưng của mẫu cho
bởi hàm đánh giá của bộ phân loại vượt qua một ngưỡng θ cho trước thì mẫu đấy là đối
tượng (gọi là object : đối tượng cần nhận dạng ), ngược lại thì mẫu là background (không
phải là đối tượng).

Trang 15


Nguyễn Hoàng Phúc – 1111540

Nghiên cứu thư viện OpenCv - Ứng dụng nhận dạng khuôn mặt người

Ví dụ sau 3 lần lặp
Các trọng số như nhau cho
tất cả các mẫu thử
Bộ phân lớp yếu
h1(x)
Các mẫu thử vừa bị phân
loại sai sẽ được tăng độ

lớn trọng số

Bộ phân lớp yếu
h3(x)

Bộ phân lớp yếu
h2(x)

Tiếp tục đánh trọng số lớn
hơn cho các mẫu thử vừa bị
phân loại sai ở bước 2

Hình 2.13: Kỹ thuật Adaboost

Trang 16


×