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

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.

pdf82 trang | Chia sẻ: lylyngoc | Lượt xem: 2550 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Luận văn Thử nghiệm phương pháp biến đổi khuôn mặt trên ảnh hai chiều, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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 Conference Proceedings. [23] [Magnenat-Thalmann 1988] N.Magnenat-Thalmann, E.Primeau, & D.Thalmann. Abstract muscle action procedures for human face animation. The Visual Computer. [24] [Moulines 1990] E.Moulines, P.Emerard, D.Larreur, J.L.Le Saint Milon, L.Le Faucheur, F.Marty, F.Charpentier & C. Sorin. A real-time French text-to-speech system generating high-quality synthetic speech. [25] [Ortony & Turner 1990] A.Ortony & T.J.Turner. What's basic about basic emotions? Psychological Review. [26] [Parke 1972] F.I.Parke. Computer generated animation of faces. Master‟s thesis, Dept. of Electrical Engineering, Division of Computer Science, University of Utah. [27] [Parke 1974] F.I.Parke. A parametric model for human faces. PhD thesis, University of Utah. [28] [Parke & Waters 1996] F.I.Parke & K.Waters. Computer facial animation. [29] [Parrot 2001] Parrot. Basic Emotions. [30] [Pasquariello & Pelachaud 2001] S.Pasquariello & C.Pelachaud. Greta: A simple facial animation engine. In 6th Online World Conference on Soft Computing in Industrial Appications, Session on Soft Computing for Intelligent 3D Agents. [31] [Pighin 2002] F.Pighin & R.Szeliski & D.Salesin. Modeling and animating realistic faces from images. International Journal of Computer Vision. - 71 - [32] [Plutchik 1980] R.Plutchik. The Nature of Emotions. [33] [Reveret 2001] L.Reveret & I. Essa. Visual coding and tracking of speech related facial motion. GVU Center Tech Report. [34] [Rydfalk 1987] M.Rydfalk. Candide, a parameterized face. Technical Report Report, Dept. of Electrical Engineering, Linkping University,Sweden. [35] [Smith 2006] A.P.Smith. Muscle-based facial animation using blendshapes in superposition. [36] [Tanguy 2005] E.Tanguy. A Dynamic Emotion Representation Model Within a Facial Animation System. [37] [Terzopoulos & Waters 1990] D.Terzopoulos & K.Waters. Physically-based facial modelling, analysis, and animation. The Journal of Visualization and Computer Animation. [38] [Vetter 1998] T.Vetter & V.Blanz. Estimating coloured 3D face models from single images: An example based approach. [39] [Vlasic 2005] D.Vlasic. Face Transfer with Multilinear Models. [40] [Waters 1987] K.Waters. A muscle model for animating three-dimensional facial expression. SIGGRAPH ‟87 Proceedings. [41] [Yang 1999] J.Yang. Automatic Selection of Visemes for Image-based Visual Speech Synthesis. TIẾNG VIỆT [42] [Lanh & Hòa 2007] Nguyễn Thị Lanh & Nguyễn Thái Hòa. Tiếng Việt (Ngữ âm và Phong cách học). Nhà xuất bản đại học Sư Phạm. [43] [Thảo & Tỉnh 2007] Đỗ Xuân Thảo & Lê Hữu Tỉnh. Giáo trình Tiếng Việt 2. Nhà xuất bản đại học Sư Phạm. WEBSITE [44] [45] - 72 - [46] [47] [48]

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