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

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ƠRONNHẬ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

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

1. Lí do chọn đề tài

Chúng ta đã biết, công nghiệp 4.0 là xu hướng hiện thời trong việc tự động hóa và trao đổi dữ liệu trong công nghệ sản xuất. 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ính xác 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ố đó. Trong các cách biểu đạt ngôn ngữ của cơ thể, cảm xúc là cái thể hiện rõ nhất những gì mà người nghe cảm thấy… Nhận dạng cảm xúc có nhiều ứng dụng phục vụ cho con người ví dụ như trong lĩnh vực y học có thể dùng hệ thống tương tác giữa người và máy, giúp những người bị tật hoặc khiếm khuyết có thể trao đổi được, dùng điệu bộ bàn tay, khuôn mặt,… hoặc trong lĩnh vực an ninh có thể dùng hệ thống nhận dạng một người có phải tội phạm hay không thông qua các cảm biến nhịp tim, hơi thở, sắc thái biểu hiện trên khuôn mặt trong quá trình tra hỏi,.v.v… và còn nhiều những ứng dụng khác nữa. Xuất phát từ nhưng yêu cầu thực tế, đó là lí do 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”

2. Mục tiêu và nhiệm vụ

2.1. Mục tiêu

  • Thu nhận khuôn mặt từ hình ảnh của một người, xử lí các đặc trưng trên hình ảnh đó và nhận dạng trạng thái cảm xúc của người đó như thế nào: vui, buồn, giận hay ở trạng thái trung lập.

2.2. Nhiệm vụ

Để đạt được mục trên, cần phải thực hiện các nhiệm vụ sau:

  • Thu nhận mặt: đây là giai đoạn tiền xử lý để tự động tìm ra vùng chứa mặt từ các ảnh đầu vào.
  • Dùng phương pháp PCA để chuẩn hóa và tách đặc trưng trên mặt.
  • Nhận dạng cảm xúc trên mặt người bằng mạng Nơron dựa trên kết quả của việc tách đặc trưng.

3. Đối tượng và phạm vi nghiên cứu

3.1. Đối tượng nghiên cứu

  • Những cảm xúc trên khuôn mặt của một hoặc nhiều người thông qua hình ảnh.

3.2. Phạm vi nghiên cứu

  • Nhận dạng các cảm xúc: vui, buồn, giận dữ và trung lập.

4. Mục đích và ý nghĩa đề tài

4.1. Mục đích của đề tài

  • Nghiên cứu mạng Nơron nhân tạo
  • Nghiên cứu thuật toán trích chọn đặc trưng PCA
  • Ứng dạng mạng Nơron vào bài toán nhận dạng cảm xúc con người

4.2. Ý nghĩa của đề tài

  • Về khoa học:
  • Đưa ra hệ thống nhận dạng Nghiên cứu nhận dạng cảm xúc bằng mạng Nơron sẽ phục vụ cho việc phát triển hệ thống nhận dạng.
  • Về thực tiễn:
  • Đề tài sẽ góp phần xây dựng thêm cho hệ thống nhận dạng cảm xúc phục vụ cho đời sống con người.

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

5.1. Phương pháp nghiên cứu lí thuyết

  • Nghiên cứu tài liệu về cơ sở lí thuyết: mạng nơron nhân tạo (Artificial Neural Network – ANN), thuật toán trích chọn đặc trưng (Principal Component Analysis – PCA),…
  • Giáo trình Data Mining, Machine Learning
  • Các đề tài, bài báo có liên quan về nhận dạng như nhận dạng hình ảnh, cảm xúc và các thuật toán về nhận dạng như Decision Tree, SVM, Knn,…

5.2. Phương pháp nghiên cứu thực nghiệm

  • Nghiên cứu công cụ MatLab
  • Nghiên cứu việc viết chương trình cho bài toán nhận dạng bằng ngôn ngữ MatLab.
  • So sánh kết quả thực nghiệm trên các phương pháp mạng Nơron, Decision Tree, SVM, Knn.

6. Bố cục luận văn

Ngoài phần mở đầu, kết luận. 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.

Chương 2: Cơ sở lý thuyết

Chương 3: Nhận dạng cảm xúc bằng phương pháp PCA kết hợp ANN

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
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

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:

Ảnh tĩnh

Tiền xử lí

Trích chọn đặc trưng

Nhận dạng cảm xúc

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 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 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]

E:\luanvantotnghiep\gui_thay\báo cáo\tmp35b0444_thumb.png

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ó 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]

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

Hình 2.1. Phương pháp phân tích thành phần chính (PCA)

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 256×256 pixel.

(ảnh 256×256) → Γi (vector 65536×1)

Bước 2: Tính vector khuôn mặt trung bình theo công thức:

Γi là vector một chiều (N2×1) đại diện cho mỗi ảnh.

Ψ 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 65536×1

Bước 3:Trừ vector khuôn mặt trung bình: = ΓiΨ

là vector sai số ứng với mỗi ảnh (vector 65536×1)

Bước 4: Tính ma trận hiệp phương sai (covariance) C:

Trong đó: nên A sẽ có kích thước là N2xM (65536×110). 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 N2xN2 (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 AAT với nhau. Lúc đó C =AT.A thì số chiều của C sẽ giảm còn MxM (110×110).

Bước 5: Tính các trị riêng (eigenvalue) và vector đặc trưng (Eigenvector) ui của ma trận hiệp phương sai.

Ma Trận A.ATAT.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 N2x1 (65536×1)

Các trị riêng của ma trận AT.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.AT có thể có đến N2 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 AT.A có thể có đến M trị riêng.
    • M trị riêng của ma trận AT.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.AT (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:

Kết quả hình ảnh cho neural network

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 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:

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
    • Hàm sigmoid:

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).

    • 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
  • Kết quả xử lý tại các Nơ-ron (output) đôi khi rất lớn, vì vậy transfer function được sử dụng để xử lý output này trước khi chuyển đến lớp tiếp theo. Nếu output của một Nơ-ron nào đó nhỏ hơn threshold thì nó sẻ không được chuyển đến lớp tiếp theo. [11]

2.3.2. Huấn luyện Neural Network

Huấn luyện Neural Network là việc điều chỉnh các thông số: trọng số liên kết W và giá trị bias b sao cho khi đưa các giá trị input Xi đầu vào thì thu được đầu ra như mong muốn với hiệu năng cao nhất có thể.

Việc huấn luyện này có rất nhiều phương pháp khác nhau. Phương pháp phổ biến nhất hiện nay là thuật toán lan truyền ngược (Backpropagation).

Hình 2.7. Quá trình lan truyền ngược

  • Lan truyền thuận: dữ liệu được truyền từ lớp nơron đầu vào đến lớp đầu ra và cho kết quả của lớp nơron đầu ra: Với f là hàm kích hoạt (sigmoid)
  • Lan truyền lỗi ngược lại qua mạng: Thuật toán được sử dụng là trung bình bình phương lỗi (là một trong các hàm mục tiêu) của đầu ra so với kết quả thật sự . Đầu vào của thuật toán chính là tập các cặp mô tả hoạt động đúng của mạng:

Trong đó là một đầu vào và là một đầu ra mong muốn tương ứng, N là số mẫu huấn luyện.

Với mỗi đầu ra được tính toán của mạng, được đem so sánh với đầu ra mong muốn, thuật toán sẽ điều chỉnh các thông số của mạng để tối thiểu hóa trung bình bình phương lỗi:

Cập nhật các trọng số và độ lệch: Ở mỗi lần lan truyền ngược các trọng số W,b được cập nhật theo công thức bên dưới: ,

Trong đó là trọng số liên kết giữa Neural thứ i với thuộc tính thứ j, là độ lệch của Neural thứ i. là tốc độ học

Tóm lại: Khi giải quyết bài toán bằng mạng nơron theo bằng luật học lan truyền ngược có những vấn đề rút ra là:

  • Sẽ có bao nhiêu nơron trong mạng, bao nhiêu đầu vào, bao nhiêu đầu ra và bao nhiêu lớp ẩn. Càng nhiều lớp ẩn bài toán trở nên phức tạp nhưng có thể giải quyết được những vấn đề lớn.
  • Luật học lan truyền ngược cung cấp một phương pháp “xấp xỉ” cho việc tìm trong không gian trọng số (nhằm tìm ra những trọng số phù hợp cho mạng). Về mặt ý tưởng, tất cả các nơron trong mạng nên chọn cùng một tốc độ học, tham số học nên gán một giá trị nhỏ. Các nơron với nhiều đầu vào nên chọn một tham số tốc độ học nhỏ hơn để giữ một thời gian học tương tự cho nhau cho tất cả các Neural trong mạng.

2.3.3. Sử dụng Neural Network

Sau khi đã huấn luyện mạng bởi cơ sở dữ liệu ban đầu cho hiệu suất tốt và ổn định, lúc này khi muốn nhận dạng 1 đối tượng đã được huấn luyện thì chỉ cần đưa các giá trị đầu vào của đối tượng vào mạng, đầu ra sẽ là 1 giá trị, mà từ giá trị này có thể nhận dạng được đối tượng tùy vào giá trị đầu ra đã khai báo trong quá trình huấn luyện.

Tổng kết Chương 2

Như vậy, chương này đã trình bày các lý luận, cơ sở lý thuyết và thuật toán chính để thực hiện đề tài. Việc sử dụng và cách thức thực hiện các cơ sở lý thuyết trên vào trong đề tài sẽ được trình bày trong chương 3.

CHƯƠNG 3

XÂY DỰNG THUẬT TOÁN NHẬN DẠNG CẢM XÚC

VÀ KẾT QUẢ

3.1. Cơ sở dữ liệu

Trong luận văn này, em đã sử dụng 2 bộ dữ liệu để thử nghiệm mô hình.

3.1.1 Bộ dữ liệu JAFEE (Japanese Fermale Facial Expression)

Cơ sở dữ liệu cho bài toán nhận dạng được phân thành tập huấn luyện (train) và tập kiểm tra (test) từ tập ảnh JAFFE (Japanese Female Facial Expression) hay Cohn-Kanade của Michael Lyons, Miyuki Kamachi và Jiro Gyoba cùng với Reiko Kubota. Những bức ảnh được chụp tại Khoa Tâm lý học tại Đại học Kyushu, Nhật Bản.

Cơ sở dữ liệu này gồm 137 hình ảnh. Mỗi hình ảnh được đặt tên theo thứ tự <Tên người>.<Cảm xúc>.<số thứ tự ảnh>. Trong đó, cảm xúc vui vẻ được biểu diễn là HA (Happy), cảm xúc buồn được biểu diễn là SA (Sad) và cảm xúc giận dữ được biểu diễn là SU (Surprise). Tập dữ liệu gồm 10 người có tên lần lượt: KA, KL, KM, KR, MK, NA, TM, UY và YM. Mỗi người sẽ biểu diễn ba cảm xúc: vui (HA), buồn (SA) và ngạc nhiên (SU) qua các hình ảnh trong tập dữ liệu. Trong đó tập dữ liệu huấn luyện (train) có 110 hình ảnh của 7 người KA, KL, KM, KR, MK và NA; tập dữ liệu kiểm tra (test) có 27 hình ảnh của 3 người có tên: TM, UY và YM.

Hình 3.2. Một vài hình ảnh trong tập dữ liệu JAFEE

3.1.2. Bộ dữ liệu FEI

Cơ sở dữ liệu khuôn mặt FEI là cơ sở dữ liệu khuôn mặt của Brazil có chứa một bộ hình ả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 của FEI ở São Bernardo do Campo, São Paulo, Brazil. [12] Database này gồm có 100 người với 200 hình ảnh, kích cỡ mỗi ảnh là 162×193 pixel, trong đó tập train có 150 hình ảnh và tập test có 50 hình ảnh, mỗi người 2 hình ảnh biểu cảm khuôn mặt trung tính và khuôn mặt mỉm cười, các hình ảnh này đã được thực hiện một chuỗi các bước xử lý hình ảnh để tự động chuẩn hóa, cân bằng và cắt ảnh mặt trước.

Hình 3.4. Một số hình ảnh trong tập dữ liệu FEI

3.2. Xây dựng thuật toán

Mô hình tổng quát các bước thực hiện huấn luyện và kiểm thử được thể hiện như sau:

Hình 3.5. Sơ đồ khối quá trình thuật toán huấn luyện và kiểm thử.

  • Tập ảnh huấn luyện: Cơ sở dữ liệu là tập hợp ảnh của các loại cảm xúc trên khuôn mặt người, tùy vào bộ dữ liệu được chọn.
  • Trích rút đặc trưng: Ảnh trong tập huấn luyện sẽ được tiền xử lý: bằng cách giảm số chiều thông qua thuật toán PCA, sau khi dùng PCA để giảm số chiều thì K vector riêng ứng với K trị riêng lớn nhất được giữ lại.

Tức là từ ma trận C=AT.A được trình bày ở chương 2, ta tính các vectors riêng và giá trị riêng tương ứng của nó. Sau đó, sắp xếp các giá trị riêng thành một dãy giảm dần, theo dõi sự biến thiên cho đến khi xấp xỉ bằng 0 thì lúc đó ta chọn đủ K.

  • Học máy (Huấn luyện Neural Network): Các thuộc tính sau khi được trích ra từ tập ảnh training được đưa vào 1 Neural Network có cấu trúc gồm: 1 lớp vào, 1 lớp ẩn, 1 lớp ra. Trong đó: số Neural lớp vào là số K thành phần kết quả được chọn của PCA, số Neural lớp ra là số cảm xúc cần nhận dạng. Số Neural trong lớp ẩn có thể điều chỉnh được, dựa trên kết quả có thể chọn số Neural cho hiệu năng cao nhất có thể.

3.3. Kết quả lựa chọn Eigenvectors

Bảng 3.1. Kết quả lựa chọn số eigenvectors

Số EigenvectorsThe JAFEE databaseThe FEI database
Độ chính xác (%)Tốc độ xử lí (sec)Độ chính xác (%)Tốc độ xử lí (sec)
1581,10,03595,60,016
2081,10,03195,60,018
2581,10.03493,30,024
3090,50.04793,30,030
3590,50.07295,60,039
4095,20.09793,30,041
4595,20.11995,60,052
4895,20.10597,80,055
5095,20.11297,80,056
5290,50.12195,60,062
5585,70.12591,10,068

Nhận xét: Bảng kết quả trên cho thấy số lượng vector đặc trưng sau khi trích chọn PCA và tốc độ xử lí của CPU có sự ảnh hưởng lớn đến độ chính xác của bài toán nhận dạng. Với bộ dữ liệu JAFEE, ta chọn số vector đặc trưng là 48 tương ứng với 95,2% thông tin dữ liệu gốc được giữ lại, cho ra dộ chính xác cao và tốc độ xử lí cũng nhanh hơn. Tương tự như vậy với bộ dữ liệu FEI, khi chọn số lượng vector đặc trưng là 50 tương ứng vói 97,8% thông tin dữ liệu gốc được giữ lại thì cho ra kết quả tối ưu nhất.

Số lượng eigenvectors này cũng chính là số input của mô hình nhận dạng ANN. Kết quả nhận dạng được trình bày ở mục 3.4

3.4. Kết quả nhận dạng và đánh giá

3.4.1. Kết quả trên bộ dữ liệu JAFEE

Bảng kết quả thử nghiệm mạng Nơron khi thay đổi số lớp ẩn trong mạng Nơ-ron của bộ dữ liệu JAFEE

Bảng 3.2. Bảng kết quả thử nghiệm khi thay đổi hidden layer của mạng Nơron

Số Neural lớp ẩnThứ tự thực hiệnSố mẫu không hợp lệĐộ chính xác
10Lần 15/2780%
Lần 25/2780%
Lần 36/2777,8%
20Lần 18/2770,3%
Lần 27/2774%
Lần 36/2777,8%
30Lần 15/2780%
Lần 23/2788,9%
Lần 35/2780%
40Lần 12/2792,6%
Lần 21/2796,3%
Lần 32/2792,6%
50Lần 17/2774%
Lần 28/2770,3%
Lần 35/2780%
60Lần 14/2785%
Lần 25/2780%
Lần 35/2780%

Nhận xét: Số Neural trong lớp ẩn có ảnh hưởng đến hiệu năng của hệ thống. Số Neural càng lớn thì có nghĩa mạng có kích thước lớn với số lượng lớn các trọng số. Mạng có kích thước càng lớn thì hiệu năng càng cao, nhưng khi số lượng Neural quá lớn so với quy mô của bài toán cần giải quyết cũng làm giảm hiệu năng của hệ thống. Từ Bảng kết quả cho thấy số lượng neural là 40 cho kết quả kiểm thử ổn định và cao (trung bình 93,8%). Nên trong mạng này em sử dụng số Neural là 40.

Hình 3.6. Sơ đồ Neural Network được sử dụng

Hình 3.7. Confusion matrix for ANN

Hình 3.7 trên thể hiện ba cảm xúc, nhãn số 1 tương ứng với cảm xúc vui, nhãn số 2 tướng ứng với cảm xúc buồn và nhãn số 3 là cảm xúc ngạc nhiên. Với đường chéo trong hình là số ảnh và tỷ lệ có kết quả nhận diện đúng của từng loại cảm xúc, những giá trị nằm ngoài đường chéo là số ảnh và tỷ lệ nhận diện nhầm của cảm xúc này thành cảm xúc khác. Ví dụ: trên hình 3.8 có 1 ảnh là cảm xúc vui nhưng bị nhận dạng nhầm thành cảm xúc buồn. Một trong số 2 ảnh nhận diện nhầm này được thể hiện trong Hình 3.9.

Hình 3.8. Hình ảnh bị nhận diện nhầm

Nhận xét:

Có thể thấy tỷ lệ nhận diện nhầm bé (tỷ lệ nhận diện nhầm là 1.8% trong tập test), chủ yếu tập trung ở những hình của các loại cảm xúc khuôn mặt được biểu cảm gần giống nhau. Như Hình 3.8 là cả khuôn mặt ngạc nhiên và buồn của cùng một người đều có khuôn miệng thể hiện gần như nhau.

Các hình ảnh mang biểu cảm rõ ràng, đặc biệt khác hoàn toàn với các cảm xúc khác thường cho tỷ lệ nhận diện đúng cao hơn.

3.4.2. Kết quả trên bộ dữ liệu FEI

Bảng kết quả thử nghiệm mạng Nơron khi thay đổi số lớp ẩn trong mạng Nơ-ron của bộ dữ liệu FEI

Bảng 3.3. Bảng kết quả thử nghiệm khi thay đổi hidden layer của mạng Nơron

Số Neural lớp ẩnThứ tự thực hiệnSố mẫu không hợp lệĐộ chính xác
3Lần 14/10096%
Lần 26/10094%
Lần 37/10093%
5Lần 13/10097%
Lần 24/10096%
Lần 34/10096%
10Lần 17/10093%
Lần 26/10094%
Lần 36/10094%
15Lần 17/10093%
Lần 24/10096%
Lần 38/10092%

Từ Bảng kết quả cho thấy số lượng neural là 5 cho kết quả kiểm thử khá cao (trung bình 96,3%). Nên trong mạng này em sử dụng số Neural là 5.

Hình 3.9. Sơ đồ Neural Network được sử dụng trong tập dữ liệu FEI

Hình 3.10. Confusion matrix for ANN

Hình 3.10 trên thể hiện 2 cảm xúc, nhãn số 1 tương ứng với cảm xúc vui, nhãn số 2 tướng ứng với cảm xúc trung tính. Với đường chéo trong hình là số ảnh và tỷ lệ có kết quả nhận diện đúng của từng loại cảm xúc, những giá trị nằm ngoài đường chéo là số ảnh và tỷ lệ nhận diện nhầm của cảm xúc này thành cảm xúc khác. Ví dụ: trên hình 3.11a có 1 ảnh là cảm xúc trung tính nhưng bị nhận dạng nhầm thành vui và hình 3.11b có 1 ảnh biểu cảm khuôn mặt vui thì bị nhận dạng nhầm là trung tính.

Hình 3.11a. Cảm xúc trung tính bị nhận dạng nhầm thành vui

Hình 3.11b. Cảm xúc vui bị nhận dạng nhầm thành trung tính

3.5. Kết quả thực nghiệm trên các mô hình khác

Bộ dữ liệu JAFEE thử nghiệm trên mô hình SVM, KNN và Decision Tree và cho ra kết quả dộ chính xác như bảng sau:

Bảng 3.4. Bảng kết quả thử nghiệm trên các mô hình

Các mô hìnhPCA+

SVM

PCA+

Decision Tree

PCA+KNNPCA+ANN
Độ chính xác38,7%68,6%86,1%93,8%

Nhận xét: Bảng kết quả trên được thử nghiệm trên bộ dữ liệu JAFEE. Thuật toán PCA kết hợp lần lượt với các mô hình: SVM cho kết quả chỉ 38,7%, mô hình Decision Trê cho kết quả 68,6%, mô hình KNN cho kết quả 86,1% và cuối cùng là ANN, cho kết quả 93,8%. Vậy ta thấy, việc nhận dạng bằng thuật tóan PCA kết hợp với ANN cho độ chính xác cao nhất.

3.6. Xây dựng demo

Giao diện chính của chương trình

Hình 3.12. Giao diện chính

– Giao diện mô phỏng việc test ảnh

Hình 3.13. Giao diện mô phỏng

Tổng kết Chương 3

Tuy hệ thống xây dựng còn đơn giản nhưng đã cơ bản giải quyết được bài toán nhận diện ở quy mô nhỏ. Hiệu suất của hệ thống khá cao với tỉ lệ nhận dạng 93,8% trung bình của nhiều lần huấn luyện, khi test với đầu vào là ảnh cùng chung kích cỡ với ảnh của tập huấn luyện. Ngoài ra mô hình này cũng đã được áp dụng trên các bộ dữ liệu khác cũng cho ra kết quả cũng cao và khi so sánh kết quả thử nghiệm trên các mô hình khác như SVM, KNN, Decision Tree thì kết quả của PCA kết hợp ANN vẫn là cao nhất.

KẾT LUẬN

  • Kết luận

Luận văn tập trung nghiên cứu về thuật toán PCA và mạng Nơron. Bài toán đặt ra là nhận dạng cảm xúc trên khuôn mặt người. Hệ thống này có khả năng nhận dạng được các dạng cảm xúc cơ bản,

Luận văn đã giới thiệu được các bước thực hiện của việc trích chọn đặc trưng từ thuật toán PCA; giới thiệu được mạng Nơron, cách huấn luyện mạng bằng thuật toán lan truyền ngược. Trên cơ sở đó, em tiến hành cài đặt chương trình trên Matlab.

Bài toán áp dụng nhằm minh họa những kiến thức nghiên cứu đã trình bày trong 2 chương đầu. Qua việc thực hiện luận văn cũng góp phần giúp em vận dụng và củng cố lại kiến thức đã học ở trường, mở rộng thêm các kiến thức liên quan đến đề tài, học được cách khắc phục giải quyết một số vấn đề trong quá trình thực hiện luận văn.

Kiểm thử thực tế cho kết quả vẫn chưa hài lòng lắm vì số hình ảnh trong bộ dữ liệu còn quá ít; chưa phong phú các cảm xúc trên khuôn mặt người.

  • Hướng phát triển đề tài

Phát triển thêm việc xây dựng thuật toán với quy mô lớn hơn (nhận diện 7 loại cảm xúc trở lên…). Hoặc nhận dạng những loại cảm xúc hỗn hợp như biểu cảm vừa hạnh phúc vừa ngạc nhiên hoặc vừa tức giận vừa buồn,…

Nhận dạng được các hình ảnh có góc nghiêng, hình ảnh quay ngang chỉ một phần mặt, hình ảnh khuôn mặt có đeo kính,…

Hệ thống thực hiện được việc nhận diện khuôn mặt trong những đoạn video sau đó nhận dạng loại cảm xúc của đối tượng.

LIỆN HỆ:

SĐT+ZALO: 0935568275

E:\DỮ LIỆU COP CỦA CHỊ YẾN\DAI HOC DA NANG\HE THONG THONG TIN\NGUYEN THAI MINH ANH\SAU BAO VE

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *