Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Nhận dạng cảm xúc con người bằng phương pháp pca kết hợp với mạng nơron
Nội dung xem thử
Mô tả chi tiết
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM
-------------------------------------
NGUYỄN THÁI MINH ANH
NHẬN DẠNG CẢM XÚC CON NGƯỜI
BẰNG PHƯƠNG PHÁP PCA KẾT HỢP
VỚI MẠNG NƠRON
Chuyên ngành: Hệ thống thông tin
Mã số: 60.48.01.04
TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT
Đà Nẵng - Năm 2019
Công trình được hoàn thành tại
TRƯỜNG ĐẠI HỌC SƯ PHẠM
Người hướng dẫn khoa học: TS. Nguyễn Thị Ngọc Anh
Phản biện 1: PGS. TSKH. Trần Quốc Chiến
Phản biện 2: TS. Nguyễn Quang Thanh
Luận văn đã được bảo vệ trước Hội đồng chấm Luận văn tốt
nghiệp thạc sĩ ngành Hệ thống thông tin họp tại trường Đại học
Sư phạm vào ngày 07 tháng 4 năm 2019.
Có thể tìm hiểu luận văn tại:
- Thư viện Trường Đại học Sư phạm – ĐHĐN
- Khoa Công nghệ thông tin, trường Đại học Sư phạm - ĐHĐN
1
MỞ ĐẦU
Xã hội đang ở nền công nghiệp 4.0 ngày nay phần lớn các thiết
bị điện tử đều phát triển theo xu hướng tự động hóa, thông minh, hiểu
ý con người, các thiết bị thông minh phổ biến như smart phone, smart
TV, smart watch, smart house, xe tự lái, máy in 3D, công nghệ nano,
robot thế hệ mới,... Để làm được điều đó các thiết bị cảm biến, các
thuật toán nhận dạng ra đời ngày càng hiện đại hơn, chúng có thể
nhận biết hoạt động, hình dáng của con người và hoạt động theo ý
muốn con người. Thì bài toán “nhận dạng cảm xúc của con người” là
một trong số đó.[1] Bài toán nhận dạng cảm xúc khuôn mặt đã được
bắt đầu nghiên cứu từ những năm 1970 và kết quả của nó ngày càng
cao hơn.[2]
Xuất phát từ những yêu cầu thực tế, tôi đã chọn đề tài “NHẬN
DẠNG CẢM XÚC CON NGƯỜI BẰNG PHƯƠNG PHÁP PCA
KẾT HỢP VỚI MẠNG NƠRON”
Bố cục luận văn gồm 3 chương:
Chương 1: Tổng quan về nhận dạng cảm xúc con người.
Mô tả bài toán bằng lý thuyết, đưa ra cấu trúc tổng quát của hệ
thống nhận dạng. Khảo sát những phương pháp đã thực hiện trước
đây và nêu ra ưu, nhược điểm của nó, sau đó đưa ra hướng giải quyết
mới của đề tài là sử dụng PCA kết hợp ANN.
Chương 2: Cơ sở lý thuyết
Trình bày chi tiết lý thuyết về phương pháp tách đặc trưng
(PCA) và phương pháp nhận dạng dùng mạng Nơron (ANN).
Chương 3: Nhận dạng cảm xúc bằng phương pháp PCA
kết hợp ANN
Giới thiệu dữ liệu thực tế, xây dựng mô hình bài toán sau đó
đánh giá mô hình đã xây dựng dựa trên kết quả thực nghiệm.
2
CHƯƠNG 1
TỔNG QUAN VỀ NHẬN DẠNG CẢM XÚC CON NGƯỜI
1.1. Mô tả bài toán nhận dạng cảm xúc
Giả sử có một cơ sở dữ liệu ảnh về các cảm xúc của con người
đã được lưu trong máy, bài toán nhận dạng là làm sao để khi đưa ảnh
khuôn mặt của một người bất kì vào thì máy sẽ thu nhận mặt, tách
đặc trưng trên mặt và nhận dạng cảm xúc trên mặt của người này
trong cơ sở dữ liệu.
Hình 1.1. Mô hình bài toán nhận dạng cảm xúc trên mặt người
1.2. Hệ thống nhận dạng cảm xúc
Hệ thống nhận dạng cảm xúc cơ bản như sau:
Hình 1.2. Hệ thống nhận dạng cảm xúc cơ bản
Tiền xử lí: Quá trình tiền xử lý đối với khuôn mặt nhằm nâng
Ảnh tĩnh
Tiền xử lí
Trích chọn đặc trưng
Nhận dạng cảm xúc
3
cao chất lượng ảnh, chuẩn hóa dữ liệu, kích thước ảnh. Việc chuẩn
hóa này khiến độ lệch giữa 2 điểm ảnh được giảm xuống làm quá
trình trích chọn đặc trưng thêm chính xác.
Trích chọn đặc trưng: là kỹ thuật sử dụng các thuật toán để
lấy ra những thông tin mang những đặc điểm riêng biệt của một
người. Trong bài này sử dụng phương pháp PCA, phương pháp này
sẽ được trình bày cụ thể ở chương 2.[4]
Nhận dạng cảm xúc: Những đặc trưng sau khi được trích
chọn sẽ đưa vào khối nhận dạng để phân lớp đối tượng. Trong đề tài
này tôi dùng mạng nơron để nhận dạng các đối tượng.
1.3. Một số phương pháp nhận dạng cảm xúc khuôn mặt
1.3.1. Phương pháp sử dụng Action Units
Phương pháp Action Units (AU) này nhận dạng cảm xúc
dựa trên các đơn vị chuyển động của khuôn mặt. Có tất cả 64 Au,
mỗi AU là sự kết hợp của một số các cơ trên khuôn mặt. Cảm xúc
được nhận dạng bằng cách phát hiện tại một thời điểm có bao
nhiêu AU xuất hiện trên khuôn mặt và với các AU xuất hiện cùng
nhau đó thì tương ứng với 1 loại cảm xúc. [2]
Hình 1.4. Phương pháp AU
1.3.2. Phương pháp dùng mô hình AAM kết hợp tương
quan điểm
Phương pháp này sử dụng mô hình AAM để phát hiện khuôn
mặt. Sau đó dựa vào tỷ lệ giữa 2 mắt, miệng, mũi... để nhận dạng
4
cảm xúc. Khó khăn của phương pháp này là việc xác định ngưỡng tỉ
lệ để xác định cảm xúc.[2]
Hình 1.5. Phương pháp AAM kết hợp tương quan điểm
1.3.3. Nhận dạng bằng phương pháp PCA truyền thống
Phân tích thành phần chính (Principal Component Analysis –
PCA) là kĩ thuật hữu ích trong các ứng dụng nhận dạng mặt và nén
ảnh và là một kĩ thuật phổ biến để tìm mẫu trong các dữ liệu nhiều
chiều. [2]
Ưu điểm
- Tìm được đặc tính tiêu biểu của đối tượng cần nhận dạng mà
không cần phải xác định các thành phần và mối quan hệ giữa các
thành phần đó.
- Thuật toán có thể thực hiện tốt với các ản có độ phân giải
cao, do PCA sẽ thu gọn ảnh thành một ảnh có kích thước nhỏ hơn.
- PCA có thể kết hợp với các phương pháp khác như: Mạng
Nơron, cây quyết định, Support Vector Machine, ... để mang lại hiệu
quả nhận dạng cao hơn.
Nhược điểm
- PCA phân loại theo chiều lớn nhất của tập vector. Tuy nhiên,
chiều phân bố lớn nhất không phải lúc nào cũng mang lại hiệu quả tốt
nhất cho bài toán nhận dạng. Đây là nhược điểm cơ bản của PCA
1.4. Đề xuất
PCA là phương pháp dùng để xây dựng đặc trưng khuôn mặt,
nó là một nền tảng để phát triển những thuật toán khác. PCA nếu
được áp dụng với những phương pháp khác như mạng Nơron thì có
5
thể sẽ cho ra độ chính xác cao hơn.
Tổng kết chương 1
Như vậy, chương này tôi đã phát biểu và đưa ra được mô hình
chung của một bài toán nhận dạng và mô hình chung của hệ thống
nhận dạng mà tôi sẽ làm trong đề tài này. Bên cạnh đó, để khắc phục
những nhược điểm của phương pháp nhận dạng cũ, tôi đề xuất giải
quyết bài toán theo hướng tiếp cận mới bằng phương pháp PCA kết
hợp với mạng Nơron để nhận dạng. Ở chương 2 tôi sẽ trình bày rõ về
lí thuyết của PCA và mạng Nơron.
CHƯƠNG 2
CƠ SỞ LÝ THUYẾT
2.1. Phân tích thành phần chính Principal Component Analysis
(PCA)
2.1.1. Ý tưởng chính
Mục tiêu của phương pháp PCA là “giảm số chiều” của 1 tập
vector sao cho vẫn đảm bảo được “tối đa thông tin quan trọng nhất”.
Tức Feature extraction nhằm mục đích giữ k thuộc tính mới. [6]
Hình 2.1. Phương pháp phân tích thành phần chính (PCA)
Không gian N chiều với
hệ cơ sở v1, v2,…,vn
Không gian K chiều
(K<<N) với hệ cơ sở u1,
u2,…,uk
Ánh xạ tuyến
tính T cần tìm
(phép chiếu)
Vector x ban
đầu có N chiều
Vector y chỉ còn K
�� = ��1��1 + ��2��2 + ⋯ + ��������
�� = ��1��1 + ��2��2 + ⋯ + ��������
6
2.1.2. Tính toán các Eigenfaces
Phần này em sẽ sử dụng bộ dữ liệu thực tế Japanese Female
Facial Expression (JAFEE) để biểu diễn [7]. Tổng hình ảnh trong bộ
dữ liệu này 137, trong đó 110 ảnh dùng để huấn luyện và 27 hình ảnh
dùng để test.
Như vậy, tập huấn luyện có 110 hình ảnh, khi đó =
. Các ảnh huấn luện là I1, I2, …, I110 , gọi chung là Ii
Hình 2.3. Các khuôn mặt huấn luyện
Bước 1: Chuyển các hình ảnh trong tập huấn luyện thành các
vector
Biểu diễn mọi ảnh Ii
thành vector i
. Mỗi hình ảnh có kích
thước 256x256 pixel.
(ảnh 256x256) → i (vector 65536x1)
Bước 2: Tính vector khuôn mặt trung bình
theo công thức:
1
1
M
i M
i
i
là vector một chiều (N2
×1) đại diện cho mỗi ảnh.
7
Ψ là vector trung bình (kích thước N2
×1) của tập tất cả các i
trên. Ψ còn được gọi là vector trung bình mặt của tập luyện. Nên Ψ là
vector có số chiều 65536x1
Bước 3:Trừ vector khuôn mặt trung bình: = i – Ψ
là vector sai số ứng với mỗi ảnh (vector 65536x1)
Bước 4: Tính ma trận hiệp phương sai (covariance) C:
1
1
=AA
M
T T
n n
n
C
M
Trong đó: = [ 1 2 11 ] nên A sẽ có kích thước là
N
2
xM (65536x110). Ta thấy ma trận A kích thước 65536 x 110 và
ma trận AT
có kích thước M x N2
(110 x 65536). Nên C sẽ có kích
thước N2
xN2
(65536 x 65536). Kích thước này quá lớn, có thể làm
chậm hệ thống hoặc không đủ bộ nhớ để xử lí dữ liệu. Giải pháp của
chúng ta là phải làm giảm giảm số chiều của ma trận Covariance
bằng cách hoán đổi A và A
T
với nhau. Lúc đó C =A
T
.A thì số chiều
của C sẽ giảm còn MxM (110x110).
Bước 5: Tính các trị riêng (eigenvalue) và vecto đặc trưng
(Eigenvecto) ui của ma trận hiệp phương sai.
Giá trị riêng và vecto riêng của ma trận A được định nghĩa như
sau:
Cho A là ma trận vuông cấp n trên trường số K (K= ). Số
K được gọi là giá trị riêng (gọi tắt là trị riêng) của ma trận A, nếu
tồn tại một vecto ,
sao cho A = . Khi đó vecto u
được gọi là vecto riêng của ma trận A ứng với giá trị riêng
Ma Trận A.A
T
và A
T
.A luôn có chung trị riêng và vecto đặc
trưng thì có liên hệ với nhau bởi biểu thức ui = A.vi
trong đó vector vi
có kích thước là M x 1 (110 x 1), ta sẽ dễ dàng suy ra được các vector
riêng ui có kích thước N2
x1 (65536x1)
8
Các trị riêng của ma trận A
T
.A sẽ được sắp xếp lại theo thứ tự
giảm dần, và chỉ lấy các trị riêng “non-zero”.
Chú ý nên chuẩn hóa các vector đặc trưng ui về vector đơn vị
‖ ‖=1.
Ta rút ra được các chú ý sau (theo TOÁN HỌC):
Ma trận A.A
T
có thể có đến N
2
trị riêng (mỗi trị riêng sẽ
ứng với vô số vector riêng – nó được gọi là “không gian riêng ứng
với trị riêng nào đó”).
Ma trận A
T
.A có thể có đến M trị riêng.
M trị riêng của ma trận A
T
.A (kèm với các vector riêng
tương ứng), sẽ ứng với M trị riêng lớn nhất của A.A
T
(cái này quan
trọng bởi ta đang đi tìm các hướng biến thiên quan trọng nhất). [6]
Bước 6: Chỉ giữ lại K vector riêng trong số M vector nói trên
(ứng với K trị riêng lớn nhất), tất nhiên K<<N2
. Có 2 cách để xác
định K.
Cách 1:
- Sắp xếp theo thứ tự dãy giảm dần các eigenvalues tìm được.
- Theo dõi sự biến thiên của dãy trên, khi không còn biến thiên
(hoặc xấp xỉ bằng không) thì lúc đó ta đã chọn đủ K.
Cách 2: Chọn K theo công thức sau:∑
∑
> Threshold
2.3. Phương pháp nhận diện sử dụng Artipicial Neural Network
(ANN)
2.3.1. Cấu trúc của ANN
Cấu trúc cơ bản của 1 Neural Network gồm: một lớp vào
(input layer), một lớp ra (output layer) và một hay nhiều lớp ẩn
(hidden layer). Mỗi lớp chứa nhiều Neural. Các Neural giữa các lớp
liên kết với nhau. Hình minh họa cho một mạng Neural:
9
Hình 2.5. Cấu trúc 1 Neural Network cơ bản
Với mỗi Neural có cấu trúc như sau:
Hình 2.6. Sơ đồ khối tổng quát của 1 Nơ-ron trong Neural Network
Chi tiết về các thành phần của một Nơ-ron như sau:
Inputs
: Mỗi Input tương ứng với 1 thuộc tính (attribute)
của dữ liệu (patterns).
Connection Weights (Trọng số liên kết) Wij: Trọng số kết
nối giữa đầu vào thứ j với Nơ-ron i. Đây là thành phần rất quan trọng
của một mạng Nơ-ron, nó thể hiện mức độ quan trọng (độ mạnh) của
10
dữ liệu đầu vào đối với quá trình xử lý thông tin (quá trình chuyển
đổi dữ liệu từ lớp này sang lớp khác). Quá trình học (Learning
Processing) của mạng Nơ-ron thực ra là quá trình điều chỉnh các
trọng số (Weight) của các input data để có được kết quả mong muốn.
[11]
Giá trị Bias(
): Hay còn được gọi là độ lệch, được đưa vào
để thể hiện sự thiên vị cho một thông số nào đầu vào nào đó trong
mạng.
Summation Function (Hàm tổng): Tính tổng trọng số của tất
cả các input được đưa vào mỗi Nơ-ron. Hàm tổng của một Nơ-ron
đối với n input được tính theo công thức sau:
= ∑
1 +
Hàm tổng (summation function) của một Neural cho biết khả
năng kích hoạt (activation) của neuron đó còn gọi là kích hoạt bên
trong (internal activation). Các Neural này có thể sinh ra một output
hoặc không trong mạng Neural (nói cách khác rằng output của 1
Neural có thể được chuyển đến lớp tiếp theo trong mạng Neural hoặc
không). Mối quan hệ giữa internal activation và kết quả (output)
được thể hiện bằng hàm chuyển đổi (transfer function). [11]
f(
) là hàm truyền hay còn gọi là hàm kích hoạt, trong đề tài
này em sử dụng hàm truyền sigmoid ở lớp ẩn và hàm softmax ở lớp
ra
o Hàm sigmoid: ( ) =
1
1
Kết quả của sigmoid function thuộc khoảng [0,1] nên còn gọi
là hàm chuẩn hóa (normalized function).
o Hàm softmax: ( ) =
∑
Kết quả của hàm softmax là dãy kết quả có tổng bằng 1.
là đầu ra của Nơ-ron thứ i