Các phương pháp bảo mật truyền thông như mã số đã không còn đáp ứng được yêu cầu cao về an ninh, dễ dàng bị xâm nhập và phá hoại.Trước tình hình đó, việc ứng dụng công nghệ nhận diện khu
GIỚI THIỆU
Đề tài "Nhận Diện Khuôn Mặt Để Mở Cửa Và Chống Giả Mạo" phát triển hệ thống kiểm soát truy cập bằng công nghệ nhận diện khuôn mặt, nâng cao an ninh cho tòa nhà, văn phòng và nhà ở Hệ thống đảm bảo chỉ người được phép mới vào khu vực bảo vệ, đồng thời ngăn chặn hành vi gian lận Với trí tuệ nhân tạo và thuật toán học sâu, hệ thống mang lại giải pháp bảo mật hiện đại, hiệu quả và tiện lợi.
GIẢI PHÁP
Giải pháp phần cứng và truyền thông
2.1.1 Giải pháp phần cứng a ESP32-CAM
ESP32 Camera là một module phát triển tích hợp camera dựa trên vi điều khiển ESP32, rất được ưa chuộng trong các dự án IoT, hệ thống giám sát và ứng dụng xử lý hình ảnh.
Tên Mô tả Điện áp hoạt động 3.3-5V
Dòng điện tiêu thụ 160mA
Giao tiếp UART, SPI, I2C, GPIO
SPI Flash 520KB SRAM + 4MB PSRAM
Bộ nhớ ngoài Khe cắm thẻ micro SD lên đến 4GB
Bluetooth Chuẩn Bluetooth 4.2 BR/EDR và BLE
Tốc độ truyền UART 115200bps(Mặc định
+ Hỗ trợ camera OV2640 hoặc camera OV7670, đèn flash tích hợp
Dữ liệu hình ảnh/video Đầu ra dữ liệu hình ảnh hoặc video qua giao thức Wi-fi hoặc lưu trử trên thẻ nhớ microSD
Tín hiều điều khiển Điều khiển các thiết bị ngoại vi khác qua UART, SPI, I2C hoặc GPIO
Bảng 3: Thông số kỹ thuật của Esp32 camera
1 ESP32-CAM sử dụng camera kết nối để ghi hình và chụp ảnh Dữ liệu hình ảnh được gửi đến vi xử lý ESP32 để xử lý.
2 Kết nối mạng Wi-fi: Vi xử lý ESP32 kết nối với mạng Wi-Fi, cho phép thiết bị truyền dữ liệu hình ảnh/video qua mạng.
3 Truyền dữ liệu: Dữ liệu hình ảnh/video có thể được truyền đến các thiết bị khác qua mạng Wi-Fi hoặc được lưu trữ trên đám mây hoặc máy chủ từ xa.
4 Giao tiếp với các thiết bị ngoại vi: ESP32-CAM cũng có khả năng giao tiếp với các thiết bị ngoại vi khác như cảm biến, đèn LED thông qua các giao tiếp như UART, SPI, I2C hoặc GPIO.
Hình 2: Sơ đồ chân của Esp32 camera b Khóa chốt điện từ LY-03 12VDC
Khóa chốt điện từ LY-03 12VDC là một loại khóa điện từ hoạt động bằng cách sử dụng điện để điều khiển chốt khóa.
Hình 3: Khóa chốt điện từ
Bảng 4: Thông số kỹ thuật của khóa chốt điện từ
1 Trạng thái đóng( Locked State)
Khi không có nguồn điện cấp cho khóa, lò xo bên trong khóa sẽ đẩy chốt khóa vào vị trí khóa, giữ cửa hoặc vật thể ở trạng thái đóng.
2 Trạng thái mở ( Unlocked State)
Khi có nguồn điện 12VDC cấp vào cuộn dây điện từ, cuộn dây sẽ sinh ra từ trường mạnh kéo lõi sắt vào trong cuộn dây
Sự chuyển động của lõi sắt kéo theo chốt khóa, khiến chốt di chuyển ra khỏi vị trí khóa, từ đó mở khóa và cho phép cửa hoặc vật thể được mở ra.
3 Trở lại trạng thái đóng
Khi nguồn điện bị ngắt, từ trường của cuộn dây điện từ biến mất
Lò xo hoặc cơ chế trở lại sẽ đẩy lõi sắt và chốt khóa trở lại vị trí khóa ban đầu, khóa lại cửa hoặc vật thể.
Các chân của khóa chốt điện từ
Cực dương ( dây đỏ) Đấu với dây dương của nguồn 12V
Cực âm (dây đen) Đấu với dây âm của nguồn 12V
Vật liệu Thép không gỉ
Yêu cầu nguồn cấp 12VDC1A
Bảng 5: Sơ đồ đấu nối của khóa chốt điện từ c Cảm biến tiệm cận
Cảm biến tiệm cận hồng ngoại E3F-DS30P1 PNP vàng dùng ánh sáng hồng ngoại để xác định khoảng cách tới vật cản.
Hình 4: Cảm biến tiệm cận
Khoảng cách phát hiện 10-30cm
Dòng kích ngõ ra 300mA
Thời gian đáp ứng 2ms Đối tượng phát hiện Bất kỳ đối tượng phản chiếu nào
Phương pháp phát hiện Phản xạ khếch tán
Bảng 6: Thông số kỹ thuật của cảm biến tiệm cận
1 Phát tia hồng ngoại: Cảm biến phát ra một chùm tia hồng ngoại từ bộ phảt.
2 Phản xạ từ vật thể: Khi có vật thể đi vào phạm vi phát hiện, tia hồng ngoại sẽ phản xạ trở lại từ bề mặt của vật thể.
3 Nhận tín hiệu: Bộ thu trong cảm biến nhận lại tia hồng ngoại phản xạ.
4 Xử lý tín hiệu: Cảm biến xử lý tín hiệu nhận được để xác định sự hiện diện của vật thể và xuất tín hiệu điều khiển tương ứng.
Các chân của cảm biến tiệm cận
Dây nâu Kết nối với nguồn dương
Dây xanh dương Kết nối với nguồn âm
Dây đen Tín hiệu ngõ ra ( Output)
Bảng 7: Sơ đồ đấu nối của cảm biến tiệm d Relay 5V
Relay 5V là thiết bị chuyển mạch điều khiển điện, cho phép điều khiển tải điện áp và dòng điện cao thông qua tín hiệu điện áp thấp từ vi điều khiển hoặc mạch logic.
Hình 5: Relay 5V Điện áp 5V
Công suất cuộn dây 360mW
Dòng cuộn dây 70mA-100mA
Bảng 8: Thông số kỹ thuật của Relay 5V
1 Trạng thái bình thường ( Cuộn dây không có điện)
Cuộn dây không có dòng điện, lõi sắt không phải là nam châm.
Lò xo giữ tiếp điểm ở vị trí NC (Normally Closed), tiếp điểm NO (Normally Open) không kết nối.
2 Trạng thái kích hoạt ( Cuộn dây có điện):
Khi có điện áp 5V qua cuộn dây, dòng điện tạo từ trường
Từ trường làm lõi sắt trở thành nam châm, hút armature và thay đổi vị trí tiếp điểm
Tiếp điểm NO (Normally Open) kết nối, tiếp điểm NC (Normally Closed) ngắt kết nối.
Chân Ký hiệu Chức năng
1 COM Chân chung, kết nối với thiết bị hoặc nguồn điện
2 NO hân thường mở, kết nối với thiết bị khi relay được kích hoạt
3 NC Chân cấp nguồn cho cuộn relay (5V)
4 VCC Chân cấp nguồn cho cuộn relay (5V)
5 GND Chân nối đất của cuộn relay
6 IN Chân tín hiệu điều khiển, nhận tín hiệu để kích hoạt relay
Bảng 9: Sơ đồ chân e Cảm biến ánh sáng
Hình 6: Cảm biến ánh sáng
Thông số kĩ thuật Mô tả Điện áp hoạt động 3.3-5V
Dạng tín hiệu ra Analog và TTL
Bảng 10: Thông số kỹ thuật của cảm biến ánh sáng
Các chân của cảm biến ánh sáng
VCC Kết nối với nguồn
GND Kết nối với chân GND
AO Kết nối với chân analog
DO Kết nối với chân digital
Bảng 11: Sơ đồ chân cảm biến ánh sáng
Cảm biến ánh sáng quang trở (LDR) hoạt động dựa trên nguyên tắc thay đổi điện trở theo cường độ ánh sáng
Trong bóng tối, điện trở của LDR rất cao, nhưng khi có ánh sáng, điện trở giảm đáng kể
Để chuyển đổi sự thay đổi điện trở này thành tín hiệu điện áp, LDR được kết nối trong mạch phân áp với một điện trở cố định
Điểm nối giữa LDR và điện trở cố định tạo ra tín hiệu điện áp thay đổi theo mức ánh sáng, mà vi điều khiển có thể đọc được.
Hình 8: Sơ đồ lắp mạch
STT Tên thiết bị Chi phí
6 Arduino Uno R3 và dây USB 135.000
7 Tấm fomex trắng, keo dán 110.000
Bảng 12: Chi phí 2.1.2 Giải pháp truyền thông
RESTful API là tiêu chuẩn thiết kế API cho phần mềm, ứng dụng và dịch vụ web, giúp quản lý tài nguyên hiệu quả Nó tập trung vào các tài nguyên hệ thống như tệp văn bản, hình ảnh, video, âm thanh và dữ liệu di động, với các trạng thái tài nguyên được định dạng và truyền tải qua giao thức HTTP RESTful API không phải là công nghệ cụ thể, mà là phương thức tổ chức và tạo ra API theo nguyên lý nhất định.
API (Giao diện lập trình ứng dụng) là tập hợp các quy tắc và cơ chế cho phép một ứng dụng hoặc thành phần tương tác với một ứng dụng hoặc thành phần khác Nó cung cấp dữ liệu cần thiết cho ứng dụng của bạn dưới các định dạng phổ biến như JSON hoặc XML.
REST (Representational State Transfer) là một kiến trúc API sử dụng phương thức HTTP đơn giản để giao tiếp giữa các máy Thay vì xử lý thông tin người dùng qua một URL duy nhất, REST gửi yêu cầu HTTP như GET, POST, DELETE đến một URL để quản lý và xử lý dữ liệu hiệu quả.
RESTful API là tiêu chuẩn thiết kế API cho ứng dụng web, giúp quản lý tài nguyên hiệu quả Đây là một trong những kiểu thiết kế API phổ biến hiện nay, cho phép các ứng dụng web và di động giao tiếp một cách linh hoạt và hiệu quả.
REST hoạt động chủ yếu dựa vào giao thức HTTP Các hoạt động cơ bản nêu trên sẽ sử dụng những phương thức HTTP riêng.
GET (SELECT): Trả về một Resource hoặc một danh sách Resource.
POST (CREATE): Tạo mới một Resource.
PUT (UPDATE): Cập nhật thông tin cho Resource.
DELETE (DELETE): Xoá một Resource.
2 1.3 Lưu trữ dữ liệu sử dụng Firebase
Firebase là nền tảng Backend-as-a-Service (BaaS) do Google phát triển, giúp các nhà phát triển dễ dàng xây dựng ứng dụng web và di động Nền tảng này cung cấp nhiều tính năng như cơ sở dữ liệu thời gian thực, lưu trữ đám mây, xác thực người dùng, thông báo đẩy và phân tích Firebase hỗ trợ các SDK cho các nền tảng phổ biến như Android, iOS, JavaScript, Unity và C++ Một trong những tính năng nổi bật của Firebase là Firebase Storage, dịch vụ lưu trữ đám mây cho phép quản lý và lưu trữ tệp tin, hình ảnh, video và âm thanh cho các ứng dụng.
Hình 10: Lưu trữ ảnh ở storage
Firestore Database là một cơ sở dữ liệu đám mây tài liệu do Google phát triển, dựa trên công nghệ NoSQL Nó cho phép các nhà phát triển lưu trữ và truy vấn dữ liệu một cách hiệu quả trong thời gian thực.
Hình 11: Lưu trữ trong Firestore Database
Hình 12: Lưu trữ trong Realtime database
Giải pháp TTNT/KHDL
2.2.1 Mô hình tổng quan
Hình 13: Mô hình tổng quan
Phương hướng triển khai, nhóm xác định mô hình nhận diện tổng quan sẽ bao gồm những khối sau:
Hệ thống nhận diện khuôn mặt bắt đầu với hình ảnh đầu vào cần phân tích Hình ảnh này sẽ được xử lý qua mô hình "Nhận diện khuôn mặt" để xác định và phân loại khuôn mặt, kết quả trả về sẽ là nhãn tương ứng với khuôn mặt trong ảnh hoặc giá trị "Unknowed Face" nếu khuôn mặt không tồn tại trong cơ sở dữ liệu Firebase.
Sau khi nhận kết quả từ mô hình đầu tiên, hình ảnh sẽ được đưa vào mô hình “Nhận diện giả mạo” để phân loại gương mặt Mô hình này xác định xem khuôn mặt trong ảnh là của người thật hay bị giả mạo Kết quả sẽ trả về nhãn “Real” nếu là khuôn mặt thật và nhãn “Fake” nếu là khuôn mặt giả mạo.
Sau khi nhận kết quả từ hai mô hình, chương trình trên Server sẽ gửi tín hiệu điều khiển đến phần cứng để “Đóng cửa” nếu hình ảnh được nhận diện là “Khuôn mặt không xác định” hoặc nếu phát hiện tình trạng giả mạo.
Nếu hình ảnh nhận diện khuôn mặt là nhãn có sẵn trên Firebase và kết quả xác thực là "REAL", Server sẽ gửi tín hiệu đến phần cứng để "Mở cửa".
2.2.2 Mô hình nhận diện khuôn mặt Face Detector
Bộ phát hiện khuôn mặt (Face Detector) là công nghệ nhận diện và xác định vị trí khuôn mặt trong hình ảnh hoặc video Công nghệ này được ứng dụng rộng rãi trong nhận diện khuôn mặt, kiểm soát truy cập, phân tích cảm xúc và an ninh Trong dự án lần này, nhóm quyết định sử dụng mô hình MTCNN làm bộ phát hiện khuôn mặt.
Hình 14: Kết quả trả về của Face Detector MTCNN
Sử dụng MTCNN để phát hiện khuôn mặt trong hình ảnh đầu vào, chúng ta nhận được 4 tọa độ bounding box cho các khuôn mặt cùng với 5 điểm landmark trên khuôn mặt, bao gồm 2 mắt, 1 mũi, 2 bên cánh môi và điểm confident cho mỗi box Sau đó, chúng ta cắt vùng bounding box chứa khuôn mặt và điều chỉnh kích thước về 160x160 Hình ảnh đã qua xử lý sẽ được đưa vào mô hình tiếp theo để nhận diện gương mặt.
2.2.3 Trích xuất đặc trưng gương mặt bằng Facenet
FaceNet là một thuật toán tiên tiến giúp nhận dạng và phân cụm khuôn mặt hiệu quả Thuật toán này sử dụng hàm triplet loss trong hàm loss function, giúp khắc phục những hạn chế của các phương pháp nhận dạng khuôn mặt trước đó Quá trình huấn luyện của FaceNet cho phép mô hình học được sự tương đồng giữa hai bức ảnh khi chúng thuộc cùng một lớp, đồng thời phân biệt sự khác biệt khi hai bức ảnh không cùng lớp.
FaceNet là một mạng Siamese, sử dụng để biểu diễn véc-tơ đặc trưng của ảnh trong không gian Euclidean n chiều, thường là 128 chiều Quy tắc chính là khoảng cách giữa các véc-tơ embedding càng nhỏ thì mức độ tương đồng giữa chúng càng cao Tập hợp các véc-tơ này sẽ được sử dụng làm dữ liệu đầu vào cho hàm loss function, nhằm đánh giá chỉ số khoảng cách giữa các véc-tơ.
FaceNet sử dụng mạng nơ-ron tích chập (CNN) để nhúng hình ảnh vào không gian Euclidean d chiều, nhằm đảm bảo rằng khoảng cách giữa các hình ảnh của cùng một người không bị ảnh hưởng bởi các điều kiện bên ngoài Điều này giúp giảm thiểu khoảng cách giữa các khuôn mặt giống nhau của một người, trong khi tăng cường khoảng cách giữa các hình ảnh khác nhau.
Hàm f(x) ∈ R d biểu diễn ảnh x trong không gian Euclidean d chiều, bao gồm ba loại ảnh: Anchor (ảnh gốc), Positive (ảnh tương tự ảnh gốc) và Negative (ảnh khác ảnh gốc) Trong không gian Euclidean, các ảnh này tương ứng với Xa, Xp và Xn Để đạt được độ nhận diện tốt, khoảng cách từ Xa đến các ảnh còn lại cần được tối ưu hóa.
Xp sẽ phải nhỏ hơn khoảng cách từ Xa tới Xn
Hình 17: Bộ 3 hình ảnh Positive, Anchor, Negative
Hàm triplet loss sẽ có dạng như sau:
Hình 18: Hàm triplet loss
Khi huấn luyện mô hình Siam network với triplet loss, cần xác định cặp ảnh (Xa, Xp) thuộc về cùng một người Ảnh Xn là ảnh khác với ảnh gốc và thường được chọn ngẫu nhiên từ các lớp ảnh khác Để chuẩn bị tập dữ liệu huấn luyện, tập hợp ảnh Xn thường được thu thập với nhiều hơn một bức ảnh cho mỗi người Nếu một người chỉ có một ảnh, những tập dữ liệu như vậy vẫn có thể được sử dụng làm bộ ảnh Xn trong quá trình huấn luyện.
Việc áp dụng triplet loss trong các mô hình CNN giúp tạo ra các véc-tơ đặc trưng tối ưu cho từng bức ảnh Những véc-tơ này cho phép phân biệt rõ ràng giữa các ảnh Negative (ảnh không giống ảnh gốc) và ảnh Positive (ảnh tương tự ảnh gốc) Hơn nữa, khoảng cách giữa các bức ảnh cùng lớp sẽ được rút ngắn trong không gian Euclidean.
Hình 19: Kiến trúc mạng YOLOv8
Trích xuất đặc trưng từ YOLOv8 bao gồm các thông tin quan trọng về nội dung và cấu trúc hình ảnh, được lấy từ các tầng cuối của backbone hoặc neck.
Sau khi trích xuất đặc trưng từ YOLOv8, chúng ta tiến hành huấn luyện, lưu và tải mô hình để phân loại hình ảnh thành hai nhóm "Fake" và "Real" Để thu thập dữ liệu, chúng ta sẽ trích xuất khuôn mặt thật từ camera và gán nhãn là REAL Tiếp theo, chúng ta phát một đoạn video hoặc cầm một tấm ảnh đưa qua lại trước camera để trích xuất khuôn mặt và gán nhãn là FAKE.
Để xây dựng một mô hình phân loại ảnh thật và giả, chúng ta sẽ sử dụng mạng CNN với tất cả dữ liệu đã thu thập ở các bước trước Mô hình này sẽ phân tích các đặc trưng của ảnh tĩnh 2D như ánh sáng, độ phản chiếu và vết hằn do tần số quét màn hình để xác định tính xác thực của hình ảnh.
Giải pháp phần mềm
Flask là một micro-framework web được phát triển bằng ngôn ngữ lập trình Python, cho phép xây dựng các ứng dụng web từ đơn giản đến phức tạp Với Flask, người dùng có thể tạo ra các API nhỏ, trang web, blog, trang wiki, hoặc thậm chí là các trang thương mại điện tử Flask cung cấp các công cụ, thư viện và công nghệ hỗ trợ để thực hiện những công việc này Do tính chất là một micro-framework, Flask hoạt động độc lập với ít phụ thuộc vào các thư viện bên ngoài, giúp nó nhẹ và giảm thiểu lỗi, đồng thời dễ dàng phát hiện và xử lý các vấn đề bảo mật.
Đơn giản và linh hoạt, thiết kế này cho phép người dùng tự do lựa chọn phương pháp và công nghệ phù hợp với dự án của mình.
Flask là một framework linh hoạt cho phép tích hợp dễ dàng các thư viện và mô-đun khác, giúp mở rộng chức năng của ứng dụng một cách hiệu quả.
Dễ dàng bắt đầu: Đôi với những người bắt đầu, Flask cung cấp một ngưỡng học thấp, giúp họ nhanh chóng làm quen và phát triển kỹ năng.
Không có cấu trúc chuẩn: Do tính đơn giản và linh hoạt, Flask không có một cấu trúc chuẩn hoặc quy định cụ thể
Flask thiếu tính năng toàn diện so với các framework web khác như Django, vì nó có ít tính năng tích hợp sẵn Điều này dẫn đến việc người dùng cần sử dụng nhiều thư viện và công cụ mở rộng bên ngoài để đáp ứng nhu cầu phát triển ứng dụng.
Flask cung cấp các tính năng bảo mật và xác thực cơ bản, tuy nhiên, người dùng cần tự quản lý và triển khai các giải pháp bảo mật bổ sung để đảm bảo an toàn cho ứng dụng.
Server là một thành phần quan trọng trong hệ thống, cung cấp các API chính cho toàn bộ hệ thống Những API này sẽ được gọi từ phía client, bao gồm ứng dụng di động và hệ thống phần cứng.
Xây dựng API cho server sẽ được sử dụng flask api python, restfull API Các API chia theo các chức năng của cùng một đối tượng.
Xây dựng API cho server sẽ được sử dụng flask api python, restfull API Các API chia theo các chức năng của cùng một đối tượng
Bảng 13: Tổng hợp Api của hệ thống
- Bài toán cần giải quyết:
Xây dựng app mobile dành cho người dùng tương tác với hệ thống gồm những chức năng sau:
+ Stream hình ảnh đang thực hiện nhận diệnh trên hệ thống
+ Thêm một khuôn mặt mới vào hệ thống
+ Mở khóa cửa thông qua app
/api/addAccount POST ‘email’,’pass’.
/api/editAccount POST ‘email’,’pass’ Đăng nhập /api/login POST ‘email’,’pass’
Nhận diện /api/upload POST ‘image’
/api/stream GET no prarameter
Mở cửa /api/openDoor GET no parameter
/api/addFace/ POST folder_name
Thống kê /api/chart GET no parameter
Xem lịch sử /api/history GET no parameter
/api/warning GET no parameter
+ Biều đồ đường biểu thị số lượng người ra vào tỏng tuần và tỏng ngày theo từng thành viên có số ngày ra vào cao
+ Xem lịch sử ra vào
+ Xem cảnh báo người lạ và người giả mạo ra vào hệ thống
- Công nghệ sử dụng: React native
- Đối tượng người dùng: Người dùng trong nhà
React Native là một framework do Facebook phát triển, cho phép xây dựng ứng dụng di động trên nền tảng Android và iOS bằng cách sử dụng các công nghệ web như React, JavaScript và CSS.
- Một số đặc điểm nổi bật của React Native:
React Native cho phép phát triển ứng dụng một lần và triển khai trên cả hai nền tảng Android và iOS, mang lại lợi ích lớn về thời gian và chi phí cho quá trình phát triển.
React Native áp dụng kiến trúc component để phát triển giao diện người dùng, cho phép tái sử dụng và kết hợp các component nhằm tạo ra các giao diện phức tạp và linh hoạt.
+ React Native có thư viện cộng đồng phong phú và đa dạng, cung cấp nhiều module hữu ích như Redux, React Navigation, React Native Elements, và nhiều thứ khác.
Hình 21: Giao diện đăng nhập đăng kí tài khoản
Hình 22: Giao diện chính của app mobile
Hình 23: Giao diện thông báo và hiển thị khuôn mặt
Hình 24: Giao diện mở cửa từ xa và thêm khuôn mặt
Hình 25: Giao diện thêm khuôn mặt và thống kê lịch sửa ra vào
Hình 26: Biểu đồ use-case của ứng dụng
KẾT QUẢ
Nhận diện khuôn mặt
- Trong phần huấn luyện mô hình nhận diện khuôn mặt, nhóm sử dụng tập dữ liệu khuôn mặt tự thu bằng ESP32 Cam, độ phân giải VGA(640x480).
- Mô tả: Tập dữ liệu bao gồm khuôn mặt của 20 người, mỗi người 20 ảnh với các mức độ thay đổi về tỉ lệ, tư thế.
- Phân chia dữ liệu: Train: 50%, Test: 50%
Hình 27: Biểu đồ tổng quan dữ liệu
Sau khi thu thập và phân chia dữ liệu hợp lý, nhóm đã sử dụng Face Detector MTCNN để phát hiện và cắt ảnh khuôn mặt Tiếp theo, mô hình Facenet được tải để trích xuất vector đặc trưng với 512 chiều Kết quả là danh sách các vector này được đưa vào mô hình SVM với kernel=linear và probability=true, cho phép phân chia dữ liệu tuyến tính và tính toán xác suất dự đoán cho từng lớp đầu ra Việc này giúp giám sát tỷ lệ dự đoán của các lớp, từ đó điều chỉnh ngưỡng xác định cho các khuôn mặt lạ không có trong cơ sở dữ liệu của hệ thống.
- Sau khi sử dụng, nhóm sử dụng thư viện sklearn.metrics để tiến hành đánh giá hiệu suất mô hình
Bảng 14: Các thông số đánh giá mô hình
Sau khi huấn luyện và thu được model, ta tiến hành load model và kiểm thử với tập test, thu được Confusion matrix như sau:
Hình 28: Confusion matrix nhận diện khuôn mặt
Nhãn Ảnh nhận diện Nhãn dự đoán
Bảng 15: Kết quả kiểm thử nhận diện gương mặt
+ Tốc độ thực thi được ghi nhận trên CPU intel core i5 gen 11 th
+ Sử dụng webcam để stream ảnh liên tục và nhận diện
+ Ảnh chụp trong điều kiện ánh sáng phòng
+ Database chứa 20 dữ liệu đặc trưng gương mặt
+ Sử dụng hàm dự đoán xác suất của SVM để so khớp khuôn mặt
Số khuôn mặt Tốc độ nhận diện trung bình
Bảng 16: Tốc độ thực thi nhận diện gương mặt
Quá trình nhận dạng khuôn mặt diễn ra nhanh chóng, nhưng tốc độ thực thi có xu hướng tăng khi số lượng gương mặt trong ảnh tăng lên Nguyên nhân là do hệ thống phải thực hiện nhiều tác vụ hơn, bao gồm phát hiện khuôn mặt, tiền xử lý, tính toán embedding và dự đoán xác suất cho từng gương mặt trong khung hình.
Nhận diện giả mạo
- Trong phần huấn luyện mô hình nhận diện khuôn mặt, nhóm sử dụng tập dữ liệu tự thu bằng webcam.
Tập dữ liệu này chứa các hình ảnh khuôn mặt được phân loại thành hai nhãn: Real và Fake Tổng cộng có 4,117 ảnh được gán nhãn Real và 4,117 ảnh được gán nhãn Fake.
- Phân chia dữ liệu: Train: 70%, Validation: 20%, Test: 10%
Hình 29: Biểu đồ tổng quan dữ liệu
- Nhóm sử dụng YOLOv8 để nhận diện khuôn mặt trong bức ảnh là Fake hay Real.
- Mô hình được huấn luyện với các thông số:
+ Metrics: Sử dụng các metric để đánh giá hiệu suất như Precision, Recall, F1-score, mAP.
Hình 30: Đồ thị box loss
Hình 31: Đồ thị class loss
Kết quả sau khi train với 10 epoch:
Bảng 17: Bảng đánh giá hiệu suất mô hình 3.2.3 Kiểm thử
Sau khi huấn luyện và thu được model, ta tiến hành load model và kiểm thử với tập test, thu được Confusion matrix như sau:
Hình 32: Confusion matrix nhận diện giả mạo
Nhãn Ảnh nhận diện Nhãn dự đoán
Bảng 18: Kết quả kiểm thử giả mạo gương mặt
+ Tốc độ thực thi được ghi nhận trên CPU intel core i5 gen 11 th
+ Sử dụng webcam để stream ảnh liên tục và nhận diện
+ Số lượng Frame/Second là 7FPS
+Ảnh chụp trong điều kiện ánh sáng phòng
+ Sử dụng model YOLO đã được train trước đó để phân loại nhãn
Số khuôn mặt Tốc độ nhận diện trung bình
Bảng 19: Tốc độ thực thi nhận diện gương mặt
Quá trình nhận diện giả mạo diễn ra nhanh chóng, với tốc độ thực thi tăng không đáng kể khi có nhiều gương mặt trong ảnh Điều này xảy ra bởi vì không cần sử dụng Face Detector, nhờ vào mô hình YOLO đã được huấn luyện trên dữ liệu chứa khuôn mặt và bounding box Mô hình này giúp phát hiện khuôn mặt trong ảnh mới một cách nhanh chóng Hơn nữa, module nhận diện giả mạo chỉ sử dụng hai nhãn Fake và Real, do đó, quá trình phân loại hình ảnh cũng diễn ra nhanh hơn.