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.
72 trang |
Chia sẻ: lylyngoc | Lượt xem: 2773 | Lượt tải: 1
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:
- LUẬN VĂN-TÁI TẠO MÔ HÌNH KHUÔN MẶT TỪ CÁC ĐIỂM ĐẶC TRƯNG.pdf