ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
DƯƠNG VĂN CƯỜNG
NGHIÊN CỨU MỘT SỐ PHƯƠNG PHÁP TRÍCH CHỌN ĐẶC TRƯNG
CHO ẢNH VÀ ỨNG DỤNG TRONG BÀI TOÁN PHÂN LOẠI
TRẠNG THÁI CẢM XÚC KHUÔN MẶT
Chuyên ngành: Khoa học máy tính
Mã số: 84 8 01 01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: TS. VŨ VIỆT VŨ
THÁI NGUYÊN, 2018
i
MỤC LỤC
MỤC LỤC ......................................................................................................... i
DANH MỤC CÁC CHỮ VIẾT TẮT ........................................................... iii
DANH MỤC CÁC HÌNH VẼ........................................................................ iv
Mở đầu ............................................................................................................. 1
Chương 1. Tổng quan về khai phá dữ liệu ứng dụng .................................. 3
1.1. Khái niệm về lĩnh vực khai phá dữ liệu và phát hiện tri thức ...... 3
1.1.1. Khái niệm ........................................................................................ 3
1.1.2. Các mô hình học máy cơ bản .......................................................... 5
1.1.3. Ứng dụng của học máy ................................................................... 8
1.2. Tổng quan về bài toán trích chọn đặc trưng, trích chọn đặc trưng
cho dữ liệu hình ảnh .................................................................................... 9
1.3. Bài toán phân loại cảm xúc khuôn mặt ......................................... 11
1.4. Những vấn đề nghiên cứu của luận văn ........................................ 12
Chương 2. Nghiên cứu một số phương pháp trích chọn đặc trưng cho ảnh
......................................................................................................................... 14
2.1. Tổng quan về trích chọn đặc trưng .................................................. 14
2.2. Phương pháp trích chọn đặc trưng Gabor ...................................... 15
2.3. Phương pháp trích chọn đặc trưng HoG ......................................... 18
2.3.1. Giới thiệu ....................................................................................... 18
2.3.2. Các bước trích trọn đặc trưng HoG trên ảnh ............................... 19
2.4. Phương pháp trích chọn đặc trưng LBP ......................................... 25
2.5. Một số phương pháp học máy ứng dụng trong bài toán phân loại
trạng thái cảm xúc khuôn mặt ................................................................. 31
2.5.1. Phương pháp học không giám sát ................................................. 31
2.5.2 Phương pháp phân cụm bán giám sát ........................................... 33
2.5.3. Phương pháp học có giám sát ....................................................... 35
ii
2.6. Kết luận ............................................................................................... 37
Chương 3. Kết quả thực nghiệm .................................................................. 38
3.1. Giới thiệu .............................................................................................. 38
3.2. Kết quả thực nghiệm ............................................................................ 40
3.2.1 Thực hiện phương pháp Gabor ...................................................... 41
3.2.2 Kết quả thực nghiệm với thuật toán học bán giám sát MCSSDBS,
SSDBSCAN. ............................................................................................. 41
3.2.3 Kết quả thực nghiệm với thuật toán K-Means và Seed K-Means .. 43
3.3. Kết luận ................................................................................................ 45
KẾT LUẬN .................................................................................................... 46
Những kết quả đã đạt được ............................................................ 46
Hướng phát triển tiếp theo của đề tài ............................................ 46
TÀI LIỆU THAM KHẢO ............................................................................ 48
iii
DANH MỤC CÁC CHỮ VIẾT TẮT
DBSCAN Phương pháp phân cụm dựa trên mật độ (Density Based Spatial
Clustering of Application with Noise)
HoG Biểu đồ các đường dốc (Histogram of Gradients)
LBP Mẫu nhị phân địa phương (Local Binary Pattern)
LDA Phân tích phân biệt tuyến tính (Linear Discriminant Analysis)
SSDBSCAN Thuật toán phân cụm bán giám sát dựa trên mật độ (Semi
PCA Phân tích thành phần chính (Principal Component Analysis)
supervised Density Based Spatial Clustering of Application
with Noise)
SSGC Thuật toán phân cụm bán giám sát dựa trên đồ thị (Semi -
supervised Graph Clustering)
SVM Máy hỗ trợ véc tơ (Support Vector Machine)
iv
DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Các bước của quá trình khai phá dữ liệu ........................................... 3
Hình 1.2 Mô hình học có giám sát ..................................................................... 6
Hình 1.3 Mô hình học không giám sát ............................................................... 6
HÌnh 1.4 Mô hình học bán giám sát ................................................................... 7
Hình 1.5 Ví dụ về khả năng của Deep learning ................................................. 8
Hình 1.6 (a). Ví dụ về trích chọn đặc trưng từ ảnh............................................ 9
Hình 1.6 (b). Ví dụ về trích chọn đặc trưng từ ảnh ........................................ 10
Hình 1.7. Ví dụ về tập dữ liệu mô tả trạng thái cảm xúc khuôn mặt ............... 11
Hình 1.8. Ví dụ về thu thập ảnh trạng thái khuôn mặt từ Video ...................... 12
Hình 2.1. Bộ lọc Gabor với 5 loại tần số và 8 hướng khác nhau .................... 16
Hình 2.2 Ảnh sau khi sử dụng bộ lọc Gabor tương ứng với hình 2.1 .............. 17
Hình 2.3: R-HOG và C-HOG........................................................................... 19
Hình 2.4: Chia khối trích đặc trưng HOG ....................................................... 20
Hình 2.5: Ví dụ về trích chọn đặc trưng bởi HoG ........................................... 23
Hình 2.7. Gradient theo hướng x (trái), hướng y (giữa) và tổng hợp gradient (phải) ....... 24
Hình 2.6 Tiền xử lý ảnh .................................................................................... 23
Hình 2.8. Chia ảnh thành các ô để tính các biểu đồ ........................................ 24
Hình 2.9. Tính lược đồ mức xám ...................................................................... 25
Hình 2.10. Ví dụ về phương pháp LBP ............................................................ 26
Hình 2.11. Ví dụ về ảnh khuôn mặt (trái) và các đặc trưng LBP (phải) ......... 26
Hình 2.12. Tập hợp các điểm xung quanh Ptt. ................................................. 27
Hình 2.13. Các biến thể của LBP, LBP đồng dạng. ........................................ 28
Hình 2.14. Bảng thống kê các mẫu của LBP đồng dạng ................................. 29
Hình 2.15. Ví dụ về quá trình tính toán đặc trưng ........................................... 30
Hình 2.16. Phương pháp LBP không phụ thuộc vào độ sáng ảnh chụp cho
cùng một đối tượng giống nhau ............................................................... 31
v
Hình 2.17. Ví dụ về dữ liệu của bài toán phân cụm: hình bên trái bao gồm 3
cụm rời nhau tuyến tính trong khi hình bên phải có các cụm hình dạng
bất kỳ và không tuyến tính. ....................................................................... 32
Hình 2.18. Kết quả phân cụm bằng thuật toán DBSCAN và Graph
clustering (trái) và bằng K-Means, Fuzzy C-Means (phải) ..................... 33
Hình 2.19. Dữ liệu đầu vào cho 3 loại thuật toán học (a) học có giám sát,
(b,c) học bán giám sát, và (d) học không giám sát .................................. 33
Hình 2.20. Mô hình học có giám sát ................................................................ 35
Hình 3.1 Ví dụ về ảnh trong tập CK+ .............................................................. 39
Hình 3.2. Ví dụ về ảnh trong tập dữ liệu ITI .................................................... 40
Hình 3.3. Kết quả thực nghiệm cho tập dữ liệu CK+ ...................................... 42
Hình 3.4. Kết quả thực nghiệm cho tập dữ liệu ITI ......................................... 43
Hình 3.5 Kết quả phân loại trạng thái cảm xúc khuôn mặt bằng phương
pháp Seed K-Means .................................................................................. 44
Hình 3.6. Kết quả phân cụm cho tập ITI ......................................................... 44
1
Mở đầu
Trong tất cả các nền văn minh từ trước đến nay, giao tiếp là một hoạt
động không thể thiếu, nó xuất hiện mọi nơi mọi lúc, trong mọi lĩnh vực và
ảnh hưởng trực tiếp tới cuộc sống của từng cá thể. Giao tiếp là một nhu cầu xã
hội cơ bản, nó xuất hiện sớm nhất trong đời sống của mỗi người và là yếu tố
ảnh hưởng trực tiếp tới quá trình hình thành lên tâm sinh lý của con người.
Hơn thế nữa, giao tiếp giúp con người có thể truyền tải thông tin, học hỏi tri
thức và thể hiện cảm xúc. Nhờ có giao tiếp làm cho con người văn hóa, xã hội
văn minh và đất nước phát triển. Nhận thấy tầm quan trọng của hoạt động
giao tiếp nên con người đã bỏ rất nhiều thời gian và công sức vào nghiên cứu
yếu tố quyết định thành công của việc giao tiếp, không chỉ trong lĩnh vực giao
tiếp giữa con người với con người, mà ngày nay con người đã bắt đầu nghiên
cứu về các hệ thống tương tác người – máy. Mặt khác, trong giao tiếp thì
khuôn mặt là nơi con người thể hiện suy nghĩ, tình cảm, thái độ nên để con
người và máy tính có thể tương tác với nhau tự nhiên hơn thì các hệ thống
được xây dựng dựa trên nền tảng là những thay đổi của khuôn mặt. Cần phải
có một công cụ có thể thực hiện được công việc này. Đó là lí do tôi chọn đề
tài: "Nghiên cứu một số phương pháp trích chọn đặc trưng cho ảnh và ứng
dụng trong bài toán phân loại trạng thái cảm xúc khuôn mặt". Dựa vào
các phương pháp trích chọn đặc trưng, tác giả muốn xây dựng một ứng dụng
có khả năng phân loại cảm xúc khuôn mặt người. Từ những bức ảnh mặt
người thu nhận được từ camera quan sát, chương trình có thể phân biệt được
các trạng thái cảm xúc khuôn mặt như: hạnh phúc (happy), ngạc nhiên
(surprise), ghê tởm (disgust), buồn (sad), sợ hãi (fear), giận dữ (angry), và
bình thường (neutral).
Để thực hiện được bài toán phân loại cảm xúc khuôn mặt, chúng ta phải
sử dụng đến các hệ thống học máy. Một hệ thống học máy thường có các
bước gồm thu thập dữ liệu, trích chọn đặc trưng từ dữ liệu, giảm số chiều dữ
liệu, xây dựng mô hình phân lớp/phân cụm và thực hiện để thu được kết quả
2
và cuối cùng là biểu diễn và mô tả kết quả. Trong luận văn của mình tôi tập
trung vào nghiên cứu vấn đề trích chọn đặc trưng từ ảnh từ đó áp dụng các
thuật toán học máy nhằm giải quyết bài toán đề xuất. Ứng dụng của lớp bài
toán phân loại, nhận dạng trạng thái cảm xúc khuôn mặt có thể kể đến như:
tương tác người-máy, phân tích cảm xúc, phát hiện trạng thái mệt mỏi của con
người, video tương tác, đánh chỉ mục của ảnh và video,…
Nội dung luận văn:
Nội dung cơ bản chương 1:
o Tổng quan bài toán trích chọn đặc trưng
o Giới thiệu bài toán phân loại cảm xúc khuôn mặt
Nội dung cơ bản chương 2:
o Phương pháp trích chọn đặc trưng Gabor
o Phương pháp trích chọn đặc trưng HoG
o Phương pháp trích chọn đặc trưng LBP
Nội dung cơ bản chương 3:
o Thực nghiệm kết quả với phương pháp phân cụm K-Means,
SSDBSCAN, MCSSDBS
Kết luận
3
Chương 1. Tổng quan về khai phá dữ liệu và ứng dụng
1.1. Khái niệm về lĩnh vực khai phá dữ liệu và phát hiện tri thức
1.1.1. Khái niệm
Lĩnh vực khai phá dữ liệu và phát hiện tri thức từ dữ liệu (KDD)
nhằm mục đích tạo ra các mẫu, các luật, các tri thức quý từ một số lượng
dữ liệu lớn thu nhận được [12],[13]. Các ứng dụng của lĩnh vực này có thể
kể như nhận dạng hình ảnh, âm thanh, chẩn đoán trong y học, sử dụng
trong các công cụ tìm kiếm như Google,… Quy trình phát hiện tri thức
Tri thức
Các mẫu dữ liệu
thường tuân theo các bước trong hình 1.1:
Dữ liệu đã tiền xử lý
Diễn giải, đánh giá
Dữ liệu mục tiêu
Khai phá dữ liệu
Tiền xử lý và làm sạch
Lựa chọn
Cơ sở dữ liệu
Lựa chọn và trích xuất đặc trưng
Chuyển đổi dữ liệu
Hình 1.1: Các bước của quá trình khai phá dữ liệu
- Bước thứ nhất: Hình thành, xác định và định nghĩa bài toán. Tìm hiểu
lĩnh vực ứng dụng từ đó hình thành bài toán, xác định các nhiệm vụ cần phải
hoàn thành, thu thập dữ liệu. Bước này sẽ quyết định cho việc rút ra được các
4
tri thức hữu ích và cho phép chọn các phương pháp khai phá dữ liệu thích hợp
với mục đích ứng dụng và bản chất của dữ liệu.
- Bước thứ hai: Xử lý thô, còn được gọi là tiền xử lý dữ liệu nhằm loại
bỏ nhiễu (làm sạch dữ liệu), xử lý việc thiếu dữ liệu (làm giàu dữ liệu), biến
đổi dữ liệu, trích rút đặc trưng và rút gọn dữ liệu nếu cần thiết, bước này
thường chiếm nhiều thời gian nhất trong toàn bộ qui trình phát hiện tri thức.
Do dữ liệu được lấy từ nhiều nguồn khác nhau, không đồng nhất, có thể gây
ra các nhầm lẫn. Sau bước này, dữ liệu sẽ nhất quán, đầy đủ, được rút gọn và
rời rạc hoá.
- Bước thứ ba: Lựa chọn đặc trưng, trích chọn đặc trưng và biến đổi đặc
trưng của dữ liệu. Đây là một bước rất quan trọng. Nhiệm vụ của bước này
không những làm giảm kích thước của dữ liệu mà còn chọn ra những đặc
điểm đặc trưng nhất nhằm tăng chất lượng của các bước sau. Tùy từng nhiệm
vụ và lĩnh vực bài toán, chúng ta sẽ có các phương pháp trích rút đặc trưng
cho dữ liệu khác nhau.
- Bước thứ tư: Khai phá dữ liệu, rút ra các tri thức, trích ra các mẫu
hoặc/và các mô hình ẩn dưới các dữ liệu [13]. Giai đoạn này rất quan trọng,
bao gồm các công đoạn như: chức năng, nhiệm vụ và mục đích của khai phá
dữ liệu là gì, dùng phương pháp khai phá nào? Thông thường, các bài toán
khai phá dữ liệu bao gồm: các bài toán mang tính mô tả - đưa ra tính chất
chung nhất của dữ liệu, các bài toán dự báo - bao gồm cả việc phát hiện các
suy diễn dựa trên dữ liệu hiện có, các bài toán phân lớp, phân cụm, phát hiện
cấu trúc dữ liệu,… Tùy theo bài toán xác định được mà ta lựa chọn các
phương pháp khai phá dữ liệu cho phù hợp.
- Bước thứ năm: Là hiểu và giải thích các tri thức/các mẫu/các luật đã
tìm được, đặc biệt là làm sáng tỏ các mô tả và dự đoán. Các công cụ có dùng
5
như mô phỏng, thống kê, vẽ các biểu đồ, sơ đồ,… để làm rõ hơn nữa kết quả
của khai phá dữ liệu.
Các bước trên có thể lặp đi lặp lại một số lần, kết quả thu được có thể
được lấy trung bình trên tất cả các lần thực hiện. Các kết quả của quá trình
phát hiện tri thức có thể được đưa và ứng dụng trong các lĩnh vực khác nhau.
Do các kết quả có thể là các dự đoán hoặc các mô tả nên chúng có thể được
đưa vào các hệ thống hỗ trợ ra quyết định nhằm tự động hoá quá trình này.
Nghiên cứu về lĩnh vực khai phá dữ liệu liên quan đến nhiều lĩnh vực
như toán học, thống kê, tối ưu hóa, tính toán tiến hóa, khoa học máy tính, cơ
sở dữ liệu, dữ liệu lớn,…
Một vấn đề quan trọng nữa là các nghiên cứu cho các ứng dụng chuyên
ngành, trường hợp này chúng ta phải làm việc với các chuyên gia lĩnh vực,
chẳng hạn lĩnh vực khai phá dữ liệu y sinh, khai phá dữ liệu gene,…
1.1.2. Các mô hình học máy cơ bản
Trên thực tế có một số mô hình học sau đây [15]:
- Học có giám sát
- Học không giám sát
- Học bán giám sát
- Học tăng cường
- Học sâu (deep learning)
Phần sau đây sẽ trình bày một số phương pháp học cơ bản thuộc các
loại trên.
- Học có giám sát là phương pháp học máy thông qua sử dụng tập
mẫu. Tập mẫu được cung cấp, hệ thống sẽ xây dựng mô hình học trên bộ dữ
liệu này và có thể phân lớp/dự đoán,… cho các dữ liệu mới. Các phương pháp
6
học có giám sát có thể kể đến như mạng nơ ron, phân lớp Bayes, cây quyết
định, SVM (Support Vector Machine),… (xem hình 1.2)
x y
Đầu vào mới x
Vào 1 - Ra 1
Vào 2 - Ra 2
Vao 3 - Ra 3
Thuật Mô hình
toán học
m
Vào - n - Ra - n
Đầu ra y
Hình 1.2 Mô hình học có giám sát
- Học không giám sát là phương pháp phát hiện cấu trúc, xác định mối
liên kết, phát hiện dị thường, của một tập dữ liệu cho trước [14]. Loại học này
không có tập dữ liệu mẫu. Một số phương pháp trong loại học này như phân
cụm K-Means, Fuzzy C-Means, phát hiện dị thường ,… (xem hình 1.3)
Học không giám sát
Hình 1.3 Mô hình học không giám sát
7
- Học bán giám sát nằm giữa học có giám sát và học không giám sát,
loại học này sẽ sử dụng một lượng ít dữ liệu mẫu, dữ liệu hướng dẫn để thực
hiện mô hình (xem hình 1.4). Trên thực tế các thông tin có được từ ban đầu
gồm hai dạng cơ bản: (1) một lượng nhỏ dữ liệu được gán nhãn (seed) hoặc
(2) một số lượng nhỏ các thông tin về các cặp dữ liệu must-link (phải liên
kết), cannot-link (không thể liên kết) thể hiện mối quan hệ giữa các cặp dữ
liệu trong tập dữ liệu cho trước: must-link (u,v) thể hiện u và v sẽ thuộc
cùng một cụm trong khi cannot-link (u,v) cho biết u và v sẽ thuộc về hai
cụm khác nhau.
Hình 1.4 Dữ liệu cho việc học bán giám sát
- Học tăng cường là phương pháp học được bổ sung liên tục kỹ năng
trong quá trình giải quyết bài toán. Ví dụ như hai người chơi cờ A và B, người
A có thể vừa thi đấu với người B nhưng lại có thể vừa học từ người B và
ngược lại.
- Học sâu (deep learning), là loại học được quan tâm nhiều đặc biệt là
từ năm 2006 trở lại đây [16]. Bản chất của loại học này là dựa trên mạng nơ
ron nhiều lớp. Các ứng dụng hiệu quả cho loại học này là nhận dạng đối
tượng, nhận dạng âm thanh, và ứng dụng trong xử lý ngôn ngữ tự nhiên. Hình
1.5 minh họa ví dụ về việc xác định đối tượng trong bức ảnh. Phương pháp
8
học này còn có khả năng chỉ rõ xem người trong ảnh là ai, đang làm gì,… Đối
với phương pháp học sâu chúng ta phải có đủ dữ liệu cần thiết (thường là lớn)
cũng như các hệ thống máy tính đủ lớn để thực hiện.
Hình 1.5 Ví dụ về khả năng của deep learning
1.1.3. Ứng dụng của học máy
Ứng dụng của học máy ngày càng đa dạng và quan trọng, sau đây là
một số ví dụ:
- Xe tự lái: các hệ thống này là những ứng dụng rất nổi trội, hiện nay
đã có một số nơi triển khai thử nghiệm. Hệ thống học của xe sẽ học khả
năng điều khiển xe qua các thực nghiệm mẫu của người lái xe trên đường.
- Xe tự dò tìm đường đi trong rừng: các hệ thống này sẽ được học qua
camera khi con người thực hiện đi mẫu trong rừng.
- Trợ lý ảo: Đã ứng dụng thực tế, đây là những hệ thống lưu trữ, suy diễn
dữ liệu rất lớn và thông minh.
- Nhận dạng đối tượng trong ảnh và video.
- Chẩn đoán bệnh thông qua dữ liệu lâm sàng
- Ứng dụng trong nhà thông minh, thành phố thông minh: các ứng dụng
cụ thể như bật tắt đèn tự động, bãi đỗ xe thông minh, tìm kiếm phương tiện
thông minh
- IoT: các bài toán thu thập dữ liệu từ nhiều nguồn khác nhau như sensor,
điện thoại, máy tính, camera để xử lý dữ liệu tổng hợp.
9
- Robot, người máy
- Xử lý ngôn ngữ tự nhiên,…
- Hệ hỗ trợ quyết định
- Phân lớp, phân cụm, phát hiện cấu trúc của dữ liệu
- Phát hiện dị thường
- Mua sắm thông minh,…
1.2. Tổng quan về bài toán trích chọn đặc trưng, trích chọn đặc trưng
cho dữ liệu hình ảnh
Bài toán trích trọn đặc trưng trên ảnh khuôn mặt người đã được quan
tâm từ khá lâu do có rất nhiều ứng dụng như: Sử dụng trong hệ thống nhận
dạng cảm xúc, hệ thống tương tác giữa người và máy (điều khiể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 như 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 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, hệ thống
nhận dạng khuôn mặt cho các máy ảnh kỹ thuật số,...
Trích chọn đặc trưng là trích ra những đặc trưng quan trọng cơ bản nhất
của mỗi đối tượng [5]. Yêu cầu của trích chọn đặc trưng là phải đủ các thuộc
tính tuy nhiên với số lượng nhỏ nhất có thể và vẫn đảm bảo được việc phân
Đặc trưng
Các từ hình ảnh
Từ điển hình
biệt đối tượng này với đối tượng kia (xem hình 1.6).
(a)
10
(b)
Hình 1.6 Ví dụ về trích chọn đặc trưng từ ảnh: (a) ảnh sẽ được trích từng
vùng và cho vào túi đựng các đối tượng đặc trưng, (b), các đặc trưng được
trích chọn sử dụng các biến đổi toán học để tìm ra các điểm (vùng điểm)
quan trọng.
Đối với bài toán trích chọn đặc trưng cho ảnh, cụ thể là ảnh mặt người,
trước hết chúng ta phải hiểu ảnh là gì. Ảnh bản chất là một ma trận các số,
mỗi số tương ứng với thông tin trên các điểm ảnh. Đối với ảnh, việc trích
chọn đặc trưng là bài toán phức tạp vì mỗi ảnh chụp tại mỗi thời điểm của
cùng một đối tượng sẽ khác nhau (độ sáng, độ lệch, độ phân giải,…).
Vấn đề nghiên cứu trích chọn đặc trưng ảnh đã có từ lâu, tuy nhiên hiện
nay vẫn thu hút nhiều nhà nghiên cứu. Trong thời đại mà mỗi ngày có hàng tỷ
ảnh được đưa lên mạng, bài toán liên quan đến lĩnh vực xử lý ảnh là một
trong những bài toán thú vị.
Ứng dụng của bài toán trích chọn đặc trưng nằm trong pha thứ ba của
cả quá trình giải bài toán phát hiện tri thức và khai phá dữ liệu. Đây là khâu
quan trọng ảnh hướng đến toàn bộ các pha sau. Như đã trình bày, yêu cầu
của pha trích chọn đặc trưng là các thuộc tính được trích chọn phải đầy đủ và
11
tối ưu. Trong thực tế có rất nhiều phương pháp trích chọn đặc trưng đã được
nghiên cứu và trình bày. Mỗi phương pháp có ưu và nhược điểm riêng, phù
hợp với từng loại dữ liệu và ứng dụng.
1.3. Bài toán phân loại cảm xúc khuôn mặt
Trong những năm gần đây bài toán phân loại, nhận dạng trạng thái cảm
xúc khuôn mặt được tập trung nghiên cứu nhiều vì có nhiều ứng dụng trong
thực tế: tương tác người - máy, phân tích cảm xúc, phát hiện trạng thái mệt
mỏi của con người, video tương tác, đánh chỉ mục của ảnh và video,…
Trên thực tế có 7 loại trạng thái cảm xúc khuôn mặt như sau: Hạnh
phúc (happy), ngạc nhiên (surprise), ghê tởm (disgust), buồn (sad), sợ hãi
(fear), giận dữ (angry), bình thường (neutral). Các ảnh khuôn mặt có thể thu
thập từ các ảnh hoặc từ các video (phim) sau đó chuẩn hóa để thu được tập dữ
liệu cần đánh giá, phân loại. Hình 1.7 minh họa tập dữ liệu mẫu thường dùng
trong bài toán phân loại cảm xúc khuôn mặt.
Hình 1.7 Ví dụ về tập dữ liệu mô tả trạng thái cảm xúc khuôn mặt
12
Hình 1.8. Ví dụ về hệ thống thu thập hình ảnh trạng thái khuôn mặt từ Video
Hình 1.8 minh họa việc trích chọn ảnh khuôn mặt từ Video. Các ảnh
phát hiện được từ video sẽ lưu vào tập cơ sở dữ liệu, sau đó áp dụng các
phương pháp tiền xử lý như loại bỏ ảnh nhiễu, chỉnh lại kích thước trước khi
được đưa vào thử nghiệm cũng như loại bỏ các ảnh dư thừa hoặc ảnh lỗi do
hệ thống phát hiện khuôn mặt gây ra.
1.4. Những vấn đề nghiên cứu của luận văn
Trong khuôn khổ luận văn Thạc sỹ của mình tôi lựa chọn nghiên cứu
vấn đề trích chọn đặc trưng cho dữ liệu hình ảnh áp dụng vào bài toán phân
loại trạng thái cảm xúc khuôn mặt với những nội dung cơ bản sau đây:
- Nghiên cứu tổng quan về bài toán trích chọn đặc trưng và vai trò của
nó trong hệ thống khai phá dữ liệu và phát hiện tri thức. Các tìm hiểu về tổng
quan ứng dụng của lĩnh vực này cũng sẽ được trình bày trong luận văn.
- Nghiên cứu một số phương pháp trích chọn đặc trưng trong ảnh và
ứng dụng, cụ thể trong luận văn này tôi nghiên cứu tìm hiểu ba phương
pháp gồm Gabor, HoG, và LBP. Đây cũng là nội dung nghiên cứu chính
của luận văn nhằm hiểu được các bước thực hiện trong quá trình trích
chọn đặc trưng của mỗi phương pháp.
- Ứng dụng các phương pháp trích chọn đặc trưng vào bài toán
phân loại trạng thái cảm xúc khuôn mặt. Để giải quyết vấn đề này, sau khi
13
có dữ liệu từ pha trích chọn đặc trưng, chúng ta sẽ sử dụng phương pháp
học máy để tiến hành phân lớp hoặc phân cụm dữ liệu. Trong phần thực
nghiệm tôi trình bày phương pháp phân cụm dữ liệu cho bài toán phân
loại cảm xúc khuôn mặt.
14
Chương 2. Nghiên cứu một số phương pháp trích chọn
đặc trưng cho ảnh
2.1. Tổng quan về trích chọn đặc trưng
Mỗi đối tượng nói chung đều có những đặc trưng riêng, đặc trưng chính
là yếu tố giúp phân biệt đối tượng này với đối tượng khác. Ví dụ đặc trưng
của xe ô tô là có 4 bánh, có vô lăng,… còn đặc trưng của xe máy là có hai
bánh; đặc trưng của mỗi con người thể hiện là chiều cao, cân nặng, màu tóc,
màu da,… Tóm lại đặc trưng là các yếu tố xác định nên đối tượng. Một đối
tượng chỉ được xác định khi có đủ số đặc trưng xác định nên nó.
Trong lĩnh vực nhận dạng mặt người nói chung bài toán trích chọn đặc
trưng là khâu vô cùng quan trọng, nó sẽ quyết định đến các pha tiếp theo như
phân lớp đối tượng, phân cụm đối tượng. Về mặt bản chất ảnh được biểu diễn
qua một ma trận kích thước m n trong đó m là số hàng và n là số cột của
ảnh. Cách đơn giản nhất khi xây dựng véc tơ đặc trưng cho ảnh là đem m n
điểm ảnh xếp vào véc tơ một chiểu sau đó có thể thực hiện các phép toán trên
véc tơ đó. Tuy nhiên cách làm này có hạn chế rất lớn là sẽ làm mất đi tính
chất không gian của ảnh tức là mất đi thuộc tính vô cùng quan trọng của mỗi
điểm ảnh là những điểm hàng xóm của chúng. Chính vì vậy rất nhiều phương
pháp trích chọn đặc trưng được nghiên cứu và giới thiệu, các phương pháp
này nhằm mục đích tận dụng tối đa tính chất không gian của ảnh trong việc
xây dựng các véc tơ đặc trưng.
Trong chương này chúng tôi sẽ trình bày một số phương pháp trích
chọn đặc trưng cơ bản cho ảnh mặt người gồm phương pháp Gabor, phương
pháp LBP và phương pháp HoG nhằm làm cơ sở cho các thực nghiệm ở
chương tiếp theo.
15
2.2. Phương pháp trích chọn đặc trưng Gabor
Phương pháp trích chọn đặc trưng Gabor được giới thiệu vào những
năm 1990. Ý tưởng của phương pháp Gabor là sử dụng biến đổi dạng sóng.
Các đặc trưng Gabor được trích chọn trực tiếp từ ảnh mức xám. Tính chất
quan trọng của phương pháp này là nó làm việc tốt với ảnh bị quay, độc lập
với tỷ lệ ảnh, và biến đổi ảnh. [1],[2],[7],[17].
Đặc điểm của trích chọn đặc trưng Gabor là đặc biệt với tần số và
hướng đại diện, giống như hệ thống nhận diện khuôn mặt người. Nó đặc biệt
thích hợp cho cho trích chọn đặc trưng kết cấu và nhận diện. Bộ lọc Gabor
trích chọn trực tiếp từ ảnh cấp xám. Trong miền không gian hai chiều, Gabor
là một hàm Gaussian dạng sóng hình sin phức hợp, có thể thực hiện tính toán
biến đổi bằng công thức:
(2.1)
Trong trường hợp này:
(x, y) là tọa độ điểm (pixel) trong miền không gian ảnh
: Là tần số góc trung tâm
: Là hướng của bộ lọc Gabor
: Là biểu diễn độ sắc nét dọc theo cả hai hướng x và y.
Trên thực tế / để xác định mối liên hệ giữa và trong các thí
nghiệm.
16
Hình 2.1. Bộ lọc Gabor với 5 loại tần số và 8 hướng khác nhau
Hình 2.1 minh họa bộ lọa Gabor trong trường hợp chọn 5 loại tần số và
8 hướng khác nhau tương ứng với . Trên thực tế đa số các thực nghiệm sẽ
chọn bộ thông số này. Công thức (2.2) và (2.3) sau đây tương ứng là giá trị
cho 5 loại tần số và 8 hướng với bộ lọc Gabor trong ví dụ trên:
, u = 0, 1,...4 (2.2)
, v = 0, 1, 2,... 7 (2.3)
Giả sử chúng ta có ảnh kích thước 120120, với việc sử dụng 40 bộ lọc
Gabor như hình 1, chúng ta sẽ có số lượng đặc trưng là 120 12040 chiều.
Chúng ta có thể giảm số chiều bằng các phương pháp như PCA, LDA,…
17
Hình 2.2 Ảnh sau khi sử dụng bộ lọc Gabor tương ứng với hình 2.1
Biểu diễn Gabor của một ảnh mặt người I(x,y) có thể thu được bằng
cách kết hợp cùng với biểu thức Gabor tương ứng:
(2.4)
trong đó Gu,v(x,y) là biểu thị mảng hai chiều kết quả tích chập kết hợp tương
ứng với bộ lọc Gabor với tỷ lệ u và hướng v. Phép tích chập ở đây được hiểu
như là phép lọc ảnh để chọn ra các thành phần theo biến đổi Gabor (công
thức 2.1). Hình 2.2 minh họa 40 kết quả tương ứng khi sử dụng bộ lọc Gabor
với 5 loại tỷ lệ và 8 hướng tương ứng như trong hình 2.1.
Như vậy, mỗi ảnh I(x,y) có thể được biểu diễn bởi một tập hợp các bộ
các tham số Gabor như sau (tùy theo cách chọn u và v):
{Gu,v(x,y) | u = 0,1,...4; v = 0,1,2,...7 }.
18
Giá trị của mỗi Gu,v (x,y) sau đó được lấy mẫu bởi một hệ số của r, chuẩn hóa
và thu được véc tơ zu,v bằng cách nối các hàng liên tục. Véc tơ Z cuối cùng
thu được biểu diễn cho ảnh I(x,y) bởi cách nối các véc tơ Zu,v như sau:
. (z0,1)T ... (z4,7)T]T
(2.5) Z = [(z0,0)T
Trong đó (zu,v)T là véc tơ chuyển vị của zu,v. Đặc trưng nguồn gốc véc tơ
Z bao gồm tất cả các yếu tố của Gabor đại diện tập:{{Gu\,v(x,y) | u=0,1,...4; v=
0,1,2,...7 }.
Trên thực tế, kích thước của véc tơ Z là khá cao. Ví dụ với ảnh 112 x
92 thì kích thước véc tơ là: (112 x 92) x (5 x 8)/ (4 x 4) = 25.760. Khi hệ số
lấy mẫu là r = (4 x 4) = 16. Chúng ta có thể làm giảm kích thước của véc tơ
xuống bằng các thuật toán như LDA, PCA.
2.3. Phương pháp trích chọn đặc trưng HoG
2.3.1. Giới thiệu
Histogram of Gradient (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à Nanel
Dalal vào năm 2005 tại viện nghiên cứu INRIA [3],[18],[19].
Ý tưởng chính trong đặc trưng HoG xuất phát từ 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ề cường độ và hướng của
cạnh. Đặc trưng HoG được tính trên cả một vùng. Do sự biến thiên về màu
sắc trong các vùng là khác nhau, kết quả mỗi vùng sẽ cho ta một véc tơ đặ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. 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:
19
Hình 2.3: R-HoG và C-HoG [25]
R-HoG: mỗi ô có hình dạng là hình chữ nhật
C-HoG: mỗi ô có dạng là hình tròn
Từ một ảnh cho trước, qua việc rút trích đặc trưng trên ảnh đó cho ta
một véc tơ đại diện cho đối tượng đó. Việc rút ra được các véc tơ đặc trưng
như vậy giúp chúng ta chuyển không gian ảnh sang không gian véc tơ để có
thể xử lý và tính toán đơn giản hơn trên máy tính.
2.3.2. Các bước trích trọn đặc trưng HoG trên ảnh
Trước khi thực hiện việc trích chọn đặc trưng HoG, ta chuyển ảnh trong
không gian RGB sang ảnh gray scale, sau đó tiến hành cân bằng lược đồ trên
ảnh gray scale để giảm đi ảnh hưởng của sự thay đổi ánh sáng.
Các bước trích trọn đặc trưng HoG như sau:
* Bước 1: Tính Gradient
Đây là bước đầu tiên trong phương pháp HoG và thường được thực
hiện bằng hai phép nhân chập ảnh gốc với 2 nhân và 1 chiều tương ứng với
các toán tử lấy đạo hàm ảnh theo hai hướng Ox và Oy, cụ thể là:
20
Dx = [-1 0 1]
, trong đó T là ký hiệu của phép chuyển dịch ma trận.
Với một ảnh input I, ta sẽ có 2 ảnh đạo hàm riêng theo 2 hướng được
tính bằng công thức: Ix= I * Dx và Iy = I * Dy.
Tính cường độ (magnitude) và hướng biến thiên (orientation) tại mỗi
pixel bằng hai công thức sau:
Cường độ: (2.6)
Hướng: (2.7)
* Bước 2: Chia ảnh đầu ra ở các bước trên thành nhiều khối (block),
mỗi khối có số ô bằng nhau, mỗi ô có số pixel bằng nhau. Các khối được xếp
chồng lên nhau một ô như ở hình 3. Số khối được tính bằng công thức (2.8).
Trong đó: Wimage, Himage, Wblock, Hblock, Wcell, H cell lần lượt là chiều rộng, chiều
cao của ảnh, khối và ô.
(2.8)
Hình 2.4: Chia khối trích đặc trưng HOG [25]
21
* Bước 3: Tính véc tơ đặc trưng cho từng khối
- Chia không gian hướng thành p bin (số chiều vectơ đặc trưng của ô).
Việc lưu trữ chính xác từng giá trị góc (orientation) của từng vị trí (x,y) 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 cho
thấy kích thước bin khoảng 200 là cho kết quả tốt nhất. Do đó từ 0 đến 1800 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.
- Góc hướng nghiêng tại pixel (x,y) có độ lớn α(x,y) được rời rạc hóa
vào một trong p bin.
Rời rạc hóa unsigned-HoG (p=9):
(2.9)
Rời rạc hóa signed - HoG (P18)
(2.10)
Giá trị bin được định lượng bởi tổng cường độ biến thiên của các pixel
thuộc về bin đó.
Để tính toán véc tơ đặc trưng cho khối ta chỉ cần ghép các vectơ đặc
trưng của từng cell trong block lại với nhau để được véc tơ đặc trưng của
block này.
Nối các vectơ đặc trưng ô để được vectơ đặc trưng khối. Số chiều vectơ
đặc trưng của khối tính theo công thức:
sizefeature/block=ncells*sizefeature/cell (2.11)
Trong đó, ncells là số ô trong khối và sizefeature/cell là số chiều vectơ đặc
trưng của ô bằng 9 (unsigned- HoG) hoặc 18 (signed-HoG).
22
*Bước 4: Tính véc tơ đặc trưng cho ảnh
- Chuẩn hóa véc tơ đặc trưng: Trước khi thực hiện tính véc tơ đặc trưng
các khối trước khi tính véc tơ đặc trưng cho ảnh.
Để chuẩn hóa véc tơ đặc trưng cho các khối ta có thể thực hiện bằng
một trong các công thức (1.12), (1.13), (1.14) như sau:
L2- norm: (2.12)
(2.13) L1-norm:
(2.14) L1-sqrt:
Trong đó:
v: là véc tơ đặc trưng ban đầu của khối
vk: là k-norm của v (k=1,2)
e: là hằng số nhỏ nhất
- Tính véc tơ đặc trưng cho ảnh: Để tính toán véc tơ đặc trưng cho ảnh,
ta chỉ cần ghép các véc tơ đặc trưng của từng block lại với nhau để được véc
tơ đặc trưng của cả window. 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).
Ghép các vectơ đặc trưng khối tạo nên ảnh để được đặc trưng R-HOG
cho ảnh. Số chiều vectơ đặc trưng của ảnh tính theo công thức:
sizefeature/image = nblock/image * sizefeature/block (2.15)
Với nblock/image là khối và sizefeature/block là số chiều véc tơ đặc trưng của
mỗi khối.
Tổ hợp của tất cả các đồ thị sẽ là các đặc trưng HoG của ảnh.
23
Hình 2.5: Ví dụ về trích chọn đặc trưng bởi HoG
Sau khi trích chọn các đặc trưng, chúng ta có thể sử dụng phương pháp
PCA hoặc LDA để giảm số chiều của nó.
Chúng ta có thể nghiên cứu tiếp ví dụ sau đây:
Ảnh được trích chọn từ ảnh gốc và chuẩn hóa về kích thước 64 128.
Hình 2.6 Tiền xử lý ảnh
Tiếp theo tính các gradient cho ảnh theo từng hướng.
24
Hình 2.7. Gradient theo hướng x (trái), hướng y (giữa)
và tổng hợp gradient (phải)
Hình 2.8. Chia ảnh thành các ô để tính các biểu đồ
25
Hình 2.9. Tính lược đồ mức xám
Quá trình tính lược đồ mức xám được minh họa trong hình 2.9. Để tính
được giá trị cho các ô trong bảng mức xám chúng ta sẽ căn cứ vào bảng
hướng grandient và giá trị tương ứng. Chẳng hạn bin 80 sẽ chứa số 2 khi đối
chiếu hai ô tương ứng của các bảng trên.
2.4. Phương pháp trích chọn đặc trưng LBP
Local Binary Pattern (LBP) hay là mẫu nhị phân địa phương được
Ojala trình bày vào năm 1996 như là một cách đo độ tương phản cục bộ của
ảnh [6],[26]. Phiên bản đầu tiên của LBP được dùng với 8 điểm ảnh xung
quanh và sử dụng giá trị của điểm ảnh ở trung tâm làm ngưỡng. Giá trị LBP
được xác định bằng cách nhân các giá trị ngưỡng với trọng số ứng với mỗi
điểm ảnh sau đó cộng tổng lại. Hình dưới minh họa cách tính độ tương phản
trực giao (C) là hiệu cấp độ xám trung bình của các điểm ảnh lớn hơn hoặc
bằng ngưỡng với các điểm ảnh thấp hơn ngưỡng.
26
Kể từ khi được đưa ra, theo định nghĩa là bất biến với những thay đổi
đơn điệu trong ảnh đen trắng. Để cải tiến phương pháp, bổ sung thêm
phương pháp tương phản trực giao địa phương. Hình dưới minh họa cách
tính độ tương phản trực giao (C) là ký hiệu cấp độ xám trung bình của các
điểm ảnh lớn hơn hoặc bằng ngưỡng với các điểm ảnh thấp hơn ngưỡng.
Phân phối hai chiều của mã LBP và độ tương phản cục bộ được lấy làm đặc
Trọng số
Ngưỡng
trưng gọi là LBP/C.
Hình 2.10 Ví dụ về phương pháp LBP
Hình 2.11 Ví dụ về ảnh khuôn mặt (trái) và các đặc trưng LBP (phải)
Nguồn gốc:
Dãy LBP được Ojala trình bày vào năm 2002. Định nghĩa một cấu
trúc điểm ảnh T là một phân phối đại số của cấp độ xám của P +1 (P > 0)
điểm ảnh.
T = t(gc,g0,…,gp-1) (2.16)
Với gc ứng với cấp độ xám của điểm ảnh trung tâm Ptt, gp (p = 0,…,1)
tương ứng với P điểm ảnh xung quanh, P điểm ảnh này nằm trên đường tròn
bán kính R và tâm là Ptt.
27
Hình 2.12. Tập hợp các điểm xung quanh Ptt.
Không mất thông tin, có thể trừ gp đi một lượng là gc
T = t(gc,g0 – gc,…,gp – gc) (2.18)
Giả sử sự sai số giữa gp và gc là độc lập với gc, ta có thể nhân tử hóa gc
như sau:
T = t(gc)t(g0- gc,…,gp-1- gc) (2.19)
t(gc) biểu thị xu hướng độ sáng tối của cả bức ảnh nên không liên quan
đến kết cấu của ảnh cục bộ do đó có thể bỏ qua
T~t((g0 – gc),…,(gp-1 – gc)) (2.20)
Mặc dù tính bất biến ngược với độ thay đổi tỷ lệ xám của điểm ảnh,
sự khác biệt ảnh hưởng bởi tỷ lệ. Để thu được đặc điểm bất biến với bất kỳ
một sự thay đổi nào của ảnh đen trắng chỉ quan tâm đến dấu của độ lệch:
T~t(s(g0 – gc),…,s(gp-1 – gc)) (2.21)
Với s là hàm dấu:
Trọng số 2p được dùng cho các hàm dấu, s(gp – gc) để chuyển sự khác
biệt giữa các điểm ảnh bên cạnh về một giá trị duy nhất.
(2.22)
Với P pixel thì có 2p giá trị LBPP,R trong khoảng [0,2p-1 ] nhưng để đơn
giản ta có thể chọn một số giá trị trong 2p giá trị ký hiệu là
28
Thuật toán LBP:
Thông tin LBP của pixel tại trung tâm của mỗi khối ảnh sẽ được tính
dựa trên thông tin của các pixel lận cận. Có thể tóm tắt các bước tiến hành
như sau:
Bước 1: Xác định bán kính làm việc
Bước 2: Tính giá trị LBP cho pixel ở trung tâm (xc, yc) khối ảnh dựa
trên thông tin của các pixel lân cận.
Bước 3: Tính toán biểu đồ, trên toàn bộ ô, về tần số của mỗi "số" xuất
hiện (nghĩa là mỗi kết hợp có điểm ảnh nhỏ hơn và lớn hơn trung tâm). Biểu
đồ này có thể được xem như một véc tơ 256 chiều.
Bước 4: Chuẩn hóa biểu đồ (tùy chọn).
Bước 5: Xây dựng các đặc trưng bằng cách ghép các biểu đồ lại.
Ví dụ:
1*20 + 1*21 + 1*22 + 1*23 + 0*24 + 0*25 + 0*26 + 0*27 = 15.
Hình 2.13. Các biến thể của LBP, LBP đồng dạng.
Một mẫu nhị phân được gọi là đồng dạng khi xét chuỗi bit xoay vòng
thì có nhiều nhất là 2 lần chuyển tiếp từ giá trị bit 0 sang 1 hoặc từ giá trị bit 1
sang 0. Ví dụ: 00000000 có 0 sự chuyển tiếp, 01110000 có 2 sự chuyển tiếp,
11001111 có 2 sự chuyển tiếp nên đây là LBP đồng dạng. 11001001 có 4 sự
chuyển tiếp, 01010011 có 6 sự chuyển tiếp nên không phải là LBP đồng dạng.
Dựa trên định nghĩa này, bảng ánh xạ cho bán kính làm việc P - hàng
xóm sẽ có P(P-1) + 3 nhãn. Có nghĩa là có 59 nhãn trong trường hợp làm việc
với 8- hàng xóm. Hình vẽ sau đây thể hiện 59 nhãn (mẫu) và minh họa về
biểu đồ của đặc trưng LBP đồng dạng.
29
Hình 2.14. Bảng thống kê các mẫu của LBP đồng dạng
Ví dụ về trích rút đặc trưng LBP trên ảnh số kích thước 4 x 4:
23 27 33 64
35 29 15 65
6 72 11 30
1 31 3 90
Chúng ta sẽ tính được giá trị đặc trưng LBP như sau:
23 27 33 64
35 29 15 65
6 72 11 30
1 31 3 90
30
Hình 2.15. Ví dụ về quá trình tính toán đặc trưng
31
Ưu điểm: Thuật toán trích rút đặc trưng LBP cài đặt đơn giản, thời
gian tính toán giá trị đặc trưng nhanh vì nó làm việc với giá trị nguyên. Thuật
toán LBP do sử dụng các giá trị sai khác về đánh giá giữa các điểm lân cận
nên thuật toán LBP không bị lỗi khi ảnh có độ sáng khác nhau (xem hình).
Hình 2.16 Phương pháp LBP không phụ thuộc vào độ sáng ảnh chụp cho
cùng một đối tượng giống nhau
2.5. Một số phương pháp học máy ứng dụng trong bài toán phân loại
trạng thái cảm xúc khuôn mặt
Để thực hiện được bài toán phân loại cảm xúc trạng thái khuôn mặt
chúng ta có thể sử dụng các phương pháp học máy bao gồm học không giám
sát (bài toán phân cụm), học bán giám sát (bài toán phân lớp, phân cụm) và
bài toán học có giám sát (phân lớp). Phần sau đây sẽ trình bày tổng quan về
các phương pháp học này.
2.5.1. Phương pháp học không giám sát
Dạng bài toán đầu tiên có thể dùng cho phân loại trạng thái cảm xúc
khuôn mặt là bài toán phân cụm. Bài toán phân cụm là một dạng của bài toán
học không giám sát được phát biểu như sau: cho tập X gồm n đối tượng x1, x2,
…, xn trong không gian d chiều, hãy phân rã tập X ra thành k (k ≤ n) cụm C1,
32
C2,…, Ck rời nhau (Ci Cj = , i j) sao cho các đối tượng trong cùng một
cụm thì tương tự nhau và các đối tượng ở các cụm khác nhau thì không tương
tự nhau theo một tiêu chuẩn nào đó.
Bài toán phân cụm thuộc lớp bài toán học không giám sát nằm trong
lĩnh vực học máy, đây là một trong những chủ đề cơ bản của Trí tuệ nhân tạo.
Mục đích chính của quá trình phân cụm là giúp cho người dùng hiểu được cấu
trúc và phân bố của dữ liệu trong tự nhiên và là khâu quan trọng trong quá
trình xử lý và khai phá dữ liệu. Hình 2.17 minh họa ví dụ về tập dữ liệu trong
bài toán phân cụm.
Hình 2.17. Ví dụ về dữ liệu của bài toán phân cụm: hình bên trái bao gồm 3
cụm rời nhau tuyến tính trong khi hình bên phải có các cụm hình dạng bất kỳ
và không tuyến tính.
Các phương pháp phân cụm phổ biến là phương pháp phân cụm dựa
trên khoảng cách (K-Means), phân cụm dự vào lý thuyết mờ (Fuzzy C-
Means), phương pháp phân cụm thứ bậc, phương pháp phân cụm dựa trên mật
độ (DBSCAN), phương pháp phân cụm dựa trên đồ thị,…[14].
33
Hình 2.18. Kết quả phân cụm bằng thuật toán DBSCAN và phân cụm đồ thị
(trái) và bằng K-Means, Fuzzy C-Means (phải).
2.5.2 Phương pháp phân cụm bán giám sát
Từ những năm 2000 trở lại đây, phương pháp phân cụm bán giám sát
bắt đầu được phát triển mạnh mẽ. Thuật toán phân cụm bán giám sát tích hợp
các thông tin có được từ ban đầu như một lượng nhỏ dữ liệu được gán nhãn
(seed) hoặc một số lượng nhỏ các thông tin về các cặp dữ liệu must-link (phải
liên kết), cannot-link (không thể liên kết): must-link(u,v) thể hiện u và v sẽ
thuộc cùng một cụm trong khi cannot-link(u,v) cho biết u và v sẽ thuộc về hai
cụm khác nhau.
Hình 2.19. Dữ liệu đầu vào cho 3 loại thuật toán học (a) học có giám sát,
(b,c) học bán giám sát, và (d) học không giám sát
34
Hình 2.19 minh họa cho dữ liệu được cung cấp cho các mô hình học có
giám sát, bán giám sát và không giám sát. Phân cụm bán giám sát là phương
pháp sử dụng các thông tin bổ trợ để hướng dẫn cho quá trình phân cụm. Các
thông tin bổ trợ có thể được cho dưới dạng tập các cặp ràng buộc hoặc một
tập nhỏ một số dữ liệu được dán nhãn. Công việc xác định những tập ràng
buộc hay những tập dữ liệu được dán nhãn được thực hiện bởi người phân
cụm. Việc xác định này tuỳ thuộc vào kinh nghiệm của người phân cụm
hoặc có thể dựa vào các tiêu chuẩn khác nhau tuỳ theo mục đích của việc
phân cụm.
Các thuật toán phân cụm bán giám sát đã được nghiên cứu và phát
triển gồm:
- Thuật toán Seed K-Means, đây là thuật toán K-Means tích hợp với
các dữ liệu đã gán nhãn nhằm trợ giúp trong pha khởi tạo các trọng tâm cho
các cụm.
- Thuật toán hạn chế K-Means, thuật toán này sử dụng các ràng buộc
giữa các điểm vào trong quá trình phân cụm, trợ giúp quá trình tìm kiếm
các cụm.
- Thuật toán MPC K-Means, thuật toán này sử dụng các ràng buộc để
huấn luyện hàm mục tiêu và trợ giúp quá trình tìm kiếm các cụm.
- Thuật toán SSDBSCAN, thuật toán này sử dụng một số điểm đã gán
nhãn sẵn cung cấp để giúp cho thuật toán tìm kiếm được các cụm có mật độ
bất kỳ.
- Thuật toán SSGC, đây là thuật toán phân cụm bán giám sát dựa trên đồ
thị, với việc sử dụng một số điểm đã gán nhãn để trợ giúp quá trình phân tách
đồ thị thành các thành phần liên thông lớn nhất.
- Thuật toán MCSSDBS, thuật toán này cải tiến thuật toán SSDBSCAN
bằng cách tích hợp các ràng buộc và các điểm đã gán nhãn sẵn vào trong cùng
35
một quá trình phân cụm làm tăng chất lượng của phân cụm khi so sánh với
thuật toán SSDBSCAN.
- Thuật toán MCSSGC, một cải tiến của thuật toán SSGC, tương tự như
MCSSDBS, thuật toán này tích hợp cả hai loại ràng buộc và các điểm đã gán
nhãn vào trong cùng một thuật toán để cải tiến chất lượng phân cụm khi so
sánh với thuật toán gốc SSGC.
2.5.3. Phương pháp học có giám sát
Học có giám sát là một trong những chủ đề quan trọng trong lĩnh vực trí
tuệ nhân tạo. Bài toán học có giám sát được phát biểu như sau:
Cho tập X = {xi}, i = 1, 2, …, N với xi diễn tả một đối tượng trong
không gian d chiều. Với mỗi xi tương ứng có nhãn là yi với yi {C1, C2, …,
CM} hoặc yi R. Mục tiêu của bài toán học có giám sát là đi xây dựng hàm
f(.) dựa trên các bộ (xi, yi) sao cho hàm f có khả năng xác định nhãn cho
một đối đượng xnew nào đó.
Bài toán học có giám sát được minh họa bởi hình 2.20. Học có giám sát
tức là học từ các mẫu thu thập được sau đó nhận dạng hay phân lớp cho mẫu
mới, nó khác với bài toán học không giám sát – không có mẫu học ban đầu
mà chỉ có dữ liệu cần giải quyết.
Huấn luyện
x1, x2,…,xn
yi ?
xnew
Bộ phân lớp: f(.)
Hình 2.20 Mô hình học có giám sát
Từ mô hình hình 2.20, chúng ta thấy rằng học có giám sát là việc xây
dựng mô hình phân lớp f() từ các dữ liệu mẫu. Từ các dữ liệu ban đầu,
36
chúng ta phải phát triển thuật toán: pha huấn luyện, nhằm tạo ra một bộ
phân lớp f(.) để có thể xác định nhãn cho các đối tượng đầu vào mới (xnew).
Các thuật toán học có giám sát tiêu biểu trong thực tế hiện nay có thể kể
đến như: phương pháp SVM (Support Vector Machine), phương pháp đồ thị
k-láng giềng gần nhất (k- Nearest Neighbour graph), phương pháp mạng nơ
ron, phương pháp cây quyết định, phương pháp rừng ngẫu nhiên. Đặc biệt
trong khoảng 10 năm trở lại đây phương pháp học sâu (deep learning) đã
được nghiên cứu và triển khai cho kết quả tốt trên các bài toán dữ liệu ảnh.
Mỗi phương pháp có những ưu và nhược điểm riêng cũng như phù hợp cho
các ứng dụng theo lĩnh vực.
Một đặc điểm quan trọng của thuật toán học có giám sát là vấn đề tập dữ
liệu huấn luyện. Khi xây dựng mô hình phân lớp thì số lượng tập dữ liệu huấn
luyện phải đủ lớn và đầy đủ thì sau khi huấn luyện chúng ta mới có bộ phân lớp
đúng đắn.
Một số ví dụ về bài toán học có giám sát như sau:
- Bài toán nhận dạng biển số xe: Hệ thống sẽ được học các ký tự chữ và
số, sau đó sẽ tự động phát hiện các biển số xe và chuyển về dạng văn bản.
- Bài toán nhận dạng mặt người: Hệ thống sẽ được huấn luyện với các
mẫu ảnh mặt người kèm với nhãn của nó, sau đó có thể định danh cho một
khuôn mặt mới.
37
2.6. Kết luận
Nội dung chương 2 tập trung vào ba phương pháp cơ bản để trích chọn
đặc trưng cho ảnh là phương pháp Gabor, phương pháp LBP và phương pháp
HoG. Đây là những phương pháp có cơ sở toán học vững chắc cũng như được
cộng đồng nghiên cứu quan tâm nhiều. Một nội dung nữa được trình bày
trong chương 2 là hai phương pháp học có giám sát, học bán giám sát và
không giám sát. Các phương pháp này sẽ được sử dụng trong quá trình xây
dựng hệ thống thực nghiệm ở chương 3.
38
Chương 3. Kết quả thực nghiệm
3.1. Giới thiệu
Trên cơ sở những nghiên cứu và tìm hiểu ở chương 2, chúng ta đã có 3
phương pháp cơ bản để trích chọn đặc trưng trên ảnh phục vụ cho các bài toán
phân lớp và nhận dạng. Trong chương này chúng tôi sẽ trình bày việc ứng
dụng phương pháp trích chọn đặc trưng Gabor trong bài toán phân loại cảm
xúc khuôn mặt. Để thực hiện điều này chúng tôi dùng phương pháp phân cụm
bán giám sát MCSSDBS, SSDBSCAN, phương pháp học bán giám sát Seed
K-Means và phương pháp học không giám sát K-Means để thử nghiệm. Tập
dữ liệu thử nghiệm là CK2 và tập dữ liệu thu thập được từ những ảnh người
Việt nam ITI. Chi tiết về tập dữ liệu ảnh được trình bày trong bảng 1.
Bảng 3.1 Thông tin về tập dữ liệu CK+
39
Hình 3.1 Ví dụ về ảnh trong tập CK+
Bảng 3.2 Thông tin về tập dữ liệu ITI
40
Hình 3.2 Ví dụ về ảnh trong tập dữ liệu ITI
3.2. Kết quả thực nghiệm
Để tiến hành thử nghiệm, chúng tôi thực hiện chương trình trên Matlab
và Java. Chương trình trên Matlab dùng để trích chọn đặc trưng bằng thuật
toán Gabor và giảm số chiều bằng thuật toán PCA. Chúng tôi sử dụng các
thuật toán SSDBSCAN, MCSSDBS, Seed K-Means viết trên Java để thực
hiện tính toán kết quả.
Đối với việc đánh giá kết quả của quá trình phân cụm chúng tôi sử
dụng chỉ số Rand Index. Chỉ số Rand Index dùng để so sánh kết quả giữa hai
phân cụm P1 và P2. Giả sử a là tổng số cặp xi và xj thuộc cùng một cụm trong
cả P1 và P2, b là tổng số cặp xi và xj thuộc hai cụm khác nhau trong cả P1 và
P2, chỉ số RI được tính bằng công thức sau:
RI sẽ có giá trí từ 0 đến 1, RI càng lớn thì độ chính xác của quá trình
phân cụm càng lớn.
41
3.2.1 Thực hiện phương pháp Gabor
Để trích chọn đặc trưng của ảnh chúng tôi sử dụng chương trình trên
Matlab, Matlab hỗ trợ các thư viện của phương pháp Gabor. Chẳng hạn như
gabor(sigma_y+y+1,sigma_x+x+1)= ((fu^2)/(pi*gamma*ni))*exp(-
(alfa^2*xc^2 + beta^2*yc^2))*exp((2*pi*fu*xc)*i);
Ví dụ về việc thực hiện trích chọn đặc trưng với ảnh, số chiều giữa lại
-3.9277593728888874e+01 7.1050642860220643e+00 - 3.4728674584734165e+00 5.1464623031117682e+00 - 4.1457460178153775e+00 6.8259377414196800e+00 - 1.0748274494963409e+01 8.2815769063968201e+00 - 1.8228045753255042e+01 7.3936703403248343e+00 - 7.3328220050384969e+00 9.3069924624417641e+00 - 8.3719167917704489e+00 -6.5286054464800163e+00 1.1783343409977993e+01 3.6489964174495788e+00 1.7032676861196192e+00 1.4643874894093987e+00 2.0422554496131852e+01 -1.0363877953406906e+01 - 6.1697827660015010e+00 -4.3776267092769743e+00 - 3.7600688586324464e+00 -2.1362749092309830e+01 1.1077605401503449e+01 1.2667949403672951e+01 4.0166419631208339e-01 -3.1591007179729171e+00 - 7.3150989610128274e+00 -4.6513319392207286e+00 - 7.1488623092409167e+00 3.6162808105149331e+00 4.4366915282603498e+00 2.2466047906115794e+00 1.6938113198410927e+00 -1.6100506589435477e+00
là 36 như sau đây:
Sau khi thu được dữ liệu đã chuyển đổi chúng tôi thực hiện chương
trình trên Java.
3.2.2 Kết quả thực nghiệm với thuật toán học bán giám sát MCSSDBS,
SSDBSCAN.
Thuật toán được dùng để thử nghiệm cho việc phân cụm ảnh mặt người
cho hai bộ dữ liệu CK+ và ITI là MCSSDBS và thuật toán phân cụm bán
giám sát SSDBSCAN.
Sử dụng phương pháp trích chọn đặc trưng Gabor, chúng tôi đã xây
dựng hệ thống biến đổi ảnh về các véc tơ chuẩn hóa. Các dữ liệu về ràng buộc
42
và các giá trị nhãn được sinh ngẫu nhiên từ tập dữ liệu theo các thông tin có
được từ các nhãn tương ứng. Kết quả của thực nghiệm được minh họa trên
hình 3.3 và 3.4.
Chúng ta có thể thấy rằng kết quả phân cụm tốt nhất cho tệp CK+ đạt
được là 97%, khi sử dụng 25 nhãn lớp và 400 ràng buộc. Kết quả tốt nhất cho
tập dữ liệu ITI là 87%. Các kết quả này cho thấy là tương đối tốt nhất là tập
dữ liệu CK+.
Các kết quả trên cũng cho thấy thuật toán MCSSDBS cho kết quả tốt
nhất đặc biệt là trong trường hợp chỉ sử dụng một loại must-link.
Với kết quả này chúng ta hoàn toàn có thể áp dụng vào các bài toán
thực tế như phân loại cảm xúc online, tương tác người-máy tính. Chúng ta
cũng thấy rằng kết quả phân cụm còn phụ thuộc vào các yếu tố khác như tiền
xử lý dữ liệu, xây dựng tập ảnh, trích chọn đặc trưng,…
Hình 3.3. Kết quả thực nghiệm cho tập dữ liệu CK+
43
Hình 3.4. Kết quả thực nghiệm cho tập dữ liệu ITI
3.2.3 Kết quả thực nghiệm với thuật toán K-Means và Seed K-Means
Với thuật toán K-Means, chỉ có một kết quả duy nhất là kết quả phân
cụm. Do thuật toán K-Means thường phụ thuộc vào quá trình chọn các trọng
tâm ở bước đầu tiên. Chúng tôi thực hiện 20 lần chạy K-Means và tính giá trị
kết quả trung bình. K-Means đạt được 67.6% giá trị RI sau 50 lần chạy.
Hình 3.5 và hình 3.6 trình bày kết quả thực hiện phân cụm ảnh với
thuật toán Seed K-Means cho hai tập dữ liệu CK+ và tập dữ liệu ITI. Kết quả
phân cụm cho thấy với một lượng dữ liệu gán nhãn đã cung cấp, chất lượng
phân cụm không cải thiện được nhiều. Điều này có thể lý giải về việc phân bố
các điểm trong tập dữ liệu là có hình dạng không phải hình cầu vì chất lượng
phân cụm khi sử dụng thuật toán SSDBSCAN và MCSSDBS là cao hơn hẳn.
44
Hình 3.5 Kết quả phân loại trạng thái cảm xúc khuôn mặt
bằng phương pháp Seed K-Means
Hình 3.6. Kết quả phân cụm cho tập ITI
45
3.3. Kết luận
Nội dung chương 3 nhằm tiến hành thực nghiệm xây dựng chương
trình và đánh giá kết quả. Với các kết quả thử nghiệm trên, mặc dù chưa nhiều
nhưng đã đạt được những nghiên cứu ban đầu về việc phân loại ảnh trạng thái
cảm xúc khuôn mặt. Với tập dữ liệu ảnh trạng thái cảm xúc khuôn mặt, chúng
tôi sử dụng hai tập dữ liệu là CK2 và ITI, các thuật toán phân cụm bán giám
sát sử dụng là SSDBSCAN, MCSSDBS, Seed K-Means và K-Means. Kết quả
thực nghiệm cho thấy chất lượng của quá trình phân lớp là tốt điều đó khẳng
định quy trình sử dụng thuật toán Gabor trong trích chọn đặc trưng là đúng
đắn và phù hợp. Với các thuật toán phân cụm bán giám sát, chất lượng phân
cụm là tốt hơn hẳn vì đã có thêm các thông tin bổ trợ trong quá trình phân
cụm. Để tiến tới hoàn thiện hơn nữa chúng ta cần thêm nhiều thực nghiệm với
các tập dữ liệu khác, các thuật toán khác (chẳng hạn thuật toán học có giám
sát), để tiếp tục hoàn thiện nghiên cứu của mình.
46
KẾT LUẬN
Những kết quả đã đạt được
Sau khi thực hiện luận văn với chủ đề nghiên cứu về lĩnh vực trích chọn
đặc trưng và ứng dụng cho bài toán phân loại trạng thái cảm xúc khuôn mặt
tôi đã thu được các kết quả sau đây:
- Hiểu tổng quan về lĩnh vực xử lý ảnh và các bài toán ứng dụng trong
xử lý ảnh. Đây là một hướng nghiên cứu có nhiều ứng dụng trong thực tế nhất
là trong thời đại công nghiệp 4.0, hàng ngày có hàng tỷ bức ảnh và video được
đưa lên mạng và vấn đề là sử dụng (khai phá) những dữ liệu này như thế nào
trong thực tế là một vấn đề quan trọng.
- Đã nghiên cứu và hiểu được phương pháp trích chọn đặc trưng trên
ảnh, cụ thể là ba phương pháp cơ bản gồm Gabor, HoG và LBP. Mỗi phương
pháp có ưu điểm và nhược điểm riêng nhưng bản chất của chúng là tìm ra các
đặc trưng nhất trong bề mặt ảnh giúp cho các công đoạn nhận dạng, phân loại
ở các pha sau được chính xác hơn.
- Nghiên cứu ứng dụng kết quả của bài toán trích chọn đặc trưng cho
việc sử dụng các thuật toán học máy. Tác giả cũng đã nắm bắt và tìm hiểu
các mô hình học máy như học không giám sát, học bán giám sát và học có
giám sát.
- Đã thực hiện thử nghiệm một số kết quả sử dụng phương pháp học bán
giám sát (SSDBSCAN, MCSSGC, Seed K-Means) và phương pháp học
không giám sát (K-Means). Các kết quả đạt được cho thấy có thể áp dụng các
thuật toán này vào các ứng dụng thực tế triển khai.
Hướng phát triển tiếp theo của đề tài
Do thời gian và kiến thức còn hạn chế, trong khuôn khổ của luận văn tôi
không thể nghiên cứu kỹ và toàn diện bài toán trích chọn đặc trưng trên ảnh.
47
Trong tương lai, một số hướng nghiên cứu mà tôi dự kiến tiếp tục như sau:
- Tiếp tục nghiên cứu và tìm hiểu về lĩnh vực xử lý ảnh, các phương
pháp trích chọn đặc trưng khác, phân tích ưu nhược điểm của chúng.
- Nghiên cứu ứng dụng cho bài toán nhận dạng, phân loại trạng thái cảm
xúc khuôn mặt. Các tập dữ liệu lớn hơn, các thuật toán khác của học máy cần
được tiếp tục thử nghiệm và đánh giá để có cái nhìn toàn diện hơn về các kết
quả đạt được.
48
TÀI LIỆU THAM KHẢO
Tiếng Việt:
[1]. Trịnh Tấn Đạt, Phạm Thế Bảo (2013), "Đặc trưng Gabor kết hợp với
AdaBoost và K-Means trong bài toán nhận dạng mặt người", Tạp chí
Khoa học Đại học Sư phạm Thành phố Hồ Chí Minh.
[2]. Hồ Đức Lĩnh, Huỳnh Hữu Hưng (2015), "Nhận dạng trái bưởi bằng
sóng Gabor, ma trận đồng hiện mức xám Co-occurrence và thuật toán
k-NN", Tạp chí khoa học, Đại học Đông Á.
[3]. Trương Quốc Bảo, Trương Hùng Chen, Trương Quốc Định (2015), "Phát
hiện và nhận dạng biển báo giao thông đường bộ sử dụng đặc trưng HoG
và mạng Nơ ron nhân tạo", Tạp chí khoa học Trường Đại học Cần Thơ.
Tiếng Anh:
[4]. Ali Mollahosseini, Behzad Hassani, Michelle J. Salvador, Hojjat
Abdollahi, David Chan, Mohammad H. Mahoor, “Facial Expression
Recognition from World Wild Web”. In Computer Vision and Pattern
Recognition Workshops, pp. 1509-1516, 2016.
[5]. Mark S. Nixon, Alberto S. Aguado, "Feature extraction and Image
processing", Academic Press, 2008.
[6]. Bo Yang, Songcan Chen, A comparative study on local binary pattern
(LBP) based face recognition: LBP histogram versus LBP image.
Neurocomputing 120: 365-379 (2013).
[7]. Chengjun Liu, Harry Wechsler: Gabor feature based classification using
the enhanced fisher linear discriminant model for face recognition. IEEE
Trans. Image Processing 11(4): 467-476, 2002.
49
[8]. Mohammad Haghighat, Saman A. Zonouz, Mohamed Abdel-Mottaleb,
CloudID: Trustworthy cloud-based and cross-enterprise biometric
identification. Expert Syst. Appl. 42(21): 7905-7916 (2015).
[9]. Vũ Việt Vũ, Đỗ Hồng Quân, 2017, Density-based clustering with side
information and active learning. In proceeding of International
Conference on Knowledge and Systems Engineering, pp. 174-179.
[10]. Vũ Việt Vũ, 2018, An efficient Semi-supervised Graph-based clustering,
Intelligent Data Analysis, Volume 22(2), ISSN: 1571-4128, pp. 297-
307.
[11]. Levi Lelis, Jörg Sander: Semi-supervised Density-Based Clustering.
ICDM : 842-847, 2009.
[12]. Martin Ester, Hans-Peter Kriegel, Jörg Sander, Xiaowei Xu: A Density-
Based Algorithm for Discovering Clusters in Large Spatial Databases
with Noise. KDD, 1996.
[13]. S. Basu, I. Davidson, and K. L. Wagstaff, Constrained Clustering:
Advances in Algorithms, Theory, and Applications, Chapman and
Hall/CRC Data Mining and Knowledge Discovery Series, 1st edn., 2008.
[14] Anil K. Jain: Data clustering: 50 years beyond K-means. Pattern
Recognition Letters (PRL) 31(8):651-666 (2010).
[15]. Sugato Basu, Arindam Banerjee, Raymond J. Mooney, Semi-supervised
Clustering by Seeding. In proceeding of International Conference on
Machine Learning, 2002.
[16]. Yann LeCun, Yoshua Bengio, Geoffrey E. Hinton: Deep learning.
Nature 521(7553): 436-444 (2015).
[17]. Taher Khadhraoui, Faouzi Benzarti, Hamid Amiri: Gabor-feature-based
local generic representation for face recognition with single sample per
person. SERA 2017: 157-160.
50
[18]. Atreyee Sinha, Sugata Banerji, Chengjun Liu: New color GPHOG
descriptors for object and scene image classification. Mach. Vis. Appl.
25(2): 361-375 (2014)
[19]. Nabila Mansouri, Yousra Ben Jemaa, Eric Watelain: Optimized HOG
Descriptor for on Road Cars Detection. ICDSC 2016: 166-171
[20]. Li Liu, Paul W. Fieguth, Yulan Guo, Xiaogang Wang, Matti
Pietikäinen: Local binary features for texture classification: Taxonomy
and experimental study. Pattern Recognition 62: 135-160 (2017).
[21]. Ze Lu, Xudong Jiang, Alex C. Kot: A novel LBP-based Color descriptor
for face recognition. ICASSP 2017: 1857-1861.
[22]. T. Ojala, M. Pietikäinen, and D. Harwood (1996), "A Comparative
Study of Texture Measures with Classification Based on Feature
Distributions", Pattern Recognition, vol. 29, pp. 51-59
[23]. https://www.quora.com/How-does-features-extraction-on-images-work
[24]. http://www.pitt.edu/~emotion/ck-spread.htm
[25] https://vi.scribd.com/doc/138024664/Histogram-of-Oriented-Gradients-HOG