DANH MỤC HÌNH VẼHình 1.1: Minh họa Face Swap Hình 1.2: Minh họa Voice Cloning Hình 1.3: Minh họa Deepfakes toàn thân Hình 1.4: Minh họa Deepfakes hình ảnh Hình 1.5: Minh họa Deepfakes âm
CĂN BẢN VỀ DEEPFAKE VÀ CÁC TỆP DỮ LIỆU PHỔ BIẾN, PHƯƠNG PHÁP TẠO RA DEEPFAKE
Khái niệm Deepfake và các loại Deepfake
Deepfake (một từ được kết hợp từ của "deep learning" và "fake" trong tiếng
Deepfake là công nghệ sử dụng trí tuệ nhân tạo và máy học để thay thế chân dung của một người bằng chân dung của người khác, tạo ra nội dung hình ảnh và âm thanh có thể gây nhầm lẫn và khó phân biệt với bản gốc Kỹ thuật này dựa trên các phương pháp học sâu và thường sử dụng các kiến trúc mạng thần kinh như bộ mã hóa tự động và mạng đối kháng (GAN) để thực hiện quá trình tạo ra deepfakes.
1.1.2 Các loại Deepfake phổ biến hiện nay
Face Swap là một trong những loại Deepfake phổ biến nhất, nơi khuôn mặt của một người được thay thế bằng khuôn mặt của người khác Công nghệ này thường được sử dụng để tạo ra các video hài hước hoặc để phát tán thông tin sai lệch.
Hình 1.1: Minh họa Face Swap
Voice Cloning là một hình thức deepfake sử dụng trí tuệ nhân tạo để tạo ra bản sao giọng nói của một người Công nghệ này có thể được lợi dụng để giả mạo lời nói của người khác, cho phép tạo ra các video hoặc bài đăng âm thanh không có thật, gây ra nhiều mối lo ngại về tính xác thực và đạo đức trong việc sử dụng.
Hình 1.2: Minh họa Voice Cloning
Deepfakes toàn thân là một công nghệ sử dụng trí tuệ nhân tạo để tạo ra video hoặc hình ảnh giả mạo toàn thân của một người Loại deepfake này thường được áp dụng để sản xuất các video giả về những người nổi tiếng, góp phần vào việc lan truyền thông tin sai lệch.
Hình 1.3: Minh họa Deepfakes toàn thân
Deepfakes hình ảnh là công nghệ sử dụng trí tuệ nhân tạo để chỉnh sửa và thao tác hình ảnh Công nghệ này cho phép thay đổi biểu cảm khuôn mặt, thêm hoặc xóa chi tiết trong ảnh, và thậm chí tạo ra những nhân vật hoàn toàn mới.
Hình 1.4: Minh họa Deepfakes hình ảnh
Deepfakes âm thanh là công nghệ sử dụng trí tuệ nhân tạo để chỉnh sửa và thay đổi âm thanh Loại deepfake này có khả năng biến đổi giọng nói của một người, thêm hoặc xóa âm thanh trong bản ghi, và thậm chí tạo ra các bài phát biểu mới hoàn toàn.
Hình 1.5: Minh họa Deepfakes âm thanh
Tìm hiểu về học máy, học sâu và các phương pháp tạo ra Deepfake
1.2.1 Tìm hiểu về học sâu, học máy (Deep learning, Machine learning)
Học máy, một nhánh của trí tuệ nhân tạo, cho phép hệ thống tự động cải thiện mà không cần lập trình cụ thể Các thuật toán học máy có khả năng nhận diện mẫu từ dữ liệu và đưa ra dự đoán khi tiếp nhận dữ liệu mới.
Trong học máy, có ba loại mô hình chính thường được áp dụng: mô hình có giám sát, mô hình không giám sát và mô hình tăng cường.
- Học có giám sát (Supervised machine learning):
Học có giám sát, hay học máy có giám sát, là một lĩnh vực trong học máy và trí tuệ nhân tạo, được xác định bởi việc sử dụng các tập dữ liệu đã được gán nhãn để huấn luyện thuật toán Mục tiêu của phương pháp này là phân loại dữ liệu hoặc dự đoán kết quả một cách chính xác.
Khi dữ liệu được nhập vào mô hình, nó sẽ điều chỉnh trọng số để đạt được sự phù hợp thông qua quá trình xác thực chéo Học có giám sát hỗ trợ các tổ chức giải quyết nhiều vấn đề thực tiễn quy mô lớn, chẳng hạn như phân loại thư rác trong hộp thư đến Phương pháp này cho phép xây dựng các mô hình học máy với độ chính xác cao.
Học có giám sát là phương pháp sử dụng bộ dữ liệu huấn luyện để dạy các mô hình tạo ra đầu ra mong muốn Bộ dữ liệu này bao gồm các đầu vào và đầu ra chính xác, giúp mô hình học hỏi và cải thiện theo thời gian Thuật toán sẽ đánh giá độ chính xác của mình thông qua hàm mất mát và điều chỉnh cho đến khi lỗi được giảm thiểu.
Hình 1.6: Hai giai đoạn xây dựng và thử nghiệm hàm ánh xạ
Học có giám sát có thể được chia thành hai loại vấn đề trong khai thác dữ liệu: phân loại và hồi quy.
Phân loại là quá trình sử dụng thuật toán để phân bổ chính xác dữ liệu thử nghiệm vào các danh mục cụ thể, nhận diện các thực thể trong tập dữ liệu và đưa ra kết luận về cách gán nhãn cho chúng Một số thuật toán phân loại phổ biến bao gồm bộ phân loại tuyến tính, máy vectơ hỗ trợ (SVM), cây quyết định, k-nearest neighbor và random forest, sẽ được mô tả chi tiết hơn trong bài viết này.
Hồi quy là phương pháp phân tích giúp hiểu rõ mối quan hệ giữa biến phụ thuộc và biến độc lập, thường được sử dụng để dự đoán các giá trị như doanh thu bán hàng của doanh nghiệp Một số thuật toán hồi quy phổ biến bao gồm hồi quy tuyến tính, hồi quy logistic và hồi quy đa thức.
Các thuật toán học có giám sát là một phần quan trọng trong quy trình học máy, sử dụng nhiều phương pháp và kỹ thuật khác nhau Một số phương pháp phổ biến được triển khai chủ yếu qua các ngôn ngữ lập trình như R hoặc Python.
Mạng nơ-ron, chủ yếu được sử dụng trong học sâu, mô phỏng khả năng kết nối của não người thông qua các lớp nút Mỗi nút bao gồm đầu vào, trọng số, độ lệch và đầu ra; khi giá trị đầu ra vượt ngưỡng nhất định, nút sẽ "kích hoạt" và truyền dữ liệu tới lớp tiếp theo Mạng nơ-ron học các hàm ánh xạ thông qua phương pháp học có giám sát, điều chỉnh dựa trên hàm mất mát qua quá trình giảm dần độ dốc Khi hàm chi phí gần bằng không, mô hình trở nên đáng tin cậy trong việc đưa ra dự đoán chính xác.
Naive Bayes là một phương pháp phân loại dựa trên nguyên lý độc lập có điều kiện từ Định lý Bayes, cho thấy rằng sự xuất hiện của một tính năng không ảnh hưởng đến sự xuất hiện của tính năng khác trong xác suất của kết quả Có ba loại bộ phân loại Naive Bayes: Multinomial Naive Bayes, Bernoulli Naive Bayes và Gaussian Naive Bayes Kỹ thuật này thường được áp dụng trong phân loại văn bản, nhận diện thư rác và hệ thống đề xuất.
Hồi quy tuyến tính là một phương pháp thống kê quan trọng được sử dụng để xác định mối quan hệ giữa một biến phụ thuộc và một hoặc nhiều biến độc lập, nhằm dự đoán kết quả trong tương lai Khi chỉ có một biến độc lập và một biến phụ thuộc, phương pháp này được gọi là hồi quy tuyến tính đơn giản Ngược lại, khi có nhiều biến độc lập, ta sử dụng hồi quy tuyến tính đa biến thông qua phương pháp bình phương nhỏ nhất Đặc trưng của hồi quy tuyến tính là kết quả được thể hiện dưới dạng một đường thẳng trên đồ thị.
Hồi quy logistic là phương pháp thống kê được sử dụng khi biến phụ thuộc là phân loại, với đầu ra nhị phân như "đúng" và "sai" hoặc "có" và "không" Khác với hồi quy tuyến tính, hồi quy logistic tập trung vào việc giải quyết các vấn đề phân loại nhị phân, ví dụ như nhận diện thư rác.
- Học không giám sát (Unsupervised machine learning):
Học không giám sát, hay học máy không giám sát, là phương pháp sử dụng thuật toán để phân tích và phân nhóm các tập dữ liệu không có nhãn Các thuật toán này giúp khám phá các mẫu ẩn trong dữ liệu mà không cần sự can thiệp từ con người.
Khả năng nhận diện các điểm tương đồng và khác biệt trong thông tin của học không giám sát biến nó thành giải pháp tối ưu cho phân tích dữ liệu khám phá, chiến lược bán chéo, phân khúc khách hàng và nhận diện hình ảnh.
Hình 1.7: Hai giai đoạn sử dụng học không giám sát
Các phương pháp học tập không giám sát phổ biến:
Phân cụm là một kỹ thuật khai thác dữ liệu nhằm nhóm các dữ liệu chưa được gắn nhãn dựa trên sự tương đồng hoặc khác biệt giữa chúng Các thuật toán phân cụm xử lý dữ liệu thô và phân loại chúng thành các nhóm có cấu trúc hoặc mẫu thông tin rõ ràng Có nhiều loại thuật toán phân cụm, bao gồm phân cụm không chồng chéo, phân cụm chồng chéo, phân cụm phân cấp và phân cụm xác suất Phân cụm độc quyền, hay còn gọi là phân cụm "cứng", cho phép một điểm dữ liệu chỉ thuộc về một cụm duy nhất, với K-means là một ví dụ điển hình Phân cụm theo thứ bậc, hay phân tích cụm theo thứ bậc, là một phương pháp khác trong lĩnh vực này.
(HCA), là một thuật toán phân cụm không giám sát và có thể được phân loại thành hai loại: kết tụ và phân chia.
Phân cụm kết tụ được xem là “phương pháp tiếp cận từ dưới lên”.
Các điểm dữ liệu ban đầu được phân loại thành các nhóm riêng lẻ, sau đó được kết hợp dần dần dựa trên sự tương đồng cho đến khi tạo thành một cụm thống nhất.
Các tệp dữ liệu phổ biến về Deepfake
FaceForensics++ là một bộ dữ liệu và công cụ mã nguồn mở được thiết kế để đánh giá và phát triển các phương pháp phát hiện và giảm thiểu deepfake Deepfake là những video hoặc âm thanh bị chỉnh sửa nhằm làm cho một người nói hoặc thực hiện hành động mà họ không thực sự làm Bộ dữ liệu này cung cấp nền tảng toàn diện cho nghiên cứu về deepfake.
Hơn 1000 video deepfake được tạo ra từ 977 video YouTube, bao gồm nhiều loại deepfake khác nhau như face swapping, lip syncing, và age progression.
Dữ liệu được phân chia thành các tập đào tạo, xác nhận và đánh giá, tạo điều kiện cho các nhà nghiên cứu so sánh và đánh giá hiệu suất của các phương pháp khác nhau một cách dễ dàng.
Bộ công cụ mã nguồn mở này cung cấp mã nguồn để tạo ra deepfake, cũng như đào tạo và đánh giá các phương pháp phát hiện deepfake, đồng thời hỗ trợ trực quan hóa kết quả một cách hiệu quả.
Bộ công cụ này hỗ trợ nhiều ngôn ngữ lập trình phổ biến như Python và C++, giúp các nhà nghiên cứu dễ dàng tích hợp vào dự án của họ.
FaceForensics++ được sử dụng rộng rãi trong cộng đồng nghiên cứu deepfake để phát triển và đánh giá các phương pháp mới để phát hiện và giảm thiểu deepfake.
Dữ liệu và công cụ này đã được áp dụng trong nhiều nghiên cứu và hội nghị danh tiếng, đóng vai trò quan trọng trong việc thúc đẩy sự phát triển trong lĩnh vực chống deepfake.
Ngoài nghiên cứu, FaceForensics++ cũng có thể được sử dụng để giáo dục công chúng về deepfake và tác động tiềm ẩn của chúng.
FaceForensics++ cung cấp một tập dữ liệu deepfake lớn và đa dạng, giúp các nhà nghiên cứu phát triển các phương pháp phát hiện deepfake mạnh mẽ hơn.
Bộ công cụ mã nguồn mở dễ sử dụng và tích hợp, giúp các nhà nghiên cứu dễ dàng tham gia vào nghiên cứu deepfake.
Dữ liệu và công cụ này thúc đẩy sự hợp tác và chia sẻ kiến thức trong cộng đồng nghiên cứu deepfake.
FaceForensics++ tập trung vào deepfake video, không bao gồm các loại deepfake khác như audio deepfake hoặc text deepfake.
Dữ liệu deepfake trong FaceForensics++ được tạo ra từ các video YouTube, có thể không đại diện cho tất cả các loại deepfake hiện có.
Việc phát hiện deepfake vẫn là một thách thức khó khăn, và không có phương pháp nào hoàn hảo để phát hiện tất cả các loại deepfake.
DFDC (Deepfake Detection Challenge) là một sáng kiến quan trọng do Meta
AI đang đóng vai trò quan trọng trong việc phát triển các công nghệ tiên tiến nhằm phát hiện và ngăn chặn deepfake Deepfake là các video hoặc âm thanh đã được chỉnh sửa, khiến người xem tin rằng ai đó đã nói hoặc làm điều gì đó mà họ thực tế không thực hiện.
Khuyến khích các nhà nghiên cứu và kỹ sư phát triển các thuật toán mới để phát hiện deepfake hiệu quả hơn.
Tạo ra một tập dữ liệu deepfake quy mô lớn và đa dạng để đánh giá hiệu suất của các thuật toán này.
Nâng cao nhận thức về mối đe dọa của deepfake và thúc đẩy sự hợp tác trong cộng đồng nghiên cứu.
Tập dữ liệu DFDC chứa hơn 100.000 video được sản xuất bởi 3.426 diễn viên chuyên nghiệp, sử dụng nhiều kỹ thuật deepfake khác nhau Tập dữ liệu này được phân chia thành các phần đào tạo, xác nhận và đánh giá, nhằm đảm bảo tính minh bạch và khách quan trong quá trình đánh giá.
DFDC thường xuyên tổ chức các cuộc thi cho các nhà nghiên cứu và kỹ sư, nơi họ gửi các bài dự thi nhằm phát hiện deepfake trong tập dữ liệu Các bài dự thi này được đánh giá dựa trên độ chính xác cao và tỷ lệ sai sót thấp trong khả năng phát hiện deepfake.
DFDC áp dụng các chỉ số đánh giá hiệu suất tiên tiến để xác định hiệu quả của các thuật toán phát hiện deepfake Những chỉ số này bao gồm độ chính xác, độ nhạy, độ đặc hiệu và tỷ lệ sai sót, giúp đánh giá chính xác khả năng phát hiện của hệ thống.
DFDC đã thu hút sự tham gia của hàng nghìn nhà nghiên cứu và kỹ sư từ khắp nơi trên thế giới.
Nhiều thuật toán phát hiện deepfake mới và tiên tiến đã được phát triển nhờ DFDC.
DFDC đã góp phần nâng cao nhận thức về mối đe dọa của deepfake và
- Tầm quan trọng của DFDC:
DFDC đóng vai trò quan trọng trong việc phát triển công nghệ chống deepfake, giúp phát hiện hiệu quả để bảo vệ người dùng khỏi thông tin sai lệch và các tác hại tiềm ẩn Nền tảng mà DFDC tạo ra thúc đẩy sự đổi mới và hợp tác, đưa cộng đồng nghiên cứu tiến gần hơn đến mục tiêu phát hiện và ngăn chặn deepfake một cách hiệu quả.
Celeb-DF là một tập dữ liệu video deepfake được phát triển bởi Đại học
Tập dữ liệu từ Đại học Buffalo, được công bố vào năm 2019, là một nguồn tài nguyên quý giá cho nghiên cứu về phát hiện và chống lại deepfake Deepfake là loại video hoặc âm thanh bị chỉnh sửa nhằm khiến một người nói hoặc làm điều gì đó mà họ không thực sự thực hiện.
- Đặc điểm của Celeb-DF:
Nội dung: Celeb-DF bao gồm hơn 5.600 video deepfake được tạo từ 100 người nổi tiếng, với nhiều loại deepfake khác nhau như face swapping, lip syncing, và age progression.
Chất lượng: Video deepfake được tạo bằng các kỹ thuật tiên tiến, đảm bảo chất lượng cao và độ chân thực cao.
Dữ liệu được phân chia thành ba tập: tập đào tạo, tập xác nhận và tập đánh giá, nhằm hỗ trợ các nhà nghiên cứu trong việc xây dựng và đánh giá hiệu quả các mô hình phát hiện deepfake.
Ưu điểm: Celeb-DF cung cấp video deepfake đa dạng và chất lượng cao từ nhiều người nổi tiếng, phù hợp cho nhiều nghiên cứu về phát hiện deepfake.
Một nhược điểm đáng chú ý là tập dữ liệu có thể không phản ánh đầy đủ tất cả các loại deepfake hiện có, dẫn đến sự không đồng đều trong số lượng video deepfake của từng người nổi tiếng.
Nghiên cứu về deepfake đã chỉ ra rằng Celeb-DF là công cụ phổ biến trong cộng đồng nghiên cứu, giúp phát triển và đánh giá các phương pháp phát hiện deepfake mới.
Đánh giá mô hình: Tập dữ liệu cung cấp một nền tảng khách quan để đánh giá hiệu suất của các mô hình phát hiện deepfake.
Giáo dục: Tập dữ liệu có thể được sử dụng để giáo dục công chúng về deepfake và tác động tiềm ẩn của chúng.
* UADFV (Utrecht University DeepFake Video)
UADFV là một tập dữ liệu video deepfake được phát triển bởi Đại học Utrecht
(Utrecht University) ở Hà Lan Mặc dù không nổi tiếng bằng FaceForensics++ (FF+ +), UADFV vẫn là một nguồn dữ liệu hữu ích cho nghiên cứu về phát hiện deepfake.
Nội dung: UADFV chứa các video deepfake của 10 diễn viên chuyên nghiệp, với một số lượng video giới hạn so với các tập dữ liệu khác.
Phương pháp tạo deepfake: Các video deepfake trong UADFV được tạo bằng nhiều kỹ thuật deepfake phổ biến, chẳng hạn như face swapping và lip syncing.
UADFV được phân chia thành các tập dữ liệu đào tạo, xác nhận và đánh giá, giúp các nhà nghiên cứu xây dựng và đánh giá hiệu quả các mô hình phát hiện deepfake.
TÌM HIỂU VỀ CÁCH THỨC XÂY DỰNG TẬP DỮ LIỆU VÀ TIẾN HÀNH THU THẬP DỮ LIỆU ĐỂ XÂY DỰNG TẬP DỮ LIỆU CHO NGƯỜI VIỆT
Tìm hiểu về cách thức xây dựng bộ dữ liệu
Mục tiêu của nghiên cứu là xác định và thu thập các tập dữ liệu hình ảnh chất lượng cao về khuôn mặt của người Việt Nam, đồng thời đảm bảo tính đa dạng trong dữ liệu để phục vụ cho các ứng dụng công nghệ và nghiên cứu.
Bộ dữ liệu ảnh phục vụ phát triển công nghệ deepfake cho người Việt Nam cần bao gồm hình ảnh khuôn mặt chất lượng cao, đảm bảo tính đại diện và đa dạng Hình ảnh phải được chụp từ nhiều góc độ khác nhau và trong các điều kiện ánh sáng đa dạng, ghi lại nhiều biểu cảm khuôn mặt phong phú Bộ dữ liệu cần đại diện cho sự đa dạng vùng miền, độ tuổi, giới tính và kiểu tóc Sau khi thu thập, cần tiền xử lý dữ liệu và áp dụng các kỹ thuật tăng cường để tạo biến thể ảnh Dữ liệu phải được lưu trữ an toàn, tuân thủ đạo đức và pháp luật, bao gồm việc xin phép từ người tham gia và bảo mật thông tin cá nhân Hình ảnh chất lượng cao sẽ là nền tảng quan trọng cho việc phát triển các tập dữ liệu deepfake hiệu quả, phù hợp với người Việt.
Thu thập dữ liệu để xây dựng tệp dữ liệu cho người việt
2.2.1 Chọn dữ liệu đầu vào
Dữ liệu đầu vào đóng vai trò quyết định trong hiệu suất và tính chính xác của mô hình học sâu, đặc biệt quan trọng trong các ứng dụng Deepfake Việc lựa chọn dữ liệu đầu vào cần phải đảm bảo tính chân thực và đa dạng để mô hình có thể tạo ra các sản phẩm giả mạo chất lượng cao, khó phân biệt với dữ liệu thật Đối với người Việt, điều này càng cần thiết hơn, vì dữ liệu đầu vào phải phản ánh chính xác các đặc điểm ngôn ngữ, văn hóa và biểu cảm khuôn mặt của người Việt.
* Tiêu chí chọn dữ liệu:
Độ phân giải cao là yếu tố quan trọng trong việc cung cấp dữ liệu hình ảnh và video, giúp mô hình học được các chi tiết nhỏ trên khuôn mặt như nếp nhăn và đường nét biểu cảm Việc sử dụng độ phân giải cao không chỉ cải thiện khả năng nhận diện mà còn nâng cao độ chân thực khi tái tạo hình ảnh.
- Sự đa dạng về ngữ cảnh và biểu cảm:
Để mô hình tái hiện chính xác các cảm xúc khác nhau, dữ liệu đầu vào cần bao gồm hình ảnh và video thể hiện đa dạng biểu cảm khuôn mặt như vui, buồn, giận dữ, ngạc nhiên và trung tính Việc này giúp mô hình học cách biểu cảm tự nhiên, từ đó tạo ra video giả mạo với cảm giác chân thực hơn.
- Nguồn dữ liệu hợp pháp:
Việc thu thập dữ liệu cần tuân thủ nghiêm ngặt các quy định pháp luật liên quan đến quyền riêng tư và sở hữu trí tuệ Dữ liệu phải được lấy từ các nguồn hợp pháp, và nếu có thể, cần có sự đồng ý của những cá nhân có mặt trong dữ liệu để tránh rủi ro pháp lý trong tương lai.
- Video từ mạng xã hội:
Các nền tảng như YouTube, TikTok và Facebook cung cấp một kho video phong phú với độ phân giải cao và nội dung đa dạng Tuy nhiên, khi thu thập dữ liệu từ những nền tảng này, người dùng cần chú ý đến vấn đề bản quyền và quyền riêng tư.
- Phim ảnh và chương trình truyền hình:
Phim và chương trình truyền hình cung cấp dữ liệu chất lượng cao với hình ảnh chuyên nghiệp và âm thanh rõ ràng Những video này thường chứa nhiều ngữ cảnh và biểu cảm đa dạng, giúp mô hình học hỏi được nhiều đặc điểm khác nhau của khuôn mặt.
- Cơ sở dữ liệu công cộng:
Các cơ sở dữ liệu công cộng, bao gồm kho dữ liệu mở và dữ liệu từ các dự án nghiên cứu, cung cấp tập dữ liệu chất lượng cao đã được chuẩn bị sẵn Những nguồn tài nguyên này thường có sẵn các tập dữ liệu đã được gắn nhãn, giúp dễ dàng sử dụng cho việc huấn luyện mô hình.
* Quy trình thu thập dữ liệu:
- Xác định mục tiêu thu thập:
Trước khi tiến hành thu thập dữ liệu, việc xác định rõ mục tiêu là rất quan trọng, chẳng hạn như tạo ra mô hình Deepfake có khả năng tái hiện chính xác giọng nói và khuôn mặt của người Việt từ các vùng miền khác nhau Mục tiêu này sẽ định hướng quy trình thu thập và giúp lựa chọn các nguồn dữ liệu phù hợp.
- Tải dữ liệu từ nguồn:
Dữ liệu có thể được tải xuống từ các nguồn xác định trước thông qua các công cụ tự động như web scrapers hoặc API Khi thực hiện việc tải dữ liệu, cần chú ý đến chất lượng và định dạng của nó để đảm bảo tính phù hợp cho việc huấn luyện mô hình Đối với tệp video, các định dạng phổ biến như MP4 hoặc AVI là cần thiết, trong khi âm thanh thường được lưu trữ dưới dạng WAV hoặc MP3.
Sau khi thu thập, dữ liệu cần được chuyển đổi sang định dạng phù hợp với mô hình học sâu, chẳng hạn như trích xuất khung hình từ video thành tệp hình ảnh hoặc chuyển đổi âm thanh thành các đoạn ngắn Quá trình này phải được thực hiện cẩn thận để tránh mất mát thông tin và đảm bảo chất lượng dữ liệu.
- Lưu trữ và quản lý dữ liệu:
Sau khi thu thập dữ liệu, việc lưu trữ trong một cơ sở dữ liệu có cấu trúc tốt là cần thiết để đảm bảo khả năng truy xuất và quản lý dễ dàng Lưu trữ cũng nên bao gồm siêu dữ liệu để mô tả các đặc điểm quan trọng như nguồn gốc, định dạng và các nhãn đã được gắn.
Quá trình thu thập dữ liệu từ nền tảng Kaggle đã sử dụng bộ dữ liệu "Vietnamese Celebrity Faces", bao gồm 106 thư mục chứa ảnh của 107 ca sĩ nổi tiếng tại Việt Nam Tổng cộng, 8557 ảnh đã được thu thập, với dung lượng lưu trữ khoảng 81.05MB.
Hình 2.1: Hình ảnh dữ liệu đã được thu thập và lưu trữ
2.2.3 Xử lý dữ liệu và tiền xử lý
* Xử lý hình ảnh và video:
- Cắt ghép và lọc dữ liệu:
Dữ liệu hình ảnh và video thường chứa các phần không cần thiết hoặc không phù hợp, như khung hình bị mờ, thiếu ánh sáng, hoặc có quá nhiều nhiễu Để đảm bảo chất lượng đầu vào cho mô hình, cần lọc bỏ hoặc chỉnh sửa những khung hình này Ngoài ra, việc cắt ghép cũng giúp tạo ra các đoạn dữ liệu ngắn gọn và dễ dàng xử lý hơn.
- Tăng cường dữ liệu (Data Augmentation):
Để cải thiện khả năng học của mô hình từ dữ liệu, các kỹ thuật tăng cường dữ liệu như xoay, lật, điều chỉnh độ sáng và thêm nhiễu có thể được áp dụng Việc tăng cường dữ liệu tạo ra nhiều biến thể từ cùng một mẫu, giúp nâng cao khả năng tổng quát hóa của mô hình.
- Điều chỉnh kích thước và định dạng:
Tất cả dữ liệu đầu vào cần được chuẩn hóa về kích thước và định dạng để đảm bảo tính nhất quán Hình ảnh nên được điều chỉnh về kích thước đồng nhất, chẳng hạn như 256x256 pixels, trong khi âm thanh cần được chuẩn hóa theo tần số mẫu nhất định.
- Loại bỏ nhiễu và chuẩn hóa màu sắc:
Tạo bộ dữ liệu deepfake dựa trên mô hình và dữ liệu gốc đã xây dựng
2.3.1 Chuẩn bị dữ liệu và tiền xử lý dữ liệu
* Tầm quan trọng của xử lý và tiền xử lý dữ liệu:
Xử lý và tiền xử lý dữ liệu là bước thiết yếu trong việc tạo tệp dữ liệu Deepfake, giúp mô hình tạo ra sản phẩm giả mạo chính xác Để đạt được hiệu quả cao, dữ liệu đầu vào cần được chuẩn bị kỹ lưỡng thông qua các hoạt động như làm sạch, chuẩn hóa và tăng cường dữ liệu Những bước này đảm bảo rằng mô hình học chính xác và giảm thiểu vấn đề nhiễu hoặc thiên lệch trong dữ liệu.
* Xử lý hình ảnh và video:
Trước khi đưa dữ liệu vào mô hình, việc loại bỏ các phần không cần thiết hoặc không phù hợp là rất quan trọng Chẳng hạn, trong video, các khung hình bị mờ, không rõ ràng hoặc nhiễu cần phải được loại bỏ hoặc chỉnh sửa Điều này giúp đảm bảo rằng dữ liệu đầu vào đạt chất lượng cao nhất, từ đó nâng cao hiệu quả của mô hình.
- Tăng cường dữ liệu (Data Augmentation):
Để nâng cao tính đa dạng trong dữ liệu huấn luyện, việc áp dụng các kỹ thuật tăng cường dữ liệu là rất quan trọng Những kỹ thuật này bao gồm xoay, lật, thay đổi độ sáng, thêm nhiễu và nhiều biến đổi khác Tăng cường dữ liệu cho phép mô hình học từ nhiều phiên bản khác nhau của cùng một dữ liệu, từ đó cải thiện khả năng tổng quát của mô hình.
Chuẩn hóa dữ liệu là quá trình điều chỉnh kích thước hình ảnh, video và các thông số khác nhằm đảm bảo tính nhất quán Ví dụ, việc đồng nhất kích thước cho tất cả các hình ảnh giúp mô hình dễ dàng xử lý dữ liệu và học hỏi từ các đặc điểm quan trọng.
* Tiền xử lý dữ liệu:
- Loại bỏ nhiễu và tăng cường chất lượng:
Nhiễu trong dữ liệu có thể ảnh hưởng tiêu cực đến hiệu suất của mô hình Việc áp dụng các kỹ thuật lọc và xử lý tín hiệu để loại bỏ nhiễu trong hình ảnh và âm thanh là cần thiết Điều này không chỉ cải thiện chất lượng dữ liệu đầu vào mà còn nâng cao khả năng của mô hình trong việc tạo ra các sản phẩm giả mạo chất lượng cao.
- Chuẩn bị dữ liệu cho mô hình học sâu:
Dữ liệu cần được chuyển đổi thành định dạng phù hợp với đầu vào của mô hình học sâu, chẳng hạn như chuyển đổi hình ảnh thành các ma trận số Các bước này đảm bảo rằng mô hình có khả năng xử lý và học từ dữ liệu một cách hiệu quả.
Hình 2.5: Hình ảnh phần chuyển đổi dữ liệu về TFRecord
Xử lý tham số đầu vào
Sử dụng argparse để nhận các tham số từ dòng lệnh bao gồm: data_dir để chỉ định thư mục chứa hình ảnh đầu vào, target_dir để xác định thư mục lưu trữ tệp TFRecord được tạo, data_name để đặt tên cho tập dữ liệu (ví dụ: "vggface2"), data_type để xác định loại dữ liệu (train/test/validation), shuffle để xáo trộn thứ tự tệp hình ảnh trước khi tạo TFRecord, và num_shards để chỉ định số lượng hình ảnh trong mỗi tệp TFRecord.
Để chuẩn bị danh sách tệp hình ảnh, trước tiên cần lấy danh sách các thư mục con từ data_dir, với giả định rằng mỗi thư mục con chứa các tệp hình ảnh thuộc một lớp cụ thể Tiếp theo, tạo danh sách đầy đủ các tệp hình ảnh từ tất cả các thư mục con Nếu tham số shuffle được đặt là True, hãy xáo trộn danh sách để đảm bảo rằng các hình ảnh được phân phối ngẫu nhiên trong các TFRecord.
Chia dữ liệu thành nhiều TFRecord (shards) là một quy trình quan trọng trong việc xử lý ảnh Để xác định số lượng tệp TFRecord cần tạo, bạn cần tính toán dựa trên tổng số lượng ảnh và số ảnh mà mỗi tệp (num_shards) có thể chứa Quá trình này giúp phân chia danh sách hình ảnh thành các phần nhỏ, mỗi phần chứa num_shards ảnh, từ đó tối ưu hóa việc lưu trữ và xử lý dữ liệu.
Ghi dữ liệu vào TFRecord o Lặp qua từng shard
Tạo đường dẫn cho mỗi tệp TFRecord, theo định dạng:
"{dataset_name}_{data_type}_{shard_id}-of-{total_shards}.records"
Ví dụ: face_train_00001-of-01000.records. o Ghi từng ảnh vào TFRecord:
Mỗi tệp hình ảnh trong shard được đọc từ ổ đĩa và chuyển thành tf.train.Example thông qua hàm image_example.
Tệp TFRecord được ghi bằng tf.io.TFRecordWriter.
2.3.2 Khởi tạo mô hình FaceDancer tạo dữ liệu deepfake
* Tạo dữ liệu ảnh deepfake
Hàm run_inference thực hiện hoán đổi khuôn mặt từ hình ảnh nguồn sang hình ảnh mục tiêu bằng cách sử dụng các mô hình như RetinaFace để phát hiện khuôn mặt, ArcFace để mã hóa khuôn mặt, và FaceDancer để thực hiện hoán đổi Kết quả cuối cùng là hình ảnh với khuôn mặt nguồn được thay thế vào khuôn mặt mục tiêu.
Hình 2.6: Hình ảnh hàm run_inference
Hàm o opt nhận đầu vào là tùy chọn hoặc tham số bổ sung không sử dụng rõ ràng trong hàm Tham số source là đường dẫn hoặc dữ liệu hình ảnh chứa khuôn mặt cần hoán đổi, trong khi target là đường dẫn hoặc dữ liệu hình ảnh nơi khuôn mặt sẽ được thay thế RetinaFace là mô hình phát hiện khuôn mặt, cung cấp tọa độ khuôn mặt và các điểm mốc, còn ArcFace là mô hình mã hóa khuôn mặt, tạo ra biểu diễn đặc trưng cho khuôn mặt.
FaceDancer là một mô hình hoán đổi khuôn mặt, cho phép chuyển đổi khuôn mặt từ nguồn sang mục tiêu Đường dẫn result_img_path được sử dụng để lưu hình ảnh đầu ra sau khi thực hiện quá trình hoán đổi Ngoài ra, source_z là một tùy chọn để biểu diễn đặc trưng khuôn mặt nguồn (embedding).
Nếu không được cung cấp, embedding sẽ được tạo từ hình ảnh nguồn.
Quá trình xử lý o Xử lý hình ảnh mục tiêu
Nếu target là đường dẫn, nó được đọc vào dưới dạng mảng ảnh.
Chuyển đổi ảnh mục tiêu sang mảng số (np.array) để xử lý bằng OpenCV. o Chuẩn bị khuôn mặt nguồn
Nếu không có embedding (source_z), thực hiện các bước sau:
Đọc ảnh nguồn và chuyển đổi sang hệ màu phù hợp (BGR).
Dùng RetinaFace để phát hiện khuôn mặt và các điểm mốc (landmarks).
Căn chỉnh khuôn mặt nguồn sử dụng hàm norm_crop để tạo đầu vào chuẩn hóa.
Sử dụng ArcFace để tạo embedding từ khuôn mặt đã căn chỉnh. o Phát hiện và căn chỉnh khuôn mặt mục tiêu
Ảnh mục tiêu được chia tỷ lệ và sử dụng RetinaFace để phát hiện tất cả khuôn mặt trong ảnh.
Đối với mỗi khuôn mặt được phát hiện, quá trình đầu tiên là căn chỉnh khuôn mặt mục tiêu bằng cách sử dụng các điểm mốc để đưa khuôn mặt vào một khung chuẩn kích thước 112x112 hoặc 256x256 Sau đó, tiến hành hoán đổi khuôn mặt để tạo ra hiệu ứng mong muốn.
Sử dụng FaceDancer để tạo khuôn mặt mới từ embedding của nguồn và khuôn mặt đã căn chỉnh.
Chuẩn hóa đầu ra về khoảng giá trị [0, 1]. o Biến đổi ngược (inverse transformation):
Chuyển khuôn mặt đã hoán đổi trở lại vị trí gốc trong ảnh mục tiêu.
Áp dụng biến đổi ngược (inverse affine transformation) giúp đưa khuôn mặt về tọa độ ban đầu, trong khi việc sử dụng mặt nạ Gaussian cho phép hòa trộn khuôn mặt hoán đổi với nền gốc của ảnh mục tiêu một cách mượt mà.
Kết hợp tất cả các khuôn mặt hoán đổi với ảnh mục tiêu để tạo ra một bức ảnh hoàn chỉnh Lưu ảnh kết quả vào đường dẫn result_img_path và trả về hình ảnh hoán đổi cùng với embedding nguồn (source_z).
total_img: Hình ảnh mục tiêu sau khi đã thực hiện hoán đổi khuôn mặt.
source_z: Biểu diễn đặc trưng (embedding) của khuôn mặt nguồn. o Các thành phần chính trong hàm
Thông số đánh giá
* PSNR (Peak Signal-to-Noise Ratio)
PSNR (Peak Signal-to-Noise Ratio) là chỉ số quan trọng để đánh giá chất lượng hình ảnh hoặc video, đặc biệt trong việc so sánh video đã qua xử lý như Deepfake với bản gốc Chỉ số này đo lường sự khác biệt giữa hai hình ảnh, từ đó xác định mức độ biến dạng hoặc mất thông tin so với hình ảnh gốc Trong ứng dụng Deepfake, PSNR giúp đánh giá sự tương đồng giữa khuôn mặt được hoán đổi và khuôn mặt ban đầu, đảm bảo video tạo ra có chất lượng cao và tự nhiên.
Chỉ số PSNR cao cho thấy sự tương đồng giữa hai hình ảnh, điều này đồng nghĩa với việc video Deepfake có chất lượng tốt, ít bị méo và mất thông tin Trong các ứng dụng xử lý hình ảnh thông thường, PSNR lớn hơn 30 dB được coi là đủ tốt, nhưng đối với Deepfake, chỉ số PSNR càng cao thì chất lượng video càng được cải thiện.
Chỉ số PSNR thấp cho thấy sự khác biệt rõ rệt giữa hai hình ảnh, cho thấy rằng video Deepfake có thể bị méo, mất thông tin hoặc không đạt chất lượng mong muốn.
- Ứng dụng của PSNR trong Deepfake
Trong các ứng dụng Deepfake, PSNR được sử dụng để:
PSNR là một chỉ số quan trọng trong việc đánh giá chất lượng video, giúp so sánh độ tương đồng giữa các khung hình của video Deepfake và khung hình gốc Khi chỉ số PSNR cao, điều này cho thấy mô hình Deepfake đã tái tạo khuôn mặt một cách chính xác và tự nhiên.
So sánh các mô hình: Khi phát triển và tối ưu hóa các mô hình Deepfake,
PSNR là chỉ số quan trọng để so sánh hiệu suất giữa các mô hình khác nhau trong việc tạo ra video Mô hình có PSNR cao hơn thường được đánh giá là có chất lượng hình ảnh tốt hơn.
Phát hiện và khắc phục lỗi trong video Deepfake là rất quan trọng Một video có PSNR thấp có thể chỉ ra sự không khớp về ánh sáng, màu sắc hoặc méo mó ở các đặc điểm khuôn mặt trong quá trình hoán đổi Các nhà phát triển cần điều chỉnh mô hình hoặc dữ liệu để nâng cao chất lượng video.
- Các yếu tố ảnh hưởng đến PSNR
Hình ảnh có độ phân giải cao thường cần đạt giá trị PSNR cao để được đánh giá là chất lượng tốt, vì điều này phản ánh sự khác biệt rõ rệt giữa các chi tiết nhỏ trong hình ảnh.
Biến dạng hình ảnh có thể xảy ra dưới nhiều hình thức như nén dữ liệu, nhiễu, hoặc lỗi hoán đổi khuôn mặt, dẫn đến việc giảm chỉ số PSNR Điều này cho thấy rằng hình ảnh đã bị thay đổi đáng kể so với bản gốc.
Ánh sáng và màu sắc đóng vai trò quan trọng trong việc tạo ra video Deepfake chất lượng cao Nếu ánh sáng hoặc màu sắc giữa khuôn mặt hoán đổi và hình ảnh gốc không khớp chính xác, chỉ số PSNR sẽ giảm, cho thấy sự không đồng nhất trong video.
Mặc dù PSNR là một chỉ số phổ biến để đánh giá chất lượng hình ảnh, nhưng nó cũng có một số hạn chế:
PSNR không thể đánh giá chính xác cảm nhận thị giác của con người, vì nó chỉ đo lường sự khác biệt về cường độ pixel mà không xem xét cách mà mắt người cảm nhận những khác biệt đó Do đó, một hình ảnh có chỉ số PSNR cao vẫn có thể không trông tự nhiên và dễ chịu đối với người xem.
Chất lượng cảm nhận không thể đo lường chính xác qua chỉ số PSNR, vì trong nhiều trường hợp, hai hình ảnh có cấu trúc tương tự có thể đạt giá trị PSNR cao nhưng vẫn có sự khác biệt rõ rệt mà mắt người có thể nhận thấy.
PSNR không phải là công cụ phù hợp cho mọi loại biến dạng, vì nó chỉ hoạt động hiệu quả với các biến dạng tuyến tính hoặc nén dữ liệu Tuy nhiên, chỉ số này không thể phản ánh chính xác chất lượng hình ảnh khi gặp phải các biến dạng phi tuyến tính hoặc phức tạp.
SSIM (Chỉ số tương đồng cấu trúc) là công cụ dùng để đánh giá mức độ tương đồng về cấu trúc giữa hai video Giá trị SSIM gần 1 chỉ ra rằng hai video này có cấu trúc rất giống nhau.
SSIM (Structural Similarity Index Measure) là chỉ số đo lường sự tương đồng giữa hai hình ảnh dựa trên đặc điểm cấu trúc, được thiết kế để đánh giá chất lượng hình ảnh theo cách tương tự như cách con người nhận thức Khác với chỉ số PSNR (Peak Signal-to-Noise Ratio) chỉ dựa vào sự khác biệt cường độ pixel, SSIM chú trọng đến độ sáng, độ tương phản và cấu trúc của hình ảnh, từ đó cung cấp đánh giá chính xác hơn về chất lượng video Deepfake.
SSIM là một chỉ số đánh giá mức độ tương đồng giữa hai hình ảnh bằng cách phân tích các vùng cục bộ dựa trên ba yếu tố chính: độ sáng (luminance), độ tương phản (contrast) và cấu trúc (structure).
(contrast), và cấu trúc (structure)
SSIM = 1: Hai hình ảnh hoàn toàn giống nhau về mặt cấu trúc, độ sáng, và độ tương phản.
SSIM gần 0: Hai hình ảnh có sự khác biệt lớn, với ít hoặc không có cấu trúc tương tự.
THỰC NGHIỆM VÀ ĐÁNH GIÁ TẬP DỮ LIỆU
Thực nghiệm tạo bộ dữ liệu
3.1.1 Tạo bộ dữ liệu deepfake hình ảnh
Hình 3.1: Hình ảnh thực hiện tạo bộ dữ liệu deepfake dạng ảnh
- Đầu vào và đầu ra
Đối tượng đầu vào opt chứa các tham số quan trọng như retina_path, arcface_path, và facedancer_path, tương ứng với đường dẫn đến các mô hình RetinaFace, ArcFace, và FaceDancer Ngoài ra, opt còn bao gồm swap_source để chỉ định đường dẫn hoặc dữ liệu khuôn mặt nguồn, img_path cho hình ảnh mục tiêu, img_output để lưu kết quả đầu ra, và device_id để xác định GPU sử dụng (nếu có) Hình ảnh nguồn và mục tiêu được cung cấp thông qua opt.swap_source và opt.img_path.
Đầu ra o Hình ảnh đầu ra: Hình ảnh mục tiêu với khuôn mặt đã được thay thế, lưu tại opt.img_output.
Để xác định thiết bị, trước tiên cần kiểm tra khả năng của GPU Nếu có GPU khả dụng, chương trình sẽ thiết lập GPU bằng cách chỉ định opt.device_id để thực hiện quá trình tăng tốc xử lý hiệu quả.
Tải các mô hình o RetinaFace:
Được tải từ đường dẫn opt.retina_path.
Trả về các tọa độ và điểm mốc của khuôn mặt trong ảnh mục tiêu. o ArcFace:
Được tải từ đường dẫn opt.arcface_path.
Tạo biểu diễn đặc trưng của khuôn mặt nguồn (embedding). o FaceDancer (G):
Được tải từ opt.facedancer_path.
Mô hình chính thực hiện hoán đổi khuôn mặt.
Thực hiện hoán đổi khuôn mặt o Gọi hàm run_inference:
Nhận các tham số: tùy chọn (opt), khuôn mặt nguồn (opt.swap_source), ảnh mục tiêu (opt.img_path), và các mô hình. o Xử lý ảnh mục tiêu để:
Phát hiện và căn chỉnh khuôn mặt.
Tạo khuôn mặt hoán đổi từ embedding nguồn.
Hòa trộn khuôn mặt hoán đổi với ảnh mục tiêu.
Lưu kết quả vào opt.img_output.
Hiển thị thông tin o Hiển thị quá trình khởi tạo và tên các tệp đầu vào/đầu ra. o Kết quả được in ra khi hoàn tất.
Hình 3.2: Qúa trình xử lý tạo bộ dữ liệu deepfake dạng ảnh
- Kết quả thu thập được bộ dữ liệu
Hình 3.3: Kết quả dữ liệu sau khi thực hiện chương trình
Bộ dữ liệu được dựa trên 1 thư mục dữ liệu gốc và 1 ảnh để thực hiện việc chuyển đổi khuôn mặt
Hình 3.4: Hình ảnh của bộ dữ liệu gốc
Hình 3.5: Hình ảnh của dữ liệu khuôn mặt muốn thay thế
3.1.2 Tạo bộ dữ liệu deepfake video
Hình 3.6: Hình ảnh thực hiện tạo bộ dữ liệu dạng video
- Đầu vào và đầu ra
Đầu vào của chức năng hoán đổi khuôn mặt bao gồm các tham số quan trọng như: swap_source, là khuôn mặt nguồn được sử dụng; vid_path, chỉ đường dẫn đến video hoặc thư mục chứa video mục tiêu; vid_output, là thư mục lưu trữ video đầu ra; retina_path, đường dẫn đến mô hình RetinaFace; arcface_path, đường dẫn đến mô hình ArcFace; facedancer_path, đường dẫn đến mô hình FaceDancer; và device_id, là GPU được sử dụng cho quá trình xử lý.
Đầu ra o Video hoặc các video trong thư mục đầu vào được xử lý và lưu với khuôn mặt đã được hoán đổi, tại thư mục opt.vid_output.
The RetinaFace model is initialized by loading from the specified opt.retina_path file, while the ArcFace model is retrieved from opt.arcface_path Additionally, the FaceDancer (G) model, which is responsible for face swapping, is loaded from opt.facedancer_path Custom layers such as AdaIN, AdaptiveAttention, and InstanceNormalization are included to ensure the proper functionality of the models.
Kiểm tra và xử lý thiết bị o Nếu GPU khả dụng, chương trình sẽ chọn GPU được chỉ định (opt.device_id) để tăng tốc xử lý.
Xử lý video o Xử lý thư mục video:
Nếu opt.vid_path là một thư mục, chương trình sẽ duyệt qua tất cả các tệp video trong thư mục đó.
Với mỗi video, chương trình gọi hàm video_swap để thực hiện hoán đổi khuôn mặt và lưu kết quả vào opt.vid_output. o Xử lý một video:
Nếu opt.vid_path là một tệp video, chương trình gọi trực tiếp video_swap để thực hiện hoán đổi trên video đó.
Hoán đổi khuôn mặt o Hàm video_swap được gọi cho mỗi video:
Duyệt qua từng khung hình trong video.
Phát hiện, căn chỉnh khuôn mặt, và thay thế khuôn mặt mục tiêu bằng khuôn mặt nguồn.
Kết hợp tất cả các khung hình đã xử lý để tạo video đầu ra.
Lưu trữ kết quả o Kết quả của mỗi video được lưu với tên bắt đầu bằng "swapped_" trong thư mục đầu ra (opt.vid_output).
Hình 3.7: Hình ảnh xử lý data dạng video