LUẬN VĂN:TÁI TẠO MÔ HÌNH KHUÔN MẶT TỪ CÁC ĐIỂM ĐẶC TRƯNG

3,283
262
72
Chương 3. Hệ thng tái to mô hình khuôn mt 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:
Mt khi các ẩn đã được tính ra, mng RBF nội suy đẹp trên tt c các điểm còn
li và biến mô hình khuôn mt gc thành mô hình khuôn mặt đích. Lúc này h thng
dùng ba mng RBF vi các h s ẩn đã tính được để biến tt c các tọa độ của đỉnh
trên khuôn mt gc thành một đỉnh có tọa độ mi, các tam giác kết nối các đỉnh vn
gi nguyên như vậy, ta s có được mô hình khuôn mặt đích, hay là khuôn mặt cn tái
to.
3.4 Chỉnh sửa khuôn mặt
hình khuôn mặt sau khi được tái to bng cách biến đổi khuôn mt ngun
bng các mng RBF bước trên có th còn nhng đặc điểm trên khuôn mt còn chưa
hợp lý, do đó chúng tôi phát triển thêm -đun chnh sa khuôn mặt để cho ra mt
khuôn mt tốt hơn. Thành phn chnh sa gm -đun:
Chnh sa theo điểm: cho phép chnh sa tọa độ từng điểm đặc trưng trên
khuôn mt.
Chnh sa theo vùng: cho phép chnh sa mt vùng ca khuôn mt theo các
điểm đặc trưng trên vùng đó.
3.4.1 Chnh sa theo đim
Hình 21. Mô-đun chnh sa khuôn mt theo từng điểm đặc trưng
-đun chnh sa khuôn mt 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 cn tái to. Hình 21 trên minh ha thành phn
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ư 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ệ thng tái to mô hình khuôn mt t các điểm đặc trưng Nguyễn Đình Tư
45
c 1: Chọn điểm đặc trưng trên danh sách các điểm đặc trưng (1).
c 2: Chnh tham s v độ thay đi tọa độ (increment) bng cách kéo
thanh trưt phía dưới (2).
ớc 3: Tùy ý điều chnh ta đ (x, y, z) bng 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 hun luyn li mng RBF
sau khi biến đổi s cho ra mô hình khuôn mặt đích mới.
3.4.2 Chnh sa theo vùng
H thng ca chúng tôi cho phép chnh sa 5 thành phn ca mt: Mắt, mũi,
cm, tai và ming. -đun chnh sa khuôn mặt theo vùng được qun lý theo các tab
như ở Hình 22.
Hình 22. Mô-đun chnh sa khuôn mt theo vùng
Từng đặc điểm ca từng vùng đưc quyết định bng mt s đo nhân trắc hc
được tng kết trong [1][2]. Chúng tôi chnh sửa đặc điểm ca tng vùng bng cách
thay đổi các s đo nhân trắc hc đó theo một t l nhất định. Để thay đổi các s đo
nhân trc, chúng tôi thay đổi khong cách gia các cp điểm đặc trưng tương ng, t
đó mt s tọa độ các điểm đặc trưng trên khuôn mặt cn tái tạo thay đổi và chúng tôi
truyn li cho mô-đun biến đổi khuôn mặt để cho ra hình khuôn mt mi. i
đây t phương pháp chnh sa mt vài đặc điểm trên các vùng có trong h thng
chúng tôi phát trin.
Mt
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ệ thng tái to mô hình khuôn mt t các điểm đặc trưng Nguyễn Đình Tư
46
Hình 23. Chnh sa mt to nh
Trên mắt có 8 điểm đặc trưng
1
,
2
,
3
,
4
,
5
,
6
,
7
8
như ở Hình 23.
Gi s tọa độ trng tâm của 8 điểm là P. Khi đó để chnh sa mt to lên hoc nh đi,
chúng tôi co giãn khong cách gia P tới 8 điểm trên. Lúc này điều chnh
thành 
với điều kin: 
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍

󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍

󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍

󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
= trong đó i = 1→8, < 1 mt nh, > 1
mt to.
Mũi
Hình 24. Chnh sửa mũi dài ngắn
Để chnh sa mũi dài ngn, 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ư 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 nhỏ,  > 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ệ thng tái to mô hình khuôn mt 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 chnh các điểm
thành 
với điều kin:

󰇍
󰇍
󰇍
󰇍
󰇍
󰇍

󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍

󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍

󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
= trong đó i = 1→4, < 1 mũi ngắn, > 1 mũi dài.
Hình 25. Chỉnh độ rộng cánh mũi
Để chnh sửa độ rng của cánh mũi, chúng tôi dựa vào hai khong cách
1
2
3
4
như trong Hình 25. Chúng tôi điều chnh
1
thành 
1
2
thành 
2
, vi
1
2
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
1

2
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
,
2
1
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
2

1
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍

1
2
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍

1

2
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
=

2
1
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍

2

1
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
= .
3
thành 
3
4
thành 
4
,
vi
3
4
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
3

4
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
,
4
3
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
4

3
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍

3
4
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍

3

4
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
=

4
3
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍

4

3
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
=
Trong đó < 1 cánh mũi hẹp, > 1 cánh mũi rộng.
Ming
Hình 26. Chnh sa ming nh, rng
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 ngắn,  > 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 hẹp,  > 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ệ thng tái to mô hình khuôn mt t các điểm đặc trưng Nguyễn Đình Tư
48
Dựa vào độ rng ca ming là khong cách gia 2 mép ming
1
2
như ở Hình
26, chúng tôi điều chnh
1
thành 
1
2
thành 
2
. Vi
1
2
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
1

2
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
,
2
1
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
2

1
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍

1
2
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍

1

2
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
=

2
1
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍

2

1
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
= trong đó < 1 ming nh, > 1 ming to.
Cm
Hình 27. Chnh sa cm dài, ngn
Để chnh sa cm dài ngn, chúng tôi lấy P làm điểm mốc như ở Hình 27, chúng
tôi điều chnh
1
,
2
,
3
sao cho 
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍

󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍

󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍

󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
= trong đó i = 1→3, < 1
mũi ngắn, > 1 mũi dài.
Tai
Hình 28. Chnh sa 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ư 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 nhỏ,  > 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ệ thng tái to mô hình khuôn mt 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 P
i
thành

i
với điều kin: PP
i
󰇍
󰇍
󰇍
󰇍
󰇍
P
i
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
PP
i
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
P
i
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
󰇍
= trong đó i = 1→5, < 1 tai nh, > 1
tai to.
3.5 Thiết kế hệ thống
H thng bao gm 2 thành phn: Phn điều khin, hin th mô hình khuôn mt
(khuôn mt ngun khuôn mặt đích) phần điều khin các thao tác biến đổi mô
hình khuôn mt.
Phn điu khin, hin th mô hình khuôn mt ngun khuôn mặt đích: Các
lp, các thuộc tính, phương thc ca lp và mi quan h gia các lp được mô
t trong biểu đồ UML Hình 29.
Hình 29. Biểu đồ UML th hin thết kế phn điều khin, hin th khuôn mt
Phn này gm 8 lp chính:
- CMainFrame: lớp điều khin khung hình (frame) chính ca h thng,
trong đó bao gồm 3 khung hình con (lp CChildFrame). Mt s hàm ca
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ư 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 P i thành  i với điều kiện: PP i 󰇍 󰇍 󰇍 󰇍 󰇍  P i 󰇍 󰇍 󰇍 󰇍 󰇍 󰇍 󰇍  và PP i 󰇍 󰇍 󰇍 󰇍 󰇍 󰇍 󰇍   P i 󰇍 󰇍 󰇍 󰇍 󰇍 󰇍 󰇍 󰇍 󰇍   = trong đó i = 1→5,  < 1 tai nhỏ,  > 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ệ thng tái to mô hình khuôn mt t các điểm đặc trưng Nguyễn Đình Tư
50
lớp như sau:
o OnCreate(): Khi tạo khung hình ban đầu.
o createAChildWindow(): khi to khung hình con.
- CChildFrame: là lớp điều khin khung hình con ca h thng. Có 3 khung
hình con là:
o Khung hình hin th mô hình khuôn mt ngun.
o Khung hình hin th mô hình khuôn mặt đích.
o Khung hình hin th các thao tác biến đổi.
- CDocument: hin thân o ca CMeshDoc.
- MHead: lp cha d kin v mt hình khuôn mt. tọa độ các
đỉnh và ch s các đỉnh ca mt tam giác thuộc lưi tam giác biu din lp
da.
- CMeshDoc: đây là lớp phân tích d liệu để chuyn ti CMeshView. Hàm
OnOpenDocument() thc hiện đọc và phân tích d liu.
- CView: lp có chức năng truyền các d liu ca mô hình khuôn mt ti
các thành phn hin th ca h thng. 2 lớp con đó là: CSFace
CMeshView. CView có hàm GetDoc() để ly d liu t CMeshDoc.
- CMeshView: là lớp điều khin mô hình khuôn mặt đích, dữ liu ly t lp
CMeshDoc. Lp gi hàm OnPaint() để hin th mô hình khuôn mặt đích.
- CSFace: lớp điều khin hình khuôn mt ngun ca h thng. Lp
này có mt thuc tính m_Face cha d liu v khuôn mt ngun gi
hàm OnCreate() để khi to mô hình khuôn mt ngun.
Phần điều khin các thao tác biến đổi mô hình khuôn mt: Các lp, thuc tính,
phương thức và mi quan h gia các lp đư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ư 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ệ thng tái to mô hình khuôn mt t các điểm đặc trưng Nguyễn Đình Tư
51
Hình 30. Biểu đồ UML th hin thiết kế phần điều khin các thao tác biến đổi mô hình
khuôn mt
Phn này bao gm 6 lp chính:
- CView: như đã mô tả phần điều khin và hin th mô hình khuôn mt.
- CFormView: lp con ca CView chức năng nối kết các thành phần điều
khiển như TabBar, ScrollCtrl, …
- CDialog: lp h thng. các lp 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
chnh sa khuôn mt.
- CTabCtrl: là lp h thng. Có lp con là CMyTabCtrl.
- CMyTabCtrl: là khung qun lý các tab chnh sa khuôn mt.
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ư 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ệ thng tái to mô hình khuôn mt t các điểm đặc trưng Nguyễn Đình Tư
52
Thuc tính:
o m_TabPages[5]: lưu các tab thông qua lớp hin hình CDialog ca chúng.
o m_TabCurrent: Tab hin hành
o m_nNumberOfTabPages: s ng tab
Phương thức:
o Init(): khi to khung qun lý và các tab.
o SetRectangle(): phân vùng để hin th mi tab trên khung qun lý
- CControl: lớp điều khin các tính năng trên giao din thao tác biến đổi.
Thuc tính:
o m_MyTabCtrl: thành phn qun 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(): hin th danh sách các điểm đặc trưng trên khuôn
mt.
o OnSelChangeListVertices(): hin th v trí điểm tương ng trên khuôn mt
nguồn và đích khi ta chọn điểm đặc trưng trong danh sách m_VerticesList.
o UpdateListView(): cp nht lại danh sách các điểm đặc trưng.
o OnButtonMorph(): bt s kin ấn nút “Morph” và gọi hàm morphingFace()
để biến đổi mô hình khuôn mt ngun thành mô hình khuôn mặt đích.
o OnButtonAdd(): bt s kin ấn nút “Add” để thêm điểm đặc trưng.
o OnButtonRemove(): bt s kin ấ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ư 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ệ thng tái to mô hình khuôn mt t các điểm đặc trưng Nguyễn Đình Tư
53
H thng sau khi phát trin có giao diện như Hình 31:
Hình 31. Giao din ca h thng tái to và chnh sa mô hình khuôn mt
Các thành phn trên giao din ca h thng:
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 chn trong danh sách, Hình 31
trên là đỉnh mũi.
3. Các chc năng thêm, xóa và đổi tên điểm đặc trưng
4. Chc năng chnh sa khuôn mt theo tọa độ ca từng điểm đặc trưng
5. Chc năng chnh sa khuôn mặt theo đặc điểm các b phn
6. Nút “Morph” đ tái to khuôn mặt đích
7. Nút “Load” đ np tọa độ các điểm đặc trưng trên khuôn mặt đích cần tái to
8. Mô hình khuôn mt ngun.
9. hình hp s cùng các điểm đặc trưng của khuôn mặt đích ứng vi hp s.
10. Chức năng lưu lại mô hình khuôn mt nguồn (“Save Source”), lưu lại mô hình
khuôn mặt đích (“Save Target”) và chỉnh li mô hình khuôn mt ngun v ban
đầu(“ResetFace”).
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”).