Thiết kế hệ thống

Một phần của tài liệu tái tạo mô hình khuôn mặt từ các điểm đặc trưng (Trang 56)

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

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

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.

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

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.

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”).

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.

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á.

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,

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 34từ trái sang phải) và điều chỉnh miệng nhỏ hơn (Hình 35từ 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

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,

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 37biể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.

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.

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.

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.

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,

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] http://www.vision.caltech.edu/bouguetj/calib_doc/

[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] http://linc.iut.univ-paris8.fr/greta/

[18] Kahler K., Jorg Haber, Hans-Peter Seidel, Geometry-based Muscle Modeling for

Một phần của tài liệu tái tạo mô hình khuôn mặt từ các điểm đặc trưng (Trang 56)

Tải bản đầy đủ (PDF)

(72 trang)