Tiềm thức con ngƣời luôn là một trong những điều bí ẩn mà khoa học đang nghiên cứu. Bằng sự tiềm định của nhận thức, quá trình tƣởng tƣợng, tƣ duy của con ngƣời đƣợc hoàn thiện hơn nhiều lần. Trong môi trƣờng thực tế, con ngƣời ghi nhận các hiện vật 3D, ánh xạ vào não bộ và làm tƣ liệu mô hình để tái tạo trong trí nhớ, cái đó gọi là tri thức trực quan tiềm định. Quá trình nhận thức của chúng ta là quá trình tích hợp thông tin từ hình ảnh 2D và tri thức tiền định đƣợc lƣu trữ trong bộ não phản ánh sự vật [2]. Các mô hình thống kê đƣợc dùng để biểu diễn các lớp đối tƣợng nhƣ các khuôn mặt đều phát triển trên quan điểm đó.
Mô hình thống kê thực chất là mô hình phân bố điểm [8]. Trong mô hình này, chúng ta cần thiết lập tập các hình huấn luyện. Tập các hình huấn luyện đủ lớn sẽ cho đặc trƣng có độ chính xác cao. Cho trƣớc một tập các mẫu của một hình dạng là cơ sở để xây dựng một mô hình phân bố điểm. Mỗi hình trong tập huấn luyện đƣợc biểu diễn bởi một tập n điểm mốc đƣợc gán nhãn. Các điểm gán nhãn này có tính đặc thù cao, nhất quán trong tất cả các tập huấn luyện, nó đƣợc coi là các điểm quan trọng để hoạt hóa. Quá trình sử dụng các tập huấn luyện đảm bảo trong một khung tọa độ chung, điều đó cho phép chúng ta so sánh và tìm ra các điểm gán nhãn đặt trƣng. Mỗi hình đƣợc biểu diễn bằng vector thành phần 3n chiều :
) z ..., , z , y ..., , y , x ..., , (x1 n 1 n 1 n X .
Khung tọa độ dịch chuyển, quay hoặc co giãn mỗi hình huấn luyện, quá trình tính toán sẽ xác định sao cho cực tiểu hóa tổng khoảng cách bình phƣơng thành phƣơng sai của tập. Tập các điểm thỏa mãn điều kiện đó, là các điểm gán nhãn có tính chất đại diện và dùng để hoạt hóa.
Mô hình khuôn mặt có thể morphing, quá trình morphing khuôn mặt thể hiện trực quan rõ nét. Thành phần morphing hóa gồm các biến thể của các hình 3D và các kết cấu bề mặt có thể có trên mặt ngƣời [5]. Quá trình biểu diễn khuôn mặt, và xây dựng các mô hình mặt mới dựa trên tập các hệ số mô hình. Hình ảnh dƣới đây
cho thấy từ tập các mô hình 3D, thiết lập các tƣơng ứng điểm giữa các mô hình và biến đổi bề mặt hình dạng của chúng để morphing mô hình khuôn mặt.
Hình 2.12. Mô hình khuôn mặt có thể morphing do Blanz và Vetter đƣa ra Mô hình dựa trên vật lý học (Physics-based models) là mô hình mô phỏng theo nguyên tắc của các mô và cơ mặt, sự hoạt ảnh của khuôn mặt sẽ tập trung ở các cơ mặt quan trọng [10]. Phƣơng pháp này đƣợc áp dụng tốt khi quá trình hoạt hóa khuôn mặt gặp khó khăn hoặc không thể mô hình hóa đƣợc bằng kỹ thuật hình học. Một trong những yêu cầu của mô hình dựa trên vật lý học là phải áp dụng tốt nguyên lý vật lý của cơ mặt, và yêu cầu phần cứng xử lý phải đủ mạnh để có sức tính toán nhanh. Việc quan trọng là phải xác định đƣợc các cơ quan trọng, chủ yếu, đặc trƣng để xác định trạng thái mặt.
Hình 2.13. Các cơ chính trên mặt
Kỹ thuật dựa trên vật lý học thực chất là hệ thống các khối - đƣờng cong (mass-spring) dùng để mô hình hóa mặt. Các điểm trên mặt liên kết tạo thành các đƣờng cong, tập các đƣờng cong tạo thành cấu trúc lƣới (lattice). Nhìn chung các đƣờng cong là tuyến tính phù hợp để mô hình hóa các cơ, các đƣờng cong phi tuyến đƣợc dùng để mô hình hóa các mô nhƣ da mặt ngƣời. Hoạt động của cơ đƣợc biểu diễn bằng các lực lên một vùng. Khi áp dụng lực lên vùng cụ thể sẽ tạo nên sự
biến đổi vùng, hình ảnh của sự biến đổi là sự hoạt ảnh của cơ. Thực chất của mô hình hoạt hóa khuôn mặt theo kỹ thuật vật lý là thể hiện mặt ngƣời nhƣ một lƣới hai chiều, đặc biệt tập các điểm trong lƣới hai chiều có cấu trúc điểm đƣợc uốn cong theo hình trứng và đƣợc liên kết bởi các đƣờng cong tuyến tính.
Waters đã phát triển các mô hình phức tạp hơn để di chuyển các nút theo các lực cơ, ở đó các cơ dịch chuyển trực tiếp các nút bên trong các vùng ảnh hƣởng đƣợc tham số hóa bằng xƣơng quay (radius), các hệ số giảm, và các tham số khác. Terzopoulos và Waters căn cứ vào phƣơng diện giải phẫu với ba tầng mô mặt phân biệt: hạ bì (dermis), tầng mô mỡ dƣới da (subcutaneous fatty tissue), và tầng cơ (muscle), để xây dựng một lƣới ba tầng các điểm khối.
Hình 2.14. Mô hình da ba tầng đƣợc sử dụng bởi Terzopoulos và Waters. Biểu bì đƣợc hình thành nên từ bề mặt trên của tầng hạ bì, liên kết giữa các xƣơng cứng bên dƣới và gân bên trên là các cơ. Các cơ kích thích đóng vai trò tƣơng ứng với các cơ thực trên mặt ngƣời.
Zhang et. al. đã đƣa ra một mô hình mặt 3D phân cấp dùng trong một hệ thống hoạt ảnh mặt dựa trên vật lý với kết quả khá tốt. Mô hình bao gồm bốn thành phần cấu trúc : lƣới tam giác, tầng kích thích, khung xƣơng sọ, mô hình hình học của mặt và răng để tăng tính thực tế. Trong mô hình đó, lƣới tam giác biểu diễn mặt đƣợc chuyển đổi thành một hệ thống khối- đƣờng cong. Mỗi điểm trong lƣới khi chuyển đổi sẽ tƣơng ứng với một khối điểm ; Tầng các kích thích cơ mặt điều khiển cử động mặt. Dƣới tác động của một trƣờng lực tới các cơ mặt kết hợp, da mặt sẽ tự động biến đổi ; Khung xƣơng sọ bao gồm khung xƣơng phần cứng phần trên không cử động, và một hàm quay. Khung xƣơng sọ đƣợc biểu diễn là một lƣới tam giác gắn vào mặt.
Ƣu điểm của mô hình vật lý là làm đơn giản hóa mặt, tiện lợi để hoạt hóa, tiện ích trong việc hoạt ảnh các đối tƣợng có thể biến đổi mà sẽ rất khó để hoạt ảnh thủ công. Các máy tính ngày nay hoàn toàn thực thi tốt các giả lập tƣơng tác, ngay cả khi hệ thống đáp ứng đƣợc thời gian thực. Tuy nhiên, các hệ thống khối - đƣờng cong trong mô hình cũng có hạn chế. Quá trình mô phỏng mặt theo khối - đƣờng cong là quá trình xấp xỉ hóa, và rời rạc hóa các đối tƣợng trên khuôn mặt. Một mô hình mặt dựa trên vật lý tốt nhất cũng sử dụng các phép xấp xỉ tƣơng đối thô cho cấu trúc giải phẫu học của mặt. Cấu trúc chi tiết của mặt, các thành phần giải phẫu, các tƣơng tác và hành động của mô hình đều chỉ đƣợc xấp xỉ ở mức độ khá trừu tƣợng. Khi gặp các cấu trúc vật lý bên trong một có thể liên tục, mô hình trở nên kém chính xác.
Các kỹ thuật dựa trên cơ và giả cơ là kỹ thuật hoạt ảnh dựa trên cơ thực hiện giả lập các hành động của cơ. Các kỹ thuật đó sử dụng các phép toán biến đổi hình học mà không cần giả lập các hành động của mô trên da mặt. Platt and Badler đã đƣa ra một cách tiếp cận kỹ thuật hoạt ảnh dựa trên cơ của hiệu quả hơn. Kỹ thuật đƣợc Waters phát triển, với phƣơng thức là biến đổi mô hình mô da mặt bằng cách giả lập các cơ bằng mô hình khối và đƣờng cong.
Để mô tả sự thể hiện của các cử động của cơ mặt và hàm/lƣỡi đƣợc dẫn xuất từ việc phân tích hình thái giải phẫu học của mặt ngƣời ta dùng hệ mã hoá hành động mặt (Facial Action Coding System) (FACS7) [7]. FACS bao gồm 44 đơn vị hành động (AU8) cơ bản. Sự kết hợp các đơn vị hành động sẽ tạo ra các biểu hiện mặt khác nhau. Quá trình hoạt hóa mặt đƣợc phân tách thành hoạt hoá các đơn vị hành động. Ví dụ: việc kết hợp AU1, AU4, AU15 và AU23 tạo nên trạng thái mặt buồn.
Một số đơn vị hành động
AU Tên FACS
1 Nhƣớn mày trong (Inner Brow Raiser) 2 Nhƣớn mày ngoài (Outer Brow Raiser)
4 Nheo mày (Brow Lower)
5 Nhƣớn mi mắt trên (Upper Lid Raiser) 7 Nheo mắt (Lid Tightener)
9 Nhăn mũi (Nose Wrinkler)
10 Nhấc môi trên (Upper Lid Raiser) 12 Trề môi dƣới (Lid Corner Puller) 15 Hạ khoé miệng (Lip Corner Depressor) 16 Hạ môi dƣới(Lower Lip Depressor) 17 Nâng cằm (Chin Raiser)
20 Bành môi (Lip Stretcher) 23 Bặm môi (Lip Tightener) 26 Hạ hàm trên (Jaw Drop)
Hình 2.15. Một số đơn vị hành động
FACS thƣờng đƣợc dùng với các tiếp cận dựa trên cơ hay cơ giả lập. Các phƣơng pháp hoạt ảnh sử dụng các mô hình cơ khắc phục đƣợc giới hạn của
7 Facial Action Coding System
8
phép nội suy và cung cấp nhiều nét mặt. Mô hình hoá theo cơ vật lý mô tả các thuộc tính và hành vi của các hệ da ngƣời, xƣơng và cơ. Ngƣợc lại, các mô hình giả cơ bắt chƣớc cử động của các mô với các phép biến đổi hình học. Tuy nhiên sử dụng FACS chƣa hẳn là một giải pháp tốt, bởi vì tƣ tƣởng của FACS chính là phân tách thành các đơn vị hành động. Tập các đơn vị hành động chƣa thể hiện hết tính đa dạng và phức tạp của mặt, mặt khác sự biến đổi của mặt mang tính liên kết, không phải là cục bộ thành các đơn vị hành động riêng lẻ. Bên cạnh đó, FACS không thể hiện đƣợc yếu tố thời gian trong hoạt cảnh, cái mà FACS thể hiện chỉ theo chiều không gian, khi ở trong miền thời gian các tác động lên khớp sẽ bị mất trong hệ FACS.
CHƢƠNG 3: ỨNG DỤNG THỬ NGHIỆM 3.1. Bài toán
Biểu diễn khuôn mặt có rất nhiều ứng dụng trong cuộc sống. Đây cũng là bài toán có tính tƣơng tác ngƣời máy, tính hoạt ảnh đóng vai trò tích cực trong ứng dụng cài đặt. Biểu diễn khuôn mặt là quan trọng và cần thiết cho bất kỳ hệ thống xử lý tƣơng tác nào nhƣ các chƣơng trình huấn luyện, biểu thị thông tin, chữa bệnh, giáo dục, giải trí…Nhiệm vụ của hệ thống thể hiện khuôn mặt nhằm biểu thị sinh động tính hoạt ảnh, từ đó mô phỏng chính xác, sinh động thế giới thực, rút trích ra những tri thức hữu ích phục vụ thực tiễn.
Ngay nay, công nghệ thực tại ảo đang là một công nghệ hiện đại và dẫn đầu để giải quyết các bài toán mô phỏng. Trên thế giới đã phát triển và ứng dụng thực tại ảo từ rất sớm trong nhiều lĩnh vực nhƣ giáo dục, quân sự, y học…và đặc biệt là lĩnh vực giải trí nhƣ game, đồ họa. Ở Việt Nam, công nghệ thực tại ảo đã có những ứng dụng tích cực, nhiều bài toán mô phỏng đã đƣợc triển khai va ứng dụng nhƣ việc tái tạo các khu di tích, đền thờ, các danh lam thắng cảnh, các tình huống giao thông, các kịch bản quân sự…và một trong những bài toán có ý nghĩa và thách thức đó là xác định, biểu diễn khuôn mặt ngƣời.
Yêu cầu biểu diễn khuôn mặt trong hệ thống là quan trọng, cho phép hệ thống tƣơng tác với thế giới thực, và trên một tầm nâng cao hơn, nó sẽ là các hệ thống chuyên gia thông minh mang tới lợi ích rất lớn. Biểu diễn khuôn mặt nhờ các kỹ thuật hoạt ảnh có hiệu quả cao, ngày nay các kỹ thuật luôn đƣợc kết hợp để giải quyết hiệu quả các vấn đề về khuôn mặt. Trong phạm vi nghiên cứu của đề tài, chúng ta tiến hành thể hiện một vài trạng thái cơ bản của khuôn mặt, những trạng thái cơ bản nhất, làm tiền đề để phát triển trong thời gian tiếp. Quá trình cài đặt và thể hiện trạng thái hoạt hóa khuôn mặt trên mô hình 3D. Không ai phủ nhận đƣợc vai trò ứng dụng lớn của bài toán biểu diễn khuôn mặt ngƣời
nói chung và trạng thái khuôn mặt nói riêng, đây là một trong những vấn đề có tính áp dụng cao trong thực tiễn, nhất là của Việt Nam.
3.2. Phân tích bài toán
Quá trình hoạt hóa khuôn mặt thể hiện cảm xúc trên cơ sở khuôn mặt bình thƣờng. Do vậy việc đầu tiên là phải xây dựng một mô hình thể hiện khuôn mặt, mà ở đó chƣa có sự hoạt hóa của các thành phần. Quá trình này chúng ta có thể xây dựng dựa vào các công cụ đồ họa. Trong mô hình đã xây dựng cần xác định các đối tƣợng dùng để hoạt hóa khuôn mặt. Thực chất của quá trình hoạt hóa mặt, đó là hoặt hóa các thành phần mô phỏng khuôn mặt. Nhƣ đã đề cập ở các chƣơng tìm hiểu ở trên, chúng ta sẽ áp dụng để xây dựng khung hình cho mặt, morphing tạo mô phỏng 3D, quá trình hoạt hóa khuôn mặt là quá trình biến đổi các khung hình phù hợp theo thời gian, cách làm này cho phép chúng ta tạo nên những thể hiện đa dạng trong cùng một trạng thái cảm xúc, quá trình quan sát và biến đổi sẽ thực tế hơn. Quá trình hoạt hóa mặt đƣợc biến đổi từ trạng thái tự nhiên sang trạng thái đích, đứng trên một phƣơng diện nào đó thì các trạng thái làm trơn đều có thể coi là trạng thái đích vì nó phù hợp với đa dạng nét mặt trong thực tế. Ở đây chúng ta quy định trạng thái đích là trạng thái thể hiện rõ cho cảm xúc đang mô tả, có nghĩa là sự hoạt hóa của thành phần đặt trƣng là đủ lớn. Có thể nói chúng ta sẽ thể hiện trạng thái cảm xúc khuôn mặt chỉ ở những vùng đặc trƣng cơ bản nhất của khuôn mặt. Bài toán biểu diễn trạng thái khuôn mặt bao gồm những vấn đề chính đó là:
Bƣớc 1: Xây dựng mô hình hóa khuôn mặt bằng mô hình 3D;
Bƣớc 2: Hoạt hóa khuôn mặt thể hiện trạng thái biểu cảm, bằng các cử động của vùng đặc trƣng.
Nhƣ vậy đầu vào của bài toán là mô hình khuôn mặt 3D chƣơng trình có nhiệm vụ tác động lên mô hình này để tạo nên sự hoạt ảnh 3D thể hiện đƣợc nét mặt dựa trên những đặt trƣng rõ nhất của cảm xúc nét mặt.
3.3. Chƣơng trình biểu diễn trạng thái cơ bản của khuôn mặt
OpenGL (Open Graphics Library) là một tiêu chuẩn kỹ thuật đồ họa có chức năng tiêu chuẩn hóa giao diện lập trình ứng dụng ( application programming interface API) đồ họa 3 chiều [16]. Về bản chất thì OpenGL là thƣ viện hỗ trợ lập trình đồ họa 3D, độc lập với môi trƣờng (Windows, Linux, Apple…). OpenGL không hỗ trợ nhập, xuất hay các thao tác sự kiện nhƣ bàn phím, chuột … OpenGL không có các hàm xử lý đồ họa cấp cao để mô hình đối tƣợng. Giao diện lập trình OpenGL hỗ trợ chứa khoảng 250 hàm có chức năng xử lý đơn giản đến phức tạp. OpenGL đƣợc ứng dụng rộng rãi trong các trò chơi điện tử, trong các ứng dụng CAD, thực tế ảo, mô phỏng khoa học, mô phỏng thông tin, phát triển trò chơi.
Không gian trong OpenGL đƣợc miêu tả qua hình học xạ ảnh. Một điểm trong không gian đƣợc thể hiện bằng 4 tọa độ cho phép xử lý các điểm vô tận một cách tổng quát. Khi thiết kế ứng dụng trong không gian OpenGL, mã nguồn đƣợc đơn giản hóa rất nhiều [16].
Trong luận văn này để phát triển lập trình đồ họa trên Open GL, ngôn ngữ lập trình đƣợc sử dụng là Microsoft Visual C++. Microsoft Visual C++ (còn đƣợc gọi là MSVC) là một sản phẩm Môi trƣờng phát triển tích hợp (IDE) cho các ngôn ngữ lập trình C, C++, và C++/CLI của Microsoft. Nó có các công cụ cho phát triển và gỡ lỗi mã nguồn C++, đặc biệt là các mã nguồn viết cho Microsoft Windows API, DirectX API, và Microsoft .NET Framework.. Môi trƣờng phát triển tích hợp (tiếng Anh: Integrated Development Environment; viết tắt: IDE) còn đƣợc gọi là "Môi trƣờng thiết kế hợp nhất" (tiếng Anh:Integrated Design Environment) hay "Môi trƣờng gỡ lỗi hợp nhất" (tiếng Anh: Integrated Debugging Environment) là một loại phần mềm máy tính có công dụng giúp đỡ các lập trình viên trong việc phát triển phần mềm.
Một trình soạn thảo mã (source code editor): dùng để viết mã. Trình biên dịch (compiler) và/hoặc trình thông dịch (interpreter).
Công cụ xây dựng tự động: khi sử dụng sẽ biên dịch (hoặc thông dịch) mã nguồn, thực hiện liên kết (linking), và có thể chạy chƣơng trình một cách tự động.
Trình gỡ lỗi (debugger): hỗ trợ dò tìm lỗi.
Ngoài ra, còn có thể bao gồm hệ thống quản lí phiên bản và các công cụ nhằm