Luận văn -Tái tạo mô hình khuôn mặt từ các điểm đặc trưng

Qua đó, chúng tôi phát triển một hệ thống tái tạo mô hình khuôn mặt trong không gian ba chiều từ các điểm đặc trưng với ba mô-đun chính: Mô-đun chuẩn hóa dữ liệu, mô-đun biến đổi khuôn mặt và mô-đun chỉnh sửa khuôn mặt. Mô-đun chuẩn hóa có nhiệm vụ chuẩn hóa tập điểm đặc trưng đầu vào thông qua các phép quay, phép tịnh tiến và phép tỉ lệ trong không gian ba chiều.

pdf72 trang | Chia sẻ: lylyngoc | Lượt xem: 2783 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Luận văn -Tái tạo mô hình khuôn mặt từ các điểm đặc trưng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
18 19 20 21 Supraglabella Glabella Nasion End of Nasals Mid Philtrum Upper Lip Margin Lower Lip Margin Chin-Lip Fold Mental Eminence Beneath Chin Frontal Eminence Supraorbital Suborbital Inferior Malar Lateral Orbit Zygomatic Arch Supraglenoid Gonion Supra M 2 Occlusal Line Sub M 2 2.25 2.50 4.25 2.50 6.25 9.75 9.50 8.75 7.00 4.50 3.00 6.25 2.75 8.50 5.00 3.00 4.25 4.50 12.00 12.00 10.00 2.50 4.00 5.25 2.25 5.00 6.25 8.50 9.25 8.50 3.75 2.75 5.25 4.00 7.00 6.00 3.50 4.25 5.00 12.00 11.00 9.50 4.25 5.25 6.50 3.00 10.00 9.75 11.00 10.75 11.25 7.25 4.25 8.25 5.75 13.25 10.00 7.25 8.50 11.50 19.50 18.25 16.00 3.50 4.75 5.50 2.75 8.50 9.00 10.00 9.50 10.00 5.75 3.50 7.00 6.00 12.75 10.75 7.50 8.00 12.00 19.25 17.00 15.50 5.50 7.50 7.50 3.50 11.00 11.00 12.75 12.25 14.00 10.75 5.50 10.25 8.25 15.25 13.75 11.75 11.25 17.50 25.00 23.50 19.75 4.25 7.50 7.00 4.25 9.00 11.00 12.25 13.75 14.25 9.00 5.00 10.00 8.50 14.00 14.75 13.00 10.50 17.50 23.75 20.25 18.75  Một cách sử dụng phương pháp độ dày các mô để tái tạo khuôn mặt là đắp đất sét lên hộp sọ. Đầu tiên là chuẩn bị hộp sọ, ta cần phải chú ý đến các phần mỏng, dễ vỡ như mũi và hốc mắt. Bộ răng thường cung cấp rất nhiều thông tin hữu ích, lúc này lại cần đến kinh nghiệm nha khoa. Với việc tái tạo phần dưới của mặt, hàm dưới cần được điều chỉnh vị trí đảm bảo chính xác với hộp sọ. Kết hợp với một nhà nhân loại học, ta có thể nhận định được độ tuổi, giới tính và vóc người. Khi có được các dữ liệu đo đạc được này, người Chương 2. Các phương pháp tái tạo khuôn mặt Nguyễn Đình Tư 25 ta sẽ đắp đất sét lên hộp sọ để tạo thành khuôn mặt sao cho các điểm và khoảng cách được khớp. Hình 11 mô tả quá trình khôi phục khuôn mặt như trên. Hình 11. Mô hình khuôn mặt với việc đắp đất sét lên hộp sọ, sử dụng phương pháp độ dày các mô 2.3.2.2 Các phƣơng pháp 3D sử dụng công nghệ thông tin Phương pháp 3D sử dụng công nghệ thông tin chính là phương pháp tái tạo khuôn mặt với sự trợ giúp của máy tính. Thông thường phương pháp này gồm các bước sau:  Bước 1: Tạo mô hình 3D từ hộp sọ Sử dụng các thiết bị số hóa như chụp cắt lớp, Computerized Axial Tomography Scan (CT-scan), chụp cộng hưởng từ (Magnetic resonance imaging - MRI), hoặc các thiết bị số hóa ba chiều khác để tạo ra mô hình 3 chiều của hộp sọ. Kỹ thuật chụp cắt lớp vi tính cho phép đo đạc chính xác chiều dày của các mô mềm vùng đầu mặt. Một số lượng lớn các số đo chiều dày mô mềm được thu thập với các thuộc tính liên quan như tuổi, giới, tầm vóc, nhóm chủng tộc. Những dữ liệu thu được có thể là một tập các ảnh hai chiều (với phương pháp chụp cắt lớp và chụp cộng hưởng từ) hoặc một tập các điểm 3 chiều chưa theo cấu trúc chứ chưa phải là mô hình 3 chiều của hộp sọ ngay. Vì vậy, để thu được mô hình 3 chiều cần thiết, chúng ta lại phải nghiên cứu và phát triển các kỹ thuật xây dựng Chương 2. Các phương pháp tái tạo khuôn mặt Nguyễn Đình Tư 26 mô hình 3 chiều từ nhiều ảnh [22], các kỹ thuật tổ chức lại tập các điểm 3 chiều thành cấu trúc. Tuy nhiên các kĩ thuật đã đề xuất còn có độ chính xác chưa cao nên công việc này vẫn còn đang là vấn đề cần nghiên cứu nhiều hơn.  Bước 2: Xác định các điểm mốc, các điểm đặc trưng tương ứng trên da và dựng mô hình khuôn mặt Trên mô hình 3D có được sau bước đầu tiên của hộp sọ, người ta xác định được các điểm mốc, sau đó tại các điểm mốc này, người ta xác định các điểm tương ứng trên da (các điểm đặc trưng của khuôn mặt) nhờ vào độ dày của mô. Xác định chính xác các điểm đặc trưng này một cách tự động cũng là một công việc được nhiều nhóm nghiên cứu quan tâm và đã giải quyết được phần nào. Dựa vào các điểm đặc trưng này, người ta có thể thực hiện phép nội suy nhờ các công cụ như mạng hàm cơ sở bán kính (Radial Basis Functions - RBF), B-spline, Non- uniform rational B-spline (NURBS), Spline phân cấp,.. để tạo ra lưới 3 chiều của bề mặt khuôn mặt tương ứng [10][11]. Một phương pháp khác dùng các phương pháp xác suất thống kê dựa trên tập cơ sở dữ liệu đã có để tính ra được lưới 3 chiều của bề mặt khuôn mặt [8]. Người ta cũng có thể tạo ra một lưới 3 chiều mẫu cùng với các điểm điều khiển trên đó. Sử dụng các kĩ thuật biến dạng dựa trên điểm điều khiển, người ta thay đổi điểm điều khiển một cách hợp lý để tạo được lưới 3 chiều của bề mặt khuôn mặt tương ứng [28]. Một số nhà nghiên cứu còn sử dụng phương pháp mô phỏng các vùng phần mềm trên khuôn mặt người, như các cơ mặt, lớp da,… để tái tạo lại được toàn bộ vùng đầu và mặt một cách hoàn chỉnh dựa trên mô hình 3D của hộp sọ và độ dày các mô mềm tương ứng, không những vậy họ còn có thể tái tạo lại được các chuyển động trên khuôn mặt [19].  Bước 3: Làm đẹp khuôn mặt tái tạo được Mô hình 3D của khuôn mặt sau khi được tái tạo cũng có thể được làm chân thật hơn bằng cách thêm các bộ phận trên mặt như mắt, mũi, tai, môi; và dán bề mặt da. Tuy nhiên có khó khăn là các bộ phận như mắt, mũi, và miệng không đoán biết được từ xương sọ mặt. Công việc làm đẹp khuôn mặt này đòi hỏi việc nghiên cứu các kỹ thuật mô phỏng lớp da và các kỹ thuật ghép ảnh 2 chiều vào 3 chiều. Chương 2. Các phương pháp tái tạo khuôn mặt Nguyễn Đình Tư 27 Hình 12. Quá trình tái tạo khuôn mặt từ hộp sọ a) Quét hộp sọ b) Thêm các điểm đặc trưng c) Khớp các cơ vào hộp sọ d) Dán bề mặt và với biểu hiện cười. Hình 12 cho ta hình dung về một quá trình tái tạo khuôn mặt từ khâu đầu tiên quét hộp sọ (a), sau đó thêm các điểm đặc trưng lên ảnh thu được (b), kế tiếp là khớp các cơ vào hộp sọ (c) và cuối cùng là làm mịn, đẹp khuôn mặt tái tạo được (d). Một ví dụ vào năm 1997, Francesco Mallegni cùng các nhà Ai Cập học đã sử dụng kĩ thuật cắt lớp vi tính xoắn ốc (Hình 14b) để tái tạo khuôn mặt từ hộp sọ trong xác ướp một hoàng tử Ai Cập. Xác ướp có niên đại vào khoảng 339-201 trước Công Nguyên và được lưu giữ trong bảo tàng khảo cổ học ở Florence (Hình 13a) . Các nhà khoa học Ai Cập cũng đã tạo được hình ảnh kĩ thuật số đầu tiên về khuôn mặt của Pharaoh huyền thoại Tutankhamun (Hình 14a) sau khi chụp cắt lớp xác ướp 3000 tuổi. Sau đó họ dựng lên khuôn mặt như Hình 14b và cuối cùng là dán bề mặt mô mềm như Hình 14c. Chương 2. Các phương pháp tái tạo khuôn mặt Nguyễn Đình Tư 28 (a) (b) Hình 13. Ảnh chụp đầu của xác ướp ở Florence (inv. N. 8643) (a) và ảnh chụp cắt lớp xoắn ốc (b) (a) (b) Chương 2. Các phương pháp tái tạo khuôn mặt Nguyễn Đình Tư 29 (c) Hình 14. Dựng lại khuôn mặt của Pharaoh Tutankhamun. (a) Mô hình kĩ thuật số của xác ướp. Bề mặt mô mềm (trái), mô cứng (phải). (b) Khuôn mặt dựng được. (c) Gương mặt tái tạo được sau khi dán bề mặt mô hình mô mềm. Một số hệ thống phần mềm tái tạo khuôn mặt từ hộp sọ:  Hệ thống do Björn Anderson, Martin Valfridson phát triển năm 2005 [6]. Hệ thống sử dụng phần mềm đồ họa 3DS MAX. Quá trình hoạt động của hệ thống như sau:  Bước 1: Thu thập dữ liệu từ quét CT. Hộp sọ được quét bởi CT-scanner. Các lớp cắt được lưu ở định dạng DICOM.  Bước 2: Phân đoạn dữ liệu. Phần mềm phân đoạn được sử dụng để chỉnh sửa các lớp nhằm loại bỏ các thứ dính vào các hốc. Phần mềm phân đoạn này cũng được sử dụng để tạo ra mô hình 3D để nhập vào 3DS MAX.  Bước 3: Nhập mô hình vào 3DS MAX và thực hiện tiền xử lý như chuẩn hóa và quay mô hình.  Bước 4: Đặt vị trí các mốc nhờ giao diện đồ họa.  Bước 5: Phủ các hốc trên hộp sọ  Bước 6: Thực hiện các tính toán trên lưới dựa trên độ dày của mô tại các mốc nội suy độ dày mô tại các điểm khác.  Bước 7: Tạo cằm, cổ, mũi, mắt, tai và môi.  Bước 8: Hậu xử lý mô hình. Chỉnh sửa mô hình dựa trên các hiểu biết về Chương 2. Các phương pháp tái tạo khuôn mặt Nguyễn Đình Tư 30 diện mạo mặt người.  Bước 9: Dán bề mặt (texture) và tạo ảnh.  Phần mềm của Kolja Kähler và Jörg Haber (Viện khoa học máy tính Max Plank ở Saarbrucken, 2003) [19] Tháng 12/2003, trong luận án tiến sĩ về đề tài “Mô hình hóa đầu với cấu trúc giải phẫu để mô hình hóa và làm sống động khuôn mặt”, Kolja Kähler đã nghiên cứu các cơ mặt, hoạt động và sự biến dạng của chúng và đã xây dựng phần mềm tái tạo khuôn mặt từ hộp sọ. Sau đó phần mềm này đã được tác giả và cộng sự tại Đại học Saarland phát triển thành một hệ thống. Hệ thống cho phép tái tạo nhanh chóng một khuôn mặt và làm sống dậy những nét cá tính riêng dựa trên việc xây dựng 24 kiểu co dãn cơ trên khuôn mặt. Hệ thống cho phép thay đổi sắc thái tình cảm trên khuôn mặt.  Phần mềm FACES của nhóm tác giả thuộc Đại học Salerno, Italy, 2004 Phần mềm tái tạo khuôn mặt từ hộp sọ của những người cổ đại dựa trên việc nắn chỉnh (warping), biến dạng mô hình mặt được chọn từ tập các mô hình với các giới tính, sắc tộc khác nhau để phù hợp với các điểm mốc trên hộp sọ. Nhiều thuật toán nắn chỉnh khác nhau được sử dụng để thực hiện nhiệm vụ này. Hệ thống sử dụng hai Cơ sở dữ liệu (CSDL): CSDL kích thước hộp sọ (Craniometrical Database) và CSDL các khuôn mặt (Pictorial Physiognomic Database).  Hệ thống của các nhà khoa học thuộc Viện nghiên cứu các hệ thống hàng không Nga (GosNIIAS), 2001. Hệ thống được xây dựng dựa trên cách tiếp cận biến đổi mô hình khuôn mặt 3 chiều để thỏa mãn các điều kiện về khoảng cách từ các điểm mốc trên hộp sọ tới các điểm trên bề mặt. Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 31 Chƣơng 3 HỆ THỐNG TÁI TẠO MÔ HÌNH KHUÔN MẶT TỪ CÁC ĐIỂM ĐẶC TRƢNG Chúng tôi phát triển một hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng trên khuôn mặt bằng cách sử dụng các mạng RBF. Hệ thống sử dụng một mô hình khuôn mặt nguồn, trên khuôn mặt gốc đã xác định sẵn các điểm đặc trưng. Đầu vào của hệ thống là tọa độ các điểm đặc trưng trên khuôn mặt đích, ở bước đầu tiên hệ thống sẽ chuẩn hóa lại tập tọa độ này, đưa chúng về hệ tọa độ mà hệ thống sử dụng. Các mạng RBF được huấn luyện bằng tập điểm đặc trưng nguồn và tập điểm đặc trưng đích. Sau đó, các mạng RBF sẽ biến đổi mô hình khuôn mặt nguồn thành mô hình khuôn mặt đích cần tái tạo. Nếu mô hình khuôn mặt đích này có điểm bất hợp lý hoặc muốn chỉnh lại cho đẹp mắt hơn, nó có thể được chỉnh sửa theo từng vị trí có điểm đặc trưng hoặc theo đặc điểm của cả một vùng trên khuôn mặt để cho một mô hình khuôn mặt đẹp và chính xác hơn. Trong chương này, chúng tôi mô tả cụ thể về hệ thống này. 3.1 Mô hình hệ thống Hệ thống này sử dụng mô hình khuôn mặt xây dựng theo phương pháp biểu diễn mô hình khuôn mặt với lớp da là lưới tam giác. Quá trình tái tạo mô hình khuôn mặt của hệ thống được chia thành các bước chính sau:  Chuẩn hóa dữ liệu: Mô-đun này có nhiệm vụ chuẩn hóa dữ liệu đầu vào, tức là đưa tọa độ các điểm đặc trưng trên khuôn mặt đích về cùng một hệ tọa độ chứa các điểm đặc trưng trên khuôn mặt nguồn mà hệ thống sử dụng.  Biến đổi khuôn mặt: Đây là mô-đun quan trọng nhất của hệ thống. Module này có nhiệm vụ tìm ra các tham số của các hàm RBF để biến đổi các điểm đặc trưng trên khuôn mặt nguồn về các điểm đặc trưng trên khuôn mặt đích, từ đó xây dựng mô hình khuôn mặt đích.  Chỉnh sửa khuôn mặt: Mô-đun này có nhiệm vụ điều chỉnh các điểm đặc trưng trên khuôn mặt đích dựa trên phản hồi của người dùng đối với khuôn mặt vừa tái tạo được. Các tọa độ sau khi thay đổi được đưa lại vào module biến đổi khuôn mặt để tái tạo một mô hình khuôn mặt đích mới. Quá trình Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 32 tiếp tục như vậy cho đến khi người dùng thỏa mãn với mô hình khuôn mặt đích được xây dựng. Mô hình khuôn mặt đích này là đầu ra cuối cùng của hệ thống. Như vậy hệ thống mà chúng tôi xây dựng cho phép người dùng can thiệp, điều chỉnh vào đầu ra tạm thời cho tới khi mô hình khuôn mặt đích xây dựng được phù hợp nhất có thể. Mô hình hệ thống được minh họa trong Hình 15. Các mục tiếp theo của chương sẽ đi sâu vào mô tả chi tiết từng bước (mô-đun) của hệ thống. Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 33 Hình 15. Mô hình hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng (*Nếu người dùng không có yêu cầu chỉnh sửa gì thêm thì Mô hình khuôn mặt đích nhận được sau “Biến đổi” là đầu ra cuối cùng của hệ thống) HỆ THỐNG TÁI TẠO MÔ HÌNH KHUÔN MẶT TỪ CÁC ĐIỂM ĐẶC TRƢNG Các điểm đặc trưng trên khuôn mặt đích Mô hình khuôn mặt đích* Chuẩn hóa Tọa độ các điểm đặc trưng trên khuôn mặt đích Biến đổi Tọa độ các điểm đặc trưng trên khuôn mặt nguồn Mô hình khuôn mặt nguồn Chỉnh sửa Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 34 3.2 Chuẩn hóa dữ liệu Ở bước đầu tiên này, hệ thống nhận đầu vào là tọa độ 3 chiều của các điểm đặc trưng trên khuôn mặt đích. Tập tọa độ này được trích xuất ra bằng phương pháp đo độ dày mô trên hộp sọ hoặc từ các ảnh 2 chiều nên chúng được đặt ở trong một hệ trục tọa độ khác. Chúng tôi sử dụng một số phép biến đổi trong không gian ba chiều để đưa tập tọa độ này về hệ tọa độ tương đương với hệ tọa độ mà chúng tôi dùng để biểu diễn mô hình khuôn mặt nguồn. 3.2.1 Các phép biến đổi trong không gian ba chiều đƣợc sử dụng Chúng tôi sử dụng các phép biến đổi: phép tịnh tiến, phép tỉ lệ và phép quay trong không gian ba chiều. Tọa độ các điểm được biểu diễn theo tọa độ đồng nhất, nghĩa là chúng tôi sẽ dùng tọa độ (x, y, z, 1) thay cho tọa độ (x, y, z). Bằng cách này chúng tôi có thể dễ dàng biểu diễn các phép biến đổi ở dạng các phép tính với ma trận. Giả sử chúng ta cần biến đổi điểm P về điểm P’ theo:  Phép tịnh tiến theo vec-tơ tịnh tiến là (tx, ty, tz). Khi đó phương trình phép tịnh tiến như sau (T là ma trận của phép tịnh tiến): P’ = 𝑥′ 𝑦′ 𝑧′ 1 = T. P = 1 0 0 𝑡𝑥 0 1 0 𝑡𝑦 0 0 1 𝑡𝑧 0 0 0 1 . 𝑥 𝑦 𝑧 1  Phép tỉ lệ: S là ma trận của phép tỉ lệ theo hệ số (sx, sy, sz): P’ = 𝑥′ 𝑦′ 𝑧′ 1 = S. P = 𝑠𝑥 0 0 0 0 𝑠𝑦 0 0 0 0 𝑠𝑧 0 0 0 0 1 . 𝑥 𝑦 𝑧 1  Phép quay: Khi thực hiện phép quay trong không gian ba chiều, ta cần phải biết trục quay và góc quay. Chiều của góc quay được xác định theo chiều cùng chiều kim đồng hồ (chiều âm) và ngược chiều kim đồng hồ (chiều dương) khi mắt nhìn dọc theo trục quay (ta sẽ gọi đó là hướng nhìn). Ví dụ phép quay minh họa ở Hình 16 là phép quay theo chiều dương, trục quay Ox và hướng nhìn là theo hướng âm của trục Ox. Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 35 Hình 16. Phép quay chiều dương, trục quay Ox, hướng nhìn là hướng âm trục Ox  Phép quay quanh các trục tọa độ Ta xét các phép quay một góc θ theo các trục Ox, Oy, Oz khi hướng nhìn là hướng âm của trục đó. o Phép quay quanh trục Ox 𝑥′ = 𝑥 𝑦′ = 𝑦. 𝑐𝑜𝑠θ − z. sinθ z′ = y. sinθ + z. cosθ Vì vậy P’ = 𝑥′ 𝑦′ 𝑧′ 1 = 𝑅𝑂𝑥 θ . P = 1 0 0 0 0 𝑐𝑜𝑠θ −𝑠𝑖𝑛θ 0 0 𝑠𝑖𝑛θ 𝑐𝑜𝑠θ 0 0 0 0 1 . 𝑥 𝑦 𝑧 1 o Phép quay quanh trục Oy 𝑥′ = 𝑥. 𝑐𝑜𝑠θ+ z. sinθ 𝑦′ = 𝑦 z′ = −x. sinθ + z. cosθ Vì vậy P’ = 𝑥′ 𝑦′ 𝑧′ 1 = 𝑅𝑂𝑦 θ . P = 𝑐𝑜𝑠θ 0 𝑠𝑖𝑛θ 0 0 1 0 0 −𝑠𝑖𝑛θ 0 𝑐𝑜𝑠θ 0 0 0 0 1 . 𝑥 𝑦 𝑧 1 o Phép quay quanh trục Oz Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 36 𝑥′ = 𝑥. 𝑐𝑜𝑠θ − y. sinθ 𝑦′ = 𝑥. 𝑠𝑖𝑛θ + y. cosθ z′ = z Vì vậy P’ = 𝑥′ 𝑦′ 𝑧′ 1 = 𝑅𝑂𝑧 θ . P = 𝑐𝑜𝑠θ −𝑠𝑖𝑛θ 0 0 𝑠𝑖𝑛θ 𝑐𝑜𝑠θ 0 0 0 0 1 0 0 0 0 1 . 𝑥 𝑦 𝑧 1  Phép quay quanh một trục song song với trục tọa độ Giả sử trục quay song song với trục Ox (các trường hợp còn lại tương tự), ta thực hiện lần lượt các phép biến đổi sau: 1. Áp dụng phép tịnh tiến T để đưa trục quay về trục Ox 2. Áp dụng phép quay R(θ) quanh trục Ox với góc θ 3. Áp dụng phép tịnh tiến T-1 để đưa trục quay về vị trí ban đầu  Phép quay quanh một trục bất kì Giả sử trục quay là một đường thẳng d đi qua hai điểm P1(x1, y1, z1) và P2(x2, y2, z2). Để thực hiện phép quay R(θ)quanh đường thẳng d một góc θ theo hướng nhìn từ điểm P2 tới P1. Ta thực hiện lần lượt các phép biến đổi sau: 1. Áp dụng phép tịnh tiến để đưa trục quay về vị trí đi qua gốc tọa độ. 2. Áp dụng phép quay để đưa trục quay về vị trí trùng với một trục tọa độ, ví dụ là Oz. 3. Áp dụng phép quay vật thể quanh trục quay (trục tọa độ). 4. Áp dụng phép quay đưa trục quay về vị trí tại bước (ii). 5. Áp dụng phép quay đưa trục quay về vị trí ban đầu. Quá trình được minh họa trong Hình 17: Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 37 Hình 17. Phép quay quanh một trục bất kì Ta cần tìm ma trận biến đổi của từng phép biến đổi theo từng bước  Bước 1: Tịnh tiến đưa điểm P1 về gốc tọa độ bằng cách tịnh tiến theo vec-tơ (-x1, -y1, -z1), đoạn thẳng P1P2 chuyển thành P1’P2’. Ma trận phép biến đổi là: T = 1 0 0 −𝑥1 0 1 0 −𝑦1 0 0 1 −𝑧1 0 0 0 1  Bước 2: Đây là bước phức tạp nhất, đưa trục quay P1’P2’ về trùng với một trục tọa độ, ta chọn đó là trục Oz. Để thuận tiện ta sẽ chọn vec-tơ đơn vị 𝑢 thuộc đường thẳng P1’P2’ và có hướng trùng với hướng của vec-tơ 𝑣 = P1’P2’ như sau: 𝑣 = P1’P2’= P1P2 = (x2-x1, y2-y1, z2-z1). 𝑢 = 𝑣 𝑣 = 𝑎, 𝑏, 𝑐 và 𝑢 = 𝑎2 + 𝑏2+ 𝑐2 2 = 1 Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 38 Mục đích bây giờ là ta phải đưa 𝑢 về trục Oz bằng cách áp dụng hai phép quay sau: i. Quay một góc α quanh trục Ox đưa 𝑢 về vị trí vec-tơ 𝑢′′ nằm trên mặt phẳng xOz. ii. Quay một góc β quanh trục Oy đưa 𝑢′′ về vị trí uz thuộc trục Oz. Quá trình được minh họa trong Hình 18 Hình 18. Quay vec-tơ 𝑢 về trục Oz Độ lớn của góc α chính bằng góc giữa vec-tơ 𝑢′ (0,𝑏, 𝑐) (hình chiếu của 𝑢 lên mặt phẳng yOz)và chiều dương trục Oz như trong Hình 19 Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 39 Hình 19. Cách tính góc α Dễ thấy cos𝛼 = 𝑐 𝑑 , 𝑠𝑖𝑛𝛼 = 𝑏 𝑑 với 𝑑 = 𝑢′ = 𝑏2 + 𝑐2. Sau phép quay một góc 𝛼 quanh trục Ox (Hình 18) 𝑢 thành 𝑢′′ . Hoành độ của 𝑢′′ bằng x (vì phép quay quanh Ox không làm thay đổi hoành độ), tung độ của 𝑢′′ bằng 0 và cao độ của 𝑢′′ bằng d (chính là độ dài của 𝑢′ ). 𝑅𝑂𝑥 θ = 1 0 0 0 0 𝑐𝑜𝑠𝛼 −𝑠𝑖𝑛𝛼 0 0 𝑠𝑖𝑛𝛼 𝑐𝑜𝑠𝛼 0 0 0 0 1 = 1 0 0 0 0 𝑐 𝑑 −𝑏 𝑑 0 0 𝑏 𝑑 𝑐 𝑑 0 0 0 0 1 Tương tự ta có 𝑐𝑜𝑠𝛽 = 𝑢′′ uz 𝑢′′ uz = 𝑑 (chú ý: 𝑢′′ = uz = 1). Theo định nghĩa tích có hướng của hai vec-tơ ta có: 𝑢′′ .𝑢𝑧 = 𝑢𝑦 . 𝑢′′ . 𝑢𝑧 . 𝑠𝑖𝑛𝛽 Mặt khác 𝑢′′ .𝑢𝑧 = 𝑢𝑦 . (−𝑎) do đó 𝑠𝑖𝑛𝛽 = −𝑎. Từ đó, ta có: 𝑅𝑂𝑦 β = 𝑐𝑜𝑠𝛽 0 𝑠𝑖𝑛𝛽 0 0 1 0 0 −𝑠𝑖𝑛𝛽 0 𝑐𝑜𝑠𝛽 0 0 0 0 1 = 𝑑 0 −𝑎 0 0 1 0 0 𝑎 0 𝑑 0 0 0 0 1 Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 40  Bước 3: Áp dụng phép quay một góc θ quanh trục Oz 𝑅𝑂𝑧 θ = 𝑐𝑜𝑠θ −𝑠𝑖𝑛θ 0 0 𝑠𝑖𝑛θ 𝑐𝑜𝑠θ 0 0 0 0 1 0 0 0 0 1  Bước 4 và bước 5: Áp dụng các phép biến đổi ngược, đưa đường thẳng d về vị trí ban đầu. Tóm lại ta có phương trình ma trận kết hợp các phép biến đổi như sau: 𝑅 θ = T−1. ROx −1 α . ROy −1 β .𝑅𝑂𝑧 θ .𝑅𝑂𝑦 β .𝑅𝑂𝑥 α . T 3.2.2 Sử dụng các phép biến đổi để chuẩn hóa dữ liệu Mục đích của chúng tôi là đưa các điểm đặc trưng bên khuôn mặt đích về hệ tọa độ và theo đúng hướng nhìn chính diện tới khuôn mặt ở bên khuôn mặt nguồn. Chúng tôi chọn 3 điểm Su, Sv, Sk (điểm đỉnh mũi, điểm đỉnh trán, điểm đỉnh cằm) trong tập S là tập các điểm đặc trưng nguồn và 4 điểm Tu, Tv, Tk, Tt (điểm đỉnh mũi, điểm đỉnh trán, điểm đỉnh cằm và điểm ở thái dương) trong tập T là tập các điểm đặc trưng đích làm mốc. Các điểm này được khoanh tròn xanh như ở Hình 20. Hình 20. Chọn 4 điểm mốc để chuẩn hóa dữ liệu qua các phép biến đổi 3D Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 41 Sử dụng các phép biến đổi trong không gian ba chiều ở trên, chúng tôi tiến hành các bước như sau:  Bước 1 dùng phép tịnh tiến: Tịnh tiến cả tập điểm T theo 𝑇𝑢 𝑆𝑢 , chúng tôi sẽ có tập điểm mới trong đó điểm Tu có cùng tọa độ với Su.  Bước 2 dùng phép tỉ lệ: Lấy điểm Tu làm mốc, chúng tôi đưa tất cả các điểm Ti còn lại theo hướng 𝑇𝑢 𝑇𝑖 theo tỉ lệ 𝑆𝑢𝑆𝑣 𝑇𝑢𝑇𝑣 . Sau đó chúng tôi sẽ thu được tập các điểm mới sao cho 𝑇𝑢𝑇𝑣 = 𝑆𝑢𝑆𝑣 .  Bước 3 dùng phép quay: Chúng tôi xác định phép quay với trục là vec-tơ pháp tuyến của mặt phẳng (Tu, Tv, Sv) gốc tại Tu và xác định góc quay α sao cho nếu áp dụng với Tv thì Tv quay về trùng với Sv (lúc này đã có 𝑇𝑢𝑇𝑣 = 𝑆𝑢𝑆𝑣 sau bước trên). Sau khi xác định được phép quay chúng tôi áp dụng phép quay này cho tất cả các điểm Ti của tập T. Sau bước này chúng tôi có thêm Tv trùng Sv.  Bước 4 dùng phép quay: Chúng tôi xác định phép quay với trục là 𝑇𝑢𝑇𝑣 và xác định góc quay β sao cho nếu áp dụng với Tk thì Tk quay về nằm lên trên mặt phẳng 𝑇𝑢𝑇𝑣𝑆𝑘, tọa độ z của Tk < tọa độ z của Tu và áp dụng với Tt thì tọa độ z của Tt < tọa độ z của Tu. Sau khi xác định được phép quay chúng tôi áp dụng phép quay này cho tất cả các điểm Ti của tập điểm T. Cuối cùng chúng tôi có được tập các điểm có tọa độ được chuẩn hóa theo hệ tọa độ mà hệ thống sử dụng. Dữ liệu tọa độ này được đưa vào bước biến đổi khuôn mặt. 3.3 Biến đổi khuôn mặt Ở bước này, chúng tôi sử dụng một mô hình khuôn mặt chuẩn làm mô hình khuôn mặt nguồn. Đơn vị biến đổi dùng mô hình đa mạng hàm cơ sở bán kính, Radial Basis Functions (RBF). Đơn vị này nhận đầu vào là mô hình khuôn mặt nguồn cùng các điểm đặc trưng trên khuôn mặt nguồn và các điểm đặc trưng trên khuôn mặt đích tương ứng. Các mạng RBF được huấn luyện bởi 2 tập điểm đặc trưng này. Sau đó, chúng ánh xạ mô hình khuôn mặt nguồn qua các hàm RBF được xây dựng để có mô hình khuôn mặt đích. Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 42 3.3.1 Mô hình khuôn mặt nguồn Chúng tôi sử dụng phương pháp biểu diễn mô hình khuôn mặt với lớp da là lưới tam giác như đã trình bày ở mục 2.2.1. Ưu điểm của việc biểu diễn bằng lưới đa giác là các tính toán về bề mặt lưới đa giác như xác định một phần hay toàn bộ một vật thể nằm trong một khoảng không gian, tìm ra các bề mặt ẩn, và xác định độ bóng của các bề mặt nhìn thấy đã được giải quyết bởi nhiều thuật toán đồ họa (Mahl, 1972; Weiss, 1966) [23][35]. Và hơn nữa là về mặt tốc độ; các thuật toán này nhanh hơn, tiết kiệm hơn và mang đến hiệu quả dựng mô hình nhanh chóng với máy tính thông thường với dung lượng, tốc độ xử lý thấp. Cụ thể hơn chúng tôi xây dựng lớp da một khuôn mặt nguồn với các đa giác là các tam giác. Để biểu diễn khuôn mặt, hệ thống sử dụng 2638 đỉnh và 5014 tam giác nối giữa các đỉnh. Với số lượng đỉnh và tam giác khá lớn như vậy lớp da khuôn mặt được biểu diễn khá mịn, đẹp và đủ cho việc đánh dấu tất cả các điểm đặc trưng tại mọi vị trí. Vì mặt người gần như đối xứng nên chúng tôi xây dựng nửa mặt bên trái rồi lấy đối xứng để hoàn thiện nốt bên phải. Nửa bên trái Hình 20 biểu hiện mô hình khuôn mặt nguồn hệ thống sử dụng. Việc sử dụng mô hình khuôn mặt biến đổi để thể hiện một mô hình khuôn mặt mới thay cho việc sử dụng chính bản thân mô hình mới có nhiều ưu điểm:  Giữ được một mô hình khuôn mặt cố định với số đỉnh và số đa giác xác định trước.  Sử dụng lại được các thông số trên mô hình khuôn mặt cố định trước.  Sử dụng lại những thông tin về các vùng trên mô hình khuôn mặt để nâng cao hiệu quả của biến đổi. 3.3.2 Biến đổi mô hình khuôn mặt Chọn và huấn luyện mô hình đa mạng RBF: Chúng tôi sử dụng ba mạng RBF để lấy ánh xạ một đỉnh trên mô hình khuôn mặt nguồn sang một đỉnh trên mô hình khuôn mặt đích cần xây dựng với ba giá trị tọa độ trong không gian 3 chiều. Các mạng này được huấn luyện bằng tập các điểm đặc trưng. 𝑝 𝑥, 𝑦, 𝑧 → 𝑝′(𝑅𝐵𝐹𝑥 𝑝 ,𝑅𝐵𝐹𝑦 𝑝 ,𝑅𝐵𝐹𝑧 𝑝 ) Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 43 Mỗi RBF có dạng là một hàm f như sau: f(𝑝𝑖 ) = 𝑤𝑗 𝑛 𝑗=1 ℎ𝑗 (𝑝𝑖 ) (1) Trong đó:  n: là số lượng các đầu vào của tập huấn luyện.  𝑝𝑖 : là vector 𝑂𝑝𝑖 , O là gốc tọa độ  𝑤𝑗 : là trọng số của mạng, cần được xác định dựa vào tập huấn luyện.  ℎ𝑗 : là hàm cơ bản, áp dụng phương pháp rất thành công của Noh và Neumann [25]. ℎ𝑗 (pi) = 𝑝𝑖 − 𝑝𝑗 2 + 𝑠𝑗 2. Với:  𝑠𝑗 : khoảng cách ngắn nhất từ các điểm 𝑝𝑗 đến điểm 𝑝𝑖 , 𝑠𝑗 = 𝑗 ≠𝑖 𝑚𝑖𝑛 𝑝𝑖 − 𝑝𝑗 , (Eck[14] đề xuất) Như vậy ta có thể thấy các ℎ𝑗 là tính được ngay ban đầu từ 2 tập điểm đặc trưng. Bây giờ chúng ta cần tính các 𝑤𝑗 để xác định được hàm f. Tính các 𝑤𝑗 bằng cách huấn luyện mạng 3 lần với các tọa độ 3 chiều của các điểm đặc trưng trên khuôn mặt gốc với tọa độ 3 chiều của các điểm đặc trưng trên khuôn mặt đích. Ta xét 𝑤 = (𝑤1,𝑤2 ,… ,𝑤𝑛 ). Gọi C(𝑤 ) là hàm chi phí của 𝑤 . Phương pháp này sử dụng thêm một hệ số λ để cực tiểu hóa hàm chi phí C(𝑤 ): C(𝑤 ) = 𝑒 𝑇𝑒 + 𝜆𝑤 𝑇𝑤 (2) Trong đó:  𝑒 : là vector sai số của chênh lệch giữa giá trị thực tế và giá trị tính toán được, 𝑒 = 𝑦 − 𝐻𝑤 và 𝐻𝑖𝑗 = ℎ𝑗 (𝑥𝑗 ). Tham số quy tắc được thêm vào để tránh trọng số vượt quá mức. Thay 𝑒 vào trong đẳng thức (2) và lấy đạo hàm của C(𝑤 ) theo 𝑤 ta có: 𝑤 = 𝐴−1𝐻𝑇𝑦 (3) Trong đó A = 𝐻𝑇𝐻 + 𝜆𝐼 với I là ma trận đơn vị. Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 44 Vậy ta tính được A, sau đó dùng công thức (3) để tính được 𝑤 . Biến đổi: Một khi các ẩn đã được tính ra, mạng RBF nội suy đẹp trên tất cả các điểm còn lại và biến mô hình khuôn mặt gốc thành mô hình khuôn mặt đích. Lúc này hệ thống dùng ba mạng RBF với các hệ số ẩn đã tính được để biến tất cả các tọa độ của đỉnh trên khuôn mặt gốc thành một đỉnh có tọa độ mới, các tam giác kết nối các đỉnh vẫn giữ nguyên như vậy, ta sẽ có được mô hình khuôn mặt đích, hay là khuôn mặt cần tái tạo. 3.4 Chỉnh sửa khuôn mặt Mô hình khuôn mặt sau khi được tái tạo bằng cách biến đổi khuôn mặt nguồn bằng các mạng RBF ở bước trên có thể còn những đặc điểm trên khuôn mặt còn chưa hợp lý, do đó chúng tôi phát triển thêm mô-đun chỉnh sửa khuôn mặt để cho ra một khuôn mặt tốt hơn. Thành phần chỉnh sửa gồm mô-đun:  Chỉnh sửa theo điểm: cho phép chỉnh sửa tọa độ từng điểm đặc trưng trên khuôn mặt.  Chỉnh sửa theo vùng: cho phép chỉnh sửa một vùng của khuôn mặt theo các điểm đặc trưng trên vùng đó. 3.4.1 Chỉnh sửa theo điểm Hình 21. Mô-đun chỉnh sửa khuôn mặt theo từng điểm đặc trưng Mô-đun chỉnh sửa khuôn mặt theo từng điểm cho phép thay đổi tọa độ theo (x, y, z) từng điểm đặc trưng trên khuôn mặt cần tái tạo. Hình 21 ở trên minh họa thành phần này: Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 45  Bước 1: Chọn điểm đặc trưng trên danh sách các điểm đặc trưng (1).  Bước 2: Chỉnh tham số về độ thay đổi tọa độ (increment) bằng cách kéo thanh trượt ở phía dưới (2).  Bước 3: Tùy ý điều chỉnh tọa độ (x, y, z) bằng các nút +x, -x, +y, -y, +z và –z (3). Tọa độ điểm đặc trưng được thay đổi sẽ được cho vào huấn luyện lại mạng RBF và sau khi biến đổi sẽ cho ra mô hình khuôn mặt đích mới. 3.4.2 Chỉnh sửa theo vùng Hệ thống của chúng tôi cho phép chỉnh sửa 5 thành phần của mặt: Mắt, mũi, cằm, tai và miệng. Mô-đun chỉnh sửa khuôn mặt theo vùng được quản lý theo các tab như ở Hình 22. Hình 22. Mô-đun chỉnh sửa khuôn mặt theo vùng Từng đặc điểm của từng vùng được quyết định bằng một số đo nhân trắc học được tổng kết trong [1][2]. Chúng tôi chỉnh sửa đặc điểm của từng vùng bằng cách thay đổi các số đo nhân trắc học đó theo một tỉ lệ nhất định. Để thay đổi các số đo nhân trắc, chúng tôi thay đổi khoảng cách giữa các cặp điểm đặc trưng tương ứng, từ đó một số tọa độ các điểm đặc trưng trên khuôn mặt cần tái tạo thay đổi và chúng tôi truyền lại cho mô-đun biến đổi khuôn mặt để cho ra mô hình khuôn mặt mới. Dưới đây mô tả phương pháp chỉnh sửa một vài đặc điểm trên các vùng có trong hệ thống chúng tôi phát triển. Mắt Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 46 Hình 23. Chỉnh sửa mắt to nhỏ Trên mắt có 8 điểm đặc trưng 𝑃1, 𝑃2, 𝑃3, 𝑃4, 𝑃5, 𝑃6, 𝑃7 và 𝑃8 như ở Hình 23. Giả sử tọa độ trọng tâm của 8 điểm là P. Khi đó để chỉnh sửa mắt to lên hoặc nhỏ đi, chúng tôi co giãn khoảng cách giữa P tới 8 điểm trên. Lúc này điều chỉnh 𝑃𝑖 thành 𝑃′𝑖 với điều kiện: 𝑃𝑃𝑖 ⇈ 𝑃𝑃′𝑖 và 𝑃𝑃𝑖 𝑃𝑃′ 𝑖 =∝ trong đó i = 1→8, ∝ 1 mắt to. Mũi Hình 24. Chỉnh sửa mũi dài ngắn Để chỉnh sửa mũi dài ngắn, chúng tôi dựa vào các điểm đặc trưng 𝑃,𝑃1, 𝑃2 , 𝑃3, Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 47 𝑃4 như trên Hình 24. Chúng tôi điều chỉnh các điểm 𝑃𝑖 thành 𝑃′𝑖 với điều kiện: 𝑃𝑃𝑖 ⇈ 𝑃𝑃′𝑖 và 𝑃𝑃𝑖 𝑃𝑃′ 𝑖 =∝ trong đó i = 1→4, ∝ 1 mũi dài. Hình 25. Chỉnh độ rộng cánh mũi Để chỉnh sửa độ rộng của cánh mũi, chúng tôi dựa vào hai khoảng cách 𝑃1𝑃2 và 𝑃3𝑃4 như trong Hình 25. Chúng tôi điều chỉnh 𝑃1 thành 𝑃′1 và 𝑃2 thành 𝑃′2, với 𝑃1𝑃2 ⇈ 𝑃1𝑃′2 , 𝑃2𝑃1 ⇈ 𝑃2𝑃′1 và 𝑃1𝑃2 𝑃1𝑃′2 = 𝑃2𝑃1 𝑃2𝑃′1 =∝ . 𝑃3 thành 𝑃′3 và 𝑃4 thành 𝑃′4, với 𝑃3𝑃4 ⇈ 𝑃3𝑃′4 , 𝑃4𝑃3 ⇈ 𝑃4𝑃′3 và 𝑃3𝑃4 𝑃3𝑃′4 = 𝑃4𝑃3 𝑃4𝑃′3 =∝ Trong đó ∝ 1 cánh mũi rộng. Miệng Hình 26. Chỉnh sửa miệng nhỏ, rộng Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 48 Dựa vào độ rộng của miệng là khoảng cách giữa 2 mép miệng 𝑃1𝑃2 như ở Hình 26, chúng tôi điều chỉnh 𝑃1 thành 𝑃′1 và 𝑃2 thành 𝑃′2. Với 𝑃1𝑃2 ⇈ 𝑃1𝑃′2 , 𝑃2𝑃1 ⇈ 𝑃2𝑃′1 và 𝑃1𝑃2 𝑃1𝑃′2 = 𝑃2𝑃1 𝑃2𝑃′1 =∝ trong đó ∝ 1 miệng to. Cằm Hình 27. Chỉnh sửa cằm dài, ngắn Để chỉnh sửa cằm dài ngắn, chúng tôi lấy P làm điểm mốc như ở Hình 27, chúng tôi điều chỉnh 𝑃1, 𝑃2, 𝑃3 sao cho 𝑃𝑃𝑖 ⇈ 𝑃𝑃′𝑖 và 𝑃𝑃𝑖 𝑃𝑃′ 𝑖 =∝ trong đó i = 1→3, ∝ < 1 mũi ngắn, ∝ > 1 mũi dài. Tai Hình 28. Chỉnh sửa tai to, nhỏ Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 49 Như trên Hình 28, chúng tôi lấy điểm P làm mốc, điều chỉnh các điểm Pi thành P′i với điều kiện: PPi ⇈ PP′i và PP i PP′ i =∝ trong đó i = 1→5, ∝ 1 tai to. 3.5 Thiết kế hệ thống Hệ thống bao gồm 2 thành phần: Phần điều khiển, hiển thị mô hình khuôn mặt (khuôn mặt nguồn và khuôn mặt đích) và phần điều khiển các thao tác biến đổi mô hình khuôn mặt.  Phần điều khiển, hiển thị mô hình khuôn mặt nguồn và khuôn mặt đích: Các lớp, các thuộc tính, phương thức của lớp và mối quan hệ giữa các lớp được mô tả trong biểu đồ UML ở Hình 29. Hình 29. Biểu đồ UML thể hiện thết kế phần điều khiển, hiển thị khuôn mặt Phần này gồm 8 lớp chính: - CMainFrame: là lớp điều khiển khung hình (frame) chính của hệ thống, trong đó bao gồm 3 khung hình con (lớp CChildFrame). Một số hàm của CDocument CMeshDoc m_Face: MHead* MHead CSFace m_Face: MHead CMeshView GetDoc(): CMeshDoc CView GetDoc(): CDocument* CChildFrame CMainFrame m_wndSFace: CChildFrame* m_wndControl: CChildFrame* m_wndToolbar: Ctoolbar createAChildWindow(): CChildFrame* OnCreate(): int Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 50 lớp như sau: o OnCreate(): Khởi tạo khung hình ban đầu. o createAChildWindow(): khởi tạo khung hình con. - CChildFrame: là lớp điều khiển khung hình con của hệ thống. Có 3 khung hình con là: o Khung hình hiển thị mô hình khuôn mặt nguồn. o Khung hình hiển thị mô hình khuôn mặt đích. o Khung hình hiển thị các thao tác biến đổi. - CDocument: là hiện thân ảo của CMeshDoc. - MHead: là lớp chứa dữ kiện về một mô hình khuôn mặt. Có tọa độ các đỉnh và chỉ số các đỉnh của một tam giác thuộc lưới tam giác biểu diễn lớp da. - CMeshDoc: đây là lớp phân tích dữ liệu để chuyển tới CMeshView. Hàm OnOpenDocument() thực hiện đọc và phân tích dữ liệu. - CView: là lớp có chức năng truyền các dữ liệu của mô hình khuôn mặt tới các thành phần hiển thị của hệ thống. Có 2 lớp con đó là: CSFace và CMeshView. CView có hàm GetDoc() để lấy dữ liệu từ CMeshDoc. - CMeshView: là lớp điều khiển mô hình khuôn mặt đích, dữ liệu lấy từ lớp CMeshDoc. Lớp gọi hàm OnPaint() để hiển thị mô hình khuôn mặt đích. - CSFace: là lớp điều khiển mô hình khuôn mặt nguồn của hệ thống. Lớp này có một thuộc tính là m_Face chứa dữ liệu về khuôn mặt nguồn và gọi hàm OnCreate() để khởi tạo mô hình khuôn mặt nguồn.  Phần điều khiển các thao tác biến đổi mô hình khuôn mặt: Các lớp, thuộc tính, phương thức và mối quan hệ giữa các lớp được mô tả trong biểu đồ UML ở Hình 30. Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 51 Hình 30. Biểu đồ UML thể hiện thiết kế phần điều khiển các thao tác biến đổi mô hình khuôn mặt Phần này bao gồm 6 lớp chính: - CView: như đã mô tả ở phần điều khiển và hiển thị mô hình khuôn mặt. - CFormView: lớp con của CView có chức năng nối kết các thành phần điều khiển như TabBar, ScrollCtrl, … - CDialog: là lớp hệ thống. Có các lớp con: CEyesTab, CEarsTab, CNoseTab, CChinTab, CMouthTab. Các lớp con này chính là các tab để quản lý tính năng chỉnh sửa khuôn mặt. - CTabCtrl: là lớp hệ thống. Có lớp con là CMyTabCtrl. - CMyTabCtrl: là khung quản lý các tab chỉnh sửa khuôn mặt. CTabCtrl CMyTabCtrl m_tabPages[5]: CDialog* m_tabCurrent: int m_nNumberOfPages: int Init(): void SetRectangle(): void CDialog CEyesTab CEarsTab CNoseTab CChinTab CMouthTab CView CFormView CControl m_MyTabCtrl: CMyTabCtrl m_Slider: CSliderCtrl m_verticesList: CListBox DisplayVerticesInfo(): void UpdateListView(): void OnSelChangeListVertices(): void OnButtonMorph(): EventHandle OnButtonAdd: EventHandle OnButtonRemove: EventHandle Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 52 Thuộc tính: o m_TabPages[5]: lưu các tab thông qua lớp hiện hình CDialog của chúng. o m_TabCurrent: Tab hiện hành o m_nNumberOfTabPages: số lượng tab Phương thức: o Init(): khởi tạo khung quản lý và các tab. o SetRectangle(): phân vùng để hiển thị mỗi tab trên khung quản lý - CControl: lớp điều khiển các tính năng trên giao diện thao tác biến đổi. Thuộc tính: o m_MyTabCtrl: thành phần quản lý các tab. o m_Slider: thanh trượt o m_VerticesList: danh sách các điểm đặc trưng. Phương thức: o DisplayVerticesInfo(): hiển thị danh sách các điểm đặc trưng trên khuôn mặt. o OnSelChangeListVertices(): hiển thị vị trí điểm tương ứng trên khuôn mặt nguồn và đích khi ta chọn điểm đặc trưng trong danh sách m_VerticesList. o UpdateListView(): cập nhật lại danh sách các điểm đặc trưng. o OnButtonMorph(): bắt sự kiện ấn nút “Morph” và gọi hàm morphingFace() để biến đổi mô hình khuôn mặt nguồn thành mô hình khuôn mặt đích. o OnButtonAdd(): bắt sự kiện ấn nút “Add” để thêm điểm đặc trưng. o OnButtonRemove(): bắt sự kiện ấn nút “Remove” để bỏ đi điểm đặc trưng. Chương 3. Hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng Nguyễn Đình Tư 53 Hệ thống sau khi phát triển có giao diện như Hình 31: Hình 31. Giao diện của hệ thống tái tạo và chỉnh sửa mô hình khuôn mặt Các thành phần trên giao diện của hệ thống: 1. Danh sách các điểm đặc trưng 2. Tọa độ của điểm đặc trưng hiện đang được chọn trong danh sách, ở Hình 31 ở trên là đỉnh mũi. 3. Các chức năng thêm, xóa và đổi tên điểm đặc trưng 4. Chức năng chỉnh sửa khuôn mặt theo tọa độ của từng điểm đặc trưng 5. Chức năng chỉnh sửa khuôn mặt theo đặc điểm các bộ phận 6. Nút “Morph” để tái tạo khuôn mặt đích 7. Nút “Load” để nạp tọa độ các điểm đặc trưng trên khuôn mặt đích cần tái tạo 8. Mô hình khuôn mặt nguồn. 9. Mô hình hộp sọ cùng các điểm đặc trưng của khuôn mặt đích ứng với hộp sọ. 10. Chức năng lưu lại mô hình khuôn mặt nguồn (“Save Source”), lưu lại mô hình khuôn mặt đích (“Save Target”) và chỉnh lại mô hình khuôn mặt nguồn về ban đầu(“ResetFace”). Chương 4. Thực nghiệm và đánh giá Nguyễn Đình Tư 54 Chƣơng 4 THỰC NGHIỆM VÀ ĐÁNH GIÁ Chúng tôi phát triển hệ thống tái tạo mô hình khuôn mặt từ các điểm đặc trưng trên khuôn mặt bằng ngôn ngữ Microsoft Visual C++ chạy trên nền Microsoft Visual Studio 6.0. Chúng tôi xây dựng cơ sở dữ liệu là các tập điểm đặc trưng của nhiều người khác nhau. Cơ sở dữ liệu này được đưa vào chạy trên hệ thống và cho ra tập các mô hình khuôn mặt được tái tạo. Sau đó chúng tôi sử dụng phương pháp thăm do ý kiến đánh giá bằng cách lập ra các danh mục các vùng trên khuôn mặt và lấy ý kiến đánh giá về độ chính xác của từng vùng đó. 4.1 Các bƣớc tiến hành thực nghiệm Chúng tôi tiến hành các bước như sau:  Bước 1. Xây dựng cơ sở dữ liệu: Chúng tôi xác định 50 điểm đặc trưng trên nửa trái của khuôn mặt, 50 điểm trên nửa bên phải xác định bằng cách lấy đối xứng. Từ đó, chúng tôi xây dựng bộ cơ sở dữ liệu gồm 10 tập tọa độ 50 điểm đặc trưng đó trên nửa trái khuôn mặt của 10 người khác nhau. Chúng tôi sử dụng kĩ thuật xây dựng mô hình ba chiều từ nhiều ảnh hai chiều [22]. Chúng tôi chụp ảnh mặt từng người, mỗi người 2 bức ảnh ở 2 góc khác nhau, sau đó đánh dấu các điểm đặc trưng lên các bức ảnh và dùng công cụ Camera Calibration Toolbox for Matlab, tạm dịch là Công cụ căn chỉnh máy quay cho Matlab [13] để trích xuất ra tọa độ 3 chiều của các điểm đặc trưng.  Bước 2. Chạy hệ thống: Chúng tôi sử dụng 10 tập tọa độ các điểm đặc trưng trên, cho vào hệ thống tái tạo và lưu lại mô hình các khuôn mặt tái tạo được.  Bước 3. Lấy ý kiến đánh giá: Chúng tôi lập ra danh sách đầu mục các vùng trên khuôn mặt. Sau đó, chúng tôi lần lượt hiển thị lại từng khuôn mặt và thu thập đánh giá về độ chính xác theo thang điểm từ 0 đến 10 của từng vùng. Chương 4. Thực nghiệm và đánh giá Nguyễn Đình Tư 55 4.2 Kết quả và đánh giá Hình 32 biểu diễn các điểm đặc trưng và mô hình khuôn mặt nguồn chúng tôi chọn: Hình 32. Các điểm đặc trưng được chọn để thử nghiệm Chúng tôi chọn các vùng: Mắt, mũi, miệng, cằm, lông mày, trán, má và khung viền mặt để lấy nhận xét và đánh giá. Dưới đây là kết quả tái tạo khuôn mặt của một số người: Chương 4. Thực nghiệm và đánh giá Nguyễn Đình Tư 56 Hình 33. Kết quả tái tạo khuôn mặt của người thứ nhất Khuôn mặt của người thứ nhất được tái tạo ở Hình 33 có các đặc điểm và được đánh giá như sau: - Mắt tương đối chính xác về độ mở, độ sâu và viền mắt 8.0 điểm, - Mũi cao, thon, độ dài tương đối chính xác nhưng cánh mũi chưa đủ độ phồng 8.5 điểm, Chương 4. Thực nghiệm và đánh giá Nguyễn Đình Tư 57 - Viền miệng cong, độ mở tương đối chính xác, nhưng miệng hơi rộng 8.0 điểm, - Cằm tạo được độ uốn, nhô ra hợp lý 8.8 điểm, - Lông mày cong dài chính xác 9.0 điểm, - Phần giữa trán lõm hơn 8.0 điểm, - Gò má nhô lên, tạo độ cong tốt 9.0 điểm, - Khung viền mặt khá chính xác so với thực tế 8.0 điểm, Tổng điểm đạt được: 67.3/80. Chúng tôi sử dụng chức năng chỉnh sửa khuôn mặt để điều chỉnh giảm độ rộng của 2 bên cánh mũi để tăng thêm độ phồng cho mũi (Hình 34 từ trái sang phải) và điều chỉnh miệng nhỏ hơn (Hình 35 từ trái sang phải): Hình 34. Điều chỉnh cánh mũi hẹp hơn Hình 35. Điều chỉnh miệng nhỏ hơn Chương 4. Thực nghiệm và đánh giá Nguyễn Đình Tư 58 Hình 36. Kết quả tái tạo khuôn mặt của người thứ hai Người thứ hai là nữ giới cho kết quả là một khuôn mặt tái tạo thon hơn, nữ tính hơn như Hình 36. Các đánh giá và cho điểm như sau: - Mắt to hơn 8.5 điểm, - Cánh mũi chưa tạo được độ phồng và cao hơn 7.0 điểm, Chương 4. Thực nghiệm và đánh giá Nguyễn Đình Tư 59 - Nét miệng tốt, biểu lộ được cả tâm trạng 9.0 điểm, - Cằm có độ chính xác cao về độ cong 9.5 điểm, - Lông mày có độ cong lớn hơn nhiều 7.5 điểm, - Trán thon, nhỏ hơn 7.0 điểm, - Gò má có độ cong tương đối chính xác 8.0 điểm, - Chỗ gấp của xương hàm trên khung viền mặt thon hơn 7.0 điểm. Tổng điểm đạt được: 63.5/80. Do mắt to hơn so với thực tế nên chúng tôi thử tiến hành giảm độ to của mắt bằng chức năng chỉnh sửa khuôn mặt. Hình 37 biểu hiện đôi mắt nhỏ, đồng đều và đẹp hơn (từ trái sang phải). Hình 37. Điều chỉnh cho mắt nhỏ Tất cả các đánh giá trên 10 khuôn mặt của 10 người được tái tạo được chúng tôi tổng hợp lại ở Bảng 3. Chương 4. Thực nghiệm và đánh giá Nguyễn Đình Tư 60 Bảng 3. Bảng đánh giá độ chính xác của các vùng trên khuôn mặt tái tạo được Người STT Mắt Mũi Miệng Cằm Lông mày Trán Má Viền mặt Tổng 1 7.0 9.0 8.8 8.0 9.0 8.5 8.0 8.5 66.8 2 8.0 7.0 9.5 9.0 9.0 8.0 8.0 7.5 66 3 8.0 7.0 9.5 9.0 8.0 8.0 7.0 7.5 64 4 8.0 8.5 8.0 8.8 9.0 8.0 9.0 8.0 67.3 5 8.5 7.0 9.0 9.5 7.5 7.0 8.0 7.0 63.5 6 8.5 7.0 8.0 9.5 8.0 6.5 7.0 7.5 62 7 9.5 9.0 8.5 8.5 9.0 7.5 6.0 7.0 65 8 7.5 8.0 8.5 9.0 9.0 8.0 7.0 7.0 64 9 9.5 8.5 8.0 7.0 8.5 8.5 8.0 8.0 66 10 8.5 7.5 8.0 7.5 8.0 8.5 8.5 8.5 65 Trung bình 8.3 7.85 8.58 8.58 8.5 7.85 7.65 7.65 64.96 Nhận xét và đánh giá: Tổng hợp lại những nhận xét, đánh giá về 10 khuôn mặt, chúng tôi rút ra các ưu điểm vả khuyết điểm sau:  Các ưu điểm:  Viền miệng tương đối chính xác.  Cằm tương đối chính xác.  Lông mày tạo vòng cung và có độ dài chính xác.  Mắt tương đối chính xác.  Tuy nhiên, tồn tại các hạn chế sau:  Khoảng cách đầu mũi và cánh khác, cánh mũi phồng nhiều hơn.  Trán phẳng hơn.  Má to, đầy hơn.  Viền mặt to hơn. Chương 4. Thực nghiệm và đánh giá Nguyễn Đình Tư 61 Qua đó, chúng tôi rút ra kết luận là vùng miệng, cằm, lông mày, mắt và mũi đạt độ chính xác khá tốt do các vùng này phần miền rõ ràng và có nhiều điểm đặc trưng bao quanh viền của chúng. Phần viền mặt do chưa có nhiều điểm đặc trưng trên đó nên đạt độ chính xác chưa cao. Điểm trung bình mà chương trình đạt được là 64.96/80. Đây là một kết quả khả quan làm nền tảng để chúng tôi phát triển hệ thống tốt hơn nữa. Chương 5. Tổng kết Nguyễn Đình Tư 62 Chƣơng 5 TỔNG KẾT Qua thời gian nghiên cứu về bài toán tái tạo mô hình khuôn mặt người, chúng tôi đã nắm được các phương pháp, kĩ thuật tái tạo khuôn mặt cùng với một số kiến thức về giải phẫu học khuôn mặt người. Qua đó, chúng tôi phát triển một hệ thống tái tạo mô hình khuôn mặt trong không gian ba chiều từ các điểm đặc trưng với ba mô-đun chính: Mô-đun chuẩn hóa dữ liệu, mô-đun biến đổi khuôn mặt và mô-đun chỉnh sửa khuôn mặt. Mô-đun chuẩn hóa có nhiệm vụ chuẩn hóa tập điểm đặc trưng đầu vào thông qua các phép quay, phép tịnh tiến và phép tỉ lệ trong không gian ba chiều. Mô- đun biến đổi sử dụng các mạng RBF được huấn luyện bằng tập điểm đặc trưng đã được chuẩn hóa và tập điểm đặc trưng trên khuôn mặt nguồn, từ đó biến đổi khuôn mặt nguồn thành khuôn mặt đích. Mô-đun chỉnh sửa hoàn thiện hơn những điểm chưa hợp lý trên khuôn mặt đích theo từng điểm đặc trưng hoặc từng vùng để được khuôn mặt đích cuối cùng. Hệ thống đã được thử nghiệm trên dữ liệu được tạo từ ảnh của những khuôn mặt thật và đạt được một kết quả khả quan là 80%. Các kết quả đạt được đối với vùng mắt, mũi, miệng, lông mày và cằm là tốt trong khi kết quả đạt được cho phần viền mặt là chưa cao. Bên cạnh đó, chúng tôi đã xây dựng được một quy trình tạo cơ sở dữ liệu trong mô-đun chuẩn hóa dữ liệu để thẩm định, đánh giá hệ thống và có thể phục vụ cho các nghiên cứu khác có cùng đối tượng nghiên cứu. Trong tương lai chúng tôi sẽ phát triển hệ thống hoàn thiện hơn. Đầu vào không chỉ dừng ở mức là có sẵn các điểm đặc trưng mà có thể là một mô hình hộp sọ và hệ thống sẽ tự động phát hiện các điểm đặc trưng trên khuôn mặt ứng với hộp sọ này. Ở mô-đun chỉnh sửa khuôn mặt, chúng tôi sẽ thử nghiệm nhiều dữ liệu hơn và xây dựng thêm chức năng chỉnh sửa cho nhiều vùng hơn nữa. Tài liệu tham khảo Nguyễn Đình Tư 63 TÀI LIỆU THAM KHẢO Tài liệu tham khảo tiếng Việt: [1] Nguyễn Trọng Toàn, Đặc điểm về mắt, mũi, lông mày và tóc người Việt Nam. Báo cáo đề tài KC.01.16/06-10, 2009. [2] Nguyễn Trọng Toàn, Đặc điểm môi, miệng và tai người Việt Nam. Báo cáo KC.01.17/06-10, 2009. [3] Nguyễn Trọng Toàn, Tương quan giữa xương sọ mặt (phần cứng) và mô mềm xung quanh (phần mềm) của con người. Báo cáo đề tài KC.01.17/06-10, 2009, trang 4-5. [4] Nguyễn Trọng Toàn, Tương quan giữa xương sọ mặt và các bộ phận trên mặt như mắt, mũi và lông mày của người Châu Âu đã được sử dụng trong việc khôi phục mặt người, Báo cáo đề tài KC.01.16/06-10, 2009, trang 2-5. [5] Nguyễn Trọng Toàn, Đặc điểm nhân trắc, độ dày mô mềm và số đo hộp sọ của nhiều dân tộc, Báo cáo đề tài KC.01.16/06-10, 2009, trang 10. Tài liệu tham khảo tiếng Anh: [6] Anderson B., Martin Valfridson, Digital 3D facial reconstruction based on computed tomography, Master Thesis, Norrköping, 2005. [7] Ahlberg, J. CANDIDE-3 -- an updated parameterized face, Report No. LiTH- ISY-R-2326, Dept. of Electrical Engineering, Linköping University, Sweden, 2001. [8] Berar M., Michel Desvignes, Gerard Bailly and Yohan Payan, 3D semi landmarks-based statistical face reconstruction, Journal of computing and Information technology, 14 (1) , 2006, pages 31-43. [9] Bui, T. P. Illumination for computer generated pictures. Communications of the ACM, 1975. [10] Bui .T.D., M. Poel, D. Heylen & A. Nijholt, Automatic face morphing for transferring facial animation, In: Proceedings 6th IASTED International Conference on Computers, Graphics, and Imaging (CGIM 2003), Honolulu, Tài liệu tham khảo Nguyễn Đình Tư 64 Hawai, USA, August 13-16, 2003, ACTA Press, Anaheim/Calgary/Zurich, ISBN 0-88986-376-8, pages 19-24. [11] Bui .T.D., D. Heylen, M. Poel & A. Nijholt, Exporting vector muscles for facial animation, In: Proceedings International Symposium on Smart Graphics 2003, A. Butz, A. Krüger & P. Olivier (eds.), Heidelberg, Lecture Notes in Computer Science, Springer, Berlin, 2003. [12] Buzug T. M., Prüfer Klaus, Bongartz Jens(eds), Reconstruction of Soft Facial Parts (RSFP2005), Book of Abstracts, Publ: Remagen, 2005. [13] [14] Eck M., Interpolation Methods for Reconstruction of 3D Surfaces from Sequences of Planar Slices, CAD und Computergraphik, Vol. 13, No. 5, Feb. 1991, pages 109 – 120. [15] Golub G.H., M. Heath, G. Wahba. Generalized Cross- validation as a Method for Choosing a Good Ridge Parameter, Technometrics, 21(2), 1979, pages 215-223. [16] Gouraud, H. Computer display of curved surfaces. PhD thesis, Dept. of Electrical Engineering, University of Utah, 1971. [17] [18] Kahler K., Jorg Haber, Hans-Peter Seidel, Geometry-based Muscle Modeling for Facial Animation, 2001. [19] Kahler K., Jörg Haber, Hans-Peter Seidel (2003), Reanimating the Dead: Reconstruction of Expressive Faces from Skull Data, ACM Transactions on Graphics (Siggraph 2003), 22(3), July 2003. [20] Krogman W. M. The Reconstruction of the Living Head From the Skull, FBI Law Enforcement Bull 15 (7), 1946, pages 11–18. [21] Lee, Y., Terzopoulos, D., and Waters, K. Realistic face modeling for animation. In Cook, R., editor, SIGGRAPH 95 Conference Proceedings, Annual Conference Series, 1995, pages 55-62. [22] Ma .T.C, B.T. Duy, A process of building 3D models from images, VNU Journal of Science, 2007. [23] Mahl, R. Visible surface algorithm for quadric patches. IEEE Transactions on Computers, 1972, pages 1-4. [24] Moubaraki, L., Ohya, J., and Kishino, F, Realistic 3d facial animation in virtual space teleconferencing. In 4th IEEE International workshop on Robot and Human Communication, 1995. [25] Noh J., Ulrich Neumann, Expression Cloning, ACM SIGGRAPH 2001, pages 2- Tài liệu tham khảo Nguyễn Đình Tư 65 4. [26] Parker, F. I. Computer generated animation of faces. Master's thesis,Dept. of Electrical Engineering, Division of Computer Science, University of Utah, 1972. [27] Pearson K. On the skull and portraits of Georg Buchanan, Biometrica, 1926, pages 233-256. [28] Quatrehomme G., S. Cotin, G. Subsol, H. Delingette, Y. Garidel, G. Grevin, M. Fidrich, P. Bailet, A. Ollier, A fully three-dimensional method for facial reconstruction based on deformable models, Journal of Forensic Science 42 (1997) pages 649–652. [29] Reeves, W. T. In State of the Art in Facial Animation: SIGGRAPH 1990 Course Notes #26, 1990, pages 88-106. 17th International Conference on Computer Graphics and Interactive Techniques. [30] Rhine, J. S. and Campbell, H. R. Thickness of facial tissues in American Blacks, Journal of Forensic Sciences (1980) 25: pages 847-858. [31] Rydfalk, M. Candide, a parameterized face. Technical Report Report No. LiTH- ISY-I-866, Dept. of Electrical Engineering, Linkping University, Sweden, 1987. [32] Terzopoulos T. and K. Waters. Physically-based facial modeling, analysis, and animation. Journal of Visualization and Computer Animation, 1990, pages 73– 80. [33] Verze L., History of facial reconstruction, Forensic Science International, 2009, pages 8. [34] Welsh, B. Model-Based Coding of Images, PhD dissertation, British Telecom Research Lab, Jan. 1991. [35] Weiss, R. Be vision, a package of ibm 7090 fortran programs to draworthographic views of combinations of plane and quadric surfaces. JACM, 1966, pages 194-204. [36] Waite, C. T. The Facial Action Control Editor, Face: A Parametric Facial Expression Editor for Computer Generated Animation. Massachusetts Institute of Technology, Media Arts and Sciences, Cambridge, Febuary 1989.

Các file đính kèm theo tài liệu này:

  • pdfLUẬN VĂN-TÁI TẠO MÔ HÌNH KHUÔN MẶT TỪ CÁC ĐIỂM ĐẶC TRƯNG.pdf