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.
82 trang |
Chia sẻ: lylyngoc | Lượt xem: 2657 | Lượt tải: 0
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:
- LUẬN VĂN THỬ NGHIỆM PHƯƠNG PHÁP BIẾN ĐỔI KHUÔN MẶT TRÊN ẢNH HAI CHIỀU.pdf