Đồng thời, chúng tôi cũng nghiên cứu phương pháp hoán đổi khuôn mặt bằng cách phát hiện các điểm đặc trưng với Dlib và OpenCV, nhằm hỗ trợ quá trình biến đồi độ tuổi của khuôn mặt trong
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HỌC CÔNG NGHỆ THONG TIN
KHOA HE THONG THONG TIN
Ta Quang Huy — 19520113
Lê Thị Hồng Cúc — 19521295
KHÓA LUẬN TÓT NGHIỆP
ÁP DỤNG TONG HỢP CHUYEN DOI ĐỘ TUOI KHUÔN
MẶT VÀO CÔNG NGHỆ LÀM PHIM
APPLY FACE AGE TRANSFORMATION SYNTHESIS TO
FILMMAKING TECHNOLOGY
KY SU NGANH HE THONG THONG TIN (CLC)
GIANG VIEN HUONG DAN
TS Nguyén Thanh Binh
TP HO CHÍ MINH, 2023
Trang 2thiện được khóa luận của mình.
Cuối cùng, chúng em cũng muốn gửi lời cảm ơn đến những người bạn và các đồng nghiệp trong công ty, những người đã luôn sẵn sàng chia sẻ kiến thức và kinh nghiệm, hỗ trợ chúng em trong việc tìm kiếm tài liệu và cung cấp thông tin hữu ích cho khóa luận, giúp chúng em có thêm động lực để hoàn thành khóa luận tốt nghiệp
Trang 3MỤC LỤC
TOM wyv0‹ 000090 1
Chương 1 GIỚI THIỆU VA MO TA DE TÀI ¿2++2c+szstrrseccee 2 1.1 Đặt vấn đề oes eecceecccecssseessssesssseessseecsssessssecssssessseessssessssesssseessssessssesssseessssecesseees 2 1.2 Mục tiêu đề tài cccccccc HH He 3 1.3 Phạm vi, đối tượng đề tài 22+¿-222+222222112222111 22111 E1 cerrrree 4 1.3.1 Đối tượng nghiên cứu -22+++222+++t222EE2EEEEEEcEEEEkrrrrrrrrerrrei 4 1.3.2 Phạm Vi để tài cookie 4
1.4 Nội dung và phương pháp thực hiện - ¿5-5-5 S+Ssxsketeterkrrkere 4
1.5 Cấu trúc khóa luận c cccccc+e+i+EEEEEEEEEEEEEEiiiiiiiirrrirrrrrrrrrrrriiiie 6 Chương 2 CƠ SỞ LÝ THUYÉTT ¿ 2222+2+22222EEEEEE+ttttEEEEEEvrrrrrrrrrrrrrree 7 2.1 Tổng quan về sự lão hóa khuôn mặt của con người -. - 2 8
2.2 Cac phương pháp nhận diện khuôn mặt - + ¿555 +52 5+5<++ 9 2.2.1 Thuật toán Haar Cascade ¿52+ 3 ‡vEvxexeevrrerrserrsrrrrsrrrrerre 9
2.2.2 Thuật toán HOG 5+: tt tre 1
2.2.3 Single Shot IDet€CfOT- 5c 1 S1 1 2112121811101 01 tr 1
2.2.4 Multi-task Cascaded Convolutional Networks (MTCNN)) 2
2.3 Các phương pháp chuyền đổi độ tuổi khuôn mặt -+ 4 2.3.1 Các phương pháp truyền thống - -.-¿-:+-2222vcvccrrsrrrrrvreerrrrrrer 4
2.3.2 Các phương pháp dựa trên học sâu «c6 St sseekexrkrrkrer 5
2.4 Các phương pháp hoán đổi khuôn mặt . -¿©zz+22z+z+r# 9
2.4.1 DeepFakeLab + 2H H112 0 10110000012 re 9
2.4.2 DeepFaceLive + TH HH1”, 01001112 rey 20
2.4.3 Phương pháp phát hiện các điểm đặc trưng -:-c-5scc+ 21
Trang 4Chương 3 THỰC NGHIỆM VÀ ĐÁNH GIÁ -: -cvccc+z+ccccvvsee 23
3.1 Thực nghiệm các mô hình chuyền đổi độ tuổi khuôn mặt
3.1.1 Lựa chọn phương pháp chuyền đồi độ tuổi khuôn mặt - 23 3.1.2 Chuan bị nguồn dữ liệu
3.1.3 Huấn luyện mô hình L„A'TS - 2: 2¿2+2++++222++z++222x+erzrrxscee 24 3.1.4 Huấn luyện mô hình SAM
3.2 Thực nghiệm hoán đổi khuôn mặt bằng phương pháp phát hiện các điểm đặc
trưng với Dlib và Open V ‹- khoe Do)
3.3 Kết quả thực nghiệm 38 3.3.1 Chuyển đổi độ tuổi khuôn mặt -c¿z+vcsscseccssccsrressc-rr 38 3.3.2 Chuyên đồi khuôn mặt bằng OpenCV và Dlib
3.4 Đánh giá kết quả -: 222222222232222231122222111 2.22111122121111 cEkerreeg 4I
3.4.1 So sánh và đánh giá mô hình SAM và LA TS ¿-¿- - -=+<+++ 41
3.4.2 Đánh giá mô hình hoán đổi khuôn mat eccccssssseeesscccessssseeseccesssneeseeee 43 Chương 4 XÂY DỰNG VÀ TRIEN KHAI HE THÓNG - 45 4.1 Yêu cầu chức năng -©222222E+++222E21112222111122211121271112 22211 cerrkkv 45 4.2 Kiến trúc hệ thống 2¿-©+2++222E+++t22213112227111122711112271112 22211 ccrrkkv 46 4.3 in ẽ ẽ.ẽ 3134 48
4.3.1 Danh sách CA aC(OF ¿+ + tk St St SE TH HH ngư 48
4.3.2 Danh sách các US€ CaS€ St St HH 49
4.4 Đặc tả USC CAS€ TH TT HH HT TH TH TT Tàn nh Tàn như 50
4.4.1 Chức năng chuyên đổi độ tuổi khuôn mặt bằng hình ảnh 50 4.4.2 Chức năng chuyển đồi độ tuổi khuôn mặt bằng video 53 4.5 Thiết kế giao điện - 222-222 1222222112222111121211110.1011212201112 11x cerre 56
Trang 54.5.1 Chức năng chuyển đồi độ tuổi khuôn mặt bằng hình ảnh 56 4.5.2 Chức năng chuyển đổi độ tuổi khuôn mặt bằng video
4.6 Triển khai hệ thống lên Google Cloud Platform (GCP) : 60 4.6.1 Điều kiện tiên quyết
4.6.2 Quá trình triển khai Cloud Storage -.¿-cc+22vscrecvvseecrl 60 4.6.3 Quá trình triển khai Front-end
4.6.4 Quá trình triển khai Back-end -s 2sc+22x+22EEEE2EEEttEExerrrrerrrreerree 70 4.6.5 Quá trình triển khai Age Synthesis Services
Chương 5 KET LUẬN VÀ HƯỚNG PHÁT TRIÊN -. :¿ :ss+ 71
5.1 Kết luận 8 xuan ờớšổš << 71 5.2 Hướng phát triỂn -. ::¿-©22E2++2+++22222E2121E2222221111 211 ri 71 TÀI LIEU THAM KHẢO 222.2222222 22222222222211222211122221121222111 22212 xe 80
Trang 6DANH MỤC HÌNH
Hình 1.1: Ví dụ minh họa về áp dụng tổng hợp chuyên đổi độ tuổi vào công nghệ làm
Dù 2
Hình 2.1: Quy trình biến đổi độ tuổi khuôn mặt nhân vat trong video 7
Hình 2.2: Quá trình lão hóa khuôn mặt của nhà vật ly hoc Albert Einstein [30] 8 Hình 2.3: Phân loại các thuật toán Deepfake [19] ++- + 2 =<+++++zxecscxe 9
Hình 2.4: Các hình chữ nhật trong Haar Cascade [ [ Ï ] - - ¿+ +<+c+c+x+x++ 10
Hình 2.5: Quá trình hoạt động của Haar Cascade [23], [ I] . +-«-+ 10
Hình 2.6: Pipeline của mạng MTCNN [15]
Hình 2.7: Các nhóm phương pháp nghiên cứu hiện nay [17] 14
Hình 2.8: Ví du minh hoạ cho nhóm phương pháp dựa trên bản dịch [17] „15
Hình 2.9: Ví dụ minh hoạ cho nhóm phương pháp dựa trên trình tự [17] 16
Hình 2.10: So sánh GAN và CGAN [21] -:-c c-cccccccscccrerrrrererrrrerrree 17
Hình 2.11: Ứng dụng DeepFacelLIVe -.- ¿+ ss s2 re 20
Hình 3.1: Bộ dữ liệu FFHQ (Flickr-Faces-HQ) [7] - «55+ c<+cec+xexe+ 24
Hình 3.2: Tổng quan về mô hình Lifespan Age Transformation Synthesis [24] 25 Hình 3.3: Clone mã nguồn LATS sử dụng Git :¿¿©22c+2225+zz+ccsscez 26 Hình 3.4: Kết quả cài đặt GPU có cài đặt CUDA thành công - 26
Hình 3.5: Cài đặt các python package + + 2ttxererkerrrrerrrrrkerrkrree 27
Hình 3.6: Cấu hình run_ SCTIDtS/train.afL s6 St ưu 27 Hình 3.7: Kiến trúc mô hình SAM |) Q2 S22 x2 S re erruyc 28
Hình 3.8: Cài đặt Ubuntu WS 5c cc+2tsrtrterererrerrrrerrerrrrerirrrrer 30
Hình 3.9: Màn hình truy cập vào WSL thành công - -+5+©++5<> 30
Hình 3.10: Sử dụng lệnh “conda create” để tạo môi †TƯỜNG «sec 31
Hình 3.11: Các dat các phụ thuộc, package cho môi trường ảo -: 31
Hình 3.12: Định nghĩa đường dẫn cho dữ liệu và mô hình -. ¿ 32 Hình 3.13: Đọc hình ảnh khuôn mặt và ảnh cần chuyền đổi khuôn mặt 33 Hình 3.14: Các bước xử lý hình ảnh đầu vào :¿©2vz++2ccvvrrerrvsrrerrr 34 Hình 3.15: Vẽ đường viền xung quanh khuôn mặt (1) -¿ - -«++++++++ 34
Trang 7Hình 3.16: Tạo các hình tam giác từ các điểm mốc trên khuôn mặt - 35
Hình 3.17: Vẽ đường viền xung quanh khuôn mặt (2) :-c - 35
Hình 3.18: Chuyển đổi khuôn mặt đầu tiên để phù hợp với khuôn mặt thứ hai 36
Hình 3.19: Thay thế khuôn mặt -2 2222ES++++EEES++ttEESEEvettrrvrrrrrrrrrrrrr 36 Hình 3.20: Hợp nhất ranh giới của khuôn mặt với phan thân mới 37
Hình 3.21: Một số kết quả thực nghiệm trên mô hình LATS - 38
Hình 3.22: Một số kết quả thực nghiệm trên mô hình SAM -:- 38
Hình 3.23: Kết quả thực nghiệm chuyển đồi khuôn mặt ( I) - - 39
Hình 3.24: Kết quả thực nghiệm chuyền đổi khuôn mặt (2) 3Ø Hình 3.25: Kết quả thực nghiệm chuyền đổi khuôn mặt (3) - 40
Hình 3.26: Kết quả thực nghiệm chuyển đổi khuôn mặt (4) - sec 40 Hình 3.27: Kết quả thực nghiệm chuyền đồi khuôn mặt (5) - 41
Hình 4.1: Kiến trúc hệ thống chuyền đổi độ tuổi khuôn mặt Hình 4.2: Sơ dé use case hệ thống chuyên đồi độ tuổi khuôn mat Hình 4.3: Sơ dé Activity chức năng chuyền đổi độ tuổi khuôn mặt bằng hình ảnh 5I Hình 4.4: Sơ đồ Sequence chức năng chuyền đổi độ tuổi khuôn mặt bằng hình ảnh Hình 4.5: Sơ đồ Activity chức năng chuyền đồi độ tuổi khuôn mặt bằng video 54
Hình 4.6: Sơ đồ Sequence chức năng chuyền đổi độ tuổi bằng video 55
Hình 4.7: Giao diện chức năng chuyền đổi độ tuổi khuôn mặt bằng hình ảnh 56
Hình 4.8: Giao diện bước 1 — Nhập và preview video -c-ccccrcercvex 57 Hình 4.9: Giao diện bước 2 — Tạo khuôn mặt theo độ tuổi mong muốn 58
Hình 4.10: Giao diện bước 3 — Chuyên đổi khuôn mặt trong video 59 Hình 4.11: Giao diện Cloud StOrA€ - + + + EEvveEEkekrkekrkrererrkrvek 60
Hình 4.12: Tạo bucket trong Cloud Storage ¿- - ¿+52 5sc+csc+exzezeesreeses 6l
Hình 4.13: Chỉnh sửa quyền truy cập của bucket -cvsccccecccccvvee 61
Hình 4.14: Tao Service Account trong GCPP eeseeeseneeeseeeeseseseeneeenesseees 62
Hình 4.15: Tao key trong Service ACCOUNL c.:ccccsseeseeeseeseseseeeeesesestseesessseeeeees 62 Hình 4.16: File Json Service Account Key c.cccccccecccesecseeeneeeecssseseeseseeeacee 63
Trang 8Tao thư mục “face-agingB” :-s- 5s Stcrtrhtrgr 64
Nội dung app.yaIml - - ¿+ + Street 64
Tao bukets trong Cloud Storage (Ï) - ¿+5 s++scexsxeeereeerereeeedl 65
Tao bukets trong Cloud Storage (2) 5 5+ s+scsesxeerrererereei 65
Tao bukets trong Cloud Storage (3) - -¿ ¿5+5 cc+c+ececeseereeeed 65 Tai lên file app.yaiml - + ¿55+ +k‡EEkEkzkEkekrrrkrkekererkrkrkrrei 66
Tai 1én folder “dist” 66
Tao thư mục trên Cloud Shell - «+ +52 <£s+£££vzzxeeexerrxrxeree 66
Đồng bộ dữ liệu Google Cloud Storage và thư mục cục bộ bằng Cloud
""“ ` ` /ẽcC CC Số 67
Kết quả chạy lệnh triển khai front-end lên GCP 68 Chạy lệnh để xem kết quả trang web sau khi triển khai 68 Kết qua trang web sau khi triển khai lên GCP 69
Giao diện welcome của App Engine 10
Cấu hình App Engine application 70 Đăng nhập bang Cloud SDK tai thư mục project - - 71 Chọn tài khoản và cấp quyền cho Cloud SDK -.- - 71 Man hình đăng nhập và cấp quyền cho Cloud SDK thành công 71
Enable Cloud Build API oo ccccccccesscsescseseseseenesscsesesesesensneeseseees 72
Chay câu lệnh gcloud app deploy trên Cloud SDK - 72
Kiểm thứ hoạt động của back-end sau khi triển khai -cs¿ 73 API chuyển đổi độ tuổi khuôn mặt bằng mô hình LATS 73 Kiểm thử hoạt động của các Flask API 5c cccccerrxecee 74
Nội dung tệp tin requirement.txt, dockerignore va Dockerfile 74
Xây dung Docker image từ mã nguồn - 2-2222 75 Triển khai ứng dụng trên Google Cloud Run - - 75 Kiểm thử hoạt động của các mô hình deepfake sau khi triển khai 76
Trang 9DANH MỤC BANG
Bảng 3.1: So sánh mô hình SAM và LATTS - eee + + Si 4I
Bảng 4.1: Mô tả yêu cầu chức năng -:222++++222+++tt22vvrrettrrvrrerrrrrrrrrr 45 Bang 4.2: Danh sách các aC(O - + + St HH gi 48
Bang 4.3: Danh sách các US€ CaSe ¿2-5 S52 S*2**E£+S text 49
Bảng 4.4: Đặc ta use case chuyền đổi độ tuổi khuôn mặt bằng hình ảnh 50 Bảng 4.5: Đặc ta use case chuyền đổi độ tuổi khuôn mặt bằng video 53
Trang 10DANH MỤC TU VIET TAT
Từ viết tắt Ý nghĩa
API Application Programming Interface
cGAN Conditional Generative Adversarial Network
CNN Mang no ron tich chap (Convolutional Neural Network)
DL Hoc sau (Deep learning)
GAN Mang đối nghịch tạo sinh (Generative adversarial networks) GCP Nền tảng đám mây Google (Google Cloud Platform)
HOG Histogram of Oriented Gradients
LATS Lifespan Age Transformation Synthesis
LPIPS Learned Perceptual Image Patch Similarity
ML May hoc (Machine learning)
MTCNN _ | Multi-Task Cascaded Convolutional Neural Networks
SAM Semi-Parametric Image-to-Image Translation for Face Aging
SDK Bộ công cu phát trién phan mềm (Software Development Kit) SSD Single Shot Detector
WSL Windows Subsystem for Linux
Trang 11TÓM TÁT KHÓA LUẬN
Khóa luận này tập trung vào ứng dụng của thị giác máy tính trong việc chuyền đổi độ tudi khuôn mặt, đặc biệt là trong lĩnh vực điện ảnh Mục tiêu của khóa luận là phát triển các phương pháp và công nghệ nhằm tạo ra khuôn mặt có độ tuổi khác với thực tế, nhằm đáp ứng yêu cau về độ tuổi của diễn viên trong quá trình sản xuất phim.
Để đạt được mục tiêu nghiên cứu, chúng tôi đã nghiên cứu hai mô hình chuyên đổi khuôn mặt: mô hình SAM và mô hình LATS Đồng thời, chúng tôi cũng nghiên cứu phương pháp hoán đổi khuôn mặt bằng cách phát hiện các điểm đặc trưng với Dlib và OpenCV, nhằm hỗ trợ quá trình biến đồi độ tuổi của khuôn mặt trong video Cuối cùng, chúng tôi đã áp dụng các mô hình và triển khai một hệ thống website cho phép người dùng có thê chuyên đổi độ tuổi khuôn mặt qua hình ảnh và video.
Trang 12Chương 1 GIỚI THIỆU VÀ MÔ TẢ ĐÈ TÀI
1.1 Đặt vấn đề
Hiện nay, chuyển đổi độ tuổi khuôn mặt đã được áp dụng vào lĩnh vực điện ảnh nhằm tạo ra khuôn mặt có độ tuổi khác với hiện tại, giúp cho đoàn làm phim giải quyết các yêu cầu về độ tuổi của diễn viên trong một bộ phim, tạo nên những đoạn phim chất lượng dé đáp ứng nhu cầu từ người xem.
Cụ thể hơn, một bộ phim có nhiều người xem xác suất cao sẽ có được tiếp tục phát hành Vấn đề đặt ra là một bộ phim được quay cách nhau nhiều năm nhưng độ tuổi cũng như khuôn mặt của diễn viên trong bộ phim sẽ thay đổi (già hóa) theo thời gian, và không thê có điện mạo trẻ trung như lần quay trước Ở khía cạnh khác, đoàn làm phim cần một vai diễn lớn tuổi nhưng vẫn mang đặc trưng của một diễn viên trẻ tuổi nào đó Công nghệ tông hợp chuyển đổi độ tuổi khuôn mặt được ứng dụng trong những trường hợp này Người làm phim sẽ sử dụng công nghệ này đề tạo ra những khuôn mặt lớn tuổi hoặc trẻ tuổi hơn và thay thế chúng vào khuôn mặt của diễn viên nhằm đáp ứng nhu cầu của bộ phim.
Hình 1.1: Ví dụ minh họa về áp dụng tổng hợp chuyển đổi độ tuổi vào công nghệ
làm phim [4]
Trang 13Theo một báo cáo của công ty nghiên cứu thị trường Technavio, sử dụng công
nghệ chuyền đổi độ tuổi khuôn mặt đã trở thành xu hướng trong ngành công nghiệp làm phim và truyền hình Báo cáo cũng dự báo rằng thị trường công nghệ chuyền đồi
độ tuổi khuôn mặt trong ngành giải trí sẽ đạt mức tăng trưởng hàng năm trung bình khoảng 30% trong giai đoạn 2019-2023 [6] Nhu cầu sử dụng công nghệ chuyền đổi
độ tuổi khuôn mặt cũng được thé hiện rõ trong các bộ phim bom tan gần day, chang hạn như bộ phim "The Irishman" của đạo diễn Martin Scorsese [9] Ngoài ra, nhiều đài truyền hình cũng sử dụng công nghệ này trong các chương trình về lịch sử hoặc các chương trình tài liệu để minh họa cho sự thay đổi của một cá nhân qua các giai
đoạn khác nhau của cuộc đời [3].
Từ đó, chúng ta có thể thay rằng việc sử dụng công nghệ chuyền đổi độ tuổi khuôn mặt trong công nghiệp làm phim đang ngày càng tăng và có tiềm năng phát triển trong tương lai Chính vì vậy nghiên cứu các phương pháp chuyền đổi độ tuổi khuôn mặt và ứng dụng chúng vào công nghệ làm phim là rat cần thiết Việc áp dụng công nghệ này giúp cho các nhà làm phim có thể tạo ra các cảnh quay, các câu chuyện
và nhân vật mang tính chân thật, gần gũi hơn với khán giả, giúp cho các nhà sản xuất
có thể tiết kiệm chỉ phí và thời gian trong việc casting, tìm kiếm diễn viên phù hợp
với các vai diễn.
1.2 Mục tiêu đề tài
Tìm hiểu các phương pháp chuyển đổi độ tuổi khuôn mặt đã được công bố Thực nghiệm các phương pháp trên và chon lọc ra ít nhất một phương pháp có tính thâm mỹ cao.
Tìm hiểu các phương pháp hoán đổi khuôn mặt phổ biến hiện nay Thực nghiệm các phương pháp trên và chọn lọc ra ít nhất một phương pháp vừa có tính thâm mỹ vừa đảm bao thời gian thực thi.
Áp dụng các mô hình trên để xây dựng một ứng dụng cho phép người dùng tạo ra những đoạn phim ngắn, trong đó khuôn mặt của diễn viên sẽ được thay đồi thành khuôn mặt trẻ hơn hoặc già hơn theo mong muốn của người dùng.
Trang 141.3 Phạm vi, đối tượng đề tài
1.3.1 Đối tượng nghiên cứu
Phương pháp chuyền đổi độ tuổi khuôn mặt được sử dụng dé dự đoán nhữngthay đổi trên khuôn mặt của một người khi họ già đi Vì vậy, đối tượng nghiên cứu
sẽ là tất cả các bộ dữ liệu hình ảnh khuôn mặt người trong các khoảng thời gian khác
nhau.
1.3.2 Phạm vi đề tài
— Tập trung tìm hiểu đặc trưng và thực nghiệm các loại phương pháp chuyền đổi
độ tuôi khuôn mặt đang được nghiên cứu trong 5 năm gần đây
— Không phân biệt dân tộc, giới tính, độ tuổi bộ dữ liệu nghiên cứu
— Chon lọc tối đa ba phương pháp chuyên đổi độ tuổi khuôn mặt phù hợp chocông nghệ làm phim dựa trên việc đánh giá hiệu suất và độ chính xác của mô hình
— Xây dựng ứng dụng cơ bản phục vụ cho việc chuyên đổi khuôn mặt người từhình ảnh đến video
1.4 Nội dung và phương pháp thực hiện
Nội dung 1: Khảo sát các phương pháp, thuật toán, cách thực hiện và triển khai
mô hình chuyển đổi độ tuôi
— Tìm hiểu và doc tài liệu tong quan về lĩnh vực deepfake và tông hợp tuổi
(Aging Synthesis).
— Tìm hiểu các mô hình chuyên đổi độ tuổi đã có trên thị trường, giải pháp, kỹthuật mà các mô hình đó đang áp dụng.
— Tìm hiểu các bộ dữ liệu đã được dùng ở các nghiên cứu trước như
FFHQ-Aging, FG-NET Aging Database, MORPH Database,
Nội dung 2: Thử nghiệm, đánh giá và lựa chọn mô hình phù hợp với công nghệ
làm phim điện ảnh.
— Thử nghiệm cách hoạt động của nhóm các phương pháp dựa trên học sâu như
IPCGAN, PyGAN, S2GAN,
Trang 15— Xây dựng hệ thống chuyền đổi độ tuổi theo các bước:
+ Giai đoạn 1: Nhập hình ảnh — Nhận diện khuôn mặt—> Chuyển đổi độ tuôi
— Ảnh dau ra với độ tuổi mong muốn
+ Giai đoạn 2: Nhập video —> Nhận diện khuôn mat > Chuyên đôi độ tuổi —Hoan đổi khuôn mặt > Ghép khuôn mặt vừa chuyên đổi tuổi vào trong video >Xuất video kết quả
— Thực nghiệm trên đoạn phim có độ dài khác nhau.
— Đánh tính thầm mỹ thông qua việc đánh giá chất lượng hình ảnh/ video đầu ra
Nội dung 3: Xây dựng ứng dụng và đánh giá hiệu suất ứng dụng
— Thiết kế và phát trién ứng dung cho phép người dùng tạo đoạn phim ngắn với
khuôn mặt diễn viên đã được chuyền đôi bằng một khuôn mặt trẻ hoặc lớn tuổi hon
theo độ tuổi mong muốn của người dùng
— Sử dung Angular Framework dé thiết kế Front-end và Java Spring Boot déthiét ké Back-end
— Dữ liệu hình ảnh va video được lưu trữ thông qua Google Cloud Storage.
— Quá trình chuyên đôi độ tuổi khuôn mặt được thực hiện thông Google Cloud
Run.
— Sử dụng Google Cloud Platform dé triển khai ứng dụng Kiểm thử và tinhchỉnh ứng dụng dé đảm bảo tính 6n định, tương thích và độ chính xác cao của mô
hình.
— Đánh giá tính thâm mỹ và độ nhận diện của nhân vật trong video được tạo ra
từ mô hình chuyển đổi độ tudi.
Trang 16Nội dung 4: Viết báo cáo nghiên cứu
— Viết báo cáo nghiên cứu và trình bày các kết quả đạt được trong quá trình
nghiên cứu.
— Dua ra các kêt luận và dé xuât dé phát triên và cải thiện mô hình và ứng dụngchuyển đổi độ tuổi khuôn mặt trong tương lai
— Trinh bày và thảo luận các hạn chế của nghiên cứu và phương pháp thực hiện
cùng với các khía cạnh cân được nghiên cứu thêm trong tương lai.
1.5 Cấu trúc khóa luận
Nội dung khóa luận gồm 5 chương:
- Chương 1: GIỚI THIỆU VÀ MÔ TẢ DE TÀI
- Chương 2: CƠ SỞ LÝ THUYET
- Chương 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ
- Chương 4: XÂY DUNG VÀ TRIÊN KHAI HỆ THONG
- Chương 5: KET LUẬN VA HUONG PHAT TRIEN
Trang 17Chương 2 CƠ SỞ LÝ THUYET
Chương này đề cập đến các lý thuyết được chúng tôi sử dụng trong bài toán.Dưới đây là quy trình biến đồi độ tuổi khuôn mặt được sử dụng trong đề tài “Ap dungtong hợp chuyền đổi độ tuổi khuôn mặt vào công nghệ làm phim”
Hình 2.1: Quy trình biến đổi độ tuổi khuôn mặt nhân vật trong video
Từ video đầu vào, chúng tôi sẽ sử dụng mé hình nhận điện khuôn mặt dé thựchiện nhận diện khuôn mặt trong video Sau đó, sử dụng mé hình chuyển đổi độ tuổikhuôn mat chuyển đôi độ tuôi cho khuôn mặt được nhận diện trong video theo độ tuổingười dùng mong muốn Tiếp đến, chúng tôi sử dụng rô hình hoán đổi khuôn mặt
để thay thế khuôn mặt đã được chuyển đổi độ tuổi vào khuôn mặt nhân vật trong từnghình anh (frame) đã được trích xuất từ video Và cuối cùng, ghép các ảnh (frame) đãđược hoán đổi lại, chúng ta sẽ có được video kết quả
Từ quy trình trên, nhóm đã xác định các lý thuyết cần thiết dé nghiên cứu trongquá trình này Các lý thuyết đó bao gồm:
— Lý thuyết về sự lão hóa của khuôn mặt con người
— Lý thuyết về deepfake và tổng hợp tuôi (Aging Synthesis)
— Phương pháp nhận diện khuôn mặt.
— Các phương pháp chuyền đổi độ tuổi khuôn mặt
— Các phương pháp hoán đổi khuôn mặt người trong video
Trang 182.1 Tổng quan về sự lão hóa khuôn mặt của con người
Dựa vào những nghiên cứu trước [10] [16], người ta đã chia quá trình lão hóa
khuôn mặt con người thành hai giai đoạn:
Giai đoạn đầu tiên mô tả sự phát triển từ thời thơ ấu đến tuổi trưởng thành,được đặc trưng bởi sự phát triển của sọ và mặt Trong giai đoạn nay, cấu trúc khuônmặt dần thay đổi, các đặc điểm như kích thước và tỷ lệ các thành phần trên khuônmặt (như mắt, mũi, miệng) được hình thành và phát triển [10]
Giai đoạn thứ hai chủ yếu bao gồm những thay đổi về kết cấu của như mắt,mũi miệng, tóc, xảy ra trong quá trình chuyên đổi từ tuôi trưởng thành sang tuôilớn hơn Trong giai đoạn nay, các yếu tố như sự mất độ co din của da, mat dần các
tế bào đa và cấu trúc tóc, sự thay đôi về màu sắc và độ đàn hồi của da dẫn đến sự xuấthiện của các nếp nhăn va dấu hiệu lão hóa khác trên khuôn mặt Những thay đôi nàytạo ra sự khác biệt rõ rệt giữa khuôn mặt của một người trẻ và một người lớn tuổi
Một ví dụ hình ảnh minh họa quá trình lão hóa khuôn mặt được sử dụng là
hình ảnh của nhà vật lý học Albert Einstein.
Dé hiểu cách máy tính có thé thực hiện quá trình lão hóa khuôn mặt theo lýthuyết về sự lão hóa, chúng tôi đã nghiên cứu các kỹ thuật liên quan đến Tổng hợptuổi (Age Synthesis) Tổng hợp tuổi thuộc vào loại Tổng hợp hình ảnh va video(Image & Video Synthesis) của Deepfake Thuật ngữ "Deepfake" kết hợp từ "deeplearning" (học sâu) và "fake" (gia mạo) Các thuật toán Deepfake sử dụng học sâu dé
tạo ra hình anh va video gia mạo mà khó phân biệt với hình anh và video thật [26].
Điều này đã mở ra những tiềm năng ứng dụng lớn trong việc thực hiện quá trình lão
hóa khuôn mặt trên máy tính.
Trang 19| Deepfake Media |
]
Image & Video Audio
1: Ỳ | ¥ | ` *
Replacement Editing ][ Reenactment | | Voice Swapping | | Text to speech |
[ Sựa Face | [ Head | Lip Syne
P Morphing Puppetry sii
Reenactment P
Hình 2.3: Phân loại các thuật toán Deepfake [19]
Hiện nay, có rất nhiều nghiên cứu liên quan đến tổng hợp tuổi vì nó mang lạinhiều tiềm năng và ứng dụng đa dạng Đặc biệt, trong những năm gần đây, nghiêncứu về việc chuyên đổi độ tuôi khuôn mặt đã thu hút sự quan tâm đặc biệt Từ nhữngnghiên cứu này, chúng tôi đã xác định và quyết tìm hiéu kỹ thuật dé áp dụng vào quátrình chuyền đổi độ tuôi khuôn mặt trong nghiên cứu của mình
2.2 Các phương pháp nhận diện khuôn mặt
Hiện nay, các phương pháp nhận diện khuôn mặt rất đa dạng, mỗi phươngpháp đều có ưu điểm và hạn chế riêng Một số phương pháp nhận diện khuôn mặt nồibật được chúng tôi xem xét trong đề tài này là:
2.2.1 Thuật toán Haar Cascade
Haar Cascade là một phương pháp được sử dụng trong bài toán nhận dạng đốitượng trong ảnh hoặc video Phương pháp này được nhà toán học người Áo — Paul
Viola và nhà khoa hoc máy tính người Mỹ — Michael Jones giới thiệu vào năm 2001[23] Haar Cascade xử lý hình ảnh và phát hiện khuôn mặt băng cách sử dụng các đặc
trưng hình chữ nhật như hình dưới đây Các đặc trưng hình chữ nhật tương tự như
nhân được sử dụng dé phát hiện các điểm đặc trưng khác nhau của khuôn mặt nhưmắt và các mốc [23] như trong hình 2.8
Trang 20(a) Edge Features
(b) Line Features
(c) Four-rectangle features
"mmĨ
Hình 2.4: Các hình chữ nhật trong Haar Cascade [11]
Các đặc trưng hình chữ nhật được chạy lần lượt trên hình ảnh và tổng số pIxelnằm trong phan màu trắng được trừ cho tổng số pixel nằm trong phan màu đen Sửdụng các đặc trưng hình chữ nhật này trên một hình ảnh, chúng ta có thể tạo ra hàngnghìn điểm đặc trưng cho hình ảnh Tuy nhiên, việc tính toán tổng số pixel trong cácvùng trang va đen trong toàn bộ ảnh có thể là một hoạt động tốn kém, đặc biệt là đối
Hình 2.5: Quá trình hoạt động cua Haar Cascade [23], [11]
Bước 1: Hình ảnh (đã được gửi đến bộ phân loại) được chia thành các phầnnhỏ hoặc các cửa số con như trong hình minh họa
Bước 2: Đặt bộ dò theo cách xếp tầng trong đó mỗi bộ phát hiện sự kết hợp
của các loại đặc trưng khác nhau từ các hình ảnh (ví dụ: đường thăng, cạnh, hình tròn,
10
Trang 21hình vuông) được truyền qua Giả sử khi việc trích xuất đối tượng địa lý được thựchiện, mỗi phần phụ được gan một giá tri tin cậy.
Bước 3: Hình ảnh (hoặc hình ảnh phụ) có độ tin cậy cao nhất được phát hiệndưới dạng khuôn mặt và được gửi đến bộ tích lũy trong khi phần còn lại bị từ chối
Do đó, Cascade tìm nạp khung hình / hình anh tiếp theo nếu còn lại và bắt đầu lại quá
trình [11].
2.2.2 Thuật toán HOG
HOG (Histogram of Oriented Gradients) là một thuật toán phân tích hình anh
được sử dụng rộng rãi trong lĩnh vực nhận diện đối tượng và nhận dạng Nó được giới
thiệu bởi nhà khoa học máy tính người Anh, Dalal và Triggs, vào năm 2005 [20].
Thuật toán này sẽ tạo ra các bộ mô tả đặc trưng (feature descriptor) nhằm mụcđích phát hiện vật thé (object detection) Từ một bức ảnh, ta sẽ lay ra hai ma trận quan
trọng giúp lưu thông tin anh đó là độ lớn gradient (gradient magnitute) và phương
của gradient (gradient orientation) Bằng cách kết hợp hai thông tin này vào một biéu
đồ phân phối histogram, trong đó độ lớn gradient được đếm theo các nhóm bins củaphương gradient Cuối cùng ta sẽ thu được vecto đặc trưng HOG đại diện chohistogram Sơ khai là vậy, trên thực tế thuật toán còn hoạt động phức tạp hơn khi véc
tơ HOG sẽ được tính trên từng vùng cụ bộ như mạng CNN và sau đó là phép chuânhóa cụ bộ đề đồng nhất độ đo Cuối cùng vectơ HOG tổng hợp từ các véc tơ trên vùng
cục bộ [20].
2.2.3 Single Shot Detector
Single Shot Detector (SSD) là một thuật toán nhận diện đối tượng được sử
dụng rộng rãi trong lĩnh vực thị giác máy tính và nhận dạng đối tượng Nó được giớithiệu bởi Wei Liu và các đồng nghiệp vào năm 2016 [27] Nó được sử dụng dé xácđịnh và phân loại các điểm đặc trưng trên khuôn mặt, chăng hạn như mắt, mũi, miệng
và cằm Mục tiêu của SSD là nhận diện chính xác các điểm đặc trưng này trên ảnh
hoặc video khuôn mặt trong thời gian thực và sử dụng chúng cho các ứng dụng khác
nhau như nhận dạng khuôn mặt, phân tích biểu cảm khuôn mặt và ước lượng hướngđầu [14]
11
Trang 22SSD được coi là một thuật toán "single shot", có nghĩa là nó chỉ cần một lầnchạy trên một ảnh dé phát hiện các đối tượng, khác với các phương pháp trước đâyyêu cầu nhiều lần chạy hoặc khung trượt (sliding window) liên tục dé tìm kiếm.
Thuật toán SSD sử dụng một mạng neural convolutional (CNN) dé tạo ra mộttập hợp các hình chữ nhật (bounding boxes) xung quanh các đối tượng có thể xuất
hiện trong ảnh Sau đó, thông qua các kênh phân loại, SSD xác định loại đối tượng
trong từng hình chữ nhật và đồng thời điều chỉnh vị trí của các bounding boxes đểchính xác phù hợp với đối tượng
SSD được sử dụng rộng rãi trong các ứng dụng nhận dạng và phát hiện đốitượng trong thời gian thực, như trong hệ thống giám sát an ninh, xe tự lái và các ứng
dụng thị giác máy tính khác [14].
2.2.4 Multi-task Cascaded Convolutional Networks (MTCNN)
Multi-task Cascaded Convolutional Networks (MTCNN) là một mô hình
mang no-ron được sử dung trong bài toán nhận dang khuôn mặt va phat hiện các điểmmốc trên khuôn mặt như mắt, mũi và miệng MTCNN được giới thiệu bởi ZhangKaipeng và các đồng nghiệp của vào năm 2016 [15]
Trước tiên, bằng cách sử dụng phép resize ảnh, mạng MTCNN tạo ra một loạtcác ban copy từ ảnh gốc với kích cỡ khác nhau, từ to đến nhỏ, tạo thành 1 Image
Pyramid Sau đó, mạng MTCNN giúp chúng ta nhận dạng khuôn mặt va phát hiện
các điểm mốc với 3 lớp mạng khác biệt là: P-Net, R-Net và O-Net [15]
Mạng nơ-ron phát hiện khuôn mặt (P-Net): Mạng này được sử dụng dé phathiện các vùng khuôn mặt tiềm năng trong ảnh Nó sử dụng các tầng tích chập để tạo
ra các bản đồ đặc trưng và đưa ra dự đoán về vị trí của các khuôn mặt trong ảnh [15]
Mạng nơ-ron xác định điểm mốc (R-Net): Sau khi P-Net đã phát hiện các vùngkhuôn mặt, R-Net được sử dụng để xác định các điểm mốc trên khuôn mặt như mắt,mũi và miệng Nó cũng sử dụng các tầng tích chập dé trích xuất đặc trưng và dự đoán
vi trí của các diém môc [15].
12
Trang 23Se Bounding box regression
Le
Bounding box regression
Hinh 2.6: Pipeline cua mang MTCNN [15]
Mang no-ron điều chỉnh điểm móc (O-Net): Cuối cùng, O-Net được sử dụng
dé điều chỉnh chính xác các điểm mốc đã được xác định bởi R-Net Mạng này cũng
sử dụng các tầng tích chập và các tầng kết nối đầy đủ (fully connected) dé làm việcvới các đặc trưng và tạo ra các dự đoán cuối cùng về vị trí và đặc điểm của các điểmmốc [15]
Sau khi tìm hiểu và so sánh giữa bốn phương pháp trên, chúng tôi thấy răngthuật toán Haar Cascade, thuật toán HOG và SSD có tốc độ xử lý nhanh nhưng độchính xác không cao, trong khi MTCNN thì có độ chính xác cao nhưng tốc độ xử lýchậm hơn Với mục tiêu của nghiên cứu là tập trung vào độ chính xác hơn là tốc độ,chúng tôi quyết định sử dụng MTCNN cho việc nhận diện khuôn mặt
13
Trang 242.3 Các phương pháp chuyền đổi độ tuổi khuôn mặt
Dựa trên những công trình nghiên cứu trước [30] [17], các nhà nghiên cứu đãthực hiện hệ thống và phân loại các phương pháp chuyên đổi độ tuôi như sau:
truyền thông trên học sâu
Dựa trên mô Dựa trên na ea a + a <n
` aa ak Dựa trên bản dich Dựa trên trình tự Dựa trên điêu kiện
hình vật lý nguyên mầu 5 5 5 5
Hình 2.7: Các nhóm phương pháp nghiên cứu hiện nay [17]
2.3.1 Các phương pháp truyền thống
Các phương pháp truyền thống là những phương pháp chuyên đổi độ tuổi
khuôn mặt được nghiên cứu vao thời gian trước khi hoc sâu ra đời [30] Nhóm các
phương pháp này bao gồm: phương pháp dựa trên mô hình vật lý và phương pháp
dựa trên nguyên mẫu.
Các phương pháp dựa trên mô hình vật lý thường sử dụng các mô hình toán
học dé dự đoán và chuyên đôi tuổi dựa trên cơ chế sinh học và vật lý như sự pháttriển của sọ và mặt, da và nếp nhăn, cấu trúc cơ và các bộ phận trên khuôn mặt [32]
Bên cạnh đó, phương pháp dựa trên nguyên mẫu sử dụng các ảnh nguyên mẫu
của các đối tượng cùng lứa tuổi nhưng ở các thời điểm khác nhau dé xây dựng một
mô hình ảnh của các thay đổi trên khuôn mặt Sau đó, phương pháp này áp dụng môhình này vào ảnh của người cần dự đoán dé tạo ra ảnh của khuôn mặt khi người đó
gia di [32].
Cac phương pháp truyền thống thường mang nhiều nhược điểm như thiếu tínhchân thực, tính cá nhân hóa và có vẻ không tự nhiên, hạn chế trong việc tạo ra các
hình ảnh đa dạng hoặc và không hoàn toàn phù hợp cho mọi trường hợp [32] Tuy
nghiên, nghiên cứu các phương pháp chuyền đổi độ tuổi khuôn mặt truyền thống là
14
Trang 25cơ sở quan trọng dé phát triển các phương pháp chuyên đổi độ tuổi khuôn mặt mới
va cũng cung cấp những tài nguyên quan trọng cho nghiên cứu về tuổi tác
2.3.2 Các phương pháp dựa trên học sau
Nhóm các phương pháp dựa trên học sâu bao gồm: phương pháp dựa trên bảndịch, phương pháp dựa trên trình tự và phương pháp dựa trên điều kiện
2.3.2.1 Nhóm phương pháp dựa trên bản dịch
Đầu vào của phương pháp này là hình ảnh của khuôn mặt ở độ tuổi hiện tại
Từ đó, các đặc điểm của khuôn mặt được ánh xạ đến các đặc điểm của độ tuổi mụctiêu, sau đó tiễn hành tổng hợp hình ảnh của độ tuổi mục tiêu dựa trên ánh xạ này.Ngoài ra, phương pháp này cũng có thé chuyền đổi kiêu mẫu của một hình ảnh theo
phong cách của một tập hợp hình ảnh khác Một mô hình điển hình của phương pháp
Hình 2.8: Ví du minh hoa cho nhóm phương pháp dựa trên ban dich [17]
Mô hình máy học này đã được thiết kế dé chuyên đổi hình anh khuôn mặt giữahai nhóm tuổi khác nhau Mô hình này bao gồm hai bộ sinh (generator) là GX và GY
và hai bộ phân biệt (discriminator) DX và DY Trong đó, GX học cách dịch ngược
hình anh từ nhóm tuôi thứ hai sang nhóm tuổi đầu tiên, trong khi GY thực hiện quá
trình ngược lại DX và DY được dao tao dé phân biệt giữa hình anh thật va hình anhgiả, DX va DY cũng sẽ cung cấp phản hồi cho các bộ sinh (generator) dé hướng dan
15
Trang 26chúng tạo ra hình ảnh khuôn mặt phân biệt với các nhóm tuổi khác Với sự hỗ trợ của
mô hình này, ta có thé chuyền đổi hình ảnh khuôn mặt giữa các nhóm tuổi một cách
dễ dàng và hiệu quả hơn [17].
Tuy nhiên, phương pháp dựa trên bản dịch cũng có nhược điểm Đó là nó yêucầu tài nguyên mạnh và tốn nhiều thời gian dé huấn luyện Ngoài ra, khả năng tổngquát hóa của phương pháp này cũng kém Nó không hoạt động tốt khi được áp dụngcho các tập dữ liệu không giống với tập dữ liệu huấn luyện [17]
2.3.2.2 Nhóm phương pháp dựa trên trình tự
Nhóm phương pháp nay tổng hợp các đặc điểm lão hóa bằng cách duyệt quamột chuỗi các mô hình lão hóa khuôn mặt liên tục Các nghiên cứu gần đây tập trungVào viéc tong hop tuổi một lần trong khi vẫn đạt được hiệu suất cao nhất [13], [11]
[10, 25] [25, 35] {35 50]
ä 8 ã
\ P t
Hình 2.9: Vi du minh hoạ cho nhóm phương pháp dựa trên trình tự [17]
Các phương pháp dựa trên trình tự sẽ thực hiện duyệt qua chuỗi mạng sinh sâu
(Deep Generative Network) dé tạo ra hình ảnh khuôn mặt với các hiệu ứng lão hóacủa một nhóm tuổi liền kề Mỗi đơn vị trong chuỗi đại diện cho một mạng sinh sâu
và nhiệm vụ của mạng này là học cách tổng hợp hình ảnh khuôn mặt với các hiệuứng lão hóa của nhóm tuổi liền kề Dé đạt được điều này, các đơn vị có thể được pháttriển dưới dang Mạng No-ron sâu (Recurrent Neural Networks - RNNs) hoặc mô hìnhxác suất tổng quát Một lợi thế của cách tiếp cận này là mạng có thé "ghi nhớ" cáctrạng thái đơn vị trước đó và do đó có tính đến mối tương quan giữa các nhóm tuổi.Ngoài ra, một số nghiên cứu cũng sử dụng chuỗi mạng sinh sâu được xây dựng dưới
dạng Cycle-GAN Việc áp dụng phương pháp này sẽ giúp cho việc tạo ra hình ảnhkhuôn mặt với các hiệu ứng lão hóa của nhóm tuổi liền kề trở nên dé dang và hiệuquả hơn [17].
16
Trang 27Nhược điểm của các phương pháp này là nó yêu cầu tài nguyên mạnh và có
độ phức tạp cao Khó đảm bảo tính liên tục trong chuyền đổi hình ảnh chuỗi vì mỗikhung hình có thé được xử lý một cách khác nhau Nó chỉ hoạt động tốt với một loại
dữ liệu cụ thể nhất định và có thể không hoạt động tốt khi được áp dụng cho các loại
đữ liệu khác nhau [17].
2.3.2.3 Nhóm phương pháp dựa trên điều kiện
Phương pháp dựa trên điều kiện là một trong các phương pháp tông hợp khuônmặt sử dụng mang GAN có điều kiện (Conditional GANs — cGAN) [18] Phuongpháp này giúp kiểm soát quá trình tổng hợp độ tuổi bằng cách sử dung các nhãn độtuổi bổ sung Tuy nhiên, độ chính xác của các phương pháp này phụ thuộc vào chatlượng va sé lượng đữ liệu đào tao cũng như độ phic tap của mô hình được sử dụng
Ta có thé thay, cGAN là một kiểu mô hình GAN mở rộng, nơi mà một sỐ
thông tin bổ sung được cung cấp cho bộ sinh (generator) và bộ phân biệt(discriminator) Thông tin bổ sung này thường được gọi là điều kiện và có thê là bất
kỳ thông tin nào mà chúng ta muốn áp dụng vào quá trình huấn luyện, chang hạn nhưhình ảnh, văn bản, âm thanh, hoặc bat kỳ thông tin có thể tạo ra được [21]
Phương pháp này cũng có những nhược điểm như khó đạt được chất lượng tốt
vì vẫn có thể tạo ra hình ảnh kém chất lượng hoặc không đúng với mục tiêu Tùychỉnh mô hình cũng khó, yêu cầu thời gian và nguồn lực dé hoàn thành Tốc độ học
17
Trang 28chậm vì phải học cả nhãn và hình ảnh, và tùy chọn nhãn cũng khó vì nó cần phải đạt
được sự hợp lý và tương đồng [21].
2.3.2.4 Các nhóm phương pháp khác
Các phương pháp dựa trên chuẩn hóa ban đồ đặc trưng được sử dụng dé tạo
ra một hình ảnh khuôn mặt mới với một độ tuổi khác bằng cách đào tạo một mạng lưới thần kinh sâu để tìm hiểu ánh xạ từ hình ảnh khuôn mặt đầu vào sang biểu diễn đặc trưng của hình ảnh đó, và sau đó chuyền đổi biểu diễn đặc điểm đề tổng hợp hình ảnh mới [14], [22] Một điển hình của phương pháp này là S2GAN Tuy nhiên, phương pháp này có nhược điểm là nhạy cảm với các biến thể trong hình ảnh khuôn mặt đầu vào và không phủ hợp với hầu hết mọi ứng dụng.
Các phương pháp dựa trên bản đô lão hóa dân tộc cụ thể là các nghiên cứu chuyển đổi tuổi tác dành riêng cho các nhóm dân tộc khác nhau Các phương pháp này có tính đến sự khác biệt về đặc điểm khuôn mặt, kết cấu da và các đặc điểm khác của từng nhóm dân tộc Nhược điềm của nhóm phương pháp này là phức tạp và yêu cầu bộ dit liệu hình ảnh khuôn mặt lớn hơn từ mỗi nhóm dan tộc đề đạt được độ chính
Xác cao.
Các phương pháp dựa trên các thao tác không gian tiềm ẩn của các khung tạo
ảnh hiện có sử dụng các mô hình như Variational Autoencoders (VAE) hoặc
Generative Adversarial Networks (GAN), để tạo ra hình ảnh khuôn mặt mới từ một không gian tiềm ẩn có chiều thấp Bằng cách thao tác các giá trị trong không gian tiềm ân, mô hình tổng quát có thể được sử dụng để tổng hợp các hình ảnh khuôn mặt
ở các độ tuổi khác nhau [31] Tuy nhiên, phương pháp này có nhược điểm là kết qua chuyển đổi theo các độ tuổi có khoảng cách lớn có thể không phải lúc nào cũng đạt được kết quả thực tế.
Các phương pháp dựa trên hình ảnh trẻ em (Child-based methods) là những
phương pháp được sử dụng để tạo ra hình ảnh của một người khi họ trưởng thành từ hình ảnh của một đứa trẻ Đề thực hiện điều này, hình ảnh đầu vào là khuôn mặt ở độ tuổi trẻ Các nghiên cứu về phương pháp này thường bao gồm việc thu thập một bộ
18
Trang 29dir liệu của trẻ em, dao tao lại phương pháp chuyển đổi độ tuổi hiện có, sau đó so sánh kết quả và hiệu suất với mô hình khác [17].
Từ những ưu điểm và nhược điểm của từng nhóm phương pháp, chúng tôi nhận thấy nhóm phương pháp dựa trên điều kiện là nhóm phương pháp đang được nghiên cứu ngày càng nhiều trong những năm gần đây [17].Nhóm phương pháp này
có nhiều ưu điểm và tạo ra kết quả có tính thẩm mỹ cao hơn so với các phương pháp khác Bên cạnh đó, phương pháp này cũng đã có những bài báo trình bày chỉ tiết về
lý thuyết, quá trình huấn luyện, kết quả và đánh giá thực nghiệm Điều này cho phép
chúng tôi có tư liệu tham khảo và hướng dẫn rõ ràng trong việc thực hiện nghiên cứu
của mình Vì vậy, nhóm nghiên cứu đã quyết định chọn và tiếp tục nghiên cứu sâu các phương pháp dựa trên điều kiện dé ứng dụng vào bài toán của khóa luận này.
2.4 Các phương pháp hoán đổi khuôn mặt
Hiện nay, có rất nhiều phương pháp để hoán đổi khuôn mặt người trong hình ảnh và video Một trong những phương pháp truyền thống là sử dụng phần mềm Photoshop Tuy nhiên, cách làm này yêu cầu công việc thủ công, tốn nhiều sức lực
và thời gian Bên cạnh đó, có nhiều phương pháp hoán đồi khuôn mặt dựa trên trí tuệ nhân tạo đã được phát triển và áp dụng trong lĩnh vực này Trong khóa luận này chúng tôi đã tìm hiểu các phương pháp sau dựa trên độ phô biến của chúng:
~ Hoán đổi khuôn mặt dựa trên công cụ DeepFaceLab.
~ Hoán đổi khuôn mặt dựa trên công cụ DeepFaceLive.
— Hoan đổi khuôn mặt bằng phương pháp phát hiện các điểm đặc trưng với Dlib và OpenCV.
2.4.1 DeepFakeLab
DeepFaceLab là một hệ thống deepfake mã nguồn mở, được tạo ra để thay đổi
khuôn mặt trong video và ảnh DeepFaceLab cho phép người dùng thực hiện các tác
vụ như thay đổi khuôn mặt, tạo ra những video giả mạo chân thực với khả năng chuyển động khuôn mặt và biêu cảm, hoặc thay đổi tuổi tác của một người Hệ thống
19
Trang 30này sử dụng học sâu và các mô hình mạng đối nghịch tạo sinh (GAN) để tạo ra những hình ảnh và video giả mạo có chất lượng và độ chân thực cao [12].
2.4.2 DeepFaceLive
Chuyên đổi khuôn mặt theo thời gian thực (DeepFaceLive) là một ứng dụng được phát triển để tạo ra video giả mạo (deepfake) có chất lượng cao DeepFaceLive cung cấp công cụ và giao diện cho người dùng dé thực hiện quá trình tao video
deepfake.
Ứng dụng này sử dụng các thuật toán học sâu và xử lý hình ảnh dé nhận diện
và thay đổi khuôn mặt của một người trong video sao cho nó trông giống với khuôn mặt của một người khác Với DeepFaceLive, người dùng có thể chèn khuôn mặt của một người nồi tiếng hoặc bạn bè vào video gốc, tạo ra hiệu ứng giả mạo chân thực [5].
Hình 2.11: Ung dụng DeepFaceLive DeepFaceLive cho phép người dùng huấn luyện các mô hình khuôn mặt riêng của mình bằng cách sử dụng DeepFaceLab để đạt chất lượng cao hơn hoặc khớp khuôn mặt tốt hơn Ứng dụng cũng bao gồm một mô-đun Face Animator cho phép bạn điều khiển một hình ảnh khuôn mặt tĩnh bằng video hoặc khuôn mặt của bạn từ camera [5].
20
Trang 312.4.3 Phương pháp phát hiện các điểm đặc trưng
Phát hiện các điểm đặc trưng (Landmark detection) là quá trình nhận diện và xác định vị trí các điểm quan trọng trên khuôn mặt như mắt, mũi, miệng, dé từ đó có thể thực hiện các phép biến đổi và thay đổi khuôn mặt [28].
Quá trình biến đổi khuôn mặt dựa trên các điểm đặc trưng bao gồm các giai
đoạn sau:
Giai đoạn 1: Nhận dạng điểm đánh dâu khuôn mặt Giai đoạn này sẽ được thực hiện bằng cách sử dụng một mô hình nhận dạng khuôn mặt, như mạng neural convolutional (CNN) hoặc mô hình dựa trên điểm đặc trưng như dlib, để xác định các điểm đánh dấu trên khuôn mặt nguồn và khuôn mặt đích Các điểm đánh dấu này thường bao gồm các vị trí của mắt, mũi, miệng và các điểm khác trên khuôn mặt [28].
Giai đoạn 2: Tính toán ma trận biến đổi affine Sử dụng các điểm đánh dấu khuôn mặt, tính toán ma trận biến đổi affine Ma trận này biểu diễn mối quan hệ giữa các điểm đánh dấu trên khuôn mặt nguồn và khuôn mặt đích Các phép biến đổi affine
bao gồm di chuyển, co giãn, xoay và phép chiều [28].
Giai đoạn 3: Áp dụng biến đổi lên khuôn mặt nguồn Sử dụng ma trận biến đổi
affine đã tính toán, áp dụng biến đồi lên tat cả các điểm trong khuôn mặt nguồn Điều này tạo ra một bản sao của khuôn mặt nguồn được biến đổi theo hình dạng của khuôn
mặt đích [28].
Giai đoạn 4: Tạo ra khuôn mặt đích mới Sau khi áp dụng biến đổi lên khuôn mặt nguồn, các pixel mới được tạo ra bằng cách lấy giá trị từ khuôn mặt đích và áp dụng chúng lên khuôn mặt nguồn đã được biến đổi Quá trình này thường bao gồm việc tìm kiếm tọa độ tương ứng trên khuôn mặt đích và lấy giá trị màu từ vị tri tương
ứng trên khuôn mặt đích [28].
Giai đoạn 5: Hợp nhất kết quả.Kết quả cuối cùng là sự hợp nhất của khuôn mặt nguồn đã được biến đổi và khuôn mặt đích mới được tạo ra Quá trình này thường bao gồm việc điều chỉnh độ sáng, độ tương phản và các yếu tố khác dé làm cho kết
quả trông tự nhiên và thích hợp [28].
21
Trang 32Sau khi đã tìm hiểu và đánh giá về các phương pháp hoán đổi khuôn mặt,chúng tôi nhận thấy răng Deep Fake Lab và Deep Face Live mặc dù cho kết quả tốtnhưng phương pháp này cũng yêu cầu một số lượng tài nguyên máy tính lớn màchúng tôi không thé cung cấp, cùng với đó là sự phức tạp trong quy trình hoán đổikhuôn mặt Mặt khác, phương pháp phát hiện các điểm đặc trưng không yêu cầu tàinguyên máy tính phức tạp như Deep Fake Lab và Deep Face Live, giúp chúng tôi tiếtkiệm tài nguyên và đồng thời đảm bảo khả năng hoán đổi khuôn mặt với độ chínhxác tương đối tốt Vì vậy mà nhóm quyết định sử dụng phương pháp phát hiện cácđiểm đặc trưng với Dlib và OpenCV trong khóa luận này.
22
Trang 33Chương 3 THỰC NGHIỆM VÀ ĐÁNH GIÁ
3.1 Thực nghiệm các mô hình chuyển đỗi độ tuổi khuôn mặt
3.1.1 Lựa chọn phương pháp chuyén đổi độ tuổi khuôn mặt
Sau khi tìm hiểu các phương pháp trên, chúng tôi thấy răng các phương phápdựa trên điều kiện (Condition-based methods) mang lại hiệu quả cao, có các nhượcđiểm có thể nghiên cứu dé khắc phục và cũng là hướng có đặc điểm phủ hợp với bàitoán mà chúng tôi đặt ra Đồng thời, phương pháp này cũng đang là một phương phápdựa trên học sâu được nghiên cứu phát triển nhiều tại thời điểm hiện nay [L7] Do đó,chúng tôi quyết định đi vào nghiên cứu sâu các thuật toán của phương pháp này nhằmcải thiện các nhược điểm cũng như tăng độ chính xác cho đầu ra của thuật toán Trong
đó, hai nghiên cứu mới nhất và mang lại kết quả tốt trong việc chuyên đổi độ tuôi
hiện nay đó là “Lifespan Age Transformation Synthesis” (LATS) [24] va “Only a
Matter of Style: Age Transformation Using a Style-Based Regression Model” (SAM)
[29].
3.1.2 Chuẩn bị nguồn đữ liệu
Cả hai phương pháp chuyên đổi độ tuổi khuôn mặt đều sử dụng cùng mộtnguồn dữ liệu là FFHQ (Flickr-Faces-HQ) — đây là một bộ dữ liệu hình ảnh chứa cáckhuôn mặt từ nền tảng chia sẻ anh Flickr Được phat triển bởi Tero Karras, SamuliLaine va Timo Aila từ NVIDIA, FFHQ được tạo ra dé cung cấp một bộ dit liệu chat
lượng cao với độ phân giải cao cho mục đích nghiên cứu trong lĩnh vực xử ly ảnh va
trí tuệ nhân tạo [8].
Bộ dữ liệu FFHQ bao gồm hơn 70.000 hình ảnh chất lượng cao của khuôn mặt
con người từ 70.000 người khác nhau Các hình ảnh trong FFHQ được chụp trongmột loạt các điều kiện ánh sáng, góc chụp và biểu cảm khác nhau, tạo nên một tập dữliệu đa dạng về mặt thị giác [8]
FFHQ đã trở thành một trong những bộ dữ liệu quan trọng trong lĩnh vực nhận
dạng khuôn mặt, chuyên đổi hình ảnh khuôn mặt, và các ứng dụng liên quan đến xử
lý hình ảnh khuôn mặt trong trí tuệ nhân tạo [7].
23
Trang 34Lifespan Age Transformation Synthesis là một phương pháp chuyên đổi độtuổi khuôn mặt dựa trên GAN, được đề xuất bởi Roy Or-El va các cộng sự của ôngvào tháng 7 năm 2020 Đây là phương pháp được thiết kế để mô phỏng quá trình lãohóa liên tục từ một hình ảnh đầu vào duy nhất [24].
Trong nghiên cứu này, các tác giả đã đề xuất kiến trúc mạng sinh học đốinghịch hình anh đa miền mới (novel multi-domain image-to-image generativeadversarial network), trong đó không gian tiềm tàng đã học được mô hình quá trìnhlão hóa liên tục hai chiều [24] Mang được dao tạo trên tập dữ liệu FFHQ mà các tácgiả đã gan nhãn cho độ tuổi, giới tính và phân đoạn ngữ nghĩa Các lớp tuổi cô địnhđược sử dụng làm mỏ neo (anchors) dé chuyén đổi tuôi liên tục gần đúng Mô hìnhnày có thé dự đoán một bức chân dung cho lứa tuổi 0-70 từ một bức ảnh duy nhất
[24].
Kiến trúc của mô hình bao gồm một bộ sinh có điều kiện (conditionalgenerator) va một bộ phân biệt (discriminator) Trong đó, bộ sinh có điều kiện chịutrách nhiệm cho các chuyên đôi giữa các nhóm tuổi và gồm ba phan: bộ mã hóa danh
tính (identity encoder), mạng ánh xa (mapping network) và bộ giải mã (decoder) [28].
24
Trang 35Age 30-39 Ỉ Latent Age Code Age 3-6
101E19U89 apo2 ‡ndu|
Inference Training
Hinh 3.2: Tổng quan về mô hình Lifespan Age Transformation Synthesis [24]
Khi duoc cung cap một độ tudi (target age), mô hình sé lay mẫu từ phân phối
tương ứng với nhóm tuổi đó và gan cho nó một mã tuổi vector Mã tudi này sẽ đượcđưa vào một mạng ánh xạ (Mapping Network) dé chuyền đổi thành không gian antuôi đã học Các giá trị trong không gian ân này sé xấp xi các biến đổi tuổi liên tục.Ảnh đầu vào sẽ được xử lý riêng bởi bộ mã hóa định danh (Identity Encoder) để tríchxuất các đặc trưng định danh (Identity Features) Bộ giải mã sẽ lấy đầu ra của mạngánh xạ, một vector An tuổi đích, và tiếp tục kết hợp với các đặc trưng định danh bằngcách sử dụng tích chập điều tiết (modulated convolutions) [24]
Trong quá trình huấn luyện, tác giả đã sử dụng một bộ mã hóa tudi bé sung(Age Encoder) dé liên kết các hình ảnh thực và hình ảnh được tao ra với các phânphối tuổi tương ứng đã được xác định trước Đối với việc chuyền đổi thành một tuôikhông có trong các lớp mốc (anchor classes), mô hình sẽ tính toán các mã ân tuôi chohai lớp mốc tuổi gần nhất và thực hiện nội suy tuyến tính để tạo ra mã tuổi mongmuốn như đầu vào cho bộ giải mã [24]
Trong nghiên cứu này, tác giả không những đã tập trung vào sự thay đổi vềkết cau, mà còn quan tâm đến những biến đổi về hình dạng đầu xảy ra trong quá trìnhtrưởng thành và gia đi của con người Hơn nữa, tuổi và danh tính được mã hóa riêngbiệt để xử lý sự thay đôi về điện mạo mà vẫn duy trì tính nhất quán của danh tính.[24] Đây là điểm đã khắc phục được những hạn chế của các nghiên cứu trước đó
25
Trang 363.1.3.2 Quá trình huấn luyện
Giai đoạn 1: Chuan bị các tài nguyên cho quá trình huấn luyện theo hướng
dẫn của tác giả [25]
Bước 1: Sử dụng Git để clone mã nguồn Lifespan Age Transformation
Synthesis (LATS).
P| CAWindows\System32\cmde X +|v
Microsoft Windows [Ver: n 10.0.22621.1848]
(c) Microsoft Corporation All rights reserved.
Cloning into 'Lifespan_Age_Transformation_Synthesis'
remote: Enumerating objects: 618, done.
remote: Counting objects: 100% (14/14), done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 618 (delta 4), reused 12 (delta 4), pack-reused 604
Receiving objects: 100% (618/618), 22.86 MiB | 1.42 MiB/s, done.
Resolving deltas: 100% (380/380), done.
Hinh 3.3: Clone ma nguon LATS su dung GitBước 2: Cài đặt GPU có hỗ trợ CUDA Các bước cần phải thực hiện là cài đặt
NVIDIA CUDA Toolkit, cài đặt NVIDIA GPU Driver và cau hình biến môi trường.
Command Prompt
Microsoft Windows [Version 10.0.22621.1848]
(c) Microsoft Corporation All r ts reserved.
Hình 3.4: Kết quả cài đặt GPU có cài đặt CUDA thành công
Bước 3: Cài đặt PyTorch phiên bản từ 1.0.0 trở lên và torchvision phiên bản
từ 0.4.0 trở lên.
Bước 4: Cài đặt các python package: opencv-python, visdom, dominate,
numpy, scipy, pillow, unidecode, requests, tqdm, dlib.
26
Trang 37F] CAWindows\System32\cmd.e Tp
Microsoft Windows [Version 10.0.22621.1848]
(c) Microsoft Corporation All rights reserved.
D:\THESIS\Train\Lifespan_Age_Transformation_Synthesis>pip install -r requirements.txt
Hình 3.5: Cai đặt các python package
Giai đoạn 2: Huan luyện mô hình LATS
Bước 1: Mở tập lệnh run_scripts/train.sh (Linux) hoặc run_scripts/train.bat
(Windows) và thiết lập các thông SỐ:
EXPLORER
v RUN SCRIPTS
gpu_ids: Các GPU chúng ta muốn sử dụng
Biến môi trường CUDA_ VISIBLE_DEVICES
dataroot: Đường dẫn tương đối đến tập dữ liệu
name: Tên của mô hình.
batchSize: Kích thước batch, tùy thuộc vào dung lượng RAM tối đa củaGPU và số lượng GPU có sẵn
Nếu muốn tiếp tục huấn luyện từ một checkpoint hiện có, thêm cờ continue_training và chỉ định checkpoint bạn muốn tiếp tục training
trong cờ which_epoch, ví dụ: which_epoch 100 hoặc which_epoch
latest.
% trainbat =X
CUDA_VISIBLE_DEVICES-0,1,2,3
Hình 3.6: Cầu hình run_scripts/train bat
Bước 2: Chạy /run_scripts/train.bat (Windows).
27
Trang 383.1.4 Huấn luyện mô hình SAM
3.1.4.1 Tổng quan về mô hình SAM
SAM (Semi-Parametric Image-to-Image Translation for Face Aging) là một
phương pháp chuyền đổi độ tuổi khuôn mặt dựa trên mô hình hoc sâu được xây dựngtrên kiến trúc styleGAN2 Phương pháp này đã được đề xuất bởi Yuval Alaluf và các
cộng sự của ông vào tháng 2 năm 2021.
SAM một mô hình nổi tiếng trong lĩnh vực sinh ảnh Mô hình đề xuất trong
nghiên cứu này sử dụng một bộ sinh dựa trên phong cách (style-based generator) dé
tạo ra các hình ảnh mới ứng với các tuổi khác nhau Phương pháp này tách riêngphong cách và nội dung trong hình ảnh, giúp duy trì tính nhất quán về nội dungnguyên gốc trong quá trình biến đổi tuôi [29]
Nghiên cứu cũng trình bày một cách tiếp cận mới đề đánh giá chất lượng của
kết quả biến đổi tuổi Đánh giá dựa trên sự phân biệt giữa các hình ảnh được biến đổi
và các hình ảnh thực tế thuộc cùng một nhóm tuổi Bằng cách sử dụng đánh giá này,
phương pháp đề xuất đã cho thấy khả năng sinh ra hình ảnh với sự biến đổi tuổi tự
Hinh 3.7: Kién tric mé hinh SAM [29]
Thuật toán SAM nhằm chuyên đôi một hình ảnh khuôn mặt nguồn thành mộthình ảnh biểu thị cùng một danh tính ở tuổi mục tiêu mong muốn Nó sử dụng mộtkiến trúc chuyên đổi hình ảnh sang hình ảnh (image-to-image translationarchitecture) bao gom mang mã hóa (encoder) va một trình tạo hình anh vô điều kiện
đã được huấn luyện trước (fixed, pre-trained unconditional image generator) [29]
28
Trang 39Thuật toán bắt đầu bằng cách mã hóa một hình ảnh cung cấp và tuổi mục tiêumong muốn thành một tập hợp các vectơ phong cách bằng cách sử dụng mạng mãhóa Những vectơ phong cách này biểu thị phép biến đổi mong muốn Trình tạo hìnhảnh sau đó sử dụng các vectơ phong cách nay dé tạo ra hình ảnh đầu ra biéu thị phépbiến đôi tuổi mong muốn Đề khắc phục thách thức thiếu các cặp hình ảnh tương ứngcủa cùng một người qua thời gian, thuật toán áp dụng mắt mát liên quan chu kỳ trongquá trình huấn luyện Mắt mát này giúp hướng dẫn mạng mã hóa trong việc tạo ra cácvectơ phong cách phù hợp Ngoài ra, một mạng hồi quy tuổi được huấn luyện trướccũng được sử dụng làm ràng buộc bổ sung trong quá trình huấn luyện [29].
Quá trình huấn luyện bao gồm VIỆC ngẫu nhiên tạo ra một tuổi mục tiêu mongmuốn từ 5 đến 100 Hình ảnh đầu vào sau đó được chỉnh sửa bằng cách thêm mộtkênh có giá trị không đôi biéu thị tuổi mục tiêu Một mang mã hóa pixel2style2pixel
có định và đã được huấn luyện trước được sử dụng dé mã hóa hình anh đầu vào thànhkhông gian tiềm tàng của một trình tạo hình StyleGAN2 đã được huấn luyện trước.Trong quá trình huấn luyện, hai lượt chuyên được thực hiện: lượt chuyên thuận vàlượt chuyển chu kỳ Lượt chuyên thuận tạo ra hình ảnh đã biến đồi dựa trên hình ảnhđầu vào và tuổi mục tiêu Lượt chuyên chu kỳ nhăm khôi phục lại hình ảnh ban đầubằng cách tái tạo nó từ hình ảnh đã biến đổi, sử dụng tuôi nguồn làm tuổi mục tiêu
[29].
Kiến trúc của bộ mã hóa tuôi dựa trên bộ mã hóa pSp, mở rộng thành một môitrường không giám sát cho việc già đi của khuôn mặt Nó kết hợp bộ mã hóa với trìnhtạo hình StyleGAN đã được huấn luyện trước Bộ mã hóa trích xuất các bản đồ đặc
trưng ở các tỉ lệ không gian khác nhau và tao ra 18 vectơ phong cách tương ứng với
các đầu vào của trình tạo hình StyleGAN [29]
Bộ mã hóa được huấn luyện bằng cách kết hợp có trọng số các mục tiêu matmát khác nhau Điều này bao gồm sự tương đồng về điểm ảnh (mất mát L2) và sựtương đồng về cảm nhận (mất mát LPIPS) Các mất mát được sử dụng cả cho lượtchuyên thuận và lượt chuyên chu kỳ [29]
29
Trang 40Tổng thể, thuật toán SAM cung cấp một phương pháp mô hình hóa quá trìnhbiến đổi tuổi một cách không giám sát bằng cách sử dụng một kiến trúc chuyền đôihình ảnh sang hình ảnh và kết hợp chu kỳ nhất quán và các mạng được huấn luyệntrước dé hướng dẫn quá trình biến đổi.
3.1.4.2 Quá trình huấn luyện
Giai đoạn 1: Cài đặt môi trường.
Bước 1: Cai đặt môi trường Ubuntu 22.04.2 LTS trên may Window.
B® Microsoft store ubuntu
Windows Subsystem for Linux is now available in the Microsoft Store!
You can upgrade by running ‘wsl.exe update' or by visiting https://aka.ms/wslstorepage
Installing WSL from the Microsoft Store will give you the latest WSL updates, faster.
For more information please visit https://aka.ms/wslstoreinfo
Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.10.102.1-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https: //Landscape.canonical.com
* Support: https: //ubuntu com/advantage
Hình 3.9: Màn hình truy cập vào WSL thành công
Bước 2: Cài đặt Anaconda.
Bước 3: Tạo môi trường ảo trên WSL bằng Anaconda
30