Mở đầu: Trong chương này, mục tiêu mà tác giả hướng tới là trình bày tổng quan về nhận diện khuôn mặt, tổng quan về các công nghệ sử dụng. Ngoài ra, tác giả sẽ đưa ra những phương pháp nhận diện khác nhau để từ đó có sự so sánh khác biệt dựa trên các quan sát, kinh nghiệm và các dự án nghiên cứu trên thị trường, để từ đó có thể lựa chọn giải pháp phù hợp nhất áp dụng vào bài toán của mình. Tổng quan về nhận diện khuôn mặt 2. Khái niệm Nhận dạng khuôn mặt là quá trình xác định hoặc xác nhận danh tính của một người qua khuôn mặt của họ.
Công nghệ này hoạt động bằng cách xác định và đo lường các đặc điểm khuôn mặt trong hình ảnh hoặc video, xác định xem khuôn mặt đưa vào đó có giống với một trong những khuôn mặt trong cơ sở dữ liệu hiện có không. Công nghệ này chủ yếu được sử dụng cho mục đích an ninh và thực thi pháp luật, ngoài ra ngày càng có nhiều sự quan tâm đến các lĩnh vực sử dụng khác. (AWS, 2023) Công nghệ nhận dạng khuôn mặt ngày càng trở nên phổ biến trong những năm gần đây. Theo (Markets, 2024), thị trường nhận dạng khuôn mặt toàn cầu ước tính trị giá 6,3 tỷ USD trong năm 2023 và dự kiến sẽ đạt 13,4 tỷ USD vào năm 2028, với tốc độ CAGR là 16,3%.
Trần Thị Thu Hiền – K23HTTTA 11 Khoá luận tốt nghiệp Ứng dụng công nghệ nhận diện khuôn mặt cho thí sinh thi Toeic tại tổ chức giáo dục IIG Hình 2. 1: Dự đoán thị trường nhận dạng khuôn mặt toàn cầu (Nguồn: Markets and markets, 2023) 2. Nguyên tắc hoạt động chung Trong bối cảnh công nghệ nhận diện khuôn mặt ngày càng được triển khai rộng rãi, việc hiểu rõ nguyên tắc hoạt động của quá trình nhận diện khuôn mặt trở nên vô cùng quan trọng. Theo (AWS, 2023), quá trình này sẽ gồm ba bước cốt lõi: phát hiện khuôn mặt, trích xuất đặc trưng và nhận diện khuôn mặt.
Bằng việc đào sâu vào từng bước, ta sẽ có cái nhìn tổng quan về cách mà các hệ thống nhận diện khuôn mặt hoạt động và làm thế nào chúng có thể được ứng dụng một cách hiệu quả trong thực tế. Trần Thị Thu Hiền – K23HTTTA 12 Khoá luận tốt nghiệp Ứng dụng công nghệ nhận diện khuôn mặt cho thí sinh thi Toeic tại tổ chức giáo dục IIG Hình 2. 2: Quy trình nhận diện khuôn mặt (Nguồn: Tác giả) Bước 1: Phát hiện khuôn mặt (Face Detection): Bước này nhằm mục đích xác định vị trí và kích thước của khuôn mặt trong một hình ảnh hoặc video. Trong quá trình này, một hệ thống máy tính hoặc thuật toán được sử dụng để tự động xác định vị trí của khuôn mặt trong không gian hình ảnh.
Bước 2: Trích xuất đặc trưng (Feature Extraction): Sau khi khuôn mặt đã được phát hiện, bước tiếp theo là trích xuất các đặc trưng độc đáo từ khuôn mặt. Các đặc trưng này có thể bao gồm các điểm đặc biệt như hình dạng của mắt, mũi, miệng, hoặc các biểu hiện như các điểm nhấn. Bước 3: Nhận diện khuôn mặt (Face Recognition): Cuối cùng, bước này nhằm mục đích xác định danh tính của người trong khuôn mặt dựa trên các đặc trưng đã trích xuất. Trong quá trình này, hệ thống so sánh các đặc trưng của khuôn mặt với dữ liệu đã biết trước hoặc dữ liệu trong tập dữ liệu được huấn luyện trước đó để xác định danh tính.
Ứng dụng công nghệ nhận diện khuôn mặt Công nghệ nhận diện khuôn mặt đã mang lại nhiều ứng dụng hữu ích trong đời sống hàng ngày, ta có thể kể đến một số ứng dụng quan trọng của công nghệ này: - Ngân hàng Trần Thị Thu Hiền – K23HTTTA 13 Khoá luận tốt nghiệp Ứng dụng công nghệ nhận diện khuôn mặt cho thí sinh thi Toeic tại tổ chức giáo dục IIG Sử dụng máy nhận diện khuôn mặt để xác minh danh tính đã đem lại sự tiện lợi và tăng cường bảo mật trong lĩnh vực ngân hàng. Thay vì sử dụng mật khẩu, ngân hàng và người dùng có thể sử dụng công nghệ nhận diện khuôn mặt để xác thực giao dịch. Điều này cải thiện tính an toàn và đảm bảo thông tin riêng tư cho người dùng. - An ninh và giám sát Công nghệ nhận diện khuôn mặt được sử dụng trong các hệ thống an ninh và giám sát để nhận diện và theo dõi người lạ hoặc nhận dạng tội phạm đã biết trước.
Nó cung cấp các phương tiện hiệu quả để giám sát và bảo vệ các khu vực như sân bay, nhà ga, các cơ sở quân sự, và khu vực công cộng. - Giáo dục Trong lĩnh vực giáo dục, công nghệ nhận diện khuôn mặt có thể được sử dụng để theo dõi sự tham gia của học sinh trong lớp học hoặc để xác định sinh viên trong các kỳ thi và bài kiểm tra trực tuyến. - Y tế Nhận diện khuôn mặt đã thay thế các thủ tục hành chính phức tạp trong việc kiểm tra bệnh án. Giúp tiết kiệm thời gian và ngân sách của cả bệnh viện và bệnh nhân.
Nó cũng hỗ trợ người bệnh đăng ký lịch hẹn và khám chữa bệnh nhanh chóng hơn. Đồng thời giúp các bác sĩ nhận biết chính xác cảm xúc và mức độ đau đớn trên khuôn mặt của người bệnh khi thực hiện khám bệnh trực tuyến. Tổng quan về các công nghệ sử dụng 2. Thư viện xử lý ảnh OpenCV OpenCV (Open Source Computer Vision Library) là một thư viện mã nguồn mở phổ biến và mạnh mẽ được sử dụng rộng rãi trong lĩnh vực thị giác máy tính và xử lý hình ảnh.
Trần Thị Thu Hiền – K23HTTTA 14 Khoá luận tốt nghiệp Ứng dụng công nghệ nhận diện khuôn mặt cho thí sinh thi Toeic tại tổ chức giáo dục IIG Khi làm việc với ảnh, OpenCV cung cấp các chức năng mạnh mẽ để mở và xử lý ảnh trong nhiều định dạng khác nhau. Bằng cách sử dụng các hàm như cv2.imread() và cv2.imshow(), ta có thể mở và hiển thị ảnh một cách đơn giản. Để điều chỉnh kích thước của ảnh, OpenCV cung cấp hàm cv2.resize(), cho phép thay đổi kích thước của ảnh theo tỷ lệ mong muốn hoặc kích thước cụ thể. Ngoài ra, khi làm việc với camera, OpenCV cung cấp các chức năng cho phép truy cập và thao tác với dữ liệu từ camera.
Bằng cách sử dụng hàm cv2.VideoCapture(), ta có thể khởi tạo camera và lấy dữ liệu từ nó để thực hiện các tác vụ như nhận diện khuôn mặt, phát hiện vật thể, theo dõi đối tượng… Ngoài ra, OpenCV cũng được ứng dụng vào việc nhận dạng ký tự quang học (OCR) vì nó cung cấp một loạt các công cụ và chứa nhiều thuật toán hữu ích cho việc xử lý hình ảnh và phân tích các ký tự. (Bharat, 2023) Có thể thấy, OpenCV là một công cụ mạnh mẽ và linh hoạt cho việc xử lý hình ảnh và thị giác máy tính, giúp đơn giản hóa quá trình phát triển các ứng dụng nhận diện khuôn mặt và nhiều ứng dụng khác liên quan đến xử lý hình ảnh. Framework Tensorflow TensorFlow là một framework mã nguồn mở rất phổ biến trong lĩnh vực học sâu và máy học - được phát triển bởi nhóm Google Brain thuộc Google vào năm 2015, nó cung cấp một cơ sở hạ tầng mạnh mẽ để xây dựng, huấn luyện và triển khai các mô hình học sâu. Trong bài khóa luận này tuy tác giả không viết mã lệnh trực tiếp bằng TensorFlow nhưng việc có TensorFlow làm nền tảng của môi trường phát triển vẫn là quan trọng để triển khai và sử dụng các mô hình học sâu như Keras một cách hiệu quả.
Nếu không có TensorFlow, Keras không thể thực hiện các tính toán cần thiết để huấn luyện và triển khai mô hình. Tóm lại, TensorFlow là một phần không thể thiếu khi sử dụng các mô hình Keras, bởi vì nó là backend chịu trách nhiệm thực hiện các tính toán và tối ưu hóa cho mô hình Trần Thị Thu Hiền – K23HTTTA 15 Khoá luận tốt nghiệp Ứng dụng công nghệ nhận diện khuôn mặt cho thí sinh thi Toeic tại tổ chức giáo dục IIG deep learning. Nhờ sự phát triển và hỗ trợ liên tục từ cộng đồng, TensorFlow tiếp tục là một trong những thư viện học máy và học sâu phổ biến nhất trong tương lai. Thư viện Keras Keras là một thư viện thuộc framework Tensorflow.
Keras chứa những high-level API được xây dựng nên từ những low-level API và nền tảng của Tensorflow. Với cú pháp đơn giản theo kiểu ngôn ngữ Python, thư viện Keras giúp người dùng dễ dàng xây dựng các mô hình học sâu một cách nhanh chóng kể cả với người mới. Với thư viện Keras, người dùng có thể dễ dàng sử dụng các layer đã được tạo sẵn, kết hợp nhiều layer lại với nhau để tạo thành một mô hình học sâu hoàn chỉnh. Các thành phác khác cần có để huấn luyện một mô hình học sâu như thuật toán tối ưu (optimizer) hay hàm mất mát (loss function) hoặc các hàm tính toán chỉ số như accuracy hay RMSE đề được sử dụng dễ dàng mà không cần phải viết thêm nhiều code.
Với thư viện Keras, người dùng hoàn toàn có thể xây dựng mô hình cho các bài toán ở trong lĩnh vực xử lý ngôn ngữ tự nhiên hay computer vision, nhận diện giọng nói hoặc học tăng cường… 2. Thư viện Numpy Numpy là một thư viện Python mạnh mẽ và phổ biến được sử dụng rộng rãi trong việc tính toán khoa học và máy học. Đặc điểm nổi bật của Numpy là cấu trúc dữ liệu mảng nhiều chiều (hay còn gọi là ndarray), cho phép lưu trữ và xử lý dữ liệu một cách hiệu quả hơn so với danh sách thông thường trong Python. Trong máy học, Numpy đóng vai trò quan trọng trong việc thực hiện các phép tính toán số học và đại số tuyến tính trên các dữ liệu dạng ma trận và vectơ, như tích ma trận, chuyển vị, và các phép toán số học cơ bản.
Sự hiệu quả của Numpy khi xử lý dữ liệu lớn giúp tăng tốc độ tính toán và làm giảm thời gian thực hiện các thuật toán máy học. Trần Thị Thu Hiền – K23HTTTA 16 Khoá luận tốt nghiệp Ứng dụng công nghệ nhận diện khuôn mặt cho thí sinh thi Toeic tại tổ chức giáo dục IIG 2. Học máy và học sâu trong nhận diện khuôn mặt Trước đây, khi phương pháp học sâu chưa ra đời, hệ thống nhận diện khuôn mặt hoạt động dựa trên các phương pháp đơn giản và truyền thống từ những năm 1960 bằng việc đánh dấu thủ công các “điểm mốc” khác nhau trên khuôn mặt như trung tâm mắt, mũi, miệng,… dần dần ở những thập kỷ tiếp theo, các phương pháp như Eigenfaces và PCA, LBP và HOG cũng lần lượt ra đời với độ chính xác ngày một tốt hơn.