ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

ĐINH QUANG HUY PHƯƠNG PHÁP PHÁT HIỆN MẶT NGƯỜI SỬ DỤNG ĐẶC TRƯNG HOG LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Thái Nguyên, 2018

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

ĐINH QUANG HUY PHƯƠNG PHÁP PHÁT HIỆN MẶT NGƯỜI SỬ DỤNG ĐẶC TRƯNG HOG Chuyên ngành: Khoa học máy tính

Mã số: 8480101

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Người hướng dẫn khoa học: TS. NGUYỄN TOÀN THẮNG

Thái Nguyên, 2018

1

LỜI CAM ĐOAN

Tên tôi là: Đinh Quang Huy

Sinh ngày: 06/08/1981

Học viên lớp cao học CHK15A - Trường Đại học Công nghệ Thông tin và

Truyền thông - Đại học Thái Nguyên.

Hiện đang công tác tại: Sở Giáo dục và Đào tạo tỉnh Thái Nguyên.

Xin cam đoan: Đề tài “Phương pháp phát hiện mặt người sử dụng đặc trưng

HOG” do TS. Nguyễn Toàn Thắng hướng dẫn là công trình nghiên cứu của riêng

tôi. Tất cả tài liệu tham khảo đều có nguồn gốc, xuất xứ rõ ràng.

Tác giả xin cam đoan tất cả những nội dung trong luận văn đúng như nội

dung trong đề cương và yêu cầu của thầy giáo hướng dẫn. Nếu sai tôi hoàn toàn

chịu trách nhiệm trước hội đồng khoa học và trước pháp luật.

Thái Nguyên, ngày tháng năm 2018

Tác giả luận văn

Đinh Quang Huy

2

Sau một thời gian nghiên cứu và làm việc nghiêm túc, được sự động viên,

LỜI CẢM ƠN

giúp đỡ và hướng dẫn tận tình của Thầy giáo hướng dẫn TS. Nguyễn Toàn Thắng,

luận văn với Đề tài “Phương pháp phát hiện mặt người sử dụng đặc trưng

HOG”.

Tôi xin bày tỏ lòng biết ơn sâu sắc đến:

Thầy giáo hướng dẫn TS. Nguyễn Toàn Thắng đã tận tình chỉ dẫn, giúp đỡ

tôi hoàn thành luận văn này.

Phòng đào tạo Sau đại học Trường Đại học Công nghệ Thông tin và Truyền

thông đã giúp đỡ tôi trong quá trình học tập cũng như thực hiện luận văn.

Sở Giáo dục và Đào tạo tỉnh Thái nguyên nơi tôi công tác đã tạo điều kiện tối

đa cho tôi thực hiện khóa học này.

Tôi xin chân thành cảm ơn bạn bè, đồng nghiệp và gia đình đã động viên,

khích lệ, tạo điều kiện giúp đỡ tôi trong suốt quá trình học tập, thực hiện và hoàn

thành luận văn này.

Thái Nguyên, ngày 17 tháng 6 năm 2018

Tác giả luận văn

Đinh Quang Huy

3

MỤC LỤC

Trang

LỜI CAM ĐOAN ...................................................................................................... 1

LỜI CẢM ƠN ............................................................................................................ 2

MỤC LỤC .................................................................................................................. 3

DANH MỤC CÁC TỪ VIẾT TẮT .......................................................................... 5

DANH MỤC HÌNH ẢNH ......................................................................................... 6

DANH MỤC BẢNG BIỂU ....................................................................................... 8

MỞ ĐẦU .................................................................................................................... 9

1. Mục tiêu của đề tài ..................................................................................... 10

2. Hướng nghiên cứu của đề tài ..................................................................... 11

3. Ý nghĩa khoa học và thực tiễn của đề tài ................................................. 11

CHƯƠNG I. TỔNG QUAN VỀ PHÁT HIỆN MẶT NGƯỜI TRONG ẢNH VÀ

VIDEO .............................................................................................. 12

1.1. Phát hiện điểm ......................................................................................... 12

1.2. Phép trừ nền ............................................................................................. 14

1.3. Phân vùng ................................................................................................. 18

1.3.1. Mean-Shift Clustering .................................................................... 18

1.3.2. Phân đoạn Hình ảnh Sử dụng Đồ thị-Cuts. ................................... 19

1.3.3. Đường nét hoạt động ..................................................................... 20

1.4. Học có giám sát ........................................................................................ 21

1.5. Thuật toán Viola–Johns và các vấn đề liên quan. ................................ 23

1.5.1. Thuật toán Viola–Johns ................................................................. 23

1.5.2. Đánh Giá Thuật Toán Viola-Jones ................................................ 24

4

1.6. Adaboost ................................................................................................... 26

1.7. Đặc trưng Haar wavelet .......................................................................... 30

CHƯƠNG 2. ĐẶC TRƯNG HOG VÀ CÁCH SỬ DỤNG HOG KẾT HỢP VỚI

SVM TRONG PHÁT HIỆN MẶT NGƯỜI.................................. 33

2.1. Phương pháp phát hiện mặt người sử dụng HOG. .............................. 33

2.2. Rút trích đặc trưng HOG trong ảnh ..................................................... 38

2.3. Chuẩn hóa vector đặc trưng cho từng block ........................................ 42

2.4. Integral Image, công thức đệ quy tính Integral Image ........................ 43

2.5. Chuẩn hóa ánh sáng với bộ lọc Retinal filter ........................................ 44

2.6. Phương pháp phân lớp SVM .................................................................. 47

CHƯƠNG 3. XÂY DỰNG CHƯƠNG TRÌNH, THỬ NGHIỆM VÀ ĐÁNH

GIÁ KẾT QUẢ ................................................................................ 50

3.1. Môi trường thử nghiệm........................................................................... 50

3.2. Dữ liệu thử nghiệm .................................................................................. 50

3.2.1. Cơ sở dữ liệu UOF ........................................................................... 50

3.2.2. Cơ sở dữ liệu FEI ............................................................................. 51

3.2.3. Cơ sở dữ liệu JAFFE ....................................................................... 51

3.2.4. Cơ sở dữ liệu LFW ........................................................................... 52

3.3. Kết quả thử nghiệm ................................................................................. 52

KẾT LUẬN .............................................................................................................. 56

DANH MỤC TÀI LIỆU THAM KHẢO ............................................................... 58

5

DANH MỤC CÁC TỪ VIẾT TẮT

Từ hoặc cụm từ Từ Tiếng Anh Từ tiếng Việt

HOG Lược đồ gradient định hướng Histogram of Oriented Gradient

HMM Hidden Markov Model Mô hình Markov ẩn

SVM Support Vector Machines

6

DANH MỤC HÌNH ẢNH

Hình 1.1: Các điểm quan tâm được phát hiện bằng cách áp dụng (a) Harris, (b) các

toán tử KLT, và (c) SIFT. ......................................................................................... 12

Hình 1.2: Hỗn hợp mô hình Gaussian cho phép trừ nền. .......................................... 15

Hình 1.3: Tách hình nền dựa trên phân hủy Eigenspace (không gian được xây dựng

với các vật thể trong FOV của máy ảnh .................................................................... 17

Hình 1.4: Phân chia hình ảnh trong (a), sử dụng phân đoạn dịch chuyển trung bình

(b) và vết cắt bình thường (c). ................................................................................... 17

Hình 1.5: Đặc trưng Haar - Like ............................................................................... 23

Hình 1.6: Tính tích phân ảnh..................................................................................... 23

Hình 1.7: Cách tính P(x, y) ....................................................................................... 24

Hình 1.8: Kiểm tra kết quả chương trình so với bộ dữ liệu test ................................ 25

Hình 1.9: Kết quả phát hiện khuôn mặt bị sai lệch với khuôn mặt đeo kính ............ 26

Hình 1.10: Mô hình phân tầng kết hợp các bộ phân loại yếu để xác định khuôn mặt

................................................................................................................................... 27

Hình 1.11: Kết hợp các bộ phận loại yếu thành bộ phận loại mạnh ......................... 28

Hình 1.12: Sơ đồ khối thuật toán Adaboost .............................................................. 28

Hình 1.13. Minh họa tầng phân loại .......................................................................... 31

Hình 2.1. Mô hình phương pháp phát hiện khuôn mặt sử dụng đặc trưng HOG ..... 33

Hình 2.2: Minh họa các mẫu cửa sổ tìm kiếm kích thước 64x128 ........................... 34

Hình 2.3: Minh họa ô kích thước 8x8 trong cửa sổ tìm kiếm ................................... 35

Hình 2.4: Minh họa cho HOG ................................................................................... 35

Hình 2.5: Minh họa cho việc cộng thêm và nhân thêm vào giá trị của từng điểm ảnh

................................................................................................................................... 36

Hình 2.6: Minh họa cho sự thay đổi giá trị các vector gradient khi có sự thay đổi về

ánh sáng ..................................................................................................................... 36

7

Hình 2.7: Hình ảnh minh họa cho sự gộp các ô để tạo nên các khối có sự chồng lấp.

................................................................................................................................... 37

Hình 2.8: R-HOG và C-HOG [7] .............................................................................. 38

Hình 2.9: Mỗi khối (block) gồm nhiều ô (cell). Trong hình trên ta thấy một khối

gồm 9 ô ...................................................................................................................... 39

Hình 2.10: Các khối được xếp chồng lên nhau ......................................................... 39

Hình 2.11: Tính góc và biên độ theo X-gradient và Y-gradient ............................... 40

Hình 2.12: Các bước rút trích đặc trưng HOG [10] .................................................. 42

Hình 2.13: Integral Image [11].................................................................................. 43

Hình 2.14 Các bước trong bộ lọc Retinal filter ......................................................... 45

Hình 2.15: Kết quả của việc tiền xử lý với bộ lọc Retina filter ................................ 46

Hình 2.16. Siêu phẳng tách với khoảng cách lề cực đại ........................................... 47

Hình 3.1: Cơ sở dữ liệu mẫu UOF ............................................................................ 51

Hình 3.2: Cơ sở dữ liệu mẫu FEI .............................................................................. 51

Hình 3.3: Cơ sở dữ liệu mẫu JAFFE ......................................................................... 52

Hình 3.4: Cơ sở dữ liệu mẫu LFW ............................................................................ 52

Hình 3.5: Giao diện chương trình ............................................................................. 55

Hình 3.6: Giao diện chương trình khi thực hiện phát hiện được khuôn mặt ............ 55

8

DANH MỤC BẢNG BIỂU

Bảng 1.1: Bảng đánh giá thuật toán Viola - Jones .................................................... 25

Bảng 3.1: Đánh giá hiệu quả phát hiện khuôn mặt ................................................... 53

Bảng 3.2: Đánh giá độ chính xác phát hiện khuôn mặt ............................................ 54

9

MỞ ĐẦU

Thị giác máy là một lĩnh vực thu hút nhiều nghiên cứu và thể hiện khả năng

ứng dụng cao trong những năm gần đây. Một trong những bài toán được đặc biệt

quan tâm là phát hiện vật thể trong ảnh/video. Phát hiện vật thể thường là bước khởi

đầu cho các hệ thống theo dõi/giám sát và nhận diện.

Phát hiện mặt người là một chủ đề nghiên cứu thuộc lĩnh vực thị giác máy

tính đã được phát triển từ đầu những năm 90 của thế kỷ trước, 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. Đ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 phát hiện mặt người, 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, hoặc quản lý dân số

và pháp lý.

Hơn một thập kỷ qua, có rất nhiều công trình nghiên cứu về bài toán xác định

khuôn mặt người từ ảnh đen trắng, ảnh xám, đến ảnh màu như ngày nay. Các

nghiên cứu đi từ bài toán đơn giản là ảnh chỉ chứa một khuôn mặt người nhìn thẳng

vào thiết bị thu hình và đầu ở tư thế thẳng đứng, cho đến ảnh màu với nhiều khuôn

mặt người trong cùng ảnh, khuôn mặt có quay một góc nhỏ, hay bị che khuất một

phần, và với ảnh nền của ảnh phức tạp (ảnh chụp ngoài thiên nhiên) nhằm đáp ứng

nhu cầu thật sự cần thiết của con người.

Bài toán xác định khuôn mặt người (Face detection) là một kỹ thuật máy tính

để xác định các vị trí và các kích thước của khuôn mặt trong ảnh bất kỳ (ảnh kỹ

thuật số). Kỹ thuật này nhận biết các đặt trưng khuôn mặt và bỏ qua những thứ khác

như: tòa nhà, cây cối, cơ thể...

Một số ứng dụng của bài toán xác định khuôn mặt là: hệ thống tương tác giữa

người và máy (điều kiển máy tính qua các cử động của khuôn mặt), hệ thống nhận

dạng người (giúp cho các cơ quan an ninh quản lý con người), hệ thống quan sát

theo dõi, hệ thống quản lý việc ra vào cho các cơ quan và công ty, hệ thống kiểm tra

10

người lái xe có ngủ gật hay không, hệ thống phân tích cảm xúc trên khuôn mặt, và

hệ thống nhận dạng khuôn mặt cho các máy ảnh kỹ thuật số...

Hiện nay có rất nhiều phương pháp phát hiện khuôn mặt người, dựa vào các

tính chất của các phương pháp, ta có thể chia ra làm bốn hướng tiếp cận chính như

sau: Hướng tiếp cận dựa trên tri thức: mã hoá hiểu biết của con người về các loại

khuôn mặt và tạo ra các tập luật để xác định khuôn mặt. Hướng tiếp cận dựa trên

đặc tả không thay đổi: mục tiêu các thuật toán tìm ra các đặt trưng mô tả cấu trúc

khuôn mặt người (các đặt trưng không thay đổi với tư thế, vị trí đặt thiết bị thu hình,

độ sáng tối thay đổi...). Hướng tiếp cận dựa trên so khớp mẫu: dùng các mẫu chuẩn

hay các đặc trưng của khuôn mặt người. Hướng tiếp cận dựa trên diện mạo: phương

pháp học từ một tập ảnh huấn luyện mẫu để xác định khuôn mặt người.

Phương pháp nhận diện được sử dụng rất phổ biến hiện nay dựa trên thuật

toán của Viola-Johns. Tuy nhiên, phương pháp này có thời gian huấn luyện rất dài,

yêu cầu số mẫu lớn. Một số cải tiến đã được đưa ra để giải quyết vấn đề này, trong

đó có việc sử dụng đặc trưng HOG (Histogram of Oriented Gradient).

Mục tiêu của đề tài là nghiên cứu loại đặc trưng HOG, cách sử dụng nó kết

hợp với SVM (Support Vector Machines) để phát hiện khuôn mặt người trong ảnh

thu từ camera giám sát. Đây là một vấn đề cần giải quyết để xây dựng thử nghiệm

một hệ thống hỗ trợ điểm danh tự động học sinh.

1. Mục tiêu của đề tài

Mục tiêu của đề tài nghiên cứu các vấn đề sau:

- Nghiên cứu Haar wavelet và Adaboost;

- Nghiên cứu thuật toán Viola - Johns;

- Nghiên cứu đặc trưng HOG;

- Nghiên cứu cách sử dụng đặc trưng HOG với SVM trong phát hiện mặt người.

- Xây dựng bộ dữ liệu khuôn mặt để thử nghiệm;

- Thực hiện huấn luyện và test;

- Phân tích, đánh giá kết quả thu được; so sánh kết quả thu được với kết quả của

một số phương pháp phát hiện đã được công bố.

11

- Xây dựng thử nghiệm chương trình phát hiện khuôn mặt từ camera giám sát

lớp học.

2. Hướng nghiên cứu của đề tài

- Nghiên cứu Haar wavelet và Adaboost, thuật toán Viola - Johns;

- Nghiên cứu cách sử dụng đặc trưng HOG với SVM trong phát hiện mặt người.

- Xây dựng dữ liệu để huấn luyện và test; phân tích và đánh giá kết quả thu

được; so sánh kết quả test trên các kho dữ liệu cử chỉ khác nhau; so sánh kết

quả thu được bằng phương pháp sử dụng đặc trưng HOG với các phương pháp

khác đã được công bố.

3. Ý nghĩa khoa học và thực tiễn của đề tài

Đề tài có ý nghĩa thực tiễn trong việc xây dựng một hệ thống thử nghiệm hỗ

trợ điểm danh tự động cho trường phổ thông. Hệ thống này gồm một đề tài về phát

hiện khuôn mặt và một đề tài về nhận diện khuôn mặt.

12

CHƯƠNG I. TỔNG QUAN VỀ PHÁT HIỆN MẶT NGƯỜI

TRONG ẢNH VÀ VIDEO

Mọi phương pháp nhận dạng đều yêu cầu cơ chế phát hiện đối tượng trong

mỗi hình ảnh hoặc khi đối tượng xuất hiện trong video. Cách tiếp cận phổ biến để

phát hiện đối tượng là sử dụng thông tin trong một hình ảnh đơn. Tuy nhiên, một số

phương pháp phát hiện đối tượng sử dụng thông tin thời gian được tính từ một

chuỗi các hình ảnh để giảm số lần phát hiện sai. Thông tin thời gian này thường ở

sự khác biệt hình ảnh, làm nổi bật các vùng thay đổi trong các hình ảnh liên tiếp.

1.1. Phát hiện điểm

Phát hiện điểm [1] được sử dụng để tìm các điểm quan tâm trong các hình ảnh

có kết cấu biểu cảm ở các vùng tương ứng. Điểm quan tâm được sử dụng nhiều

trong các ngữ cảnh chuyển động, âm thanh stereo, và các vấn đề theo dõi. Chất

lượng mong muốn của điểm quan tâm là sự bất biến của nó đối với những thay đổi

về độ chiếu sáng và quan điểm của máy ảnh.

Trong các tài liệu, các phát hiện điểm thường được sử dụng bao gồm: phát

hiện điểm Moravec, phát hiện điểm Harris, máy dò KLT, và phát hiện SIFT. Để

đánh giá, so sánh các điểm quan tâm, chúng ta tham khảo nghiên cứu của

Mikolajczyk và Schmid. Để tìm các điểm quan tâm, thuật toán của Moravec tính

toán sự thay đổi của các điểm ảnh hình ảnh trong một bảng kích thước 4x4 theo

hướng ngang, dọc, đường chéo và chọn tối thiểu bốn biến thể như các giá trị đại

diện cho cửa sổ. Một điểm được xác nhận là quan tâm nếu sự thay đổi cường độ cục

bộ tối đa kích thước 12x12.

Hình 1.1: Các điểm quan tâm được phát hiện bằng cách áp dụng (a) Harris, (b) các toán tử KLT, và (c) SIFT.

13

Máy dò Harris tính toán các dẫn xuất hình ảnh bậc nhất, (𝐼𝑥,𝐼𝑦,) theo các hướng

x và y để làm nổi bật các biến thể cường độ hướng, sau đó một ma trận thời gian thứ

hai mã hóa biến thể này, được đánh giá cho mỗi điểm ảnh trong một khu vực lân

cận nhỏ:

2 ) (1)

2 ∑ 𝐼𝑥 ∑ 𝐼𝑥 𝐼𝑦

𝑀 = ( ∑ 𝐼𝑥 𝐼𝑦 ∑ 𝐼𝑦

Một điểm quan tâm được xác định bằng cách sử dụng phương thức và dấu vết

của M đo lường sự biến thiên trong một khu vực lân cận 𝑅 = 𝑑𝑒𝑡(𝑀) −

𝑘. 𝑡𝑟(𝑀)2, trong đó k là hằng số. Các điểm quan tâm được đánh dấu bằng ngưỡng R

sau khi áp dụng sự khử không tối đa (kết quả hình 1.1 (a)).

Ma trận thời gian tương tự M được đưa ra trong phương trình (1) được sử

dụng trong bước phát hiện điểm quan tâm của phương pháp theo dõi KLT. Xác định

điểm quan tâm R được tính bằng cách sử dụng giá trị riêng tối thiểu của 𝑀, 𝜆𝑚𝑖𝑛.

Các điểm quan tâm được lựa chọn bởi ngưỡng R. Trong số các điểm quan tâm,

KLT loại bỏ các điểm quan tâm mà không gian gần nhau (Hình 1.1 (b)).Về mặt

định lượng cả Harris và KLT đều nhấn mạnh các biến thể cường độ bằng các biện

pháp tương tự nhau. Ví dụ, R ở Harris có liên quan đến đa thức đặc trưng được sử

dụng để tìm các giá trị riêng của 𝑀: 𝜆2 + 𝑑𝑒𝑡(𝑀) − 𝜆 . 𝑡𝑟(𝑀) = 0, trong khi

KLT tính trực tiếp các giá trị riêng.

Trong thực tế, cả hai phương pháp này đều tìm thấy gần như cùng một điểm

quan tâm. Sự khác biệt duy nhất là tiêu chí KLT bổ sung thực thi một khoảng cách

không gian được xác định trước giữa các điểm quan tâm đã phát hiện.

Về lý thuyết, ma trận M là bất biến đối với phép quay và dịch. Tuy nhiên,

không phải bất biến đối với các biến đổi affine hoặc projective. Để giới thiệu sự

phát hiện mạnh mẽ các điểm quan tâm dưới các biến đổi khác nhau, Lowe đã giới

thiệu phương pháp SIFT (Quy mô biến đổi không đổi) bao gồm bốn bước.

Thứ nhất, một không gian được xây dựng bằng cách hợp nhất hình ảnh với các

bộ lọc Gaussian ở các quy mô khác nhau. Hình ảnh đã hợp nhất được sử dụng để

14

tạo ra các hình ảnh khác nhau của Gaussians (DoG). Các điểm quan tâm đề xuất sau

đó được chọn từ các cực tiểu và cực đại của các hình ảnh DoG trên tỷ lệ.

Bước tiếp theo cập nhật vị trí của mỗi đề xuất bằng cách nội suy các giá trị

màu sắc và sử dụng các điểm ảnh lân cận. Trong bước thứ ba, loại bỏ các đề xuất

tương phản thấp, dọc theo các cạnh.

Cuối cùng, các điểm quan tâm còn lại được định hướng dựa trên các đỉnh

trong biểu đồ của các đường định hướng gradient trong một khu vực nhỏ xung

quanh điểm đề xuất. Máy dò SIFT tạo ra một số điểm quan tâm lớn hơn so với các

máy dò điểm quan tâm khác. Điều này là do thực tế các điểm quan tâm ở các quy

mô khác nhau và độ phân giải khác nhau (hình chóp) được tích trữ. Theo kinh

nghiệm SIFT tốt hơn hầu hết các điểm dò và linh hoạt hơn cho các biến dạng hình

ảnh.

1.2. Phép trừ nền

Phát hiện đối tượng có thể đạt được bằng cách xây dựng một biểu diễn của

cảnh được gọi là mô hình nền, sau đó tìm ra độ lệch từ mô hình cho mỗi khung. Bất

kỳ thay đổi nhỏ nào trong vùng hình ảnh từ hình nền cho thấy một đối tượng

chuyển động. Các điểm ảnh tạo thành các vùng thay đổi được đánh dấu để xử lý

tiếp. Thông thường, thuật toán thành phần kết nối được áp dụng để có được các

vùng kết nối tương ứng với các đối tượng. Quá trình này được gọi là phép trừ nền

[1].

Sự khác biệt khung của các khung liền kề đã được nghiên cứu kỹ lưỡng từ

cuối những năm 70. Tuy nhiên, phép trừ nền đã trở nên phổ biến theo sau công trình

của Wren et al. Để tìm hiểu sự thay đổi dần dần về thời gian, Wren et al. đề xuất mô

hình hoá màu sắc của mỗi điểm ảnh, 𝐼 (𝑥, 𝑦) của một nền tĩnh cố định với một

không gian màu 3D (Y, U, và V) Gaussian, 𝐼(𝑥, 𝑦) ~ 𝑁(𝜇 (𝑥, 𝑦) , ∑( 𝑥, 𝑦)). Các

thông số mô hình, trung bình (x, y) và hiệp phương sai £(x, y), được học từ các

quan sát màu sắc trong một số khung liên tiếp. Khi mô hình nền được tạo ra, đối với

mỗi điểm ảnh (𝑥, 𝑦) trong khung đầu vào, tính khả năng màu của nó đến từ

𝑁(𝜇(𝑥, 𝑦), ∑(𝑥, 𝑦)) được tính toán, và các điểm ảnh đi chệch hướng mô hình nền

15

được dán nhãn là các điểm ảnh nổi. Tuy nhiên, một Gaussian không phải là một mô

hình tốt cho những cảnh ngoài trời vì nhiều màu sắc có thể được quan sát ở một vị

trí nhất định do chuyển động đối tượng lặp đi lặp lại, bóng hoặc phản xạ.

Một cải tiến đáng kể trong mô hình nền đã đạt được bằng cách sử dụng mô

hình thống kê đa phương thức để mô tả màu nền cho mỗi điểm ảnh. Ví dụ, Stauffer

và Grimson sử dụng một hỗn hợp của Gaussians để mô hình màu điểm ảnh. Trong

phương pháp này, một điểm ảnh trong khung hiện tại được kiểm tra đối với mô hình

nền bằng cách so sánh nó với mọi Gaussian trong mô hình cho đến khi tìm thấy một

Gaussian phù hợp. Nếu so khớp được tìm thấy, giá trị trung bình và phương sai của

Gaussian phù hợp được cập nhật, nếu không Gaussian mới có nghĩa là bằng với

màu điểm ảnh hiện tại và một số phương sai ban đầu được đưa vào hỗn hợp. Mỗi

điểm ảnh được phân loại dựa trên việc phân phối phù hợp có phải là quá trình nền

hay không. Di chuyển các khu vực, được phát hiện bằng cách sử dụng phương pháp

này, cùng với các mô hình nền được thể hiện trong hình 1.2. (a) Hình ảnh từ một

dãy trong đó một người đang đi ngang qua hiện trường. (b) Giá trị trung bình của

các Gaussian có trọng số cao nhất ở mỗi vị trí điểm ảnh. Các phương tiện này đại

diện cho màu sắc cho mỗi điểm ảnh tạm thời nhất và do đó phải đại diện cho nền

tĩnh. (c) Các phương tiện của Gauss với trọng lượng cao thứ hai; những phương tiện

này đại diện cho màu sắc được quan sát ít thường xuyên hơn. (d) Kết quả trừ nền.

Các tiền cảnh bao gồm các điểm ảnh trong khung hiện tại mà phù hợp với một trọng

số thấp Gaussian.

Hình 1.2: Hỗn hợp mô hình Gaussian cho phép trừ nền.

Cách tiếp cận khác là kết hợp thông tin cảnh dựa trên vùng (không gian) thay

vì chỉ sử dụng thông tin dựa trên màu. Elgammal và Davis sử dụng ước lượng mật

độ hạt nhân không tham số để mô hình nền cho mỗi điểm ảnh. Trong quá trình trừ,

16

điểm ảnh hiện tại không chỉ khớp với điểm ảnh tương ứng trong mô hình nền, mà

còn đến vị trí điểm ảnh gần đó. Do đó, phương pháp này có thể xử lý sự chập chờn

của ảnh hoặc các chuyển động nhỏ trong nền. Li và Leung kết hợp các tính năng kết

cấu và màu để thực hiện phép trừ nền trên khối 5 x 5 điểm ảnh. Do cấu trúc không

thay đổi nhiều với sự thay đổi độ chiếu sáng, nên phương pháp này ít bị ảnh hưởng

bởi ánh sáng. Toyama và cộng sự đề xuất một thuật toán ba cấp để giải quyết vấn đề

trừ nền. Ngoài phép trừ cấp điểm ảnh, họ sử dụng miền và thông tin mức khung. Ở

cấp điểm ảnh, họ đề xuất sử dụng bộ lọc Wiener để dự đoán có tính xác suất về màu

nền dự kiến. Ở cấp vùng, các vùng tiền cảnh bao gồm màu đồng nhất được điền

vào. Ở cấp khung, nếu hầu hết các điểm ảnh trong khung hiển thị đột ngột thay đổi,

giả sử rằng các mô hình nền màu điểm ảnh dựa trên không còn hợp lệ. Vào thời

điểm này, mô hình nền dựa trên điểm ảnh được lưu trữ trước đó được hoán đổi,

hoặc mô hình được khởi tạo lại.

Cách tiếp cận thay thế cho phép trừ nền là đại diện cho các biến thể cường độ

của một điểm ảnh trong một chuỗi ảnh như các trạng thái rời rạc tương ứng với các

sự kiện trong môi trường. Rittscher et al sử dụng mô hình Markov ẩn (HMM) để

phân loại các khối nhỏ của một hình ảnh giống như một trong ba trạng thái này.

Trong bối cảnh phát hiện ánh sáng trong và ngoài sự kiện trong một căn phòng,

Stenger et al sử dụng HMM cho phép trừ nền. Ưu điểm của việc sử dụng HMM là

các sự kiện nhất định, khó có thể mô hình chính xác bằng cách sử dụng các phương

pháp mô hình nền không giám sát, có thể được học bằng các mẫu huấn luyện.

Thay vì mô phỏng các biến thể của từng điểm ảnh, Oliver et al đề xuất một

cách tiếp cận toàn diện bằng cách sử dụng phân tích eigenspace. Đối với các khung

đầu vào 𝑘, 𝐼2: 𝑖 = 1 … 𝑘, có kích thước 𝑛 × 𝑚, ma trận nền B có kích thước 𝑘 × 𝑙

được tạo thành bởi các phân tầng m trong mỗi khung, sau đó là 𝑙 = (𝑛 × 𝑚), và sự

phân hủy giá trị riêng đến hiệp phương sai của 𝐵, 𝐶 = 𝐵𝑇𝐵. Sau đó nền được đại

diện bởi các vector riêng mô tả hầu hết n, 𝑢𝑖, trong đó 𝑖 < 𝑛 < 𝑘, bao gồm tất cả

những ánh sáng có thể có trong vùng quan sát (FOV). Do đó, phương pháp tiếp cận

này ít nhạy cảm với ánh sáng. Các đối tượng nền được phát hiện bằng cách chiếu

17

hình ảnh hiện tại lên vùng không gian và tìm ra sự khác biệt giữa hình ảnh được tái

tạo và thực tế. Hình 1.3. hiển thị các vùng đối tượng phát hiện được sử dụng

phương pháp tiếp cận eigenspace ): (a) một hình ảnh đầu vào với các đối tượng, (b)

tái tạo hình ảnh sau khi chiếu hình ảnh đầu vào lên không gian eigenspace, (c) Lưu

ý rằng các đối tượng nền được xác định rõ ràng.

Hình 1.3: Tách hình nền dựa trên phân hủy Eigenspace (không gian được xây dựng với các vật thể trong FOV của máy ảnh

Một hạn chế của các phương pháp tiếp cận nói trên là cần nền tĩnh. Hạn chế

này được giải quyết bởi Monnet et al., và Zhong và Sclaroff. Cả hai phương pháp

này đều có thể xử lý được nền thời gian khác nhau (ví dụ: sóng trên mặt nước, các

đám mây di chuyển…). Các phương pháp này mô hình các vùng hình ảnh như các

quá trình tự động hồi quy trung bình (ARMA) cung cấp cách để tìm hiểu và dự

đoán mô hình chuyển động trong một cảnh. Quy trình ARMA là một mô hình chuỗi

thời gian, được tạo thành từ các thành phần tự hồi quy và di chuyển trung bình,

trong đó quá trình tự hồi quy có thể được mô tả như là một tổng trọng số của các giá

trị trước đó và một lỗi tiếng ồn trắng.

Hình 1.4: Phân chia hình ảnh trong (a), sử dụng phân đoạn dịch chuyển trung bình (b) và vết cắt bình thường (c).

Tóm lại, hầu hết các phương pháp theo dõi cho những camera cố định, ví dụ,

Haritaoglu et al và Collins et al sử dụng phương pháp trừ nền để phát hiện các vùng

18

quan tâm. Bởi vì các phương pháp trừ gần đây có khả năng mô hình hoá độ sáng,

tiếng ồn và chuyển động định kỳ của vùng nền, do đó có thể phát hiện chính xác các

đối tượng trong nhiều trường hợp. Trong thực tế, phép trừ nền cho ta các vùng đối

tượng không đầy đủ trong nhiều trường hợp, nghĩa là các đối tượng có thể tràn vào

một số vùng, hoặc có thể có lỗ bên trong đối tượng vì không bảo đảm rằng các đối

tượng không khác biệt so với nền.

1.3. Phân vùng

Mục đích của thuật toán là phân chia hình ảnh thành các vùng tương tự nhau.

Mỗi thuật toán phân vùng giải quyết hai vấn đề, các tiêu chí cho một phân vùng tốt

và phương pháp để đạt được phân vùng hiệu quả [1].

1.3.1. Mean-Shift Clustering

Đối với vấn đề phân vùng hình ảnh [1], Comaniciu và Meer đề xuất phương

pháp chuyển dịch trung bình để tìm các cụm trong không gian hỗn hợp với không

gian màu [𝑙, 𝑢, 𝑣, 𝑥, 𝑦], trong đó [𝑙, 𝑢, 𝑣] đại diện cho màu sắc và [𝑥, 𝑦] đại diện cho

vị trí không gian. Với hình ảnh, thuật toán được khởi tạo với số lượng lớn các trung

tâm cụm giả thuyết được chọn ngẫu nhiên từ dữ liệu. Sau đó, mỗi trung tâm cụm

được di chuyển đến mức trung bình của dữ liệu nằm bên trong ellip đa chiều tập

trung vào trung tâm cụm. Vectơ được xác định bởi các trung tâm cụm cũ và mới

được gọi là vector thay đổi trung bình. Vectơ thay đổi trung bình được tính toán lặp

đi lặp lại cho đến khi các trung tâm cụm không thay đổi vị trí của chúng. Lưu ý rằng

trong quá trình dịch lặp lại có nghĩa là một số cụm có thể được hợp nhất. Hiển thị

phân đoạn sử dụng phương pháp chuyển dịch trung bình Trong hình 1.4 (b), sử

dụng mã nguồn có sẵn tại MeanShiftSegmentSrc.

Khả năng phân cụm trung bình thay đổi có thể mở rộng cho nhiều ứng dụng

khác như phát hiện cạnh, điều chỉnh hình ảnh, và theo dõi.

Sự phân đoạn dựa trên chuyển đổi trung bình đòi hỏi phải tinh chỉnh các tham

số khác nhau để có được sự phân đoạn tốt hơn, ví dụ như lựa chọn màu sắc và

19

không gian trung tâm, ngưỡng cho kích thước nhỏ nhất của vùng có ảnh hưởng

đáng kể tới kết quả phân đoạn.

1.3.2. Phân đoạn Hình ảnh Sử dụng Đồ thị-Cuts.

Phân chia hình ảnh cũng có thể được xây dựng như là một vấn đề phân vùng

𝑁 𝐴𝑖 = V, 𝐴𝑖 ∩ 𝐴𝑗 =

đồ thị, trong đó các đỉnh (các điểm ảnh), V = {𝑢, 𝑣, . . . }, của một đồ thị (hình ảnh)

G, được phân chia thành 𝑁 đồ thị phụ rời rạc (vùng) 𝐴𝑖,∪𝑖=1

∅, 𝑖 ≠ 𝑗, bằng cách tỉa các cạnh trọng số của đồ thị. Tổng trọng số của các cạnh cắt

tỉa giữa hai bản đồ con được gọi là cắt. Trọng số thường được tính bằng màu sắc, độ

sáng, hoặc độ tương đồng giữa các nút. Wu và Leahy sử dụng tiêu chuẩn cắt giảm

tối thiểu, mục tiêu là tìm các phân vùng để giảm thiểu sự cắt giảm. Trong cách tiếp

cận của họ, trọng số được xác định dựa trên màu giống nhau. Một giới hạn của cắt

tối thiểu là ảnh hưởng của nó đối với việc phân đoạn hình ảnh. Ảnh hưởng này do

chi phí cắt giảm với số lượng các cạnh đi qua hai phân đoạn được chia [1].

Shi và Malik đề xuất cắt giảm bình thường để vượt qua vấn đề phân đoạn trên.

Trong cách tiếp cận của họ, việc cắt giảm không chỉ phụ thuộc vào tổng trọng số

của trọng số cắt, mà còn dựa trên tỷ lệ tổng trọng số kết nối của các nút trong mỗi

phân vùng cho tất cả các nút của đồ thị. Đối với phân đoạn dựa trên hình ảnh, trọng

số giữa các nút được xác định bởi sản phẩm có độ tương tự màu và không gian gần

nhau. Một khi các trọng số giữa mỗi cặp nút được tính toán, ma trận trọng số 𝑊 và

𝑁 𝑗=1

, được xây dựng. Phân đoạn được ma trận đường chéo 𝐷, trong đó 𝐷𝑖,𝑖 = ∑ 𝑊𝑖,𝑗

thực hiện đầu tiên bằng cách tính toán các vector đặc trưng và các trị số riêng của hệ

thống tổng quát (𝐷 − 𝑊)𝑦 = 𝜆𝐷𝑦, sau đó là vector đặc trưng thứ hai được sử dụng

để chia trong hình ảnh thành hai phân đoạn. Đối với mỗi phân đoạn mới, quá trình

này được thực hiện đệ quy cho đến khi đạt ngưỡng. Trong hình 1.4 (c), hiển thị các

kết quả phân khúc thu được bằng cách tiếp cận cắt giảm bình thường.

Trong phân đoạn dựa trên cắt bình thường, giải pháp cho hệ thống tổng quát

cho các hình ảnh lớn có thể tốn kém về mặt xử lý và yêu cầu về bộ nhớ. Tuy nhiên,

phương pháp này yêu cầu các tham số được chọn bằng tay ít hơn, so với phân đoạn

20

trung bình. Cắt bình thường cũng được sử dụng trong bối cảnh các đường viền theo

dõi đối tượng.

1.3.3. Đường nét hoạt động

Trong một khung viền, phân đoạn đối tượng bằng cách phát triển một đường

viền khép kín bao quanh đối tượng, để đường viền bao quanh vùng đối tượng. Sự

phát triển của đường viền được điều chỉnh bởi một chức năng xác định sự vừa vặn

của đường viền quanh đối tượng [1]. Chức năng có dạng sau đây:

1 0

(2) 𝐸(Γ) = ∫ 𝐸𝑖𝑛𝑡 (v)+𝐸𝑖𝑚(v)+𝐸𝑒𝑥𝑡(v)𝑑𝑠

Trong đó s là chiều dài cung của đường viền Γ , 𝐸𝑖𝑛𝑡 gồm có các ràng buộc

quy định, 𝐸𝑖𝑚 bao gồm năng lượng dựa trên sự xuất hiện, và 𝐸𝑒𝑥𝑡 chỉ rõ các hạn chế bổ sung. 𝐸𝑖𝑛𝑡 thường có độ cong, thứ tự đầu tiên (∇v) hoặc thứ hai (∇2v) để tìm đường viền ngắn nhất. Năng lượng hình ảnh, 𝐸𝑖𝑚, có thể được tính toán cục bộ hoặc

tổng thể. Thông tin cục bộ thường ở dạng hình ảnh gradient và được đánh giá xung

quanh đường viền. Ngược lại, các tính năng tổng thể được tính toán bên trong và

bên ngoài của vùng đối tượng. Các tính năng tổng thể bao gồm màu sắc và kết cấu.

Các nhà nghiên cứu khác nhau đã sử dụng thuật ngữ năng lượng khác nhau

trong phương trình (2). Năm 1995, Caselles et al. loại trừ 𝐸𝑒𝑥𝑡 và chỉ sử dụng ảnh gradient như là năng lượng ảnh 𝐸𝑖𝑚 = g(|∇𝑰|) , trong đó g là hàm sigma.

So với gradient, một hàm của gradient xác định đường viền đối tượng như một

đường cong đo đạc trong không gian Riemannian. Tuy nhiên, hình ảnh gradient

cung cấp thông tin rất cục bộ và nhạy cảm với cục bộ nhỏ nhất. Để khắc phục vấn

đề này, các nhà nghiên cứu đã giới thiệu các thuật ngữ về năng lượng hình ảnh theo

khu vực. Năm 1996, Zhu và Yuille đã đề xuất sử dụng thông tin vùng thay vì

gradient hình ảnh. Tuy nhiên, việc sử dụng thuật ngữ khu vực trong chức năng năng

lượng không đưa đến cục bộ tốt của đường viền đối tượng.

Gần đây, các phương pháp kết hợp cả năng lượng ảnh dựa trên vùng và

gradient dựa trên đã trở nên phổ biến. Paragios và Deriche đề xuất sử dụng một sự

kết hợp lồi của gradient và các nguồn năng lượng vùng, 𝐸𝑖𝑚𝑎𝑔𝑒 = 𝜆𝐸𝑏𝑜𝑢𝑛𝑑𝑎𝑟𝑦 +

21

(1 − 𝜆)𝐸𝑟𝑒𝑔𝑖𝑜𝑛. Đặc biệt, các tác giả mô hình sự xuất hiện ở 𝐸𝑟𝑒𝑔𝑖𝑜𝑛. bằng hỗn hợp

Gaussians. Sự biến đổi đường viền được thực hiện đầu tiên trên tổng thể, sau đó

bằng cách thay đổi 𝛼 từ 0 đến 1 tại mỗi lần lặp.

Một vấn đề quan trọng trong phương pháp đường viền là khởi tạo đường viền.

Trong phương pháp tiếp cận dựa trên gradient hình ảnh, một đường viền thường

được đặt bên ngoài vùng đối tượng và bị co lại cho đến khi gặp ranh giới đối tượng.

Hạn chế này được khắc phục trong các phương pháp dựa trên vùng sao cho đường

viền có thể được khởi tạo bên trong hoặc bên ngoài đối tượng sao cho đường viền

có thể mở rộng hoặc thu nhỏ tương ứng để phù hợp với ranh giới đối tượng. Những

cách tiếp cận này đòi hỏi phải có đối tượng hoặc kiến thức nền trước. Sử dụng nhiều

khung hoặc một khung tham chiếu, khởi tạo có thể được thực hiện mà không cần

xây dựng khu vực priors. Ví dụ, trong Paragios và Deriche, các tác giả sử dụng

phép trừ nền để khởi tạo đường viền.

Bên cạnh việc lựa chọn các chức năng năng lượng và khởi tạo, một vấn đề

quan trọng khác là lựa chọn đường viền phải đại diện. Vẽ đối tượng Γ có thể được

biểu diễn một cách rõ ràng (control points, v) hoặc hoàn toàn (level sets, 𝜙). Trong

biểu diễn rõ ràng, mối quan hệ giữa các control points được xác định bởi phương

trình spline. Trong biểu thức cấp đại diện, đường viền được biểu diễn trên lưới

không gian mã hóa khoảng cách đã ký của lưới từ đường viền với các dấu hiệu

ngược đối với đối tượng và vùng nền. Đường viền được định nghĩa ngầm như là các

đường giao cắt không trong lưới thiết lập mức. Sự tiến triển của đường viền được

điều chỉnh bằng cách thay đổi giá trị lưới theo công thức tính bằng phương trình (2),

đánh giá tại mỗi vị trí lưới. Sự thay đổi trong các giá trị lưới tạo ra các đường giao

cắt mới bằng 0, do đó, các vị trí đường viền mới

1.4. Học có giám sát

Học có giám sát là một kĩ thuật của ngành học máy để xây dựng một hàm

(function) từ dữ liệu huấn luyện. Dữ liệu huấn luyện bao gồm các cặp gồm đối

tượng đầu vào (thường dạng vec-tơ), và đầu ra mong muốn. Đầu ra của một hàm có

22

thể là một giá trị liên tục (gọi là hồi qui), hay có thể là dự đoán một nhãn phân loại

cho một đối tượng đầu vào (gọi là phân loại). Nhiệm vụ của chương trình học có

giám sát là dự đoán giá trị của hàm cho một đối tượng bất kì là đầu vào hợp lệ, sau

khi đã xem xét một số ví dụ huấn luyện (nghĩa là, các cặp đầu vào và đầu ra tương

ứng). Để đạt được điều này, chương trình học phải tổng quát hóa từ các dữ liệu sẵn

có để dự đoán được những tình huống chưa gặp phải theo một cách “hợp lý”.

Học có giám sát có thể tạo ra hai loại mô hình. Phổ biến nhất, học có giám sát

tạo ra một mô hình toàn cục (global model) để ánh xạ đối tượng đầu vào đến đầu ra

mong muốn. Tuy nhiên, trong một số trường hợp, việc ánh xạ được thực hiện dưới

dạng một tập các mô hình cục bộ (như trong phương pháp lập luận theo tình

huống(case-based reasoning) hay giải thuật láng giềng gần nhất).

Để có thể giải quyết một bài toán nào đó của học có giám sát (ví dụ: học

để phát hiện mặt người) người ta phải xem xét nhiều bước khác nhau:

- Xác định loại của các ví dụ huấn luyện. Trước khi làm bất cứ điều gì, người

kĩ sư nên quyết định loại dữ liệu nào sẽ được sử dụng làm ví dụ. Chẳng hạn, đó có

thể là một ảnh đơn, đoạn video…

- Thu thập tập huấn luyện. Tập huấn luyện cần đặc trưng cho thực tế sử dụng

của hàm chức năng. Vì thế, một tập các đối tượng đầu vào được thu thập và đầu ra

tương ứng được thu thập, hoặc từ các chuyên gia hoặc từ việc đo đạc tính toán.

- Xác định việc biểu diễn các đặc trưng đầu vào cho hàm chức năng cần tìm.

Sự chính xác của hàm chức năng phụ thuộc lớn vào cách các đối tượng đầu vào

được biểu diễn. Thông thường, đối tượng đầu vào được chuyển đổi thành một vec-

tơ đặc trưng, chứa một số các đặc trưng nhằm mô tả cho đối tượng đó. Số lượng các

đặc trưng không nên quá lớn, do sự bùng nổ tổ hợp (curse of dimensionality); nhưng

phải đủ lớn để dự đoán chính xác đầu ra.

- Xác định cấu trúc của hàm chức năng cần tìm và giải thuật học tương ứng.

Ví dụ, chúng ta có thể lựa chọn việc sử dụng mạng nơ-ron nhân tạo hay cây quyết

định.

23

- Hoàn thiện thiết kế chúng ta sẽ chạy giải thuật học từ tập huấn luyện thu thập

được. Các tham số của giải thuật học có thể được điều chỉnh bằng cách tối ưu hóa

hiệu năng trên một tập con (gọi là tập kiểm chứng -validation set) của tập huấn

luyện, hay thông qua kiểm chứng chéo (cross-validation). Sau khi học và điều chỉnh

tham số, hiệu năng của giải thuật có thể được đo đạc trên một tập kiểm tra độc lập

với tập huấn luyện.

1.5. Thuật toán Viola–Johns và các vấn đề liên quan.

1.5.1. Thuật toán Viola–Johns

Đây là thuật toán của Paul Viola và Michael Jones đề xuất vào năm 2001.

Phương pháp sử dụng đặc trưng Haar-Like kết hợp với máy phân lớp Ada Boost

giúp tăng tốc độ của chương trình [2].

Các đặc trưng Haar-like là các hình chữ nhật đen trắng để xác định khuôn mặt

người. Gồm 4 đặc trưng cơ bản:

Hình 1.5: Đặc trưng Haar - Like

Để tăng tốc độ tính toán và xử lí, Viola-Jones đề xuất một khái niệm mới là

Intergral Image (tích phân ảnh). Intergral Image là một mảng hai chiều có kích

thước bằng kích thước của ảnh đang xét. Khi đó, tổng mức xám của 1 vùng được

tính như sau:

Hình 1.6: Tính tích phân ảnh

D = A + B + C + D – (A+B) – (A+C) + A

= P1(x1, y1) + P2(x2, y2) + P3(x3, y3) + P4(x4, y4) – (P1(x1, y1)+P2(x2,

y2)) – (P1(x1, y1)+P3(x3, y3)) + P1(x1, y1)

24

Trong đó, P(x, y) được tính như Hình 1.7:

Hình 1.7: Cách tính P(x, y)

Sau khi tính được tích phân ảnh từ vùng ảnh cần xét, thuật toán Viola-Jones sử

dụng bộ phân lớp AdaBoost để loại bỏ các đặc trưng không cần thiết.

1.5.2. Đánh Giá Thuật Toán Viola-Jones

Để đánh giá hiệu quả phương pháp phát hiện khuôn mặt, chúng tôi sử dụng

hàm Viola-Jones được cài đặt sẵn trong bộ thư viện OpenCV và kiểm tra trên các

bộ dữ liệu chuẩn sau: Bao là bộ dữ liệu gồm 100 ảnh màu. Mỗi ảnh chứa một khuôn

mặt người ở các vị trí khác nhau như nghiêng đầu, xoay mặt về trái, về phải bao

gồm cả ảnh chứa nhiễu như bị mờ, nhòe, đội mũ, đeo kính, các biểu cảm khác nhau

trên khuôn mặt, có cả ngoại cảnh và người đứng phía sau. Đối tượng trong bộ dữ

liệu chủ yếu là người Châu Á với các độ tuổi khác nhau. AT&T là bộ dữ liệu của

Đại Học Cambrigde gồm 100 ảnh xám của 10 người khác nhau. Cứ mỗi 10 ảnh là

khuôn mặt của một người ở các góc độ, biểu cảm khác nhau. Đối tượng trong bộ dữ

liệu là người châu âu độ tuổi từ thanh niên đến cao niên, có một số đối tượng đeo

kính. Các ảnh trong bộ dữ liệu này chỉ chứa khuôn mặt, không có ngoại cảnh và các

yếu tố gây nhiễu, chụp ở độ sáng cố định. JAFFE là bộ dữ liệu của Psychology

Department, Kyushu University. Gồm 100 ảnh xám khuôn mặt chính diện của 6 cô

gái người Nhật với các biểu cảm khác nhau, được chụp trong nhiều điều kiện chiếu

sáng khác nhau. Ảnh được chụp với nền tĩnh và đơn sắc. Việc so khớp được thực

hiện như sau:

25

Hình 1.8: Kiểm tra kết quả chương trình so với bộ dữ liệu test

Theo Hình 1.8, hình chữ nhật viền đậm là hình chữ nhật có chứa khuôn mặt

được vẽ bằng tay. Hình chữ nhật viền mảnh là hình chữ nhật kết quả của chương

trình vẽ ra. Ta tính vùng giao A của 2 hình chữ nhật này. Sau đó tính tổng vùng

không giao của hai hình B + C rồi lấy tỉ lệ A/(B+C). Tỉ lệ này càng lớn chứng tỏ kết

quả của chương trình càng chính xác. Các trạng thái của kết quả phát hiện khuôn

mặt dựa trên tỉ lệ này như sau:

 Nếu tỉ lệ này < 1 thì kết quả của chương trình là 1 false face.

 Nếu tỉ lệ này >= 1 thì kết quả của chương trình là 1 correct face.

 Miss face được xác định bằng độ chệnh lệch giữa số lượng khuôn mặt phát

hiện được bằng chương trình với số lượng khuôn mặt được xác định bằng tay trước

đó.

Bảng 1.1 đánh giá xác định 3 trạng thái của kết quả phát hiện khuôn mặt:

Correct face (phát hiện đúng khuôn mặt), Miss face (không phát hiện ra khuôn mặt),

False face (phát hiện ra vùng ảnh không chứa khuôn mặt)

- Database - Correct - Total face

AT&T 100 Detect Status - Miss face 14 - False face 0 Hiệu suất = correct face/total face 86% face 86

Bao 100 13 1 87% 87

JAFFE 100 0 0 100% 100

Bảng 1.1: Bảng đánh giá thuật toán Viola - Jones

Thuật toán hoạt động khá ổn định trên 2 bộ dữ liệu khác nhau. Tuy nhiên,

trong quá trình test, trạng thái miss face xuất hiện tập trung ở các khuôn mặt

26

nghiêng và đeo kính như Hình 1.9. Dễ thấy rằng, vì bộ huấn luyện sử dụng huấn

luyện chủ yếu với các ảnh khuôn mặt chính diện và không đeo kính nên ảnh hưởng

tới độ chính xác khi làm việc với các khuôn mặt loại này. Để khắc phục tình trạng

trên, có thể tăng số ảnh huấn luyện bằng việc thêm vào các bộ ảnh khuôn mặt

nghiêng và đeo kính.

Hình 1.9: Kết quả phát hiện khuôn mặt bị sai lệch với khuôn mặt đeo kính

1.6. Adaboost

Adaboost (Adaptive Boost) [3] 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 dựa trên nguyên tắc kết kết hợp tuyến tính các Weak Classifier

dựa trên đặc trưng Haar-Like để hình thành một Classifier.

Tư tưởng của thuật toán Adaboost đấy là kết hợp các bộ phân loại yếu thành

một bộ phân loại mạnh. Trong quá trình xây dựng, bộ phân loại yếu tiếp theo sẽ

được xây dựng dựa trên các đánh giá về các bộ phân loại yếu trước, cuối cùng các

bộ phân loại yếu sẽ được kết hợp để trở thành bộ phân loại mạnh.

Để có thể kết hợp các bộ phân loại yếu, Adaboost sử dụng một trọng số

(weight) để đánh dấu các mẫu khó nhận dạng. Trong quá trình huấn luyện, cứ mỗi

weak classifier được xây dựng, 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 weak classifier tiếp theo: 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 weak

classifier vừa xây dựng. Bằng cách này, các weak classifier sau có thể tập trung vào

các mẫu mà các weak classifier trước đó chưa thực hiện tốt. Sau cùng các weak

27

classifier sẽ được kết hợp tùy theo mức độ ‘tốt’ của chúng để tạo nên một strong

classifier.

Viola và Jones dùng AdaBoost kết hợp các bộ phân loại yếu sử dụng các đặc

trưng Haar-like theo mô hình phân tầng (cascade) như sau:

Hình 1.10: Mô hình phân tầng kết hợp các bộ phân loại yếu để xác định khuôn mặt

Các Weak Classifiers hk(x) là các bộ phận loại yếu, được biểu diễn như sau:

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

Trong đó:

- x : mẫu hay cửa sổ con cần xét (x=(x1,x2,.....,xn) là vectơ đặc trưng

của mẫu )

- 𝜃k : ngưỡng

- 𝑓𝑘 : giá trị của đặc trưng Haar-like

- 𝑝k : hệ số quyết định chiều của phương trình

Ý nghĩa của công thức (3):

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à khuôn mặt (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).

28

Adaboost sẽ kết hợp các bộ phận loại yếu thành bộ phân loại mạnh như sau:

H(x) = sign(α1h1(x) +α2h2(x) + ... + αnhn(x))

Với: αt >= 0 là hệ số chuẩn hóa cho các bộ phận loại yếu

Hình 1.11: Kết hợp các bộ phận loại yếu thành bộ phận loại mạnh

Tập các mẫu

Tập các mẫu và trọng số

đầu Bắt huấn luyện

Khởi tạo tập đặc trưng ban đầu

Mẫu đúng

Mẫu sai

Đặc trưng haar-like

Xác định các đặc trưng từng trong mẫu, xây dựng các bộ phân loại yếu tương ứng

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

Tính toán giá trị lỗi cho mỗi đặc trưng (false alarm)

Sai

Xác định ngưỡng

Đúng

False alarm ≤ max false alarm

Lưu weak classifier được chọn

Chọn weak classifier có giá trị lỗi bé nhất

Kết thúc, strong classifier đuợc xây dựng

Sơ đồ khối:

Hình 1.12: Sơ đồ khối thuật toán Adaboost

Quá trình huấn luyện bộ phân loại được thực hiện bằng một vòng lặp mà ở

mỗi bước lặp, thuật toán sẽ chọn ra weak classifier ht thực hiện việc phân loại với

29

lỗi εt nhỏ nhất (do đó sẽ là bộ phân loại tốt nhất) để bổ sung vào strong classifier.

Mỗi khi chọn được 1 bộ phân loại ht, Adaboost sẽ tính giá trị 𝛼𝑡 theo công thức ở

trên. 𝛼𝑡 cũng được chọn trên nguyên tắc làm giảm thiểu giá trị lỗi εt.

𝑇

Hệ số 𝛼𝑡 nói lên mức độ quan trọng của ℎ𝑡: o Trong công thức của bộ phân loại H(x):

𝑡=1

) 𝐻(𝑥) = 𝑠𝑖𝑔𝑛 (∑ ∝𝑡 ℎ𝑡(𝑥)

Ta thấy tất cả các bộ phân loại ht đều có đóng góp vào kết quả của bộ phân

loại H(x), và mức độ đóng góp của chúng phụ thuộc vào giá trị αt tương ứng: ht với

αt càng lớn thì nó càng có vài trò quan trọng trong H(x).

o Trong công thức tính αt:

ln ( ) ∝𝑡= 1 2 1 − 𝜀𝑗 𝜀𝑗

Dễ thấy giá trị αt tỉ lệ nghịch với εj. Bởi vì ht được chọn với tiêu chí đạt εj nhỏ

nhất, do đó nó sẽ đảm bảo giá trị αt lớn nhất.

Sau khi tính được giá trị αt, Adaboost tiến hành cập nhật lại trọng số của các

mẫu: tăng trọng số các mẫu mà ht phân loại sai, giảm trọng số các mẫu mà ht phân

loại đúng. Bằng cách này, trọng số của mẫu phản ánh được mức độ khó nhận dạng

của mẫu đó và ht+1 sẽ ưu tiên học cách phân loại những mẫu này.

Vòng lặp xây dựng strong classifier sẽ dừng lại sau T lần lặp. Trong thực tế

cài đặt (thư viện OpenCV của Intel), người ta ít sử dụng giá trị T vì không có công

thức nào đảm bảo tính được giá trị T tối ưu cho quá trình huấn luyện. Thay vào đó,

người ta sử dụng giá trị max false positive hay max false alarm (tỉ lệ nhận dạng sai

tối đa các mẫu background). Tỉ lệ này của bộ phân loại cần xây dựng không được

phép vượt quá giá trị này. Khi đó, qua các lần lặp, false alarm của strong classifier

Ht(x) xây dựng được (tại lần lặp thứ t) sẽ giảm dần, và vòng lặp kết thúc khi tỉ lệ

này thấp hơn max false alarm.

30

1.7. Đặc trưng Haar wavelet

Một trong những phương pháp phát hiện mặt người hiệu quả hiện nay là phát

hiện mặt người sử dụng đặc trưng Haar dựa trên bộ phân loại tầng được để xuất bởi

Paul Viola và Michael Jones [4]. Đây là một phương pháp học máy dựa trên cách

tiếp cận sử dụng chức năng tầng được huấn luyện bởi cách ảnh đúng (Positive) và

ảnh sai (Negative) và sau đó dùng để phát hiện các đối tượng ở các ảnh khác.

Ở giai đoạn đầu tiên, thuật toán cần một số lượng lớn các ảnh đúng (các ảnh

khuôn mặt người) và các ảnh sai (ảnh không có khuôn mặt người) để huấn luyện

cho việc phân loại. Sau đó trích chọn các đặc trưng từ tập đặc điểm rất lớn. Để làm

điều này, các đặc trưng Haar được sử dụng. Mỗi đặc trưng là một giá trị đơn được

tính toán bằng cách đem tổng các điểm ảnh trong vùng đen trừ tổng các điểm ảnh ở

vùng trắng.

Bây giờ tất cả các kích thước và vị trí có thể của từng nhân sẽ được dùng để

tính toán các đặc trưng. Với mỗi đặc trưng, chúng ta tính tổng của các điểm ảnh

vùng đen và vùng trắng. Để giải quyết điều này chúng ta tạo ra các ảnh tích phân.

Điều này làm đơn giản hóa việc tính tổng các điểm ảnh và làm gia tăng tốc độ tính

toán.

Trong số tất cả các đặc trưng được tính toán, hầu hết chúng là không thích

hợp. Dòng đầu tiên đưa ra 2 đặc trưng tốt. Đặc trưng đầu tiên được lựa chọn tập

trung vào thuộc tính của vùng mắt thường tối hơn vùng mũi và má. Đặc trưng thứ 2

được lựa chọn lại dựa trên thuộc tính vùng mắt thường tối hơn vùng sống mũi.

Nhưng các cửa sổ tương tự được áp dụng trên má hay bất cứ chỗ nào khác đều là

không thích hợp. Vậy làm sao các đặc trưng tốt nhất trong hơn 160.000 đặc trưng

được lựa chọn ra một cách hiệu quả. Để cải thiện điều này chúng ta sử dụng

AdaBoost.

Với việc này, chúng ta áp dụng từng đặc trưng và mọi đặc trưng lên tất cả các

ảnh huấn luyện. Với mỗi đặc trưng, chúng ta sẽ tìm ra ngưỡng tốt nhất để phân loại

khuôn mặt là đúng hay sai. Nhưng rõ ràng, sẽ có lỗi hoặc phân loại sai, do đó chúng

ta chọn các đặc trưng với tỷ lệ lỗi nhỏ nhất, điều đó có nghĩa đó là sự phân loại tốt

31

nhất cho ảnh có mặt hay không có mặt. (Tiến trình thực tế không đơn giản như vậy,

mỗi ảnh sẽ được đánh các trọng số như nhau ở giai đoạn đầu. Tuy nhiên sau mỗi lần

phân loại, trọng số của các ảnh bị phân loại sai sẽ được tăng lên. Tiếp theo đó một

lần nữa tiến trình lại được thực hiện, tỷ lệ lỗi mới cũng như các trọng số mới được

tính toán. Tiến trình tiếp tục cho đến khi độ chính xác cần thiết hoặc tỷ lệ lỗi đạt

được con số mong muốn hoặc số lượng đặc trưng tốt được tìm đủ)

Bộ phân loại cuối là tổng các trọng số của các bộ phân loại yếu. Nó được gọi

là yếu vì nó không thể phân loại ảnh 1 mình nhưng khi kết hợp cùng những bộ phân

loại khác nó lại trở thành bộ phân loại mạnh. Thậm chí với 200 đặc trưng có thể

cung cấp sự phát hiện với độ chính xác lên đến 95%. Thiết lập cuối cùng của họ có

khoảng 6000 đặc trưng.

Trong 1 bức ảnh, hầu hết các vùng không phải là vùng mặt người. Điều này

dẫn đến 1 ý tưởng tốt hơn để có 1 phương thức đơn giản kiểm tra xem 1 cửa sổ có

phải vùng mặt người không. Nếu không phải, loại trừ vùng đó ngay, không xử lý lại

lần nữa, thay vào đó sẽ tập trung vào vùng có thể là mặt. Theo cách này, chúng ta

có thể có nhiều thời gian hơn để kiểm tra vùng mặt.

Hình 1. 13. Minh họa tầng phân loại

Định nghĩa tầng của sự phân loại, thay vì áp dụng 6000 đặc trưng trên 1 cửa

sổ, chúng ta sẽ nhóm các đặc trưng vào các giai đoạn khác nhau của sự phân loại và

áp dụng từng cái một. Nếu 1 cửa sổ khi kiểm tra bị sai ở giai đoạn đầu tiên, loại bỏ

cửa sổ đó luôn và chúng ta không cần xem xét đến các đặc trưng còn lại của cửa sổ

32

đó. Nếu vượt qua được giai đoạn đầu tiên, chúng ta sẽ áp dụng giai đoạn 2 với các

đặc trưng kế tiếp và tiếp tục xử lý. Cửa sổ được kiểm tra vượt qua mọi giai đoạn sẽ

là vùng mặt người.

Thiết lập hơn 6000 đặc trưng vào 38 giai đoạn với số lượng đặc trừng là 1, 10,

25, 25, 50 cho 5 giai đoạn đầu tiên. Trung bình 10 đặc trưng trong hơn 6000 đặc

trưng được đánh giá cho 1 cửa sổ con.

Tổng kết chương 1

Trong chương này, chúng tôi trình bày tổng quan về phát hiện mặt người trong

ảnh và video như phát hiện điểm, phép trừ nền, phân vùng, học có giám sát. Tìm

hiểu thuật toán Viola-Johns các vấn đề liên quan, đánh giá thuật toán Viola-Johns,

tìm hiểu về Adaboost, đặc trưng Haar wavelet trong phát hiện mặt người.

Chương 2, đề tài sẽ trình bày đặc trưng HOG, phương pháp phát hiện mặt

người sử dụng đặc trưng HOG, các bước rút trích đặc trưng HOG trong ảnh, chuẩn

hóa vector đặc trưng, tích phân ảnh, chuẩn hóa ánh sáng, sử dụng SVM trong việc

kết hợp với HOG phát hiện mặt người.

33

CHƯƠNG 2. ĐẶC TRƯNG HOG VÀ CÁCH SỬ DỤNG HOG KẾT HỢP VỚI SVM TRONG PHÁT HIỆN MẶT NGƯỜI

2.1. Phương pháp phát hiện mặt người sử dụng HOG.

Phương pháp phát hiện mặt người sử dụng HOG và cách tiếp cận SVM hiện là

một trong các phương pháp phát hiện mặt người phổ biến và thành công nhất hiện

nay.

Các đặc trưng HOG [5] 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.

HOG là một dạng của mô tả đặc trưng. Mô tả đặc trưng có ý nghĩa trong việc

tổng quát hóa đối tượng theo một cách khác diễn tả khác để đối tượng tương đồng

(trong trường hợp này là mặt người) để có thể có các mô tả đặc trưng gần nhất với

nó nhất dù ở trong các điều kiện khác nhau. Với các mô tả đặc trưng công việc phân

loại trở nên dễ dàng hơn vì khi đó việc xem xét sự tương đồng của các đối tượng

được dựa trên việc tính toán khoảng cách giữa các mô tả đặc trưng, thường được

biểu diễn dưới dạng các vector đa chiều.

Hình 2.1. Mô hình phương pháp phát hiện khuôn mặt sử dụng đặc trưng HOG

34

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 hình

ảnh trong 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.

Phương pháp phát hiện mặt người HOG có thể coi là một phương pháp tương

đối đơn giản so với các phương pháp khác. Một trong những nguyên nhân chính của

sự đơn giản này là phương pháp đã sử dụng đặc trưng toàn cục để mô tả mặt người

chứ không thu thập các đặc trưng cục bộ. Nói một cách đơn giản hơn, mỗi một mặt

người trong ảnh sẽ được đại diện bởi một vector đặc trưng.

Phương pháp này sử dụng một cửa sổ phát hiện dạng trượt với kích thước

64x128 di chuyển qua toàn bộ bức ảnh.

Hình 2.2: Minh họa các mẫu cửa sổ tìm kiếm kích thước 64x128

Tại mỗi cửa sổ này, Một mô tả HOG sẽ được tính toán cho cửa sổ tương ứng

bằng cách tạo ra các ô kích thước 8x8 trong cửa sổ tìm kiếm. Trong mỗi ô, các

35

vector gradient cho từng điểm ảnh sẽ được tính toán, vậy nên chúng ta sẽ có 64

vector cho 1 ô kích thước 8x8.

Hình 2.3: Minh họa ô kích thước 8x8 trong cửa sổ tìm kiếm

64 vector này sẽ được đặt vào 9 bin histogram (Khoảng của histogram chạy từ

0-180 và mỗi bin sẽ ứng với 1 vùng giá trị 20 độ). Với mỗi vector gradient, sự đóng

góp vào histogram chính là độ lớn của vector. Độ lớn này sẽ được phân chia vào 2

bin gần nhất. Ví dụ 1 vector có góc là 85 độ thì ¼ độ lớn của nó sẽ được thêm vào

bin 70 và ¾ độ lớn sẽ được thêm vào bin 90.

Hình 2.4: Minh họa cho HOG

Bước tiếp theo để tính toán vector đặc trưng là chuẩn hóa biểu đồ. Chúng ta có

thể nhân 1 lượng bất biến vào các giá trị của điểm ảnh. Điều này có thể dẫn tới việc

gia tăng độ tương phản do các điểm ảnh sáng sẽ sáng hơn nhiều trong khi điểm ảnh

tối chỉ sáng lên 1 chút.

36

Hình 2.5: Minh họa cho việc cộng thêm và nhân thêm vào giá trị của từng điểm ảnh

Ngoài ra điều này còn làm gia tăng độ lớn của vector gradient một lượng

bằng với lượng chúng ta nhân vào từng điểm ảnh nhưng khi đem chia vector đó cho

độ lớn của nó thì kết quả không đổi so với trước khi nhân. Từ đó có thể thấy kết quả

của vector gradient chia cho độ lớn của nó bất biến khi thay đổi điền kiện tương

phản. Chia vector cho độ lớn của nó có thể quy về chuẩn hóa vector tới độ dài đơn

vị vì vector kết quả có độ lớn bằng 1. Chuẩn hóa vector không ảnh hưởng đến

hướng mà chỉ ảnh hưởng đến độ lớn.

Hình 2.6: Minh họa cho sự thay đổi giá trị các vector gradient khi có sự thay đổi về ánh sáng

37

Giá trị của từng bin trong histogram được dựa trên độ lớn của các vector

gradient trong ô 8x8. Nếu mỗi ô được nhân với 1,5 chúng ta sẽ có độ lớn của mỗi

vector sẽ được nhân lên 1,5. Điều này có nghĩa độ lớn các bin cũng sẽ được nhân

lên 1,5. Thông qua chuẩn hóa chúng ta có thể có được sự bất biến trong cách thay

đổi ánh sáng này.

Chúng ta thay vì chuẩn hóa từng histogram riêng biệt của từng ô, các ô này

trước tiên sẽ được nhóm vào các khối và chuẩn hóa dựa trên tât cả histogram trong

khối đó. Các khối ở đây có kích thước 2x2 ô và có 50% bị chồng lấp (Có nghĩa 2

khối có các vùng chung). Việc chuẩn hóa khối này được thực hiện bởi sự móc nối

các histogram trong 4 ô của khối vào 1 vector có 36 thành phần (4 biểu đồ x 9 bin).

Chia vector này cho độ lớn của chúng để thực hiện chuẩn hóa. Ảnh hưởng của sự

chồng lấp các khối là mỗi ô được xuất nhiện nhiều lần trong bộ miêu tả cuối cùng,

nhưng được chuẩn hóa bởi tập khác nhau các ô lân cận.

Hình 2.7: Hình ảnh minh họa cho sự gộp các ô để tạo nên các khối có sự chồng lấp.

Cửa sổ kích thước 64x128 được chia làm 7x15 khối, mỗi khối chứa 4 ô với 9

bin cho từng ô nên sẽ có 36 giá trị cho từng khối. Điều này mang tới kích thước

cuối cùng của vector là 7 x 15 x 4 x 9 = 3780 giá trị.

Vector đặc trưng này sau đó sẽ được huấn luyện SVM (để phân biệt đây là

người hay không phải người). Để phát hiện người với các tỷ lệ khác nhau, hình ảnh

sẽ được tạo các mẫu phụ với các kích thước khác nhau để sau đó từng mẫu phụ sẽ

được tìm kiếm.

38

HOG là đặc trưng được dùng nhiều trong lĩnh vực phát hiện đối tượng. Kỹ

thuật này được đề xuất bởi Bill Triggs và Navel Dalal vào năm 2005 tại viện nghiên

cứu INRIA.

Ý tưởng chính trong đặc trưng HOG là hình dạng và trạng thái của vật có thể

được đặc trưng bằng sự phân bố về gradient và hướng của cạnh. Đặc trưng này

được phát triển dựa trên SIFT, đặc trưng HOG được tính trên cả một vùng. Do sự

biến thiên màu sắc trong vùng là khác nhau, kết quả là mỗi vùng sẽ cho ta một

vector đặc trưng của nó. Vì vậy để có được đặc trưng của toàn bộ cửa sổ (window)

ta phải kết hợp nhiều vùng liên tiếp lại với nhau.

Đặc trưng HOG có một số biến thể thường gặp như: R-HOG, R2-HOG, C-

HOG [6]. Các đặc trưng này khác nhau ở cách phân bố và hình dạng của các ô như

trong hình

Hình 2.8: R-HOG và C-HOG [7]

 R-HOG: mỗi ô có hình dạng là hình chữ nhật

 C-HOG: mỗi ô có dạng hình tròn

2.2. Rút trích đặc trưng HOG trong ảnh

Từ một ảnh cho trước, qua việc rút trích đặc trưng trên ảnh đó cho ta được một

vector đại diện đối tượng đó. [8] Việc rút ra được các vector đặc trưng như vậy giúp

chúng ta chuyển không gian ảnh sang không gian vector để có thể xử lý và tính toán

đơn giản trên máy tính.

Phương pháp tổng quan để tính toán đặc trưng HOG trên một cửa số bất kỳ:

39

 Phân chia cửa sổ (window) cần tính HOG thành nhiều khối (block). Mỗi

khối gồm nhiều ô (cell). Các ô phải có kích thước bằng nhau, số lượng ô trong mỗi

khối là bằng nhau.

 Các khối này được đặt chồng lên nhau, khoảng cách giữa hai khối con liên

tiếp nhau phải là một hằng số

Hình 2.9: Mỗi khối (block) gồm nhiều ô (cell). Trong hình trên ta thấy một khối gồm 9 ô

Hình 2.10: Các khối được xếp chồng lên nhau

 Sau khi đã phân chia cửa sổ cần tính toán HOG như trên. Ta tiến hành rút

trích đặc trưng như sau:

o Tính toán đặc trưng trên từng vùng:

 Tính toán đặc trưng trên từng ô nhỏ (cell)

 Tính toán đặc trưng trên từng khối (block) bằng cách kết hợp

các ô lại với nhau

o Thu thập đặc trưng của các vùng trên ảnh

 Tính và chuẩn hóa vector đặc trưng cho từng block

 Thu thập các đặc trưng HOG cho các cửa sổ

Sau đây là chi tiết thuật toán rút trích đặc trưng HOG [8]. Để minh họa thuật

toán, ta có thể chọn một ví dụ như sau để tính vector đặc trưng HoH và số lượng

40

thành phần của vector đó: giả sử ta có một ảnh với kích thước là 64x128 pixels. Ta

chia ảnh này thành các cell với kích thước 8x8 pixels. Và ta chọn kích thước của

block là 2x2 cell.

 Bước 1: Chuyển ảnh trong không gian RGB sang ảnh dạng GRAY SCALE,

sau đó tiến hành cân bằng histogram trên ảnh GRAY SACLE để giảm đi ảnh hưởng

của sự thay đổi ánh sáng.

 Bước 2: Tính sự biến thiên màu sắc tại tất cả các pixel của ảnh GRAY

] và thu được 2 ảnh gradient-x SCALE theo chiều 𝑋[−1 0 1] và theo chiều Y [

−1 0 1

(đạo hàm theo trục x) và gradient-y (đạo hàm theo trục y) có kích thước bằng kích

thước ảnh GRAY SCALE và cho thấy được sự biến thiên màu sắc nói trên.

 Bước 3: Tiến hành tính góc và hướng biến thiên màu sắc từ 2 ảnh gradient-x

và gradient-y như hình vẽ bên dưới:

Hình 2.11: Tính góc và biên độ theo X-gradient và Y-gradient

Việc lưu trữ chính xác từng giá trị góc (orientation) của từng vị trí (𝑥, 𝑦)

không mang lại nhiều kết quả, do vậy ta sẽ chia không gian góc ra thành các bin.

Việc phân chia bin càng nhỏ sẽ càng làm tăng độ chính xác, thực nghiệm [8] cho

thấy kích thước bin khoảng 200 cho kết quả tốt nhất. Do đó từ 0° - 180° ta chia

thành 9 bin như sau:

[0° - 20°], [21° - 40°] [41° -60°], [61° - 80°], [81° - 100°], [101°- 120°], [121°

- 140°], [141°- 160°], [161° - 180°]

 Bước 4: Ứng với mỗi bin trên ta tiến hành thống kê biên độ (magnitude) tại

từng vị trí. Với mỗi bin, tại vị trí (𝑥, 𝑦) nếu như góc (orientation) thuộc về bin đó thì

41

giá trị của bin đó tại vị trí (𝑥, 𝑦) bằng giá trị biên độ (magnitude), ngược lại giá trị

bin tại vị trí (𝑥, 𝑦) bằng 0.

 Bước 5: Tính toán vector đặc trưng cho từng cell (8x8). Vector đặc trưng của

mỗi cell sẽ gồm 9 thành phần tương ứng với 9 bin, và giá trị tại thành phần 𝑖 bằng

tổng giá trị của các điểm trong bin 𝑖 mà có tọa độ nằm trong cell đó.

 Bước 6: Tính toán vector đặc trưng cho từng block (16x16). Ta chỉ cần ghép

các vector đặc trưng của từng cell trong block lại với nhau để được vector đặc trưng

của một block và chuẩn hóa lại vector đặc trưng của block này. Số thành phần của

vector đặc trưng tại mỗi khối được tính theo công thức:

𝑆𝑖𝑧𝑒𝑓𝑒𝑎𝑡𝑢𝑟𝑒/𝑏𝑙𝑜𝑐𝑘 = 𝑛𝑐𝑒𝑙𝑙 × 𝑆𝑖𝑧𝑒𝑓𝑒𝑎𝑡𝑢𝑟𝑒/𝑐𝑒𝑙𝑙

Trong đó: 𝑆𝑖𝑧𝑒𝑓𝑒𝑎𝑡𝑢𝑟𝑒/𝑏𝑙𝑜𝑐𝑘 là đặc trưng trong block, 𝑛𝑐𝑒𝑙𝑙 là số cell trong một

block, 𝑆𝑖𝑧𝑒𝑓𝑒𝑎𝑡𝑢𝑟𝑒/𝑐𝑒𝑙𝑙 là số feature trong một cell. Với giả thiết mỗi cell có kích

thước 8x8 pixels, mỗi block có kích thước 2x2 cells (16x16 pixels), không gian

hướng biến thiên xét trong miền miền từ 00 - 1800 và được chia thành 9 bin thì số

đặc trưng trong mỗi khối sẽ được tính bằng 4x9 = 36 thành phần.

 Bước 7: Tính toán vector đặc trưng cho toàn bộ ảnh (64x128). Ta chỉ cần

ghép các vector đặc trưng của từng block lại với nhau để được vector đặc trưng của

các window. Trong đó, một cửa sổ (Window) được tạo bởi các khối xếp gối nhau

overlapping. Đặc trưng của một cửa sổ sẽ được tính bằng cách ghép các vector đặc

trưng của từng block tạo lên cửa sổ đó. số thành phần đặc trưng của mỗi cửa sổ

được xác định như sau:

+ 1) 𝑛𝑏𝑙𝑜𝑐𝑘/𝑤𝑖𝑛𝑑𝑜𝑤 = (

+ 1) × ( 𝑊𝑤𝑖𝑛𝑑𝑜𝑤 − 𝑊𝑏𝑙𝑜𝑐𝑘 × 𝑊𝑐𝑒𝑙𝑙 𝑊𝑐𝑒𝑙𝑙 𝐻𝑤𝑖𝑛𝑑𝑜𝑤 − 𝐻𝑏𝑙𝑜𝑐𝑘 × 𝐻𝑐𝑒𝑙𝑙 𝐻𝑐𝑒𝑙𝑙

𝑆𝑖𝑧𝑒𝑓𝑒𝑎𝑡𝑢𝑟𝑒/𝑤𝑖𝑛𝑑𝑜𝑤 = 𝑛𝑏𝑙𝑜𝑐𝑘/𝑤𝑖𝑛𝑑𝑜𝑤 × 𝑆𝑖𝑧𝑒𝑓𝑒𝑎𝑡𝑢𝑟𝑒/𝑏𝑙𝑜𝑐𝑘

- Trong đó: 𝑊𝑤𝑖𝑛𝑑𝑜𝑤 𝑊𝑏𝑙𝑜𝑐𝑘 𝑊𝑐𝑒𝑙𝑙 lần lượt là chiều rộng của window, block

và cell (tính theo đơn vị pixel); 𝐻𝑤𝑖𝑛𝑑𝑜𝑤 𝐻𝑏𝑙𝑜𝑐𝑘 𝐻𝑐𝑒𝑙𝑙 lần lượt là chiều cao của

window, block và cell (tính theo đơn vị pixel); 𝑛𝑏𝑙𝑜𝑐𝑘/𝑤𝑖𝑛𝑑𝑜𝑤 là số block trong một

42

cửa sổ, 𝑆𝑖𝑧𝑒𝑓𝑒𝑎𝑡𝑢𝑟𝑒/𝑤𝑖𝑛𝑑𝑜𝑤 là số đặc trưng trong một cửa sổ. Ở bước xử lý cuối

cùng, toàn bộ vector đặc trưng thu được trên mỗi cứa sổ sẽ được sử dụng làm đầu

vào của bộ phân lớp tuyến tính SVM. [9]

Lưu ý rằng các block không đặt tách biệt nhau mà gối lên nhau, cách nhau một

khoảng bằng kích thước của cell theo mỗi chiều (hoặc bằng phân nửa kích thước

của cell). Như vậy vector đặc trưng của window = số block trong window*36=((64-

16)/8+1)*((128-16)/8+1)*36 = 7*15*36=3780 thành phần.

 Bước 8: Sau cùng ta chuẩn hóa lại vector đặc trưng của cả window.

Hình 2.12: Các bước rút trích đặc trưng HOG [10]

2.3. Chuẩn hóa vector đặc trưng cho từng block

Để chuẩn hóa vector đặc trưng cho cả window, ta chuẩn hóa đặc trưng cho

từng vector của từng block. Ta sử dụng các phương pháp sau để chuẩn hóa vector

𝑣

đặc trưng của từng block. [7]

2+𝑒2

√‖𝑣‖2

 L2-norm: 𝑓 =

𝑣 (‖𝑣‖1+𝑒)

 L1-norm: 𝑓 =

43

𝑣 (‖𝑣‖1+𝑒)

 L1-sqrt: 𝑓 = √

Trong đó:

 𝑣: vector đặc trưng ban đầu của một block (chưa chuẩn hóa).

 ‖𝑣‖k là k-norm của 𝑣 với 𝑘=1,2

 𝑒: Hằng số nhỏ

Theo Dalal và Triggs, L2-norm và L1-sqrt cho kết quả tương tự. Trong khi đó

L1-norm cho kết quả kém hơn. Tuy vậy việc chuẩn hóa bằng một trong các phương

pháp trên vẫn cho kết quả tốt hơn đối với những vector không chuẩn hóa.

2.4. Integral Image, công thức đệ quy tính Integral Image

 Integral Image: Từ bước 5, 6, 7 ta nhận thấy là ta cần tính đặc trưng cho

từng cell rất nhiều lần, do vậy ở đây có thể sử dụng kỹ thuật integral image để làm

tăng tốc độ tính toán.

Hình 2.13: Integral Image [11]

Ảnh Integral là ảnh có tính chất sau: giá trị của pixel tại vị trí (𝑥, 𝑦) bất kỳ

trong ảnh Integral bằng với tổng số các pixel thuộc hình chữ nhật được tạo bởi điểm

góc trái trên cùng của ảnh (0,0) và điểm (𝑥, 𝑦) đang xét. Công thức tính integral

image:

𝑥′≤𝑥,𝑦′≤𝑦′

𝑖𝑖(𝑥, 𝑦) = ∑ 𝑖(𝑥′, 𝑦′)

Trong đó:

 𝑖: ảnh ban đầu

 𝑖𝑖: ảnh integral của 𝑖

Ảnh integral của một ảnh cho trước được tính theo công thức trên. Như áp

dụng integral image vào để tính giá trị tại mỗi bin của vector đặc trưng của từng cell

44

rất nhanh chóng. Giả sử ta cần tính giá trị vector đặc trưng của cell D (như trên

hình) tại thành phần 𝑖, khi đó ta chỉ cần lấy ảnh integral image của anh bin 𝑖 đã tính

ở trên, ta thu được ảnh 𝑖𝑖. Khi đó giá trị cần tính sẽ bằng:

𝑉𝑖 = 𝑖𝑖(𝑥1, 𝑥1) + 𝑖𝑖(𝑥4, 𝑥4) − 𝑖𝑖(𝑥2, 𝑥2) − 𝑖𝑖(𝑥3, 𝑥3)

Lưu ý rằng ta chỉ cần tính integral image duy nhất 1 lần và dùng nó để tính

cho toàn bộ các cell. Ưu điểm của cách tính này là ta chỉ cần biết giá trị ảnh Integral

của bốn góc hình chữ nhật là có thể dễ dàng tính được vector của hình chữ nhật đó.

 Công thức đệ quy tính Integral Image: Để tính nhanh Integral Image ta có

thể dùng công thức đệ quy sau [11] [5]:

𝑠(𝑥, 𝑦) = 𝑠(𝑥, 𝑦 − 1) + 𝑖(𝑥, 𝑦)

𝑖𝑖(𝑥, 𝑦) = 𝑖𝑖(𝑥 − 1, 𝑦) + 𝑠(𝑥, 𝑦)

Với giá trị khởi tạo: 𝑠(𝑥, −1) = 0

𝑖𝑖(−1, 𝑦) = 0

Trong đó:

𝑖: ảnh ban đầu

𝑖𝑖: ảnh integral của 𝑖

𝑠: giá trị trung gian

Ta có thể hiểu công thức đệ quy trên như sau, để tính 𝑖𝑖 ta sẽ tính theo từng

dòng và tính dòng tiếp theo ta sẽ dùng kết quả của dòng trước. Như vậy có thể thấy

độ phức tạp của việc tính integral image là 𝑂(𝑛)

2.5. Chuẩn hóa ánh sáng với bộ lọc Retinal filter

Bộ lọc Retinal filter ban đầu được phát triển như một bộ lọc ảnh thông thường

dựa vào việc mô phỏng các bước trong hệ thống nhận dạng hình ảnh của con người

[12]. Sau đó nó được áp dụng cho bài toán nhận dạng mặt với mục đích chuẩn hóa

ánh sáng ở bước tiền xử lý và đã chứng tỏ được tính hiệu quả của mình.

Về cơ bản bộ lọc thực hiện mô phỏng hoạt động của hai lớp chính của hệ

thống thị giác của con người là lớp Photoreceptor và Outer Plexiform bằng cách áp

dụng liên tiếp hai hàm phi tuyến, bộ lọc DoG và một hàm cắt hậu xử lý như được

minh họa trong hình 2.14.

45

Hình 2.14 Các bước trong bộ lọc Retinal filter

Hàm Naka-Rushton [13] được sử dụng để tăng cường độ tương phản cục bộ

của bức ảnh theo công thức sau:

𝑌 = 𝑋 𝑋 + 𝑋0

Trong đó X là ảnh input, X0 là tác nhân điều chỉnh và có giá trị thay đổi với

mỗi điểm ảnh còn Y là ảnh output.

Từ ảnh input I ban đầu, bộ lọc Retinal filter sử dụng hai bộ lọc thông thấp liên

tiếp với công thức (xuất phát từ công thức của hàm Naka-Rushton ở trên) như sau:

𝐼𝑙𝑎1 = (max(𝐼) + 𝐹1(𝑝))

𝐼𝑙𝑎2 = (max(𝐼𝑙𝑎1) + 𝐹2(𝑝)) 𝐼(𝑝) 𝐼(𝑝) + 𝐹1(𝑝) 𝐼𝑙𝑎1(𝑝) 𝐼𝑙𝑎1(𝑝) + 𝐹2(𝑝)

Trong đó các biểu thức (max(I)+F1(p)) và (max(Ila1)+F2(p)) đóng vai trò là các

nhân tố chuẩn hóa và hàm max là hàm trả về giá trị cường độ sáng lớn nhất của ảnh.

Hai biểu thức F1(p) và F2(p) được tính theo các công thức sau:

𝐹1(𝑝)) = 𝐼(𝑝) ∗ 𝐺1 +

𝐹2(𝑝)) = 𝐼𝑙𝑎1(𝑝) ∗ 𝐺2 + 𝐼̅ 2 𝐼𝑙𝑎1̅̅̅̅̅ 2

Ký hiệu ‘*’ là ký hiệu của phép nhân chập, ̅ là ký hiệu của hàm tính trung

bình, G1, G2 là các bộ lọc Gaussian tương ứng với hai độ lệch chuẩn 𝜎1 và 𝜎2

𝑥2+𝑦2 2𝜎1

𝑥2+𝑦2 2 , 2𝜎2

như sau:

2 , và 𝐺2(𝑥, 𝑦) =

2 𝑒

2 𝑒

1 2𝜋𝜎1

1 2𝜋𝜎2

𝐺1(𝑥, 𝑦) =

46

Ảnh Ila2 sau đó được xử lý bằng một bộ lọc DoG để cải thiện các thuộc tính

sắc nét như sau:

𝐼𝑑𝑜𝑔 = 𝐷𝑜𝐺 ∗ 𝐼𝑙𝑎2

𝑥2+𝑦2 2 2𝜎𝑝ℎ

𝑥2+𝑦2 2 2𝜎𝐻

trong đó DoG được tính theo công thức:

2 𝑒

2 𝑒

− 𝐷𝑜𝐺1 = 1 2𝜋𝜎𝐻 1 2𝜋𝜎𝑝ℎ

Với 𝜎𝑃ℎ = 0.5 và 𝜎𝐻 = 4. Vì bộ lọc DoG làm giảm độ tương phản toàn cục của

bức ảnh nhận được nên một bước cắt bỏ các giá trị quá lớn sẽ được thực hiện sau

khi ảnh được chuẩn hóa để có giá trị trung bình bằng 0 như sau:

= 𝐼𝑛𝑜𝑟𝑚 = 𝐼𝑑𝑜𝑔 − 𝐼𝑑𝑜𝑔̅̅̅̅̅ 𝑠𝑡𝑑(𝐼𝑑𝑜𝑔) 𝐼𝑑𝑜𝑔 𝑠𝑡𝑑(𝐼𝑑𝑜𝑔)

𝐼𝑟𝑒𝑠𝑢𝑙𝑡(𝑝) = { max (𝑇ℎ, |𝐼𝑛𝑜𝑟𝑚(𝑝)|𝑛ế𝑢 𝐼𝑛𝑜𝑟𝑚(𝑝) ≥ 0 −max (𝑇ℎ, |𝐼𝑛𝑜𝑟𝑚(𝑝)|𝑛ế𝑢 𝑛𝑔ượ𝑐 𝑙ạ𝑖

Kết quả của bộ lọc Retina filter trong việc chuẩn hóa ánh sáng của các ảnh mặt

được thu nhận trong các điều kiện sáng khác nhau có thể thấy trong hình minh họa

2.15. Có thể thấy rằng kết quả của bộ lọc này khá tốt và đạt được 2 mục đích:

+ Đưa các bức ảnh mặt có điều kiện ánh sáng khác nhau về cùng một vùng giá

trị khá gần nhau.

+ Tăng cường các đường nét quan trọng của khuôn mặt khi áp dụng cho bài

toán nhận dạng mặt người, chẳng hạn như lông mày, mắt, mũi và mồm.

Hình 2.15: Kết quả của việc tiền xử lý với bộ lọc Retina filter

47

2.6. Phương pháp phân lớp SVM

SVM (Support Vector Machine) là một khái niệm trong thống kê và khoa học

máy tính cho một tập hợp các phương pháp học có giám sát liên quan đến nhau

để phân loại và phân tích hồi quy.

SVM là một thuật toán phân loại nhị phân, SVM nhận dữ liệu vào và phân loại

chúng vào hai lớp khác nhau. Với một bộ các ví dụ luyện tập thuộc hai thể loại cho

trước, thuật toán luyện tập SVM xây dựng một mô hình SVM để phân loại các ví dụ

khác vào hai thể loại đó.

Hàm mục tiêu của một máy phân lớp SVM nhị phân có thể được phát biểu

như sau: [15]

𝑔(𝑥) = 𝑤. 𝛷(𝑥) + 𝑏 (4)

Trong đó, véc tơ đầu vào 𝑥 ∈ 𝑅𝐷 , w là véc tơ chuẩn của siêu phẳng phân cách

trong không gian đặc trưng được sinh ra từ ánh xạ Φ(x): 𝑅𝐷 – 𝑅𝐹 (F > D, Φ(x) có

thể tuyến tính hoặc phi tuyến) và b là độ lệch so với gốc tọa độ. Ban đầu, SVM

được thiết kế cho bài toán phân lớp nhị phân, do đó dấu của g(x) cho biết véc tơ x

thuộc lớp +1 hay lớp -1.

Cho tập mẫu {(𝑥1, 𝑦1,),...,( 𝑥𝑁,, 𝑦𝑁,)} trong đó xi∈𝑅𝐷 và yi∈{±1}, mục tiêu của phương pháp phân lớp SVM là tìm một siêu phẳng phân cách sao cho khoảng

cách lề (margin) giữa hai lớp đạt cực đại (Hình 2.16).

Hình 2. 17. Siêu phẳng tách với khoảng cách lề cực đại

48

2

2

𝑊.𝑊

‖𝑤‖2 Để nới lỏng điều kiện phân lớp, thêm vào một số yếu tố cân bằng và việc huấn luyện SVM chính là giải bài toán tối

Khoảng cách lề giữa hai lớp là =

1

ưu có ràng buộc:

𝑁 𝑖=1

2

(5) 𝑤. 𝑤 + 𝐶 ∑ 𝜉𝑖 min 𝑤,𝑏

Sao cho

𝑦𝑖(𝑤. 𝛷(𝑥𝑖) + 𝑏) ≥ 1 − 𝜉𝑖

𝜉𝑖 ≥ 0, ∀i, trong đó C là tham số nới lỏng điều kiện phân lớp [15]

Thay vì giải bài toán (5), ta giải bài toán đối ngẫu của nó bằng cách giải bài

1

toán qui hoạch toàn phương (QP-Quadratic programming):

2

𝛼𝑇𝐻𝛼) (6) 𝛼1 − max ( 𝛼

𝑁 𝑖=1

= 0

thỏa mãn: 0 ≤ 𝛼 ≤ 𝐶, ∀𝑖 và ∑ 𝛼𝑖𝑦𝑖 trong đó 𝛼 = [𝛼1, . . . , 𝛼𝑁] 𝑇và H là ma trận kích thước N×N được gọi là ma

trận nhân (kernel matrix) với mỗi phần tử 𝐻(𝑖, 𝑗) = 𝑦𝑖𝑦𝑗𝛷(𝑥𝑖). 𝛷(𝑥𝑗).

Giải bài toán QP (6) ta thu được:

𝑁 𝑖=1

(7) 𝑤 = ∑ 𝛼𝑖𝑦𝑖𝛷(𝑥𝑖)

Mỗi mẫu huấn luyện xi tương ứng với một hệ số Lagrange 𝛼𝑖. Sau khi huấn

luyện, các mẫu có 𝛼𝑖>0 được gọi là véc tơ hỗ trợ.

Thế (7) vào (4), ta có :

𝑁 𝑔(𝑥) = ∑ 𝛼𝑖𝑦𝑖𝛷(𝑥𝑖) 𝑖=1

. 𝛷(𝑥) + 𝑏 (8)

Giả sử 𝛷(𝑥𝑖). 𝛷(𝑥𝑗) = 𝐾(𝑥𝑖, 𝑥𝑗). Nghĩa là, tích vô hướng trong không gian

đặc trưng tương đương với một hàm nhân K của không gian đầu vào. Vì vậy, ta

không cần phải tính trực tiếp các giá trị Φ(𝑥𝑖), Φ(𝑥𝑗) mà chỉ cần tính tích vô hướng

<Φ(𝑥𝑖).Φ(𝑥𝑗)> gián tiếp thông qua hàm nhân K(𝑥𝑖, 𝑥𝑗). Nếu sử dụng hàm nhân là

hàm tuyến tính thì SVM được gọi là SVM tuyến tính, ngược lại thì gọi là SVM phi

tuyến. Như vậy, hàm mục tiêu cho bài toán phân lớp SVM nhị phân có dạng:

𝑁 𝑔(𝑥) = ∑ 𝛼𝑖𝑦𝑖𝐾( 𝑖=1

(9) 𝑥𝑖, 𝑥) + 𝑏

49

Chỉ có các véc tơ hỗ trợ tham gia vào việc xây dựng siêu phẳng phân cách, do

đó một mẫu x sẽ được phân lớp theo hàm quyết định:

𝑁𝑆𝑉 𝑖=1

(10) 𝑓(𝑥) = 𝑠𝑔𝑛(∑ 𝛼𝑖𝑦𝑖𝐾 (𝑥𝑖, 𝑥) + 𝑏)

Trong đó, NSV là số véc tơ hỗ trợ.

 Các bước để phát hiện mặt người với đăc trưng HOG

1. Chuẩn bị P mẫu là ảnh mặt người và trích xuất các vector đặc trưng HOG từ

các bức ảnh này

2. Chuẩn bị N mẫu là ảnh không phải là ảnh mặt người (N rất lớn so với P) và

trích xuất các vector HOG từ các bức ảnh này

3. Sử dụng bộ phân loại SVM tuyến tính để học với các vector của các mẫu

đúng (Positive) và mẫu sai (Negative) đã chuẩn bị

4. Đối với mỗi bức ảnh trong bộ ảnh mẫu đúng, sử dụng một cửa sổ trượt di

chuyển qua tất cả các vị trí có thể của ảnh input. Tại mỗi vị trí của cửa sổ trượt tính

vector HOG của cửa sổ và đưa vào bộ phân lớp. Nếu bộ phân lớp phân lớp sai một

cửa sổ là ảnh mặt thì ghi lại vector tương ứng cùng với xác xuất phân lớp

5. Lấy các mẫu nhận dạng sai ở bước 4 xắp sếp chúng theo mức nhận dạng sai

và cho bộ phân lớp học lại sử dụng các mẫu sai này

6. Áp dụng bộ phân lớp đã được học lại với các ảnh cần phát hiện mặt người

Tổng kết chương 2

Trong chương này, chúng tôi đã trình bày đặc trưng HOG, phương pháp phát

hiện mặt người sử dụng đặc trưng HOG, các bước rút trích đặc trưng HOG trong

ảnh, chuẩn hóa vector đặc trưng cho từng block, tích phân ảnh Integral Image,

chuẩn hóa ánh sáng với bộ lọc Retinal filter, phương pháp phân lớp SVM trong việc

kết hợp với HOG phát hiện mặt người.

Chương 3, luận văn sẽ trình bày xây dựng chương trình, môi trường thử

nghiệm, dữ liệu thử nghiệm, kết quả thử nghiệm và đánh giá kết quả. Giao diện và

hoạt động của chương trình.

50

CHƯƠNG 3. XÂY DỰNG CHƯƠNG TRÌNH, THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ

3.1. Môi trường thử nghiệm

Chương trình được cài đặt trong môi trường Visual Studio, sử dụng các thư

viện C++ cho việc biểu diễn, lưu trữ và thao tác dữ liệu, thư viện opencv để thực

hiện các thao tác xứ lý ảnh cơ bản, thư viện Scikit-Leam cho việc thử nghiệm các

mô hình học máy (mạng neural, mô hình SVM...). Chương trình được thử nghiệm

trên hệ điều hành Windows 10, máy PC tốc độ 2.4GHz, bộ nhớ 4GB.

3.2. Dữ liệu thử nghiệm

Hiệu quả của mô hình nhận dạng được đánh giá trên các bộ cơ sở dữ liệu

chuẩn (chứa các khung hình được thu nhận từ các thiết bị camera, webcam khác

nhau), được công bố dùng chung cho các nhóm nghiên cứu trên thế giới, được cung

cấp tại http://www.face-rec.org/databases, Đây là các CSDL dùng chung cho các

nhóm nghiên cứu. Thông tin của CSDL mẫu được mô tả cụ thể như sau:

3.2.1. Cơ sở dữ liệu UOF

Được cung cấp bởi trường đại học Essex của Anh (University of Essex, UK),

bao gồm 4 tập dữ liệu: faces94, faces95, faces96 và grimace. Ảnh trong cơ sở dữ

liệu là ảnh màu 24 bít định dạng dạng JPEG. Tập dữ liệu chứa một tập hợp các hình

ảnh khuôn mặt gôm 395 cá nhân (cả nam và nữ) với 20 ảnh cho mỗi cá nhân, tổng

cộng có 7900 hình ảnh. Tất cả khuôn mặt chủ yếu được thực hiện bởi các sinh viên

đại học năm đầu tiên có độ tuổi từ 18 đến 20 và một số người lớn tuổi, một số cá

nhân đeo kính và có râu, thuộc nhiều chủng tộc khác nhau (hình 3.1).

51

Hình 3.1: Cơ sở dữ liệu mẫu UOF

3.2.2. Cơ sở dữ liệu FEI

Bao gồm các tập dữ liệu: Fei_Pl, Fei_P2 và Fei_P3, với các ảnh khuôn mặt

được chụp từ tháng 6 năm 2005 đến tháng 3 năm 2006 tại Phòng thí nghiệm Trí tuệ

nhân tạo FEI ở Paulo, Brazil. Bao gồm 200 cá nhân (100 nam, 100 nữ), với 14 ảnh

cho mỗi cá nhân, tổng cộng 2800 hình ảnh. Tất cả khuôn mặt chủ yếu được thực

hiện bởi các sinh viên và nhân viên của FEI, có độ tuổi từ 19 đến 40, với ngoại

hình, kiểu tóc và đồ trang điểm khác biệt, đều được chụp trên nền ảnh mầu trắng, ở

vị trí đứng thẳng đứng và quay vòng lần lượt tới 1800. Kích thước của mỗi ảnh là

640x480 pixel (hình 3.2).

Hình 3.2: Cơ sở dữ liệu mẫu FEI

3.2.3. Cơ sở dữ liệu JAFFE

Chứa các khuôn mặt nữ Nhật Bản, được chụp tại khoa tâm lý học của Đại học

Kyushu, Nhật Bản, bao gồm 213 hình ảnh của 7 biểu hiện khuôn mặt (6 biểu hiện

52

cảm xúc cơ bản trên khuôn mặt + 1 trung tính), được chụp bởi 10 người phụ nữ

Nhật Bản (Hình 3.3).

Hình 3.3: Cơ sở dữ liệu mẫu JAFFE

3.2.4. Cơ sở dữ liệu LFW

Bao gồm những khuôn mặt được gắn nhãn trong tự nhiên. Bộ dữ liệu gồm

13233 hình ảnh khuôn mặt của 5749 người được thu thập từ web. Mỗi khuôn mặt

được gắn nhãn với tên của người đó, trong đó 1680 người có từ 2 hình ảnh khác biệt

trở lên (hình 3.28).

Hình 3.4: Cơ sở dữ liệu mẫu LFW

3.3. Kết quả thử nghiệm

Quá trình đánh giá thực nghiệm được chia thành 2 công đoạn: Đánh giá hiệu

quả của mô hình phát hiện khuôn mặt người trên khung hình webcam và đánh giá

53

độ chính xác nhận dạng. Hiệu quả của mô hình phát hiện khuôn mặt được đánh giá

dựa trên các độ đo được định nghĩa cụ thể trong phần sau đây:

■ Độ chính xác phát hiện khuôn mặt DP (Detection Precision):

DP = Số vùng khuôn mặt phát hiện đúng trên tổng số khuôn mặt cần phát hiện

■ Khả năng tìm hết DR (Detection Recall):

DR = Số vùng khuôn mặt phát hiện đúng /(Số vùng khuôn mặt phát hiện đúng

+ Số vùng không được phát hiện)

■ Độ trung bình điều hòa DM (Dectection F-Measure):

DM = (2xFDP*FDR)/(FDP+FDR)

Bên cạnh đó, để các kết quả thực nghiệm chính xác và trực quan, trong quá

trình thử nghiệm, chúng tôi đã so sánh hiệu quả của mô hình phát hiện khuôn mặt

bằng đặc trưng HOG với mô hình phát hiện khuôn mặt sử dụng đặc trưng Haar

wavelet và bộ phân lớp AdaBoost (được quy ước gọi tên là phương pháp Haar

wavelet AdaBoost) [2]. Các kết quả thực nghiệm được mô tà cụ thể trên Bảng 3.1.

Dữ liệu Sử dụng đặc trưng HOG Đặc trưng Harr wavelet

thử Số mẫu DP DR DM DP DR DM nghiệm

Faces96 3040 98,3 99,1 98,7 93,6 94,4 94,2

FEI_P1 700 98,33 98,43 98,43 80,71 80,73 80,71

FEI_P2 700 99,14 99,14 99,14 83,2 83,11 84

FEI_P3 700 97,43 97,43 97,43 79,43 79,5 79,45

JAFFE 213 100 100 100 100 100 100

93,27 93,51 93,3 LFW 13233 99,74 99,74 99,74

Bảng 3.1: Đánh giá hiệu quả phát hiện khuôn mặt

Hiệu quả của mô hình phát hiện được đánh giá dựa trên độ chính xác phát

hiện, được định nghĩa cụ thể như sau:

R_Precision = số khuôn mặt phát hiện đúng/Tổng số khuôn mặt cần phát hiện.

54

Quá trình đánh giá thực nghiệm được thực hiện lần lượt trên từng tập dữ liệu.

Mỗi tập dữ liệu được chia ngẫu nhiên thành 2 tập training và testing theo tỷ lệ 90/10

(90% số mẫu để huấn luyện mô hình và 10% số mẫu còn lại để kiểm thử).

Việc huấn luyện mô hình gồm 2 công đoạn: Huấn luyện bộ trích chọn đặc

trưng (mô hình mạng neural học sâu FaceNet) và huấn luyện bộ phân lớp SVM.

Quy trình huấn luyện được tiến hành cụ thể như sau: Từ tập mẫu huấn luyện đầu

vào, trước tiên bộ phát hiện khuôn mặt sẽ tiến hành tìm kiếm, định vị và crop vùng

ảnh khuôn mặt trên mỗi khung hình. Toàn bộ tập ảnh khuôn mặt crop sau đó sẽ

được sử dụng làm đầu vào để huấn luyện mô hình trích chọn đặc trưng. Tập đặc

trưng đầu ra của mô hình trích chọn đặc trưng sẽ được sử dụng làm đầu vào để huấn

luyện mô hình phân lớp SVM. Các kết quả thực nghiệm được mô tả cụ thể trên

Bảng 3 hiệu quả của phương pháp sử dụng đăc trưng HOG

R_Precision (%) Dữ liệu thử Số khuôn mặt sử dụng đặc nghiệm cần phát hiện trưng HOG

Faces96 3040 98,03

FEI_P1 700 98,16

FEI_P2 700 98,74

FEI_P3 700 97,55

JAFFE 213 99,04

LFW 13233 95,26

Bảng 3.2: Đánh giá độ chính xác phát hiện mặt người

Từ các kết quả thực nghiệm cho thấy phương pháp sử dụng HOG đạt được độ

chính xác cao (trên 95%) trên tất cả các tập dữ liệu thử nghiệm.

 Giao diện và hoạt động của chương trình

Chương trình thực nghiệm được cài đặt trong môi trường Visual Studio, sử

dụng các thư viện C++ cho việc biểu diễn, lưu trữ và thao tác dữ liệu, thư viện

opencv để thực hiện các thao tác xứ lý ảnh cơ bản

55

- Giao diện khi chương trình bắt đầu:

Hình 3.5: Giao diện chương trình

- Giao diện khi thực hiện chạy chương trình phát hiện khuôn mặt:

Hình 3.6: Giao diện chương trình khi thực hiện phát hiện được khuôn mặt

56

KẾT LUẬN

Luận văn đề xuất sử dụng đặc trưng HOG kết hợp với SVM trong việc phát

hiện mặt người từ ảnh và video. Trong đó tập trung chính vào công đoạn phát hiện

mặt người trên video. Hiệu quả của đặc trưng đã được đánh giá trên các tập dữ liệu

chuẩn, dùng chung cho cộng đồng nghiên cứu về phát hiện và nhận dạng khuôn mặt

người trên thế giới bao gồm cơ sở dữ liệu UOF, FEI, JAFFE và LFW.

Quá trình đánh giá thực nghiệm được chia thành 2 bước, trong đó hiệu quả là

phương pháp phát hiện khuôn mặt được đánh giá dựa trên 3 độ đo là độ chính xác

(Precision), khả năng tìm hết (recall) và độ đo F-measure, hiệu quả của mô hình

phát hiện khuôn mặt được đánh giá dựa trên độ chính xác phát hiện.

Sau một thời gian tìm hiểu nghiên cứu, luận văn đã trình bày được các vấn đề:

- Nghiên cứu Haar wavelet và Adaboost;

- Nghiên cứu thuật toán Viola - Johns;

- Nghiên cứu đặc trưng HOG;

- Nghiên cứu cách sử dụng đặc trưng HOG với SVM trong phát hiện mặt

người.

- Xây dựng bộ dữ liệu khuôn mặt để thử nghiệm;

- Thực hiện huấn luyện và test;

- Phân tích, đánh giá kết quả thu được; so sánh kết quả thu được với kết quả

của một số phương pháp nhận diện đã được công bố.

Hướng phát triển của đề tài:

Các kết quả thực nghiệm cho thấy mô hình đạt được độ chính xác cao và ổn

định trong môi trường thực tế, có thể ứng dụng mô hình để giải quyết các bài toán

ứng dụng điển hình như hệ thống camera giám sát cho phép phát hiện, nhận dạng và

cảnh báo các đối tượng lạ mặt đột nhập tại các khu vực an ninh, nhà ga, sân bay, các

cơ quan chính phủ, tòa nhà, chung cư, tra cứu thông tin tội phạm, chấm công, điểm

danh tự động tại các khu công nghiệp, nhà máy, công trường, lớp học… cải thiện

chất lượng của các thuật toán giao tiếp người-máy…

57

Một lần nữa học viên xin được cảm ơn Thầy giáo TS. Nguyễn Toàn Thắng

đã tận tình giúp đỡ, hướng dẫn trong thời gian thực hiện đề tài, cảm ơn sự giúp đỡ

của gia đình, bạn bè và các đồng nghiệp trong thời gian qua.

Thái Nguyên ngày tháng năm 2018

Người thực hiện

Đinh Quang Huy

58

DANH MỤC TÀI LIỆU THAM KHẢO

I. Tài liệu Tiếng Anh

[1] A. Yilmaz and M. Shah, "Object Tracking: A Survey," ACM Computing

Surveys , pp. 7-15, December 2006.

[2] P. Viola and M. Jones, "Rapid object detection using a boosted cascade of simple features," International Journal of Computer Vision 57, p. 137–154, 2004.

[3] Y. Freund and R. Shapire, "A decisiontheoretic generalization of online learning and an application to boosting," Proceedings of the Second European Conference on Computational Learning Theory, pp. 23-37, 1995.

[4] P. Viola and M. Jones, "Robust real-time face detection," International

Journal of Computer Vision 57, 2004.

[5] N. Dalal and B. Triggs, "Histogram of Oriented Gradients for Human Detection," in Computer Vision and Pattern Recognition CVPR 2005. IEEE Computer Society Conference on, vol. 1, pp. 886-893, 2005.

[6] C. Rasmussen and G. D. Hager, "Probabilistic data associationmethod for

tracking multiple and compound visual objects," pp. 7-9, August 2000.

[7] V. Janbandhu, "Human Detection with Non Linear Classification Using Linear SVM," International Journal of Science and Research (IJSR); Volume 3 Issue 12, pp. 1347-1354, 12 2014.

[9] V. Kazcmi and J. Sullivan., "One millisecond face alignment with an ensemble of regression trees," In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 1867-1874, 2014.

[10] N. Kumar, A. C. Berg, P. N. Belhumeur and S. K. Nayar, "Attribute and simile classifiers for face verification," In Computer Vision, IEEE 12th International Conference oti, pp. 365-372, 2009.

[11] W. Jiang, "Human Feature Extraction in VS image Using HOG Algorithm".

[12] A. Blake and M. Isard, "Active Contours".

[13] N. S. Vu and A. Caplier, "Illumination-robust face recognition using retina modeling," In Image Processing (ICIP), 2009 16th IEEE International Conference on, p. 3289–3292, 2009.

[14] K. I. Naka and W. A. H. Rushton, "S-potentials from luminosity units in the

59

retina of fish (Cyprinidae)," J. Physiol, vol. 185, no. 3, p. 587–599, 1966.

[16] J. Plat, "Fast Training of Support Vector Machines Using Sequential Minimal Optimization," In Advences in Kernel Methods - Support Vector Learning, Cambridge, M.A, MIT Press, pp. 185-208, 1999.

II. Tài liệu tiếng Việt

[8] Nguyễn Thị Thanh Tân, Huỳnh Văn Huy và Ngô Quốc Tạo, "Phương pháp nhận dạng khuôn mặt người từ webcam," Hội thảo quốc gia lần thứ XX: Một số vấn đề chọn lọc của công nghệ thông tin và truyền thông, trang. 285-291, năm 2017.

[15] Phạm Anh Phương, Ngô Quốc Tạo và Lương Chi Mai, “Trích chọn đặc trưng wavelet Haar kết hợp với SVM cho việc nhận dạng chữ viết tay tiếng Việt,” năm 2008.

[17] Trương Quốc Bảo, Trương Hùng Chen và Trương Quốc Định, “Phát hiện và nhận dạng biển báo giao thông đường bộ sử dụng đặc trung HOG và mạng nơrron nhân tạo,” Tạp chí khoa học trường Đại học Cần Thơ - Số chuyên đề Công nghệ thông tin, trang. 47-54, năm 2015.