Phân tích yêu cầu bài toán
Hệ thống cửa thông minh nhận diện khuôn mặt hiệu quả cần đáp ứng yêu cầu cốt lõi sau: nhận diện chính xác khuôn mặt, định danh người dùng, quyết định mở cửa hợp lý, quản lý dữ liệu chủ sở hữu an toàn và sở hữu giao diện người dùng đơn giản Việc áp dụng các thuật toán nhận diện khuôn mặt tiên tiến, xây dựng cơ sở dữ liệu ảnh khuôn mặt chính xác, đảm bảo tính bảo mật cho dữ liệu chủ sở hữu và thiết kế giao diện trực quan là chìa khoá để xây dựng hệ thống thông minh, tiện lợi và an toàn cho người sử dụng
Kỹ thuật nhận diện khuôn mặt sử dụng OpenCV Dlib và Deeplearning có một số đặc trưng sau [1] [4]:
- Tính chính xác cao: Sử dụng các kỹ thuật nhận diện khuôn mặt đưa ra kết quả chính xác hơn so với các phương pháp khác Các thuật toán Deep Learning và Dlib sử dụng các mô hình học sâu để nhận diện khuôn mặt với độ chính xác rất cao, và cũng có khả năng nhận diện các gương mặt khác nhau.
- Tốc độ xử lý tương đối: Nhờ được triển khai trên các nền tảng phần cứng mạnh mẽ, kỹ thuật này có khả năng xử lý nhanh hơn và đáp ứng được các yêu cầu về thời gian thực trong các ứng dụng Từ đó giúp hệ thống nhận diện khuôn mặt hoạt động mượt mà, trơn tru, mang lại trải nghiệm tốt nhất.
- Dễ sử dụng và triển khai: OpenCV, Dlib và các thư viện Deep Learning cung cấp các công cụ và thư viện đơn giản để triển khai các ứng dụng nhận diện khuôn mặt và đào tạo mô hình Các thư viện này đi kèm với nhiều tài liệu hướng dẫn và ví dụ minh hoạ chi tiết, giúp nhà phát triển nhanh chóng nắm bắt và triển khai kỹ thuật nhận diện khuôn mặt vào dự án của mình.
Trong chương này chúng em thực hiện thiết kế và xây dựng hệ thống có khả năng phát hiện khuôn mặt người từ ảnh chụp và thực hiện định danh người đó Để xử lý bài toán phát hiện khuôn mặt trong đề tài, chúng em thực hiện tiếp cận dựa trên so sánh khớp mẫu, bài toán này được giải quyết bằng phương pháp sử dụng kỹ thuật nhận diện khuôn mặt với OpenCV Dlib và Deeplearning Sau đó khi một khuôn mặt được đưa vào, nó sẽ được đem so sánh với các dữ liệu gốc và nhận dạng khuôn mặt, quyết định xem ảnh đó là của ai Ưu điểm của hệ thống là nâng cao tính bảo mật và tiện lợi cho người dùng.
Hệ thống cửa thông minh sẽ được ứng dụng trên máy tính kết nối với webcam để nhận ảnh từ bên ngoài ngoài và xuất tín hiệu để thực hiện việc đóng/mở cửa.
- Phát hiện được khuôn mặt của người sử dụng.
- Độ chính xác khi xác định khuôn mặt cao, từ 85% trở lên.
- Có khả năng đóng mở cửa đúng theo yêu cầu đề bài.
- Có khả năng tương thích, phù hợp với môi trường sử dụng.
- Đánh giá được những ảnh hưởng bên ngoài đối với hệ thống.
- Xác định khả năng phát triển của hệ thống.
2.1.3 Ràng buộc thiết kế của bài toán
- Về linh kiện: Đảm bảo linh kiện phù hợp đề tài, giá thành phù hợp.
- Tốc độ: Tốc độ nhận diện tốt, ổn định.
- Tính chỉnh xác: Tính chính xác cao, sai xót thấp.
STT Tên linh kiện Giá thành tham khảo
2 Môdul nguồn ổn áp IC L7812 20.000 VNĐ
3 Mạch hạ áp IC 2596 7.000 VNĐ
5 Cảm biến vân tay AS608 280.000 VNĐ
6 Vi điều khiển STM32F103C8T6 125.000 VNĐ
Kết luận: Thiết kế mục tiêu giới hạn dưới 1 triệu đồng, đáp ứng khả năng nhận diện ổn định, có tính chính xác cao, ít bị sai xót khi nhận diện khuôn mặt.
2.1.4 Phương án thiết kế bài toán
Từ yêu cầu của bài toán, phân tích và đưa ra các phương pháp thiết kế. Đối với mạch điều khiển sản phẩm, mô hình có thể sử dụng STM32, Arduino Nana, ESP 32
- Phương pháp 1: Sử dụng STM32 điều khiển kết hợp với nhận diện khuôn mặt bằng OpenCV và Deep Learning xác định hình ảnh qua Webcam để tính toán đặc điểm của khuôn mặt.
- Phương pháp 2: Sử dụng Arduino Uno điều khiển kết hợp với thu nhận hình ảnh qua camera, nhận diện khuôn mặt bằng OpenCV.
- Phương pháp 3: Sử dụng ESP32 và ESP32 Cam làm bộ điều khiển, đồng thời tương tác, cảnh báo qua bot Telegram.
Phương án Sử dụng VDK
Sử dụng ESP32 Ưu điểm
- Tốc độ xử lý nhanh, đa nhiệm tốt.
- Dòng sản phẩm phổ biến, đa dạng, nhiều lựa chọn: tính năng, giá cả.
- Tích hợp nhiều tính năng: Giao tiếp, ngoại vi, ADC, …
- Cộng đồng lớn, nhiều thư viện, tài nguyên trực tuyến sẵn có.
- Tích hợp giao tiếp Wi-fi, Bluetooth Chi phí thấp.
- Dòng sản phẩm đa dạng về tính năng, cấu hình.
Nhược điểm - Lập trình, cấu hỉnh
- Hiệu suất thấp, không phù hợp cho
- Hiệu suất xử lý khá thấp so với với người mới.
- Giá thành cao so với một số dòng vi điều khiển khác. ứng dụng cần xử lý nhanh, phức tạp.
- Số lượng chân ít, tính năng hạn chế.
- Bộ nhớ RAM hạn chế ở một số phiên bản. Đánh giá
Lựa chọn tốt cho các dự án đòi hỏi hiệu suất cao và tính năng nâng cao.
Phù hợp cho các dự án nhỏ, đơn giản với người mới.
Phù hợp cho ứng dụng IoT, dự án kết nối không dây.
Lựa chọn: Nhóm quyết định lựa chọn STM32 để thực hiện đề tài vì những lý do sau:
- Sự quen thuộc: Các thành viên đã được học về vi điều khiển STM32 trong chương trình đào tạo.
- Sự phù hợp: Đề tài yêu cầu khả năng xử lý liên tục với tốc độ cao phù hợp với hiệu suất và tốc độ xung nhịp của STM32.
- Về kiến thức: Vi điều khiển STM32 có độ phức tạp vừa đủ để thực hiện đề tài và tìm hiểu sâu hơn về vi điều khiển này.
- Khả năng phát triển: Vi điều khiển STM32 có nhiều không gian để nhóm tiếp tục nghiên cứu và phát triển thêm về đề tài này.
2.1.5 Tiêu chí kỹ thuật của bài toán
- Hệ thống có khả năng phát hiện khuôn mặt và định danh khuôn mặt người từ ảnh được chụp bởi camera trong khoảng cách từ 50cm đến 150cm.
- Hệ thống có chức năng thêm ảnh của chủ sở hữu vào cơ sở dữ liệu khuôn mặt, để thực hiện nhận dạng.
- Hệ thống đáp ứng cơ bản lưu trữ dữ liệu.
- Hệ thống cửa thông minh với độ chính xác cao đến 85%.
Hình 2.5 Sơ đồ khối của hệ thống
Khối nguồn: Cung cấp nguồn nuôi cho cả hệ thống.
Khối đầu vào: Là camera, cảm biến vân tay, bàn phím, lấy dữ liệu vào, chuyển đến khối điều khiển xử lý.
Khổi hiển thị: Hiển thị trạng thái đóng, mở cửa, các thao tác, yêu cầu thực hiện.
Khối thực thi: Nhận tín hiệu từ khối điều khiển và thực hiện điều khiển hoạt động đóng, mở cửa.
Khối điều khiển: Nhận dữ liệu từ khối đầu vào, xử lý và xuất ra tín hiệu điều khiển đưa ra khối hiển thị và khối thực thi. a Khối nguồn
Từ nguồn điện AC 220V sẽ được đưa vào biến áp, sau đó biến áp sẽ tách điện áp và giảm điện áp xuống còn 12V Sau khi điện áp đã được giảm xuống 12V, dòng điện đi qua mạch ổn áp sử dụng IC 7812 để ổn định điện áp đầu ra.
Từ nguồn 12V dùng để cấp cho khối thực thi, đi qua mạch hạ áp, cung cấp điện áp ổn định 5V và 3.3V cho các khối còn lại.
Biến áp 220V ra 12V là một thiết bị điện tử dùng để biến đổi điện áp từ nguồn điện chính thành mức điện áp thấp hơn để cung cấp cho các thiết bị điện tử hoặc điện gia dụng sử dụng điện áp thấp hơn, như đèn LED, tivi, máy tính, điện thoại, tủ lạnh và các thiết bị khác.
- Dòng điện định mức: 450mA
Mạch ổn áp 12V dùng IC L7812 [6]
Hình 2.8 Mạch ổn áp 12V dùng IC L7812
Mạch ổn áp 12V sử dụng IC L7812 là một mạch đơn giản và phổ biến trong các ứng dụng điện tử IC L7812 là một ổn áp dương với điện áp đầu vào tối đa là 35V và điện áp đầu ra là 12V với dòng tối đa là 1A.
- Điện áp đầu vào tối đa: 35V
- Điện áp đầu vào tối thiểu: 14,5V
- Điện áp đầu vào tối đa (không vượt quá): 35V
- Điện áp đầu ra tối thiểu: 11,8V
- Điện trở giới hạn dòng điện: 240Ω
Mạch hạ áp 5V dùng IC2596 [7]
Hình 2.9 Mạch hạ áp 5V dùng IC2596
Mạch sử dụng IC nguồn LM2596 điều khiển dòng ra bằng biến trở vi chỉnh mạch nhỏ gọn dễ sử dụng.
- Nguồn đầu ra điều chỉnh được trong khoảng từ 1V đến 30V.
- Hiệu suất: 92% Đầu ra 5V cung cấp cho khối hiển thị.
Hình 2.10 Sơ đồ chân IC2596 Bảng 2.1 Chức năng các chân IC2596
1 V-in Điện áp đầu vào được điều chỉnh.
2 V-out Điện áp đầu ra được điều chỉnh hạ xuống.
4 Feedback Đặt điện áp đầu ra bằng cách sử dụng mạng bộ chia sử dụng phản hồi điện áp đầu ra.
5 ON/OFF Kích hoạt chân, phải được nối đất để hoạt động bình thường.
Mạch hạ áp 3.3V dùng IC1117 [8]
- Công suất cực đại: 2.64W Đầu ra 3.3V cung cấp cho khối điều khiển.
Bảng 2.2 Chức năng các chân IC1117
Châ n Tên chân Mô tả
1 ADJ/Ground Chân này điều chỉnh điện áp đầu ra, nếu là bộ điều chỉnh điện áp cố định thì nó đóng vai trò nối mass.
2 V-out Điện áp đầu ra điều chỉnh được đặt bởi chân điều chỉnh có thể được lấy từ chân này.
3 V-in Điện áp đầu vào được điều chỉnh được cấp cho chân này. b Khối đầu vào
Webcam dây USB là một thiết bị ngoại vi được sử dụng để chụp hình hoặc ghi video trên máy tính hoặc máy tính xách tay Nó được kết nối với máy tính thông qua cổng USB và cung cấp một phương tiện để truyền tải hình ảnh và âm thanh từ máy tính đến internet hoặc các ứng dụng khác.
- Độ phân giải video: 1920 x 1080 pixel (Full HD 1080p)
- Tốc độ khung hình: từ 30fps đến 60fps (hình/giây)
- Góc nhìn: từ 60 đến 90 độ (phụ thuộc vào từng model)
- Độ nhạy sáng: từ 1 Lux đến 5 Lux
- Tương thích với các hệ điều hành: Windows, MacOS, Linux
- Khoảng cách lý tưởng : 50cm – 1m
Bàn phím ma trận mềm 4x4 [9]
Hình 2.14 Bàn phím ma trận và sơ đồ chân
Bàn phím ma trận mềm 4x4 nút được thiết kế thành 4 hàng và 4 cột, giao diện đơn giản giúp dễ dàng giao tiếp với bất kì vi điều khiển nào Mặt sau dính thuận tiện để gắn bàn phím trong nhiều ứng dụng dự án.
- Module bàn phím ma trận 4x4 loại phím mềm.
- Nhiệt độ hoạt động : 0 – 70 độ C.
- Kích thước bàn phím : 77x69mm
Cảm biến nhận dạng vân tay AS608 [10]
KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ
Kiểm thử quá trình ghi khuôn mặt vào trong cơ sở dữ liệu
Quá trình ghi khuôn mặt vào trong cơ sở dữ liệu là thực hiện lấy ảnh của đối tượng từ camera (webcam) hoặc ảnh có sẵn để thêm vào folder chứa dữ liệu.
Hình 3.30 Chương trình thu thập và mã hóa ảnh
Hình 3.31 Folder ảnh được thu thập
Kiểm thử quá trình định danh khuôn mặt
Quá trình định danh sẽ thu ảnh từ camera, định vị khuôn mặt, trích rút đặc trưng của ảnh nhận được từ camera, so sánh với dữ liệu gốc quá trình trên sẽ trả về định danh của đổi tượng khuôn mặt chụp được dựa trên kết quả sai số khoảng cách.
Các kết quả thu được trong quá trình chạy (các kết quả được ghi nhận trong cùng điều kiện ánh sáng và khoảng cách lí tưởng):
Hình 3.32 Nhận diện đúng với số lượng 1 người
Hình minh họa quá trình hoạt động của hệ thống khi nhận diện với một người Hệ thống phát hiện khuôn mặt trên khung hình và khoanh vùng khuôn mặt đó, sau đó sẽ gán tên cho khung hình nếu khuôn mặt phát hiện được có trong tập dữ liệu gốc.
Hình 3.33 Nhận diện đúng người có trong/ngoài dữ liệu gốc
Hình minh họa việc nhận diện người không có trong tập dữ liệu Khi hệ thống phát hiện được sự xuất hiện của khuôn mặt trong khung hình và đối chiếu với dữ liệu gốc Các khuôn mặt không có trong dữ liệu gốc sẽ được gán tên là “Unknow”.
Hình 3.34 Nhận diện 2 hoặc nhiều người cùng lúc
Hình 3.4 và 3.5 minh họa quá trình nhận diện 2 hoặc nhiều người trên hệ thống sử dụng nhận diện khuôn mặt Sau khi hệ thống phát hiện được các khuôn mặt trong khung hình, hệ thống sẽ so sánh dữ liệu khuôn mặt đang được phát hiện với dữ liệu khuôn mặt được lưu lúc đầu
Hình 3.35 Nhận diện đúng với góc mặt nghiêng 45 độ so với camera
Kết quả sản phẩm phần cứng
Hình 3.36 Hệ thống mở cửa khi nhận đúng khuôn mặt/ vân tay/ mật khẩu
Hình 3.37 Hệ thống đóng cửa khi nhận diện khuôn mặt không có trong dữ liệu hoặc sai vân tay, mật khẩu Đánh giá hệ thống
Đánh giá hoạt động
Chức năng phát hiện khuôn mặt được thực nghiệm trong các điều kiện về ánh sáng, hướng của khuôn mặt, khoảng cách, che khuất khuôn mặt và số lượng dữ liệu gốc khác nhau Chương trình hoạt động tốt nhất ở môi trường có ánh sáng tốt, người nhìn chính diện vào camera, không đứng quá xa hoặc quá sát so với camera, khuôn mặt không bị che khuất và dữ liệu gốc đủ nhiều.Đây được coi là môi trường lý tưởng để chương trình đưa ra được tỉ lệ phát hiện khuôn mặt cao Tuy nhiên, khi chương trình được chạy trong môi trường thực tế sẽ bị ảnh hưởng bởi các yếu tố như điều kiện ánh sáng, hướng khuôn mặt, vị trí người đứng so với vị trí đặt camera, khuôn mặt bị che khuất hay dữ liệu gốc quá ít Các yếu tố này làm giảm tỉ lệ phát hiện ra khuôn mặt, dẫn đến chương trình hoạt động hiệu quả thấp hơn.
Hình 3.38 Hệ thống không nhận diện khi che nửa mặt
Hình 3.9 là một ví dụ cho trường hợp với cùng một điều kiện ánh sáng khi khuôn mặt nhìn thẳng vào camera và khuôn mặt bị che khuất một phần, khi bị ảnh hưởng bởi các yếu tố khác chương trình sẽ khó phát hiện được khuôn mặt. Ảnh hưởng của góc nghiêng mặt đối với độ chính xác khi nhận diện
Kiểm thử hệ thống nhận diện trong điều kiện ánh sáng tốt, khoảng cách
~60cm, số lượng ảnh gốc là 30 ảnh (10 ảnh/1 người) với các góc nghiêng khác nhau thì thu được kết quả như bảng sau:
Bảng 3.1 Đánh giá độ chính xác nhận diện dựa theo góc nghiêng
Góc nghiêng mặt so với camera
Số khuôn mặt đưa vào camera
Số khuôn mặt nhận diện đúng Tỉ lệ (%)
Hình 3.39 Hệ thống không nhận diện khi mặt nghiêng quá 90 độ
Hình 3.10 là một ví dụ cho trường hợp với cùng một điều kiện ánh sáng, khoảng cách, nhưng nghiêng mặt 90 độ so với camera, không đủ dữ liệu để so sánh với dữ liệu gốc nên kết luận “Unknow”. Ảnh hưởng của khoảng cách đối với độ chính xác khi nhận diện
Trong thực tế, không phải ở khoảng cách nào cũng đưa ra kết quả nhận diện chính xác, do đó chúng em đã kiểm nghiệm thức tế trong điều kiện ánh sáng tốt, mặt chính diện, số lượng ảnh đầu vào là 30 ảnh (10 ảnh/1 người) và không bị che khuất với các khoảng cách khác nhau và cho kết quả như sau:
Hình 3.40 Hệ thống không nhận diện được khi ở khoảng cách quá xa
Qua quá trình kiểm nghiệm thực tế, chúng em đã đưa ra biểu đồ mức độ chính xác khi nhận diện dựa trên khoảng cách từ camera đến gương mặt như sau:
Hình 3.41 Độ nhận diện chính xác theo khoảng cách
Khoảng cách thích hợp nhất để phát hiện và nhận diện khuôn mặt chính xác nhất nằm trong khoảng 40cm đến 1m. Ảnh hưởng của số lượng ảnh gốc đối với độ chính xác khi nhận diện
Cơ sở dữ liệu cũng là một trong những yếu tố ảnh hướng đến kết quả đầu ra Đối với mỗi đối tượng, hình ảnh được chụp tại các thời điểm khác nhau, thay đổi về ánh sáng, biểu cảm và hướng khuôn mặt
Tập 1: Gồm 150 ảnh của 3 người, mỗi người có 50 ảnh, kích thước giống nhau.
Tập 2: Gồm 120 ảnh của 3 người, mỗi người có 40 ảnh, kích thước giống nhau.
Tập 3: Gồm 90 ảnh của 3 người, mỗi người có 30 ảnh, kích thước giống nhau.
Tập 4: Gồm 60 ảnh của 3 người, mỗi người có 20 ảnh, kích thước giống nhau.
Tập 5: Gồm 30 ảnh của 3 người, mỗi người có 10 ảnh, kích thước giống nhau.
Tập 6: Gồm 15 ảnh của 3 người, mỗi người có 5 ảnh, kích thước giống nhau.
Tập 7: Gồm 3 ảnh của 3 người, mỗi người có 1 ảnh, kích thước giống nhau.
Hình 3.42 Độ nhận diện chính xác theo số lượng ảnh gốc
Hình 3.43 Tỷ lệ nhận diện đúng của 3 khuôn mặt trong dữ liệu gốc
Nhận xét: Tỷ lệ nhận diện của 3 người là khác nhau do dữ liệu gốc lưu ở folder của mỗi người khác nhau về góc độ.