1. Trang chủ
  2. » Luận Văn - Báo Cáo

HỆ THỐNG mở KHÓA cửa tự ĐỘNG sử DỤNG NHẬN DẠNG KHUÔN mặt 2

33 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hệ Thống Mở Khóa Cửa Tự Động Sử Dụng Nhận Dạng Khuôn Mặt
Tác giả Nguyễn Mạnh Đức, Ngô Lê Gia Hưng, Quách Minh Nhật
Người hướng dẫn TS. Bùi Thị Thanh Thanh
Trường học Trường Đại Học Bách Khoa
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo cáo đồ án
Năm xuất bản 2022
Thành phố Đà Nẵng
Định dạng
Số trang 33
Dung lượng 1,36 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN (7)
    • 1. Giới thiệu (7)
      • 1.1 Giới thiệu sản phẩm (7)
      • 1.2 Mục tiêu (7)
      • 1.3 Các vấn đề cần giải quyết (7)
  • CHƯƠNG 2: GIẢI PHÁP (9)
    • 2. Các giải pháp (9)
      • 2.1 Sơ đồ tổng quan của hệ thống (9)
      • 2.2 Sơ đồ hoạt động tổng quan (9)
      • 2.3 Linh kiện sử dụng (10)
      • 2.4 Giải pháp truyền thông (11)
      • 2.5 Giải pháp phát hiện và nhận diện khuôn mặt (14)
        • 2.5.1 Tổng quan về hệ thống nhận diện (14)
        • 2.5.2 Face Detector (14)
        • 2.5.3 Face Encoder (15)
        • 2.5.4 Face identifier (17)
      • 2.6 Giải pháp ứng dụng di động (20)
        • 2.6.1 Bài toán (20)
        • 2.6.2 Công nghệ sử dụng (20)
        • 2.6.3 Biểu đồ usecase hệ thống (21)
        • 2.6.4 Server (21)
  • CHƯƠNG 3: KẾT QUẢ (23)
    • 3. Tổng quan kết quả đạt được (23)
      • 3.1 Kết quả thực tế (23)
        • 3.1.1 Quá trình thực hiện và kết quả phân tích và nhận diện khuôn mặt (23)
        • 3.1.2 Ứng dụng di động (26)
  • CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (31)
    • 4. Kết luận và hướng phát triển (31)
      • 4.1 Đánh giá sản phẩm (31)
      • 4.2 Hướng phát triển (31)

Nội dung

TỔNG QUAN

Giới thiệu

Hiện nay, với sự phát triển của xã hội, nhu cầu về an ninh bảo mật ngày càng trở nên cấp thiết trên toàn thế giới Hệ thống nhận diện khuôn mặt đang trở thành giải pháp quan trọng trong việc bảo vệ ngôi nhà Đáp ứng nhu cầu này, nhóm chúng tôi đã phát triển sản phẩm mở khóa cửa tự động bằng khuôn mặt, giúp chủ nhà tiết kiệm thời gian và chi phí, đồng thời nâng cao hiệu quả bảo mật.

Xây dựng hệ thống nhận diện khuôn mặt sử dụng ESP32 Cam bằng cách thu thập và so sánh dữ liệu khuôn mặt Mô hình sẽ nhận diện khuôn mặt từ camera, đối chiếu với dữ liệu đã lưu trữ để đưa ra kết quả chính xác, từ đó thực hiện chức năng mở khóa cửa.

1.3 Các vấn đề cần giải quyết

• Xử lý và lắp nối các thiết bị phần cứng

• Xử lý ảnh từ Camera của ESP32 và dữ liệu trước đó

• Kết nối và cài đặt ESP8266

• Xây dựng hệ thống phân tích và nhận diện khuôn mặt

• Lập trình và viết mã nguồn cho các chức năng

• Ghép nối các phần và chạy thử từ đó điều chỉnh mô hình

Vấn đề Giải pháp đề xuất

Phát hiện khuôn mặt • Xây dựng và huấn luyện model phát hiện khuôn mặt

• Thử nghiệm với các model: Facenet, LBPH, OpenCV

• Huấn luyện trên Visual Studio Code

Nhận diện khuôn mặt • Xây dựng và huấn luyện model nhận diện khuôn mặt

• Thử nghiệm với các model: Facenet, MTCNN,…

• Huấn luyện trên Visual Studio Code

Báo cáo đồ án PBL5 - Kỹ thuật máy tính

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt 2 Ứng dụng

• Xây dựng ứng dụng điện thoại với React Native

• Người dùng có thể đăng nhập

• Có chức năng hiển thị camera thời gian thực, lịch sử các lần nhận diện

• Đóng mở cửa bằng ứng dụng

Server Viết API bằng Django Rest Framework

Bảng 1: Đề xuất giải pháp tổng quan

Báo cáo đồ án PBL5 - Kỹ thuật máy tính

GIẢI PHÁP

Các giải pháp

Hình 1: Sơ đồ tổng quan hệ thống

Hệ thống bao gồm ESP8266 và ESP32 Cam để chụp ảnh, kết nối với smartphone để tương tác và hiển thị kết quả, cùng với Django REST Framework để thiết lập máy chủ Thông qua mạng không dây, điện thoại và ESP32 Cam có thể giao tiếp với máy chủ qua API, được lập trình dựa trên Django REST Framework.

2.2 Sơ đồ hoạt động tổng quan

Hình 2: Sơ đồ hoạt động tổng quan

Báo cáo đồ án PBL5 - Kỹ thuật máy tính

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt 4

2.3 Linh kiện sử dụng Tên linh kiện Hình ảnh Thông số, hoạt động

- Bộ vi xử lý ESP8266EX

- Mạng không dây 2.4 GHz hỗ trợ chuẩn 802.11 b/g/n

- Điện áp vào: 5V thông qua cổng USB

- Giao tiếp: Cable Micro USB

- Hỗ trợ bảo mật: WPA/WPA2

- Tích hợp giao thức TCP/IP

- Bộ vi xử lý ESP32-D0WD

- RAM: 512KB bên trong + PSRAM 4M bên ngoài

- Bluetooth: Bluetooth 4.2 BR / EDR và BLE

- Bảo mật: WPA / WPA2 / WPA2- Enterprise / WPS

- Định dạng hình ảnh đầu ra: JPEG

- Tốc độ truyền của UART: mặc định 115200bps

- Điện áp cung cấp: 5 ~ 12VDC

- Tín hiệu ngõ ra: Jack cắm động cơ bước 28BYJ-48

- Có 3 đèn LED báo trạng thái: PWD, TX & RX

Báo cáo đồ án PBL5 - Kỹ thuật máy tính

- Tốc độ Baud: 300 bps đến 1,5 Mbps

Bảng 2: Linh kiện sử dụng

Tên linh kiện Đơn giá Ghi chú

460.000 Bảng 3: Bảng kê chi phí đồ án

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ả Tiêu chuẩn này tập trung vào các loại tài nguyên như tệp văn bản, hình ảnh, âm thanh, video và dữ liệu độ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.

Báo cáo đồ án PBL5 - Kỹ thuật máy tính

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt 6

Hình 3: Mô hình RESTful API

• Các thành phần của RESTful API

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 các ứng dụng hoặc thành phần tương tác với nhau 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 cụ thể, 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.

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 phương pháp phổ biến hiện nay, cho phép các ứng dụng web và di động giao tiếp linh hoạt với nhau.

Chức năng chính của REST là quy định cách sử dụng các phương thức HTTP như GET, POST, PUT và DELETE, cùng với cách định dạng URL cho ứng dụng web nhằm quản lý các tài nguyên RESTful không giới hạn logic mã ứng dụng và có thể được triển khai bằng bất kỳ ngôn ngữ lập trình hoặc framework nào, cho phép thiết kế một API RESTful linh hoạt và đa dạng.

• Phương thức RESTful hoạt động:

Hình 4: Sơ đồ hoạt động RESTful API

Báo cáo đồ án PBL5 - Kỹ thuật máy tính

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 Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng với Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa

• Giới thiệu về Django REST Framework:

Django REST Framework is a powerful framework integrated with Django, designed to create robust Web APIs that serve as a bridge between various systems, including clients such as web, mobile, and tablet devices, and servers like Django with MySQL databases.

Django REST Framework hỗ trợ giao thức truyền tải dữ liệu HTTP thông qua các phương thức như Post, Get, Put, Delete

Báo cáo đồ án PBL5 - Kỹ thuật máy tính

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt 8

2.5 Giải pháp phát hiện và nhận diện khuôn mặt 2.5.1 Tổng quan về hệ thống nhận diện:

Hình 6: Sơ đồ hệ thống nhận diện khuôn mặt 2.5.2 Face Detector

Face detection is a module in a system designed to identify faces within an image and highlight them using bounding boxes The primary model utilized for this task is MTCNN.

MTCNN viết tắt của Multi-task Cascaded Convolutional Networks Nó là bao gồm

3 mạng CNN xếp chồng và đồng thời hoạt động khi detect khuôn mặt Mỗi mạng có cấu trúc khác nhau và đảm nhiệm vai trò khác nhau trong task

MTCNN có 3 lớp mạng khác biệt, tượng trưng cho 3 stage chính là P-Net, R-Net

Báo cáo đồ án PBL5 về Kỹ thuật máy tính và O-Net trình bày rằng MTCNN nhận đầu vào là một bức ảnh của một người hoặc một nhóm người Đầu ra của MTCNN bao gồm vị trí khuôn mặt cùng với các điểm quan trọng trên khuôn mặt như mắt, mũi và miệng.

Face encoder: là một module trong hệ thống được dùng để trích xuất đặc trưng của một gương mặt có trong bức ảnh

Sử dụng model facenet để đi trích xuất đặc trưng Facenet gồm có hai thành phần chính đó là siam network và triple loss function

SIAM NETWORK là một kiến trúc mạng giúp xác định xem hai bức ảnh có thuộc về cùng một người hay không, thay vì chỉ dự đoán danh tính của từng bức ảnh Mô hình này nhận vào hai bức hình và phân tích để đưa ra kết luận về sự tương đồng giữa chúng.

Ví dụ: muốn phân loại người A với một bức ảnh, ta chỉ cần đưa bức ảnh của người

Khi hai bức ảnh được đưa qua mô hình phân loại, hệ thống sẽ xác định xem chúng có cùng người hay thuộc loại khác nhau.

Mạng Siam nhận đầu vào là hai bức ảnh bất kỳ và tạo ra đầu ra là hai vector đặc trưng tương ứng Các vector này được biểu diễn dưới dạng số học, cho phép kiểm tra độ tương đồng giữa các bức ảnh thông qua một hàm loss Hàm loss phổ biến được sử dụng trong trường hợp này là norm bậc 2.

Hàm loss function được sử dụng để đo lường sự khác biệt giữa hai vectơ biểu diễn của hai ảnh input Thông thường, hàm loss function này là một hàm chuẩn bậc 2.

Báo cáo đồ án PBL5 - Kỹ thuật máy tính

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt 10

||𝑓(𝑥1) − 𝑓(𝑥2)|| 2 2 Phải là một giá trị nhỏ

- Khi x1, x2 là 2 người khác nhau:

||𝑓(𝑥1) − 𝑓(𝑥2)|| 2 2 Phải là một giá trị lớn

TRIPLE LOSS: Ta chọn 3 bức ảnh trong đó sẽ có 1 bức ảnh làm chính (Anchor

Image), bên cạnh đó sẽ có 1 bức ảnh giống (Positive) và một bức ảnh khác (Negative) với bức ảnh Anchor Kí hiệu lần lượt là A,P,N

Hàm loss function đóng vai trò quan trọng trong việc tối thiểu hóa khoảng cách giữa hai ảnh khi chúng là Negative, đồng thời tối đa hóa khoảng cách khi chúng là Positive Do đó, việc lựa chọn các bộ ba ảnh phù hợp là cần thiết để đạt được hiệu quả tối ưu trong quá trình học máy.

Ảnh Anchor và Positive khác nhau ở chỗ cần chọn sao cho khoảng cách d(A,P) lớn Việc này tương tự như việc bạn chọn một bức ảnh thời thơ ấu so với hiện tại, khiến cho thuật toán học trở nên khó khăn hơn Tuy nhiên, nếu thuật toán có khả năng nhận biết, nó sẽ trở nên thông minh hơn.

KẾT QUẢ

Tổng quan kết quả đạt được

Sau khi hoàn thành quá trình xây dựng PBL5, nhóm đã nỗ lực hoàn thiện sản phẩm theo đúng yêu cầu và thời gian đã đề ra, tập trung vào các mục tiêu và vấn đề ban đầu.

- Nắm được kiến thức cơ bản về kỹ thuật máy tính

- Nắm được các kiến thức về phát hiện và nhận diện khuôn mặt để điều khiển Camera

- Tương ứng với những kết quả nhận diện được người dùng có thể điều khiển, xem và quản lý camera để đóng mở cửa

3.1 Kết quả thực tế 3.1.1 Quá trình thực hiện và kết quả phân tích và nhận diện khuôn mặt Quá trình xây dựng mô hình:

• Cài đặt thư viện và các phần mềm cần thiết:

❖ Tải và cài đặt CUDA

Để chuẩn bị dữ liệu, các bạn trong lớp cần thu thập một dataset bao gồm 30 bức ảnh mỗi người, với kích thước và kích cỡ ảnh khác nhau Mỗi bức ảnh phải chụp rõ ràng một khuôn mặt cụ thể của từng bạn, từ nhiều góc độ khác nhau Hãy đặt tên folder chứa ảnh của từng bạn theo tên của chính bạn để dễ dàng quản lý.

Báo cáo đồ án PBL5 - Kỹ thuật máy tính

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt 18

Xử lý dữ liệu ảnh chụp khuôn mặt bao gồm việc sử dụng mô hình MTCNN để phát hiện khuôn mặt và cắt ảnh nhằm thu được khuôn mặt cụ thể của từng đối tượng, loại bỏ các yếu tố ngoại cảnh xung quanh.

Hình 13: Ảnh được crop cụ thể của đối tượng

Chuẩn hóa dữ liệu và lưu trữ là bước quan trọng trong quy trình xử lý hình ảnh Dữ liệu thu được từ các định dạng ảnh như jpg và png sẽ được chuyển hóa thành vector 512 chiều bằng cách sử dụng model Facenet Sau đó, dữ liệu này sẽ được lưu trữ dưới dạng file npy và lưu trữ đối tượng để đảm bảo tính khả dụng và hiệu quả trong việc truy xuất sau này.

• Test: Phần test thực hiện các bước:

❖ Thu thập dư liệu test (cụ thể là 1 ảnh từ đối tượng cần test)

❖ Xử lý dữ liệu, cắt dữ liệu về và chuẩn hóa dữ liệu về dạng vector tương ứng (512 chiều)

❖ Truy cập đến file npy đã lưu trữ và file lưu trữ đối tượng, xử dụng thuật

Báo cáo đồ án PBL5 - Kỹ thuật máy tính toán cần thiết để tính toán và xác định, định danh khuôn mặt cần test

Kết quả nhận diện khuôn mặt:

Hình 15: Kết quả nhận diện khuôn mặt

Chú thích: Ảnh sử dụng detect được 1 người, khoảng cách Euclid nhỏ nhất có được là 0.60715 Xác định đây là ảnh của Đạt, với xác suất là 93%

Hình 16: Kết quả 50 lần test

Chọn ngưỡng phù hợp và sử dụng camera ESP32-CAM giúp ảnh test có độ sáng đầy đủ, ít nhòa mờ, đạt độ chính xác 88% sau 50 lần kiểm tra Sai số chủ yếu xảy ra do camera bị rung, nhòa, mờ hoặc độ sáng thấp.

Báo cáo đồ án PBL5 - Kỹ thuật máy tính

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt 20

Hình 17: Giao diện đăng nhập Hình 18: Giao diện đăng ký

Chức năng: Đăng ký tài khoản người dùng và đăng nhập với tài khoản vừa đăng ký

Người dùng có thể dễ dàng đăng ký tài khoản bằng cách cung cấp Email, mật khẩu và mã PIN Sau khi hoàn tất đăng ký, họ sẽ đăng nhập vào tài khoản mới tạo và được chuyển đến màn hình chính của ứng dụng.

Báo cáo đồ án PBL5 - Kỹ thuật máy tính

Hình 19: Giao diện màn hình chính

Chức năng: Là giao diện màn hình chính của ứng dụng

Users can navigate through different screens such as Control, History, and Profile by clicking on the BottomTab Additionally, they can access the Control screen for the Front by pressing the Front button.

Báo cáo đồ án PBL5 - Kỹ thuật máy tính

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt 22

Hình 20: Giao diện xem camera và điều khiển cửa

Chức năng của hệ thống là cung cấp giao diện điều khiển để mở và đóng cửa, cũng như xem camera thời gian thực Người dùng chỉ cần nhấn vào nút Switch để thực hiện lệnh mở cửa, sau 10 giây, cửa sẽ tự động đóng lại Bên dưới giao diện, người dùng có thể theo dõi hình ảnh từ camera thời gian thực thông qua Webview.

Báo cáo đồ án PBL5 - Kỹ thuật máy tính

Hình 21: Giao diện danh sách lịch sử các lần nhận diện

Báo cáo đồ án PBL5 - Kỹ thuật máy tính

Nhóm 01 – Hệ thống điểm danh lớp học bằng nhận diện khuôn mặt 24

Hình 22: Giao diện chi tiết lịch sử nhận diện

Chức năng: Là giao diện hiển thị danh sách và xem chi tiết các lần nhận diện khuôn mặt

Người dùng có thể cuộn qua danh sách lịch sử và nhấn vào một mục để xem chi tiết, bao gồm số lần nhận diện, tên người nhận diện và thời gian nhận diện, thông qua một Modal hiển thị.

Hình 23: Giao diện thông tin người dùng

Chức năng: Là giao diện hiển thị thông tin người dùng

Các hoạt động: Người dùng xem email của mình trên màn hình Người dùng đăng xuất khỏi ứng dụng bằng cách

Báo cáo đồ án PBL5 - Kỹ thuật máy tính

Ngày đăng: 23/12/2023, 22:48

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w