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.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)
CNN (Convolutional Neural Network) là một loại mạng nơ-ron nhân tạo được ứng dụng rất nhiều cho học sâu (Deep learning) trong thị giác máy tính (Computer Vision) như nhận diện ảnh, phân loại ảnh, phân loại đối tượng, nhận diện gương mặt và một số ứng dụng khác trong các lĩnh vực công nghệ thông tin, tin sinh học, robotic, tự động hóa. Từ một mạng nơ-ron đơn giản vài lớp mạng người ta có thể tạo ra các kiến trúc mạng nơ-ron khác nhau với độ phức tạp cao tới hàng trăm lớp mạng.
CNN bao gồm tập các lớp cơ bản bao gồm: Convolution layer + Nonlinear layer, Pooling layer, Fully connected layer. Các lớp này liên kết với nhau theo một thứ tự nhất định và bộ ba Convolution layer + Nonlinear layer + Pooling layer có thể được lặp lại nhiều lần trong network.
Hình 2. 3 Cấu trúc của CNN
Convolutional Layer là lớp đóng vai trò mấu chốt của CNN, khi layer này đảm nhiệm việc thực hiện mọi tính toán. Stride, padding, filter map, feature map là những yếu tố quan trọng nhất của convolutional layer.Cơ chế của CNN là tạo ra các filter áp dụng vào từng vùng hình ảnh. Các filter map này được gọi là ma trận 3 chiều, bên trong chứa các parameter dưới dạng những con 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): Sau mỗi lần quét, một quá trình tính toán sẽ được thực hiện. Feature map sẽ thể hiện kết quả sau mỗi lần filter map quét qua input
Hàm kích hoạt(Activation function) còn có tên gọi khác là hàm kích hoạt, đây là một hàm được kích hoạt trong neural network. Có tác dụng mô phỏng các neuron có tỷ lệ truyền xung qua axon. Trong activation function chúng còn có hàm nghĩa là: Relu, Tanh, Sigmoid, Maxout, Leaky,… Activation function được ứng dụng phổ biến trong việc huấn luyện nơ-ron do sở hữu nhiều ưu điểm tiên tiến.
Lớp tích hợp(Pooling layer) khi nhận phải đầu vào quá lớn, các lớp pooling layer sẽ được xếp giữa những Lớp tích chập (Convolutional layer) nhằm mục đích giảm parameter. Pooling layer được chia thành 2 loại phổ biến là max pooling và average.
Lớp kết nối hoàn toàn(Fully connected layer) khi 2 lớp convolutional layer và pooling layer nhận được ảnh truyền, lớp này sẽ có nhiệm vụ xuất kết quả. Khi ta nhận được kết quả là model đọc được thông tin ảnh, ta cần phải tạo sự liên kết để cho ra nhiều output hơn. Đây chính là lúc các lập trình viên sử dụng fully connected layer.
Hơn nữa, nếu fully connected layer có dữ liệu về hình ảnh thì chúng sẽ chuyển thành mục chưa được phân chia chất lượng.
b) Mạng sinh đối kháng (Generative Adversarial Network – GAN)
Generative Adversarial Network - GAN: GAN được sử dụng để tạo ra các khuôn mặt giả mạo rất chân thực. Trong công nghệ chống giả mạo, GAN được sử dụng để tạo ra các dữ liệu tăng cường (data augmentation) nhằm cải thiện hiệu suất của mô hình.
Hình 2. 4 Kiến trúc của GAN
Generator (G): Làm nhiệm vụ "giả mạo". Nó tạo ra dữ liệu giả (ví dụ: ảnh, âm thanh) để đánh lừa Discriminator. Ban đầu, dữ liệu giả này rất kém và dễ bị phát hiện.
Discriminator (D): Là "nhà phê bình". Nhiệm vụ của nó là phân biệt dữ liệu thật (từ tập huấn luyện) và dữ liệu giả (từ Generator). Ban đầu, nó dễ dàng nhận ra dữ liệu giả.
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 sử dụng để xử lý dữ liệu tuần tự, như video. Nó có thể học được các đặc trưng động của khuôn mặt, giúp phát hiện các dấu hiệu giả mạo trong video.
Hình 2. 5 Kiến trúc RNN
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: Ở mỗi thời điểm t, hidden layer không chỉ xử lý đầu vào hiện tại mà còn sử dụng trạng thái ẩn từ thời điểm trước đó để lưu 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ữ).