Khóa luận Thử nghiệm phương pháp biến đổi khuôn mặt trên ảnh hai chiều

Tài liệu Khóa luận Thử nghiệm phương pháp biến đổi khuôn mặt trên ảnh hai chiều: ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ -------- Bùi Lê Hùng THỬ NGHIỆM PHƢƠNG PHÁP BIẾN ĐỔI KHUÔN MẶT TRÊN ẢNH HAI CHIỀU KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông Tin HÀ NỘI - 2009 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ -------- Bùi Lê Hùng THỬ NGHIỆM PHƢƠNG PHÁP BIẾN ĐỔI KHUÔN MẶT TRÊN ẢNH HAI CHIỀU KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông Tin Cán bộ hƣớng dẫn: TS. Bùi Thế Duy HÀ NỘI - 2009 I TÓM TẮT Khóa luận này đưa ra một phương pháp tạo chuyển động khuôn mặt trong không gian hai chiều. Sử dụng đầu vào là một bức ảnh mặt người ở trạng thái bình thường, phương pháp này sử dụng các phép biến đổi ảnh để thay đổi trạng thái cảm xúc của khuôn mặt, tạo cho khuôn mặt khả năng nói chuyện bằng tiếng Việt. Phương pháp của chúng tôi đưa ra chủ yếu dựa trên các phép bóp méo ảnh và cải tiến của nó. Mục tiêu của chúng tôi là tạo ra một khuôn mặt có những chuyển động chân ...

pdf82 trang | Chia sẻ: haohao | Lượt xem: 1110 | Lượt tải: 1download
Bạn đang xem trước 20 trang mẫu tài liệu Khóa luận Thử nghiệm phương pháp biến đổi khuôn mặt trên ảnh hai chiều, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ -------- Bùi Lê Hùng THỬ NGHIỆM PHƢƠNG PHÁP BIẾN ĐỔI KHUÔN MẶT TRÊN ẢNH HAI CHIỀU KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông Tin HÀ NỘI - 2009 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ -------- Bùi Lê Hùng THỬ NGHIỆM PHƢƠNG PHÁP BIẾN ĐỔI KHUÔN MẶT TRÊN ẢNH HAI CHIỀU KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông Tin Cán bộ hƣớng dẫn: TS. Bùi Thế Duy HÀ NỘI - 2009 I TÓM TẮT Khóa luận này đưa ra một phương pháp tạo chuyển động khuôn mặt trong không gian hai chiều. Sử dụng đầu vào là một bức ảnh mặt người ở trạng thái bình thường, phương pháp này sử dụng các phép biến đổi ảnh để thay đổi trạng thái cảm xúc của khuôn mặt, tạo cho khuôn mặt khả năng nói chuyện bằng tiếng Việt. Phương pháp của chúng tôi đưa ra chủ yếu dựa trên các phép bóp méo ảnh và cải tiến của nó. Mục tiêu của chúng tôi là tạo ra một khuôn mặt có những chuyển động chân thực kết hợp với việc tận dụng ưu điểm của đồ họa hai chiều trong tốc độ xử lý. Kết quả của phương pháp này là khá khả quan. Khuôn mặt đã có thể biểu lộ được những cảm xúc cơ bản và mô phỏng được các chữ cái trong tiếng Việt. II LỜI CẢM ƠN Trước hết, em xin được chân thành gửi lời cảm ơn tới thầy T.S Bùi Thế Duy vì đã chỉ bảo và hướng dẫn tận tình cho em trong suốt quá trình nghiên cứu và làm khóa luận này. Em cũng xin được cảm ơn các thầy cô của trường đại học Công Nghệ đã dạy dỗ và truyền đạt cho em những kiến thức quý báu trong suốt bốn năm học đại học. Cám ơn các bạn K50CA, K50KHMT và các bạn thuộc phòng tương tác người - máy vì những cuộc trao đổi thú vị. Cuối cùng, con xin được gửi tới bố mẹ và toàn thể gia đình những tình cảm thân thương nhất. Hà Nội 24/05/2009 Bùi Lê Hùng III MỤC LỤC TÓM TẮT ...................................................................................................................... I LỜI CẢM ƠN .............................................................................................................. II MỤC LỤC ................................................................................................................... III DANH MỤC HÌNH ẢNH .......................................................................................... VI DANH MỤC BẢNG BIỂU ..................................................................................... VIII Chƣơng 1 GIỚI THIỆU .................................................................................................................. 1 Chƣơng 2 HOẠT HÌNH KHUÔN MẶT ....................................................................................... 4 2.1.Mở đầu ......................................................................................................................... 4 2.2.Hoạt hình khuôn mặt 3D ............................................................................................... 4 2.2.1.Giới thiệu chung ..................................................................................................... 4 2.2.2.Mô hình hóa khuôn mặt ......................................................................................... 5 2.2.3.Mô hình hóa chuyển động ...................................................................................... 5 2.2.4.Mô hình cơ của Waters .......................................................................................... 7 2.3.Hoạt hình khuôn mặt 2D ............................................................................................... 8 2.3.1.Giới thiệu chung ..................................................................................................... 8 2.3.2.Phương pháp ghi lại video ..................................................................................... 9 2.3.3.Phương pháp dựa trên kỹ thuật 3D...................................................................... 11 2.4.Kết luận ...................................................................................................................... 14 Chƣơng 3 CÁC KỸ THUẬT BÓP MÉO ẢNH........................................................................... 15 3.1.Mở đầu ....................................................................................................................... 15 3.2.Phân loại kỹ thuật bóp méo ảnh theo phương pháp biến đổi ...................................... 16 3.2.1.Bóp méo ảnh thông qua việc sử dụng hàm số ..................................................... 16 3.2.2.Bóp méo ảnh bằng cách chia ảnh thành những đa giác nhỏ ................................ 23 3.2.3.Bóp méo ảnh dùng cho morphing ........................................................................ 28 3.3.Phân loại kỹ thuật bóp méo ảnh theo cách tạo ra ảnh đích ........................................ 29 IV 3.3.1.Mở đầu ................................................................................................................ 29 3.3.2.Bóp méo xuôi ....................................................................................................... 29 3.3.3.Bóp méo ngược ................................................................................................... 31 3.3.4.So sáng bóp méo xuôi và bóp méo ngược ........................................................... 32 3.4.Kết luận ...................................................................................................................... 32 Chƣơng 4 MÔ PHỎNG CHUYỂN ĐỘNG CỦA KHUÔN MẶT DỰA TRÊN CÁC KỸ THUẬT BÓP MÉO ẢNH ........................................................................................... 34 4.1.Mở đầu ....................................................................................................................... 34 4.2.Mô phỏng chuyển động xoay của xương hàm ............................................................ 34 4.2.1.Chuyển động của xương hàm .............................................................................. 34 4.2.2.Mô phỏng chuyển động........................................................................................ 35 4.3.Mô phỏng chuyển động của các cơ trên khuôn mặt ................................................... 39 4.3.1.Giới thiệu về cơ mặt ............................................................................................. 39 4.3.2.Mô phỏng chuyển động........................................................................................ 41 4.4.Xây dựng dựng hệ mô phỏng các cơ trên khuôn mặt ................................................. 42 4.5.Kết luận ...................................................................................................................... 46 Chƣơng 5 TẠO CẢM XÚC KHUÔN MẶT ................................................................................ 47 5.1.Mở đầu ....................................................................................................................... 47 5.2.Hệ mã hóa các cử động khuôn mặt (Facial Action Coding System - FACS) ............... 47 5.3.Những cảm xúc cơ bản .............................................................................................. 53 5.4.Xây dựng hệ thống các cảm xúc cho nhân vật ........................................................... 54 5.5.Kết luận ...................................................................................................................... 61 Chƣơng 6 XÂY DỰNG KHUÔN MẶT NÓI TIẾNG VIỆT ...................................................... 62 6.1.Mở đầu ....................................................................................................................... 62 6.2.Giới thiệu về âm vị và hình vị ..................................................................................... 62 6.3.Âm vị và hình vị trong tiếng Việt ................................................................................. 63 6.4.Xây dựng tập hợp các hình vị cho khuôn mặt............................................................. 64 6.5.Tạo chuyển động liên tục cho khuôn mặt khi nói chuyện ............................................ 65 V 6.6.Kết luận ...................................................................................................................... 65 Chƣơng 7 TỔNG KẾT .................................................................................................................. 67 TÀI LIỆU THAM KHẢO ........................................................................................... 69 VI DANH MỤC HÌNH ẢNH Hình 1 : Hai vợ chồng nhà “chằn tinh” Shrek ................................................................. 1 Hình 2 : Mô hình CANDIDE (1987) và mô hình Greta (2001) ...................................... 5 Hình 3 : Mô hình cơ vector của Waters........................................................................... 7 Hình 4 : Mô hình cơ mảng của Waters ............................................................................ 8 Hình 5 : Mô hình cơ vòng của Waters............................................................................. 8 Hình 6 : Tổng quan của quá trình thu thập âm vị và hình vị ......................................... 10 Hình 7 : Tổng quan của quá trình tổng hợp video mới ................................................. 10 Hình 8 : Cách thức thực hiện ......................................................................................... 12 Hình 9 : Một số kết quả ................................................................................................. 13 Hình 10 : Ví dụ phép kéo .............................................................................................. 17 Hình 11 : Ví dụ phép biến đổi Affine ............................................................................ 18 Hình 12 : Ví dụ phép chiếu ............................................................................................ 18 Hình 13 : Ảnh ban đầu ................................................................................................... 19 Hình 14 : Ảnh bị biến đổi bởi công thức r = sqrt (r) .................................................... 20 Hình 15 : Ảnh bị biến đổi bởi công thức r = 2 arcsin(r) / p ......................................... 20 Hình 16 : Ảnh bị biến đổi bởi công thức r = sin (pi. r / 2) ........................................... 21 Hình 17 : Ảnh bị biến đổi bởi công thức r = r2 ............................................................. 21 Hình 18 : Ảnh bị biến đổi bởi công thức x = sin(pi.x / 2) và y = sin(pi.y / 2) .............. 22 Hình 19 : Ảnh bị biến đổi bởi công thức x = 2 asin(x) / pi và y = 2 asin(y) / pi ........... 22 Hình 20 : Ảnh gốc và ảnh bị biến đổi ............................................................................ 23 Hình 21 : Một số kiểu biến đổi ảnh (kiểu 'mắt cá', kiểu 'xoáy', kiểu 'mưa') .................. 23 Hình 22 : Hệ tọa độ Barycentric với tam giác .............................................................. 24 Hình 23 : Xác định tọa độ điểm tương ứng với P‟ trên ảnh ban đầu............................. 25 Hình 24 : Xác định tọa độ các điểm bằng hệ tọa độ Barycentric .................................. 25 Hình 25 : Phương pháp bóp méo tứ giác ....................................................................... 26 Hình 26 : Ảnh ban đầu với các vector để bóp méo ảnh ................................................ 27 Hình 27 : Ảnh sau khi bóp méo theo các vector ........................................................... 27 Hình 28 : Bức ảnh morphing giữa George.W.Bush và Arnold Schwarzenegger ......... 28 Hình 29 : Phương pháp morphing ................................................................................. 29 Hình 30 : Bóp méo xuôi cho ảnh ................................................................................... 30 Hình 31 : Mô tả thuật toán bóp méo xuôi ...................................................................... 30 Hình 32 : Vấn đề của bóp méo xuôi .............................................................................. 31 Hình 33 : Bóp méo ngược cho ảnh ................................................................................ 31 Hình 34 : Vấn đề của bóp méo ngược ........................................................................... 32 Hình 35 : Điểm xoay xương hàm .................................................................................. 35 Hình 36 : Ước lượng trục quay của hàm ....................................................................... 36 Hình 37 : Môi của nhân vật ........................................................................................... 37 VII Hình 38 : Hình ảnh của môi dưới sau phép xoay .......................................................... 38 Hình 39 : Ảnh trước và sau khi thực hiện kỹ thuật bóp méo môi trên .......................... 38 Hình 40 : Môi mở ra với các góc ϕ = 0, ϕ = pi / 20, ϕ = pi / 15, ϕ = pi / 10 ................. 39 Hình 41 : Trạng thái ban đầu - Trước khi sử dụng phép bóp méo cho cằm - Sau khi sử dụng phép bóp méo cho cằm ......................................................................................... 39 Hình 42 : Các cơ trên khuôn mặt (khi nhìn thẳng) ........................................................ 40 Hình 43 : Các cơ trên khuôn mặt (khi nhìn ngang) ....................................................... 40 Hình 44 : Phép bóp méo tứ giác tạo nụ cười nửa miệng với cơ khóe miệng ................ 41 Hình 45 : Phép bóp méo tứ giác làm mắt mở rộng hơn với cơ mắt .............................. 41 Hình 46 : Một số hình dáng của môi ............................................................................. 42 Hình 47 : Hệ các cơ được chương trình xây dựng dựa theo .......................................... 42 Hình 48 : Tác động của 2 cơ nén môi trên và môi dưới ................................................ 44 Hình 49 : Tác động của cơ kéo khóe miệng xuống ....................................................... 44 Hình 50 : Tác động của cơ kéo khóe miệng lên ............................................................ 44 Hình 51 : Tác động của cơ kéo cánh mũi lên ................................................................ 44 Hình 52 : Tác động của cơ nâng lông mày bên mắt trái ................................................ 44 Hình 53 : Tác động của cơ kéo lông mày xuống ........................................................... 44 Hình 54: Tác động của cơ thu nhỏ mắt lại .................................................................... 45 Hình 55 : Tác động của cơ cằm ..................................................................................... 45 Hình 56 : Mức độ co giãn của cơ kéo khóe môi xuống từ trạng thái bình thường cho đến trạng thái giãn tối đa ............................................................................................... 45 Hình 57 : Cảm giác ngạc nhiên 50% và 100% .............................................................. 55 Hình 58 : Cảm giác sợ hãi 50% và 100% ...................................................................... 56 Hình 59 : Cảm giác ghê tởm 70% và 100% .................................................................. 57 Hình 60 : Cảm giác tức giận 40% và 100% .................................................................. 58 Hình 61 : Cảm giác hạnh phúc 50% và 100% ............................................................... 59 Hình 62 : Cảm giác buồn bã 60% và 100% .................................................................. 60 Hình 63 : Hình thang nguyên âm .................................................................................. 63 Hình 64 : Các hình vị tương ứng của a|ă|â và e|ê và o ................................................. 64 Hình 65 : Các hình vị tương ứng của ô và ơ và oo ........................................................ 64 Hình 66 : Các hình vị tương ứng của u và ư ................................................................. 65 Hình 67 : Các hình vị tương ứng của b|m|p và v|ph và các phụ âm còn lại ................. 65 VIII DANH MỤC BẢNG BIỂU Bảng 1 : Hệ Thống Các Cơ Được Sử Dụng Trong Chương Trình ............................... 43 Bảng 2 : Hệ Mã Hóa Các Cử Động Khuôn Mặt (FACS) .............................................. 48 Bảng 3 : Danh Sách Các AU Tạo Nên Các Cảm Xúc Cơ Bản ..................................... 53 - 1 - Chƣơng 1 GIỚI THIỆU Dẫn nhập Năm 2001, khi phần đầu tiên của bộ phim hoạt hình Shrek ra đời, tổng doanh thu mà bộ phim đạt được là gần 500 triệu đô. Năm 2004, Shrek II ra mắt và thu về hơn 900 triệu. Ba năm sau đó, Shrek III tiếp tục thắng lợi lớn và mang lại cho đoàn làm phim gần 800 triệu đô la. Hình 1 : Hai vợ chồng nhà “chằn tinh” Shrek Điều gì khiến cho gã chằn tinh xấu xí và đáng sợ như Shrek lại có thể giành được nhiều tình cảm từ khán giả đến vậy ? Chúng ta thường xuyên xem những bộ phim do con người đóng, thật khó để có thể tìm được một diễn viên nào có ngoại hình như Shrek mà lại có thể mang về một loạt ba phim với doanh thu lên đến hàng trăm triệu đô. Câu trả lời có lẽ nằm ở nhiều khía cạnh như tính cách tốt bụng, bản chất chân thật của Shrek nhưng có lẽ yếu tố quan trong nhất chính là chúng ta cảm thấy đồng cảm với Shrek. Nhìn vào bức ảnh trên, thật khó để không có cảm tình với anh chàng chằn tinh xấu xí nhưng tốt bụng này. Cùng với sự thành công của một số bộ phim hoạt hình khác như Gia Đình Nhà Siêu Nhân (The Incredibles), Robot biết yêu (Wall-e)… lĩnh vực hoạt hình mà trung tâm là việc tạo ra các nhân vật hoạt hình đang nhận được sự quan tâm lớn. - 2 - Cũng liên quan đến các nhân vật ảo, nhưng không phải nhân vật hoạt hình mà là các nhân vật trong máy tính. Thế giới của các trò chơi nhập vai đang phát triển hơn lúc nào hết khi người chơi bật máy tính lên là có thể giao tiếp với các nhân vật ảo mà cảm giác như đang sống trong thế giới thực (Second Life, The Sims, Fallout 3). Hãng Umanify đã đưa ra một ứng dụng cho máy Nokia khi giúp cho người dùng mỗi khi xuất hiện một tin nhắn lại có một nhân vật xuất hiện đọc tin cho bạn. Có thể nói, ứng dụng của việc xây dựng lên các nhân vật ảo trong cuộc sống ngày nay là vô cùng lớn. Để xây dựng lên một nhân vật ảo cần sự kết hợp của nhiều lĩnh vực như trí tuệ nhân tạo, đồ họa máy tính, xử lý ngôn ngữ tự nhiên… Đối với lĩnh vực đồ họa máy tính, việc xây dựng lên một nhân vật như Shrek đòi các thiết bị cấu hình cao và nhiều công sức của con người. Bởi người xem muốn thấy một nhân vật có cách nói chuyện truyền cảm, những cử động uyển chuyển và có khả năng bộc lộ ra những cảm xúc chân thực và tinh tế. Còn với nhân vật như của Umanify, yêu cầu đầu tiên là nhân vật có thể nói chuyện được và có khả năng chạy trên nền tảng các thiết bị không có cấu hình cao như điện thoại di động. Để xây dựng nên một nhân vật ảo toàn diện, chúng ta cần xây dựng ba phần như sau :  Một khuôn mặt có khả năng nói chuyện và bộc lộ những cảm xúc  Một cơ thể có khả năng thể hiện những cử chỉ  Một trí tuệ bao gồm những suy nghĩ, tình cảm, động lực, hành vi, tính cách… của nhân vật Lĩnh vực đồ họa máy tính giải quyết bài toán xây dựng khuôn mặt và cơ thể. Trong đó khuôn mặt luôn nhận được nhiều sự quan tâm hơn. Lý do là bởi khuôn mặt là nơi giao tiếp, nói chuyện và bộc lộ những cảm xúc. Nhìn vào khuôn mặt ta có thể thu được nhiều thông tin hơn. Xét cho cùng, khi quan sát một nhân vật ảo, chúng ta không quan sát tay chân của nhân vật nhiều hơn khuôn mặt của nhân vật đó. Có nhiều phương pháp để tạo chuyển động cho khuôn mặt đặc biệt là trên không gian 3D. Tuy vậy, các phương pháp được áp dụng ngày nay trên không gian 3D đều đòi hỏi những xử lý tính toán phức tạp yêu cầu máy cấu hình cao về tốc độ xử lý và card màn hình mạnh. Các phương pháp 2D thì ngược lại, tạo khuôn mặt chuyển động trong không gian 2D không đòi hỏi máy cấu hình cao và tốc độ đường truyền lớn, dẫn đến dễ triển khai trên nền web và các ứng dụng di động. Vấn đề của các phương pháp 2D là phải cải thiện được tính chân thực cho việc chuyển động trên khuôn mặt. Giới thiệu về khóa luận Trong khóa luận này, chúng tôi đưa ra một phương pháp tạo chuyển động cho khuôn mặt trong không gian 2D. Mục tiêu của chúng tôi là tạo ra một khuôn mặt có chuyển động chân thực nhất có thể đồng thời vẫn tận dụng được ưu điểm của các phương pháp 2D trong tốc độ xử lý. - 3 - Chúng tôi sử dụng đầu vào là bức ảnh khuôn mặt của một người, phương pháp của chúng tôi sử dụng các phép biến đổi ảnh để thay đổi trạng thái cảm xúc và làm cho người trong bức ảnh có thể nói chuyện được. Cấu trúc của khóa luận Chương 2 giới thiệu một cách tổng quan về các cách tạo chuyển động cho khuôn mặt được áp dụng hiện nay cả trên không gian 2D và 3D. Cùng với việc giới thiệu, chương này cũng đưa ra những nhận xét về các ưu nhược điểm của từng phương pháp. Chương 3 giới thiệu về các kỹ thuật bóp méo ảnh. Các kỹ thuật bóp méo ảnh là một loại của các kỹ thuật biến đổi ảnh. Chương này sẽ giới thiệu một cách tổng quan về các kỹ thuật bóp méo ảnh, trong đó có những kỹ thuật sẽ được áp dụng trong phương pháp của chúng tôi. Chương này cũng giới thiệu về một kỹ thuật gọi là morphing. Chương 4 mô phỏng chuyển động của khuôn mặt dựa trên kỹ thuật bóp méo ảnh. Dựa trên các kỹ thuật bóp méo ảnh ở chương 3, chương 4 là nơi chúng tôi giới thiệu kết quả các thử nghiệm của mình khi sử dụng các kỹ thuật bóp méo ảnh để tạo chuyển động cho khuôn mặt. Chương 5 giới thiệu cách tạo cảm xúc cho khuôn mặt. Sử dụng kết quả của chương 4, chương 5 kết hợp các chuyển động diễn ra trên khuôn mặt để làm khuôn mặt biểu lộ những cảm xúc khác nhau. Hệ cảm xúc mà chúng tôi sử dụng là hệ cảm xúc của Ekman [Ekman 1972] bao gồm sáu cảm xúc cơ bản là : ngạc nhiên, sợ hãi, tức giận, ghê tởm, hạnh phúc và buồn bã. Chương 6 giới thiệu về các công việc chúng tôi đã làm được trong nỗ lực làm cho khuôn mặt của mình có khả năng nói chuyện bằng tiếng Việt Chương 7 tổng kết lại toàn bộ khóa luận và đưa ra phương hướng phát triển trong tương lai cho phương pháp của chúng tôi - 4 - Chƣơng 2 HOẠT HÌNH KHUÔN MẶT 2.1.Mở đầu Hoạt hình khuôn mặt (facial animation) là một lĩnh vực của đồ họa máy tính, nó mô phỏng các chuyển động diễn ra trên khuôn mặt khi nhân vật nói chuyện hoặc biểu lộ cảm xúc. Nghĩ đến hoạt hình khuôn mặt là người ta nghĩ đến những ứng dụng của nó trong phim ảnh, hoạt hình và trò chơi điện tử. Được bắt đầu nghiên cứu từ những năm đầu của thập niên 70, cho đến nay, hoạt hình khuôn mặt đã đạt được nhiều bước tiến đáng kể. Nhưng vẫn còn đó những giới hạn trong các phương pháp được ứng dụng hiện nay của hoạt hình khuôn mặt, điều đó đòi hỏi con người phải tiếp tục nghiên cứu và phát triển để hoàn thiện hơn lĩnh vực này. Ở chương 1, chúng tôi giới thiệu một cách tổng quan về hoạt hình khuôn mặt. Chúng tôi chia chương này ra làm hai phần : hoạt hình khuôn mặt 3D và hoạt hình khuôn mặt 2D. Ở phần thứ nhất, chúng tôi sẽ giới thiệu một cách tổng quan về hoạt hình khuôn mặt 3D. Chúng tôi sẽ giới thiệu từng bước để tạo hoạt hình khuôn mặt 3D. Với mỗi bước, chúng tôi cũng giới thiệu các phương pháp thực hiện. Cùng với việc giới thiệu, chúng tôi cũng đưa ra những đánh giá về ưu và nhược điểm của từng phương pháp. Trong phần giới thiệu về hoạt hình khuôn mặt 3D, chúng tôi cũng đồng thời giới thiệu về mô hình cơ của Waters [Waters 87]. Đây là một mô hình rất nổi tiếng và được ứng dụng rộng rãi trong hoạt hình khuôn mặt. Ở phần thứ hai, chúng tôi sẽ giới thiệu về hoạt hình khuôn mặt 2D. Các kỹ thuật tạo hoạt hình khuôn mặt 2D không được phong phú như hoạt hình khuôn mặt 3D. Có hai phương pháp nổi tiếng hiện nay để tạo hoạt hình khuôn mặt 2D, đó là phương pháp ghi lại video [Bregler 1997] và phương pháp dựa trên kỹ thuật 3D [Blanz 2003]. Vì chương trình của chúng tôi đang phát triển là tạo chuyển động trên khuôn mặt 2D nên trong chúng tôi sẽ cố gắng giới thiệu một cách chi tiết về hai phương pháp nói trên. Đó cũng là điều kiện để chúng tôi có thể so sánh các phương pháp hiện tại với phương pháp của mình. 2.2.Hoạt hình khuôn mặt 3D 2.2.1.Giới thiệu chung Để tạo hoạt hình khuôn mặt trong không gian ba chiều, công việc mà ta phải làm là điều khiển một lưới 3D mô phỏng mô hình của khuôn mặt. Mục đích của việc làm này là để có thể thay đổi được trạng thái mà khuôn mặt biểu lộ ra ngoài. Có rất nhiều hướng tiếp cận, từ đơn giản như mô hình thời gian thực CANDIDE [Rydfalk 1987] cho đến những mô hình phức tạp như mô hình dựa trên các lớp cơ mặt của [Lee 1995] hay mô hình Greta của [Pasquariello & Pelachaud 2001] - 5 - Hình 2 : Mô hình CANDIDE (1987) và mô hình Greta (2001) Để tạo được hoạt hình khuôn mặt trong không gian ba chiều, có hai bước phải làm. Thứ nhất là mô hình hóa khuôn mặt, thứ hai là mô hình hóa chuyển động. Sau đây chúng tôi sẽ giới thiệu về hai bước này. 2.2.2.Mô hình hóa khuôn mặt Khuôn mặt của con người là một lưới 3D phức tạp và đòi hỏi sự linh hoạt. Nó chứa cả những nếp nhăn và những chỗ lồi lõm trên khuôn mặt. Thách thức của việc xây dựng mô hình lưới này chính là việc phải làm sao cho nó có thể chuyển động nhanh nhưng vẫn tạo cảm giác chân thật. Một hướng giải quyết là sử dụng một lưới các đa giác xấp xỉ bề mặt của khuôn mặt. Khi đó để khuôn mặt có thể chuyển động, ta chỉ cần điều chỉnh các đỉnh trên lưới bề mặt này. Cách tiếp cận này được giới thiệu đầu tiên bởi [Gouraud 1971]. Phương pháp này lấy ra một số điểm trên bề mặt của khuôn mặt và nối những điểm đó với nhau để tạo ra một lưới các đa giác. Tiếp đó phương pháp này được phát triển và ứng dụng bởi [Parke 1972 | Rydfalk 1987 | Pasquariello & Pelachaud 2001]. Để mô phỏng được chuyển động của khuôn mặt, người ta thêm vào dưới lưới bề mặt lớp mỡ, lớp cơ và cả mô hình xương sọ [Kahler 2001 | Lee 1995 | Terzopoulos & Waters 1990] Có ba cách để mô hình hóa khuôn mặt. Thứ nhất là sử dụng các công cụ hỗ trợ như AutoCad hay 3DMax. Đây là một công việc đòi hỏi rất nhiều công sức. Phương pháp thứ hai là sử dụng một số bức ảnh của nhân vật ở các tư thế khác nhau, sau đó chọn ra các điểm đặc trưng trên bức ảnh để tìm ra mối liên hệ giữa các bức ảnh và mô hình 3D. Phương pháp cuối cùng sử dụng một máy scan laser để scan khuôn mặt của người thật và sử dụng kết quả đó để xây dựng nên khuôn mặt. Đây là phương pháp hiệu quả nhất khi xét về độ chân thực của mô hình khuôn mặt. 2.2.3.Mô hình hóa chuyển động - 6 - Như đã nói trong phần trước, khuôn mặt được chuyển động bằng cách điều khiển các đỉnh đa giác của lưới bề mặt hoặc các các điểm điều khiển. Có bốn cách để điều khiển lưới bề mặt, bao gồm phương pháp dựa trên các hình đầu và cuối, phương pháp tham số, phương pháp giả cơ và phương pháp mô hình hóa cơ mặt. Chúng tôi sẽ giới thiệu qua về các phương pháp này cùng với những ưu nhược điểm của nó.  Phƣơng pháp dựa trên các hình đầu và cuối Phương pháp dựa trên các hình đầu và cuối có thể hiểu là một chương trình có sẵn hình đầu và hình cuối, phương pháp sẽ tạo ra chuyển động liên tục giữa hai hình. Để thực hiện được, phương pháp sử dụng các hàm nội suy để sinh ra các hình nằm giữa hình đầu và hình cuối. Các hình đầu và cuối trong trường hợp này có thể hiểu là các trạng thái khác nhau của khuôn mặt. Ưu điểm của phương pháp này là nó có thể tạo ra các chuyển động một cách dễ dàng và nhanh chóng. Nhược điểm của nó là không thể tạo ra bất kỳ trạng thái nào của khuôn mặt nằm ngoài các trạng thái thuộc tập các hình đầu và cuối.  Phƣơng pháp tham số Phương pháp tham số được đưa ra đầu tiên bởi [Parke 1974] để khắc phục một số giới hạn của phương pháp dựa trên các hình đầu và cuối. Phương pháp này điều khiển khuôn mặt bằng một số các tham số điều khiển. Các tham số này được gắn với các vùng riêng biệt để tạo ra các biến dạng khu vực [Hoch 1994]. Khác với phương pháp dựa trên các hình đầu và cuối, phương pháp tham số cho phép tạo ra thay đổi trên các vùng của khuôn mặt. Phương pháp này cung cấp một số lượng lớn các trạng thái khuôn mặt mà không đòi hỏi tính toán phức tạp. Tuy nhiên, phương pháp này cũng có một số giới hạn. Thứ nhất là việc lựa chọn tập các tham số tham số phụ thuộc vào cấu trúc lưới của khuôn mặt, vì vậy các tham số không đủ tổng quát để áp dụng cho các cấu trúc của khuôn mặt khác. Thứ hai là đến nay, người ta vẫn chưa thể tạo ra một tập đầy đủ các tham số để sinh ra mọi chuyển động cho khuôn mặt. Thứ ba là rất khó để phương pháp này có thể giải quyết được khi các tham số cùng tác động lên một đỉnh. Vì các lý do đó, phương pháp này rất ít khi được sử dụng trên thực tế.  Phƣơng pháp giả cơ Phương pháp này biến đổi lưới khuôn mặt bằng cách mô phỏng các chuyển động của cơ mặt nhưng không quan tâm đến các chuyển động ở dưới của khuôn mặt. Kỹ thuật này bao gồm phương pháp chuyển động cơ ảo [Magnenat-Thalmann 1988], phương pháp biến dạng tự do [Kalra 1992 | Pasquariello & Pelachaud 2001] Phương pháp giả cơ không cung cấp một mô phỏng chính xác các cơ mặt và các biểu hiện trên da. Do không quan quan tâm đến những chuyển động dưới da mặt, phương pháp này không tạo ra được những chỗ lồi lõm, các nếp nhăn trên khuôn mặt. Phương pháp này cũng không chú ý lắm đến việc giải quyết các va chạm giữa các cơ.  Phƣơng pháp mô hình hóa cơ mặt Dựa trên giải phẫu học, phương pháp mô hình hóa cơ mặt sử dụng mô hình đa lớp của da và cơ để điều khiển lưới khuôn mặt. Phương pháp này đưa ra chuyển động - 7 - của các cơ với mục đích mô hình hóa biến dạng của da. Ở phần tới của chương này chúng tôi sẽ giới thiệu qua về mô hình cơ của Waters [Waters 1987 | Parke & Waters 1996]. Đây là một mô hình cực kỳ thành công và đã được áp dụng rất phổ biến trên thế giới Phương pháp mô hình hóa cơ mặt đạt được mức độ chân thật nhất trong các phương pháp, nhưng nó phải trả giá bằng sự phức tạp trong tính toán. Vì vậy phương pháp này không được sử dụng rộng rãi trong các ứng dụng thời gian thực. Ngoài ra phương pháp này cũng đòi hỏi con người phải điều chỉnh rất nhiều để tạo được một khuôn mặt 2.2.4.Mô hình cơ của Waters Mô hình cơ mặt của Waters [Waters 1987 | Parke & Waters 1996] là một mô hình rất thành công và được ứng dụng phổ biến [Smith 2006 | Choe 2001]. Waters chia cơ mặt ra làm ba loại : cơ vector, cơ mảng và cơ vòng. Các cơ vector của Waters chiếm số lượng nhiều nhất trong số các loại cơ. Cơ vector có tác dụng kéo lớp da trên khuôn mặt theo một hướng nhất định. Mỗi cơ vector tác động lên một vùng xác định trên khuôn mặt. Mô hình cơ vector được mô tả như hình vẽ dưới đây Hình 3 : Mô hình cơ vector của Waters Cơ mảng chứa các thớ các cơ nằm song song với nhau trên vùng trán. Khi co lại, lớp da trên khuôn mặt không chỉ bị ảnh hưởng bởi một mà bởi toàn bộ các thớ cơ của cơ mảng. Đây là các cơ tạo ra các nếp nhăn trên trán. Mô hình cơ mảng của Waters được biểu diễn như hình vẽ dưới đây - 8 - Hình 4 : Mô hình cơ mảng của Waters Cơ vòng co lại quanh một điểm ảo có tác dụng kéo toàn bộ mặt phẳng xung quanh nó. Ví dụ một số cơ vòng là cơ miệng, cơ mắt. Dưới đây là hình biểu diễn mô hình cơ vòng của Waters. Hình 5 : Mô hình cơ vòng của Waters 2.3.Hoạt hình khuôn mặt 2D 2.3.1.Giới thiệu chung Ở phần này, chúng tôi sẽ giới thiệu về hai phương pháp tạo hoạt hình khuôn mặt 2D. Đó là phương pháp ghi lại video và phương pháp dựa trên kỹ thuật 3D. Sau - 9 - khi giới thiệu về mỗi phương pháp, chúng tôi đều đưa ra những nhận xét về ưu và nhược điểm của từng phương pháp này. 2.3.2.Phƣơng pháp ghi lại video 2.3.2.1.Giới thiệu phƣơng pháp Phương pháp này được giới thiệu bởi Christoph Bregler [Bregler 1997] và sau đó được nhiều tác giả khác ứng dụng và phát triển [Ezzat 1998 | Yang 1999 | Chuang 2005 | Vlasic 2005]. Phương pháp ghi lại video sử dụng môt thước phim có sẵn để chương trình tự động tạo ra một video mới. Trong video này, nhân vật trong thước phim ban đầu nói những điều mà họ không hề nói trong đoạn video gốc. Kỹ thuật này đã được ứng dụng trong phim ảnh và âm nhạc (ví dụ trong việc lồng tiếng). Phương pháp ghi lại video tự động đánh dấu các âm vị trong dữ liệu huấn luyện và đoạn audio mới được đưa vào. Sau đó phương pháp sắp xếp lại các hình vị sao cho khớp với dãy âm vị của đoạn audio mới. Trong trường hợp một âm vị nào đó không có một hình vị tương ứng, phương pháp chọn ra một xấp xỉ gần nhất. Cuối cùng, một dãy các hình vị được ghép lại tạo nên một đoạn video mới. Để tạo ra các chuyển động giữa các hình vị, phương pháp ghi lại video lấy ra những điểm đặc trưng trên miệng của nhân vật. Sau đó, phương pháp sử dụng kỹ thuật morphing để tạo ra chuyển động giữa các hình dáng của miệng. Cuối cùng phương pháp kết hợp các dãy chuyển động này để tạo ra được video mới. Hai bước cơ bản của phương pháp ghi lại video là : thu thập âm vị và hình vị; tổng hợp video mới. 2.3.2.2.Thu thập âm vị và hình vị Phương pháp ghi lại video học từ thước phim mẫu cách khuôn mặt con người thay đổi trong quá trình nói. Chương trình học được miệng của một người trông như thế nào khi người đó nói chuyện bằng cách tạo ra một cơ sở dữ liệu. Để lấy mẫu một người, phương pháp ghi lại video cần một tập các bức ảnh vẽ tay. Đây là công việc duy nhất mà con người phải thực hiện trong cả quá trình thực hiện. Tuy vậy, ngay cả quá trình này cũng có thể thay thế bằng cách sử dụng các mẫu có sẵn đã được đưa ra trong [Kirby 1990, Covell 1996]. Phương pháp ghi lại video thu thập âm vị bằng cách áp dụng phương pháp ghép nối tổng hợp tiếng nói của [Moulines 1990]. Phương pháp này phân tích một tập các đoạn nói chuyện, chọn ra những âm vị mẫu và lấy trung bình các âm vị này. Sau đó, phương pháp này tổng hợp đoạn audio mới bằng cách ghép nối những âm vị thích hợp. Sau quá trình thay đổi âm vị cho phù hợp với cường độ và khoảng thời gian, kết quả của đoạn audio mới khá là tự nhiên. Việc thu thập hình vị cũng làm tương tự. - 10 - Hình 6 : Tổng quan của quá trình thu thập âm vị và hình vị Hình 6 mô tả quá trình thu thập âm vị và hình vị. Phương pháp ghi lại video sử dụng một đoạn audio để chia video ra thành các âm vị. Các kỹ thuật phân tích ảnh giúp tìm ra hướng của đầu, hình dáng, vị trí của miệng và cằm để tìm ra các hình vị tương ứng. Phương pháp ghi lại video chọn từ video mẫu các hình vị phù hợp để tổng hợp một video mới khớp với bất kỳ đoạn audio nào. 2.3.2.3. Tổng hợp video mới Ở bước này này, phương pháp tự động thu thập các dãy hình vị phù hợp với các âm vị, trộn lẫn chúng bằng các kỹ thuật morphing. Kết quả là một video mới với môi và cằm chuyện động phù hợp với đoạn audio mới được đưa vào. Hình 7 : Tổng quan của quá trình tổng hợp video mới - 11 - Hình 7 là tổng quan của quá trình tổng hợp. Phương pháp ghi lại video tách đoạn audio và sử dụng nó để lấy ra các âm vị. Dựa trên kết quả của bước thu thập, các bức ảnh của miệng được lấy ra và morphing để tạo ra gương mặt chuyển động 2.3.2.4. Đánh giá phƣơng pháp Phương pháp này cùng với những cải tiến về sau của nó cho ra những đoạn video khá thật và tự nhiên. Tuy vậy phương pháp này cũng có một số nhược điểm : để nhân vật có thể nói chuyện được, ảnh của mọi vị trí cần có của miệng cần phải có sẵn. Ngoài ra, kết quả trả về bị cố định vào một tư thế phụ thuộc vào các bức ảnh được lấy từ đoạn video gốc. Cuối cùng, việc morphing giữa các vị trí khác nhau của môi và răng cũng là một công việc không hề dễ dàng. 2.3.3.Phƣơng pháp dựa trên kỹ thuật 3D 2.3.3.1.Giới thiệu phƣơng pháp Phương pháp mà chúng tôi giới thiệu sau đây được đưa ra bởi Volker Blanz [Blanz 2003]. Phương pháp này có thể áp dụng cho bất kỳ khuôn mặt nào trong một bức ảnh hoặc một đoạn video. Kỹ thuật này không cần dữ liệu mẫu của miệng nhân vật. Bức ảnh được tạo chuyển động cũng không bị giới hạn ở bất kỳ vị trí cố định nào. Phương pháp này có thể tạo ra những chuyển động của đầu và cho phép nhân vật nói chuyện. Để có thể làm được được như vậy, hệ thống tạo chuyển động miệng và các cảm xúc khuôn mặt thông qua một chuyển động có sẵn của người khác. Hệ thống dựa trên một biểu diễn chung của các khuôn mặt và cảm xúc khác nhau trong một không gian vector. Không gian này được tính bằng cách scan nhiều khuôn mặt trung lập và các cảm xúc khác nhau. Mô hình này được ứng dụng vào ảnh thực và xử lý video bởi một thuật toán phân tích và tổng hợp : Hệ thống tự động tính toán hình khối 3D và tất cả các thông số phù hợp (như tư thế nhân vật) từ một bức ảnh duy nhất. Sau khi tạo ra các chuyển động mới cho miệng, khuôn mặt 3D được đưa trở lại ảnh gốc. 2.3.3.2.Cách thức thực hiện Phương pháp này dựa trên một không gian vector của các hình khối 3D và các bề mặt. Các hình khối và bề mặt được tính từ tập dữ liệu gồm các mẫu scan các cảm xúc và các khuôn mặt trung lập của khoảng vài trăm người. Trong không gian vector này, cảm xúc có thể thay đổi liên tục. Một thuật toán khớp có tác dụng cực tiểu hóa sự khác biệt giữa bức ảnh đầu vào và bức ảnh tổng hợp, cho phép tính ra được hình khối 3D từ một bức ảnh hay một hình ảnh của video. Thuật có thể áp dụng cho cả các khuôn mặt không ở trạng thái trung lập. Trong trường hợp đó, chương trình có thể tạo lại trạng thái trung tập cho khuôn mặt. Để tạo ra những chuyển động mới, chương trình áp dụng các thay đổi trong không gian 3D, sau đó đưa nó trở lại vào bức ảnh gốc (hoặc đoạn video). Không gian vector cho việc chuyển động miệng là mở rộng của phần tạo cảm xúc khuôn mặt [Vetter 1998 | Blanz 1999]. Việc xây dựng nên không gian vector này là rất khó khăn, đòi hỏi thêm nhiều kỹ thuật khác. Một số phương pháp đã dựng nên - 12 - được các không gian vector cho cảm xúc khuôn mặt [Kalberer 2001 | Pighin 2002 | Reveret 2001]. Phương pháp này lấy các vector bằng cách scan các đỉnh của một lưới có độ phân giải cao, lưới này chứa cả những nếp nhăn và các đặc điểm tinh vi, chi tiết. Để tạo chuyển động cho khuôn mặt trên video, phương pháp lần theo chuyển động của đầu, chuyển động của miệng và các cảm xúc khuôn mặt. Không dùng đến các đặc trưng khuôn mặt hay những ràng buộc thị giác, phương pháp này cố gắng cực tiểu hóa sự khác biệt giữa những bức ảnh trong một vòng lặp phân tích – tổng hợp [Blanz 1999 | Pighin 2002 | Reveret 2001]. Hình 8 : Cách thức thực hiện Trong không gian vector của khuôn mặt, những biểu lộ cảm xúc được tính toán thông qua sự khác biệt giữa hai scan của cùng một người (hàng đầu tiên). Sự khác biệt này được áp dụng vào cho khuôn mặt 3D ở trạng thái bình thường. Để thay đổi cảm xúc của Mona Lisa (hàng thứ 2), phương pháp tạo ra cấu trúc khuôn mặt Mona Lisa (hàng thứ 3), thêm cảm xúc vào khuôn mặt và cuối cùng đưa khuôn mặt 3D đó vào trong bức tranh (hàng thứ 2, bên phải) - 13 - 2.3.3.3.Kết quả thực hiện Dưới đây là một số kết quả thực hiện tạo chuyển động, nói chuyện cho khuôn mặt. Chúng được áp dụng với một số bức tranh khá nổi tiếng trên thế giới. Các nhân vật trong các bức tranh này có các tư thế rất khác nhau. Hình 9 : Một số kết quả 2.3.3.4.Đánh giá phƣơng pháp Ưu điểm của phương pháp này là thật và linh hoạt. Phương pháp cũng chỉ sử dụng rất ít dữ liệu từ nhân vật được tạo chuyển động (chỉ một bức ảnh hoặc một video). Bức ảnh và video đó có thể xuất hiện ở các điều kiện ánh sáng và tư thế khác nhau. - 14 - Nhược điểm của phương pháp này là toàn bộ tính toán của phương pháp là trên 3D. Cộng với việc phải xây dựng không gian vector cho khuôn mặt, phương pháp này đòi hỏi những tính toán phức tạp. 2.4.Kết luận Ở chương này, chúng tôi đã giới thiệu tổng quan về các kỹ thuật hoạt hình khuôn mặt. Chúng tôi chia hoạt hình khuôn mặt ra làm hai loại là hoạt hình khuôn mặt 3D và hoạt hình khuôn mặt 2D. Để tạo được hoạt hình khuôn mặt 3D, có hai việc phải làm là mô hình hóa khuôn mặt và mô hình hóa chuyển động. Ứng với mỗi việc này, người ta lại đề xuất ra nhiều cách làm khác nhau. Mỗi cách làm đều có những ưu điểm và nhược điểm của riêng nó. Để giới thiệu về hoạt hình khuôn mặt 2D, chúng tôi đưa ra hai phương pháp nổi tiếng hiện nay là phương pháp ghi lại video và phương pháp dựa trên kỹ thuật 3D. Cách mà hai phương pháp này thực hiện là rất khác nhau. Xét một cách tổng thể, phương pháp dựa trên kỹ thuật 3D trội hơn phương pháp ghi lại video ở nhiều mặt. Nhưng nó lại đòi hỏi một khối lượng tính toán lớn. Thật khó để có thể tìm ra một phương pháp hoàn hảo. Trong lĩnh vực đồ họa máy tính nói chung và hoạt hình khuôn mặt nói riêng, sự chân thực và độ phức tạp trong tính toán luôn có liên quan với nhau. Công việc của chúng ta là tăng độ chân thực cho chuyển động và giảm độ phức tạp trong tính toán xuống mức nhỏ nhất có thể. - 15 - Chƣơng 3 CÁC KỸ THUẬT BÓP MÉO ẢNH 3.1.Mở đầu Bóp méo ảnh (image-warping) là một quá trình xử lý khiến cho một phần hay toàn bộ bức ảnh bị biến đổi. Đây là kỹ thuật được ứng dụng nhiều trong việc chỉnh sửa ảnh, tạo các hiệu ứng đặc biệt trong trò chơi điện tử, phim ảnh và hoạt hình. Bóp méo ảnh có thể hiểu là một phép ánh xạ một số điểm trên một bức ảnh đến vị trí khác mà không làm thay đổi tính chất của điểm (màu sắc, độ sáng tối…). Phép ánh xạ này có đầu vào là (một phần) ảnh gốc và kết quả trả ra là (một phần) ảnh đích đã bị biến đổi. Kỹ thuật bóp méo ảnh bao gồm nhiều phép biến đổi ảnh. Từ những phép biến đổi đơn giản như phép tịnh tiến, phép quay cho đến những phép biến đổi sử dụng những hàm số phức tạp. Bóp méo còn bao gồm cả những phép biến đổi không sử dụng đến hàm số và những phép biến đổi là sự kết hợp của một vài kỹ thuật khác nữa. Trong chương này, chúng tôi cũng giới thiệu về kỹ thuật morphing, là một kỹ thuật này khá gần gũi với bóp méo ảnh. Morphing là một kỹ thuật biến đổi ảnh tạo ra chuyển động liên tục biến đổi từ bức ảnh này thành bức ảnh khác. Mặc dù chúng tôi không dùng đến morphing trong chương trình của mình, nhưng khá nhiều cách tiếp cận của các tác giả khác trong việc tạo ra chuyển động cho khuôn mặt có sử dụng đến kỹ thuật này [Bregler 1997 | Ezzat 1998]. Cùng với việc giới thiệu về kỹ thuật của các tác giả này, chúng tôi cũng muốn bạn đọc có một cái nhìn tổng quan về kỹ thuật morphing. Có nhiều cách để phân loại các kỹ thuật bóp méo ảnh tùy thuộc vào tiêu chí đánh giá. Để có thể giới thiệu một cách chi tiết và dễ hiểu về kỹ thuật bóp méo ảnh, chúng tôi phân loại và giới thiệu các kỹ thuật bóp méo ảnh theo hai cách sau : Cách thứ nhất, phân loại kỹ thuật bóp méo ảnh theo phương pháp biến đổi, bao gồm ba loại :  Ảnh bị bóp méo thông qua việc sử dụng hàm số  Ảnh bị bóp méo bằng cách chia thành các đa giác khác nhau, mỗi đa giác lại bị bóp méo theo một cách riêng biệt  Ảnh bị bóp méo để dùng cho kỹ thuật morphing Cách thứ hai là phân loại kỹ thuật bóp méo ảnh theo cách tạo ra ảnh đích, bao gồm hai loại :  Bóp méo xuôi : ảnh đích được tạo ra bằng cách ánh xạ trực tiếp từ ảnh gốc đến ảnh đích  Bóp méo ngược : ảnh đích được tạo ra bằng cách ánh xạ từ ảnh đích đến ảnh gốc - 16 - Cấu trúc chương này của chúng tôi gồm hai phần. Mỗi phần giới thiệu về một cách phân loại kỹ thuật bóp méo ảnh như đã nói ở trên. 3.2.Phân loại kỹ thuật bóp méo ảnh theo phƣơng pháp biến đổi 3.2.1.Bóp méo ảnh thông qua việc sử dụng hàm số Với việc tồn tại vô số hàm số, ta có thể nhận ra là số cách biến đổi ảnh bằng phương pháp bóp méo sử dụng hàm số cũng cho ta vô số lựa chọn để biến đổi bức ảnh theo ý mình. Để giới thiệu về phần này, chúng tôi xin được giới thiệu một số phép bóp méo ảnh từ đơn giản cho đến những phép bóp méo ảnh phức tạp hơn. 3.2.1.1.Một số phép bóp méo ảnh đơn giản Trước khi đi vào phần này, cần nhắc lại là một phép bóp méo ảnh là một cặp hàm số hai biến x’(x, y) và y‟(x, y) tương ứng với phép ánh xạ từ tọa độ (x, y) trong ảnh gốc (x là tọa độ cột, y là tọa độ hàng) đến tạo độ (x’, y’) trong ảnh đích.  Phép tịnh tiến Để tạo ra sự khác biệt giữa hai bức ảnh là một phép tịnh tiến của hàng hoặc cột hoặc cả hàng và cột thì ta sử dụng công thức x‟ = x + a0 y‟ = y + b0  Phép quay Để tạo ra sự khác biệt giữa hai bức ảnh là một phép quay góc ϕ thì ta sử dụng công thức x‟ = x cos(ϕ) – y sin(ϕ) y‟ = x sin(ϕ) + y cos(ϕ)  Phép tỉ lệ Để tạo ra sự khác biệt giữa hai bức ảnh là một phép tỉ lệ có hệ số s thì ta sử dụng công thức x‟ = x * s y‟ = y * s Trong trường hợp phép tỉ lệ có hệ số khác nhau giữa các trục thì ta sử dụng công thức x‟ = x * s1 y‟ = y * s2  Phép đối xứng Phép đối xứng qua trục y x‟ = -x y‟ = y Phép đối xứng qua tâm (0, 0) - 17 - x‟ = -x y‟ = -y  Phép kéo Đây là một phép biến đổi tuyến tính. Phép biến đổi này giữ nguyên tọa độ của các điểm trên một trục, những điểm khác di chuyển song song với trục theo một khoảng cách tỉ lệ thuận với khoảng cách từ điểm đó đến trục. Phép kéo có công thức x‟ = x + shx * y y‟ = y hoặc x‟ = x y‟ = y + shy * x Hình 10 : Ví dụ phép kéo Hình 10 là ví dụ bức ảnh Mona Lisa bị biến đổi bởi phép kéo. Những điểm ảnh nằm trên trục tung không thay đổi tọa độ  Phép biến đổi Affine Phép biến đổi Affine là kết hợp của các phép biến đổi tuyến tính (ví dụ phép tỉ lệ, phép quay, phép biến kéo, phép đối xứng…) và phép tịnh tiến. Công thức của phép - 18 - biến đổi Affine được đưa ra dưới dạng ma trận trong hệ tọa độ đồng nhất Hình 11 : Ví dụ phép biến đổi Affine  Phép chiếu Công thức của phép chiếu cũng được đưa ra dưới dạng ma trận như sau Hình 12 : Ví dụ phép chiếu                                w y x fed cba w y x 100 ' '                          w y x ihg fed cba w y x ' ' ' - 19 - 3.2.1.2.Một số phép bóp méo ảnh phức tạp hơn  Quy ƣớc Với các phép biến đổi trong phần này, ta quy ước chuyển hệ tọa độ như sau Tọa độ của các điểm ảnh (i, j) nằm trong khoảng (0, m - 1) và (0, n - 1) được đưa về dưới dạng tọa độ (x, y) nằm trong khoảng (-1, 1) theo công thức sau x = 2i / m – 1 y = 2j / n – 1 Tọa độ (x, y) được đưa về dưới dạng tọa độ (r, phi) theo công thức sau r = sqrt(x 2 + y 2 ) phi = atan2(y,x) Để chuyển lại từ hệ tọa độ (r, phi) sang (x, y) ta sử dụng công thức sau x = r cos(phi) y = r sin(phi)  Một số ví dụ của kỹ thuật bóp méo ảnh [Bourke 2002] Hình 13 : Ảnh ban đầu - 20 - Hình 14 : Ảnh bị biến đổi bởi công thức r = sqrt (r) Hình 15 : Ảnh bị biến đổi bởi công thức r = 2 arcsin(r) / p - 21 - Hình 16 : Ảnh bị biến đổi bởi công thức r = sin (pi. r / 2) Hình 17 : Ảnh bị biến đổi bởi công thức r = r2 - 22 - Hình 18 : Ảnh bị biến đổi bởi công thức x = sin(pi.x / 2) và y = sin(pi.y / 2) Hình 19 : Ảnh bị biến đổi bởi công thức x = 2 asin(x) / pi và y = 2 asin(y) / pi - 23 -  Một số ví dụ thú vị khác Sau đây là một số ví dụ ảnh của một người đàn ông bị biến đổi sau khi áp dụng các công thức khác nhau Hình 20 : Ảnh gốc và ảnh bị biến đổi Hình 21 : Một số kiểu biến đổi ảnh (kiểu 'mắt cá', kiểu 'xoáy', kiểu 'mƣa') 3.2.2.Bóp méo ảnh bằng cách chia ảnh thành những đa giác nhỏ 3.2.2.1.Bóp méo tam giác  Hệ tọa độ Barycentric Định nghĩa - 24 - Hệ tọa độ Barycentric là hệ tọa độ được định nghĩa bởi các đỉnh của một đơn hình (như tam giác, tứ diện…) Hệ tọa độ Barycentric là một dạng của hệ tọa độ đồng nhất. Gọi x1,…, xn là các đỉnh của một đơn hình trong một không gian vector A. Nếu có một điểm P thuộc A thỏa mãn (a1 + … + an) p = a1 x1 + … + an xn thì ta gọi các hệ số (a1,…, an) là tọa độ Barycentric của điểm P tương ứng với các đỉnh x1, …, xn. Các đỉnh xi có tọa độ (1, 0, …, 0), (0, 1, 0,…, 0),…, (0, 0,…, 1). Tọa độ Barycentric không phải là duy nhất : với bất kỳ số b nào khác 0 thì (b.a1, …, b.an) cũng là tọa độ của điểm P. Khi tọa độ không âm, điểm P nằm bên trong của đơn hình Hệ tọa độ Barycentric đối với tam giác Đối với tam giác, hệ tọa độ Barycentric còn được gọi là hệ tọa độ diện tích. Cho một điểm P và tam giác A1A2A3, tọa độ của điểm P tương ứng tỉ lệ với diện tích của PA2A3, PA3A1 và PA1A2. Hình 22 : Hệ tọa độ Barycentric với tam giác Gọi t1, t2, t3 tương ứng là tỉ lệ diện tích của các tam giác PA2A3, PA3A1 và PA1A2 đối với tam giác A1A2A3. Khi đó, tọa độ của điểm P được tính dựa trên công thức P = t1 . A1 + t2 . A2 + t3. A3 trong đó t1, t2, t3 thỏa mãn điều kiện t1 + t2 + t3 = 1  Áp dụng hệ tọa độ Barycentric để thực hiện bóp méo ảnh Ở hình dưới đây, ta đang cần phải thực hiện một phép bóp méo từ ảnh gốc sang ảnh đích. Phương pháp bóp méo mà chúng tôi sử dụng ở đây là bóp méo ngược (xem phần 3.3.3). Giả sử ta đã xác định được các điểm ABC trên ảnh gốc tương ứng với các điểm A‟B‟C‟ trên ảnh đích. Hiện tại ta cần phải xác định tọa độ của điểm P trên ảnh - 25 - gốc tương ứng với tọa độ điểm P‟ đã xác định trên ảnh đích. Hình 23 : Xác định tọa độ điểm tƣơng ứng với P’ trên ảnh ban đầu Để xác định được điểm P trên ảnh ban đầu, ta sử dụng công thức của hệ tọa độ đồng nhất P = wAA + wBB + wCC và P‟ = wAA‟ + wBB‟ + wCC‟ Với việc đã biết tọa độ của các điểm A, B, C, A‟, B‟, C‟, P‟ và các tỉ lệ wA, wB, wC ta có thể xác định được tọa độ của điểm P Hình 24 : Xác định tọa độ các điểm bằng hệ tọa độ Barycentric - 26 - Bằng cách chia ảnh thành các tam giác như trên hình ta có thể xác định được điểm Q cần tìm trên ảnh gốc tương ứng với mọi điểm Q‟ trên ảnh đích. Cách làm tương tự như cách ta tìm điểm P khi đã biết P‟ 3.2.2.2.Bóp méo tứ giác Phương pháp thực hiện phép bóp méo trên từng vùng hình vuông chứ không phải trên toàn bộ bức ảnh. Mỗi hình vuông bị bóp méo được chia làm bốn góc phần tư khác nhau, phương pháp này thực hiện bóp méo bốn góc này một cách riêng biệt Hình 25 : Phƣơng pháp bóp méo tứ giác Hình 25 mô tả phương pháp bóp méo tứ giác. Vector ở hình vuông thứ nhất chính là vector mà phép bóp méo thực hiện để làm biến đổi bức ảnh. Nhờ sự tác động của vector này mà hình vuông bên trái được đưa về dưới dạng hình vuông bên phải. Ta có thể dễ dàng nhận ra sự khác biệt giữa hai hình vuông chính là bốn phần màu đỏ, xanh lam, vàng và hồng đã thay đổi theo vector ở hình bên trái. Điểm trung tâm ở hình vuông bên trái đã bị dịch một đoạn vector v làm cho hình dạng của các góc phần tư ở hình vuông thứ nhất trở thành các hình tứ giác trong hình vuông thứ hai. Cốt lõi của phương pháp bóp méo tứ giác này chính là cách bóp méo từng góc phần tư ở hình vuông bên trái thành từng hình tứ giác tương ứng ở hình vuông bên phải. Để thực hiện được phép bóp méo này, phương pháp thực hiện các phép co giãn các góc phần tư thành các tứ giác. Phương pháp đã sử dụng đến các phép tỉ lệ, làm tròn số thực để có thể thực hiện được phép co giãn này. Như vậy phương pháp bóp méo tứ giác có thể tóm gọn lại trong hai bước như sau Bước 1 : xác định các góc phần tư và tọa độ các đỉnh của hình tứ giác tương ứng với từng góc phần tư đó. Bước 2 : ứng với mỗi cặp góc phần tư / tứ giác, thực hiện phép bóp méo khu vực. Đó là phép bóp méo ngược dựa trên sự tương ứng tỉ lệ. - 27 - Để giúp bạn đọc có thể hình dung rõ hơn về phương pháp bóp méo này, chúng tôi thử thực hiện nó với một bức ảnh của diễn viên Elisha Cuthbert. Tất cả các phép bóp méo được thực hiện đều được đánh dấu vector trên bức ảnh. Độ lớn của khoảng bóp méo là một hình vuông có cạnh là 70 pixel Hình 26 : Ảnh ban đầu với các vector để bóp méo ảnh Hình 27 : Ảnh sau khi bóp méo theo các vector - 28 - 3.2.3.Bóp méo ảnh dùng cho morphing 3.2.3.1.Giới thiệu về morphing Morphing là một kỹ thuật khá đặc biệt và nó được ứng dụng nhiều trong phim ảnh và hoạt hình. Định nghĩa đơn giản nhất, morphing là một kỹ thuật biến đổi một bức ảnh này sang một bức ảnh khác thông qua một dãy liên tiếp các bước trung gian để tạo thành chuyển động. Có không ít những phương pháp tạo chuyển động cho khuôn mặt trên ảnh hai chiều hay video có sử dụng đến morphing. Đối với một số phương pháp đó, đầu vào của chuyển động là hai bức ảnh khác nhau và khi đó morphing sẽ được áp dụng vào để tạo ra những hình ảnh trung gian giữa hai bức ảnh. Thường thì morphing được sử dụng để tạo ra một chuyển động biến đổi từ mặt người này sang mặt người khác hoặc giữa hai trạng thái khác nhau của khuôn mặt cùng một người. Trong video clip “Black or White” của Michael Jackson, đoạn cuối của có một loạt những biến đổi từ khuôn mặt người này sang người khác, đủ các độ tuổi, giới tính, màu da. Đó chính là ứng dụng của kỹ thuật morphing. Trong 3 bức ảnh sau đây, hai bức đầu và cuối là của George.W.Bush và Arnold Schwarzenegger. Bức ở giữa chính là bức ảnh được morphing từ chân dung của hai nhân vật nổi tiếng này. Hình 28 : Bức ảnh morphing giữa George.W.Bush và Arnold Schwarzenegger 3.2.3.2.Ứng dụng của bóp méo ảnh vào morphing Trước đây, để thực hiện được morphing, người ta thường sử dụng phương pháp pha lẫn – làm mờ. Tuy vậy phương pháp này có một nhược điểm là nó tạo ra hiệu ứng bóng ma. Điều đó làm cho quá trình chuyển động không được tự nhiên. Để giải quyết vấn đề này, người ta đưa ra giải pháp là xắp xếp cho hai bức ảnh đầu và cuối được thẳng hàng với nhau. Như vậy thì quá trình morphing sẽ không bị tạo ra hiệu ứng bóng ma nữa. Tuy vậy, không phải lúc nào người ta cũng có thể sắp xếp hai bức ảnh thẳng với nhau. Vì vậy người ta cần phải tìm ra những điểm đặc trưng trên - 29 - hai bức ảnh và ghép nối các cặp điểm đặc trưng này với nhau. Để có thể dóng thẳng các điểm đặc trưng này, người ta xử dụng đến kỹ thuật bóp méo ảnh. Hình 29 : Phƣơng pháp morphing Hình trên là mô tả của phương pháp morphing. Hình ở giữa hàng trên là ảnh được áp dụng trực tiếp bằng phương pháp pha lẫn – làm mờ. Ta có thể dễ dàng nhận ra hiệu ứng bóng ma trên bức ảnh. Ở hàng dưới, trước khi thực hiện pha lẫn – làm mờ giữa hai bức ảnh thì người ta tìm ra các điểm đặc trưng trên bức ảnh ban đầu và ảnh đích rồi thực hiện phép bóp méo cho hai bức ảnh đó. Sau đó người ta mới pha lẫn – làm mờ hai bức ảnh này với nhau. Nói tóm lại, công thức cho morphing có thể viết như sau Morphing = Bóp méo + Pha lẫn làm mờ 3.3.Phân loại kỹ thuật bóp méo ảnh theo cách tạo ra ảnh đích 3.3.1.Mở đầu Trong quá trình bóp méo ảnh, một trong những việc quan trọng nhất phải làm là tính ra được chính xác từng vị trí điểm ảnh trong ảnh đích với các điểm ảnh có sẵn trong ảnh ban đầu. Chúng ta đã có sẵn ảnh gốc I(x, y) và phép biến đổi T : (x‟, y‟) = T(x, y). Việc tiếp theo cần làm là tính ra được ảnh đích I‟(x‟, y‟). Có hai cách để thực hiện việc này là bóp méo xuôi và bóp méo ngược. 3.3.2.Bóp méo xuôi - 30 - Công việc của bóp méo xuôi rất đơn giản đó là lấy mỗi điểm trong ảnh gốc, tính toán giá trị thông qua phép biến đổi T và gắn nó vào ảnh đích (x‟, y‟) = T(x, y) Hình 30 : Bóp méo xuôi cho ảnh Thuật toán bóp méo xuôi forwardWarping(I, I’, T) { for (y = 0; y < I.height; y++) for (x = 0; x < I.width; x++) { (x’, y’) = T(x, y); I’(x’, y’)=I(x, y); } } Hình 31 : Mô tả thuật toán bóp méo xuôi Vấn đề của thuật toán bóp méo xuôi đó là không phải lúc nào phép biến đổi T cũng cho ra (x‟, y‟) là tọa độ điểm nguyên. Khi đó ta phải lấy làm tròn giá trị của điểm (x‟, y‟). Phương pháp này lại sinh ra một vấn đề nữa là ảnh đích được sinh ra sẽ có - 31 - những “lỗ hổng” do tồn tại những điểm không được lấp bởi những điểm ảnh của ảnh gốc (và tương tự cũng có những điểm ảnh được lấp nhiều lần). Để lấp những khoảng trống này, ta tính màu trung bình của các điểm lân cận của điểm bị trống và lấy màu này làm giá trị của điểm cần tìm. Hình 32 : Vấn đề của bóp méo xuôi 3.3.3.Bóp méo ngƣợc Công việc của bóp méo ngược trái với bóp méo xuôi. Ở bóp méo xuôi, ta lấy từng giá trị điểm ảnh của ảnh gốc để tính ra các giá trị điểm ảnh ở ảnh đích. Đối với bóp méo ngược, ta tính ra giá trị của từng điểm ảnh ở ảnh đích bằng cách tìm các điểm tương ứng với nó trong ảnh gốc. Với mỗi điểm (x‟, y‟) ta tính ra (x, y) = T-1(x‟, y‟) Hình 33 : Bóp méo ngƣợc cho ảnh Thuật toán bóp méo ngược inverse-warping(I, I’, T) { for (y=0; y<I’.height; y++) for (x=0; x<I’.width; x++) { (x,y)=T -1(x’,y’); I’(x’,y’)=I(x,y); - 32 - } } Vấn đề của thuật toán bóp méo ngược là có những khi điểm (x, y) mà T-1 trả về không phải là điểm nguyên. Khi đó, để tính giá trị (x, y) ta tính giá trị trung bình của các điểm ảnh quanh vị trí (x, y). Hình 34 : Vấn đề của bóp méo ngƣợc Thuật toán đề giải quyết vấn đề của bóp méo ngược inverse-warping(I, I’, T) { for (y=0; y<I’.height; y++) for (x=0; x<I’.width; x++) { (x,y)=T -1(x’,y’); I’(x’,y’)=I(x,y); I’(x’,y’)=Reconstruct(I,x,y,kernel); } } 3.3.4.So sáng bóp méo xuôi và bóp méo ngƣợc Nói chung, phương pháp bóp méo ngược được ưa chuộng hơn phương pháp bóp méo xuôi vì nó tránh gặp phải rắc rối với những lỗ hổng. Tuy vậy, phương pháp bóp méo xuôi vẫn có giá trị của nó vì không phải khi nào chúng ta cũng có thể có được một hàm T có thể tìm được hàm ngược T-1 để sử dụng trong chương trình. 3.4.Kết luận Trong chương này, chúng tôi đã giới thiệu khá chi tiết về kỹ thuật bóp méo ảnh. Chúng tôi đã phân loại kỹ thuật bóp méo ảnh theo hai cách là phương pháp bóp méo và cách tạo ra ảnh đích. Đồng thời cũng giới thiệu qua về kỹ thuật morphing. Đây là kỹ thuật không được sử dụng trong chương trình của chúng tôi nhưng, nó đã được ứng dụng bởi một số tác giả khác khi tạo chuyển động cho khuôn mặt người trên ảnh hai chiều. - 33 - Phương pháp mà chúng tôi tạo chuyển động cho khuôn mặt được xây dựng dựa trên các kỹ thuật bóp méo ảnh. Cách thức ứng dụng các phép bóp méo ảnh trong chương trình được chúng tôi giới thiệu chi tiết trong chương 4. - 34 - Chƣơng 4 MÔ PHỎNG CHUYỂN ĐỘNG CỦA KHUÔN MẶT DỰA TRÊN CÁC KỸ THUẬT BÓP MÉO ẢNH 4.1.Mở đầu Để mô phỏng chuyển động trên khuôn mặt khi thay đổi cảm xúc hoặc nói chuyện, chúng tôi sử dụng các phép bóp méo ảnh đã được giới thiệu trong chương 3 cho chương trình của mình. Phương pháp mà chúng tôi sử dụng để tạo chuyển động cho khuôn mặt bao gồm cả việc sử dụng các phép bóp méo ảnh sử dụng hàm số và những phép bóp méo ảnh phân tách thành những đa giác khác nhau. Về cách tạo ảnh đích, chúng tôi sử dụng kỹ thuật bóp méo ngược. Lý do, như chúng tôi đã nói, vì phương pháp này có nhiều ưu điểm và chúng tôi cũng đưa ra được phép biến đổi ngược với phép biến đổi ban đầu. Chương này có ba phần chính. Thứ nhất, chúng tôi sẽ giới thiệu cách thức sử dụng kỹ thuật bóp méo ảnh để mô phỏng chuyển động xoay xương hàm cho nhân vật. Ở phần thứ hai chúng tôi sẽ giới thiệu cách ứng dụng bóp méo ảnh cho việc mô phỏng chuyển động của các cơ. Trong cả hai phần, trước khi đi vào việc mô phỏng chuyển động khuôn mặt trên máy tính, chúng tôi sẽ giới thiệu một chút về khuôn mặt từ góc độ giải phẫu học. Phần cuối cùng, sau khi đã có được công cụ để mô phỏng chuyển động của các cơ, chúng tôi xây dựng nên hệ mô phỏng của các cơ cho chương trình của mình. 4.2.Mô phỏng chuyển động xoay của xƣơng hàm 4.2.1.Chuyển động của xƣơng hàm Khi con người nói chuyện hay ăn uống, miệng chúng ta mở ra bằng cách chuyển động hàm. Khi đó toàn bộ hàm sẽ quay quanh một trục đi qua điểm xoay xương hàm. Điểm xoay xương hàm được mô tả như trong hình 35. Khi đó, các điểm trên hàm, là những điểm nhạt màu nằm ở phần phía dưới của khuôn mặt sẽ đồng thời quay quanh trục quay của hàm một góc ϕ. Theo [Parke 1974], khi quay, toàn bộ các điểm trên cằm sẽ quay nhưng một số điểm sẽ quay với một góc quay khác. Để tạo cho miệng có một hình oval tự nhiên, các điểm nằm trên môi dưới sẽ quay với các góc khác nhau. Những điểm nằm ở giữa của môi dưới sẽ quay cùng góc với cằm. Góc quay sẽ giảm dần với các điểm trên môi dưới nhưng nằm ở gần khóe miệng hơn. - 35 - Hình 35 : Điểm xoay xƣơng hàm Môi trên cũng bị ảnh hưởng bởi phép xoay xương hàm. Những điểm nằm ở giữa của môi trên sẽ giữ nguyên vị trí. Còn các điểm trở về gần với mép hơn thì sẽ quay với các góc gần với góc quay của các điểm nằm gần mép của môi dưới. Như vậy, hai điểm ngoài cùng của môi trên và môi dưới sẽ quay với cùng một góc quay như nhau. 4.2.2.Mô phỏng chuyển động Phương pháp mô phỏng xoay xương hàm được chúng tôi xây dựng dựa trên phương pháp trong không ba chiều của [Parke 1974] kết hợp với việc áp dụng các phép bóp méo ảnh. Mặc dù khuôn mặt và bức ảnh chúng tôi sử dụng là 2D nhưng chúng tôi coi như mình đang thao tác với một khuôn mặt 3D. Ý nghĩa của việc làm này là để thực hiện phép xoay hàm nhân vật, một phép biến đổi hình học ba chiều nhưng được thực hiện trên ảnh hai chiều. Để có thể mô phỏng được phương pháp này trên ảnh 2 chiều, chúng tôi giả sử có tồn tại một trục quay nằm phía sau bức ảnh. Dĩ nhiên là bức ảnh khuôn mặt của chúng ta chỉ có phần trước, điều đó có nghĩa là trục quay này là không thể nhìn thấy trên ảnh. - 36 - Hình 36 : Ƣớc lƣợng trục quay của hàm Hình trên là ước lượng của chúng tôi về vị trí trục quay của hàm. Như đã nói ở trên, hình vẽ chỉ biểu diễn được chính xác tọa độ x và y của trục quay. Nếu coi mặt phẳng bức ảnh là z = 0, trục z vuông góc với mặt phẳng bức ảnh và hướng ra ngoài thì trục quay của khuôn mặt có z < 0 (nằm phía sau bức ảnh) Để có thể thực hiện được phép quay ta cần xác định được chính xác phương trình đường thẳng của trục quay và tọa độ của các điểm cần phải quay. Dựa trên hình 35 và những ước lượng ngoài đời về tỉ số giữa độ sâu của trục quay của hàm, độ rộng của môi, độ lớn của khuôn mặt khi nhìn trực diện cùng với những thử nghiệm trong chương trình, chúng tôi ước lượng được độ lớn của z. Cùng với những ước lượng về x, y như trên hình vẽ, chúng tôi xác định được phương trình đường thẳng của trục quay. Sau khi đã xác định được phương trình của trục quay, ta cần xác định tọa độ của các điểm cần phải quay quanh trục. Trên lý thuyết, tất cả các điểm nằm trên cằm đều quay quanh hàm. Nhưng trong chương trình, chúng tôi không thực hiện phép quay cho tất cả các điểm mà chỉ thực hiện phép quay cho một số điểm nhất định. Vì chương trình của chúng tôi tập trung vào việc cải thiện tốc độ nhưng vẫn cố gắng giữ được độ thật cho chuyển động khuôn mặt. Chúng tôi chỉ thực hiện phép quay cho các điểm nằm trên môi dưới. Để tạo cho hàm có được chuyển động thật, kết hợp với phép quay môi dưới, chúng tôi sử dụng kết hợp thêm phép bóp méo ảnh cho môi trên và ba vị trí nằm dưới cùng của hàm. Sau đây chúng tôi sẽ trình bày chi tiết về cách tạo chuyển động cho môi dưới, môi trên và cằm nhân vật. - 37 -  Mô phỏng chuyển động của môi dƣới Hình 37 : Môi của nhân vật Để xác định được các điểm nằm trên môi dưới chúng tôi ước lượng tọa độ các điểm nằm trên biên. Đường trên của môi dưới dễ nhận thấy là một đường thẳng. Đường dưới môi dưới là một đường cong có dáng của một parabol. Chúng tôi xác định 5 điểm nằm trên đường cong dưới của môi dưới và xấp xỉ ra được công thức của parabol đi qua đường cong này. Bằng cách đó chúng tôi xác định được chính xác tất cả các điểm nằm trên môi dưới. Tuy vậy, sau khi xác định được tọa độ của các điểm nằm trên môi dưới, chúng tôi vẫn chưa thể sử dụng ngay tọa độ của các điểm này. Bởi vì chúng ta đang chuẩn bị để thực hiện phép quay 3D nên phải xét các điểm này như là những điểm trong không gian 3D. Theo [Parke 1974], các điểm nằm giữa của môi dưới sẽ quay với góc lớn hơn các điểm nằm gần khóe miệng. Trên thực tế khi thực nghiệm trong chương trình của mình, chúng tôi nhận thấy phương pháp này không mang lại hiệu quả như mong đợi. Vì vậy, chúng tôi thực hiện phép quay cho tất cả các điểm là như nhau. Thay vào đó, chúng tôi để ý thấy môi của chúng ta không hoàn toàn “bằng phẳng”, phần giữa của môi có vẻ “nhô” ra phía trước nhiều hơn hai phần khóe môi, quan sát này giúp chúng tôi đưa ra nhận xét là tọa độ z của phần giữa môi lớn hơn tọa độ z của các điểm nằm gần khóe môi. Sự khác biệt này được chúng tôi xác định bằng cách thực nghiệm, thay đổi các hằng số và tham số. Đến đây, chúng ta đã có đủ các yếu tố cần thiết để có thể thực hiện phép quay 3D cho môi dưới của nhân vật. Đó là phương trình của trục quay và tọa độ các điểm quay trong không gian 3D. Để cho đơn giản chúng tôi tịnh tiến trục Ox trùng với trục quay của hàm, tọa độ x và tọa độ y bằng với tọa độ x, y của trung điểm đoạn thẳng phía trên của môi dưới. Khi đó phép quay trong không gian ba chiều là phép quay quanh trục Ox (trùng với trục quay của hàm). Ta có công thức x‟ = x y‟ = y cos(ϕ) – z sin(ϕ) z‟ = y sin(ϕ) + z cos(ϕ) Bằng cách áp dụng công thức trên ta có thể tính ra tọa độ (x‟, y‟, z‟) theo góc quay ϕ. Mặt khác ta lại không cần tọa độ z khi biểu diễn trên ảnh nên ta thực hiện phép chiếu các điểm lên mặt phẳng Oxy và bỏ qua tọa độ z. Khi đó ta có - 38 - x‟ = x y‟ = y cos(ϕ) – z sin(ϕ) Như vậy tọa độ x không thay đổi trong phép quay và ta chỉ cần tính ra tọa độ mới cho y. Bằng cách tính ra (x‟, y‟) của môi dưới, chúng tôi tạo được chuyển động cho môi dưới sang một vị trí khác với một hình dáng khác. Hình 38 : Hình ảnh của môi dƣới sau phép xoay Ở hình 38 ta thấy sau khi thực hiện phép quay cho môi dưới, môi dưới dịch xuống một đoạn tạo ra một khoảng trống giữa môi trên và môi dưới. Tiếp theo đây, chúng tôi sẽ giới thiệu cách mô phỏng chuyển động của môi trên để tạo ra chuyển động thật cho toàn bộ miệng của nhân vật.  Mô phỏng chuyển động của môi trên Như đã nói, khi môi trên chuyển động, các điểm nằm ở giữa của môi trên giữ nguyên vị trí còn các điểm gần khóe miệng chuyển động theo các điểm gần khóe miệng của môi dưới. Để có thể mô phỏng chuyển động cho môi chính xác, chúng tôi phải xác định được tọa độ 2 khóe môi của cả môi trên và môi dưới rồi sử dụng phép bóp méo để nối chúng lại với nhau. Để thực hiện được việc này, chúng tôi sử dụng một kỹ thuật gọi là bóp méo tứ giác có giới hạn. Phương pháp bóp méo tứ giác có giới hạn cũng tương tự như phương pháp bóp méo tứ giác nhưng được thêm vào một hình chữ nhật ảo gọi là giới hạn cho phép bóp méo. Khi thực hiện phép biến đổi này thì tất cả các điểm nằm trong hình chữ nhật này không bị ảnh hưởng. Trong trường hợp mô phỏng chuyển động của môi trên, chúng tôi đặt giới hạn cho phép bóp méo là hình chữ nhật chứa toàn bộ khuôn mặt có cạnh trên trùng với môi dưới. Khi đó phép biến đổi chỉ tác động lên các điểm có độ cao ngang với môi trên trở lên. Với cách làm như vậy thì chúng tôi có thể nối 2 phần khóe môi trên và dưới lại với nhau Hình 39 : Ảnh trƣớc và sau khi thực hiện kỹ thuật bóp méo môi trên - 39 - Sau đây là một số kết quả của chương trình khi chúng tôi thực hiện đồng thời cả hai phép biến đổi với môi trên và môi dưới Hình 40 : Môi mở ra với các góc ϕ = 0, ϕ = pi / 20, ϕ = pi / 15, ϕ = pi / 10  Mô phỏng chuyển động của cằm Mặc dù mô phỏng chuyển động xoay xương hàm nhưng chúng tôi lại chỉ thực hiện phép xoay cho các điểm nằm trên môi dưới. Để mô phỏng chuyển động cho toàn bộ cằm khi nhân vật nói chuyện, ví dụ như khi miệng mở ra thì cằm cũng phải hạ xuống một đoạn. Chúng tôi thực hiện phép bóp méo tứ giác cho ba điểm nằm ở dưới cùng của cằm. Các vector để thực hiện phương pháp bóp méo tứ giác đều song song với trục y và có chiều hướng xuống dưới. Mức độ bóp méo phụ thuộc vào góc ϕ - tức góc quay của cằm hay độ lớn của miệng. Dưới đây là dãy hình ảnh mô tả chuyển động của cằm Hình 41 : Trạng thái ban đầu - Trƣớc khi sử dụng phép bóp méo cho cằm - Sau khi sử dụng phép bóp méo cho cằm 4.3.Mô phỏng chuyển động của các cơ trên khuôn mặt 4.3.1.Giới thiệu về cơ mặt Trước khi đi vào việc giới thiệu cách mô phỏng cơ mặt, chúng tôi muốn giới thiệu qua một chút về cơ mặt dưới góc độ giải phẫu học. Cơ mặt được định nghĩa là một nhóm các cơ co giãn được điều khiển bởi các dây thần kinh có tác dụng điều khiển cảm xúc của khuôn mặt. Người ta chia cơ mặt ra làm năm nhóm chính, đó là : nhóm cơ xung quanh mắt, nhóm cơ mũi, nhóm cơ tai, nhóm cơ trán và nhóm cơ miệng. Các cơ này co giãn theo các hướng khác nhau để tạo chuyển động cho khuôn mặt và mỗi cơ lại tác động lên một vùng xác định. Dưới đây là vị trí của các cơ trên khuôn mặt khi nhìn thẳng và nhìn ngang. - 40 - Hình 42 : Các cơ trên khuôn mặt (khi nhìn thẳng) Hình 43 : Các cơ trên khuôn mặt (khi nhìn ngang) - 41 - 4.3.2.Mô phỏng chuyển động  Mô phỏng chuyển động của tất cả các cơ trên khuôn mặt ngoại trừ cơ môi Để mô phỏng chuyển động của hầu hết các cơ trên khuôn mặt, chúng tôi sử dụng cùng một phương pháp là kỹ thuật bóp méo tứ giác. Để mô phỏng mỗi cơ, chúng tôi phải xác định được vector của phương pháp bóp méo tứ giác và độ lớn khoảng bóp méo. Cách xác định chúng tôi sẽ nói chi tiết trong phần 4.4. Ví dụ sau đây là khi chúng tôi thực hiện phương pháp bóp méo tứ giác với 2 nhóm cơ là cơ khóe miệng và cơ mắt Hình 44 : Phép bóp méo tứ giác tạo nụ cƣời nửa miệng với cơ khóe miệng Hình 45 : Phép bóp méo tứ giác làm mắt mở rộng hơn với cơ mắt  Mô phỏng chuyển động của cơ môi Như chúng ta có thể thấy, chuyển động của miệng không chỉ đơn giản là việc mở miệng mà còn là độ to nhỏ của miệng theo chiều ngang và độ to nhỏ của môi. Rõ ràng khi chúng ta huýt sáo và khi chuẩn bị hôn người yêu thì độ mở miệng của chúng ta cả về chiều ngang và chiều dọc đều tương đương nhưng độ lớn của môi thì khác nhau. Việc mô phỏng chuyển động của cơ môi khác với các cơ khác ở chỗ : các cơ khác khi mô phỏng chuyển động đều được xác định sẵn một vector với hướng và chiều. Với cơ môi thì hướng và chiều của vector này không được xác định trước và mà được xác định sau mỗi lần chương trình yêu cầu cơ này chuyển động. Để có thể tạo chuyển động cho môi, chúng tôi sử dụng 4 vector có gốc ở 4 vị trí của môi là 2 khóe môi và 2 phần trên cùng và dưới cùng của môi. Để xác định được tọa độ của 4 điểm này, chúng tôi lưu lại tọa độ các điểm khi thực hiện việc mô phỏng xoay xương hàm. Ý nghĩa lớn nhất của việc điều khiển chuyển động của môi là ứng dụng cho khả năng nói chuyện của nhân vật. Dưới đây là một số ví dụ mà chuyển động của môi có tác động đến hình dáng của miệng - 42 - Hình 46 : Một số hình dáng của môi 4.4.Xây dựng dựng hệ mô phỏng các cơ trên khuôn mặt Sau khi đã đưa ra phương pháp để mô phỏng các cơ trên khuôn mặt. Chúng tôi tiến hành xây dựng hệ các cơ. Hệ cơ của chúng tôi được xây dựng dựa theo hệ cơ của [Duy 2004] Hình 47 : Hệ các cơ đƣợc chƣơng trình xây dựng dựa theo Ở hình 47 có hai loại cơ là cơ vector và cơ vòng ở miệng và mắt. Chương trình của chúng tôi chỉ có thể mô phỏng được cơ vector, tuy vậy, chúng tôi cũng cố gắng mô phỏng các cơ vòng bằng cách kết hợp một số cơ vector lại với nhau. Hệ thống cơ của chúng tôi gồm 30 cơ đối xứng ở cả bên trái và phải của khuôn mặt. Nếu gọi tên các cơ và coi các cơ đối xứng với nhau là một thì chúng tôi có tất cả 16 cơ (có hai cơ không có đối xứng là hai cơ ở phần trên và phần dưới của môi). Danh sách 16 cơ chúng tôi sử dụng trong chương trình được cho dưới bảng sau. Chú ý là chuyển động xoay xương hàm không được đưa vào bảng các cơ nhưng nó cũng đóng vai trò quan trọng trong việc tạo cảm xúc khuôn mặt - 43 - Bảng 1 : Hệ Thống Các Cơ Đƣợc Sử Dụng Trong Chƣơng Trình STT Mô tả chuyển đông của cơ Loại cơ Hệ số vùng tác động 1 Cơ nén môi trên Mô phỏng cơ vòng 4 2 Cơ nén môi dưới Mô phỏng cơ vòng 4 3 Cơ nâng cằm Cơ vector 2 4 Cơ kéo khóe miệng xuống Cơ vector 2 5 Cơ kéo khóe miệng lên Cơ vector 3 6 Cơ tạo má lúm đồng tiền Cơ vector 2 7 Cơ nâng cánh mũi Cơ vector 2 8 Cơ kéo lông mày xuống Cơ vector 3 9 Cơ kéo lông mày lên, phía trong Cơ vector 2.5 10 Cơ kéo lông mày lên, phía ngoài Cơ vector 3 11 Cơ khép mắt lại, phía trên Mô phỏng cơ vòng 8 12 Cơ khép mắt lại, phía dưới Mô phỏng cơ vòng 4 13 Cơ mở mắt Mô phỏng cơ vòng 13 14 Cơ kéo môi rộng / hẹp Mô phỏng cơ vòng 15 Cơ ép / giãn môi, phía trên Mô phỏng cơ vòng 16 Cơ ép / giãn môi, phía dưới Mô phỏng cơ vòng Ở bảng trên có một số cơ thuộc loại “mô phỏng cơ vòng” chính là những cơ vector mà chúng tôi đưa vào để mô phỏng các cơ vòng ở miệng và mắt. Để xác định được một cơ nào đó (ngoại trừ cơ môi có vector không cố định và không có hệ số vùng tác động ), chúng tôi cần phải xác định được 2 yếu tố sau  Điểm đặt, hướng và độ lớn của vector  Độ lớn của vùng mà cơ tác động lên Điểm đặt, hướng và độ lớn của vector được chúng tôi xác định dựa trên hình 47 và các thử nghiệm trong chương trình. - 44 - Để xác định được độ lớn của vùng mà cơ tác động lên. Chúng tôi ước lượng và thử nghiệm hệ số vùng tác động. Độ lớn của vùng mà cơ tác động lên là kết quả của phép nhân hệ số vùng tác động và độ lớn của vector tạo nên cơ đó. Qua quá trình thử nghiệm về vị trí đặt, hướng, độ lớn của vector và hệ số vùng tác động, chúng tôi đã có được một hệ thống các cơ có thể phục vụ cho việc tạo cảm xúc trên khuôn mặt nhân vật. Dưới đây là ví dụ về sự biến đổi khi chúng tôi áp dụng sự tác động của một số cơ trên khuôn mặt Hình 48 : Tác động của 2 cơ nén môi trên và môi dƣới Hình 49 : Tác động của cơ kéo khóe miệng xuống Hình 50 : Tác động của cơ kéo khóe miệng lên Hình 51 : Tác động của cơ kéo cánh mũi lên Hình 52 : Tác động của cơ nâng lông mày bên mắt trái Hình 53 : Tác động của cơ kéo lông mày xuống - 45 - Hình 54: Tác động của cơ thu nhỏ mắt lại Hình 55 : Tác động của cơ cằm  Điều khiển mức độ co giãn của các cơ Các cơ trên khuôn mặt luôn có một giới hạn co giãn. Khi cơ co giãn để tạo chuyển động cho khuôn mặt, nó có thể co giãn ở nhiều mức độ khác nhau, từ co tối đa tới giãn tối đa và một mức độ co giãn nào đó nằm giữa hai khoảng đó. Khi đó, chuyển động của khuôn mặt cũng phụ thuộc vào mức độ co giãn của các cơ. Chương trình của chúng tôi cũng mô phỏng được điều này, tức là có thể tạo cho các cơ nhiều mức độ co giãn khác nhau. Ý nghĩa của việc làm này là chương trình của chúng tôi có thể điều khiển được mức độ tác động của các cơ lên khuôn mặt, từ đó điều khiển được mức độ của cảm xúc. Điều này được chúng tôi thực hiện bằng cách thay đổi độ lớn của các vector tạo nên cơ nhưng vẫn giữ nguyên tất cả những đặc tính còn lại của cơ như chiều, tọa độ điểm đặt và hệ số vùng tác động. Sau đây là ví dụ về việc điều khiển mức độ co giãn của các cơ Hình 56 : Mức độ co giãn của cơ kéo khóe môi xuống từ trạng thái bình thƣờng cho đến trạng thái giãn tối đa - 46 - 4.5.Kết luận Ở chương này, chúng tôi đã giới thiệu về cách áp dụng các kỹ thuật bóp méo ảnh vào việc mô phỏng các chuyển động khuôn mặt. Chúng tôi đã giới thiệu về cách tạo chuyển động cho môi, hàm và các cơ trên khuôn mặt. Trong khi việc mô phỏng chuyển động của các cơ là áp dụng trực tiếp phương pháp bóp méo tứ giác thì việc mô phỏng chuyển động của hàm và môi là sự kết hợp của việc sử dụng kỹ thuật 3D và các phương pháp bóp méo ảnh. Có trong tay các chuyển động xoay xương hàm và hệ mô phỏng các cơ, chúng tôi đã có một nền tảng để xây dựng nên hệ thống cảm xúc cho nhân vật và phát triển một khuôn mặt có khả năng nói chuyện. - 47 - Chƣơng 5 TẠO CẢM XÚC KHUÔN MẶT 5.1.Mở đầu Cảm xúc khuôn mặt là một phương thức giao tiếp phi ngôn ngữ. Nó là sự kết hợp chuyển động của các cơ trên khuôn mặt. Những chuyển động này làm thay đổi trạng thái cảm xúc mà chúng ta thể hiện ra ngoài. Trong chương trình của chúng tôi, để có thể tạo ra sự thay đổi và chuyển động cảm xúc cho khuôn mặt nhân vật, có hai việc phải thực hiện  Xây dựng hệ thống các cơ tạo ra chuyển động cho khuôn mặt.  Xây dựng hệ thống các cảm xúc trên khuôn mặt dựa trên các cơ đó Ở chương 4, chúng tôi đã giới thiệu một hệ thống mô phỏng các cơ tạo chuyển động cho khuôn mặt. Ở chương này, chúng tôi sẽ giới thiệu công việc còn lại là xây dựng hệ thống các cảm xúc dựa trên hệ các cơ được mô phỏng trước đó. Chương này bao gồm ba phần : Phần thứ nhất giới thiệu về hệ mã hóa các cử động khuôn mặt (Facial Action Coding System – FACS) [Ekman & Friesen 1978]. Hệ thống này mô tả tất cả các cử động cơ bản có thể quan sát được của khuôn mặt. Mỗi cử động này là kết hợp của một hoặc nhiều cơ mặt. Hệ thống các cảm xúc được xây dựng dựa trên các cử động cơ bản này. Phần tiếp theo, chúng tôi sẽ giới thiệu về những cảm xúc cơ bản và mô hình sáu cảm xúc được đưa ra bởi Paul Ekman [Ekman 1972]. Mỗi cảm xúc trong số sáu cảm xúc này được mô tả dựa trên sự kết hợp của các đơn vị cử động trong hệ mã hóa các cử động khuôn mặt (FACS) [Deng & Neumann 2008]. Phần cuối cùng, chúng tôi đưa ra cách xây dựng hệ thống cảm xúc cho nhân vật của mình cùng với kết quả của chương trình. 5.2.Hệ mã hóa các cử động khuôn mặt (Facial Action Coding System - FACS) Hệ thống mã hóa các cử động khuôn mặt bắt nguồn từ tên tiếng Anh Facial Action Coding System và thường được viết tắt là FACS. FACS được đưa ra bởi Paul Ekman và Wallace Friesen [Ekman & Friesen 1978]. Hệ thống này mô tả tất cả các cử động cơ bản có thể quan sát được của khuôn mặt. FACS là một danh sách gồm 64 đơn vị cử động (tên tiếng Anh là Action Unit, viết tắt là AU), mỗi AU được mô tả là kết hợp của một hoặc một số các cơ trên khuôn mặt. FACS được ứng dụng rất phổ biến trong lĩnh vực tạo chuyển động cho khuôn mặt [Ahlberg 2001 | Flores 2005]. Các cảm xúc trên khuôn mặt được xây dựng dựa trên các AU của FACS. - 48 - Sau đây là bảng danh sách các AU của FACS Bảng 2 : Hệ Mã Hóa Các Cử Động Khuôn Mặt (FACS) AU Mô tả chuyển động Các cơ chuyển động Hình ảnh minh họa 1 Nhướn mày trong Frontalis, pars medialis 2 Nhướn mày ngoài Frontalis, pars lateralis 4 Hạ lông mày Corrugator supercilii, Depressor supercilii 5 Nhướn mi trên Levator palpebrae superioris 6 Nâng má Orbicularis oculi, pars orbitalis 7 Căng mí mắt Orbicularis oculi, pars palpebralis 9 Nhăn mũi Levator labii superioris alaquae nasi 10 Nâng môi trên Levator labii superioris - 49 - 11 Làm sâu mũi Levator anguli oris (a.k.a. Caninus) 12 Kéo khóe môi Zygomaticus major 13 Phồng má Zygomaticus minor 14 Má lúm đồng tiền Buccinator 15 Nén khóe môi Depressor anguli oris (a.k.a. Triangularis) 16 Bặm môi dưới Depressor labii inferioris 17 Nâng cằm Mentalis 18 Nhàu môi Incisivii labii superioris and Incisivii labii inferioris - 50 - 20 Kéo căng môi Risorius w/ platysma 22 Môi hình phễu Orbicularis oris 23 Bặm chặt môi Orbicularis oris 24 Ép môi Orbicularis oris 25 Tách môi trên và dưới Depressor labii inferioris or relaxation of Mentalis, or Orbicularis oris 26 Hạ hàm Masseter, relaxed Temporalis and internal Pterygoid 27 Căng miệng Pterygoids, Digastric 28 Mút môi Orbicularis oris - 51 - 41 Rủ mí mắt Relaxation of Levator palpebrae superioris 42 Ti hí mắt Orbicularis oculi 43 Nhắm mắt Relaxation of Levator palpebrae superioris; Orbicularis oculi, pars palpebralis 44 Liếc mắt Orbicularis oculi, pars palpebralis 45 Chớp mắt Relaxation of Levator palpebrae superioris; Orbicularis oculi, pars palpebralis 46 Nháy mắt Relaxation of Levator palpebrae superioris; Orbicularis oculi, pars palpebralis 51 Quay đầu sang trái 52 Quay đầu sang phải 53 Ngửa đầu lên - 52 - 54 Cúi đầu xuống 55 Đầu ngả sang trái 56 Đầu ngả sang phải 57 Ngả đầu về phía trước 58 Ngả đầu về phía sau 61 Liếc mắt sang trái 62 Liếc mắt sang phải 63 Ngước mắt lên trên 64 Mắt nhìn xuống dưới - 53 - 5.3.Những cảm xúc cơ bản Những cảm xúc cơ bản là những cảm xúc được biểu lộ giống nhau giữa mọi nền văn hóa trên thế giới [Ekman 1969]. Có nhiều nhà khoa học đã đưa ra những cách khác nhau để phân loại những cảm xúc cơ bản [Plutchik 1980 | Parrot 2001 | Ortony & Turner 1990]. Trong đó [Ekman 1972] đã đưa ra một danh sách 6 cảm xúc cơ bản như sau  Ngạc nhiên  Sợ hãi  Tức giận  Ghê tởm  Hạnh phúc  Buồn bã Sáu cảm xúc của Ekman khá nổi tiếng trên thế giới. Có một số lý do làm cho 6 cảm xúc của Ekman trở nên phổ biến như vậy : nó đã được Ekman khảo sát trong các nền văn hóa trên thế giới và ông đã chứng tỏ rằng có thể xác định chính xác 6 cảm xúc này dựa trên việc quan sát khuôn mặt. Sáu cảm xúc này cũng có đặc điểm là đơn giản, hợp lý, dễ triển khai và đã được ứng dụng phổ biến trong việc tạo ra các tác nhân cảm xúc [Duy 2004 | Tanguy 2005] Chính vì thế chúng tôi sử dụng hệ thống 6 cảm xúc được đề xuất bởi Ekman cho nhân vật của mình. Mỗi cảm xúc trong số 6 cảm xúc này là sự kết hợp chuyển động của một số AU [Deng & Neumann 2008]. Như ta đã biết, mỗi AU lại là kết hợp chuyển động của một số cơ mặt, vì vậy từ bảng các danh sách các AU của mỗi cảm xúc cơ bản và danh sách các cơ mặt cho mỗi AU, ta xác định được danh sách các cơ được sử dụng cho mỗi cảm xúc cơ bản. Dưới đây là bảng liệt kê danh sách các AU tạo nên các cảm xúc cơ bản Bảng 3 : Danh Sách Các AU Tạo Nên Các Cảm Xúc Cơ Bản Các cảm xúc cơ bản Các AU tham gia Ngạc nhiên 1, 2, 5, 15, 16, 20, 26 Sợ hãi 1, 2, 4, 5, 15, 20, 26 Ghê tởm 2, 4, 9, 15, 17 Tức giận 2, 4, 7, 9, 10, 20, 26 Hạnh phúc 1, 6, 12, 14 Buồn bã 1, 4, 15, 23 - 54 - 5.4.Xây dựng hệ thống các cảm xúc cho nhân vật Xây dựng hệ thống các cảm xúc cho nhân vật là công việc cuối cùng mà chúng tôi phải làm để cho nhân vật có thể biểu lộ được những cảm xúc. Hiện giờ chúng ta đã có được danh sách các AU tạo nên các cảm xúc cơ bản, danh sách các cơ tạo nên các AU và danh sách các cơ mà chương trình sử dụng. Kết hợp ba bảng này, chúng ta sẽ có được danh sách các cơ trong hệ thống cơ của chương trình có thể tạo nên sáu cảm xúc cơ bản. Vì chương trình của chúng tôi có thể điều khiển được mức độ co giãn của các cơ đồng nghĩa với việc điều khiển được mức độ tác động của các cơ lên khuôn mặt nên chúng tôi có thể điều khiển được mức độ cảm xúc của nhân vật. Sau đây, chúng tôi sẽ mô tả 6 cảm xúc cơ bản thông qua tập hợp các nhóm cơ và phép quay hàm tương ứng với từng cảm xúc. Đồng thời chúng tôi cũng biểu diễn kết quả chương trình của mình. Chú ý là một số cảm xúc cùng sử dụng một số cơ nhưng mức độ của từng cơ ở mỗi cảm xúc có thể là khác nhau. - 55 -  Cảm giác ngạc nhiên Cảm giác ngạc nhiên là sự kết hợp chuyển động của : o Quay hàm một góc ᴨ / 10 o Cơ kéo lông mày lên, phía ngoài o Cơ kéo lông mày lên, phía trong o Cơ mở mắt o Thu hẹp môi theo chiều ngang o Mở rộng môi theo chiều dọc Kết quả của chương trình Hình 57 : Cảm giác ngạc nhiên 50% và 100% - 56 -  Cảm giác sợ hãi Cảm giác sợ hãi là sự kết hợp chuyển động của : o Quay hàm một góc ᴨ / 15 o Cơ kéo lông mày lên, phía ngoài o Cơ kéo lông mày lên, phía trong o Cơ mở mắt o Thu hẹp môi theo chiều ngang o Kéo khóe môi xuống Kết quả chương trình Hình 58 : Cảm giác sợ hãi 50% và 100% - 57 -  Cảm giác ghê tởm Cảm giác ghê tởm là sự kết hợp chuyển động của o Cơ kéo khóe miệng xuống o Cơ nén môi dưới o Cơ kéo lông mày xuống o Cơ kéo lông mày lên, phía ngoài o Cơ nâng cánh mũi o Cơ thu hẹp mắt, phía trên Kết quả chương trình Hình 59 : Cảm giác ghê tởm 70% và 100% - 58 -  Cảm giác tức giận Cảm giác tức giận là sự kết hợp chuyển động của o Cơ nén môi trên o Cơ nén môi dưới o Cơ kéo lông mày xuống o Cơ kéo lông mày lên, phía ngoài Kết quả chương trình Hình 60 : Cảm giác tức giận 40% và 100% - 59 -  Cảm giác hạnh phúc Cảm giác hạnh phúc là sự kết hợp chuyển động của o Cơ kéo khóe môi lên o Cơ nâng cánh mũi o Cơ kéo lông mày lên, phía trong o Cơ kéo lông mày lên, phía ngoài o Cơ thu hẹp mắt, phía dưới o Cơ mở mắt Kết quả chương trình Hình 61 : Cảm giác hạnh phúc 50% và 100% - 60 -  Cảm giác buồn bã Cảm giác buồn bã là sự kết hợp chuyển động của o Cơ kéo khóe miệng xuống o Cơ nâng cằm lên o Cơ thu hẹp mắt, phía trên Kết quả chương trình Hình 62 : Cảm giác buồn bã 60% và 100% - 61 - 5.5.Kết luận Trong chương này, bằng cách giới thiệu về FACS và sáu cảm xúc cơ bản, kết hợp với hệ mô phỏng các cơ đã được xây dựng trong chương 4, chúng tôi đã đưa ra cách xây dựng hệ thống các cảm xúc cơ bản cho nhân vật của mình. Bằng cách đó, chúng tôi đã biểu diễn kết quả chương trình của mình dưới dạng những bức ảnh mô tả sáu cảm xúc cơ bản của nhân vật. Chúng tôi nhận thấy rằng, để có thể tạo nên những cảm xúc thật nhất cho khuôn mặt thì chúng tôi phải dành thời gian để điều chỉnh và kết hợp chuyển động của các cơ sao cho chính xác nhất. Nếu chương trình càng có trong tay nhiều chuyển động của các cơ và càng nhiều loại phép biến đổi hợp lý được áp dụng thì càng có khả năng việc mô tả các chuyển động cảm xúc diễn ra thật hơn. Điều này thôi thúc chúng tôi tiếp tục nghiên cứu và phát triển các phép biến đổi để có thể tạo ra thêm các chuyển động khác nhau cho khuôn mặt nhân vật. - 62 - Chƣơng 6 XÂY DỰNG KHUÔN MẶT NÓI TIẾNG VIỆT 6.1.Mở đầu Để có thể tạo được khả năng nói chuyện cho khuôn mặt, chương trình cần có ba thứ  Một chương trình tổng hợp tiếng nói từ văn bản (text-to-speech) có khả năng đưa ra một danh sách các âm vị và thời gian phát âm của.  Một danh sách tương ứng mỗi âm vị với một hình vị.  Một tập hợp các hình vị cho khuôn mặt, cách tạo chuyển động giữa các hình vị. Chương trình của chúng tôi đã cố gắng thực hiện bước 2 và bước 3. Chúng tôi đã cố gắng tìm hiểu về hệ thống âm vị và hình vị trong tiếng Việt để xây dựng nên một tập hợp các hình vị cho khuôn mặt của mình. Cùng với đó là đưa ra danh sách tương ứng của các âm vị và hình vị trong tiếng Việt. Việc tạo chuyển động giữa các hình vị là khá dễ dàng vì mỗi chuyển động của chương trình chúng tôi đều được thông qua các tham số. Hiện tại chúng tôi đang cố gắng áp dụng một chương trình tổng hợp tiếng nói từ văn bản cho chương trình của mình. Đối với lĩnh vực tổng hợp tiếng nói từ văn bản, các ngôn ngữ phổ biến trên thế giới như tiếng Anh, tiếng Pháp hay tiếng Tây Ban Nha đã có nhiều ứng dụng và cho kết quả tốt. Hiện nay, đã xuất hiện một số chương trình tổng hợp tiếng nói từ văn bản cho tiếng Việt và vẫn đang trong quá trình hoàn thiện. Cấu trúc của chương này bao gồm bốn phần chính : hai phần đầu chúng tôi giới thiệu về âm vị, hình vị và hệ thống âm vị và hình vị trong tiếng Việt. Dựa vào đó, ở phần thứ ba chúng tôi sẽ giới thiệu về hệ thống hình vị cho khuôn mặt của mình. Phần cuối cùng chúng tôi giành để nói về việc tạo chuyển động giữa các hình vị 6.2.Giới thiệu về âm vị và hình vị  Âm vị Âm vị (phoneme) là đơn vị nhỏ nhất của âm thanh. Về mặt ý nghĩa thì một âm vị hoàn toàn không mang một ý nghĩa gì. Trong nhiều ngôn ngữ, mỗi chữ cái tương ứng với một âm vị. Trong một số ngôn ngữ khác, như tiếng Anh, quan hệ giữa âm vị và chữ cái không phải lúc nào cũng là quan hệ một – một. Ví dụ, hai chữ cái sh tương ứng với một âm vị /ʃ/, trong khi các chữ cái k và c có thể cùng biểu diễn một âm vị /k/.  Hình vị - 63 - Hình vị (viseme) là đơn vị nhỏ nhất của hình ảnh. Một hình vị mô tả vị trí cụ thể của mặt, miệng và những chuyển động của chúng trong thời gian mà âm vị tương ứng được phát ra. Âm vị và hình vị không phải lúc nào cũng có quan hệ một – một. Thường thì vài âm vị cùng chia sẻ một hình vị. Nói một cách khác, một vài âm vị được phát ra trông có vẻ giống nhau, ví dụ như /k/, /g/, /ŋ/. Tuy nhiên, có thể vẫn tồn tại sự khác biệt về thời gian của các âm vị này. 6.3.Âm vị và hình vị trong tiếng Việt  Âm vị trong tiếng Việt Âm vị trong tiếng Việt có thể phân làm hai loại là : nguyên âm và phụ âm. Nếu một âm khi phát ra, luồng không khí từ phổi đi qua các khoang phát âm mà không bị cản ở bất cứ một vị trí nào, thì đó là nguyên âm. Nếu một âm khi phát âm luồng không khí từ phổi đi qua các khoang mà bị cản ở một vị trí nào đó thì là phụ âm [Lanh & Hòa 2007].  Hình vị trong tiếng Việt Hình vị của nguyên âm Các nguyên âm được phân chia và đồng thời được miêu tả theo ba tiêu chí chính là vị trí của lưỡi, độ há của miệng và hình dáng của môi [Thảo & Tỉnh 2007]. Vì chương trình của chúng tôi không mô phỏng chuyển động của lưỡi nên ở phần này chúng tôi chỉ nói về độ há của miệng và hình dáng của môi. Theo độ há của miệng, các nguyên âm được phân thành bốn loại là : nguyên âm đóng (i), nguyên âm nửa đóng (ê), nguyên âm nửa mở (e) và nguyên âm mở (a). Tính chất hẹp → rộng của nguyên âm được xác định bởi sự mở rộng dần của miệng. Theo hình dáng của môi, các nguyên âm được phân thành hai loại, bao gồm : nguyên âm tròn môi (o, ô) và nguyên âm không tròn môi (ơ). Tính chất tròn hay không tròn được xác định theo khuôn môi. Hình 63 : Hình thang nguyên âm - 64 - Trên đây là hình thang 16 nguyên âm trong tiếng Việt. Các cột ngang thể hiện độ há của miệng. Hai phía của cột dọc thể hiện hình dáng của môi – phía trái thể hiện những nguyên âm không tròn môi, phía phải thể hiện những nguyên âm tròn môi. Hình vị của phụ âm Các phụ âm được phân chia và đồng thời được miêu tả theo hai tiêu chí chính là vị trí phát âm và phương thức phát âm. Khi xây dựng chương trình chúng tôi chỉ quan tâm đến tiêu chí là vị trí phát âm. Theo vị trí phát âm, các phụ âm được phân thành ba loại là phụ âm môi, phụ âm lưỡi và phụ âm thanh hầu. Phụ âm môi là phụ âm mà khi phát âm có sự tham gia của môi (môi – môi như b, p; môi – răng như v, ph). Phụ âm lưỡi là phụ âm mà khi phát âm có sự tham gia của lưỡi hoặc đầu lưỡi (đ, ch, c, k). Phụ âm thanh hầu là phụ âm mà khi phát âm chỉ có sự tham gia của dây thanh (h). 6.4.Xây dựng tập hợp các hình vị cho khuôn mặt Hình vị của nguyên âm Xét hai tiêu chí để phân loại nguyên âm. Đó là độ há của miệng và độ tròn của môi. Cả hai tiêu chí này đều có thể mô phỏng được trong chương trình của chúng tôi. Độ há của miệng tương ứng với góc quay của hàm còn độ tròn của môi phụ thuộc vào các cơ tác động lên môi. Bằng cách sử dụng góc quay của hàm và các cơ tác động lên môi theo tiêu chí của hình thang nguyên âm, chúng tôi xây dựng các hình vị cho nguyên âm như sau. Để cho đơn giản, chúng tôi nhóm một số nguyên âm hơi giống nhau vào cùng một nhóm. Hình 64 : Các hình vị tƣơng ứng của a|ă|â và e|ê và o Hình 65 : Các hình vị tƣơng ứng của ô và ơ và oo - 65 - Hình 66 : Các hình vị tƣơng ứng của u và ư Hình vị của phụ âm Theo tiêu chí phân loại của phụ âm là vị trí phát âm. Chúng tôi chia phụ âm ra làm ba loại, 2 loại thuộc loại phụ âm môi là môi – môi và môi – răng, một loại là các phụ âm còn lại Hình 67 : Các hình vị tƣơng ứng của b|m|p và v|ph và các phụ âm còn lại 6.5.Tạo chuyển động liên tục cho khuôn mặt khi nói chuyện Đầu vào của chương trình là một văn bản, đó có thể là một đoạn văn, một câu hoặc một vài từ. Nói một cách tổng quát thì đầu vào của chương trình là một dãy các ký tự. Với mỗi ký tự thì chúng tôi đều đã xây dựng được hình vị tương ứng với nó. Bây giờ việc của chương trình là làm cho việc chuyển từ hình vị này sang hình vị khác được liên tục. Có thể dễ thấy, mỗi hình vị được tạo ra chỉ bởi góc quay của hàm và các cơ của môi. Để có thể chuyển từ hình vị này sang hình vị khác, chúng tôi tạo ra các hình vị trung gian nằm giữa hình vị đầu và cuối. Vì tất cả các hình vị đều được cho bởi các tham số khác nhau, để tạo ra các hình vị mới, chúng tôi tính toán các giá trị tham số nằm giữa các tham số của hai hình vị đầu và cuối. Ví dụ như góc quay của hàm với ứng với ư là ᴨ / 30, góc quay của hàm với ơ là ᴨ / 15, khi đó để sinh ra một hình vị mới nằm chính giữa hình vị của ư và ơ thì góc quay của hàm đối với hình vị mới là (ᴨ / 30 + ᴨ / 15) / 2 = ᴨ / 20. Tương tự, các cơ xác định hình dạng của môi cũng được xác định độ lớn là các giá trị trung gian của các cơ đó ở hai hình vị đầu và cuối. Bằng cách hiện lên các hình vị trung gian, chương trình của chúng tôi có thể tạo ra được chuyển động giữa các hình vị. Bằng cách đó, chương trình của chúng tôi có thể tọa chuyển động liên tục cho miệng khi nói chuyện 6.6.Kết luận - 66 - Trong chương này, chúng tôi đã giới thiệu về âm vị và hình vị trong tiếng Việt và những bước khởi đầu của chúng tôi để xây dựng một khuôn mặt nói tiếng Việt. Phương pháp của chúng tôi có thể nói còn khá thô sơ. Chương trình của chúng tôi có thể nói một cách trực quan được một văn bản tiếng Việt có độ dài bất kỳ nhưng không điều khiển được thời điểm để nói. Cái mà chúng tôi còn thiếu là một chương trình tổng hợp ngôn ngữ từ văn bản có thể hỗ trợ chương trình của chúng tôi trong việc đưa ra một danh sách các hình vị và thời gian của mỗi hình vị đó, đồng thời phát ra các âm vị tương ứng. Hiện nay có một số chương trình tổng hợp ngôn ngữ từ văn bản có thể hỗ trợ chương trình của chúng tôi. Một trong số đó là Mbrola, một chương trình nổi tiếng có thể hỗ trợ tới hơn 30 ngôn ngữ trên thế giới. Nhưng rất tiếc trong đó không có tiếng Việt. Hiện nay chúng tôi cũng chưa tìm được chương trình tiếng Việt nào có thể hỗ trợ được cho chương trình của mình. Trong tương lai chúng tôi dự định sẽ xây dựng một hệ thống các hình vị cho tiếng Anh và áp dụng một chương trình tổng hợp ngôn ngữ từ văn bản cho tiếng Anh để áp dụng cho chương trình của mình. Nhưng hơn hết chúng tôi hi vọng có thể có được một chương trình tổng hợp ngôn ngữ tiếng Việt có thể ứng dụng được cho chương trình của mình. - 67 - Chƣơng 7 TỔNG KẾT Khóa luận này đã đưa ra một giải pháp tạo chuyển động chân thực cho khuôn mặt trong không gian hai chiều. Phương pháp mà chúng tôi sử dụng nhận đầu vào là một bức ảnh, sau đó phương pháp sử dụng những phép biến đổi ảnh để thay đổi trạng thái cảm xúc khuôn mặt hoặc lời mà khuôn mặt nói ra. So với phương pháp ghi lại video, phương pháp của chúng tôi chỉ cần đầu vào là một bức ảnh duy nhất của khuôn mặt trong khi phương pháp ghi lại video cần đầu vào là một đoạn video. Ngoài ra phương pháp của chúng tôi có thể tạo ra những cảm xúc, những hình vị mới cho khuôn mặt, phương pháp ghi lại video chỉ có thể tạo chuyển động giữa các hình ảnh có sẵn. So sánh với phương pháp dựa trên kỹ thuật 3D, cả hai phương pháp đều chỉ cần một bức ảnh duy nhất làm đầu vào. Tuy vậy quá trình để xây dựng cho chương trình của phương pháp dựa trên kỹ thuật 3D là rất phức tạp. Tuy vậy, ưu điểm lớn nhất của phương pháp chúng tôi đưa ra so với phương pháp dựa trên kỹ thuật 3D là phương pháp của chúng tôi không đòi hỏi độ phức tạp trong tính toán bằng. Điều đó có nghĩa là phương pháp của chúng tôi không yêu cầu các máy có cấu hình cao như của phương pháp dựa trên kỹ thuật 3D. Để phát triển tiếp chương trình, công việc trước mắt của chúng tôi là hoàn thiện khả năng nói chuyện cho khuôn mặt mà cụ thể ở đây là tiếng Việt. Chúng tôi hy vọng có thể tạo được một khuôn mặt vừa có thể biểu lộ cảm xúc vừa có thể nói chuyện với người sử dụng. Về những cải tiến trong việc tạo chuyển động cho khuôn mặt, chúng tôi nghĩ đến việc tạo chuyển động cho mắt. Chúng tôi cho rằng đây là công việc có thể thực hiện được khi việc xác định được các điểm nằm trên con ngươi không phải là bất khả thi. Với việc xây dựng được một khuôn mặt có khả năng biểu lộ cảm xúc và nói chuyện, hướng phát triển tiếp theo của chúng tôi là xây dựng một nhân vật ảo với tính cách riêng để dùng trong các ứng dụng tương tác người máy trong các phần mềm, trên nền web hoặc trong các thiết bị di động. Chúng tôi cũng nghĩ đến việc làm sao để chuyển giao mô hình chuyển động của khuôn mặt hiện tại sang một khuôn mặt khác. Để tạo được chuyển động cho khuôn mặt mới, chương trình phải xác định được vị trí các điểm đặc trưng trên khuôn mặt và vector của các cơ. Đây là công việc đơn giản. Việc xác định được các điểm nằm trên môi dưới thì hơi phức tạp hơn một chút nhưng vẫn có thể thực hiện được. Để xây dựng được một chương trình có thể tự động tạo chuyển động cho khuôn mặt với đầu vào là một bức ảnh thì chúng tôi cần phải phát triển một chương trình có khả năng nhận ra các điểm đặc trưng trên khuôn mặt. Một thách thức nữa đặt ra là khi đầu vào của chương trình là một bức ảnh không chụp thẳng và khuôn mặt không trung lập, tức là đang bộc lộ một cảm xúc nào - 68 - đó. Với phương pháp dựa trên kỹ thuật 3D, phương pháp này có đưa ra giải pháp với tình huống này và có thể trả về một khuôn mặt trung lập và chụp thẳng. Chúng tôi hiện đang nghĩ đến giải pháp kết hợp ưu điểm của phương pháp này với phương pháp của mình. Với đầu vào là một bức ảnh có khuôn mặt ở các vị trí khác nhau, sử dụng phương pháp dựa trên kỹ thuật 3D để đưa khuôn mặt về trạng thái trung lập và chụp thẳng, khi đó có thể dễ dàng xác định được các điểm đặc trưng và các cơ trên khuôn mặt. Sau đó dùng phương pháp của chúng tôi để biến đổi cảm xúc của khuôn mặt. Khi đó, phương pháp này vừa có thể tận dụng đầu vào là một bức ảnh bất kỳ và tận dụng được ưu điểm của phương pháp chúng tôi trong tốc độ xử lý. - 69 - TÀI LIỆU THAM KHẢO TIẾNG ANH [1] [Ahlberg 2001] J. Ahlberg. CANDIDE-3 -- an updated parameterized face. [2] [Blanz 1999] V.Blanz & T.Vetter. A morphable model for the synthesis of 3D faces. [3] [Blanz 2003] V.Blanz. Reanimating Faces in Images and Video. The Eurographics Association and Blackwell Publishers. [4] [Bregler 1997] C.Bregler. Video Rewrite: Driving Visual Speech with Audio. [5] [Bourke 2002] P.Bourke. Image warping / Distortion. [6] [Choe 2001] B.Choe. Performance-Driven Muscle-Based Facial Animation. [7] [Chuang 2005] E.Chuang. Mood Swings: Expressive Speech Animation. [8] [Covell 1996] M.Covell & C.Bregler. Eigenpoints. [9] [Deng & Neumann 2008] Z.Deng & U.Neumann. Data-Driven 3D Facial Animation. [10] [Duy 2004] B.T.Duy. Creating Emotions And Facial Expressions For Embodied Agents. [11] [Ekman & Friesen 1969] P.Ekman & W.Friesen. The repertoire of nonverbal behavior: Categories, origins, usage, and coding. [12] [Ekman 1972] P.Ekman. Universals and cultural differences in facial expressions of emotion. University of Nebraska Press. [13] [Ekman & Friesen 1978] P.Ekman & W.Friesen. Facial Action Coding System: A Technique for the Measurement of Facial Movement. [14] [Ezzat 1998] T.Ezzat. MikeTalk: A Talking Facial Display Based on Morphing Visemes. [15] [Flores 2005] V.C.Flores. ARTNATOMY/ARTNATOMIA. [16] [Gouraud 1971] H.Gouraud. Computer display of curved surfaces. PhD thesis, Dept. of Electrical Engineering, University of Utah. - 70 - [17] [Hoch 1994] M.Hoch, G.Fleischmann & B.Girod. Modeling and animation of facial expressions based on b-splines. Visual Computer. [18] [Kahler 2001] K.Kahler, J.Haber & H.P.Seidel. Geometry-based muscle modeling for facial animation. Proceedings of Graphics Interface 2001. [19] [Kalra 1992] P.Kalra, A.Mangili, N.Magnenat-Thalmann, & D.Thalmann. Simulation of facial muscle actions based on rational free form deformations. Computer Graphics Forum (EURO-GRAPHICS ‟92 Proceedings) [20] [Kalberer 2001] G.Kalberer & L.Van Gool. Face animation based on observed 3D speech dynamics. [21] [Kirby 1990] M.Kirby & L.Sirovich. Application of the Karhunen-Loeve procedure for the characterization of human faces. [22] [Lee 1995] Y.Lee, D.Terzopoulos, & K.Waters. Realistic face modeling for animation. SIGGRAPH „95 Conferenc

Các file đính kèm theo tài liệu này:

  • pdfLUẬN VĂN THỬ NGHIỆM PHƯƠNG PHÁP BIẾN ĐỔI KHUÔN MẶT TRÊN ẢNH HAI CHIỀU.pdf