Chương 1: TÌM HIẾU BÀI TOÁN. 224x224x64 : : 112x112x84 Single depth slice pool ⁄-4l,| |1|1|214 vy max pool with 2x2 filters 70007 || 8 and stride 2 6 | | 3 |2 (ie $) 1,|2 eae a downsampling Me 112 224 y Hinh 1. Vi du vé Pooling layer s* Fully connected layer Sau khi anh duoc truyén qua nhiéu convolutional layer va pooling layer thi model đã hoc được tương đối các đặc điểm của ảnh (ví dụ mắt, mũi, khung mặt, .) thì tensor của output của layer cuối cùng, kích thước H*W*D, sẽ được chuyển về | vector kích thước (H*W*D). Sau đó sử dụng mạng nơ-ron kết nối đầy đủ (Fully connected layer) đề học các tổ hợp phi tuyến của các đặc trưng trích xuất từ kết quả ma trận tích chập đầu ra, từ đó ra được output của model.
Đỗ Khánh Linh - DI7HTTT06 11 Đồ án tốt nghiệp đại học Chương 1: TÌM HIẾU BÀI TOÁN. Output Volume Output Volume 588x1 20x1 Output Volume C output ©-: O@ nề 14x14x3 ReLU Activation Fn. [—n Cl 1 C © Ẫ Volume-29x29x3 O eo 2 O Or 3 Or 4 Convolution layer Stride 1 4 Os S Max Pool Soft-Max Layer layer Stride 2 O y Input Volume Flatten Fully conected Soft-Max 32x32x1 layer Layer ReLU Actication Fn. Ví dụ về Fully Connected Layer Như vậy, chúng ta đã chuyền đổi hình ảnh đầu vào thành một dang thích hop cho mạng nơ-ron đa lớp.
Chúng ta sẽ làm phẳng hình anh đầu vào này thành một vec-tơ cột. Vec-tơ đầu ra đã được làm phẳng sẽ được đưa vao một mạng nơ-ron suy luận tiễn (feedforward) và phương pháp truyền ngược (backpropagation) được áp dụng cho quá trình huấn luyện. Qua một loạt lần lặp, mô hình có thể phân biệt giữa các đặc trưng cốt lõi và các đặc trưng không quan trọng trong hình ảnh và phân loại chúng bằng hàm kích hoạt (activation function). Một số kiến trúc mạng nơ-ron tích chập s% Kiến trúc mạng VGG 16 Mạng VGG 16 được phát triển bởi K.
Zisserman, University of Oxford với quan điểm về một mạng nơ-ron sâu hơn sẽ giúp ích cho cải thiện độ chính xác của mô hình tốt hơn. Kiến trúc mạng VGG 16 [11] Kiến trúc VGG 16 bao gồm 16 Convolution Layers, 13 layers tích chập và 3 layers fully connected. Mạng này chỉ sử dụng convolutions 3x3 nhưng với rất nhiều filters, va được huấn luyện với 4 GPUs trong 2-3 tuan. Viéc str dung các bộ lọc có Đỗ Khánh Linh - DI7HTTT06 12 Đồ án tốt nghiệp đại học Chương 1: TÌM HIẾU BÀI TOÁN.
kích thước nhỏ 3x3 cũng giúp giảm số lượng tham số cho mô hình và mang lại hiệu quả tính toán hơn. Ngoài ra, lần đầu tiên trong VGG 16 xuất hiện khái niệm về khối tích chập (block). Đây là những kiến trúc gồm một tập hợp các layers CNN được lặp lại giống nhau, và nó đã khởi nguồn cho các kiến trúc mạng CNN khác. Model sau khi train bởi mạng VGG16 đạt độ chính xác 92.7% top-5 test trong dữ liệu ImageNet gồm 14 triệu hình ảnh thuộc 1000 lớp khác nhau.
Tuy nhiên VGG !6 lại chứa tới những 138 triệu tham số, điều này ảnh hưởng phần nào tới việc kiểm soát và sử dụng nó hiệu quả [11]. $% Kiến trúc mạng ResNet Kiến trúc mạng ResNet được phát triển bởi Kainming He (một nhà nghiên cứu ở Microsoft). Mạng này được cấu thành từ rất nhiều các lớp tích chập xếp chồng lên nhau khiến cho mạng sâu hơn. Một vấn đề xảy ra khi xây dựng mạng CNN với nhiều lớp chập sẽ xảy ra hiện tượng mất mát đạo ham (Vanishing Gradient) dẫn tới quá trình học tập không tốt [11].
Vanishing Gradient Trước hết backpropagation (lan truyền ngược) là một kỹ thuật sử dụng trong quá trình học, tính toán đạo hàm của loss function từ output layer đến input layer sau đó dùng gradient descent dé hiệu chỉnh các trọng số của mạng. Toàn bộ quá trình sẽ được lặp lại cho tới khi các trọng số của network được hội tụ. Nếu số lượng vòng lặp quá nhỏ thì mạng có thể sẽ không cho ra kết quả tốt và ngược lại thời gian học sẽ lâu nếu số lượng vòng lặp quá lớn. Tuy nhiên, trong thực tế đạo hàm thường sẽ có giá trị nhỏ dần khi đi xuống các layer thấp hơn.
Dẫn đến kết quả là các cập nhật thực hiện bởi gradient descent không làm thay đổi nhiều trọng số của các layer và làm chúng không thê hội tụ dé thu được kết quả tốt. Hiện tượng như vậy được gọi là Vanishing Gradient. Đỗ Khánh Linh - D17HTTT06 13 Đồ án tốt nghiệp đại học Chương 1: TÌM HIẾU BÀI TOÁN. Kiến trúc ResNet sinh ra đề giải quyết vấn đề n IN (Yí$ (VIXEN Max- =e4 Pool l & j2 — 7 | | _.
a3 = ea! |e] (es > FO Avg. Pool eye |ám & = Be 1. = lel 3 22 Bes alll a NY& ml | 1 Hinh 1. Kién triic mang ResNet Ý tưởng chính của ResNet là kiến trúc gồm các khối dư (residual) trong đó xuất hiện các nhánh cộng (còn gọi là nhánh nói tắt) giữa giá trị đầu vào với giá trị đầu ra của các khối dư đó.
weight layer x identity Hình 1. Khối Residual trong ResNet [11] Hình trên mô ta khối dư trong ResNet gồm giá trị đầu vào (x) qua một số lớp tích chập thu được F(x), sau đó cộng thêm x vào F(x) dé được dau ra của khối dư là F(x) + x. Nhờ nhánh cộng này mà đạo hàm có thé lan truyền ngược lại lên các lớp trên cùng của mạng mà tránh được hiện tượng mat mát đạo ham. s% Kiến trúc mạng GoogleNet - Inception Kiến trúc mạng GoogleNet được phát triển bởi Google.
Kiến trúc này đã giải quyết một câu hỏi lớn trong mạng CNN đó là sử dụng kích thước filter bao nhiêu thì hợp lý. Các kiến trúc nơ-ron trước đó đều sử dụng các bộ lọc với đa dạng kích thước 11x11, 5x5, 3x3, nhỏ nhất là IxI. Việc cùng kết hợp đồng thời các bộ lọc này vào cùng một block tạo thành kiến trúc khối Inception trong mạng GoogleNet đã mang lại hiệu quả [11]. Cấu trúc khối Inception Đỗ Khánh Linh - DI7HTTT06 14 Đồ án tốt nghiệp đại học Chương 1: TÌM HIẾU BÀI TOÁN.
28 x 28 x 64 28 x 28 x 128 28 x 28 x 192 : si 28 x 28 x 256 16 28 x28 x32 28 x 28 x 192 32 filters,1 x 1 x 192 Hình 1. Cầu trúc khối Inception [11] Như hình trên, khối Inception bao gồm 4 nhánh song song với nhau. Các bộ lọc kích thước lần lượt là 1x1, 3x3, 5x5 được áp dụng giúp trích lọc được đa dạng đặc trưng trên những vùng nhận thức có kích thước khác nhau. Sử dụng phép tích chập 1x1 trên từng điểm ảnh như một kết nối fully connected nhằm giảm độ sâu kênh và số lượng tham số của mô hình (ở hình vẽ trên sau khi nhân chập với 64 bộ lọc kích thước Ixl thì kích thước ma trận điểm anh đã giảm từ 28x28x192 xuống 28x28x64).
Ngoài ra, khối Inception còn sử dụng Max pooling sau đó áp dụng bộ lọc kích thước 1x1 cũng làm giảm chiều dữ liệu [11]. Khối Inception được lặp lại nhiều lần trong kiến trúc GoogleNet. Toàn bộ mạng Inception V1 có 22 layers, lớn hơn gấp đôi so với VGG 16, nhưng nhờ áp dụng tích chập 1x1 giúp tiết kiệm số lượng tham số xuống chi còn 5 triệu, ít hơn 27 lần so với VGG 16. Với mục đích xây dựng mang sâu dé học được nhiều hơn các đặc trưng từ ảnh đầu vào nhưng vẫn ồn định, ít tốn kém hơn và hiệu qua, các phiên bản Inception sau này đã được trang bị thêm kỹ thuật mới: Factorization (là kỹ thuật dé giảm thêm kích thước, ví dụ thay vì sử dụng bộ lọc 3x3 có sỐ lượng các trọng số là 3x3 = 9 thì sử dụng bộ lọc 3x1 và bộ lọc 1x3 sẽ có số lượng các trọng số là 3x1 + 1x3 = 6) và Reduction block (các khối chuyên biệt dé giảm kích thước một cách rõ ràng).
s Ls) 3 ES ¬ œ > 3 = x Pu x bu x g 5 tee ia ® iat ® = Bị 5 o s| ce |5) My ie M.) [8 6 + © - 8-8 Go bị Been: ® + > | R-- ee oO Š = oO = cel ~ =| 5B =} = S = S = Đ ® D tồ S = S = S fe} ® 2 © # > = œ „ ặ = & > œ O fe = 2 J | J eee Đỗ Khánh Linh - D17HTTT06 15 Đồ án tốt nghiệp đại học Chương 1: TÌM HIẾU BÀI TOÁN. Filter concat Filter concat. ————__ 3x3 Conv 3x3 Conv (96) (m sie 2V) : | 1x1 Conv (96) 3x3 Conv (96) 3x3 Conv (96) 3x3 MaxPool (stride 2 V) 3x3 Conv (n = 2V) 3x3 - () == i it | | Avg Pooling fi (96) 1x1 Conv | (64) 1x1 Conv (64) 1x1 Conv 1x1 Conv (k) Filter concat Filter concat Hình 1. Kién trúc Inception V4 và Inception-A (ái dưới), Reduction-A (phải dưới) [12] Chương đầu đã trình bày khái niệm bài toán điểm danh bằng khuôn mặt, lý thuyết mạng nơ-ron nhân tạo và các kiên trúc CNN cơ bản được ứng dụng cho bài toán liên quan đến thị giác máy tính.
Đỗ Khánh Linh - D17HTTT06 16 Đồ án tốt nghiệp đại học Chương 2: KHAO SÁT CÁC CÔNG NGHỆ. CHUONG 2: KHAO SÁT CAC CÔNG NGHỆ XU LÝ ANH, HỌC MAY TRONG HỆ THÓNG NHẬN DIỆN GƯƠNG MẶT T1ong quan hé thong nhận diện khuôn mặt Cropped Aligned Spoof face System deny Face Face Face ———> Face Lẻ Alignment Image ——— Detection Face Anti-spoofing Live face Feature Feature Vector Feature FacelD <———j : “——rc. Matching Extraction Hình 2. Tong quan hé thong nhận diện khuôn mặt Một hệ thống nhận diện khuôn mặt gồm nhiều phần dé từ đó xây dựng nên một hệ thống nhận diện khuôn mặt hoàn chỉnh.
Trong bai viết này sẽ khảo sát các thành phần của hệ thống nhận diện khuôn mặt gồm 5 phần chính: Bộ phát hiện khuôn mặt (Face Detection): Xác định vi trí khuôn mặt trong toàn bộ bức ảnh. Bộ căn chỉnh khuôn mặt (Face Alignment): Xác định các điềm mốc trên khuôn mặt (facial landmark detector) sau đó chuẩn hóa, căn chỉnh lại khuôn mặt được phát hiện trong bộ phát hiện khuôn mặt trước đó. Bộ phát hiện chống giả mạo (Face Anti-spoofing): Kiém tra khuôn mặt của người dùng hệ thống là khuôn mặt thật hay khuôn mặt giả. Bộ trích xuất đặc trưng khuôn mặt (Feature Extraction): Mã hóa, trích xuất các thông tin có trên gương mặt của ảnh đầu vào thành một vector đặc trưng đại diện cho khuôn mặt đó.
Bộ nhận diện khuôn mặt (Face Matching): Tìm kiếm vector đặc trưng của khuôn mặt đại diện cho ai trong hệ thống.