Hình 10: Cây quyết định

Một phần của tài liệu Nghiên cứu các thuật toán nhận dạng cảm xúc khuôn mặt trên ảnh 2d (Trang 34 - 43)

Với 1 hình ảnh cần nhận dạng cảm xúc, sử dụng PCA ta được 1 tập các giá trị riêng.

I(Nhan_dang) = (bNhan_dang 1, bNhan_dang 2, bNhan_dang 3… bNhan_dang n)

Quá trình nhận dạng

Lần lượt tính khoảng cách Euclid từ ảnh cần nhận dạng đến mỗi ảnh trong tập huấn luyện

S(Happy 1) = (SHappy 1,1 - bNhan_dang 1)2+(SHappy 1,2 - bNhan_dang 2)2+...+(SHappy 1,n - bNhan_dang n)2

S(Happy 2) = (SHappy 2,1 - bNhan_dang 2)2+(SHappy 2,2 - bNhan_dang 2)2+...+(SHappy 2,n - bNhan_dang n)2

:

S(Happy m) = (SHappy m,1 - bNhan_dang 1)2+(SHappy m,2 - bNhan_dang 2)2+...+(SHappy m,n - bNhan_dang n)2

Khi đó cảm xúc của ảnh cần nhận dạng sẽ được xác định bằng cảm xúc của ảnh trong tập huấn luyện mà khoảng cách Euclid từ ảnh đó đến ảnh cần nhận dạng là bé nhất.

Nhận dạng cảm xúc dựa trên PCA kết hợp các thuật toán học

Mạng nơron

Hình 9: Mô hình mạng nơron

Hình vẽ trên cho ta mô hình của mạng nơ ron sử dụng trong khóa luận này. Đây là mạng MLP (MultiLayer Perceptron) bao gồm 3 lớp. Lớp đầu vào gồm 30 nút là 30 giá trị riêng của 1 ảnh sau khi dùng PCA để trích chọn đặc trưng. Lớp ẩn và lớp đầu ra gồm 5 nút là 5 cảm xúc.

Trong mô hình mạng neural MPL này, chúng ta sẽ sử dụng thuật toán lan truyền ngược (Backprobagation) để tiến hành học mạng, phương pháp giảm lỗi được sử dụng là phương pháp giảm gradient với hàm truyền hay hàm kích hoạt là hàm sigmoid. Toàn bộ thuật toán và lý thuyết về vấn đề này đã được đề cập đến trong chương I của đồ án.

Cây quyết định

Trong lĩnh vực học máy, cây quyết định là một kiểu mô hình dự báo (predictive model), nghĩa là một ánh xạ từ các quan sát về một sự vật/hiện tượng tới các kết luận về giá trị mục tiêu của sự vật/hiện tượng. Mỗi một nút trong (internal node) tương ứng với một biến; đường nối giữa nó với nút con của nó thể hiện một giá trị cụ thể cho biến đó. Mỗi nút lá đại diện cho giá trị dự đoán của biến mục tiêu, cho trước các giá trị của các biến được biểu diễn bởi đường đi từ nút gốc tới nút lá đó. Kỹ thuật học máy dùng trong cây quyết định được gọi là học bằng cây quyết định, hay chỉ gọi với cái tên ngắn gọn là cây quyết định.

Học bằng cây quyết định cũng là một phương pháp thông dụng trong khai phá dữ liệu. Khi đó, cây quyết định mô tả một cấu trúc cây, trong đó, các lá đại diện cho các phân loại còn cành đại diện cho các kết hợp của các thuộc tính dẫn tới phân loại đó. Một cây quyết định có thể được học bằng cách chia tập hợp nguồn thành các tập con dựa theo một kiểm tra giá trị thuộc tính. Quá trình này được lặp lại một cách đệ qui cho mỗi tập con dẫn xuất. Quá trình đệ qui hoàn thành khi không thể tiếp tục thực hiện việc chia tách được nữa, hay khi một phân loại đơn có thể áp dụng cho từng phần tử của tập con dẫn xuất. Một bộ phân loại rừng ngẫu nhiên (random forest) sử dụng một số cây quyết định để có thể cải thiện tỉ lệ phân loại.

Cây quyết định cũng là một phương tiện có tính mô tả dành cho việc tính toán các xác suất có điều kiện.

Cây quyết định có thể được mô tả như là sự kết hợp của các kỹ thuật toán học và tính toán nhằm hỗ trợ việc mô tả, phân loại và tổng quát hóa một tập dữ liệu cho trước.

Dữ liệu được cho dưới dạng các bản ghi có dạng: (x, y) = (x1, x2, x3..., xk, y)

Biến phụ thuộc (dependant variable) y là biến mà chúng ta cần tìm hiểu, phân loại hay tổng quát hóa. x1, x2, x3 ... là các biến sẽ giúp ta thực hiện công việc đó.

Hình 10: Cây quyết định

Chương 2.THỰC NGHIỆM

Môi trường thực nghiệm

Chương trình chạy giải thuật PCA được viết bằng ngôn ngữ Matlab, chạy trên nền hệ điều hành Windows 7 Professional, Laptop có tốc độ CPU 2.0 Ghz, bộ nhớ ram 2Gb.

môi trường dễ sử dụng. Một số ứng dụng tiêu biểu của Matlab như: Hỗ trợ toán học và tính toán, mô phỏng, phân tích, khảo sát và hiển thị số liệu, phát triển ứng dụng với các giao diện đồ họa. Matlab đầu tiên được viết bằng Fortran để cung cấp truy nhập dễ dàng tới phần mềm ma trận được phát triển bởi các dự án Linpack và Eispack. Sau đó nó được viết bằng ngôn ngữ C trên cơ sở các thư viện nêu trên và phát triển thêm nhiều lĩnh vực của tính toán khoa học và các ứng dụng kỹ thuật. Ngoài các tính năng cơ bản, phần mềm MATLAB còn được trang bị thêm các ToolBox – các gói chương trình (thư viện) cho các lĩnh vực ứng dụng rất đa dạng như xử lý tín hiệu, nhận dạng hệ thống, xử lý ảnh, mạng nơ ron, logic mờ, tài chính, tối ưu hóa, phương trình đạo hàm riêng, tin sinh học.

Mạng MultiLayer Perceptron được cung cấp bởi phần mềm Weka.

Dữ liệu đầu vào

Gồm có 75 ảnh khuôn mặt mẫu, độ phân giải 600 x 800 điểm ảnh, tất cả các ảnh đều là khuôn mặt của một người và có độ sáng đồng đều nhau. Cảm xúc thể hiện trong mỗi ảnh khá rõ ràng. Tập dữ liệu này chỉ có 5 cảm xúc chính là: Vui, buồn, ghê tởm, giận dữ và bình thường.

Khảo sát và đánh giá

Trong 75 ảnh khuôn mặt mẫu, 40 ảnh bất kỳ được chọn làm dữ liệu huấn luyện và 35 ảnh còn lại làm dữ liệu test. (adsbygoogle = window.adsbygoogle || []).push({});

Phương pháp PCA truyền thống

Với phương pháp này, kết quả nhận dạng được như sau: • Vui: 80%

• Ghê tởm: 70% • Giận dữ: 86% • Buồn: 55% • Bình thường: 84%

• Trung bình: 65%

Dựa vào kết quả, ta có thể thấy khả năng nhận dạng của phương pháp này không cao. Tuy hiên đây là kết quả với dữ liệu huấn luyện bé. Nếu tập dữ liệu huấn luyện lớn hơn chắc chắn khả năng nhận dạng sẽ tăng.

Đây là một phương pháp đơn giản và dễ hiểu để nhận dạng cảm xúc khuôn mặt tuy nhiên nhược điểm lớn nhất của nó là tốc độ xử lý chậm. Khi tập huấn luyện lớn, bao gồm hàng nghìn ảnh, khi đó với mỗi ảnh cần nhận dạng, ta phải so khớp với lần lượt từng ảnh trong tập huấn luyện. Vì tốc độ chậm nên phương pháp này thường không được ứng dụng nhiều trong thực tế. Bên cạnh đó phương pháp này cũng gặp khó khăn khi ảnh cần nhận dạng không có độ sáng tốt, hoặc khi khuôn mặt không chính diện.

Phương pháp sử dụng mạng nơron

Với phương pháp huấn luyện bằng mạng nơron, chúng ta sẽ sử dụng giải thuật Multilayer Perceptron được cung cấp trong công cụ Weka với các đặc trưng được trích chọn bằng PCA, kết quả nhận dạng được như sau:

• Vui: 100 % • Ghê tởm: 100% • Giận dữ: 67% • Buồn: 50% • Bình thường: 80% • Kết quả trung bình: 87%

Khi thay đổi số tầng ẩn lên lớn hơn 5 hoặc bé hơn 5, kết quả trung bình giảm xuống 83,3%. Như vậy khả năng phân loại của mạng nơron không tăng khi số lượng tầng ẩn tăng.

Phương pháp sử dụng cây quyết định

chúng ta sẽ sử dụng giải thuật cây quyết định J48-Decision Tree được cung cấp trong Weka.

Kết quả nhận dạng được • Vui: 60 %

• Giận dữ: 16,7% • Buồn: 0%

• Bình thường: 60%

• Kết quả trung bình: 36,7%

Trong giải thuật cây quyết định J48 được cung cấp bởi Weka có 3 tham số quan trọng

• confidenceFactor: Nhân tố sử dụng cho việc cắt tỉa (Nếu giá trị này càng nhỏ thì cây sinh ra sẽ được cắt càng nhiều).

• minNumObj: Số thể hiện tối thiểu trên một nút lá trong cây. • unPruned: nếu là True thì cây sinh ra sẽ được cắt tỉa và ngược lại. Sau khi điều chỉnh các tham số, kết quả tốt nhất thu được:

• confidenceFactor: 0.25 • minNumObj: 2

• unPruned: False

Giải thuật cây quyết định J48 cho kết quả nhận dạng rất thấp, nguyên nhân có thể do tập ảnh huấn luyện quá ít (45 ảnh).

2.1 Tổng kết

Chương này mô tả thực nghiệm và kết quả của 3 phương pháp nhận dạng cảm xúc. Phương pháp thứ nhất là dùng PCA và tính khoảng cách Euclid, phương pháp này khả năng nhận dạng trung bình, tốc độ chậm. Phương pháp thứ 2 sử dụng mạng nơron (MLP). Phương pháp này có khả năng nhận dạng tốt, tốc độ nhanh. Phương pháp thứ 3 là phương pháp dùng cây quyết định để phân lớp. Phương pháp này đạt kết quả rất thấp tuy nhiên do tập ảnh huấn luyện quá ít (40 ảnh) nên chưa đánh giá hết khả năng nhận dạng của phương pháp này.

Trong cả 3 phương pháp cảm xúc vui luôn đạt kết quả cao nhất do có số lượng ảnh huấn luyện nhiều nhất. Cảm xúc buồn có số lượng ảnh huấn luyện ít nhất nên đạt kết quả thấp nhất. Những cảm xúc còn lại đều đạt kết quả tương đối.

Cây quyết định là một giải thuật phân lớp nhưng nó chỉ đạt hiệu quả cao khi số lượng lớp là 2. Với số lượng lớn hơn 2 tính hiệu quả của giải thuật giảm đi. Trong khóa luận này vì thời gian chuẩn bị ngắn nên không đi sâu vào phân tích giải thuật này mà chỉ dùng để xem như một phương pháp tham khảo thêm.

Chương 3.KẾT LUẬN

Qua thời gian nghiên cứu về các phương pháp nhận dạng cảm xúc khuôn mặt, đặc biệt là qua quá trình thực hiện khóa luận tốt nghiệp, em đã tìm hiểu được một số thuật toán học và áp dụng các thuật toán này cho bài toán phân lớp để nhận dạng cảm xúc. Những kết quả chính mà khóa luận đã đạt được có thể được tổng kết như sau:

• Giới thiệu chi tiết về phương pháp trích chọn đặc trưng (PCA) và Mạng nơron nhiều tầng truyền thằng (Multilayer Perceptron), đồng thời giới thiệu sơ lược về 1 giải thuật phân lớp khác là cây quyết định.

Bên cạnh những kết quả đã đạt được, còn có những vấn đề mà thời điểm hiện tại khóa luận chưa giải quyết được. (adsbygoogle = window.adsbygoogle || []).push({});

• Xây dựng tập huấn luyện lớn để đạt kết quả chính xác hơn.

• Nghiên cứu về một số các giải thuật trích chọn đặc trưng và phân lớp dữ liệu khác • Xây dựng một chương trình hoàn chỉnh có giao diện tương tác với người sử dụng

PHỤ LỤC - MỘT SỐ THUẬT NGỮ ANH – VIỆT

Thuật ngữ Giải nghĩa

Back propagation algorithm Thuật toán lan truyền ngược sai số

Cross validation Một cách chọn mẫu trong tập train và tập test để tránh hiện tượng overfitting

Feed forward Lan truyền xuôi

Input/hidden/output layer Lớp đầu vào/ẩn/ đầu ra

Mean squared error Sai số bình phương trung bình

MLP (MultiLayer Perceptrons) Mạng neuron nhiều tầng truyền thẳng Transformation/activation function Hàm truyền/hàm kích hoạt

Validation set Tập mẫu xác nhận mạng

TÀI LIỆU THAM KHẢO

1. G.Zhao, M.Pietikäinen. Dynamic texture recognition using local binary patterns with an application to facial expressions. IEEE Transactions on Pattern Analysis and Machine Intelligence. 2007.

2. Y.L.Tian, T.Kanade, J.Cohn. Recognizing action units for facial expression analysis. IEEE Transactions on Pattern Analysis and Machine Intelligence. 2001.

3. Z.Wen, T. Huang. Capturing Subtle Facial Motions in 3D Face Tracking. International Conference on Computer Vision. 2003.

4. Y.Zhang, Q.Ji. Active and dynamic information fusion for facial expression understanding from image sequence. IEEE Transactions on Pattern Analysis and Machine Intelligence. 2005.

5. M.S.Bartlett, J.C.Hager, P.Ekman, T.J.Sejnowski. Measuring facial expressions by computer image analysis. Psychophysiology. 1999.

6. Z.Zhang, M.Lyons, M.Schuster, S.Akamatsu. Comparison Between Geometry- Based and Gabor-Wavelets-Based Facial Expression Recognition Using Multi- Layer Perceptron. IEEE International Conference on Automatic Face and Gesture Recognition. 1998.

7. M.Pantic, I.Patras. Dynamics of facial expression: Recognition of facial actions and their temporal segments from face profile image sequences. IEEE Transactions on Systems, Man and Cybernetics. 2006.

8. E.Holden, R.Owens. Automatic Facial Point Detection, Asian Conference on Computer Vision. 2002.

9. D.Vukadinovic, M.Pantic. Fully Automatic Facial Feature Point Detection Using Gabor Feature Based Boosted Classifiers. IEEE International Conference on Systems, Man and Cybernetics. 2005.

10. L.Chen, L.Zhang, H.Zhang, M.Abdel-Mottaleb. 3D Shape Constraint for Facial Feature Localization using Probabilistic-like Output. IEEE International Workshop Analysis and Modeling of Faces and Gestures. 2004.

Một phần của tài liệu Nghiên cứu các thuật toán nhận dạng cảm xúc khuôn mặt trên ảnh 2d (Trang 34 - 43)