Bối cảnh và vấn đề nghiên cứu

Trong ngành công nghiệp sản xuất phim ảnh và truyền hình, việc thể hiện sự biến đổi diện mạo của nhân vật qua các mốc thời gian là một yêu cầu kỹ thuật phổ biến. Thực tế sản xuất cho thấy nhiều tác phẩm điện ảnh có các phần tiếp theo được ghi hình cách nhau nhiều năm, khiến tuổi tác và ngoại hình của diễn viên thay đổi đáng kể. Ngược lại, nhiều kịch bản đòi hỏi một nhân vật ở độ tuổi thanh niên hoặc già nua nhưng vẫn phải giữ nguyên các đường nét nhận diện đặc trưng của một diễn viên nhất định. Theo báo cáo từ công ty nghiên cứu thị trường Technavio, ứng dụng công nghệ chuyển đổi độ tuổi khuôn mặt trong lĩnh vực giải trí đạt tốc độ tăng trưởng kép hàng năm ước tính khoảng 30% trong giai đoạn 2019–2023. Nhu cầu này đã được ứng dụng trong các dự án điện ảnh tiêu biểu (như bộ phim The Irishman của đạo diễn Martin Scorsese) cũng như trong các chương trình truyền hình tài liệu, lịch sử.

Nhằm giải quyết bài toán giảm thiểu chi phí và thời gian tuyển chọn diễn viên (casting) cũng như hỗ trợ kỹ xảo hậu kỳ, khóa luận tốt nghiệp kỹ sư ngành Hệ thống Thông tin của hai tác giả Tạ Quang Huy và Lê Thị Hồng Cúc (Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM, thực hiện năm 2023 dưới sự hướng dẫn của TS. Nguyễn Thanh Bình) tập trung nghiên cứu đề tài: "Áp dụng tổng hợp chuyển đổi độ tuổi khuôn mặt vào công nghệ làm phim".

Mục tiêu nghiên cứu được văn bản xác định cụ thể qua 5 nhiệm vụ:

  1. Tìm hiểu các phương pháp chuyển đổi độ tuổi khuôn mặt đã được công bố trong các tài liệu khoa học.
  2. Thực nghiệm các phương pháp đã tìm hiểu và chọn lọc ra ít nhất một phương pháp có tính thẩm mỹ cao.
  3. Tìm hiểu các phương pháp hoán đổi khuôn mặt phổ biến hiện nay.
  4. Thực nghiệm các phương pháp hoán đổi khuôn mặt và chọn lọc ra ít nhất một phương pháp vừa đạt tính thẩm mỹ vừa đảm bảo thời gian thực thi.
  5. Áp dụng các mô hình đã chọn để xây dựng một ứng dụng cho phép người dùng tạo các đoạn phim ngắn có khuôn mặt nhân viên được biến đổi độ tuổi (trẻ hơn hoặc già hơn) theo mong muốn.

Đối tượng và phạm vi nghiên cứu của đề tài gồm:

  • Đối tượng nghiên cứu: Tất cả các bộ dữ liệu hình ảnh khuôn mặt người ghi nhận ở các khoảng thời gian và độ tuổi khác nhau.
  • Phạm vi nghiên cứu:
    • Khảo sát các phương pháp chuyển đổi độ tuổi khuôn mặt công bố trong vòng 5 năm gần đây.
    • Dữ liệu nghiên cứu không phân biệt dân tộc, giới tính và nhóm tuổi ban đầu.
    • Lựa chọn tối đa ba phương pháp chuyển đổi độ tuổi phù hợp cho công nghệ làm phim dựa trên hiệu suất và độ chính xác.
    • Xây dựng ứng dụng nền tảng phục vụ chuyển đổi khuôn mặt người từ định dạng hình ảnh tĩnh đến định dạng video.

Cơ sở lý thuyết và phương pháp

Văn bản hệ thống hóa cơ sở lý thuyết dựa trên quy trình lão hóa tự nhiên của con người và các kỹ thuật thị giác máy tính:

  • Lý thuyết lão hóa khuôn mặt: Quá trình lão hóa chia thành hai giai đoạn chính. Giai đoạn 1 (từ thơ ấu đến tuổi trưởng thành) đặc trưng bởi sự thay đổi cấu trúc khung sọ và kích thước, tỷ lệ tương quan giữa mắt, mũi, miệng. Giai đoạn 2 (từ trưởng thành sang tuổi già) chủ yếu là sự biến đổi kết cấu mô mềm, giảm độ co giãn của da, xuất hiện nếp nhăn và thay đổi cấu trúc tóc.
  • Phân loại thuật toán Deepfake: Kỹ thuật tổng hợp tuổi (Age Synthesis) được xếp vào nhóm tổng hợp hình ảnh và video (Image & Video Synthesis) trong hệ thống phân loại công nghệ Deepfake.
  • Phương pháp nhận diện khuôn mặt: Khóa luận khảo sát 4 thuật toán: Haar Cascade (Viola & Jones, 2001), HOG (Dalal & Triggs, 2005), SSD (Single Shot Detector; Liu et al., 2016) và MTCNN (Multi-task Cascaded Convolutional Networks; Zhang et al., 2016). Nhóm tác giả lựa chọn MTCNN với cấu trúc 3 tầng tích chập phân cấp (P-Net, R-Net, O-Net) kết hợp tháp ảnh (Image Pyramid) nhằm ưu tiên độ chính xác xác định vị trí và mốc đặc trưng, chấp nhận tốc độ xử lý thấp hơn các bộ phân loại nhanh.
  • Phương pháp chuyển đổi độ tuổi: Được phân loại thành các phương pháp truyền thống (dựa trên mô hình vật lý, dựa trên nguyên mẫu) và các phương pháp học sâu (dựa trên bản dịch như Cycle-GAN, dựa trên trình tự chuỗi mạng sinh sâu/RNN, dựa trên điều kiện như cGAN, chuẩn hóa bản đồ đặc trưng S2GAN, thao tác không gian tiềm ẩn VAE/GAN). Khóa luận chọn nhóm phương pháp dựa trên điều kiện (Condition-based methods) nhờ khả năng kiểm soát nhãn tuổi mục tiêu và tạo kết quả thẩm mỹ cao.
  • Phương pháp hoán đổi khuôn mặt: Khảo sát DeepFaceLab, DeepFaceLive và phương pháp phát hiện điểm đặc trưng (Landmark detection). Tác giả chọn kết hợp Dlib và OpenCV để tối ưu hóa tài nguyên phần cứng, tránh sự phức tạp và đòi hỏi cấu hình nặng của các công cụ deepfake độc lập.
Nhóm kỹ thuật Thuật toán khảo sát Phương án tác giả lựa chọn Lý do lựa chọn theo văn bản
Nhận diện khuôn mặt Haar Cascade, HOG, SSD, MTCNN MTCNN (P-Net, R-Net, O-Net) Độ chính xác định vị và điểm mốc cao hơn các phương pháp đơn giản.
Chuyển đổi độ tuổi Mô hình vật lý, Cycle-GAN, Sequence-based, cGAN, S2GAN Dựa trên điều kiện (LATS, SAM) Cho phép kiểm soát nhãn độ tuổi, chất lượng hình ảnh đầu ra thẩm mỹ.
Hoán đổi khuôn mặt DeepFaceLab, DeepFaceLive, Điểm đặc trưng (Dlib + OpenCV) Dlib và OpenCV (Landmark detection) Tiết kiệm tài nguyên tính toán, quy trình gọn nhẹ, độ chính xác tương đối tốt.

Nguồn dữ liệu sử dụng cho việc huấn luyện và thử nghiệm là bộ dữ liệu FFHQ (Flickr-Faces-HQ) do NVIDIA phát triển (Karras et al.), bao gồm 70.000 ảnh khuôn mặt độ phân giải cao thu thập từ Flickr, đa dạng về độ tuổi, giới tính, chủng tộc, điều kiện chiếu sáng và góc chụp.

Thiết kế và triển khai

Hệ thống được thiết kế theo quy trình xử lý 2 giai đoạn: Giai đoạn 1 xử lý chuyển đổi tuổi trên ảnh tĩnh; Giai đoạn 2 nhận video đầu vào, trích xuất chuỗi khung hình (frame), nhận diện khuôn mặt bằng MTCNN, chuyển đổi độ tuổi qua mô hình sinh, hoán đổi khuôn mặt bằng Dlib/OpenCV trên từng khung hình và ghép chuỗi ảnh lại thành video hoàn chỉnh.

Quy trình kỹ thuật hoán đổi khuôn mặt 9 bước bằng Dlib và OpenCV được triển khai như sau:

  1. Đọc ảnh khuôn mặt nguồn (face) và ảnh cơ thể/khung hình đích (body).
  2. Chuyển đổi định dạng ảnh màu sang ảnh thang độ xám (grayscale) thông qua hàm cv2.cvtColor.
  3. Khởi tạo ma trận rỗng theo kích thước ảnh nguồn và xác định kích thước ảnh đích.
  4. Trích xuất các điểm mốc khuôn mặt và dùng module convexHull của OpenCV để xác định đường viền bao quanh khuôn mặt.
  5. Tạo lưới các tam giác Delaunay (Delaunay triangulation) nối từ các điểm mốc đặc trưng.
  6. Xác định các mốc tương ứng trên ảnh khuôn mặt thứ hai theo cùng quy trình.
  7. Biến đổi affine khuôn mặt thứ nhất để căn chỉnh hướng và kích thước khớp với khuôn mặt thứ hai.
  8. Thay thế vùng khuôn mặt đã chuyển đổi vào vị trí khuôn mặt đích.
  9. Hợp nhất đường ranh giới khuôn mặt với phần thân mới bằng module seamlessClone của OpenCV để loại bỏ vết cắt ghép.

Hệ thống ứng dụng hoàn chỉnh được xây dựng trên mô hình kiến trúc phân tán và triển khai trên nền tảng điện toán đám mây Google Cloud Platform (GCP):

Thành phần hệ thống Công nghệ / Dịch vụ sử dụng Vai trò chức năng
Front-end Angular Framework Giao diện người dùng web (UI), nhận tệp ảnh/video và hiển thị kết quả qua 3 bước xử lý.
Back-end Java Spring Boot Xử lý logic nghiệp vụ, điều phối yêu cầu API, xác thực và quản lý tiến trình.
Dịch vụ AI (Serving) Python Flask API, Docker Đóng gói môi trường chạy mô hình LATS, SAM và thuật toán xử lý khung hình Dlib/OpenCV.
Lưu trữ dữ liệu Google Cloud Storage Lưu trữ các tệp ảnh tĩnh, video gốc tải lên và video thành phẩm thông qua Bucket.
Môi trường máy chủ Google App Engine Triển khai và vận hành khối dịch vụ Back-end Spring Boot (gcloud app deploy).
Điện toán Serverless Google Cloud Run Thực thi các container Docker chứa dịch vụ xử lý AI (Age Synthesis Services).

Nội dung chính theo từng chương

Chương 1: Giới thiệu và mô tả đề tài

Chương mở đầu phân tích tính cấp thiết của công nghệ biến đổi độ tuổi trong sản xuất phim ảnh, chỉ ra các trường hợp ứng dụng thực tế khi tuổi tác diễn viên không khớp với dòng thời gian của kịch bản. Chương này thiết lập 5 mục tiêu nghiên cứu cụ thể, xác định đối tượng nghiên cứu là các tập dữ liệu khuôn mặt theo chuỗi thời gian, giới hạn phạm vi khảo sát trong 5 năm gần nhất và phân kỳ đề tài thành 4 nội dung công việc (khảo sát lý thuyết, thử nghiệm mô hình, xây dựng hệ thống web, viết báo cáo tổng kết).

Chương 2: Tổng quan về sự lão hóa khuôn mặt của con người (Cơ sở lý thuyết)

Chương 2 trình bày hai giai đoạn biến đổi giải phẫu và kết cấu da của khuôn mặt người. Tác giả phân loại vị trí của công nghệ tổng hợp tuổi trong bức tranh tổng thể của Deepfake. Phần trọng tâm phân tích nguyên lý toán học và cơ chế vận hành của 4 giải pháp phát hiện khuôn mặt (Haar Cascade, HOG, SSD, MTCNN) và các nhóm kỹ thuật chuyển đổi tuổi (mô hình vật lý, Cycle-GAN, mạng tái hiện tuần tự, cGAN, S2GAN). Cuối chương là phân tích ưu - nhược điểm của các phương pháp hoán đổi mặt (DeepFaceLab, DeepFaceLive, Dlib + OpenCV), thiết lập cơ sở lý thuyết cho pipeline biến đổi khuôn mặt trên video.

Chương 3: Thực nghiệm và đánh giá

Chương này mô tả chi tiết quá trình huấn luyện và chạy thử nghiệm hai mô hình:

  • Lifespan Age Transformation Synthesis (LATS): Sử dụng kiến trúc GAN đa miền (multi-domain GAN) với bộ sinh có điều kiện (gồm Identity Encoder, Mapping Network, Decoder dùng modulated convolutions) và Discriminator kèm Age Encoder. Mô hình cho phép nội suy liên tục các nhóm tuổi từ 0 đến 70 tuổi từ một ảnh đầu vào duy nhất dựa trên bộ dữ liệu FFHQ đã gán nhãn ngữ nghĩa.
  • Semi-Parametric Image-to-Image Translation for Face Aging (SAM): Xây dựng trên kiến trúc StyleGAN2 kết hợp bộ mã hóa pSp (pixel2style2pixel) trích xuất 18 vectơ phong cách. Mô hình sử dụng hàm mất mát chu kỳ (cycle loss), mất mát L2 và mất mát cảm nhận LPIPS kết hợp mạng hồi quy tuổi (age regression network) để biến đổi trong khoảng từ 5 đến 100 tuổi. Chương 3 cũng ghi nhận quá trình cài đặt môi trường huấn luyện (CUDA, PyTorch, WSL2 Ubuntu 22.04, Anaconda) và thực nghiệm quy trình hoán đổi 9 bước bằng Dlib/OpenCV, đưa ra các kết quả chuyển đổi trên ảnh và video.

Chương 4: Xây dựng và triển khai hệ thống

Chương 4 tập trung vào phân tích yêu cầu kỹ thuật và xây dựng hệ thống phần mềm hoàn chỉnh. Nội dung bao gồm bảng mô tả yêu cầu chức năng (chuyển đổi tuổi qua ảnh, chuyển đổi tuổi qua video), danh sách Actor, danh sách Use Case, sơ đồ Activity và sơ đồ Sequence chi tiết cho từng luồng thao tác. Tác giả trình bày thiết kế giao diện Angular với quy trình 3 bước (Bước 1: Nhập và xem trước video; Bước 2: Tạo khuôn mặt theo độ tuổi mong muốn; Bước 3: Hoán đổi và kết xuất video). Toàn bộ quy trình đóng gói Docker container, thiết lập Service Account Key JSON, cấu hình Bucket trên Cloud Storage và triển khai App Engine, Cloud Run trên nền tảng Google Cloud Platform (GCP) được ghi nhận chi tiết kèm hình ảnh minh chứng.

Chương 5: Kết luận và hướng phát triển

Chương cuối tóm tắt các kết quả kỹ thuật đạt được của khóa luận: đã nghiên cứu thành công các mô hình học sâu về tổng hợp tuổi, hoàn thiện phương pháp hoán đổi khuôn mặt nhẹ bằng Dlib/OpenCV, và đóng gói thành công giải pháp lên đám mây GCP. Đồng thời, chương này chỉ ra các hạn chế kỹ thuật hiện tại và đề xuất các hướng nâng cấp trong tương lai.

Kết quả và đóng góp

Khóa luận đạt được các kết quả thực nghiệm và kỹ thuật cụ thể:

  • Huấn luyện và đánh giá thực nghiệm thành công hai mô hình học sâu biến đổi tuổi tiên tiến trên tập dữ liệu chuẩn FFHQ (70.000 ảnh):
Tiêu chí so sánh Mô hình LATS (Roy Or-El et al., 2020) Mô hình SAM (Yuval Alaluf et al., 2021)
Kiến trúc cốt lõi Multi-domain GAN, Modulated Convolutions StyleGAN2, Bộ mã hóa pSp (pixel2style2pixel)
Khoảng tuổi chuyển đổi Từ 0 đến 70 tuổi Từ 5 đến 100 tuổi
Cơ chế mã hóa Tách biệt Identity Encoder và Mapping Network Trích xuất 18 vectơ phong cách (style vectors)
Cơ chế ràng buộc Mỏ neo tuổi (anchors), Age Encoder nội suy Mất mát chu kỳ (cycle loss), L2, LPIPS, Age Regressor
Đặc điểm diện mạo Xử lý tốt cả hình dạng hộp sọ và nếp nhăn bề mặt Duy trì độ nhất quán danh tính và chất lượng ảnh cao
  • Xây dựng thành công thuật toán hoán đổi khuôn mặt trên từng khung hình video sử dụng kết hợp Dlib và OpenCV thông qua phép biến đổi tam giác Delaunay và hòa trộn seamlessClone, giúp loại bỏ yêu cầu phần cứng quá lớn của các bộ công cụ DeepFaceLab truyền thống.
  • Thiết kế và triển khai hoàn chỉnh một hệ thống ứng dụng web trên nền tảng đám mây Google Cloud Platform, phân tách độc lập giữa giao diện người dùng (Angular), dịch vụ điều hướng nghiệp vụ (Java Spring Boot trên App Engine) và dịch vụ xử lý mô hình AI (Flask API trong container Docker trên Cloud Run).
  • Đóng góp thực tiễn của khóa luận là đã kết nối nghiên cứu lý thuyết về mô hình học sâu sinh ảnh (Generative Models) thành một pipeline công nghệ ứng dụng cụ thể, có khả năng phục vụ trực tiếp cho các đoàn làm phim xử lý biến đổi tuổi diễn viên trên video ngắn.

Hạn chế và hướng nghiên cứu tiếp

Khóa luận chỉ rõ các hạn chế kỹ thuật trong quá trình thực hiện:

  • Tài nguyên và thời gian xử lý: Việc áp dụng quy trình xử lý trích xuất, chuyển đổi và ghép từng khung hình (frame-by-frame) đòi hỏi thời gian xử lý video tương đối lớn, chưa đáp ứng được yêu cầu thời gian thực.
  • Tính tự nhiên của đường viền ghép mặt: Phương pháp hoán đổi bằng Dlib và OpenCV vẫn bộc lộ khuyết điểm khi khuôn mặt trong video có góc nghiêng lớn, chuyển động quá nhanh hoặc điều kiện ánh sáng thay đổi liên tục giữa các khung hình.

Hướng nghiên cứu tiếp theo được tác giả đề xuất:

  • Cải thiện tốc độ xử lý của pipeline chuyển đổi video nhằm tối ưu hóa thời gian kết xuất sản phẩm.
  • Nghiên cứu các phương pháp hoán đổi khuôn mặt nâng cao để khắc phục hiện tượng mất nét hoặc sai lệch màu sắc ở các góc quay nghiêng và điều kiện ánh sáng phức tạp.
  • Tinh chỉnh mô hình sinh để duy trì độ nhận diện danh tính nhân vật cao hơn khi chuyển đổi sang các khoảng tuổi quá cách biệt.

Giá trị tham khảo

Báo cáo khóa luận có giá trị tham khảo rõ ràng cho sinh viên, học viên và kỹ sư thuộc các chuyên ngành Hệ thống Thông tin, Khoa học Máy tính, Trí tuệ Nhân tạo và Kỹ thuật Phần mềm:

  • Tài liệu tham khảo chuyên sâu về mô hình tổng hợp tuổi: Cung cấp thông tin tổng hợp, phân loại chi tiết và quy trình cài đặt thực tế của hai mô hình LATS và SAM trên môi trường máy trạm (WSL2, CUDA, PyTorch).
  • Quy trình thị giác máy tính thực nghiệm: Hướng dẫn từng bước cách sử dụng các hàm của OpenCV và Dlib để thực hiện nhận diện điểm mốc, chia lưới tam giác và hòa trộn ảnh khuôn mặt.
  • Kiến trúc triển khai hệ thống AI hoàn chỉnh: Cung cấp mẫu thiết kế hệ thống thực tế kết hợp giữa Angular, Spring Boot và mô hình AI được container hóa bằng Docker, chạy phân tán trên các dịch vụ đám mây của Google Cloud Platform (App Engine, Cloud Run, Cloud Storage).

Câu hỏi thường gặp

1. Tại sao nhóm tác giả lại lựa chọn MTCNN thay vì Haar Cascade hay SSD để nhận diện khuôn mặt?
Dù Haar Cascade và SSD có ưu thế về tốc độ xử lý nhanh, khóa luận ưu tiên độ chính xác định vị và nhận dạng các điểm mốc (mắt, mũi, miệng) phục vụ cho các bước biến đổi hình học phía sau. MTCNN sử dụng cấu trúc 3 mạng tích chập tầng (P-Net, R-Net, O-Net) giúp hạn chế tối đa sai lệch vị trí khuôn mặt trong từng khung hình video.

2. Nguồn dữ liệu huấn luyện chính của các mô hình trong nghiên cứu là gì?
Nghiên cứu sử dụng tập dữ liệu FFHQ (Flickr-Faces-HQ) gồm hơn 70.000 hình ảnh khuôn mặt người có độ phân giải cao do NVIDIA công bố. Tập dữ liệu này đã được gán nhãn đầy đủ về độ tuổi, giới tính và phân đoạn ngữ nghĩa.

3. Sự khác nhau căn bản về phạm vi chuyển đổi tuổi giữa mô hình LATS và SAM là gì?
Mô hình LATS dựa trên kiến trúc GAN đa miền để mô phỏng quá trình lão hóa liên tục trong phạm vi từ 0 đến 70 tuổi (tập trung mô phỏng cả sự thay đổi khung xương đầu từ trẻ em đến người lớn). Trong khi đó, mô hình SAM xây dựng trên nền tảng StyleGAN2 kết hợp mạng hồi quy tuổi, cho phép dịch chuyển diện mạo trong dải tuổi rộng hơn từ 5 đến 100 tuổi.

4. Vì sao nhóm nghiên cứu không sử dụng DeepFaceLab để hoán đổi khuôn mặt trên video?
Mặc dù DeepFaceLab cho chất lượng hoán đổi tốt, công cụ này đòi hỏi cấu hình phần cứng rất lớn và quy trình huấn luyện, ghép mặt phức tạp. Nhóm tác giả đã lựa chọn giải pháp nhận diện điểm mốc bằng Dlib kết hợp các phép biến đổi hình học và hòa trộn của OpenCV để tiết kiệm tài nguyên tính toán nhưng vẫn đảm bảo độ chính xác tương đối tốt cho hệ thống web.

5. Các dịch vụ cụ thể nào của Google Cloud Platform (GCP) được sử dụng để vận hành ứng dụng?
Hệ thống sử dụng 3 dịch vụ chính của GCP: Google Cloud Storage (quản lý bucket lưu trữ tệp ảnh và video), Google App Engine (triển khai mã nguồn máy chủ Back-end Java Spring Boot) và Google Cloud Run (chạy các container Docker chứa dịch vụ xử lý AI Python Flask).

Kết luận

Khóa luận tốt nghiệp của tác giả Tạ Quang Huy và Lê Thị Hồng Cúc đã giải quyết trọn vẹn bài toán ứng dụng thị giác máy tính vào quy trình biến đổi độ tuổi nhân vật trong video làm phim. Bằng việc thực nghiệm hai mô hình sinh hiện đại (LATS, SAM) kết hợp thuật toán hoán đổi khuôn mặt qua Dlib/OpenCV, nghiên cứu đã xây dựng thành công pipeline kỹ thuật từ hình ảnh tĩnh đến chuỗi khung hình chuyển động. Toàn bộ giải pháp được đóng gói và vận hành ổn định trên nền tảng đám mây Google Cloud Platform, tạo ra một hệ thống ứng dụng web hoàn chỉnh có giá trị thực tiễn và tính tham khảo cao trong lĩnh vực kỹ xảo điện ảnh và trí tuệ nhân tạo ứng dụng.