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 đơn giản hóa công việc xây dựng giao diện ngƣời dùng đồ họa (GUI).
Nhiều môi trƣờng phát triển hợp nhất hiện đại còn tích hợp trình duyệt lớp (class browser), trình quản lí đối tƣợng (object inspector), lƣợc đồ phân cấp lớp (class hierarchy diagram),... để sử dụng trong việc phát triển phần mềm theo hƣớng đối tƣợng. C++ là một môi trƣờng phát triển đồ họa rất mạnh.
Chúng ta thiết kế mô hình mặt, đó là cơ sở dữ liệu để chúng hoạt ảnh. Hƣớng giải quyết rất hiệu quả và cho kết quả tốt, đó là chúng ta có thể thiết kế các mô hình đối tƣợng trên các công cụ thiết kế nhƣ 3DS MAX, MAYA hoặc một số công cụ khác. Sau khi đã thiết kế xong mô hình, chúng ta dùng ngôn ngữ lập trình nhƣ VC++ … để điều khiển và tiến hành sinh ảnh trên các mô hình đã thiết kế.
Đầu tiên chúng ta tiến hành load mô hình đã đƣợc thiết kế từ 3DMAX hoặc MAYA, các mô hình này chúng ta thƣờng đƣa về file có phần mở rộng là .WRML, .LWO, … Thực chất của quá trình load và thể hiện mô hình trong môi trƣờng VC++ chính là quá trình vẽ lại các đối tƣợng trong môi trƣờng VC++ trong suốt quá trình chƣơng trình Runtime. Chúng ta dùng các hàm thƣ viện của OpenGL để hỗ trợ quá trình load và lấy dữ liệu. Quá trình load ảnh là tự động, cho chúng ta mô hình mặt bình thƣờng, từ mô hình 3D này chúng ta sẽ hoạt hóa khuôn ảnh phù hợp theo các đặc tính đã mô tả.
Hình 3.1. Khung hình khuôn mặt 3D ban đầu
Sau khi nạp xong dữ liệu, cửa sổ chƣơng trình là mô hình mặt 3D đã đƣợc bao phủ Ở trạng thái sẵn sàng hoạt ảnh, mô hình mặt 3D ở trạng thái bình thƣờng. Chúng ta
có thể nắm, giữ, xoay mô hình để quan sát, nếu muốn để ở vị trí nào để quan sát chúng ta có thể dừng hình ở đó.
Hình 3.2. Khung hình khuôn mặt nhìn nghiêng
Để thể hiện trạng thái cảm xúc vui vẻ, chúng ta đƣa phím trƣợt dƣới của sổ màn hình về cuối, phía bên phải, đó là vị trí đích, nơi mà tính cơ học của khuôn mặt thể
hiện rõ nhất. Từ trình đơn DieuKhien chúng ta chọ trạng thái cƣời, hoạt ảnh mặt sẽ nhƣ sau :
Vẫn giữ nguyên phím trƣợt ở vị trí cuối của thanh trƣợt, phía bên phải màn hình. Từ trình đơn điều khiển, chúng ta lựa chọn trạng thái ngạc nhiên, khung hình hoạt ảnh sẽ thể hiện nhƣ bên dƣới. Khuôn mặt có miệng mở và mắt mở rộng thể hiện sự ngạc nhiên rõ nét.
Các mô hình cảm xúc đƣợc tập hợp trong menu Dieukhien, đó là menu có chức năng hoạt hóa khuôn hình thể hiện các cảm xúc hạnh phúc, cƣời, tức giận…là một trong các trạng thái cảm xúc cơ bản mà chúng ta đề cập. Quá trình hoạt hóa mặt sẽ đƣợc thể hiện trong tập các lệnh chức năng đó.
Để thoát ứng dụng ta chọn chức năng Exit. Quá trình thực hiện lại chƣơng trình sẽ tuân thủ những yêu cầu đã đề cập.
PHẦN KẾT LUẬN: TÓM TẮT KẾT QUẢ ĐẠT ĐƢỢC, HƢỚNG PHÁT TRIỂN CỦA ĐỀ TÀI
Tƣơng tác giữa con ngƣời và máy tính đang trở thành lĩnh vực nghiên cứu quan trọng trong công nghệ thông tin. Bằng sự nghiên cứu nghiêm túc các kỹ thuật biểu diễn khuôn mặt, và biểu diễn trạng thái khuôn mặt, chúng ta mong muốn thể hiện đƣợc khuôn mặt theo đúng trạng thái thực tế, có tính tƣơng tác với hệ thống bên ngoài, là cơ sở dữ liệu để xử lý tình huống. Biểu diễn trạng thái khuôn mặt là một giải quyết một phần nguyện vọng mà chúng ta vừa nói tới. Biểu diễn là quá trình biến đổi hình thái khuôn mặt để miêu tả trạng thái cảm xúc.
Trong chƣơng 1, chúng ta tìm hiểu về thực tại ảo, bản chất của thực tại ảo là gì, các khả năng của thực tại ảo trong công nghệ thông tin, các ứng dụng của thực tại ảo, đƣa tới một cái nhìn tổng quan của thực tại ảo. Từ cái nhìn tổng quan, và sự ảnh hƣởng có tính tích cực trong ứng dụng của thực tại ảo, mang tới một cách tiếp cận có tính áp dụng cao trong bài toán biểu diên khuôn mặt trong hệ thống thực tại ảo.
Trong chƣơng 2, chúng ta tìm hiểu một số kỹ thuật biểu diễn khuôn mặt trong thực tại ảo, các phƣơng thức mô hình hóa khuôn mặt, và các kỹ thuật hoạt hóa khuôn mặt. Các kỹ thuật này là cơ sở khoa học cho việc biêu diễn khuôn mặt, là một trong những vấn đề đầu tiên của hệ thống xây dựng tính hoạt hóa cho khuôn mặt.
Trong chƣơng 3, cài đặt thực nghiệm chƣơng trình mô phỏng thể hiện cảm xúc khuôn mặt trên mô hình mặt 3D. Quá trình cài đặt chỉ tập trung hoạt hóa các đặc trƣng cơ bản của khuôn mặt nhƣ môi, mũi và cơ trán, mắt ở dạng đơn giản để thể hiện trạng thái biểu cảm tổng quát.
Luận văn có thể là một hƣớng đi để phát triển các ứng dụng thực tiễn nhƣ xây dựng các mô hình nhân vật, hay các mô hình robot…và tốt hơn nữa là các hệ thống
thông minh, trong đó đầu vào không hẳn chỉ là mô hình 3D mà có thể là hoạt ảnh 3D với đầu vào là 2D, hoặc có thể trực tiếp là các tính hiệu ảnh từ thực tiễn. Dù với hình thức nào, với vai trò ngƣời làm luận văn, mong muốn đề cập ở đây là tạo nên những hệ thống có tính phản hồi thông tin, kết hợp với hệ chuyên gia và trí tuệ nhân tạo để tạo nên những ứng dụng tuyệt vời nhƣ khám bệnh qua internet, phân tích hoạt ảnh mặt tìm tội phạm, hay là một trong những nhu cầu than thƣơng là tạo nên thế giới ảo thân thiện có tính trị liệu tâm lý cho mọi ngƣời trong gia đình… Để giải quyết mong muốn trên, cần có thời gian và đầu tƣ nghiên cứu. Thực chất đó là những vấn đề đòi hỏi sự tƣ duy, tổng hợp, và sáng tạo của ngƣời nghiên cứu. Hy vọng trong tƣơng lai, với vai trò là ngƣời tìm hiểu, chúng ta sẽ hiện thực hóa đƣợc điều đó
Do kiến thức cũng nhƣ kinh nghiệm và thời gian còn hạn chế, luận văn không tránh khỏi những thiếu sót. Kính mong nhận đƣợc sự đóng góp ý kiến của Quý thầy cô và các bạn.
TÀI LIỆU THAM KHẢO Tiếng Việt
[1]. Nguyễn Văn Huân (chủ biên), Vũ Đức Thái, Nguyễn Văn Tới, Nguyễn Thị Thanh Nhàn, Trần Thị Hồng Nhâm (2006), “Kỹ thuật lập trình mô phỏng thế giới thực”, Thái Nguyên.
[2]. Đỗ Năng Toàn (2006), "Tái tạo đối tƣợng 3 chiều từ hình ảnh 2 chiều", Tạp chí tin học và điều khiển học, Tập 22, số 4, 339-348.
[3]. Đỗ Năng Toàn, Trần Thanh Hiệp, Phạm Tấn Năm, Trịnh Hiền Anh (2005), Một kỹ thuật tiếp cận trong tạo mô hình 3 chiều, Hội thảo Quốc gia lần thứ VIII về các
vấn đề chọn lọc của CNTT và TT, Hải Phòng 25-27/8/2005.
[4]. Đỗ Năng Toàn, Lê Hải Khôi, Phạm Thế Anh, Trịnh Xuân Hùng (2005), Một
cách tiếp cận cho hiển thị hình ảnh 3 chiều, Hội thảo Quốc gia về “Các vấn đề chọn
lọc của CNTT”, Hải Phòng 25-27/8/2005.
[5]. Đỗ Năng Toàn, Lê Hải Khôi (2005), “Đơn giản hóa bề mặt kết hợp với kỹ thuật che phủ trong xây dựng mô hình 3D”, Hội thảo Quốc gia ứng dụng toán học lần 2,
Hà Nội 23-25/12/2005.
[6]. Khoa công nghệ thông tin, trƣờng đại học công nghệ Huế (2003), “Giáo trình lý thuyết đồ họa”. Huế -2003.
Tiếng Anh
[7] G. Donato, M.S. Bartlett, J.C. Hager, P. Ekman, and T.J. Se-jnowski (1999),
“Classifying facial actions,” IEEE Trans. on Pattern Anal. Mach. Intell., vol. 21, no. 10, pp. 974–989.
[8] D. Datcu and L.J.M. Rothkrantz (2004), “Automatic recognition of facial
expressions using bayesian belief networks,” in Proc. IEEE Int. Conf. on Systems,
Man, and Cybernetics, pp. 2209–2214.
[9]. Greg Humphreys (2004), “Parametric Curves & Surfaces”, CS445: Intro Graphics University of Virginia, Fall 2004
[10] G.J. Edwards, C.J. Taylor, and T.F. Cootes (1998), “Interpreting face images
using active appearance models,” in Proc. IEEE Int. Conf. on Automatic Face and
Gesture Recog., pp. 300–305.
[11] A.M. Tekalp and J. Ostermann (1999), “Face and 2d mesh animation in mpeg- 4,” Tutorial Issue On The MPEG-4 Standard, Image Communication Journal, Elsevier.
Các trang Web
[12 ]. Ngƣời Lao Động (2002), Tiếp xúc ảo với đồ vật trên net bằng công nghệ mới, http://vietbao.vn/Vi-tinh-Vien-thong/Tiep-xuc-ao-voi-do-vat-tren-net-bang-cong- nghe-moi/10762010/217/,(14/3/2002),
[13 ] Nguyễn Huy Sơn. Thực tế ảo, http://vi.wikipedia.org/, (01.03.2006),
[14 ]. Sức mạnh của ngôn ngữ không lời (2011), Trạng thái cảm xúc biểu hiện qua nét mặt, http://cuasomoi.vn/ngon-ngu-co-the/155974/11072011/trang-thai-cam-xuc- bieu-hien-qua-net-mat.ttn, (11/07/2011),
[15 ]. Sutherland's Sword of Damocles (2009),
http://www.virtualworldlets.net/Resources/Hosted/Resource.php?Name=Damocles [16] . http://vi.wikipedia.org/wiki/OpenGL