Chương 2. Tổng quan về bài toán chống tấn công giả mạo khuôn mặt (face anti-spoofing)
2.2. Học sâu trong bài toán chống tấn công giả mạo khuôn mặt
2.2.2. Mô hình chuyển đổi tầm nhìn (Vision Transformer)
Mô hình Vision Transformer (ViT) đã được giới thiệu trong một bài báo nghiên cứu được xuất bản dưới dạng báo cáo hội nghị tại ICLR 2021, có tiêu đề “An Image is Worth 16*16 Words: Transformers for Image Recognition in Scale”. Nó được phát triển và xuất bản bởi Neil Houlsby, Alexey Dosovitskiy, và 10 tác giả khác của Google Research Brain Team.
Mã tinh chỉnh và các mô hình ViT đã pre-trained (tiền huấn luyện) hiện có sẵn trên GitHub của Google Research. Quá trình pre-train này được tiến hành qua bộ dữ liệu ImageNet và ImageNet-21k.
Transformer trong học máy là một mô hình học sâu sử dụng các cơ chế của Cơ chế Attention, cân nhắc kỹ lưỡng tầm quan trọng của từng phần dữ liệu đầu vào.
Transformer trong học máy bao gồm nhiều lớp Cơ chế Self-attention, chủ yếu được sử dụng trong các lĩnh vực AI của xử lý ngôn ngữ tự nhiên (NLP) và thị giác máy tính (CV).
Transformer trong học máy sở hữu những tiềm năng đầy hứa hẹn về một phương pháp học tập tổng quát có thể được áp dụng cho các phương thức dữ liệu
khác nhau trong thị giác máy tính, nhằm đạt được độ chính xác tiêu chuẩn hiện đại với hiệu quả tham số tốt hơn.
Phân tích dữ liệu lớn có thể mang lại giá trị cho một tổ chức bằng cách cải thiện trải nghiệm khách hàng, nâng cao hiệu quả hoạt động, nâng cao hiệu quả tiếp thị, cung cấp cơ hội doanh thu mới và tạo lợi thế cạnh tranh so với đối thủ bằng cách tạo ra môi trường cho việc ra quyết định sáng suốt hơn. Phân tích dữ liệu lớn được thực hiện tốt cũng có thể cải thiện quản lý rủi ro và phân tích các lỗi nhanh hơn nhiều so với các phương pháp truyền thống.
Kiến trúc tổng thể của mô hình ViT được đưa ra như sau theo cách thức từng bước:
Chia hình ảnh thành các mảng (patch) với kích thước từng mảng cố định
Làm phẳng các mảng hình ảnh
Tạo các feature embedding có chiều thấp hơn từ các mảng hình ảnh phẳng này
Bao gồm thứ tự các mảng
Chuỗi feature embedding được làm đầu vào cho transformer encoder
Thực hiện pre-train đối với mô hình ViT với các nhãn hình ảnh, sau đó được giám sát hoàn toàn trên một tập dữ liệu lớn
Tinh chỉnh model trên bộ dữ liệu riêng của từng bài toán
Hình 2. 6 Kiến trúc của ViT
Hiệu suất của ViT phụ thuộc vào các quyết định của trình tối ưu hóa, độ sâu mạng lưới và siêu tham số cụ thể của tập dữ liệu. So với ViT, CNN dễ dàng tối ưu hóa hơn. Một mô hình ViT thông thường sử dụng tích chập 16*16 với stride 16.
CNN chuyển đổi các điểm ảnh cơ bản thành một bản đồ đặc trưng. Sau đó, bản đồ đặc trưng được một trình mã hóa thành một chuỗi các tokens, rồi được nhập vào kiến trúc Transformer đó. Mô hình này sau đó áp dụng cơ chế chú ý để tạo ra một chuỗi các tokens đầu ra. Cuối cùng, 1 lớp projector kết nối các tokens đầu ra với bản đồ đặc trưng. Điều này vì vậy giúp làm giảm số lượng tokens cần được học, giảm chi phí đáng kể.
Đặc biệt, nếu mô hình ViT được huấn luyện trên bộ dữ liệu khổng lồ có trên 14 triệu hình ảnh, nó có thể hoạt động tốt hơn CNN. Nếu không, lựa chọn tốt nhất là gắn vào ResNet hoặc EfficientNet. Mô hình ViT được huấn luyện trên một tập dữ liệu khổng lồ trước khi quá trình tinh chỉnh. Thay đổi duy nhất là bỏ qua lớp MLP và thêm một lớp D lần KD * K mới, trong đó K là số lớp của tập dữ liệu nhỏ.
b) Nguyên lý hoạt động
Chia ảnh thành các phần nhỏ và duỗi thẳng
Kiến trúc Transformer truyền thống nhận đầu vào là một chuỗi token embedding 1D. Do đó để xử lý đầu vào là ảnh có kích thước 2D, mô hình Vision Transformer chia nhỏ ảnh đầu vào thành các gói (patches) có kích thước cố định giống như các chuỗi word embedding được sử dụng trong mô hình Transformer truyền thống áp dụng cho text.
Ví dụ: Với (H, W) là kích thước của ảnh đầu vào, C là số channels, P là kích thước mỗi gói sau khi chia. Ta biểu diễn lại ảnh đầu vào có kích thước x ∈ R
H×W×C
thành x ∈ RN×(P^2 × C). Số gói có thể chia từ ảnh đầu vào là N= HW/ P2.
Có một lưu ý là thực tế ta hiếm khi dùng trực tiếp Vision Transformer (VIT) trên ảnh trực tiếp. Thông thường ta sẽ dùng một mạng CNN để trích xuất đặc trưng từ ảnh đầu vào. Và ta dùng bản đồ đặc trưng (feature map) cuối cùng để làm đầu vào cho VIT tương tự như bên trên.
Do VIT vẫn sử dụng hằng số kích thước embedding size D trong mô hình do đó chúng ta cần một phép biển đổi tuyến tính biến các gói về kích thước D.
Phép biến đổi này còn gọi là patch embedding.
Hình 2. 7 Quá trình nhúng ảnh của ViT
Nhúng vị trí - Position embedding
Để giữ thông tin về vị trí của các gói ta có thực hiện cộng patch embedding thu được ở bước bên trên với một vector vị trí có thể huấn luyện. Vector vị trí này có kích thước 1D giúp giảm kích thước lưu trữ so với vector 2D.
Hình 2. 8 Sơ đồ vị trí nhúng
Những gói nào ở cùng hàng/cột sẽ có embedding giống nhau hay có biểu diễn giống nhau. Có ý kiến cho rằng việc học thứ tự quan hệ giữa các gói không tạo ra quá nhiều điều khác biệt do quá dễ học thông tin quan hệ giữa các gói với
trí trong patch embedding là cần thiết để mô hình học được thứ tự từng gói trong ảnh qua đó đảm bảo được ngữ nghĩa của từng object trong ảnh.
Mã hóa Transformer(Transformer Encoder)
Transformer encoder lấy đầu vào là tổng hợp các thông tin nhúng patch(patch embedding) và nhúng vị trí(position embeding) bao gồm các lớp Multihead Attention, khối MLP và Layer norm.
Hình 2. 9 Lớp mã hóa của ViT
Inductive bias: Vision Transformer có ít inductive bias vào một hình ảnh cụ thể hơn kiến trúc CNN. Lý do bởi vì trong kiến trúc mạng CNN, ba đặc điểm địa phương hóa, kiến trúc hàng xóm 2 chiều và dịch chuyển tương đương đều có trong từng lớp. Tuy nhiên trong VIT, chỉ có lớp MLP là có tính chất địa phương hóa và dịch chuyển tương đương.
Kiến trúc kết hợp: Như đã nói ở phần trên, thay vì lấy trực tiếp đầu vào là ảnh.
VIT thường kết hợp với kiến trúc CNN để trích xuất đặc trưng từ ảnh đầu vào, sau đó lấy bản đồ đặc trưng cuối cùng làm đầu vào cho mô hình VIT.
c) Kiến trúc Cửa sổ dịch chuyển(Swin Transformer)
Sử dụng ViT kết hợp với các yếu tố của kiến trúc Swin Transformer bao gồm việc đưa vào vị trí tương đối và Chú ý tự động theo cửa sổ(window-base self- attention). Độ lệch vị trí tương đối được thiết kế để mã hóa các mối quan hệ không
gian chính xác với nội dung của hình ảnh. Trong khi đó, window-base self-attention tập trung vào các đặc điểm cục bộ trái ngược với các đặc điểm toàn cục. Phương pháp này có nghĩa là mô hình phải sử dụng cả sự chú ý cục bộ và độ lệch vị trí tương đối cùng nhau để thực sự hiểu rõ về toàn bộ hình ảnh.
Hình 2. 10 Kiến trúc của mạng lưới Global Filter cho việc phân loại hình ảnh
Tiếp theo mô hình sẽ được thử nghiệm với Bộ lọc toàn cục(Global Filter) kết hợp cả Khối quang phổ (Spectral Blocks) và Khối chú ý(Attention Blocks).
d) SimMIM
Là một framework đơn giản cho mô hình hóa hình ảnh được che giấu bằn cách sử dụng đầu dự đoán một lớp để dự đoán giá trị pixel thô của các mảng được che ngẫu nhiên và tiến hành học bằng cách sử dụng độ loss ℓ1. Phương pháp này thử nghiệm các chiến lược tạo mặt nạ(mask) khác nhau và các kích thước miếng vá có mặt nạ khác nhau, cuối cùng đạt được kết quả tốt nhất với chiến lược tạo mặt nạ ngẫu nhiên sử dụng kích thước miếng vá 32×32 và tỷ lệ mặt nạ là 0,5.
Hình 2. 11 Kiến trúc của SimMIM
e) Ứng dụng
Một điểm mạnh của ViT là khả năng xử lý các chi tiết nhỏ trong hình ảnh. Mô hình này không chỉ học từ các đặc điểm lớn mà còn có thể phân tích các đặc trưng nhỏ của hình ảnh, chẳng hạn như kết cấu da, mắt, hoặc cử động môi. ViT chia hình ảnh thành nhiều miếng nhỏ (patch embedding), và xử lý từng patch như một phần tử độc lập trước khi kết hợp chúng lại để đưa ra phân tích tổng thể.
Đối với video, nơi mà các chi tiết nhỏ như kết cấu da có thể không tự nhiên hoặc ánh sáng trên khuôn mặt có thể không đồng nhất, ViT có thể phát hiện những sự khác biệt này bằng cách phân tích các patch riêng lẻ. Khả năng này giúp ViT vượt trội hơn các mô hình khác trong việc phát hiện các chi tiết tinh vi mà mắt thường có thể bỏ qua, hoặc các mô hình học sâu truyền thống khó nhận diện.
Một trong những thách thức lớn của việc phát hiện tấn công giả mạo là thực hiện điều này trong thời gian thực, đặc biệt khi tấn công giả mạo có thể được sử dụng để lừa đảo trực tuyến hoặc lan truyền thông tin sai lệch nhanh chóng. ViT có thể được triển khai trong các hệ thống phát hiện deepfake thời gian thực, giúp phân tích các đoạn video ngay khi chúng được phát sóng hoặc tải lên mạng xã hội.
Khả năng tính toán nhanh và hiệu quả của ViT nhờ vào kiến trúc Transformer, cùng với việc chia nhỏ hình ảnh thành các patch để xử lý, cho phép các hệ thống phát hiện deepfake hoạt động nhanh chóng và hiệu quả. Điều này có thể giúp ngăn chặn các video giả mạo trước khi chúng gây ra hậu quả nghiêm trọng, chẳng hạn như lừa đảo doanh nghiệp hoặc lan truyền thông tin sai lệch .
Mặc dù ViT đã chứng minh hiệu quả mạnh mẽ trong việc phát hiện và phòng chống Face spoofing, nhưng nó có thể đạt được kết quả tốt hơn khi kết hợp với các mô hình khác. Ví dụ, ViT có thể kết hợp với các phương pháp phát hiện Face spoofing dựa trên âm thanh hoặc phân tích biểu cảm khuôn mặt động để cung cấp một hệ thống phát hiện đa tầng. Sự kết hợp này giúp tăng cường độ chính xác và giảm thiểu khả năng phát hiện sai (false positives) .
Để phát hiện Face spoofing một cách chính xác, các mô hình học sâu như ViT cần được huấn luyện với khối lượng dữ liệu lớn. Khi các mô hình được tiếp xúc với nhiều loại video thật và giả khác nhau, khả năng nhận diện các đặc trưng của video Face spoofing sẽ ngày càng cải thiện. ViT đã được chứng minh là có khả năng học hỏi và phân loại hình ảnh với độ chính xác cao khi được huấn luyện với nhiều bộ dữ liệu khác nhau, từ đó giúp cải thiện hiệu quả phát hiện Face spoofing.
f) So sánh mô hình ViT với những mô hình CNN
So sánh 2 mô hình lớn nhất là VIT-H/14 và VIT-L/16 với những mô hình CNN đang đạt kết quả tốt nhất hiện nay.
Hình 2. 12 So sánh ViT và CNN
Kết quả thí nghiệm cho thấy, mô hình nhỏ hơn VIT-L/16 có pretrain trên tập JFT-300M đã đạt kết quả vươt trội BIT-L. Trong khi đó mô hình lớn hơn là VIT-H/14 cải thiện độ chính xác đáng kể đặc biệt trong những bộ dữ liệu thử thách như ImageNet, CIFAR-100, ...