Chương 1: Tổng quan về công nghệ nhận diện khuôn mặt các kĩ thuật phân tích nhận dạng khuôn mặt được sử dụng trong hệ thống nhận dạng hiện nay dựa trên những kiến thức của học sâu. • Chương 2: Tổng quan về các phương pháp theo dõi ánh nhìn đang có hiện nay. • Chương 3: Tích hợp các kĩ thuật phân tích khuôn mặt vào hệ thống thi trực tuyến. TỔNG QUAN CÔNG NGHỆ NHẬN DIỆN KHUÔN MẶT 1.1 Giới thiệu về bài toán nhận dạng khuôn mặt Cùng với sự phát triển không ngừng của công nghệ nhất là trong thời buổi công nghệ 4.0 đang nở rộ, thị giác máy tính đã và đang là một lĩnh vực quan trọng trong cả nghiên cứu lẫn ứng dụng.
Thị giác máy tính bao gồm những phương pháp như thu nhận hình ảnh, xử lý, phân tích và hiểu hình ảnh. Kỹ thuật thị giác máy tính cố gắng mô hình hóa một môi trường trực quan phức tạp bằng cách sử dụng phương pháp toán học. Một trong những ứng dụng lớn của thị giác máy tính là vấn đề giám sát và bảo mật thông tin thông qua việc nhận dạng đối tượng. Trong đó nhận dạng khuôn mặt [1] là một ứng dụng máy tính tự động xác định hoặc nhận dạng một người nào đó từ một bức hình ảnh kỹ thuật số hoặc một khung hình video từ một nguồn video, công nghệ này được sử dụng rộng rãi trong các ứng dụng liên quan đến bảo mật cá nhân hay theo dõi đối tượng.
Nhận dạng khuôn mặt ngày càng được quan tâm trong nhiều lĩnh vực, như Trung Quốc có hệ thống camera dày đặc sử dụng AI để nhận diện công dân [2], hay nhiều chuỗi cửa hàng lớn cũng sử dụng nhận dạng khuôn mặt khách hàng thân thiết để phân tích thói quen tiêu dùng. Trên thực tế, công nghệ nhận dạng khuôn mặt đã nhận được sự chú ý đáng kể vì nó có tiềm năng cho một loạt các ứng dụng liên quan đến thực thi pháp luật cũng như các doanh nghiệp khác. Lý do nên áp dụng nhận dạng khuôn mặt? Nhận dạng khuôn mặt giúp giải quyết bài toán nhận dạng cá nhân, xác định nhân thân hoặc điều tra giám sát thân phận. Mỗi cá nhân đều có các đặc trưng khuôn mặt khác nhau.
Hơn 13 Ứng dụng phân tích khuôn mặt vào chống gian lận trong thi cử trực tuyến tích hợp vào hệ thống LMS nữa, trong bối cảnh đại dịch covid hoành hành, cần có một phương pháp quản lý “không chạm”. Vì vậy, bài toán nhận dạng khuôn mặt ngày càng được áp dụng rộng rãi trong các lĩnh vực đời sống khác nhau từ kinh tế, quản lý đến giáo dục. Các khó khăn gặp phải khi nhận dạng khuôn mặt. Có nhiều phương pháp tiếp cận trong bài toán nhận dạng khuôn mặt.
Nhưng tựu chung là vấn đề độ chính xác và tốc độ xử lý. Một khuôn mặt trong ở trạng thái lý tưởng là chính diện và không bị che khuất hay thiếu sót các bộ phận trên mặt. Trên thực tế, khuôn mặt khó đạt được tiêu chuẩn như vậy, nhất là thời kỳ covid thì khẩu trang là vật dụng không thể thiếu của mỗi người. Hơn nữa, khuôn mặt luôn biến đổi theo thời gian nên đòi hỏi thuật toán cần có tính tổng quát hóa thật tốt.
Như vậy, vấn đề cần phải giải quyết là tìm ra một phương pháp nhận dạng khuôn mặt ngay cả khi đeo khẩu trang có độ chính xác cao và tốc độ xử lý nhanh. Mục tiêu của đề tài, phương pháp được sử dụng và đóng góp của đề tài. Mục tiêu chính của luận văn là tìm hiểu về phương pháp học sâu và thử nghiệm phương pháp này trong việc xây dựng một giải pháp nhận dạng khuôn mặt có đeo khẩu trang. Từ đó có thể xây dựng một mô đun nhận dạng xác thực cá nhân và được áp dụng trong nhiệm vụ chống gian lận trong giáo dục trực tuyến.Trong khuôn khổ nội dung, luận văn sẽ trình bày về một số phương pháp cũng như các khó khăn hạn chế của các phương pháp này.
Trình bày nhiều hơn về một phương pháp mới có tên là học sâu (deep learning) trong xử lý dữ liệu đầu vào. Mà cụ thể là mạng Nơ-ron tích chập - CNN (convolutional neural network) [3].2 Các lý thuyết cơ bản về mạng thần kinh Một trong những nền móng đầu tiên của neural network (mạng Nơ-ron) và Deep learning là perceptron learning algorithm (hoặc gọn là perceptron) [4]. Perceptron là một thuật toán supervised learning giúp giải quyết bài toán phân lớp nhị phân, được khởi nguồn bởi Frank Rosenblatt năm 1957 trong một nghiên cứu được tài trợ bởi Văn phòng nghiên cứu hải quân Hoa Kỳ (U.S Office of Naval Research – từ một cơ quan liên quan đến quân sự). Thuật toán perceptron được 14 Ứng dụng phân tích khuôn mặt vào chống gian lận trong thi cử trực tuyến tích hợp vào hệ thống LMS chứng minh là hội tụ nếu hai lớp dữ liệu là linearly separable (có tính tách biệt tuyến tính với nhau).1: Biểu diễn perceptron dưới dạng neural network 1.
Đầu vào của mạng Nơ-ron là x được minh họa bằng các node (nút mạng) màu xanh lục với node x0 luôn luôn bằng 1. Tập hợp các node màu xanh lục được gọi là Input layer (lớp đầu vào). Với ví dụ ở hình trên thì chiều của dữ liệu d = 4. Số node trong input layer luôn luôn là d = d + 1 với một node là 1 được thêm vào.
Node x0 = 1 này đôi khi được ẩn đi. , wd được gán vào các mũi tên đi tới node z. Node y = sgn(z) là output của mạng. Ký hiệu hình chữ Z ngược màu xanh trong node y thể hiện đồ thị của hàm số sgn (hàm dấu).
Trong thuật toán PLA, ta phải tìm các weights trên các mũi tên sao cho với mỗi xi ở tập các điểm dữ liệu đã biết được đặt ở Input layer, output của mạng này trùng với nhãn yi tương ứng. Hàm số y = sgn(z) còn được gọi là activation function. Đây chính là dạng đơn giản nhất của Neural Network. Các neural networks sau này có thể có nhiều node ở output tạo thành một output layer, hoặc có thể có thêm các layer trung gian giữa input layer và output layer.
Các layer trung gian đó được gọi là hidden layer. Khi biểu diễn các mạng lớn người ta thường giản lược hình bên trái thành hình bên phải. Trong đó node node x0 = 1 thường được ẩn đi. Node z cũng được ẩn đi và viết gộp vào trong node y.
Perceptron thường được vẽ dưới dạng đơn giản như hình trên bên phải. Nếu ta thay activation function bởi y = z , ta sẽ có Neural Network mô tả thuật toán Linear Regression (hồi quy tuyến tính) như 15 Ứng dụng phân tích khuôn mặt vào chống gian lận trong thi cử trực tuyến tích hợp vào hệ thống LMS hình dưới 1. Với đường thẳng chéo màu xanh thể hiện đồ thị hàm số y = z. Các trục tọa độ đã được lược bỏ Hình 1.2: Biểu diễn Linear Regression dưới dạng neural network 2.
Mô hình perceptron ở trên khá giống với một node nhỏ của dây thần kinh sinh họ.3: Mô tả một Nơ-ron thần kinh sinh học 3. Dữ liệu từ nhiều dây thần kinh đi về một cell nucleus (nhân tế bào). Thông tin được tổng hợp và được đưa ra ở output. Nhiều bộ phận như thế này kết hợp với nhau tạo nên hệ thần kinh sinh học.
Chính vì vậy mà có tên Neural Networks trong Machine Learning. Đôi khi mạng này còn được gọi là Artificial Neural Networks (ANN) tức mạng Nơ-ron nhân tạo. Mặc dù thuật toán này mang lại nhiều kỳ vọng, nó nhanh chóng được chứng minh không thể giải quyết những bài toán đơn giản. Năm 1969, Marvin Minsky 16 Ứng dụng phân tích khuôn mặt vào chống gian lận trong thi cử trực tuyến tích hợp vào hệ thống LMS và Seymour Papert trong cuốn sách nổi tiếng Perceptrons đã chứng minh rằng không thể “học” được hàm số XOR khi sử dụng perceptron [5].
Phát hiện này làm choáng váng giới khoa học thời gian đó (bây giờ chúng ta thấy việc này khá hiển nhiên). Perceptron được chứng minh rằng chỉ hoạt động nếu dữ liệu là linearly separable. Phát hiện này khiến cho các nghiên cứu về perceptron bị gián đoạn gần 20 năm. Thời kỳ này còn được gọi là Mùa đông AI thứ nhất (The First AI winter).
Năm 2012, tại ILSVRC, Alex Krizhevsky, Ilya Sutskever, và Geoffrey Hinton tham gia và đạt kết quả top-5 error rate 16 %-symbol. Kết quả này làm sững sờ giới nghiên cứu thời gian đó. Mô hình là một Deep Convolutional Neural Network (mạng Nơ-ron tích chập), sau này được gọi là AlexNet [6]. Trong bài báo này, rất nhiều các kỹ thuật mới được giới thiệu.
Trong đó hai đóng góp nổi bật nhất là hàm ReLU và dropout. Hàm ReLU (y = max(0, x)) với cách tính và đạo hàm đơn giản (bằng 1 khi đầu vào không âm, bằng 0 khi ngược lại) giúp tốc độ huấn luyện tăng lên đáng kể. Ngoài ra, việc ReLU không bị chặn trên bởi 1 (như softmax hay tanh) khiến cho vấn đề vanishing gradient [7] cũng được giải quyết phần nào. Dropout cũng là một kỹ thuật đơn giản và cực kỳ hiệu quả.
Trong quá trình training, nhiều hidden unit bị tắt ngẫu nhiên và mô hình được huấn luyện trên các bộ tham số còn lại. Trong quá trình test, toàn bộ các Nơ-ron sẽ được sử dụng. Cách làm này khá là có lý khi đối chiếu với con người. Nếu chỉ dùng một phần năng lực đã đem lại hiệu quả thì dùng toàn bộ năng lực sẽ mang lại hiệu quả cao hơn.
Việc này cũng giúp cho mô hình tránh được overfitting và cũng được coi giống với kỹ thuật ensemble trong các hệ thống machine learning khác. Với mỗi cách tắt các Nơ-ron, ta có một mô hình khác nhau. Với nhiều tổ hợp Nơ-ron bị tắt khác nhau, ta thu được nhiều mô hình. Việc kết hợp ở cuối cùng được coi như sự kết hợp của nhiều mô hình (và vì vậy, nó giống với ensemble learning).
Một trong những yếu tố quan trọng nhất giúp AlexNet thành công là việc sử dụng GPU (card đồ hoạ) để huấn luyện mô hình. GPU được tạo ra cho game thủ, với khả năng chạy song song nhiều lõi, đã trở thành một công cụ cực kỳ phù 17 Ứng dụng phân tích khuôn mặt vào chống gian lận trong thi cử trực tuyến tích hợp vào hệ thống LMS hợp với các thuật toán Deep learning, giúp tăng tốc thuật toán lên nhiều lần so với CPU. Các kiến trúc mạng Nơ-ron truyền thống như đã đề cập ở phần trên có xu hướng kém hiệu quả khi kích thước ảnh đầu vào của mạng trở nên lớn hơn.