Tổng quan về deepfake và tấn công giả mạo khuôn mặt
Tổng quan về Deepfake
Deepfake là công nghệ kết hợp giữa học sâu và giả mạo, sử dụng thuật toán học sâu và mạng nơ-ron để tạo ra hình ảnh và âm thanh giả mạo Kết quả là những video và âm thanh trông và nghe giống như thật, khiến người xem gặp khó khăn trong việc phân biệt giữa thật và giả.
Deepfake là công nghệ cho phép thay thế khuôn mặt của một người bằng khuôn mặt khác hoặc làm giả lời nói và biểu cảm của họ Công nghệ này có thể được áp dụng để giả mạo bất kỳ ai, từ cá nhân bình thường đến người nổi tiếng và chính trị gia.
Deepfake hoạt động dựa trên mạng nơ-ron đối nghịch (Generative Adversarial Networks - GANs) GANs bao gồm hai mạng nơ-ron chính:
Mạng tạo sinh (Generator): Có nhiệm vụ tạo ra các hình ảnh, video hoặc âm thanh giả mạo Mạng này cố gắng tạo ra dữ liệu càng giống với dữ liệu thực càng tốt để đánh lừa mạng đối nghịch.
Mạng phân biệt (Discriminator) đóng vai trò quan trọng trong việc phân biệt giữa dữ liệu giả mạo và dữ liệu thực Nhiệm vụ của nó là xác định tính xác thực của dữ liệu mà nó tiếp nhận, nhằm đảm bảo chất lượng và độ tin cậy của thông tin.
Quá trình này diễn ra như một cuộc chiến không ngừng giữa hai mạng: mạng tạo sinh và mạng phân biệt Khi mạng tạo sinh phát triển các dữ liệu giả mạo tinh vi hơn, mạng phân biệt cũng phải nâng cao khả năng phát hiện của mình Kết quả là, theo thời gian, hình ảnh và video giả mạo trở nên ngày càng chân thật hơn.
Deepfake là công nghệ cho phép tạo ra video giả mạo các nhân vật nổi tiếng, chính trị gia hoặc người có ảnh hưởng, dẫn đến những hiểu lầm và tin đồn Một số ví dụ điển hình về việc sử dụng deepfake bao gồm việc làm giả phát ngôn của người nổi tiếng hoặc tạo ra các tình huống không có thật, gây hoang mang trong cộng đồng.
Deepfake có khả năng làm giả phát biểu của chính trị gia, dẫn đến việc tạo ra thông tin sai lệch và gây bất ổn xã hội Công nghệ này có thể ảnh hưởng đến bầu cử và các sự kiện quốc gia quan trọng.
Danh tiếng cá nhân có thể bị tổn hại nghiêm trọng khi một người bị giả mạo trong các video hoặc hình ảnh nhạy cảm Những video khiêu dâm deepfake là ví dụ điển hình cho việc này, gây ảnh hưởng tiêu cực đến danh dự, sự nghiệp và cuộc sống cá nhân của nạn nhân.
Mặc dù hiện nay có nhiều công cụ và phương pháp tiên tiến để phát hiện deepfake, nhưng việc phân biệt video thật và video giả mạo ngày càng trở nên khó khăn Một số thách thức chính trong việc nhận diện này bao gồm sự tinh vi của công nghệ deepfake và khả năng làm giả ngày càng cao của các video.
Công nghệ Deepfake ngày càng trở nên tinh vi, với hình ảnh, video và âm thanh được tạo ra có chất lượng gần như hoàn hảo, khiến cho ngay cả những hệ thống phát hiện tiên tiến nhất cũng gặp khó khăn trong việc nhận diện.
Khối lượng dữ liệu khổng lồ: Trong bối cảnh mạng xã hội phát triển, hàng triệu video và hình ảnh được tải lên hàng ngày Điều này tạo ra áp lực lớn trong việc phân tích và phát hiện các video giả mạo trong thời gian ngắn.
Chi phí và thời gian: Việc phát triển các công cụ phát hiện deepfake đòi hỏi nhiều nguồn lực, bao gồm chi phí cao và thời gian dài để phát triển các mô hình học sâu có thể xử lý lượng dữ liệu lớn và phức tạp. Để đối phó với deepfake, nhiều phương pháp đã được phát triển nhằm phát hiện và ngăn chặn sự lan truyền của nội dung giả mạo:
Mô hình AI và học sâu đang được sử dụng để phát hiện deepfake bằng cách học từ các đặc trưng của video thật và giả mạo Các hệ thống này, đặc biệt là các mô hình học sâu như Vision Transformer (ViT), ngày càng phổ biến trong việc phân tích hình ảnh và nhận diện các dấu hiệu không tự nhiên trong video deepfake.
Phân tích biểu hiện khuôn mặt và chuyển động là một yếu tố quan trọng trong việc phát hiện video deepfake Những video này thường có những điểm bất thường trong chuyển động của khuôn mặt, mắt và biểu cảm Các hệ thống phát hiện có khả năng phân tích những điểm này để nhận diện sự không đồng bộ giữa giọng nói và biểu cảm, từ đó nâng cao hiệu quả trong việc phát hiện nội dung giả mạo.
Chứng thực bằng blockchain: Một số nhà phát triển đã nghiên cứu việc sử dụng blockchain để lưu trữ và xác thực nguồn gốc của các video và hình ảnh Điều này giúp đảm bảo tính xác thực của nội dung và chống lại sự giả mạo.
Tổng quan về tấn công giả mạo khuôn mặt
Face Spoofing (Giả Mạo Khuôn Mặt) là kỹ thuật giả mạo khuôn mặt nhằm vượt qua hệ thống nhận diện khuôn mặt, thường được sử dụng để đánh lừa các hệ thống xác thực sinh trắc học trong thiết bị bảo mật hoặc kiểm tra danh tính Mục tiêu chính của face spoofing là giả mạo người thật để có quyền truy cập trái phép vào các hệ thống bảo mật dựa trên khuôn mặt.
1.2.2 Thực trạng về tấn công giả mạo khuôn mặt hiện nay:
Hiện nay, tấn công giả mạo khuôn mặt (face spoofing) đang gia tăng cả về tần suất lẫn độ phức tạp nhờ vào sự phát triển của công nghệ như trí tuệ nhân tạo (AI) và in 3D Điều này đã dấy lên nhiều lo ngại về vấn đề bảo mật, đặc biệt là trong các hệ thống xác thực sinh trắc học.
Các cuộc tấn công giả mạo khuôn mặt nhằm vào hệ thống xác thực sinh trắc học, bao gồm nhận diện khuôn mặt trên điện thoại, kiểm soát truy cập tại công sở, ngân hàng và ứng dụng tài chính trực tuyến Những hình thức tấn công phổ biến như tấn công bằng ảnh tĩnh, video lặp và mặt nạ 3D đang trở nên khó phát hiện hơn với sự phát triển của công nghệ, dẫn đến tỷ lệ thành công cao hơn.
Theo nghiên cứu của iProov năm 2022, các cuộc tấn công lừa đảo và giả mạo khuôn mặt đã gia tăng đáng kể, với tỷ lệ tấn công bằng video và mặt nạ tăng hơn 40% so với năm 2020 Đặc biệt, các cuộc tấn công video/replay chiếm hơn 30% tổng số cuộc tấn công vào hệ thống nhận diện khuôn mặt Grand View Research dự báo rằng thị trường công nghệ bảo mật sinh trắc học khuôn mặt sẽ phát triển với tốc độ CAGR 15.4% từ năm 2021 đến 2028, do nhu cầu bảo vệ trước các cuộc tấn công giả mạo ngày càng gia tăng Điều này nhấn mạnh tính nghiêm trọng của vấn đề và nhu cầu cấp thiết phát triển các biện pháp phòng ngừa hiệu quả hơn.
Hội nghị Quốc tế về Sinh trắc học (ICB) năm 2019 đã chỉ ra rằng các kỹ thuật tấn công bằng mặt nạ có thể đạt tỷ lệ thành công lên đến 80% trong việc lừa đảo các hệ thống nhận diện khuôn mặt thiếu kiểm tra tính sống, điều này chứng tỏ sự nguy hiểm nghiêm trọng của loại hình tấn công này.
Theo thống kê từ Kaspersky năm 2020, các hệ thống nhận diện khuôn mặt thiếu kiểm tra liveness có tỷ lệ thành công cao trong các cuộc tấn công giả mạo, với 55% cho các cuộc tấn công đơn giản như print attack Tỷ lệ này thậm chí còn cao hơn đối với video/replay attack khi không có các biện pháp bảo vệ nâng cao.
Các hệ thống hiện nay đang tích hợp công nghệ kiểm tra dấu hiệu sống động (liveness detection) nhằm giảm thiểu rủi ro từ các cuộc tấn công giả mạo Một số biện pháp bảo mật phổ biến được áp dụng để nâng cao tính an toàn cho người dùng.
Phân tích chuyển động tự nhiên: Phân tích các chuyển động tự nhiên của mắt và khuôn mặt.
Kiểm tra phản xạ ánh sáng trên da: Sử dụng camera hồng ngoại và công nghệ đo độ sâu 3D để phát hiện các dấu hiệu bất thường.
Yêu cầu hành động ngẫu nhiên: Yêu cầu người dùng thực hiện các hành động như nháy mắt hoặc quay đầu.
Để bảo vệ trước các cuộc tấn công giả mạo tinh vi như mask attack, các hệ thống nhận diện khuôn mặt cần triển khai nhiều lớp bảo mật đồng thời với các phương pháp kiểm tra liveness hiện đại.
1.2.3 Phân loại tấn công giả mạo khuôn mặt:
Hình 1 2 Phân loại tấn công giả mạo khuôn mặt a) Tấn công giả mạo bằng hình ảnh(Print attack)
Print Attack là một phương thức tấn công giả mạo khuôn mặt, trong đó kẻ tấn công sử dụng hình ảnh của nạn nhân để đánh lừa hệ thống nhận diện khuôn mặt Hình ảnh này có thể được in ra trên giấy hoặc hiển thị trên các thiết bị kỹ thuật số như màn hình điện thoại hoặc máy tính bảng, nhằm qua mặt camera của hệ thống.
Cách thức Print Attack hoạt động:
Kẻ tấn công cần chuẩn bị một bức ảnh chất lượng cao của khuôn mặt nạn nhân, có thể dễ dàng lấy từ mạng xã hội hoặc các nguồn công khai khác.
In hoặc hiển thị ảnh: Ảnh của nạn nhân sẽ được in ra trên giấy hoặc hiển thị trên màn hình thiết bị kỹ thuật số.
Kẻ tấn công có thể sử dụng ảnh in hoặc thiết bị kỹ thuật số để đặt trước camera của hệ thống nhận diện khuôn mặt, nhằm mục đích đánh lừa hệ thống nhận diện bằng cách khiến nó nghĩ rằng ảnh đó là một khuôn mặt thật.
Print attack là một phương thức tấn công đơn giản nhưng hiệu quả nhằm vào các hệ thống nhận diện khuôn mặt không có tính năng kiểm tra liveness Tuy nhiên, các hệ thống hiện đại đã được cải tiến để nhận diện các đặc điểm tự nhiên của khuôn mặt và ngăn chặn việc bị lừa bởi ảnh in hoặc ảnh hiển thị trên màn hình.
Việc phát hiện print attack có ý nghĩa đặc biệt trong các ứng dụng cần bảo mật cao như:
Hệ thống bảo mật thiết bị cá nhân: Điện thoại, máy tính bảng, hoặc laptop dùng nhận diện khuôn mặt.
Hệ thống ngân hàng và tài chính: Ứng dụng ngân hàng sử dụng sinh trắc học để xác thực giao dịch.
Kiểm tra danh tính tại sân bay hoặc các cơ sở bảo mật cao thường áp dụng phương pháp kiểm tra liveness nhằm ngăn chặn việc sử dụng ảnh giả Một trong những mối đe dọa đáng chú ý là tấn công bằng video, hay còn gọi là tấn công replay, khi kẻ xấu sử dụng video đã ghi lại để giả mạo danh tính.
Replay/Video Attack là một hình thức tấn công giả mạo khuôn mặt nâng cao, trong đó kẻ tấn công sử dụng video đã quay sẵn của nạn nhân để đánh lừa hệ thống nhận diện Việc sử dụng video thay vì ảnh tĩnh giúp tạo ra chuyển động và biểu cảm khuôn mặt tự nhiên, làm cho hệ thống khó phân biệt hơn so với các tấn công bằng ảnh tĩnh.
Cách thức Replay/Video Attack hoạt động:
Thu thập video của nạn nhân: Kẻ tấn công có thể quay hoặc lấy video của nạn nhân từ các nguồn công khai (như video trên mạng xã hội).
Để tối ưu hóa hiệu quả video, kẻ tấn công cần chỉnh sửa video để tạo hiệu ứng lặp (loop), giúp duy trì các biểu cảm và chuyển động tự nhiên một cách liên tục mà không bị gián đoạn.
Tồng kết chương 1
Tấn công giả mạo khuôn mặt đang là một mối đe dọa nghiêm trọng đối với hệ thống nhận diện khuôn mặt, đặc biệt trong các lĩnh vực yêu cầu bảo mật cao như ngân hàng, kiểm soát truy cập và thiết bị di động Các hình thức tấn công phổ biến bao gồm tấn công bằng ảnh (print attack), tấn công bằng video (replay/video attack) và tấn công bằng mặt nạ 3D (mask attack).
Nhiều nghiên cứu cho thấy rằng mask attack và video/replay attack đang gia tăng với tỷ lệ thành công cao, lên tới 80% ở những hệ thống thiếu công nghệ kiểm tra liveness tiên tiến Để đối phó với tình trạng này, các hệ thống nhận diện khuôn mặt đang áp dụng công nghệ phát hiện dấu hiệu sống động như phân tích chuyển động tự nhiên, kiểm tra ánh sáng và độ sâu 3D, cũng như sử dụng camera hồng ngoại Các công nghệ này đang phát triển nhanh chóng để ứng phó với các kỹ thuật tấn công ngày càng tinh vi.
Nhìn chung, tấn công giả mạo khuôn mặt là một thách thức ngày càng lớn, đòi hỏi các giải pháp bảo mật đa tầng và hiện đại.
Tổng quan về bài toán chống tấn công giả mạo khuôn mặt (face anti-spoofing)
Giới thiệu về bài toán chống tấn công giả mạo(Face Anti-Spoofing)
Những năm gần đây, có thể thấy sự xuất hiện ngày càng nhiều của bài toán nhận diện và xác thực khuôn mặt.
Các smartphone hiện nay thường sử dụng công nghệ nhận diện khuôn mặt để mở khóa, trong khi nhiều ngân hàng yêu cầu xác thực khuôn mặt khi đăng ký tài khoản trực tuyến Đặc biệt, một số quốc gia như Trung Quốc đã áp dụng việc quét khuôn mặt để thực hiện thanh toán.
Nói cách khác, việc xác thực người đứng trước màn hình có đúng là người chính chủ không, là một bài toán quan trọng.
Việc vượt qua hệ thống nhận diện khuôn mặt có thể thực hiện dễ dàng bằng cách in ảnh của người đó hoặc quay video có hình ảnh của họ và đưa ra trước màn hình.
Bởi vì lẽ đó, sự cần thiết của bài toán Face Anti-spoofing ra đời.
2.1.1 Mẫu nhị phân cục bộ (Local binary pattern)
Trong giai đoạn đầu của thị giác máy tính, trước khi mạng nơ-ron tích chập (CNN) phát triển, các phương pháp lấy đặc trưng ảnh như bộ mô tả hình ảnh (HOG, Haralick, Zernike), phát hiện điểm nhấn (FAST, DoG, GFTT) và bộ mô tả bất biến cục bộ (SIFT, SURF, RootSIFT) đã được sử dụng Đặc biệt, Mẫu nhị phân cục bộ (Local Binary Pattern) được áp dụng để tính toán biểu diễn cục bộ.
Biểu diễn cục bộ (Local Representation) được xây dựng bằng cách so sánh từng pixel với các pixel lân cận của nó Đầu tiên, hình ảnh cần được chuyển đổi sang thang độ xám (gray scale) Sau đó, cho mỗi pixel trong hình ảnh thang độ xám, ta chọn một vùng lân cận có kích thước rrr xung quanh pixel trung tâm Giá trị LBP được tính cho pixel trung tâm và lưu trữ trong mảng 2D đầu ra có cùng kích thước với hình ảnh đầu vào.
Mặc dù phương pháp này được giới thiệu từ năm 2002 và có ý tưởng từ năm 1993, nhưng nó đã trở nên lỗi thời Lợi ích duy nhất của phương pháp này là thời gian triển khai nhanh, tuy nhiên, độ chính xác của nó rất thấp và khả năng bị ảnh hưởng bởi nhiễu cao Do đó, phương pháp này không còn phù hợp trong bối cảnh hiện tại.
Hình 2 1 Minh họa về ứng dụng của ViT trong phát hiện giả mạo khuôn mặt
2.1.2 Phát hiện nháy mắt (Eye Blink Detection)
Phát hiện nháy mắt là một phương pháp hiệu quả trong face anti-spoofing, giúp kiểm tra dấu hiệu sống động của khuôn mặt để ngăn chặn các tấn công giả mạo như print attack và replay/video attack Kỹ thuật này dựa vào việc theo dõi tần suất nháy mắt tự nhiên của người dùng, vì mắt con người nháy liên tục, trong khi ảnh chụp hoặc video tĩnh không thể thực hiện điều này một cách ngẫu nhiên.
Trung bình, con người nháy mắt từ 15 đến 30 lần mỗi phút, với mỗi lần nháy mắt chỉ kéo dài khoảng 250 mili giây Trong khi đó, tốc độ camera có thể đạt 30 khung hình mỗi giây, tương đương với 50 mili giây cho mỗi khung hình Điều này cho thấy chúng ta hoàn toàn có thể ghi lại khoảnh khắc mí mắt sụp xuống, và nếu điều kiện cho phép, phương pháp này có độ chính xác rất cao.
Phương pháp này chỉ áp dụng cho video, không khả thi với ảnh tĩnh Nó yêu cầu sự tham gia của người dùng; nếu người dùng đứng quá xa, việc phát hiện mắt và nháy mắt trở nên khó khăn Ngoài ra, nếu người dùng cố tình không chớp mắt hoặc gặp phải các vấn đề sức khỏe ảnh hưởng đến khả năng chớp mắt, phương pháp này cũng không thể thực hiện.
2.1.3 Mạng Nơ-ron tích chập(Convolutional Neural Network)
Mạng Nơ-ron tích chập (CNN) là một loại mạng nơ-ron sâu hiệu quả trong việc xử lý và phân tích dữ liệu hình ảnh CNN mô phỏng cấu trúc thị giác của sinh vật, giúp phát hiện các đặc trưng quan trọng trong ảnh hoặc video thông qua việc các tế bào thần kinh phản ứng với những vùng nhất định.
Bài toán Face Anti-Spoofing có thể được xem như một bài toán phân loại nhị phân Để giải quyết vấn đề này, chúng ta sử dụng mạng CNN để trích xuất các đặc trưng và đưa ra kết quả đầu ra.
CNN bao gồm nhiều lớp chính, mỗi lớp đảm nhiệm vai trò riêng biệt trong việc trích xuất và tổng hợp thông tin từ dữ liệu hình ảnh đầu vào.
Convolutional Layer (Lớp tích chập): Lớp này là lớp nền tảng của CNN.
Bộ lọc (kernel) được áp dụng để quét qua từng vùng nhỏ của ảnh đầu vào nhằm phát hiện các đặc trưng như cạnh, góc và các mẫu hình học khác Quá trình này tạo ra bản đồ đặc trưng (feature map) thể hiện các đặc điểm quan trọng của ảnh.
Activation Layer (Lớp kích hoạt): Lớp kích hoạt phổ biến nhất là hàm
ReLU (Rectified Linear Unit), giúp tạo ra sự phi tuyến tính trong mô hình, cho phép CNN có khả năng học và biểu diễn các đặc trưng phức tạp.
Lớp gộp (Pooling Layer) đóng vai trò quan trọng trong việc giảm kích thước của feature map, từ đó giảm thiểu số lượng tính toán và kiểm soát hiện tượng quá khớp Các kỹ thuật gộp phổ biến bao gồm Mẫu gộp tối đa (Max Pooling) và Mẫu gộp trung bình (Average Pooling), giúp giữ lại giá trị lớn nhất hoặc giá trị trung bình trong vùng gộp, nhằm bảo toàn các đặc trưng quan trọng của dữ liệu.
Lớp kết nối đầy đủ là bước quan trọng trong quy trình xử lý dữ liệu, diễn ra sau khi các đặc trưng đã được trích xuất qua các lớp tích chập và gộp Tại đây, các đặc trưng sẽ được làm phẳng và truyền qua một hoặc nhiều lớp kết nối đầy đủ, giúp tổng hợp thông tin để đưa ra dự đoán cuối cùng Quá trình này cho phép phân loại hoặc nhận diện đối tượng một cách chính xác dựa trên các đặc trưng đã học được.
CNN hoạt động bằng cách chuyển đổi hình ảnh đầu vào thành các bản đồ đặc trưng nhỏ hơn, tập trung vào những chi tiết quan trọng nhất Qua từng lớp tích chập, các đặc trưng phức tạp như mẫu đường cong và cấu trúc tổng thể dần được phát triển.
Học sâu trong bài toán chống tấn công giả mạo khuôn mặt
2.2.1 Các mô hình phổ biến sử dụng Face anti-spoofing a) Mạng nơ-ron tích chập(Convolutional Neural Network – CNN)
Mạng nơ-ron tích chập (CNN) là một loại mạng nơ-ron nhân tạo được sử dụng phổ biến trong học sâu (Deep Learning) và thị giác máy tính (Computer Vision), với các ứng dụng như nhận diện ảnh, phân loại ảnh, phân loại đối tượng và nhận diện gương mặt CNN cũng được áp dụng trong nhiều lĩnh vực khác như công nghệ thông tin, tin sinh học, robotic và tự động hóa Từ những mạng nơ-ron đơn giản với vài lớp, có thể phát triển các kiến trúc mạng phức tạp với hàng trăm lớp khác nhau.
CNNs consist of essential layers, including the Convolution layer, Nonlinear layer, Pooling layer, and Fully connected layer These layers are interconnected in a specific sequence, and the combination of the Convolution layer, Nonlinear layer, and Pooling layer can be repeated multiple times throughout the network.
Hình 2 3 Cấu trúc của CNN
Lớp Convolutional là thành phần quan trọng nhất trong mạng nơ-ron tích chập (CNN), chịu trách nhiệm thực hiện mọi phép toán Các yếu tố chính của lớp này bao gồm stride, padding, filter map và feature map CNN hoạt động bằng cách sử dụng các filter để áp dụng lên từng vùng của hình ảnh, với các filter map được biểu diễn dưới dạng ma trận 3 chiều chứa các tham số dưới dạng số.
Bước nhảy(Stride): là sự dịch chuyển filter map theo pixel dựa trên giá trị từ trái sang phải.
Bổ sung(Padding): Là các giá trị 0 được thêm cùng lớp input.
Bản đồ đặc trưng (Feature map) là kết quả của quá trình tính toán diễn ra sau mỗi lần quét Mỗi khi filter map quét qua input, feature map sẽ hiển thị kết quả của quá trình này.
Hàm kích hoạt (Activation function) là một thành phần quan trọng trong mạng nơ-ron, giúp mô phỏng hoạt động của các neuron thông qua việc truyền xung qua axon Các loại hàm kích hoạt phổ biến bao gồm Relu, Tanh, Sigmoid, Maxout và Leaky Chúng được ứng dụng rộng rãi trong huấn luyện nơ-ron nhờ vào những ưu điểm vượt trội, góp phần nâng cao hiệu quả của các mô hình học máy.
Lớp tích hợp (Pooling layer) được sử dụng để giảm kích thước đầu vào quá lớn trong mạng nơ-ron, thường được đặt giữa các lớp tích chập (Convolutional layer) nhằm giảm số lượng tham số Có hai loại pooling layer phổ biến là max pooling và average pooling.
Lớp kết nối hoàn toàn (Fully connected layer) xuất hiện sau các lớp convolutional và pooling, có nhiệm vụ tạo ra kết quả từ thông tin hình ảnh đã được xử lý Để tăng cường khả năng đầu ra, lập trình viên sử dụng lớp này nhằm thiết lập sự liên kết giữa các dữ liệu Ngoài ra, nếu lớp kết nối hoàn toàn nhận được thông tin hình ảnh, chúng sẽ chuyển đổi thành các mục chưa được phân chia chất lượng Một khái niệm quan trọng liên quan là mạng sinh đối kháng (Generative Adversarial Network – GAN), một công nghệ tiên tiến trong việc tạo ra dữ liệu mới.
Mạng đối kháng sinh điều kiện (GAN) là công nghệ tiên tiến được sử dụng để tạo ra các khuôn mặt giả mạo với độ chân thực cao Trong lĩnh vực chống giả mạo, GAN đóng vai trò quan trọng trong việc tạo ra dữ liệu tăng cường, giúp nâng cao hiệu suất của các mô hình học máy.
Hình 2 4 Kiến trúc của GAN
Generator (G) có vai trò quan trọng trong việc "giả mạo" dữ liệu, như hình ảnh và âm thanh, nhằm đánh lừa Discriminator Trong giai đoạn đầu, dữ liệu giả mà nó tạo ra thường có chất lượng kém và dễ bị phát hiện.
Discriminator (D) được coi là "nhà phê bình" trong quá trình học máy Nhiệm vụ chính của nó là phân biệt giữa dữ liệu thật từ tập huấn luyện và dữ liệu giả được tạo ra từ Generator Trong giai đoạn đầu, Discriminator có khả năng nhận diện dữ liệu giả một cách dễ dàng.
Quá trình này giống như trò chơi mèo vờn chuột:
G cố gắng tạo dữ liệu giả ngày càng giống thật hơn.
D ngày càng tinh vi hơn trong việc phát hiện dữ liệu giả. c) Mạng nơ-ron hồi quy(Recurrent Neural Network – RNN)
RNN được áp dụng để xử lý dữ liệu tuần tự như video, cho phép học các đặc trưng động của khuôn mặt, từ đó phát hiện các dấu hiệu giả mạo hiệu quả trong video.
Input Layer: Nhận dữ liệu tuần tự, chẳng hạn như một chuỗi các từ, ký tự, hoặc giá trị số theo thời gian.
Mỗi phần tử trong chuỗi được xử lý theo từng thời điểm 𝑡 t (một từ, một ký tự, hoặc một giá trị tại thời điểm đó).
Hidden Layer: Tại mỗi thời điểm t, hidden layer không chỉ xử lý đầu vào hiện tại mà còn tận dụng trạng thái ẩn từ các thời điểm trước để duy trì ngữ cảnh.
Hidden state được truyền qua các bước thời gian, giúp mạng "ghi nhớ" thông tin quan trọng.
Output Layer:Trả kết quả tại mỗi bước hoặc toàn bộ chuỗi, tùy thuộc vào bài toán:
One-to-One: Một đầu vào tương ứng với một đầu ra (ví dụ: phân loại hình ảnh).
One-to-Many: Một đầu vào dẫn đến một chuỗi đầu ra (ví dụ: tạo văn bản từ một hình ảnh).
Many-to-One: Nhiều đầu vào tạo một đầu ra (ví dụ: phân loại cảm xúc từ câu văn).
Many-to-Many: Nhiều đầu vào, nhiều đầu ra (ví dụ: dịch ngôn ngữ).
2.2.2 Mô hình chuyển đổi tầm nhìn (Vision Transformer) a) Khái niệm
The Vision Transformer (ViT) model was introduced in a research paper presented at the ICLR 2021 conference, titled "An Image is Worth 16*16 Words: Transformers for Image Recognition at Scale." This innovative model was developed and published by Neil Houlsby, Alexey Dosovitskiy, and ten other authors from the Google Research Brain Team.
Mã tinh chỉnh và các mô hình ViT đã được pre-trained hiện có sẵn trên GitHub của Google Research, với quá trình pre-train được thực hiện trên các bộ dữ liệu ImageNet và ImageNet-21k.
Transformer là một mô hình học sâu trong học máy, sử dụng cơ chế Attention để đánh giá tầm quan trọng của từng phần dữ liệu đầu vào Mô hình này bao gồm nhiều lớp Self-attention và chủ yếu được ứng dụng trong các lĩnh vực xử lý ngôn ngữ tự nhiên (NLP) và thị giác máy tính (CV).
Kết luận chương 2
Vision Transformer (ViT) đã chứng tỏ sức mạnh vượt trội trong việc phát hiện và ngăn chặn deepfake nhờ khả năng phân tích hình ảnh một cách chi tiết và phát hiện các dấu hiệu bất thường ViT có khả năng phân tích ánh sáng, biểu cảm khuôn mặt, và nhận diện sự không đồng nhất trong kết cấu da và chuyển động tự nhiên, mở ra nhiều cơ hội trong cuộc chiến chống lại deepfake Trong tương lai, với sự phát triển không ngừng của công nghệ AI, ViT sẽ được tối ưu hóa và kết hợp với các công nghệ khác để nâng cao hiệu quả trong việc phòng chống deepfake.
Ngày càng có nhiều loại Dataset và các mô hình kết hợp được phát triển, nhằm hỗ trợ quá trình huấn luyện và nâng cao hiệu quả của mô hình, mang lại đầu ra rõ ràng hơn.
Triển khai thực nghiệm
Kịch bản triển khai
Sử dụng Python để phát triển ứng dụng camera có khả năng nhận diện khuôn mặt, tích hợp các mô hình AI nhằm phân biệt giữa khuôn mặt thật và giả, góp phần ngăn chặn các cuộc tấn công giả mạo.
Hình 3 1 Kiến trúc ứng dụng
Bằng cách áp dụng các trọng số từ mô hình huấn luyện, ứng dụng này có khả năng phân biệt và phát hiện hình ảnh của đối tượng là thật hay giả Điều này mở ra nhiều cơ hội ứng dụng trong các tình huống thực tế đa dạng.
Hệ thống chấm công sử dụng công nghệ nhận diện khuôn mặt để xác thực nhân viên, ngăn chặn tình trạng giả mạo bằng ảnh in, video hoặc mặt nạ Đồng thời, quản lý truy cập trong các tòa nhà và văn phòng giúp kiểm soát lối vào, đảm bảo rằng người truy cập là thực sự, không phải là hình ảnh hay video giả.
Mở tài khoản ngân hàng trực tuyến yêu cầu xác thực khuôn mặt khách hàng để đảm bảo tính chính xác khi đăng ký Hệ thống có khả năng phát hiện các trường hợp sử dụng ảnh hoặc video giả mạo Để tăng cường an ninh, việc xác thực giao dịch tài chính và rút tiền cũng được thực hiện chặt chẽ, giúp ngăn chặn gian lận từ việc sử dụng khuôn mặt giả.
Ví điện tử và cổng thanh toán: Bảo vệ tài khoản ví điện tử như Momo,
ZaloPay, hoặc PayPal khỏi bị hack Chỉ cho phép người thật thực hiện giao dịch, thay thế mật khẩu truyền thống.
Xác thực người dùng qua nhận diện khuôn mặt, như Apple Face ID và Google, giúp bảo vệ tài khoản khỏi nguy cơ bị chiếm đoạt Công nghệ này cũng được ứng dụng trong trò chơi và thực tế ảo (AR/VR) để đảm bảo người chơi thực sự tham gia, xác định khuôn mặt thật trong môi trường ảo.
Kiểm tra danh tính là một bước quan trọng trong bầu cử, nhằm xác thực cử tri là người thật khi tham gia bầu cử trực tuyến hoặc tại các điểm bỏ phiếu Tương tự, việc kiểm tra hành khách tại sân bay giúp đảm bảo rằng họ là người thật trước khi nhập cảnh, từ đó giảm thiểu rủi ro liên quan đến việc sử dụng hộ chiếu giả.
Giám sát thi cử từ xa: Xác thực người thi là chính chủ, không phải người thay thế Ngăn chặn gian lận trong các kỳ thi trực tuyến.
Công cụ lập trình
Python là ngôn ngữ lập trình phổ biến, được ứng dụng rộng rãi trong phát triển web, phần mềm, khoa học dữ liệu và máy học Với hiệu suất cao, dễ học và khả năng chạy trên nhiều nền tảng, Python là lựa chọn hàng đầu của các nhà phát triển Phần mềm Python miễn phí, tích hợp tốt với mọi hệ thống và giúp tăng tốc độ phát triển dự án.
Hình 3 2 Giao diện lập trình python trên Visual Studio Code
Những lợi ích của Python bao gồm:
Các nhà phát triển có thể dễ dàng đọc và hiểu một chương trình Python vì ngôn ngữ này có cú pháp cơ bản giống tiếng Anh
Python nâng cao năng suất làm việc của các nhà phát triển, cho phép họ viết chương trình với ít dòng mã hơn so với nhiều ngôn ngữ lập trình khác.
Python sở hữu một thư viện tiêu chuẩn phong phú, bao gồm nhiều đoạn mã có thể tái sử dụng cho hầu hết các nhiệm vụ Điều này giúp các nhà phát triển tiết kiệm thời gian và công sức, vì họ không cần phải viết mã từ đầu cho mỗi dự án.
Các nhà phát triển có thể dễ dàng sử dụng Python với các ngôn ngữ lập trình phổ biến khác như Java, C và C++.
Cộng đồng Python là một mạng lưới năng động với hàng triệu nhà phát triển nhiệt tình trên toàn thế giới, sẵn sàng hỗ trợ lẫn nhau Khi gặp khó khăn, người dùng có thể dễ dàng nhận được sự giúp đỡ nhanh chóng từ cộng đồng này.
Trên Internet, có vô số tài nguyên hữu ích cho việc học Python, bao gồm video, tài liệu, chỉ dẫn và hướng dẫn dành cho nhà phát triển.
Python có thể được sử dụng trên nhiều hệ điều hành máy tính khác nhau, chẳng hạn như Windows, macOS, Linux và Unix.
Currently, there are numerous Integrated Development Environments (IDEs) available that support Python programming Notable examples include PyCharm, Spyder, PyDev, Jupyter Notebook, and Microsoft Visual Studio, as well as online platforms like Google Colab.
Với tính năng dễ học và phát triển nhanh chóng, Python là lựa chọn lý tưởng cho lập trình viên mới Nhiều nhà phát triển hiện nay ưu tiên tạo ra các thư viện và module hỗ trợ cho nhiều lĩnh vực như giải toán, viết game, xử lý ảnh, và đặc biệt là các thư viện chuyên sâu về trí tuệ nhân tạo như TensorFlow và PyTorch.
3.2.2 Một số các thư viện được sử dụng
Trong Python, các thư viện đóng vai trò quan trọng trong việc mở rộng khả năng của ngôn ngữ lập trình và thực hiện các tác vụ cụ thể một cách dễ dàng Mỗi dự án thường sử dụng nhiều thư viện khác nhau, và trong dự án này, một số thư viện tiêu biểu có vai trò đặc biệt quan trọng.
Torch: là một thư viện trong Python, viết tắt của PyTorch, được phát triển bởi
Facebook là một trong những thư viện hàng đầu cho việc xây dựng và huấn luyện mô hình học sâu (Deep Learning) Thư viện này mang đến một phương pháp linh hoạt và hiệu quả để làm việc với tensor, một cấu trúc dữ liệu mở rộng hơn so với mảng hay ma trận.
Torchvision là một thư viện mở rộng của PyTorch, chuyên dụng cho các tác vụ thị giác máy tính Thư viện này cung cấp nhiều công cụ hữu ích, bao gồm tập dữ liệu, mô hình tiền huấn luyện và các phép biến đổi cho việc xử lý hình ảnh.
OpenCV là một thư viện mã nguồn mở mạnh mẽ cho xử lý hình ảnh và video, cũng như các ứng dụng thị giác máy tính Thư viện này hỗ trợ nhiều ngôn ngữ lập trình như Python, C++, và Java, và được sử dụng phổ biến trong các dự án học máy và trí tuệ nhân tạo OpenCV cho phép người dùng đọc và trích xuất dữ liệu trực tiếp từ camera, tạo điều kiện thuận lợi cho việc phát triển các ứng dụng thông minh.
Matplotlib là thư viện trực quan hóa dữ liệu mạnh mẽ, giúp người dùng tạo ra các biểu đồ đẹp mắt và hấp dẫn, từ đó trình bày dữ liệu một cách rõ ràng và dễ hiểu.
Sklearn (scikit-learn) là một thư viện mã nguồn mở trong Python, chuyên về học máy và khai thác dữ liệu, cung cấp công cụ đa dạng cho việc xây dựng, đào tạo và đánh giá mô hình học máy Thư viện này bao gồm các module quan trọng như train_test_split để chia dữ liệu thành tập huấn luyện và kiểm tra, metrics để đánh giá hiệu suất mô hình qua các chỉ số như confusion matrix, precision, recall, F1 score và ROC curve, và preprocessing để chuẩn hóa dữ liệu nhằm nâng cao hiệu suất mô hình Ngoài ra, module ensemble cung cấp các mô hình học máy như Random Forest, giúp người dùng tối ưu hóa quy trình học máy.
Gradient Boosting, Voting Classifier, và Stacking Classifier, cho phép kết hợp nhiều mô hình để cải thiện độ chính xác và khả năng tổng quát của dự đoán
Timm (PyTorch Image Models) là thư viện Python mã nguồn mở dành cho PyTorch, cung cấp nhiều mô hình mạng nơ-ron cho xử lý ảnh Được phát triển bởi Ross Wightman, Timm nổi bật với tính năng hỗ trợ mô hình tiền huấn luyện, các phép biến đổi đa dạng và khả năng huấn luyện hiệu quả.
EarlyStopping từ ellzaf_ml.tools được thiết kế để thực hiện các chiến lược dừng sớm, chỉ lưu lại mô hình khi không có sự cải thiện về độ mất xác thực trong một số kỷ nguyên nhất định Điều này giúp đảm bảo rằng chúng tôi chỉ lưu trữ mô hình có hiệu suất tốt nhất.
Tranning model
Sau khi tải xuống và giải nén tập dữ liệu NUAA, hãy đặt thư mục hình ảnh vào cùng một thư mục với mã nguồn và đặt tên cho nó là ‘Detectedface’ Thư mục này sẽ bao gồm hai thư mục con: ‘ClientFace’ và ‘ImposterFace’, mỗi thư mục chứa 15 thư mục con đại diện cho các cá nhân khác nhau Lưu ý rằng thư mục 'ImposterFace' không có số 13 Để đảm bảo tính nhất quán, hãy đổi tên các thư mục tiếp theo cho phù hợp.
Next, create a new folder named 'face_train' Inside it, create two subfolders titled 'fake' and 'real' Copy all odd-numbered folders from 'ClientFace' into the 'real' folder, and do the same with 'ImposterFace', copying them into the 'fake' folder.
Tạo một thư mục mới có tên 'face_val' và bên trong đó, tạo hai thư mục con mang tên 'fake' và 'real' Tiến hành sao chép các thư mục đã được đánh số 0002, 0004 và 0006 vào thư mục 'face_val'.
‘ClientFace’ sang thư mục ‘real’ và các thư mục được đánh số tương tự từ
‘ImposterFace’ sang thư mục ‘fake’
Tạo một thư mục mang tên ‘face_test’ và bên trong đó, tạo hai thư mục con là ‘fake’ và ‘real’ Tiếp theo, sao chép các thư mục được đánh số 0008, 0010, 0012 và 0014 từ ‘ClientFace’ vào thư mục ‘real’, và thực hiện tương tự với các thư mục có số tương tự vào thư mục ‘fake’.
‘ImposterFace’ sang thư mục ‘fake’.
Hình 3 3 Cấu trúc thư mục
3.3.2 Tiến hành quá trình huấn luyện a) Import thư viện và khai báo các trọng số
Bước này rất quan trọng vì nó xác định thiết bị tính toán cho việc đào tạo mô hình mạng nơ-ron, hoạt động như một công cụ cấu hình để hướng dẫn PyTorch phân bổ tenxơ trên CPU hoặc GPU Trong trường hợp này, CPU được sử dụng làm thiết bị chính.
This class will inherit from the torch.datasets.ImageFolder class and will utilize four parameters: 'root' for the image path, 'special_augment_transform' for augmenting fake images, 'general_augment_transform' for augmenting real images, and 'special_classes' to define labels for the fake images.
Trong quá trình xác định các phép biến đổi hình ảnh, chúng ta sẽ sử dụng hai quy trình chính là transforms.Resize(224) và transforms.CenterCrop(224) Mặc dù có vẻ tương tự, nhưng mỗi quy trình phục vụ một mục đích riêng transforms.Resize(224) sẽ điều chỉnh kích thước hình ảnh sao cho cạnh ngắn hơn đạt 224 pixel, đồng thời giữ nguyên tỷ lệ khung hình Sau đó, transforms.CenterCrop(224) sẽ cắt phần giữa của hình ảnh đã được thay đổi kích thước để đạt kích thước chính xác.
Tiếp theo ta sẽ đọc dữ liệu từ cấu trúc đã tạo trước đó sau đó truyền vào lớp
CustomDataset với BATCH_SIZE c) Hàm huấn luyện EPOCH và validate EPOCH model.train(): Đây là phương thức khởi đầu quá trình huấn luyện mô hình Tiếp theo, chúng ta sẽ tạo các biến để theo dõi số lượng dữ liệu mất mát (loss), điểm f1 (f1_score) và độ chính xác dự đoán.
Trong quá trình huấn luyện mô hình, vòng lặp enumerate trên tập train_loader từ dataset giúp lấy chỉ số (idx) và theo dõi hiệu suất của mô hình trong suốt các EPOCH Việc này rất quan trọng để đánh giá và cải thiện hiệu suất của mô hình.
EPOCH là quá trình cần nhiều thời gian để hoàn thành, trong đó y_pred là tham số được tính toán sau mỗi dự đoán của mô hình Tham số này được so sánh với train_y_data để xác định độ mất mát sau mỗi lần huấn luyện.
Sau khi thu thập đầy đủ thông số, cần tạo các biến để lưu trữ các tính toán quan trọng như tổng số dự đoán đúng (total_correct), tổng tổn thất (total_loss), tỷ lệ mất mát trung bình (avg_loss) và tỷ lệ chính xác (accuracy).
Hàm validate_one_epoch được sử dụng để đánh giá hiệu suất của mô hình trên tập dữ liệu kiểm tra sau mỗi epoch, giúp kiểm tra khả năng hoạt động của mô hình trên dữ liệu chưa từng thấy và ngăn chặn hiện tượng overfitting Để thực hiện đánh giá, mô hình sẽ được chuyển sang chế độ eval bằng cách sử dụng model.eval().
Tắt tính toán gradient bằng torch.no_grad() để tăng hiệu quả và tiết kiệm bộ nhớ.
Các thông số được trả ra tương tự như hàm huấn luyện để đánh giá được hiệu suất sau mỗi EPOCH d) Huấn luyện mô hình
Mô hình Vision Transformer (ViT) vit_base_patch16_224.augreg_in21k_ft_in1k được tải từ thư viện timm, đã được huấn luyện trước trên tập dữ liệu ImageNet-21k với 21.000 lớp và sau đó được tinh chỉnh trên tập dữ liệu ImageNet-1k gồm 1.000 lớp.
Sử dụng EarlyStopping để theo dõi chỉ số đánh giá (validation loss) giúp dừng quá trình huấn luyện khi mô hình không có sự cải thiện sau một số epoch nhất định, đồng thời lưu trữ trọng số vào file vit_teacher.pth.
Tiến hành huấn luyện theo vòng lặp với số lượng EPOCH được khai báo ban đầu (50)
Hình 3 4 Quá trình huấn luyện bắt đầu
Learning rate (lr>-5) được chọn trong phạm vi khuyến nghị cho mô hình Transformer (1e-5 đến 1e-4). e) Kết quả huấn luyện và đánh giá
Sử dụng matplotlib để trực quan hóa Độ mất mát và Chính xác của mô hình qua quá trình huấn luyện và đánh giá (validate) sau mỗi EPOCHS:
Kết quả thu được sau khi huấn luyện 50 EPOCHS như sau:
Hình 3 5 Biểu đồ Losses and Accuracies
Mỗi EPOCH cho thấy mô hình đã cải thiện đáng kể về hiệu quả Tiếp theo, chúng tôi sử dụng bộ dữ liệu kiểm tra để đánh giá tính hiệu quả của mô hình trên dữ liệu chưa từng gặp trước đó.
Kết quả đo các thông số Accuracy (Độ chính xác) Recall(Bỏ sót) False
Acceptance Rate(FAR: Độ nhầm lẫn) False Rejection Rate (FRR: Từ chối hợp lệ)
Hình 3 6 Các chỉ số cơ bản của mô hình
Biểu đồ cột và ma trận nhầm lẫn như sau:
Hình 3 7 Biểu đồ cột biểu hiện phần trăm các chỉ số
Hình 3 8 Biểu đồ nhầm lẫn
3.3.3 Sử dụng mô hình xây dựng Ứng dụng camera phát hiện giả mạo a) Cấu hình ứng dụng
Khai báo mô hình và trọng số:
Khởi tạo bộ phát hiện khuôn mặt thông qua camera:
Truyền dữ liệu thu được qua camera vào mô hình: Đọc đánh giá từ mô hình từ đó kết luận khuôn mặt là thật hay giả:
Khởi động ứng dụng: b) Kết quả thu được từ dự đoán của ứng dụng
Kết nối ứng dụng với webcam bất kì thông qua phần mềm CamoStudio :
Hình 3 9 Kết nối thành công camera
Hình 3 10 Phát hiện được camera thông qua OpenCV
Sử dụng ứng dụng để phát hiện khuôn mặt là thật hay giả:
Hình 3 11 Ứng dụng phát hiện khuôn mặt là thật
Kiểm tra với hình ảnh giả mạo:
Hình 3 12 Ứng dụng phát hiện khuôn mặt là giả từ các ảnh
Hình 3 13 Ứng dụng phát hiện khuôn mặt là giả từ điện thoại
Kết luận thực nghiệm
Trong phần thực nghiệm, mô hình học sâu cho việc phát hiện giả mạo khuôn mặt (Face Anti-Spoofing - FAS) đã thể hiện hiệu quả cao với độ chính xác đạt 100% Các chỉ số quan trọng như recall, tỷ lệ chấp nhận sai (False Acceptance Rate - FAR) và tỷ lệ từ chối sai (False Rejection Rate - FRR) đều cho kết quả rất khả quan, chứng tỏ khả năng phân loại chính xác của mô hình trên tập kiểm tra.
Recall đạt 100%, cho thấy mô hình không bỏ sót bất kỳ trường hợp giả mạo nào, rất quan trọng trong các ứng dụng bảo mật.
FAR và FRR đạt 0%, cho thấy mô hình hoàn toàn không mắc lỗi trong việc chấp nhận giả mạo (False Positive) và từ chối hợp lệ (False Negative), điều này đảm bảo tính chính xác và độ tin cậy cao trong phát hiện giả mạo.
Kết quả này cho thấy mô hình không chỉ hoạt động hiệu quả trên tập dữ liệu huấn luyện mà còn có khả năng nhận diện và phân loại đối tượng trong tình huống thực tế với độ sai sót gần như bằng không Điều này chứng tỏ tính chính xác và độ tin cậy của mô hình trong các ứng dụng an ninh, đặc biệt là trong việc bảo vệ hệ thống khỏi các cuộc tấn công giả mạo khuôn mặt.
Sau khi hoàn tất việc huấn luyện mô hình, một ứng dụng thực tế đã được phát triển sử dụng OpenCV để phát hiện giả mạo khuôn mặt trực tiếp từ camera Ứng dụng này hoạt động hiệu quả, nhận diện chính xác các hành vi giả mạo trong thời gian thực.
Tích hợp OpenCV cho phép sử dụng mô hình học sâu đã huấn luyện để phân tích khung hình từ camera, giúp phát hiện dấu hiệu giả mạo khuôn mặt như hình ảnh tĩnh hoặc màn hình giả Ứng dụng này hoạt động ổn định và hiệu quả, nhận diện giả mạo nhanh chóng và chính xác, hỗ trợ các hệ thống an ninh và bảo mật trong nhận diện khuôn mặt cho ứng dụng đăng nhập, kiểm soát truy cập và phòng chống gian lận.
Mặc dù mô hình huấn luyện đã đạt được kết quả ấn tượng, vẫn còn nhiều cơ hội để cải thiện Việc mở rộng và đa dạng hóa tập dữ liệu huấn luyện sẽ giúp mô hình hoạt động hiệu quả hơn trong các điều kiện thực tế khác nhau, bao gồm ánh sáng yếu, góc chụp thay đổi và sự biến đổi trong đặc điểm khuôn mặt do tuổi tác hay các yếu tố khác.
Có thể khám phá thêm các mô hình học sâu như mạng nơ-ron hồi quy (RNN) và các biến thể của mạng nơ-ron đối kháng (GAN) để cải thiện khả năng phân biệt giữa các trường hợp giả mạo và thực tế, đặc biệt trong các điều kiện môi trường không ổn định.
Trong tương lai, việc tích hợp các tính năng phòng chống giả mạo qua hành vi, như phân tích chuyển động và biểu cảm khuôn mặt, cùng với hệ thống nhận diện khuôn mặt hiện tại, sẽ làm cho ứng dụng trở nên mạnh mẽ và toàn diện hơn Điều này sẽ nâng cao khả năng bảo mật trong các lĩnh vực như thanh toán di động, an ninh nhà ở thông minh và giám sát an ninh công cộng.
Đồ án đã thành công trong việc đạt được các mục tiêu chính, với kết quả khả quan, cho thấy sức mạnh của các mô hình học sâu trong việc ngăn chặn giả mạo khuôn mặt Ứng dụng thực tế bằng OpenCV đã góp phần nâng cao hiệu quả bảo mật cho các hệ thống nhận diện khuôn mặt.