Nhƣ đã nói ở phần 1.2.2, Bùi Thế Duy và cộng sự [8] cải tiến mô hình cơ vectơ của Waters [43] để làm giảm sự giả tạo của khuôn mặt trong quá trình tác động của hệ thống cơ. Tiếp đó, họ bổ sung một cơ chế nhằm tạo ra các nếp nhăn và chỗ phình, để tăng tính chân thực của các biểu hiện trên khuôn mặt. Cuối cùng Bùi Thế Duy và cộng sự [8] sử dụng các kỹ thuật làm giảm lƣợng tính toán đối với mô hình cơ, để nâng cao hiệu quả hoạt ảnh.
Kết hợp các hành động đa cơ
Các cơ mặt của con ngƣời co rút song song trong quá trình tạo nên biểu hiện khuôn mặt. Bùi Thế Duy và cộng sự [8] kết hợp các loại co cơ trong mô hình khuôn mặt bằng cách mô phỏng tính chất song song của chúng. Đối với một đỉnh nằm trong miền ảnh hƣởng của một cơ nào đó, họ lần lƣợt áp dụng các mức co thấp là c đối với đỉnh, cho đến khi không còn hành động co cơ nào khác. Giá trịc nhỏ tạo đƣợc sự mô phỏng tính chất song song chính xác hơn, nhƣng nó cũng đòi hỏi nhiều tính toán hơn. Sau các phép thử, họ nhận thấy c bằng 0.2 (giá trị tối đa của mức co cơ là 1.0) cho kết quả thích hợp nhất mà vẫn đáp ứng yêu cầu hoạt ảnh trong thời gian thực.
Mỗi khi diễn ra sự co cơ (dù rất ít), thì sự biến đổi của đỉnh (nằm trong miền ảnh hƣởng của các cơ co rút) trƣớc tiên đƣợc tính toán riêng biệt, rồi sau đó các biến đổi này đƣợc tổng hợp và áp dụng đối với đỉnh. Ngay khi đỉnh di chuyển ra khỏi miền ảnh hƣởng của một cơ, thì nó không còn chịu tác động của cơ đó nữa.
Phƣơng pháp sử dụng c= 0.2 cho kết quả nhƣ Hình 1.12(f) và 1.13(a). So sánh với việc chỉ thêm vectơ biến đổi trong Hình 1.12(j) và 1.13(b), rõ ràng kết quả chân thực và tự nhiên hơn. Hình 1.14 là ví dụ về cách thức áp dụng phƣơng pháp này vào mô hình khuôn mặt của Bùi Thế Duy và cộng sự [8]: khi muốn khuôn mặt có biểu hiện buồn, nếu chỉ đơn thuần biến đổi đỉnh, thì giữa hai lông mày sẽ xuất hiện những vạch giả tạo. Phƣơng pháp này cũng đƣợc áp dụng đối với các cơ vòng miệng và cơ vòng mắt. Lƣu ý là phép tính sự biến đổi của cơ chỉ lặp đi lặp lại vài lần (5 lần với c= 0.2). Điều này giúp mô hình cơ của Bùi Thế Duy và cộng sự [8] tạo đƣợc hoạt ảnh thời gian thực trên một máy tính cá nhân thông thƣờng.
Hình 1.12: Tác động của cơ đơn lên lưới (a và b); Tác động của hai cơ lên lưới (biểu diễn theo từng bước) bằng cách mô phỏng tính chất song song (c,d,e,f) và
bằng cách thêm sự biến đổi (g,h,i,j)
Hình 1.13: Tác động của ba cơ lên lưới mặt: bằng cách mô phỏng các đường song song (a) và bằng cách thêm sự biến đổi (b)
Hình 1.14: Khi có biểu hiện buồn, xử lý sự co cơ đối với cặp lông mày: bằng cách mô phỏng các đường song song (a) và bằng cách thêm sự biến đổi (b)
Chỗ phình và nếp nhăn
Quá trình co cơ mặt tạo ra những chỗ phình và nếp nhăn. Chúng đóng vai trò quan trọng trong việc diễn giải những biểu hiện của khuôn mặt. Trƣớc hết, chúng khiến ta dễ nhận thấy biểu hiện của khuôn mặt hơn. Thứ hai, độ sâu của nếp nhăn thể hiện mức độ diễn cảm của khuôn mặt. Thứ ba, các nếp nhăn đƣợc sử dụng để phân biệt giữa các loại biểu hiện cảm xúc với nhau. Ví dụ, các nếp nhăn ngang trên trán xuất hiện khi có biểu hiện ngạc nhiên, sợ hãi, buồn bã; nhƣng những biểu hiện tức giận, khinh bỉ hay hạnh phúc không tạo nên chúng.
Các phƣơng pháp tham số hóa hoặc dựa trên hệ thống cơ giả thƣờng không thể tạo đƣợc các nếp nhăn bởi vì chúng không xét đến khía cạnh giải phẫu học của khuôn mặt. Với các kỹ thuật tạo chất liệu (nhƣ tạo bề mặt sần) hay tạo mô hình dựa trên vật lý học, ta dễ có đƣợc các nếp nhăn hơn. Wu và cộng sự [50] dùng một mô hình dựa trên vật lý học, với dạng giải phẫu học phần đầu giản đơn, không xƣơng, nhằm tạo ra những nếp nhăn tức thời và những nếp nhăn cố hữu, dựa trên các tính chất co giãn - kết dính - mềm dẻo của da mặt. Tính chất kết dính tạo nên các nếp nhăn tức thời xảy ra khi co cơ, tính mềm dẻo chịu trách nhiệm về các nếp nhăn cố hữu. Nhƣng kỹ thuật dựa trên vật lý học nhƣ thế này lại đòi hỏi lƣợng tính toán lớn; do đó nó không thích hợp với hoạt ảnh thời gian thực.
Moubaraki và cộng sự [27] sử dụng kỹ thuật tạo bề mặt sần để làm các nếp nhăn hiển thị và biến đổi mà không cần di chuyển các đỉnh, thông qua việc tạo ra những xáo động của các pháp tuyến bề mặt và điều chỉnh độ bóng của bề mặt. Nhờ các hàm nếp nhăn đƣợc xác định trƣớc, các nếp nhăn tùy ý có thể xuất hiện trên một bề mặt hình học phẳng. Kỹ thuật này dễ dàng tạo ra nếp nhăn bằng cách thay đổi các tham số trong hàm nếp nhăn. Kỹ thuật tạo bề mặt sần thƣờng đƣợc dùng để tạo ra các nếp nhăn trên trán hoặc các nếp nhăn cố hữu, nhƣ trong mô hình khuôn mặt Greta [32]. Kỹ thuật tạo bề mặt sần đòi hỏi lƣợng tính toán tƣơng đối lớn, gần gấp đôi kỹ thuật tạo chất liệu màu truyền thống.
Đối với mô hình khuôn mặt dựa trên các mảng spline, các viên phân spline cũng đƣợc dùng để tạo các chỗ phình và nếp nhăn. Tuy nhiên, cách tiếp cận này cần thêm nhiều điểm điều khiển để biễu diễn các nếp nhăn. Điều này khiến mô hình khuôn mặt phức tạp hơn nhiều, và do đó nó không phù hợp với hoạt ảnh thời gian thực. Trong phần này, tôi tìm hiểu một phƣơng pháp tạo chỗ phình và nếp nhăn đơn giản nhƣng hiệu quả đạt đƣợc rất chân thực, đồng thời lại phù hợp với mô hình cơ của Waters. Để đơn giản hóa, Bùi Thế Duy và cộng sự [8] giả định rằng các cơ nằm song song với lớp da mặt và độ dày của nếp nhăn đối với mỗi cơ là bằng nhau. Họ gán các giá trị xác định trƣớc cho độ dày của nếp nhăn và số nếp nhăn (Nw) do mỗi cơ tạo ra trong quá trình co rút. Những giá trị này đƣợc tính toán, có xét đến một mô hình hộp sọ và khả năng duy trì thể tích.
Biên độ của nếp nhăn đƣợc tính cho tất cả các đỉnh ban đầu (trƣớc khi diễn ra sự dịch chuyển do sự co cơ tạo nên) nằm trong vùng plpkv3pt (xem Hình 1.15), trong đó khoảng cách từ pl và pk tới ptpr bằng: cos 4 3 4 3 3 1v Rf v L
Hình 1.15: Miền chứa các nếp nhăn được tạo bởi sự co rút của một cơ vectơ
Biên độ của nếp nhăn tại một đỉnh p là một hàm của khoảng cách l từ p tới
r tp
p . l đƣợc lấy ánh xạ theo chu kỳ đến [0,2b) với tần số Nw:
( ) l u l l b b trong đó 2 w L b N và ... làm tròn một số thực thành số nguyên lớn nhất nhỏ hơn nó. Chúng ta sử dụng một chuỗi đƣờng parabôn để biểu diễn hàm nếp nhăn (xem Hình 1.16) nhƣ sau:
2 2 ( ( ) ) ( ) 1 u l b f l a b
trong đó a là chiều cao của các nếp nhăn.
Hình 1.16: Hàm nếp nhăn
Các biên độ của nếp nhăn đƣợc đƣa vào hƣớng của pháp tuyến đỉnh (vertex normal) sau khi các đỉnh này bị biến đổi dƣới tác động của sự co cơ. Đối với những
đỉnh nằm bên trong miền ảnh hƣởng của đa cơ, Bùi Thế Duy và cộng sự [8] chỉ sử dụng biên độ tối đa của nếp nhăn do những cơ này gây ra.
Cần lƣu ý rằng hàm nếp nhăn chỉ là một hàm parabol, mà việc tính toán các giá trị của hàm này khá nhanh chóng, nhờ vậy Bùi Thế Duy và cộng sự [8] có thể duy trì hoạt ảnh trong thời gian thực. Quay lại Phần 1.2, các thuật toán tô bóng nội suy đƣợc dùng để biểu diễn một đƣờng cong liên tục đối với một bề mặt do các đa giác tạo nên. Tuy nhiên, nhƣợc điểm của những thuật toán này - đƣợc gọi là nhƣợc điểm “pháp tuyến đỉnh không biểu diễn (unrepresentative vertex normal)” – khiến các nếp nhăn không thể hiển thị (xem Hình 1.17). Để khiến các nếp nhăn dễ nhận thấy bằng mắt hơn, Bùi Thế Duy và cộng sự [8] phải khắc phục nhƣợc điểm này ở các đỉnh nằm tại “chân trong” của các nếp nhăn. Những đỉnh này có khoảng cách tới ptpr bằng:
b L b
b,4 , , 2
2 . Thay vì sử dụng những pháp tuyến đỉnh trung bình của các đỉnh, họ sử dụng pháp tuyến của các đa giác 3 cạnh chứa các đỉnh đó.
Hình 1.18(a) là một ví dụ về các nếp nhăn. Hình 1.18(b) biểu diễn các nếp nhăn đƣợc tạo ra trên trán.
Hình 1.17: Bài toán “pháp tuyến đỉnh không biểu diễn” và cách giải.
Hình 1.18: Các nếp nhăn do sự co cơ tạo nên.
Nâng cao hiệu quả của hoạt ảnh
Mô hình cơ vectơ phù hợp với những mô hình khuôn mặt 3D có số đa giác nhỏ. Khi số đa giác tăng lên, để tạo đƣợc biểu hiện khuôn mặt chân thực hơn, ta cần lƣợng tính toán rất lớn, mà điều này lại gây cản trở hoạt ảnh thời gian thực. Một cách làm tăng tốc độ hoạt ảnh là cải tiến mô hình cơ bằng một kỹ thuật “đƣờng tắt” [8]. Ban đầu, trọng tâm biến đổi mô hình cơ của Waters [44] đƣợc biểu diễn nhƣ sau:
Với mọi đỉnh
Thì tính toán và cho các đỉnh dịch chuyển
Chúng ta hãy phân tích độ phức tạp của thuật toán. Với mỗi cơ, thuật toán phải kiểm tra từng đỉnh trong khung lƣới, xem đỉnh đó có nằm bên trong miền ảnh hƣởng của cơ không. Để làm việc này, thuật toán phải tính khoảng cách từ đỉnh tới đầu cơ
1
pv , phải tính góc pv1pm (Hình 1.5), và cuối cùng là tính một hàm cosin. Mức độ phức tạp của thuật toán phụ thuộc vào số đỉnh cần kiểm tra xem chúng có nằm trong vùng ảnh hƣởng không.
Mô hình khuôn mặt 3D đƣợc chia thành các vùng (xem Phần 1.3.1) và khi nắm đƣợc vị trí của các cơ mặt, chúng ta biết vùng nào chịu tác động của cơ nào. Mỗi cơ đi kèm với một cờ (flag), cho biết nó tác động đến vùng nào trên mô hình khuôn mặt. Phép biến đổi ban đầu đƣợc sửa lại nhƣ sau:
Với mọi đỉnh
Nếu đỉnh nằm bên trong vùng chịu tác động của cơ Nếu đỉnh nằm bên trong miền ảnh hưởng của cơ
Thì tính toán và cho các đỉnh dịch chuyển
Trƣớc tiên, bằng một phép kiểm tra file mô tả (xem Phần 1.3.1), kỹ thuật này loại bỏ tất cả các đỉnh nằm bên ngoài vùng chịu tác động của cơ. Khi số đỉnh tăng lên, kỹ thuật này sẽ giúp giảm bớt một lƣợng tính toán khổng lồ (thay vì phải kiểm tra khoảng cách và các góc). Cải tiến này đƣợc biểu diễn trên mô hình gồm 2.480 đỉnh tại Bảng 1.2. Tốc độ hoạt ảnh còn có thể làm tăng hơn nữa bằng cách áp dụng một số kỹ thuật biến đổi cổ điển. Thứ nhất, cấu trúc dữ liệu đóng vai trò quan trọng trong việc giảm bớt thời gian tính toán. Dữ liệu các đỉnh nên đƣợc lƣu trữ tách rời với dữ liệu đa giác. Dữ liệu về các đa giác chỉ chứa liên kết tới các đỉnh. Thời gian tính toán đƣợc giảm bớt bởi vì lƣợng tính toán sự dịch chuyển của mỗi đỉnh không cần nhân đôi đối với mỗi đa giác. Điều này cũng giúp tránh đƣợc việc tính lại pháp tuyến đỉnh trung bình đối với mỗi đỉnh đa giác trong phép tô bóng của Phong [10]. Thứ hai, mọi công việc kiểm tra điều kiện với các toán tử phép chia và khai căn bậc i đƣợc thay thế bằng các toán tử phép nhân và lũy thừa bậc i. Bảng 1.2 cũng thể hiện hiệu quả của những kỹ thuật trên.
Bảng 1.2: Kết quả của việc áp dụng các kỹ thuật tăng tốc độ hoạt ảnh (trên một máy tính Pentium III, 800 Mhz, 256MB RAM, Nvidia GeForce3 video card)
Tốc độ hoạt ảnh (số khung trên giây) Trƣớc khi áp dụng phép kiểm tra file mô tả 20.5
Sau khi áp dụng phép kiểm tra file mô tả 30.5 Sau khi áp dụng thêm các kỹ thuật cổ điển 35.0
1.4.2 Cơ vòng miệng
Từ góc độ sinh lý học, cơ vòng miệng không đơn thuần là một cơ vòng, mà đó là sự kết hợp các cơ có thể đƣa miệng dịch chuyển theo nhiều hƣớng khác nhau. Biến đổi cơ vòng miệng dựa trên tham số hóa của Bùi Thế Duy và cộng sự [8] dựa trên nghiên cứu của King và cộng sự [22].
Quay lại Phần 1.3.2, đôi môi đƣợc biểu diễn bằng một bề mặt B-spline với một lƣới điều khiển kích thƣớc 24x6. Trong mô hình của Bùi Thế Duy và cộng sự [8], cơ vòng miệng chỉ tác động tới bề mặt môi. Bề mặt bị biến đổi theo sự di chuyển của các điểm điều khiển. Dƣới đây là mô hình hai hành động của cơ vòng miệng: đẩy môi ra và mím môi lại.
Theo King và cộng sự [22], sự di chuyển của một điểm điều khiển pi dƣới tác động của sự co cơ vòng miệng, và khiến môi bị đẩy ra, đƣợc mô tả nhƣ sau:
) ) ( ( 'i o i e pi xi p
trong đó o là mức co rút của cơ vòng miệng; là độ xoay cực đại do nếp nhăn trên môi gây ra, độ xoay bằng 20o, và môi trên và môi dƣới xoay theo các hƣớng ngƣợc chiều nhau; xi là mức đẩy ra cực đại do sự co rút của cơ vòng miệng; và ei(p) biểu diễn một vectơ cử động để di chuyển điểm điều khiển p tới một điểm nằm trên đƣờng elip, đƣợc tạo ra bởi sự co cơ vòng. Điều này đƣợc mô tả tại Hình 1.19(a).
Sự di chuyển điểm điều khiển dƣới tác động của sự co cơ vòng miệng, và khiến môi mím lại, đƣợc mô tả nhƣ sau:
)) ( (
'i o i e pi
p
trong đó o là mức co rút của cơ vòng miệng; là độ xoay cực đại do hành động mím môi gây ra, độ xoay bằng 20o, và theo chiều ngƣợc lại với hành động đẩy môi ra ngoài; và ei(p) biểu diễn một vectơ cử động để di chuyển điểm điều khiển p tới một điểm nằm trên đƣờng elip, đƣợc tạo ra bởi sự co cơ vòng miệng. Điều này đƣợc mô tả tại Hình 1.19(b). Hình 1.20 thể hiện sự biến đổi của môi do sự co cơ vòng miệng gây ra.
Hình 1.20: Sự biến đổi của môi dưới tác động của sự co cơ vòng miệng: dạng bình thường (a); đẩy môi ra (b) và mím môi lại (c).
1.4.3 Cơ vòng mắt
Cơ vòng mắt gồm hai phần: cơ vòng mắt trên (điều khiển sự nhắm/mở mắt), và cơ vòng mắt dƣới (điều khiển sự ép mắt).
Đối với việc đóng và mở mí mắt, Bùi Thế Duy và cộng sự [8] dùng thuật toán của Parke [30]. Mí mắt mở và đóng nhờ việc kết hợp sự biến đổi của kỹ thuật ánh xạ cầu (spherical mapping technique) với phép nội suy tuyến tính. Còn hành động ép mắt đƣợc tiến hành nhờ cơ vòng, đƣợc trình bày trong Waters [43]. Ta lƣu ý rằng việc đóng mí mắt và ép mắt thƣờng xảy ra cùng nhau. Việc ép mắt dẫn đến hành động đóng mí mắt. Việc đóng mí mắt cũng dẫn đến ép mắt khi một ngƣời cố gắng chỉ nhắm một trong hai mắt. Mối quan hệ này đƣợc thể hiện bằng việc điều chỉnh mức co của cơ vòng mắt trên (cclosing) và cơ vòng mắt dƣới (csqueezing) ở một mắt nhƣ sau:
if csqueezing > 0.5 cclosing then
cclosing = max (1.0, 2 ∙ csqueezing)
else if cố nhắm một mắt then
csqueezing = 0.5 cclosing
Việc nhắm một mắt và hai mắt đƣợc mô tả trong Hình 1.21.
Hình 1.21: Chỉ nhắm một mắt (a); Nhắm cả hai mắt (b).
1.4.4 Xoay quai hàm
Quai hàm mở bằng cách xoay các đỉnh ở vùng dƣới của mô hình khuôn mặt quanh một trục đứng ở quai hàm [30]. Trục quay này song song với trục X và đi qua điểm trụ của hàm (jaw pivot point) (xem Hình 1.8). Các đỉnh nằm ở vùng mặt dƣới chịu tác động của sự xoay quai hàm. Môi dƣới, hàm răng dƣới và khóe miệng đều xoay theo quai hàm.
Để tạo đƣợc một cái miệng hình ô van một cách tự nhiên, thì các đỉnh nằm tại môi dƣới phải xoay với mức độ khác nhau. Các đỉnh nằm ở giữa môi dƣới xoay cùng