Trong đề tài này, chúng ta sẽ nói về một hệ thống bảo vệ đóng mở cửa bằng phương pháp nhận diện dựa trên công nghệ sinh trắc, cụ thể đó là hệ thống mở cửa bằng nhận diện khuôn mặt.. Yêu
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
Trang 2TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Trang 4THANH BÌNH đã hướng dẫn nhóm em thực hiện đề tài này.
Bên cạnh đó, để hoàn thành khóa học này, nhóm em cũng đã nhận được rấtnhiều sự giúp đỡ, những lời động viên quý báu của các bạn bè, các anh chị thânhữu, nhóm em xin hết lòng cảm ơn
Tuy nhiên, do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mình, nhưng chắcrằng đề tài này khó tránh khỏi những thiếu sót Nhóm em rất mong nhận được sựthông cảm, chỉ bảo tận tình của thầy cô và các bạn
Sinh viên,
LƯƠNG VIẾT NHẬT, NGUYỄN ĐỨC NGỌC KỲ
Trang 5MỤC LỤC
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN III LỜI CẢM ƠN IV MỤC LỤC V DANH MỤC CÁC TỪ VIẾT TẮT VII DANH MỤC HÌNH VẼ VIII
NO TABLE OF FIGURES ENTRIES FOUND VIII
MỞ ĐẦU 1
1 Giới thiệu 1
2 Mục tiêu của đề tài 2
3 Nội dung và kế hoạch thực hiện 2
4 Bố cục báo cáo 2
CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 4
1.1 Tổng quan ngôn ngữ , phần mềm liên quan 4
1.1.1 Ngôn ngữ thực hiện: C, C++ 4
1.1.2 Phần mềm Proteus 6
1.2 Tổng quan thuật toán áp dụng vào đề tài 14
1.2.1 Công nghệ sinh trắc và nhận dạng bằng khuôn mặt 14
a) Công nghệ sinh trắc và bảo mật 14
b) Công nghệ nhận dạng khuôn mặt 15
c) Phân tích kết cấu da 16
1.2.2 Xử lí ảnh đầu vào 16
a) Xử lí video đầu vào 17
b) Nhận dạng khuôn mặt 17
1.3 Kết chương 1 18
CHƯƠNG 2: PHÂN TÍCH HỆ THỐNG 19
❖ Thiết kế chi tiết 19
2.1 Tổng quan hoạt động 20
2.2 Tổng quan về chức năng 22
Trang 62.2.1 Chức năng 22
2.2.2) Phân tích sự kiện 22
a Đăng kí khuôn mặt 22
b Xóa người dùng trong dữ liệu 23
2.2.3 Chức năng đóng/mở ổ khóa 23
2.3 Kết chương 2 23
CHƯƠNG 3: TRIỂN KHAI XÂY DựNG 24
3.1 Các thiết bị phần cứng 24
3.1.1 Module ESP32 CAM 24
a Giới thiệu ESP32 - CAM và các thông số kĩ thuật 24
b ứng dụng thực tế trong thực tế 26
3.1.2 Module Relay 26
3.1.3 Ổ khóa điện tư LY-01 27
3.1.4 Thiết kế mô hình phần cứng 28
3.2 Cách kết nối giữa bộ khóa tới trình duyệt 30
3.2.1 WebSockets ' '.’ 30
3.2.2 Kết nối bằng WebSockets 31
3.2.3 Mô hình phần mềm: 32
KẾT LUẬN 32
1 Kết quả đạt được 32
2 Hạn chế: 32
3 Hướng phát triển 32
TÀI LIỆU THAM KHẢO I PHỤ LỤC I
Trang 7DANH MỤC CÁC TỪ VIẾT TẮT _•
AI Artificial Intelligence , trí tuệ nhân tạo
Trang 8DANH MỤC HÌNH VẼ
H ÌNH : 1.1 C ÁCH GỠ BỎ P ROTEUS 15
H ÌNH :1.2 G Ỡ BỎ TOÀN BỘ P ROTEUS 16
H ÌNH : 1.3 C ÀI ĐẶT P ROTEUS 17
H ÌNH : 1.4 C ÁCH CÀI P ROTEUS 17
H ÌNH : 1.5 Q UÁ TRÌNH CÀI P ROTEUS 18
H ÌNH : 1.6 H OÀN THÀNH CÀI ĐẶT P ROTEUS 18
H ÌNH : 1.7 T HIẾT LẬP P ROTEUS 19
H ÌNH : 1.8 T HIẾT LẬP P ROTEUS 2 20
H ÌNH : 1.9 T HIẾT LẬP P ROTEUS 3 21
H ÌNH : 1.10 T HIẾT LẬP P ROTEUS 4 22
H ÌNH : 1.11 S ơ ĐÔ KHÔI LOGIC CHINH CUA HÊ THÔNG SINH TRĂC HOC 23
H ÌNH : 2.1 S ơ ĐỒ THỰC HIỆN 27
H ÌNH : 2.2 S ơ ĐỒ LÀM VIỆC 28
H ÌNH : 2.3 M Ô TA HOẠT ĐÔNG CUA BÔ KHOA 28
H ÌNH : 2.4 C Ac CHỨC NĂNG CUA BÔ KHOA 30
H ÌNH : 3.1 M ODULE ESP32- CAM 32
H ÌNH : 3.2 H INH A NH C A C CHÂN ESP32 C AM 34
H ÌNH : 3.3 M ODULE RELAY SRD-05VDG-SL-C 35
H ÌNH : 3.4 ổ KHOA ĐIÊN TỨ LY-01 36
H ÌNH 3.5 Sơ ĐỒ LẮP ĐẶT CÁC THIẾT B| 36
H ÌNH 3.6: H ÌNH ẢNH THỰC TẾ KHI LẮP ĐẶT 37
H ÌNH : 3 5 M Ô HÌNH HOÀN THIỆN 38
H ÌNH :3.6 M Ô HÌNH HOÀN THIỆN 2 39
H ÌNH 3.7: M Ô HÌNH PHẦN MỀM TRÊN TRÌNH DUYỆT 42
Trang 9MỞ ĐẦU
1 Giới thiệu
Khoa học công nghệ ngày càng đạt được những thành tựu to lớn, kéo theo đó là
sự phát triển vượt bậc trong các ngành nghề có ứng dụng khoa học kỹ thuật Nhữngnăm gần đây, khái niệm về Internet of thing (loT) không còn xa lạ trong cuộc sống củachúng ta nữa Nhất là khi hiện nay, các thiết bị loT đã được sử dụng tràn ngập, rộng rãikhắp thế giới Điều đó cho ta thấy được lợi ích của các thiết bị này như thế nào trongcuộc sống con người
Bên cạnh sự phát triển của loT, trí tuệ nhân tạo cũng phát triển vượt bậc trongthời gian vừa qua Bằng chứng là khắp các ngành nghề đều đang có những ứng dụng
sử dụng trí tuệ nhân tạo để nhằm tạo năng suất lao động tốt hơn, độ chính xác máy caohơn Các sản phẩm trí tuệ nhân tạo có tính đột phá, điều mà những năm về trước conngười chỉ có thể xem là viễn tưởng
Việc kết hợp một sản phẩm loT có ứng dụng của trí tuệ nhân tạo là tất yếu cũng
là xu hướng hiện nay Với đề tài “Bộ khóa cửa nhận diện bằng khuôn mặt” của
nhóm chúng em đang thực hiện, chính là sự kết hợp đó với mong muốn tìm hiểu vàphát triển một sản phẩm công nghệ theo xu hướng nhưng ứng dụng hiệu quả trongcuộc sống
Trong thời đại phát triển hiện nay, vấn đề bảo mật và an ninh là một vấn đề cực
kì quan trọng và cần thiết trong cuộc sống, ta có thể thấy được hàng loạt các công nghệ
có liên quna và ảnh hưởng đến vấn đề này đang thúc đẩy đời song phát triển mạnh mẽ
Từ vấn đề an ninh của các cơ quan, trụ sở cho tới việc đảm bảo an toàn các thiết bị ,nhà cửa, công trình, Điển hình như một thiết lập một hệ thống bảo vệ nhà cửa tránh
sự xâm nhập của người lạ cũng như vấn đề trộm cướp Hệ thống đó có thể là một 0khóa thông minh được người dùng cài đặt mật khẩu là những con số, kí tự, hay bằngvân tay, giọng nói, khuôn mặt,
Như đã nêu ở trên, những địa điểm đó đều cần có sự bảo mật được đặt lên hàngđầu thì một chiếc khóa cửa bảo vệ lối ra vào để phát hiện, ngăn chặn xâm nhập củangười lạ là vô cùng cần thiết Trong đề tài này, chúng ta sẽ nói về một hệ thống bảo
vệ đóng mở cửa bằng phương pháp nhận diện dựa trên công nghệ sinh trắc, cụ thể đó
là hệ thống mở cửa bằng nhận diện khuôn mặt
2 Mục tiêu của đề tài
Trang 10Với đề tài này chúng ta xác định mục tiêu là vấn đề bảo mật cho lối ra vào củamột địa điểm Cụ thể là bộ khóa cửa cho một căn hộ Yêu cầu đặt ra cho bộ khóa nàygồm các tiêu chí:
- Nhận diện có độ chính xác cao
- Cho phép người sử dụng lưu khuôn mặt vào dữ liệu vào hệ thống
- Tốc độ mở khóa nhanh, khi có người dùng muốn mở cửa (khóa điện sẽ thức hiệnđóng mở 0 khóa) thì camera tiến hành nhận diện khuôn mặt
- Sản phẩm có tính thẩm mỹ
3 Nội dung và kế hoạch thực hiện
Nội dung thực hiện đề tài:
Sử dụng các kiến thức đã học trong 2 học phần môn vi điều khiển và trí tuệ nhântạo để tìm hiểu, xây dựng cấu trúc hoạt động phần cứng của 0 khóa, khả năng nhậndiện khuôn mặt của 0 khóa
- Tiến hành thiết lập sơ đồ khối hệ thống
- Xử lí các quá trình nhận diện, cho phép đóng mở cửa
Thực hiện lắp đặt phần cứng và viết nạp code theo yêu cầu chức năng
Kế hoạch thực hiện đề tài:
Chương 2 Phân tích thiết kế hệ thống Nội dung chương bao gồm: phân tích
các chức năng của mô hình, thiết kế hệ thống cho mô hình
Trang 11Chương 3 Triển khai xây dựng Chương đi sâu vào nghiên cứu các công nghệ,
các thiết bị áp dụng vào mô hình
Cuối cùng là Kết luận, Tài liệu tham khảo và Phụ lục liên quan đến đề tài.
Trang 12CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI
1.1 Tổng quan ngôn ngữ , phần mềm liên quan.
1.1.1 Ngôn ngữ thực hiện: C, C++
Ngôn ngữ lập trình C là gì ?
Ngôn ngữ C là một ngôn ngữ đã có mặt từ rất lâu Và nó có thể là ngôn ngữ già
nhất trong các dòng ngôn ngữ thông dụng nhất hiện nay Lập trình C được coi là cơ
sở cho các ngôn ngữ lập trình khác Đó là lý do tại sao nó được biết đến như là ngônngữ mẹ C là ngôn ngữ mệnh lệnh được ra đời từ đầu thập niên 70 Ngôn ngữ C làmột ngôn ngữ cấu trúc và xếp vào loại ngôn ngữ bậc 3 (loại ngôn ngữ cao cấp hơnngôn ngữ mã máy và thấp hơn ngôn ngữ hướng đối tượng - bậc 4) Cha đẻ của ngônngữ C là Dennis Ritchie_một nhà khoa học máy tính người Mỹ nổi tiếng Ban đầungôn ngữ này chỉ được dùng trong hệ điều hành UNIX Nhưng với những ứng dụng
mà nó mang lại, đến nay ngôn ngữ này đã lan rộng ra nhiều hệ điều hành khác Và trởthành một những ngôn ngữ phổ dụng nhất
Ngôn ngữ C không chỉ được ưa chuộng trong việc viết các ứng dụng Mà còn là ngônngữ rất hiệu quả trong việc viết các phần mềm hệ thống Ngoài ra, C cũng thườngđược dùng làm phương tiện giảng dạy trong khoa học máy tính
Hệ thống nhúng
Các tính năng của C bao như là truy cập trực tiếp vào API phần cứng của máy,
sự hiện diện của trình biên dịch C Ngoài ra lập trình C còn sử dụng tài nguyên xác
Trang 13định và phân bổ bộ nhớ động Đã làm cho ngôn ngữ C trở thành lựa
các ứng dụng và trình điều khiển của các hệ thống nhúng
Ngôn ngữ lập trình C++ là gì?
Ngôn ngữ lập trình C++ là một ngôn ngữ lập trình hướng đối tượng (OOP
- Object-oriented programming) được phát triển bởi Bjarne Stroustrup C++ là ngônngữ lập trình được phát triển trên nên tảng của ngôn ngữ lập trình C Do đó, C++ cósong song cả 2 phong cách (style) lập trình hướng cấu trúc giống C và có thêm phongcách hướng đối tượng Trong nhiều trường hợp, C++ sử dụng kết hợp cả 2 style trên
Do đó, nó được xem là một ngôn ngữ “lai tạo”.
Ngôn ngữ lập trình C++ (C plus plus) có đuôi mở rộng là cpp.
Định nghĩa lập trình nhúng là gì?
Lập trình nhúng là một thuật ngữ lập trình dùng để chỉ đến một hệ thống có khảnăng tự trị và nó thường được nhúng vào trong một môi trường hoặc một hệ thống mẹbất kỳ nào đó.Đây là các hệ thống tích hợp cả một phần mềm và phần cứng
Mục đích chủ yếu lập trình nhúng chính là phục vụ các bài toán chuyên dụngtrong các lĩnh vực công nghiệp, tự động hóa điều khiển và truyền tin Thông thường,
hệ thống nhúng sẽ được thiết kế để thực hiện các chức năng chuyên trách hoặc riêngbiệt nào đó
Trang 151.1.2 Phần mềm Proteus
PROTEUS^
CAD CONNEETED
Proteus là phần mềm dùng để vẽ sơ đồ nguyên lý, thiết kế mạch in (PCB) và mô
phỏng các mạch điện tử Phần mềm Proteus 8.9 được phát triển bởi Labcenter
mạch tại các công ty hay hoạt động giảng dạy tại trường cao đẳng và đại học
Proteus cho phép vẽ và mô phỏng hoạt động của các mạch điện tử, phần mềm cókhả năng mô phỏng:
Hầu các mạch điện tử từ đơn giản đến phức tạp có sử dụng các linh kiện điện tửthông dụng như: điện trờ, tụ điện, cuộn dây, diode, transistor, relay, op-amp
Các mạch tương tự (Analog) và mạch số (Digital)
Đặc biệt rất mạch cho việc mô phỏng các họ vi điều khiển chẳng hạn như 8051,Arduino, PIC, AVR, ARM cũng như các giao tiếp I2C, SPI, CAN, USB, Ethernet
Proteus bao gồm 2 chương trình: ISIS cho phép mô phỏng mạch điện tử và ARESdùng để thiết kế mạch in PCB
Những tính năng mới nổi bật có trong Proteus Professional 8.9
Trang 16■ Library Web Search:
Đây là chức năng rất hay mà nhà sản xuất mới tích hợp trên 8.9 Cho phépngười tìm kiếm thư viện mở của 1 linh kiện trên mạng nữa chứ không chỉ thư viện trênmáy Để sử dụng được tính năng này, bạn cần lập một tài khoản thì mới import linhkiện về máy của mình nhé
Ở tính năng này cho phép người dùng đi dây tự động khi thiết kế mạch in rấtnhanh Chúng ta chỉ cần định hướng đi của dây, chương trình sẽ tự động bắt dây
Hướng dẫn cài đặt Proteus Professional 8.9
Bước 1: Gỡ bỏ chương trình Proteus đã cài đặt (nếu có)
1.45 GB
5/9/2020 8.8.27031.0
Hình: 1.1 Cách gỡ bỏ Proteus
Bước 2: Gỡ bỏ toàn bộ chương trình Proteus đã cài đặt (nếu có).
Đầu tiên bạn nhập Regedit vào khung Search trên Start Menu để mở trình Registry.Trên cửa sổ trình Registry Editor bạn điều hướng theo đường dẫn dưới đây:
Computer\HKEY_CURRENT_USER\SOFTWARE\Labcenter Electronics
Sau đó bạn kích chuột phải vào dòng chữ Labcenter Electronics rôi chọn Delete.
Proteus 8 Protessional
Modify
Uninstall
Trang 17Filí Edit View Eavoritís Help
Bước 3: Download file cài đặt
Các bạn download các file cài đặt phần mềm tại đây:
Protues Professional 8.9 full
Bước 4: Tiến hành cài đặt phần mềm Proteus 8.9
Sau khi download các file cài đặt về máy tính của mình, các bạn giải nén cácfile này vào một thư mục như hình bên dưới, sau đó các bạn chạy file Proteus 8.9 SP2Pro.exe để tiến hành cài đặt
Trang 18Một của sổ xuất hiện như hình bên dưới, bạn chọn thư mục mặc định để phầnmềm được cài đặt vào máy hoặc thay đổi sang thư mục khác nếu muốn, sau đó nhấp
chọn Next.
Hình: 1.4 Cách cài Proteus
Các bạn ngồi chờ một lát để phần mềm Proteus được cài đặt vào máy
Trang 19Setup - Proteus 8 Protessional
Hình: 1.5 Quá trình cài Proteus
Sau khi quá trình cài đặt hoàn tất, một cửa sổ xuất hiện Bạn nhấp chọn
Finish.
Hình: 1.6 Hoàn thành cài đặt Proteus
Setup - Proteus 8 Protessional
Click Fĩnish to exit Setup.
Rnish
Setup has tìnished installing Proteus 8 Protessional on your Computer The application may be launched by selecting the ínstalled shortcuts.
Completing the Proteus 8 Proíessional Setup Wizard
Trang 20Bước 5: Thiết lập cho chương trình chạy với quyền admin.
Bạn đặt con trở trên biểu tượng của phần mềm Proteus ở màn hình desktop sau
đó click phải chuột, rồi chọn Properties.
Hình: 1.7 Thiết lập Proteus
Bạn chọn thẻ Shortcut, rồi chọn Advanced.
Trang 21Hình: 1.8 Thiết lập Proteus 2
Bạn chọn Run as administrator
Trang 22Hình: 1.9 Thiết lập Proteus 3
Cuối cùng, nhấp chọn OK
Trang 23Hình: 1.10 Thiết lập Proteus 4
đúng theo các bước hướng dẫn ở trên thì có thể sử dụng được phần mềm này và không
1.2 Tổng quan thuật toán áp dụng vào đề tài.
1.2.1 Công nghệ sinh trắc và nhận dạng bằng khuôn mặt.
a) Công nghệ sinh trắc và bảo mật
Được biết đến như một công nghệ áp dụng các đặc tính sinh học, vật lí hay cáccác đặc điểm đặc trưng , riêng biệt của các cá thể, cá nhân như dáng đi, giọng nói, vân
Trang 24tay, khuôn mặt, để nhận biết, nhận dạng Trong tiếng anh Biometric có nghĩa là sinhtrắc học Công nghệ sinh trắc được đung trong việc xác nhận thông tin về một cá nhânhay than nhân một cách hiệu quả và chính xác.
Hình: 1.11 Sơ đồ khối logic chính của hệ thống sinh trắc học
Nhận dạng khuôn mặt là một ứng dung máy tính tự động xác định hoặc nhận dạngmột người nào đó từ một bức hình ảnh kỹ thuật số hoặc một khung hình video từ mộtnguồn video Một trong những cách để thực hiện điều này là so sánh các đặc điểmkhuôn mặt chọn trước từ hình ảnh và một cơ sờ dữ liệu về khuôn mặt
Hệ thống này thường được sử dụng trong các hệ thống an ninh và có thể được so sánhvới các dạng sinh trắc học khác như các hệ thống nhận dạng vân tay hay tròng mắt
Các thuật toán nhận dạng có thể được chia thành hai hướng chính, là hình học, đó
là nhìn vào tính năng phân biệt, hoặc trắc quang (đo sáng), là sử dụng phương pháp
Trang 25thống kê để 'chưng cất' một hình ảnh thành những giá trị và so sánh cácgiá trị với các
mẫu để loại bỏ chênh lệch
Các thuật toán nhận dạng phổ biến bao gồm Principal Component Analysis (Phépphân tích thành phần chính) sử dụng các khuôn mặt riêng, Linear Discriminate
Analysis (Phân tích biệt tuyến tính), Elastic Bunch Graph Matching sử dụng thuật toán
Fisherface, các mô hình Markov an, Multilinear Subspace Learning (Luyện nhớ không
gian con đa tuyến) sử dụng đại diện cơ căng, và theo dõi liên kết động thần kinh
❖ Nhận dạng 3D
Một xu hướng mới nổi lên, tuyên bố cải thiện được độ chính xác, là nhận dạng
khuôn mặt ba chiều Kỹ thuật này sử dụng các cảm biến 3D để nắm bắt thông tin vềhình dạng của khuôn mặt Thông tin này sau đó được sử dụng để xác định các tínhnăng đặc biệt trên bề mặt của một khuôn mặt, chẳng hạn như các đường viền của hốcmắt, mũi và cằm
Một lợi thế của nhận dạng khuôn mặt 3D là nó không bị ảnh hưởng bởi những thayđổi trong ánh sáng như các kỹ thuật khác Nó cũng có thể xác định một khuôn mặt từmột loạt các góc nhìn, trong đó có góc nhìn nghiêng Các điểm dữ liệu ba chiều từ mộtkhuôn mặt cải thiện lớn độ chính xác cho nhận dạng khuôn mặt Nghiên cứu 3D đượctăng cường bởi sự phát triển của các bộ cảm biến tinh vi giúp nắm bắt hình ảnh chụpkhuôn mặt 3D được tốt hơn Các cảm biến hoạt động bằng cách chiếu ánh sáng có cấutrúc lên gương mặt Hàng chục hoặc nhiều hơn nữa các bộ cảm biến hình ảnh này cóthể được đặt lên trên cùng một con chip CMOS-mỗi cảm biến sẽ thu một phần khácnhau của hình ảnh
Ngay cả một kỹ thuật 3D hoàn hảo cũng có thể gặp khó khăn bởi các sắc thái biểucảm trên gương mặt Để đạt được mục tiêu đó một nhóm tại Technion (viện công nghệIsrael tại Haifa) đã áp dụng các công cụ từ hình học metric để giải quyết các biểu lộcảm xúc như phép đẳng cự Một công ty có tên Vision Access tạo ra một giải phápvững chắc cho nhận dạng khuôn mặt 3D Công ty này sau đó đã được mua lại bởi công
ty truy cập sinh trắc học Bioscrypt Inc Công ty đã phát triển một phiên bản được gọi
là 3D FastPass
c) Phân tích kết cấu da.
Một xu hướng mới nổi sử dụng các chi tiết hình ảnh của da, được chụp trong các
hình ảnh kỹ thuật số hoặc máy scan tiêu chuẩn Kỹ thuật này được gọi là phân tích kếtcấu da, đưa các đường đặc trưng, hình dạng, và các điểm nốt trên làn da của một ngườivào một không gian toán học
Các thử nghiệm đã chỉ ra rằng với việc bổ sung các phân tích cấu trúc của da, hiệuquả trong việc nhận ra khuôn mặt có thể tăng 20-25 phần trăm
1.2.2 Xử lí ảnh đầu vào