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

Khóa luận tốt nghiệp Truyền thông và mạng máy tính: Hệ thống khóa cửa thông minh sử dụng nhận diện khuôn mặt chạy trên máy tính nhúng

73 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 khóa cửa thông minh sử dụng nhận diện khuôn mặt chạy trên máy tính nhúng
Tác giả Lê Hoàng Long
Người hướng dẫn TS. Lê Kim Hùng
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Mạng máy tính và Truyền thông
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2021
Thành phố TP. HCM
Định dạng
Số trang 73
Dung lượng 31,53 MB

Nội dung

HO CHÍ MINHTRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG MÁY TÍNH VÀ TRUYEN THONG LÊ HOÀNG LONG - 17520708 KHÓA LUẬN TÓT NGHIỆP HỆ THÓNG KHÓA CỬA THÔNG MINH SỬ DỤNG NHẬN DIEN KHUÔN MAT CH

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HQC CONG NGHE THONG TIN KHOA MẠNG MAY TÍNH VA TRUYEN THONG

LE HOANG LONG

KHOA LUAN TOT NGHIEP

HE THONG KHOA CUA THONG MINH SU DUNG

NHẬN DIEN KHUÔN MAT CHẠY TREN MAY TÍNH

Trang 2

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG MÁY TÍNH VÀ TRUYEN THONG

LÊ HOÀNG LONG - 17520708

KHÓA LUẬN TÓT NGHIỆP

HỆ THÓNG KHÓA CỬA THÔNG MINH SỬ DỤNG NHẬN DIEN KHUÔN MAT CHẠY TREN MAY TÍNH

NHÚNG

SMART HOME DOOR LOCK USING FACIAL

RECOGNITION ON SBC

KY SU NGANH MANG MAY TINH VA TRUYEN THONG

GIANG VIEN HUONG DAN

TS LE KIM HUNG

TP HO CHi MINH, 2021

Trang 3

THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP

Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số

"——— ees ngày của Hiệu trưởng Trường Đại học Công nghệ Thông tin.

— Chủ tịch

— Thư ký

TT Ủy viên

—— — Ủy viên

Trang 4

ĐẠI HỌC QUOC GIA TP HO CHÍMINH CONG HÒA XÃ HỘI CHỦ NGHĨA VIET NAM

Tên khóa luân:

HỆ THÓNG KHÓA CỬA THÔNG MINH SỬ DỤNG NHẬN DIỆN

KHUÔN MAT CHẠY TREN MAY TÍNH NHÚNG

SMART HOME DOOR LOCK USING FACIAL

RECOGNITION ON SBC

Nhóm SV thực hiện: Cán bộ hướng dẫn:

Lê Hoàng Long 17520708 Lê Kim Hùng

Đánh giá Khóa luận

1 Về cuốn báo cáo:

Số trang - Số chương

SỐ bảng sô liệu Số hình vẽ S6 tài liệu tham khảo Sản phâm

Một số nhận xét về hình thức cuốn báo cáo:

2 Về nội dung nghiên cứu:

Trang 5

3 Về chương trình ứng dụng:

4 Về thái độ làm việc của sinh viên:

Đánh giá chung:Khóa luận đạt/không đạt yêu cầu của một khóa luận tốt nghiệp kỹ sư/cử

nhân, xếp loại Giỏi/ Kha/ Trung bình.

Điểm từng sinh viên:

Người nhận xét

Lê Kim Hùng

Trang 6

ĐẠI HỌC QUOC GIA TP HO CHÍMINH CONG HÒA XÃ HỘI CHỦ NGHĨA VIET NAM

Tên khóa luân:

HỆ THÓNG KHÓA CỬA THÔNG MINH SỬ DỤNG NHẬN DIỆN

KHUÔN MAT CHẠY TREN MAY TÍNH NHÚNG

SMART HOME DOOR LOCK USING FACIAL

RECOGNITION ON SBC

Nhóm SV thực hiện: Cán bộ hướng dẫn:

Lê Hoàng Long 17520708

Đánh giá Khóa luận

1 Về cuốn báo cáo:

Số trang - Số chương

SỐ bảng sô liệu Số hình vẽ S6 tài liệu tham khảo Sản phâm

Một số nhận xét về hình thức cuốn báo cáo:

2 Về nội dung nghiên cứu:

Trang 7

3 Về chương trình ứng dụng:

4 Về thái độ làm việc của sinh viên:

Đánh giá chung:Khóa luận đạt/không đạt yêu cầu của một khóa luận tốt nghiệp kỹ sư/cử

nhân, xếp loại Giỏi/ Kha/ Trung bình.

Điểm từng sinh viên:

Người nhận xét

Trang 8

LỜI CẢM ƠN

Lời đầu tiên, em xin trân trọng cảm ơn quý thầy, cô đang công tác và giảng

dạy tại khoa Mạng máy tính và Truyền thông, cũng như toàn thể thầy, cô khác công

tác tại trường Dai học Công nghệ Thông tin - ĐHQG HCM đã truyền đạt những kiến thức, bài học, kinh nghiệm quý báu cho em trong suốt quãng thời gian bốn năm vừa qua Và đã sắp xếp thời gian, chương trình hợp lý để em có cơ hội hoàn thành khóa

luận tốt nghiệp tốt nhất Em xin kính chúc khoa Mạng máy tính và Truyền thông nói

riêng và trường Đại học Công nghệ Thông tin nói chung luôn thành công rực rỡ trên

con đường giảng dạy đào tạo nhân tài, sẽ mãi là niềm tin vững chắc cho các thế hệ

sinh viên trên con đường giáo dục.

Đặc biệt, chúng em xin gửi lời cảm ơn chân thành nhất đến giảng viên, TS Lê Kim Hùng Nhờ những kinh nghiệm, bài học quý báu được chia sẻ từ thầy, thầy đã luôn quan tâm và giúp đỡ em giải quyết những vấn đề phát sinh, khó khăn trong quá

trình thực hiện Nhờ có thầy, em đã có cơ hội hoàn thành tốt khóa luận tốt nghiệp

này.

Tiếp theo, em xin cảm ơn về phía gia đình đã luôn luôn tin tưởng, động viên

em trong suốt quá trình học tập tại trường Đại học Công nghệ Thông tin - ĐHQG HCM, giúp em có thêm nguồn năng lượng đề đi đến được như ngày hôm nay.

Cuối cùng, em xin gửi lời cảm ơn đến các anh, chị và các bạn sinh viên tại

trường Dai học Công nghệ Thông tin — ĐHQG HCM đã luôn nhiệt tình hỗ trợ, chia

sẻ ý kiến và góp ý cho em trong quãng thời gian thực hiện khóa luận.

TP Hồ Chí Minh, ngày tháng năm 2021

Lê Hoàng Long

Trang 9

ĐẠI HỌC QUÓC GIA TP HÒ CHÍMINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc

CÔNG NGHỆ THÔNG TIN

ĐÈ CƯƠNG CHI TIẾT

TEN DE TÀI:

- _ Tiếng Việt: Hệ thống khóa cửa thông minh sir dụng nhận diện khuôn mặt chạy

trên máy tính nhúng

- _ Tiếng Anh: Smart home door lock using facial recognition on SBC

Cán bộ hướng dẫn: TS Lê Kim Hùng

Thời gian thực hiện: Từ ngày 01/03/2021 đến ngày 26/06/2021

Sinh viên thực hiện:

Lê Hoàng Long — 17520708 - 0707953966

Nội dung đề tài:

e Mục tiêu:

o Xây dựng hệ thống khóa cửa thông minh sử dụng nhận diện khuôn mặt với

độ bảo mật cao bằng cách sử dụng 3 lớp bảo mật đó là:

= Sử dụng thẻ từ RFID

= Nhập mã pin

= Khuôn mặt của đối tượng trong hệ thông

o Ngoài ra hệ thống còn cung cấp khả năng quản lý và điều khiển từ xa Điểm

nhắn trong hệ thống là cho phép người dùng có thể train model nhận diện

người dùng thông qua nền tảng web.

e Phạm vi

Trang 10

o Xây dựng demo cửa thông minh bao gồm: camera đề nhận diện, màn hình

dé nhập mã pin, thiết bị đọc thẻ RFID.

o Xây dung ứng dụng trên Raspberry Pi.

o_ Xây dựng website dé nhập thông tin người dùng.

o_ Xây dựng server backend dé thu thập dit liệu về người dùng va train model

nhận diện khuôn mặt, triển khai model lên thiết bi Raspberry Pi dé nhận diện

người dùng.

Đối tượng

o_ Thiết bị: camera, Raspberry Pi 3, khóa điện 12V, relay 12V, thiết bi đọc thẻ

RFID.

o_ Viết giao diện ứng dụng trên Raspberry Pi sử dung thư viện Tkinter.

o Xây dựng trang giao diện quản lý người dùng sử dụng thư viện ReactJS.

o_ Xây dựng hệ thống back-end server bằng thư viện Flask.

o Sử dụng thư viện OpenCV cho bài toán nhận diện khuôn mặt.

o Sử dụng Firebase đề lưu trữ thông tin người dùng.

Phương pháp thực hiện

o_ Thiết bị: Xây dựng và lắp đặt mô hình mô phỏng hệ thống khóa cửa thông

minh.

o_ Giao diện ứng dụng trên Raspberry Pi bao gồm:

~_ Giao diện dé người dùng có thể nhập thé RFID.

* Giao diện để người dùng có thể nhập mã pin.

» Giao diện dùng đề nhận diện khuôn mặt.

o_ Xây dựng trang quản lý người dùng bao gồm các chức năng sau:

= Thêm thông tin người dùng mới.

= Chỉnh sửa thông tin người dùng.

= Xóa thông tin người dùng.

o_ Hệ thống server back-end bao gồm:

= Xây dựng API dùng dé thu thập dữ liệu về khuôn mặt của người dùng

sử dụng Flask và OpenCV.

Trang 11

» _ Xây dựng API ding dé train model mỗi khi có người dùng mới được

thêm vào dựa trên thuật toán LBPHF.

* Xây dựng API dùng dé nhận diện người dùng.

e Kết quả mong đợi: Xây dựng và hoàn thành được mô hình thiết bị khóa cửa thông

minh với độ bảo mật cao sử dụng nhận diện khuôn mặt.

Kế hoạch thực hiện:

e@ Giai đoạn 1 (02/2021 - 03/2021):

o Công việc:

= Tìm hiểu về thư viện ReactJS.

* Tìm hiểu về Firebase API.

«Tim hiểu vé thư viện Flask.

"Tìm hiểu thư viện Tkinter.

* Tìm hiểu về phương pháp nhận diện khuôn mặt qua OpenCV.

»_ Xây dựng API dùng dé thu thập dữ liệu về khuôn mặt của người dùng,

sử dụng thuật toán LBPHF dé train model mỗi khi có người ding mới

được thêm vào.

* Nghién cứu triển khai mô hình từ xa lên Raspberry Pi để nhận diện.

© Giai đoạn 4 (05/2021 - 06/2021):

Trang 12

o Công việc:

* Thực hiện hoàn chỉnh demo, viết báo cáo.

Xác nhận của CBHD TP HCM, ngày tháng năm 2021

Sinh viên

TS Lê Kim Hùng Lê Hoàng Long

Trang 13

MỤC LỤC

CHƯƠNG 1 GIỚI THIỆU 2° s°22+s£+E2++e©E2++seetvvxsseevrvessee 2

1.1 TÊN ĐÈTÀI Ă- St nghe 2

1⁄2 MỤC TIÊU ĐÈ TÀI 5+ ++ÉStề tệ TH TH HH HH rên 2

1.3 ĐÓI TƯỢNG VA PHAM VI NGHIÊN CỨU ¿225252 S2 ++E+3+E+E£+£EzEexzxzxrxsese 2

1.3.1 DOi tong NNIEN ổn 2

1.3.2 Phạm vi nghiÊH Cứ «thế TH HH ri 2

CHƯƠNG 2 CƠ SỞ LÝ THUYÉTT ©©©©222EEEEErrrvrrkkkkrrrirdde 4

2.1 TONG QUAN VE FIREBASE

2.1.1 Giới thiỆM Ă.Ă ST HH HH Hư 4 2.1.2 Các chức năng và dich vụ của Firebđs€ 55s s+++cexssee 4

2.1.3 Cách thiết lập Firebase cho AU GN e- -cececseceeterererekeerre 7

2.2 TONG QUAN VE REACT]S 5:52 S1 1212113122 1212121112111111 111111 trxe 12

2.2.1 Giới thiệu về ÑeaetJÑ -cccccằằcvevirrrrrrrrrrrrrrrrrrrrree 12

2.2.2 Một số đặc điểm của ÑeactJS ccccccc55cccccecisrrrrrcee 12 2.2.3 Thiết lập môi trường -c-.:ccccccscccvvrscrveererrrkerrsrres 13

2.3 TONG QUAN VE FLASK - c2 2t 3S vn vxrErxekrxrrrrerrrkrrrrkrrrrrree 16

2.3.1 Giới thiệu về FÏask ccằằăveierirrrrrrirrrrrrrrrrie 16

2.3.2 Các đặc điểm của Flask.sssccssscscssssssssssssssssssssssssssssssssssessssesssneesssessees 16 2.3.3 Thiết lập và cài đặt môi trHỜng ccccccccccccccvecrecrrvecrrrres 17

2.4 TONG QUAN VE TKINTER St tt tt tre 19

2.5 TONG QUAN VE OPENC V, 5S 32v v235221212111371111111171 1221 cee 19

2.5.1 Gibi thi@u a1 sa 19

2.5.2 Ứng dụng của OpenCF

2.5.3 Tính năng và các module phổ biến của QpenC - -: 20

2.5.4 Cài đặt OpenCÏ + kkSkETTếHHHnHHngườn 21

2.6 THUẬT TOÁN VIOLA-JONES cscccscssssssssescscscsesesesescssecsssesesescsecscseseseseeeseeaeee 22

2.6.1 Giới thiệu về thuật toán -cccccccc52cccvvvcvrrrrecrrvrverrrrrrrrrrer 22

Trang 14

2.6.2 Các đặc trưng Hadr-liK€ sec SxSsksserrererereveeereeree 22 2.6.3 AdADOOSF à.Ă St St ST HH HT TT ghế 24

2.6.4 Sơ đồ nhận diện khuôn mặt -c2ccc:252ccccsccvecreccrveersrres 26

2.7 LOCAL BINARY PATTERNS (tt tr triệt 26

2.8.

2.8.1 Giới thiệu về API coccsscssssssssssssssssssssssssssssssssssssssscesssussessssussesssiecessseeseess 28 2.8.2 Gibi thiGu V6 Web API nẽn na 28

2.8.3 Những đặc điểm của Web API -c55cccccccccrcccccvees 28

2.8.4 Cách hoạt động của Web AIPÌ - c-c«ccsesvseerererrteesrerrx 29

2.8.5 Uu nhược điểm của Web API, c-:52cccccSccvsereccrveererres 29

2.9 RASPBERRY PỊ th TH Hiện 30

2.9.1 Giới thiệu về Raspberry Pi cc5ccccSScEvirsrrtrerrrrrrrerres 30 2.9.2 Thông số kỹ thuật: ccc:c252cvccccccvrecrteerrrrrkerrrrres 31

2.10 KHOA DIEN 12V oo.eeceeceescsessesesesesestesesesesesssnesesesecnsnesesesesencaescsesneneacaeeeeeeneaeee 31

2.10.1 Giới thiệu về khóa điện -ccccccc5ccccvverrrerrrrrrrveerrrrrrrrrves 31 2.10.2 Thông số kỹ thuật của khóa điện 12V

2.11 NGUON 12V

2.11.1 Giới thiệu về nguôn 12V.

2.11.2 Thông số kỹ thuật:.

2.12 RELAY 12V „32

2.12.1 Giới thiệu về Relay 12V :c52ccccsccccvserrreerrerrteereerreereervỔ 32

2.12.2 Thông số kỹ thuật 5-2525: 2EEE2EEEEE.CEEE11 E1 33

Trang 15

2.15.1 Giới thiệu VỀ CAH€FA cccccc22225222ctSSEEEESEErrrrrrtrrrrtvrrrrrrrrrrver 35 2.15.2 Thông số kỹ thud ceccsccccssssecssssssssssssssssessssiesssssssssssssussssssssesssieesssseeeeees 35 CHUONG 3 MÔ HÌNH UNG DUNG

3.1 USERFLOW CUA HỆ THONG cccsstetrterierrrerrrrrrrrrrrrerrrrrcee TỔỔ

3.2 KIÊN TRÚC HE THÓNG ¿5c kg rrerÕ

E0 0009016 39

CHƯƠNG 4 THỰC NGHIỆM, DANH GIÁ -css<<cccvevcee 40

4.1 TRANG WEB QUAN LÝ NGƯỜI DỪNG 255v S2 2E +t+t£Evxerrxerrrrersree 40

4.1.1 Giới thiỆM ĂĂĂĂ ST như 40

4.12 Cấu trúc hệ thống -c 555cccccccstcccrreeeeisrrrrrree 40

4.1.3 Các tính năng Ni 4.2 HỆ THONG NHẬN DIỆN KHUÔN MAT.

4.2.1 Giới thiệu

4.2.2 Cấu trúc thư mục Ö„45

4.2.3 Cách hoạt động hệ thống nhận điện khuôn ImẶt ‹<++<+>+ 46

4.2.4 Các tính năng của APIL -cccccS«Svsksererererereeekekree 4

4.3 ỨNG DỤNG KHOA CUA NHẬN DIỆN KHUÔN MAT TREN RASPBERRY PI 48

4.3.1 Giới thiỆM ĂĂĂĂSSSSvSSĐHHHH Hit 48

4.3.2 Cấu trúc thư MAC ceeessssssesssssssssvssssssssessesceeccessssnnnnnsnnnunnnnsssssssessesceeeeeeees 48

4.3.3 Các tinh năng cua giao diện

CHƯƠNG 5 KET LUẬN HUONG PHAT TRIEN

5.1 KÉT QUA DAT DUGC waceececssscsssesscsescsesesesesesssessesesesesesesesassesesesesesacscaeseseseseeasee 52

T000 và 53

TAI LIEU THAM KHAO

Trang 16

DANH MỤC HÌNH VE

Hinh 2.1: Dich vu Firebase 0N 4

Hình 2.2: Giao diện trang web Firebase + tt ng 7

Hình 2.3: Giao diện Firebase Console -¿- (523 S233 SE£+eE+eEeteetetrexerrrrsesrxe 8

Hình 2.4: Giao diện tao project Ở step Loic eeseseeseseeteseseeeseseeseassneeeeseesseeeee 8

Hình 2.5: Giao diện tao project step 2 Làng Hee 9

Hình 2.6: Giao diện tạo project step 3 ¿che 9

Hình 2.7: Giao diện project S€fẨITIE, - St vn Hit 0

Hình 2.8: Phần thiết lập dé sử dụng Firebase cho app -: cc:©cc5scc2 0

Hình 2.9: Giao diện ở bước ‘add Eirebase to your web app -. -c<-+ 1

Hình 2.10: Sau khi hoàn thành khởi tạo thiết lập cho app - -. -: 1

Hình 2.11: Biểu tượng của Reactjs

Hình 2.12: Trang chủ của NOde.js - - ¿6S ES v22 12 1 11 1 1e 4

Hình 2.13: Các câu lệnh đề khởi tạo Reactjs project - -c¿ccsccz+ccsscez 4

Hình 2.14: Khởi động web serV€T ¿5c St tt 5

Hình 2.15: Giao điện sau khi hoàn thành bước thiết lập cài đặt 5

Hình 2.16: Biểu tượng của Flask -. ¿-222222222+222SEEvttEEEEvretrrrvrrrrrkrrrrrrr 6

Hình 2.17: Giao diện trang Anaconda ¿- - - + + S++x+k‡kekeEkErkekEkrkrkrkekee 8

Hình 2.19: Biểu tượng của OpenCV

Hình 2.20: Sau khi cai đặt hoàn tất OpenC V -:¿-©22+2z2222xzetrtrrxerrrrrrrcee 2

Hình 2.21: Đặc trưng haar-ÏiK€ - «tk it 23

Hình 2.22: Đặc trưng cạnh - ¿+ + S119 9 2121211311111 1111111 xe 23

Hình 2.23: Đặc trưng đường -¿- - - + St HH1 H010 H1 010101 uy 23

Trang 17

Hình 2.24: Đặc trưng xung quan fÂTm - - ¿5 +2 1E +11 E +3 E#*EEEseeEseereeeereeeeree 23

Hình 2.25: Biéu diễn đặc trưng haar-like - + ¿5c 5s+SE+EE£EE+E2EEEerkerkerxerkrree 24

Hình 2.26: Integral image - . c5 111210111910 1 910 19 1119 1 ng kg ng kg krry 24

Hình 2.27: Công thức tinh integral 1maBe - 5 2c 13113 Eserseereseeree 24

Hình 2.28: Mô hình phân tang (cascade), - ¿- + s5x+E++E++E+Ee£Eerkerxerxerxeree 25

Hình 2.30: Trích xuất đặc trưng L.BP - 2 2 ¿+ SE+EE+EE£EE+EE+EEEEerEerkerxrrkrree 27

Hinh 2.31: Raspberry Pi Ả 30

Hinh 2.32: Kh6a dién 12V nh 31

Hình 2.34: Relay 12V 2 kênh - - + S111 1191151119111 111 1 vn ng ng rệt 33

Hình 2.35: Màn hình LCD 3.5 inch - 6+ 1 3111119119911 9v 11 việt 34

Hình 2.36: Camera Logitech HD C270 - - c1 E211 ESkEseekeeeerseeeree 35

Hình 3.2: Kiến trúc hệ thống 22 2 2 E+SE£2E2EE2EEEEEEEEEEEEEEEEEEEEEEEEErrkrrkrrer 37Hình 3.3: Sơ đồ lắp đặt thiết bị, ¿52s 2E 22 E2 1212112112111 xe, 40

Hình 4.1: Cau trúc file của trang quan lý người dùng -¿-5¿©55+-: 41

Hình 4.5: Giao diện capture khuôn mặt của người dùng - - ‹+ x++<++ss2 44

Hình 4.7: Thông báo hiển thị khi hệ thống đã hoàn thành việc training 45

Trang 18

Hình 4.8: Cấu trúc thư mục của hệ thống nhận diện khuôn mặt - 46Hình 4.9: Mô hình hoạt động tổng quát của hệ thống nhận diện khuôn mặt 46Hình 4.10: Cau trúc thư mục của 90:0 48

Hình 4.11: Giao diện nhập REÏÏD - G2212 221113511 3311811111511 11 1 re 49

Hình 4.12: Giao diện nhập PIN - - 2G G 12211112311 911 9 1118 11181118 11 8x ng rry 49

Hình 4 13: Giao diện nhận diện khuôn mặt của người dùng -. -‹<- 51

Trang 19

DANH MỤC TU VIET TAT

TU NOI DUNG DIEN GIAI

API Application programming interface | Giao diện lập trình ứng dụng

REID Radio Frequency Identification Nhận dang qua tan số vô tuyên

Trang 20

TOM TAT KHÓA LUẬN

Ngày nay, với sự phát triển nhanh chóng của công nghệ đã giúp đỡ chúng ta

phần nào trong cuộc sống hàng ngày, giúp cho công việc hàng ngày trở nên thuậntiện va dé dang hơn nhờ có sự trợ giúp của công nghệ Sự phát triển mạnh mẽ củacông nghệ trong thời đại đôi mới đã đem đến cho chúng ta nhiều cơ hội dé phát triển

hơn Đặc biệt là trong lĩnh vực Internet of Things, giúp cho việc tự động hóa trở nên

dễ dàng hơn.

Trên thị trường hiện nay thì vẫn còn một số lượng lớn các khóa đơn giản dođiều kiện tài chính của người dân và do nhu cầu bảo mật nhà cửa còn chưa quá cao

nên vẫn còn sử dụng các loại khóa truyền thống như: khóa bam, khóa chốt, khóa cầm

tay, Vì vậy rất bat tiện cho người sử dụng nếu lỡ làm mất chìa khóa, khả năng bảo

mật không cao, không thuận tiện cho người sử dụng.

Hệ thống cửa thông minh cũng là một trong những ứng dụng của Internet ofThings, không những thuận tiện cho người sử dụng, mà còn đem đến sự an toàn bảomật cho chủ căn hộ Vì vậy, dựa vào đó mà em đã quyết định xây dựng hệ thống khóacửa thông minh kết hợp với nhận điện khuôn mặt với chi phí thấp, dé dang lắp đặt sửdụng Raspberry Pi Với mong muốn không chỉ xây dựng riêng cho nhà thông minh

mà còn có thể mở rộng sang các lĩnh vực khác chăng hạn như quản lý trong doanh

nghiệp.

Trang 21

Chương 1 GIỚI THIỆU

¢ Khuôn mặt của đối tượng trong hệ thống

Ngoài ra hệ thống còn cung cấp khả năng quan ly và điều khiển từ xa Điểm nhắntrong hệ thống là cho phép người dùng có thê train model nhận diện người dùng thôngqua nền tảng web

1.3 Đối tượng và phạm vi nghiên cứu

1.3.1 Đối tượng nghiên cứu

e Thiết bị: camera, Raspberry Pi 3, khóa điện 12V, relay 12V, thiết bị đọc thẻ

RFID.

e Viết giao diện ứng dụng trên Raspberry Pi sử dung thư viện Tkinter.

e Xây dung trang giao diện quản lý người dùng sử dụng thư viện ReactJS.

e Xây dựng hệ thống back-end server bằng thư viện Flask.

e Sử dụng thư viện OpenCV cho bai toán nhận diện khuôn mặt.

e Sử dụng Firebase dé lưu trữ thông tin người dùng

1.3.2 Pham vi nghiên cứu

e Xây dựng demo cửa thông minh bao gồm: camera dé nhận diện, màn hình dé

nhập mã pin, thiết bị đọc thẻ RFID

e Xây dung ứng dụng trên Raspberry Pi.

e Xây dựng website dé nhập thông tin người dùng

Trang 22

e Xây dựng server backend dé thu thập dữ liệu về người dùng và train model

nhận diện khuôn mặt, triển khai model lên thiết bị Raspberry Pi dé nhan dién

người dùng.

Trang 23

Chuong 2 CƠ SỞ LÝ THUYET

2.1 Tổng quan về Firebase

2.1.1 Giới thiệu

Firebase là dịch vụ cơ sở đữ liệu hoạt động trên nên tảng cloud Kèm theo đó

là hệ thống máy chủ cực kỳ mạnh mẽ của Google Chức năng chính là giúp ngườidùng lập trình ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dit liệu

Hình 2.1: Dich vụ Firebase

2.1.2 Cac chức năng và dịch vụ của Firebase

e Firebase Analytics

o Là tính nang giúp bạn phân tích hình vi của người sử dung trên ứng

dụng Đưa ra lời khuyên về lộ trình xây dựng ứng dụng

o Có thé biết được dé đưa ra chiến lược phát trién sản phâm phù hợp

e Firebase Realtime Database

o Là cơ sở đữ liệu thời gian thực, NoSQL được lưu trữ dam may cho phép

lưu trữ và đồng bộ đữ liệu Dữ liệu được lưu trữ dưới dạng Json và đượcđồng bộ theo thời gian thực đối với mọi kết nói

o Firebase có tính năng bao mật hang dau

o_ Tất cả dữ liệu được truyền qua một kết nối an toàn SSL, việc truy vấn

cơ sở dữ liệu truy vấn và việc xác nhận thông tin được điều khiển theo

một số các quy tắc security rules language Các logic bảo mật dit liệu

của bạn được tập trung ở một nơi dé dé dang cho viéc stra đôi, cập nhật

và kiêm thử.

Trang 24

Firebase Authentication

o Là chức năng xác thực người dùng, giúp thực hiện việc đó một cách dễ

dàng, giúp người dùng nhanh chóng tiếp cận sản phẩm

o Cung cấp chức năng xác thực người dùng bằng email, số điện thoại,

hay tài khoản Facebook, Google,

Firebase Cloud Storage

o Hỗ trợ việc quan lý, chia sẽ các content người dùng upload lên như ảnh,

video, cũng như sử dụng tài nguyên ấy cho ứng dụng, nhanh chóng và

o Với các ưu điểm như thao tác nhanh, đơn giản, tính an toàn cao,

Firebase Hosting giúp các nhà phát triển tạo lập ứng dụng một cách đơn

giản hơn so với việc tự tay tạo hay thuê server thực.

Firebase Cloud Messaging

o Gửi tin nhắn thông báo miễn phí

o_ Có thể thiết lập để tin nhắn chỉ gửi tới những đối tượng mà ta mong

muốn

Firebase Remote Config

o Giúp thực hiện việc thay đôi UI cũng như hoạt động của ứng dụng ma

không cần phải update app

o Việc này thực hiện bằng cách set giá trị ban đầu cho giao điện và hoạt

động của app, sau đó sử dụng Remote Config REST API hoặc Firebase

Console đề ghi dé giá trị mới lên setting default

Firebase Test Lab

o Được sử dung dé test ứng dụng trên nền tang cloud

Trang 25

o Có thé test hoạt động của ứng dụng trên nhiều thiết bị đa dạng, nhờ đó

có thé xác minh được app sẽ chạy như thế nào trên thiết bị thực của

người dùng.

e Firebase Crashlytics

o Là công cụ báo cáo hoạt động bat thường phát sinh trên ứng dụng theo

thời gian thực.

o Giúp ích cho việc truy vết các van dé bat thường hạ thấp chất lượng của

sản phẩm, nhờ đó có thé đặt thứ tự ưu tiên dé có phương án xử lý thích

hợp.

o Hỗ trợ việc chia nhóm các bất thường phát sinh, truy xuất tình trạng có

liên quan đến crash, giúp tiết kiệm thời gian xử lý sự cố

e Firebase App Indexing

o Chức năng hién thi content trong ứng dụng trong kết quả tìm kiếm

Google.

o_ Với user đã cài đặt sin ứng dụng trên thiết bi của mình, khi user chọn

kết quả tìm kiếm có chưa content trong ứng dung thì application sẽ

được khởi động.

e Firebase Dynamic Links

o Là chức nang phan chia trang dich một cách thích hợp tùy vào tình

trạng người dùng.

e Firebase Predictions

o Áp dung deep learning máy hoc với dữ liệu phan tích dé tạo các nhóm

người dùng năng động dựa trên hành vi dự đoán Các nhóm người nay

có thé được sử dụng dé nhắm mục tiêu trong các sản phẩm khác nhưthông báo, cau hình từ xa,

e Firebase Invites

o Cho phép người dùng chia sẽ tat cả các khía cạnh của ứng dung, từ ma

giới thiệu đến nội dung yêu thích, qua email hoặc SMS

e Firebase AdMob

Trang 26

o_ Kiếm tiền bang cách hiển thị quảng cáo cho người dùng toàn cầu.

o Thực hiện chiến lược kiếm tiền trên lớp bậc nhất và đề tối đa hóa doanh

thu do mỗi người dùng tạo ra.

o Có thé được điều chỉnh cho ứng dung, và API được xây dụng để tích

hợp các định dạng quảng cáo phù hợp một cách phong phú, dễ dàng.

2.1.3 Cách thiết lập Firebase cho dự án

Check out what's new from Firebase@ Google 1/0 2021, and join our alpha program for early access to the new Remote Config personalization feature Learn more

Firebase helps you build

and run successful apps

Hình 2.2: Giao diện trang web Firebase

e Bước 2: Bam vào ‘Go to console’

Trang 27

Your Firebase projects

ioT Smart Home Door Lock

tsmarthome-do

Explore a demo project Firebase projects are.

containers for your apps Ss os <p

Apps in a project share features like Real time Database and Analytics

© Learn more ae 2S

= os

Language English (United States) Support - Terms - Privacy Policy

Hinh 2.3: Giao dién Firebase console

X Create a project (Step 1 of 3)

Let's start with a name for

your project®

Create Example Project

Bước 4: Bỏ chon ‘Enable Google Analytics for this project’ va bam Continue

Trang 28

Firebase console

x Create a project (Step 2 of 3)

Google Analytics

for your Firebase project

Google Analytics is a free and unlimited analytics solution that enables targeting, reporting, and more in Firebase Crashlytics, Cloud Messaging, In-App Messaging, Remote Config, A/B Testing, Predictions, and Cloud Functions.

A ABtesting © %, Crashfreeusers ©

@ User segmentation & targeting across @ Q Event-based Cloud Functions triggers @

Firebase products

atl Free unlimited reporting @

#7 Predicting user behavior @

@® Enable Google Analytics for this project

Hinh 2.5: Giao dién tao project step 2

agle.com

Create Example Project

@ Your new projectis ready

Hình 2.6 Giao diện tao project step 3 Bước 5: Vào “ProJect settting”

Trang 29

Create Example Project - Project x

e Bước 6: Bam vào ‘Add firebase to your web app’

Create Example Project ~ Project X

Project settings tti

ge and billing

ngs

ing — Integratio

Public settings

ns Service accounts Dataprivacy

Create Example Project ø#*

create-example-project

901007676158

project-901007676158 #*

Users and permissions App Check °

Hình 2.7: Giao diện Project setting

+ console firebase.google.com, Creat le Project + Project settings

Public settings

Project-90100767

There are no apps in your project

Hình 2.8: Phan thiết lập dé sử dung Firebase cho app

e Bước 7: Điền tên cho app va bam ‘Register app’

Trang 30

x Add Firebase to your web app

@ Register app

My web appl

© Also set up Firebase Hosting for this app Learn more

@ Adi Firebase soK

Hình 2.9: Giao diện ở bước “Add Firebase to your web app’

neoister app

© Add Firebase sox

Copy and paste these scripts into the bottom of your <body> tag, but before you use any Firebase services:

<! The core Firebase JS SDK is always required and must be listed first >

<script src="https://w gstati om/firebase 8.6 firebase-app.) </script

<! T000; Add SDKs for Firebase products that you want to use

httpsi//firebase google com/docs/web/setupfavailable-libraries >

<script>

// Your web app's Firebase configuration var firebaseConfig = {

apikey: "AIzaSyC_TYbLeohdnZRJBSuECIPr9mRc_2c}9AE authDomain: “create-example-project firebaseap

</script>

Learn more about Firebase for web: Get ed (, Web SDK API Reference 77, Samples

Are you using npm and a bundler like webpack or Rollup? Check out the modular SDK @, currently in beta

Continue to console

Sau khi hoàn thành xong các bước trên thì ta có thể nhúng đoạn code này vàotrong codebase dé thiết lập môi trường cho việc sử dung

11

Trang 31

2.2 Tổng quan về ReactJS

2.2.1 Giới thiệu về ReactJS

Là thư viện Javascript phố biến nhất dé xây dựng giao diện người dùng Chotốc độ phản hồi tuyệt vời khi user nhập liệu bằng cách sử dụng phương pháp mới dé

Ke React

Hình 2.11: Biểu tượng của ReactJS

render trang web.

2.2.2 Một số đặc điểm của ReactJS

e Dễ sử dụng

o React là thư viện GUI mã nguồn mở Javascript tập trung vào một điều

cụ thể, hoàn thành nhiệm vụ UI hiệu quả

o Hỗ trợ Reusable Component trong Java.

o Cho phép sử dung lai components đã được phat triển thành các ứng

dụng khác có cùng chức năng.

o_ Tính năng tái sử dụng component là một lợi thế khác biệt cho các lập

trình viên.

e Viết component dé dàng hơn

o React component dễ viết hon vì nó sử dụng JSX, mở rộng cú pháp tùy

chọn cho Javascript, cho phép bạn kết hợp HTML với Javascript

o JSX là một sự pha trộn tuyệt vời của JavaScript và HTML Nó làm rõ

toàn bộ quá trình viét câu trúc trang web Ngoài ra, phân mở rộng cũng

12

Trang 32

giúp render nhiều lựa chọn dé dang hơn.

o JSX có thé không là phan mở rộng cú pháp phổ biến nhất, nhưng nó

được chứng minh là hiệu quả trong việc phát triển components đặc biệt

hoặc các ứng dụng có khối lượng lớn

Hiệu suất tốt hơn với Virtual DOM

o React sẽ cập nhật hiệu quả quá trình DOM (Document Object Model —

Mô hình đối tượng tài liệu) Quá trình này có thé gây ra nhiều thất vọng

trong các dự án ứng dụng dựa trên web May man là React sử dụng

virtual DOMs, vi vậy có thé tranh duoc van dé nay

o Công cụ cho phép xây dung các virtual DOMs va host chúng trong bộ

nhớ Nhờ vậy, mỗi khi có sự thay đôi trong DOM thực tế, thì virtual sẽ

thay đôi ngay lập tức

o Hệ thống này sẽ ngăn DOM thực tế dé buộc các bản cập nhật được liên

tục Do đó, tốc độ của ứng dụng sẽ không bị gián đoạn

Thân thiện với SEO

o_ React cho phép tạo giao điện người dùng có thê được truy cập trên các

công cụ tìm kiếm khác nhau Tính năng này là một lợi thế rất lớn vìkhông phải tất cả các khung JavaScript đều thân thiện với SEO

o Ngoài ra, vì React có thể tăng tốc quá trình của ứng dụng nên có thé cải

thiện kết quả SEO Cuối cùng tốc độ web đóng một vai trò quan trọngtrong tối ưu hóa SEO

Tuy nhiên, cần lưu ý rằng React chỉ là một thư viện JavaScript Nghĩa là nókhông thé tự làm mọi thứ Sử dụng các thư viện bé sung có thé cần thiết cho

các mục tiêu quản lý, định tuyến và tương tác

2.2.3 Thiết lập môi trường

Trước khi thiết lập thì ta cần phải cài đặt Node.js

Link cài đặt: https://nodejs.org/en/

13

Trang 33

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

Download for Windows (x64)

Or have a look at the Long Term Support (LTS) schedule.

Hinh 2.12: Trang chu cua Node.js

e Thực hiện các dong lệnh theo thứ tự như sau đề khởi tạo project Reactjs:

D:\example-app>npx create-react-app my-app„

Hình 2.13: Các câu lệnh dé khởi tao ReactJS project

14

Trang 34

© Sau khi khởi tạo thành công thì ta start project băng câu lệnh npm start

Compiled successfully!

You can now view my-app in the browser.

Local: http: //1ocalhost: 3000

On Your Network: http://10.10.10.103:3000

Note that the development build is not optimized.

To create a production build, use npm run build.

Hình 2.14: Khởi động web server

Hình 2.15: Giao diện sau khi hoàn thành bước thiết lập cài đặt

15

Trang 35

2.3 Tổng quan về Flask

2.3.1 Giới thiệu về Flask

Flask là một web frameworks, nó thuộc loại micro-framework được xây dựng

bằng ngôn ngữ lập trình Python Flask cho phép xây dựng các ứng dụng web từ đơn

giản tới phức tạp Nó có thể xây dựng các api nhỏ, ứng dụng web chăng hạn như các

trang web, blog, trang wiki hoặc một website dựa theo thời gian hay thậm chi là một

trang web thương mại Flask cung cấp các công cụ, các thư viện và các công nghệ hỗ

trợ làm những công việc trên.

Flask là một micro-framework Điều này có nghĩa Flask là một môi trườngđộc lập, ít sử dụng các thư viện khác bên ngoài Do vậy, Flask có ưu điểm là nhẹ, córất ít lỗi do ít bị phụ thuộc cũng như dễ dàng phát hiện và xử lý các lỗi bảo mật

Flask

web development,

one drop at a time

Hình 2.16: Biểu tượng của Flask2.3.2 Các đặc điểm của Flask

e Các tính năng cua Flask Framework

o Dựa trên Unicode

o Khả năng tương thích công cụ dựa trên ứng dụng Google

16

Trang 36

o Nhiều tiện ích mở rộng cho các tính năng mong muốno_ Tính modular và thiết kế gọn nhẹ

o Trình gỡ lỗi được nhúng trong trình duyệt

o_ Mã ngắn và đơn giản trong số các bộ xương Python khác

2.3.3 Thiết lập và cài đặt môi trường

e Đầu tiên thì ta cài đặt Anaconda, đây là thư viện bao gồm day đủ các công cụ

phô biến dành cho khoa học đữ liệu, chưa kể có bao gồm cả thiết lập môitrường riêng biệt cho từng dự án cụ thê

e Link cài đặt: https://www.anaconda.com/

17

Ngày đăng: 23/10/2024, 02:07

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

TÀI LIỆU LIÊN QUAN

w