.16 Quỹ đạo của Gradient liên hợp

Một phần của tài liệu (LUẬN văn THẠC sĩ) mạng nơron và ứng dụng mạng nơron trong nhận dạng cảm xúc trên khuôn mặt người luận văn ths công nghệ thông tin 1 01 10 (Trang 51)

Tóm lại, việc lựa chọn và xây dựng một mạng nơron ứng dụng để giải quyết các vấn đề trong thực tiễn là một công việc rất quan trọng. Có thể xác định kiến trúc mạng trước, sau đó sử dụng tập dữ liệu huấn luyện mạng để sao cho mạng nơron thu được hoạt động đúng và hiệu quả. Cũng có thể trong quá trình huấn luyện chúng ta xác định cấu trúc mạng cho hợp lý. Tuy nhiên qua thực nghiệm đã cho thấy rằng chọn một kiến trúc mạng tổng quát trước là không hợp lý, sẽ rất khó khăn để xác định được cấu trúc mạng nơron nào là tốt nhất. Vậy nên thực hiện việc xây dựng kiến trúc mạng thông qua việc huấn luyện là hợp lý, và trong phần tiếp theo luận văn sẽ trình bày các bước thực hiện việc áp dụng mạng nơron vào một bài toán thực tế: bài toán nhận dạng cảm xúc trên mặt người.

Chương 3 - Ứng dụng mạng nơron trong nhận dạng cảm xúc trên mặt người

Cảm xúc trên mặt là một quy luật rất quan trọng trong giao tiếp giữa người với người. Merhrabin, một nhà tâm lý học, đã phát biểu rằng các ngôn ngữ có lời chỉ chiếm 7% thông điệp trong giao tiếp của con người, trong khi chiếm hơn 55% là những giao tiếp bằng các phương pháp không lời. Những công nghệ giao tiếp tiến bộ nhanh chóng gần đây và khoa học máy tính đã cho chúng ta những hi vọng rằng cảm xúc trên mặt sẽ trở thành một giải pháp then chốt trong lĩnh vực giao diện người máy và các hướng phát triển giao tiếp khác trong tương lai.

Phân tích cảm xúc trên mặt bao gồm đo các chuyển động trên mặt và nhận dạng cảm xúc. Cách tiếp cận thông thường của các hệ thống phân tích cảm xúc gồm 3 bước: 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.

Thu nhận mặt là một giai đoạn xử lý để tự động tìm ra vùng chứa mặt từ các ảnh đầu vào hoặc chuỗi ảnh đầu vào. Nó có thể là một bộ xác định mặt để tìm ra một mặt trong mỗi khung hình hoặc trước tiên xác định mặt trong khung hình đầu tiên và sau đó thực hiện quá trình lưu vết mặt đó trên phần còn lại của đoạn băng. Các chuyển động đầu, tìm kiếm đầu, lưu vết đầu và đánh giá tư thế có thể áp dụng nhiều trong một hệ thống phân tích cảm xúc trên mặt.

Sau khi đã định vị mặt, bước tiếp theo là tách và biểu diễn lại các thay đổi trên mặt bởi các cảm xúc trên mặt. Trong phần tách đặc trưng trên mặt để phân tích cảm xúc, có 2 hướng chính thường được tiếp cận: các phương pháp dựa trên đặc trưng hình học và các phương pháp dựa trên vẻ bề ngoài. Các đặc trưng trên mặt theo phương pháp hình học biểu diễn hình dạng và vị trí của các thành phần trên mặt (bao gồm: miệng, các mắt, mũi, lông mày,…). Các thành phần trên mặt hoặc các điểm đặc trưng trên mặt được tách thành một vectơ đặc trưng để biểu diễn hình học khuôn mặt.

Hình 3.1 - Cấu trúc cơ bản của các hệ thống phân tích cảm xúc trên khuôn mặt người

Các đặc trưng trên mặt dựa trên vẻ bề ngoài biểu diễn hình dạng và vị trí của các thành phần là các nếp nhăn, các nếp gấp trên bề mặt da. Các bộ lọc ảnh, như Gabor wavelets, sẽ được áp dụng trên toàn bộ mặt hoặc trên các vùng ảnh cụ thể của ảnh chứa mặt để tách một vectơ đặc trưng. Phụ thuộc vào các phương pháp tách đặc trưng trên mặt khác nhau, khả năng đánh giá được ảnh hưởng góc xoay trên mặt phẳng và độ co dãn khác nhau của đầu, từ đó có thể chuẩn hóa mặt trước khi tách đặc trưng hoặc biểu diễn lại các đặc trưng trước khi chuyển sang bước nhận dạng cảm xúc.

Nhận dạng cảm xúc trên mặt người là giai đoạn cuối cùng của các hệ thống nhận dạng cảm xúc. Trong giai đoạn này, có hai hướng được tập trung nghiên cứu, đó là: xác định các thay đổi trên mặt dựa trên hệ thống FACS và các AU (action unit) hoặc xác định các cảm xúc biểu diễn dạng nguyên mẫu. Với các hệ thống xây dựng theo hướng thứ nhất, hầu hết các hệ thống có thể đáp ứng được với một số thay đổi lớn về vẻ bề ngoài (như đeo kính, có tóc hoặc không có tóc,...) và không giới hạn về chuyển động của đầu. Tuy nhiên, vì số lượng các AU là rất lớn nên để tăng khả năng và độ chính xác của hệ thống, bắt buộc phải xây dựng được các mô hình thành phần mặt đa trạng thái [13]. Với hướng nghiên cứu thứ hai, hầu hết các hệ thống tập trung vào nhận dạng các cảm xúc cơ bản của con người. Với bài toán mạng nơron, hướng thứ hai này thường được tập trung phát triển hơn và cũng đã đặt được một số thành tựu đáng kể.

Trong khi nhiều tiến bộ và thành tựu trong phân tích cảm xúc trên mặt được mô tả như trên đây, nhiều câu hỏi vẫn còn đang rất mở. Ví dụ, làm sao để chúng ta nhận dạng các cảm xúc trên mặt trong cuộc sống thực? Phân tích cảm xúc trên mặt trong

THU NHẬN MẶT NHẬN DẠNG CẢM XÚC TÁCH ĐẶC TRƯNG TRÊN MẶT

cuộc sống thực khó hơn rất nhiều các các chuyển động của tư thế chủ yếu theo thời gian. Chuyển động đầu, các ảnh đầu vào có độ phân giải thấp, thiếu ảnh mặt bình thường để so sánh, và các cảm xúc có cường độ thấp là những nguyên nhân gây khó khăn cho quá trình phân tích các cảm xúc trên mặt. Phần luận văn này tập trung vào việc xây dựng một hệ thống nhận dạng cảm xúc trên mặt người bằng mạng nơron tập trung vào bảy dạng cảm xúc cơ bản là giận dữ, kinh tởm, sợ hãi, hạnh phúc, buồn, ngạc nhiên và trung lập trên các ảnh có độ phân giải thấp. Hầu hết các hệ thống hiện tại đều cố gắng nhậ dạng các cảm xúc trên mặt từ những dữ liệu thu thập được trong điều kiển chuẩn với các ảnh có độ phân giải lớn (vùng chứa mặt đều lớn hơn 200x200 điểm ảnh). Trong khi đó, thực tế thông thường vùng chứa mặt thường có độ phân giải thấp hơn rất nhiều. Quy trình của hệ thống có thể mô tả như hình sau:

Hình 3.2 - Quy trình của hệ thống nhận dạng cảm xúc trên mặt người

Phần xác định mặt thực hiện việc xác định vị trí ô cửa số chứa mặt người trên ảnh gốc. Có nhiều phương pháp xác định mặt được phát triển để xác định mặt trong một khung cảnh ngẫu nhiên. H. Rowley đã sử dụng mạng nơron nhân tạo để tìm mặt người trong ô cửa sổ 20x20 [3]. Oliver Jesorky sử dụng khoảng cách Hausdorff [15] và Rogério Schmidt Feris thực hiện việc tìm mặt người bằng cách tìm các đặc trưng của mặt [16]. Khi đã tìm được vị trí của mặt người, góc quay của mặt người so với phương thẳng đứng cũng phải được xác định để có thể hiệu chỉnh lại cho đúng trong bộ chuẩn hoá. Với hệ thống này, chúng tôi lựa chọn phương pháp của H.Rowley để xây dựng bộ xác định mặt.

Bộ chuẩn hoá thực hiện các phép toán biến đổi ảnh để đưa ảnh chứa mặt người về dạng thống nhất đã quy định trước. Trong hệ thống này, chúng tôi gộp phần phần chuẩn hóa và phần nhận dạng vào cùng một pha. Trong phần chuẩn hóa, chúng tôi

Ảnh gốc THU NHẬN MẶT Ảnh chứa mặt người CHUẨN HOÁ VÀ PHÂN LỚP Giận dữ Vui vẻ Bình thường Buồn bã ...

chỉ áp dụng một số các phép toán chuẩn hoá đơn giản như: chuẩn hoá ánh sáng, chuẩn hoá cường độ sáng, chuẩn hóa kích thước ảnh. Ảnh sau khi được chuẩn hóa sẽ được đưa vào bộ nhận dạng, bộ này sẽ thực hiện việc phân loại trạng thái cảm xúc của mặt người. Các cảm xúc được lựa chọn nhận dạng ở đây là 7 dạng cảm xúc: giận dữ, kinh tởm, sợ hãi, hạnh phúc, buồn, ngạc nhiên và trung lập.

3.1.1. Công cụ thử nghiệm MATLAB

MATLAB là một công cụ có ngôn ngữ hiệu năng cao cho tính toán kỹ thuật. Môi trường của nó được tích hợp khả năng tính toán, trực quan và lập trình rất thích hợp để giải quyết các bài toán liên quan nhiều đến các vấn đề toán học.

MATLAB là một hệ thống tương tác mà các dữ liệu cơ bản là các mảng, các ma trận. Điều này cho phép giải quyết các bài toán mất ít thời gian hơn rất nhiều nếu giải bằng các công cụ ngôn ngữ không tương tác khác như C hoặc Java.

Đặc trưng của MATLAB là các thư viện chuyên dụng gọi là Toolboxes. Các thư viện chuyên dụng này chứa tâp hợp các hàm của MATLAB (file .m) mà nó có thể mở rộng MATLAB để giải quyết các bài toán đặc biệt. Các thư viện đó bao gồm các lĩnh vực: xử l‎ý tín hiệu số, hệ thống điều khiển, logic mờ, …

MATLAB rất phù hợp cho những nghiên cứu cơ bản, trong phạm vi của luận văn này, với bộ công cụ mạng noron, MATLAB được sử dụng để xây dựng một hệ thống nhận dạng cảm xúc. Hơn nữa, MATLAB cũng có các thành phần cho phép các công cụ lập trình khác truy cập, nhằm khai thác khả năng của MATLAB. Do đó, một hệ thống nhận dạng cảm xúc mặt người hoàn toàn có thể sử dụng lại những kết quả của MATLAB như những thành phần chương trình cơ bản.

3.1.2. Neural network toolbox cho MATLAB

Mặc dù hiện tại đã có nhiều ngôn ngữ lập trình hỗ trợ các thư viện xây dựng mạng nơron như C, Java, Matlab... nhưng trong khuôn khổ luận văn, tôi lựa chọn

Matlab để xây dựng chương trình mô phỏng. Với hàng trăm lệnh và bộ lệnh hỗ trợ tính toán, hiển thị, khả năng của Matlab ngày càng được mở rộng bởi các thư viện trợ giúp vô cùng hiệu quả. Neural Network Toolbox là một trong những thư viện đó. Thư viện Neural Network giúp người lập trình dễ dàng xây dựng các mạng nơron vì trong thư viện đã bao gồm một tập các hàm và cấu trúc để thiết kế lên các mạng nơron.

3.2. Pha xác định mặt người [1]

Ý tưởng sử dụng mạng nơron trong pha xác định mặt người là để trả lời cho câu hỏi có hay không một mặt người trong cửa sổ 20x20 và sau đó áp dụng trên toàn ảnh với các độ co dãn khác nhau. Các phương pháp hỗ trợ khác cho pha này là: tách vùng da chứa mặt, tổng hợp các kết quả, kết hợp nhiều mạng, phân ngưỡng động đã được xây dựng để xác định vị trí chứa mặt người và loại bỏ các phát hiện sai số.

Hình 3.3 - Mô hình hoạt động của mạng nơron tìm mặt

Mô hình mạng nơron sử dụng trong phát hiện mặt người hoạt động trong ba pha: trước tiên sử dụng mạng định tuyến để chuyển đổi ảnh nguồn về hướng trước mặt và thẳng đứng, sau đó xử lý ảnh trước khi áp dụng mạng nơron xác định mặt để

Ảnh gốc Trích ra 1 ảnh 20x20 có góc bất kỳ Mạng định tuyến Ảnh 20x20 có chiều thẳng đứng Mạng xác định mặt Trả về góc quay của mặt Trả về khả năng có mặt trong ảnh

cho biết khả năng chứa một mặt người trong ảnh đó, các ảnh có mặt tiếp tục đưa vào các bộ kết hợp và lọc ảnh để loại bỏ các kết quả không cần thiết.

Mục tiêu của pha này là chúng ta phát hiện được các mặt người có trong ảnh có kích thước khác nhau, các mặt có hướng trước mặt và ở góc quay bất kỳ, ảnh có thể chứa một hoặc nhiều mặt người, có kích thước và màu da khác nhau.

Sau đây luận văn sẽ trình bày chi tiết từng phần cấu trúc của mạng xác định mặt.

3.2.1. Cấu trúc mạng định tuyến

Hình 3.4 - Ví dụ các đầu vào và đầu ra cho huấn luyện mạng định tuyến

Bước đầu tiên khi xử lý một cửa sổ ảnh đầu vào là áp dụng mạng định tuyến. Đối với mạng này, người ta chỉ sử dụng cửa sổ dữ liệu vào chỉ chứa một mặt và nó được huấn luyện để đánh giá góc nghiêng của mặt trong cửa sổ đó. Các đầu vào của

mạng là các giá trị cường độ trong một cửa sổ ảnh 2020 điểm ảnh (có thể nâng cao

chất lượng đầu vào bằng cách cân bằng lược đồ xám chuẩn). Góc quay của đầu ra

được biểu diễn bằng một dãy 36 thành phần đầu ra, với mỗi thành phần i là một góc

của (/18)*i. Để chỉ ra rằng một mặt tại một góc  , mỗi đầu ra được huấn luyện để đạt tới một giá trị của cos( -(/18)*i).

Trước đây người ta thường xác định góc nghiêng của mặt bằng hướng của 1 vectơ có độ lớn lớn nhất trong 36 vectơ xác định được hay chỉ dựa trên vectơ tổng của một nhóm các vectơ thuộc một vùng có tính chu kỳ. Ở đây, chúng tôi dùng mỗi

đầu ra như là một vector trọng số theo hướng được xác định bằng số đầu ra i, và tính toán tổng trọng số bằng công thức: ) ) 10 * sin( * ), 10 * cos( * ( 35 0 35 0     i o i i o i i output i output (3.1)

Hướng của vectơ trung bình được dùng để chỉ góc nghiêng của mặt.

Kiến trúc cho mạng định tuyến bao gồm 3 lớp, một lớp đầu vào có 400 thành phần, một lớp ẩn có 15 thành phần, và một lớp đầu ra có 36 thành phần. Mỗi lớp có kết nối đầy đủ với lớp tiếp theo. Mỗi thành phần sử dụng một hàm ảnh hưởng theo tiếp tuyến hyperbolic, và mạng được huấn luyện theo thuật toán hồi quy lan truyền ngược chuẩn.

3.2.2. Cấu trúc mạng xác định mặt

Sau khi đã áp dụng mạng định tuyến cho cửa sổ đầu vào, cửa sổ sẽ quay đúng hướng để mặt có thể xem ở hướng thẳng đứng. Công việc còn lại là quyết định xem cửa sổ có chứa một mặt có hướng thẳng đứng hay không. Ảnh mẫu có kích thước

2020 điểm ảnh được tiền xử lý trong hai bước dưới đây. Đầu tiên, xây dựng một

hàm tuyến tính trên cửa sổ để lấy các giá trị cường độ nằm trong một vùng hình ovan nằm trong cửa sổ. Hàm tuyến tính này gần giống như toàn bộ phần sáng nằm trong mỗi phần của cửa sổ, và có thể loại trừ để bù cho các trạng thái khác nhau của điều kiện ánh sáng. Thứ hai, thực hiện cân bằng lược đồ xám để mở rộng vùng cường độ trong cửa sổ. Sau đó cửa sổ đã được tiền xử lý sẽ được sử dụng cho một hoặc nhiều mạng tìm kiếm.

Mạng tìm kiếm có kết nối mạng lưới tới đầu vào của tầng. Các trường tiếp thu của các đơn vị ẩn được chỉ ra trong hình 3.5. Có 3 loại nút ẩn: loại 4 nút xem xét các vùng điểm 1010, loại 16 nút xem xét các vùng điểm 55, và loại 6 nút xem xét

các vùng 205 là các đường viền ngang. Mỗi loại được lựa chọn cho phép các nút

tế, các đường viền ngang cho phép các nút ẩn tìm kiếm các đặc trưng như miệng, hai mắt, trong khi các nút ẩn với các đầu vào là hình vuông cho phép xác định các đặc trưng như từng mắt, mũi, hoặc các khóe miệng. Mặc dù một nút ẩn đơn cho vùng của mỗi đầu vào, các nút đó có thể được thay thế. Mạng này chỉ có một đầu ra thể hiện trạng thái cửa sổ đó có chứa mặt hay không.

Kết quả đầu ra của các mạng tìm kiếm xấp xỉ +1.0 thì trong ảnh có chứa mặt và –1.0 nếu ngược lại.

Hình 3.5 - Cấu trúc mạng xác định mặt

Các bộ tìm kiếm có 2 tập ví dụ huấn luyện: ảnh chứa mặt và ảnh không chứa mặt. Các ví dụ đúng được sinh ra trong một kiểu tương tự đã thực hiện cho định tuyến, góc xoay của ảnh huấn luyện bị giới hạn trong khoảng –100 và 100.

3.3. Pha phân lớp nét cảm xúc

Các ảnh thu được từ pha xác định mặt được đưa vào để phân lớp cảm xúc. Từ các ảnh này sẽ lựa chọn ra những đặc trưng của ảnh và đầu vào của pha này chính là tập vectơ được xây dựng từ dãy các đặc trưng này.

Một phần của tài liệu (LUẬN văn THẠC sĩ) mạng nơron và ứng dụng mạng nơron trong nhận dạng cảm xúc trên khuôn mặt người luận văn ths công nghệ thông tin 1 01 10 (Trang 51)

Tải bản đầy đủ (PDF)

(85 trang)