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
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO PBL5 – DỰ ÁN KỸ THUẬT MÁY TÍNH
MỞ CỬA BẰNG NHẬN DIỆN KHUÔN MẶT VÀ CHỐNG GIẢ
MẠO KHUÔN MẶT
SINH VIÊN THỰC HIỆN:
GIẢNG VIÊN HƯỚNG DẪN: TS NINH KHÁNH DUY
Trang 2TÓM TẮT
Trong thời đại công nghệ số hiện nay, an ninh và bảo mật là những vấn đề quantrọng được đặt lên hàng đầu 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ôn mặt vào hệ thống kiểm soát truy cập đang trở thành một giải pháp tiên tiến và hiệu quả
Nhận diện khuôn mặt là một công nghệ cho phép xác định hoặc xác thực danh tính của một cá nhân bằng cách sử dụng các đặc điểm khuôn mặt Đề tài "Nhận Diện Khuôn Mặt Để Mở Cửa Và Chống Giả Mạo" tập trung vào việc phát triển một hệ thống bảo mật sử dụng công nghệ này nhằm tăng cường an ninh cho các tòa nhà, văn phòng, nhà ở và các khu vực yêu cầu mức độ bảo vệ cao
Hệ thống nhận diện khuôn mặt để mở cửa và chống giả mạo không chỉ đảm bảo rằng chỉ những người được phép mới có thể truy cập vào khu vực được bảo vệ, mà cònngăn chặn các hành vi gian lận và giả mạo Điều này đạt được thông qua việc sử dụng các thuật toán học sâu (deep learning) và trí tuệ nhân tạo (AI) để phân tích và xác minhcác đặc điểm khuôn mặt một cách chính xác và nhanh chóng
Báo cáo này sẽ trình bày chi tiết các bước thực hiện, từ giai đoạn khảo sát nhu cầu, phân tích yêu cầu, thiết kế hệ thống, cho đến quá trình thử nghiệm và đánh giá kếtquả
Trang 3BẢNG PHÂN CÔNG NHIỆM VỤ
STT Sinh viên thực hiện Các nhiệm vụ Tự đánh giá
1
Hoàng Chiến Thắng
- Lọc dữ liệu, chia thành các tập huấn luyện và kiểm thử
- Huấn luyện và thử nghiệm
mô hình nhận diện khuôn mặt
- Huấn luyện và thử nghiệm
mô hình phát hiên giả mạo
- Ghép nối và thử nghiệm sản phẩm
Đã hoàn thành
✓
2 Lê Thanh Việt - Lọc dữ liệu, chia thành các
tập huấn luyện và kiểm thử
- Huấn luyện và thử nghiệm
mô hình phát hiên giả mao
- Huấn luyện và thư nghiệm
mô hình nhận diện giả mạo
- Ghép nối và thử nghiệm sản phẩm
- Lập trình phần cứng
- Thiết kế mô hình phần cứng
Đã hoàn thành
✓
Bảng 1: Phân công nhiệm vụ
Trang 4MỤC LỤC
1 GIỚI THIỆU 8
2 GIẢI PHÁP 8
2.1 Giải pháp phần cứng và truyền thông 9
2.1.1 Giải pháp phần cứng 9
2.1.2 Giải pháp truyền thông 17
2.1.3 Lưu trữ dữ liệu sử dụng Firebase 18
2.2 Giải pháp TTNT/KHDL 20
2.2.1 Mô hình tổng quan 20
2.2.2 Mô hình nhận diện khuôn mặt Face Detector 21
2.2.3 Trích xuất đặc trưng gương mặt bằng Facenet 22
2.3 Giải pháp phần mềm 26
2.3.1 Flash Framework 26
2.3.2 App mobile 28
3 KẾT QUẢ 33
3.1 Nhận diện khuôn mặt 33
3.1.1 Tập dữ liệu 33
3.1.2 Huấn luyện 33
3.1.3 Kiểm thử 34
3.1.4 Tốc độ thực thi 36
3.2 Nhận diện giả mạo 36
3.2.1 Tập dữ liệu 36
3.2.2 Huấn luyện 37
3.2.4 Tốc độ thực thi 40
4 KẾT LUẬN 42
4.1 Đánh giá 42
4.2 Hướng phát triển 42
TÀI LIỆU THAM KHẢO 43
Trang 5DANH SÁCH BẢNG BIỂU
Bảng 1: Phân công nhiệm vụ 3
Bảng 2: Tổng quan giải pháp 8
Bảng 3: Thông số kỹ thuật của Esp32 camera 10
Bảng 4: Thông số kỹ thuật của khóa chốt điện từ 12
Bảng 5: Sơ đồ đấu nối của khóa chốt điện từ 12
Bảng 6: Thông số kỹ thuật của cảm biến tiệm cận 13
Bảng 7: Sơ đồ đấu nối của cảm biến tiệm 14
Bảng 8: Thông số kỹ thuật của Relay 5V 14
Bảng 9: Sơ đồ chân 15
Bảng 10: Thông số kỹ thuật của cảm biến ánh sáng 15
Bảng 11: Sơ đồ chân cảm biến ánh sáng 16
Bảng 12: Chi phí 17
Bảng 13: Tổng hợp Api của hệ thống 27
Bảng 14: Các thông số đánh giá mô hình 36
Bảng 15: Kết quả kiểm thử nhận diện gương mặt 36
Bảng 16: Tốc độ thực thi nhận diện gương mặt 39
Bảng 17: Bảng đánh giá hiệu suất mô hình 40
Bảng 18: Kết quả kiểm thử giả mạo gương mặt 41
Bảng 19: Tốc độ thực thi nhận diện gương mặt 41
Trang 6DANH SÁCH HÌNH ẢNH
Hình 1: Sơ đồ IoT 9
Hình 2: Esp32 camera 9
Hình 3: Sơ đồ chân Esp32 camera 11
Hình 4: Khóa chốt điện từ 11
Hình 5: Cảm biến tiệm cận 13
Hình 6: Relay 5V 14
Hình 7: Cảm biến ánh sáng 15
Hình 8: Sơ đồ lắp mạch 17
Hình 9: Sơ đồ Restful Api 15
Hình 10: Lưu trữ ảnh ở storage 18
Hình 11: Lưu trữ trong Firestore Database 19
Hình 12: Lưu trữ trong Realtime database 19
Hình 13: Mô hình tổng quan 20
Hình 14: Kết quả trả về của Face Detector MTCNN 21
Hình 15: Facenet Layers 22
Hình 16: Siam Network 23
Hình 17: Bộ 3 hình ảnh Positive, Anchor, Negative 23
Hình 18: Hàm triplet loss 24
Hình 19: Kiến trúc mạng YOLOv8 24
Hình 20: Hình ảnh Real/Fake 25
Hình 21: Giao diện đăng nhập đăng kí tài khoản 29
Hình 22: Giao diện chính của app mobile 29
Hình 23: Giao diện thông báo và hiển thị khuôn mặt 30
Hình 24: Giao diện mở cửa từ xa và thêm khuôn mặt 30
Hình 25: Giao diện thêm khuôn mặt và thống kê lịch sửa ra vào 31
Hình 26: Biểu đồ use-case của ứng dụng 31
Hình 27: Biểu đồ tổng quan dữ liệu 32
Hình 28: Các thông số đánh giá mô hình 34
Hình 29: Confusion matrix nhận diện khuôn mặt 34
Trang 7Hình 30: Đồ thị box loss 34 Hình 31: Đồ thị class losst 34 Hình 32: Confusion matrix nhận diện giả mạo 34
Trang 81 GIỚI THIỆU
Đề tài "Nhận Diện Khuôn Mặt Để Mở Cửa Và Chống Giả Mạo" tập trung vào việc phát triển một hệ thống kiểm soát truy cập sử dụng công nghệ nhận diện khuôn mặt, nhằm tăng cường an ninh cho các tòa nhà, văn phòng và nhà ở Hệ thống này không chỉ đảm bảo rằng chỉ những người được phép mới có thể truy cập vào khu vực được bảo vệ, mà còn ngăn chặn các hành vi gian lận Sử dụng trí tuệ nhân tạo và thuật toán học sâu, hệ thống nhận diện khuôn mặt mang lại giải pháp bảo mật hiện đại, hiệu quả
Thư viện Facenet, MTCNN
Giả mạo khuôn
mặt
Thư viện YOLOv8Server - Xây dựng Server dùng Flask - API, lưu trữ bằng Firebase
- Thu thập dữ liệu từ esp32 cam
- Xử lí, phân tích dữ liệu, gửi lại kết quả cho người dùngApp Mobile - Xây dựng ứng dụng điện thoại bằng React-Native
- Cho phép quản lí hệ thống từ xa
- Nhận thông báo khi có sự xâm nhập không được phép
Trang 9Bảng 2: Tổng quan giải pháp
Sơ đồ IoT
Hình 1: Sơ đồ IoT
2.1 Giải pháp phần cứng và truyền thông
Trang 10Tên Mô tả
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
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
Trang 114 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
Các chân
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
Trang 12Hình 3: Khóa chốt điện từ
Thông số kỹ thuật
Bảng 4: Thông số
từ
Nguyên tắc hoạt động:
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, di chuyển chốt ra khỏi vị trí khóa, làm cho khóa mở ra và cửa hoặc vật thể có thể được mở
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
Trang 13Bảng 5: Sơ đồ đấu nối của khóa chốt điện từ
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ạ.
Trang 144 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 xanh dương Kết nối với nguồn âmDâ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à một thiết bị chuyển mạch điều khiển bằng điện, thường được sử dụng
để điều khiển các tải điện áp và dòng điện cao bằng cách sử dụng một tín hiệu điện áp thấp từ một vi điều khiển hoặc mạch logic
Hình 5: Relay 5V
Bảng 8: Thông số kỹ thuật của Relay 5V
Nguyên tắc hoạt động
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
Trang 15 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
Các chân của relay 5V
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
4 VCC Chân cấp nguồn cho cuộn relay (5V)
Trang 16Quang trở CDS
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ồnGND 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
Trang 17 Restful API
Trang 18RESTful API là một tiêu chuẩn được sử dụng trong việc thiết kế API cho các phầnmềm, ứng dụng và dịch vụ web để tạo sự thuận tiện cho việc quản lý các resource Các tài nguyên hệ thống như tệp văn bản, ảnh, video, âm thanh hay dữ liệu di động là mục tiêu mà nó hướng tới, bao gồm các trạng thái tài nguyên được định dạng và truyền tải qua HTTP Có thể nói, RESTful API không phải là một loại công nghệ Nó chỉ là một phương thức tạo ra API và nguyên lý tổ chức nhất định.
Hình 9: Sơ đồ Restful Api API (Application Programming Interface) là một tập các quy tắc và cơ chế mà
theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình
ở những kiểu dữ liệu phổ biến như JSON hay XML.
REST (Representational State Transfer) là một dạng chuyển đổi cấu trúc dữ liệu,
một kiểu kiến trúc để viết API Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp giữa các máy Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thôngtin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv đến mộtURL để xử lý dữ liệu
RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng
dụng web để quản lý các resource RESTful là một trong những kiểu thiết kế API được sử dụng phổ biến ngày nay để cho các ứng dụng (web, mobile ) khác nhau giaotiếp với nhau
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.
Trang 19DELETE (DELETE): Xoá một Resource.
2.1.3 Lưu trữ dữ liệu sử dụng Firebase
Firebase là một nền tảng Backend-as-a-Service (BaaS) được phát triển bởi Google để giúp các nhà phát triển xây dựng các ứng dụng web và di động nhanh chóng và dễ dàng hơn Firebase cung cấp các tính năng và dịch vụ 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, phân tích và nhiều hơn nữa Firebase cũng cung cấp các SDK cho các nền tảng phổ biến như Android, iOS, JavaScript, Unity và C++ Các tính năng của Firebase được sử dụng trong đồ án: • Firebase Storage: dịch vụ lưu trữ đám mây cho phép các ứng dụng lưu trữ và quản lý các tệp tin, hình ảnh, video và
âm thanh.
Hình 10: Lưu trữ ảnh ở storage
Firestore Database: là một cơ sở dữ liệu đám mây có cấu trúc tài liệu được pháttriển bởi Google Firestore được xây dựng trên cơ sở dữ liệu NoSQL và cho phép các nhà phát triển lưu trữ và truy vấn dữ liệu trong thời gian thực
Trang 20Hình 11: Lưu trữ trong Firestore Database
Hình 12: Lưu trữ trong Realtime database
Trang 212.2 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ẽ baogồm những khối sau:
Input đầu vào của hệ thống sẽ là hình ảnh cần nhận diện Hình ảnh nhận diện sẽđược đưa vào mô hình “Nhận diện khuôn mặt” để tiến hành xác định khuôn mặttrong bức ảnh và phân loại khuôn mặt đó thuộc về người nào, kết quả trả về sẽ làlabel tương ứng với khuôn mặt có trong ảnh hoặc là giá trị “Unknowed Face” nếuhình ảnh chứa khuôn mặt không có trong Firebase
Sau khi nhận được 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” để tiến hành phân loại xem gương mặt trong ảnh là củangười thật hay là bị kẻ xấu giả mạo Kết quả trả về sẽ là nhãn “Real” nếu hìnhảnh chứa khuôn mặt thật hoặc là nhãn “Fake” nếu hình ảnh chứa khuôn mặt giảmạo
Trang 22 Sau khi nhận được output từ 2 mô hình trên, 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 trả về kết quả nhận dạng khuôn mặt là “Unknowed Face” hoặc kết quả nhận diện giả mạo là
“FAKE” Ngược lại, Server sẽ gửi tín hiệu đến phần cứng để “Mở cửa” nếu hình ảnh trả về kết quả nhận dạng khuôn mặt là nhãn tồn tại trên Firebase của hệ thống
và kết quả nhận diện giả mạo là “REAL”
2.2.2 Mô hình nhận diện khuôn mặt Face Detector
Face Detector (bộ phát hiện khuôn mặt) là một công nghệ hoặc thuật toán dùng
để nhận diện và xác định vị trí khuôn mặt người trong hình ảnh hoặc video Các bộphát hiện khuôn mặt được sử dụng rộng rãi trong nhiều ứng dụng như nhận diện khuônmặt, kiểm soát truy cập, phân tích cảm xúc, và các ứng dụng an ninh Nhóm quyếtđịnh sẽ sử dụng mô hình MTCNN như một Face Detector cho dự án lần này
Hình 14: Kết quả trả về của Face Detector MTCNN
- Sử dụng MTCNN để dò tìm các khuôn mặt xuất hiện trong hình ảnh đầu vào,kết quả trả về là 4 tọa độ bounding box của các khuôn mặt, tọa độ 5 điểm landmarktrên mặt, bao gồm 2 mắt, 1 mũi, 2 bên cánh môi và điểm confident của mỗi box Ta cắtvùng bounding box chứa khuôn mặt và resize về kích cỡ 160x160 Hình ảnh sau khi
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 hỗ trợ cho việc nhận dạng và phân cụm khuôn mặt.Đối với thuật toán FaceNet, hàm loss function sử dụng hàm triplet loss cho phép khắcphục hạn chế của các phương pháp nhận dạng trước đây, quá trình huấn luyện chophép học được đồng thời: Sự giống nhau giữa hai bức ảnh (nếu hai bức ảnh cùng mộtlớp) và sự khác nhau giữa hai bức ảnh (nếu chúng không cùng một lớp)
Trang 23Hình 15: Facenet Layers
FaceNet chính là một dạng Siam network thường biểu diễn véc-tơ đặc trưng củacác bức ảnh trong một không gian Euclidean n chiều (thường là 128 chiều) Việc biểudiễn thường tuân theo quy tắc: Nếu 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 lớn và ngược lại Tập hợp véc-tơ này sẽ là dữliệu đầu vào cho hàm loss function để đánh giá chì số khoảng cách giữa các véc-tơ FaceNet sử dụng CNN bằng cách dùng hàm f(x) và nhúng hình ảnh X vàokhông gian Euclidean d chiều sao cho khoảng cách giữa các hình ảnh của 1 ngườikhông phụ thuộc vào điều kiện bên ngoài, khoảng cách giữa các khuôn mặt giống nhau(cùa cùng một người là nhỏ) trong khi khoảng cách giữa các ảnh khác nhau sẽ cókhoảng cách lớn