Chương 1: Giới thiệu tổng quan về đề tài. Định nghĩa bài toán, trình bay các thử thách, mục tiêu và đóng góp của công trình nghiên cứu. e Chương 2: Khảo sát và tong hợp các nghiên cứu các van đề liên quan đến bài toán Nhận diện khuôn mặt và khảo sát một số hệ thống Nhận diện khuôn mặt hiện nay. e Chương 3: Mô tả chỉ tiết quá trình cài đặt phương pháp, giải thuật 18 e Chương 4: Thực hiện đánh giá và so sánh các phương pháp tiên tiễn trên các độ đo tiêu chuẩn từ đó chon ra được các phương pháp phù hợp và tối ưu nhất cho hệ thống.
e Chương 5: Chỉ tiết về luồng nghiệp vụ, luồng kỹ thuật, kiến trúc xây dựng hệ thống, minh hoa và đánh giá hiệu năng và tính tương thích thông qua các phép kiểm thử. e Chương 6: Kết luận về ưu điểm và hạn chế của hệ thống được đề xuất, nêu ra hướng phát triển của đề tài trong tương lai. CƠ SỞ LÝ THUYÉT Hiện nay, đã có các phương pháp được đề xuất để giải quyết bài toán Điểm danh người ding [1][32][41][42]. Nhìn chung, những bai báo này đều thiết kế hệ thống đi theo ba bước chính [48] là (1) phát hiện khuôn mặt trong khung hình, (2) Trích xuất đặc trưng khuôn mặt, và (3) hệ thống nhận diện khuôn mặt.
Trong phần này, tôi sẽ tìm hiểu tổng quan về những van đề liên quan đến các bước trong bài toán lớn, đồng thời tìm hiểu về một số công nghệ hiện nay được áp dụng khi xây dựng một hệ thống có khả năng mở rộng quy mô lớn.1 Kiến trúc mạng CNN (Convolutional Neural Network) Convolutional Neural Network [52] (CNNs —Mang nơ-ron tích chập) được dé xuat bởi Fukushima năm 1980 và được cải tiễn bởi LeCun, Bottou, Bengio and Haffner năm 1998 là một trong những mô hình Deep Learning tiên tiến giúp cho chúng ta xây dựng được những hệ thống thông minh với độ chính xác cao như hiện nay. Convolutional Neural Network cũng giống như mạng Artificial Neural Network bình thường của Machine Learning. Nó cũng được xây dung trên nguyên tắc cho các node neutron học các trọng sé weights va biases. Mỗi neutron nhận input đầu vao, sau đó sử dung tích vô hướng ứng với trọng số của nó.
Cả một mạng lưới được sử dung nhiều hàm tính toán với mục đích: từ một bức ảnh đơn sơ ban đầu cho tới kết quả dự đoán của nó. CNN cũng có hàm mắt mát (Loss function) và tất cả các mẹo mà chúng ta đã áp dụng như ở Machine Learning truyền thống. Convolution Pooling Convolution Pooling Fully Fully Output Predictions Connected Connected =s««— 408 (0.1 Kiến trúc cơ ban của một mạng tích chập 20 (Convolution layers) kết hợp với các hàm kích hoạt phi tuyến (Nonlinear Activation Function) để tạo ra thông tin trừu tượng hơn cho các tầng tiếp theo. Ngoài ra, còn có thêm các lớp như: Max-pooling, Dropout, Batch Normalization,.
ứng với những kiên trúc khác nhau. Mạng nơ-ron tích chập gồm các lớp: Convolution (tích chập), Pooling (để chung), Rectified Linear Units (tỉnh chỉnh các đơn vị tuyến tính), Fully Connected Layers (các layer được kết nối đầy đủ), cuối cùng là cho qua một hàm kích hoạt Softmax dé đưa ra xác suất mà vật đó thuộc về ứng với từng output đầu ra Convolution Layer La lớp đầu tiên trích xuất các đặc trưng từ một hình ảnh Ù 6|oø|o|o|o L 9 9 ° | ° ° ° 9 ° 156 | 155 | 156 | ass | 158 |. ° Input Channel #1 (Red) Input Channel #2 (Green) Input Channel #3 (Blue) -1 et 1Ị0|0 0 s1 th [Pe | et Oa, 1 1 0 | +4 Kernel Channel #1 Kernel Channel #2 Kernel Channel #3 i [ 3 Output 308 Em —498 HE 164 +1=-25 Bias = 1 Hình 2.2 Minh họa cách tính toán tại lớp Convolution Dé tính toán sự khớp của một đặc trưng đối với một mảnh của hình ảnh, ta sử dụng một cửa số trượt (slide window) hay có tên gọi khác là Kernel chứa các trọng số được thiết lập ứng với từng đặc trưng cần trích xuất, sau đó nhân mỗi điểm ảnh trong feature với giá trị của điểm ảnh tương ứng trong cửa số trượt. Sau đó cộng tổng lại và chia cho số lượng điểm ảnh trong feature.
21 Đề hoàn tất tích chập, chúng ta lặp lại quá trình này, xếp các feature với mọi mảnh hình anh có thé. Ta có thé lấy kết quả từ mỗi tích chập và tạo một mang hai chiều mới từ đó, dựa vào vị trí của mỗi mảnh nằm trong hình ảnh. Bản đồ các phần khớp nhau này cũng là một phiên bản đã được lọc từ hình ảnh gốc. Nó là một bản đồ thê hiện nơi tìm thấy feature trong hình ảnh.
Và ma trận mới này có tên gọi khác là Feature Map. Trong kiến trúc mạng CNN một lớp Convolution sẽ có nhiều Kernel và có thé được ghép với nhau để có thê trích xuất các đặc trưng cần thiết của ảnh, khi bắt đầu CNN chỉ học các đặc trưng đơn giản dưới dạng các cạnh, góc, đường thắng, ngang,. Tuy nhiên, càng về sâu, các đặc trưng sẽ cảng trở nên phức tạp va trừu tượng mà mắt người không thể hình dung ra được. Pooling Layer Pooling là một cách lấy những hình ảnh lớn và làm co chúng lại trong khi vẫn giữ các thông tin quan trọng nhất trong đó.
Pooling chỉ dùng kiến thức toán của lớp hai. Nó bao gồm việc duyệt bước một ô vuông cửa số nhỏ dọc trên một hình ảnh và lay giá trị lớn nhất từ cửa số ở mỗi bước. Sau khi pooling, một hình anh sẽ có khoảng một phần tư số điểm ảnh so với lúc bắt đầu. Vì nó giữ các giá trị lớn nhất từ mỗi cửa số, nó sẽ bảo toàn tính khớp của mỗi feature bên trong cửa SỐ.
Ngoài ra, còn có một loại Pooling giữ lại giá trị trung bình của điểm ảnh (Average Pooling). Single depth slice % i) 2 | 4 max pool with 2x2 filters Salmon 7 | 8 and stride 2 6 | 8 3 | 2 MNN.3 Minh hoa một lớp Max Pooling 22 Một layer pooling là hoạt động thực hiện pooling trên một hình ảnh hoặc một tập các hình ảnh. Đầu ra sẽ có cùng số lượng hình ảnh, nhưng mỗi cái sẽ có điểm ảnh ít hơn. Hạ một tam anh 8 megapixel xuống còn 2 megapixel sẽ giúp mọi xử lý tải về trở nên dễ dàng.
Rectified Linear Units (ReLU) Bài toán ReLU hoạt động như sau: bất cứ nơi nao có số âm, hoán đôi nó với 0. Điều này giúp CNN giữ vững sự tin cậy toán học bằng cách giữ các giá trị đã được học khỏi bị mắc kẹt gần 0 hoặc về vô tận. Đầu ra của một layer ReLU có kích thước giống với đầu vào, nhưng tất cả các giá trị âm được loại bỏ.4 Minh họa lớp Fully Connect Mô hình mạng nơ ron tích chập nhóm đề xuất là mô hình CNN 3 lớp (Convolution, Relu, Max Pooling) được trình bày như sau: Hàm kích hoạt Softmax (Softmax Activation Function) là một hàm toán hoc với nhiệm vụ chuyên đôi các vector số học thành các vector chứa xác xuất, với mỗi giá trị xác xuất trong vector có tỉ lệ tương đối với mỗi giá trị trong vector số học. Softmax được sử dụng phổ biến trong Máy học với nhiệm vụ làm hàm kích hoạt cho mô hình mạng neural nhân tạo.
Vi du, chúng ta thiét ké mét mang neural với N đầu ra, một dau ra ứng với một lớp trong bài toán phân loại và hàm Softmax này được sử dụng dé chuẩn hóa các giá tri dau ra (tông trong sô kêt nôi) thành các giá tri xác xuat, sao cho tông xác xuât của 23 từng lớp cộng lại băng 1. Lớp nào có giá trị xác xuất cao nhất thì chúng ta sẽ dự đoán giá trị đầu vào thuộc lớp đó.2 Bài toán phát hiện đối tượng Phát hiện đối tượng, một trong những chủ đề nỗi tiếng và được nghiên cứu rộng rãi trong lĩnh vực Thị giác Máy tính và Máy học với nhiều ứng dụng trong thực tế. Bài toán phát hiện đối tượng có nhiệm vụ định vị vị trí của vật thê trong ảnh và xác định đối tượng. Việc ứng dụng các kiến trúc mạng học sâu vào bài toán phát hiện đối tượng, đã giúp tạo nên sự bùng né về nghiên cứu trong lĩnh vực Thị giác máy tính nói riêng và Trí tuệ nhân tạo nói chung.
Hiện nay bài toán có 2 phương pháp tiếp cận chính: Một giai đoạn (One-stage) và Hai giai đoạn (Two-stage). Phương pháp two-stage được hiểu như sau: ở giai đoạn thứ nhất ảnh đầu vào được đưa qua Mạng đề xuất vùng (Region Proposal Network) dé định vị các vật thé cần xác định, sau đó ở giai đoạn thứ hai các vùng đề xuất sẽ được phân lớp xác định đối tượng của từng vùng. Các phương pháp two-stage nồi tiếng và được ứng dụng rộng rãi phải kế đến R-CNN [19], Fast-RCNN [20], Faster-RCNN [35]. : Proposal generator : Objectness 3 Classification: | [omen | Regression 3 Input Image Feature extractor Hình 2.5 Kiến trúc co bản của Two-stage Detector 24 Thay vi chia thành 2 giai đoạn dé phát hiện đối tượng, ở one-stage chi cần dùng 1 giai đoạn thay vì sử dụng Mạng đề xuất vùng, với một ảnh đầu vào bằng cách tận dụng các grid box va anchors dé định vị được đối tượng và hình dang của đối tượ ng rồi tiến hành phân lớp.
Bởi vì chỉ cần dùng 1 giai đoạn nên các bài toán sử dụng phương pháp one-stage thường tốt hơn two-stage về mặt thời gian xử lý, nhưng so về độ chính xác thì các phương pháp two-stage thường cho kết quả tốt hơn. Các phương pháp one-stage nỗi tiếng: YOLO [34], SSD [27]. fot : || Renn : Input Image Feature extractor Hình 2.6 Kiến trúc co ban của One-stage Detector Tuy nhiên, có một số phương pháp chỉ xây dựng nhằm tập trung cải thiện va nâng cao cho một số trường hợp cụ thé. Cụ thé, chúng ta có một kiến trúc mô hình vô cùng nổi tiếng và đang là một trong các phương pháp SOTA ở bài toán nhận diện khuôn mặt nảy, đó là phương pháp RetinaFace [6].
Retinaface là một phương pháp one- stages object detector, được phát triển lên từ kiến trúc Retinanet với mục tiêu là tập trung vào phát hiện chỉ khuôn mặt thay vì nhiều đối tượng khác nhau. 25 AS07E1 Điểm khác biệt giữa mô hình Retinaface và RetinaNet co bản đến từ một số thay đổi như sau: - Khi đem so sánh, Retinaface tối ưu mô hình theo hướng lightweight, thay vì sử dụng ResNet như ở RetinaNet thì ở đây tác giả sử dụng MobileNet - Str dụng module SSH (Single Shot Headless) Face Detection dé cải thiện multi-task learning (thay vì chi dự đoán bbox, thì còn phải dự đoán 5 toa độ landmark).