Trong các đề tài đã nghiên cứu trước, tụi emnhận thấy chiếc gương này vẫn còn thiếu rất nhiều chức năng như giao diện chưa đầy đủ,chưa thân thiện với người dùng và đăc biệt thiếu một số
Trang 1ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
TRƯƠNG NGUYÊN TRUNG ANH
NGUYEN CHÍ DŨNG
KHOÁ LUẬN TÓT NGHIỆP
THIẾT KE GƯƠNG THONG MINH DIEU KHIEN THEO
DESIGN SMART MIRROR WITH USER-BASED
ACCESS CONTROL
KY SU NGANH KY THUAT MAY TINH
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TINH
TRUONG NGUYEN TRUNG ANH - 18520475
NGUYEN CHi DUNG - 18520635
KHOA LUAN TOT NGHIEP
THIET KE GUONG THONG MINH DIEU KHIEN THEO
KICH BAN NGUOI DUNG
DESIGN SMART MIRROR WITH USER-BASED
ACCESS CONTROL
KY SU NGANH KY THUAT MAY TINH
GIANG VIEN HUONG DAN
TS DOAN DUY
THS PHAN DINH DUY
Trang 3THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số 528/QD-DHCNTT ngày
19 tháng 7 năm 2022 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
Trang 4LOI CAM ON
Trước hết chúng em xin gửi lời cảm on chân thành đến quý thay cô trong trường
Đại học Công nghệ Thông tin, đặc biệt là các thầy cô khoa Kỹ thuật Máy tính đã tậntình giúp đỡ, truyền đạt kiến thức và kinh nghiệm quý báu trong suốt quá trình họctập tại trường cũng như tạo mọi điều kiện thuận lợi nhất nhăm giúp chúng em có thểtiếp cận cũng như thực hiện khóa luận dễ dàng hơn
Ngoài ra chúng em đặc biệt cảm ơn TS Doan Duy — người đã tận tình hỗ trợ cũng
như cho lời khuyên, kiến thức trong quá trình tìm hiểu và thực hiện khóa luận Nhờ
có những lời góp ý quý báu của thầy nên quá trình thực hiện khá suôn sẻ và nhanh
chóng đồng thời giúp chúng em có cái nhìn tổng quan hơn về đề tài trong suốt quá
trình chúng em thực hiện.
Một lần nữa, em xin cảm ơn thầy cô đã tạo điều kiện dé chúng em có thể thực hiện
khóa luận một cách thuận lợi, chúng em xin chúc quý thầy cô có nhiều sức khỏe và
hoàn thành tốt công việc cũng như những dự định của mình Nhờ sự chỉ day và giúp
đỡ tận tình của thầy cô mà chúng em có thé ra trường với đầy đủ kiến thức và kinh
nghiệm trong môi trường làm việc chuyên nghiệp.
Sinh viên thực hiện
Trương Nguyễn Trung AnhNguyễn Chí Dũng
Khoa Kỹ thuật May tính Lớp MTCL2018.1
Trang 5MỤC LỤC
TOM TAT KHÓA LUẬN -¿- ¿5c Sk St EEEEEEEEEEEEEEEEEESEEEXEEETE11111111E 11111111111 cxe 1
LOI (9057.1000057 2
Chương 1 GIỚI THIỆU TONG QUAN VỀ GƯƠNG THONG MINH - 3
1.1 Giới thiệu về các hệ thống gương thông minh đã có trên thị truong 3
1.1.1 Hệ thống gương thông minh trên thế giới và lịch sử ra đời 3
1.1.2 Hệ thống gương thông minh tại Việt Nam 2 22222 cxczxcrxcred 4 1.2 Tổng quaIn - - 2° £+SSE2E£9EE2EEEE19E1E212171717171171121121111111111 111111 cre 5 1.3 Những cải tiến nhóm muốn hiện thực 2-2-2 s¿+£+x£+z++zxzzxvrxezrxee 6 Chương 2 CƠ SỞ LÝ THUYÊTT -¿-2-©22+SE12EE9EEEEEEEE2EE1E211E7121127121171.211 21c xe 7 2.1 Tổng quan hệ thống . 2-2 2 SS£2S19EE2EE9E122E12211271711271711211 21.21 re 7 2.2 Cách lắp đặt khung viền gương thông minh - 2 2 2 s2 s+£2£x2zxzzse2 8 2.2.1 Giới thiệu gương hai chiỀu 2-2-2 255 SSSE2E£2E£EEEEEEEEEEEEEEEEErkerkerkeeg 8 2.2.2 Cách lắp đặt khung Vidn c.cccccccccccccccscsssessesssesssessesssessesssessesssessessseesesssecseeess 9 2.3 Phan cứng sử dung trong gương thông minh ccccceccssecseessesseessesseesseeseen 9 2.3.1 Giới thiệu chung về Raspberry Pi c.ccccccccccccecsessessessesseesessssessesseesesseeses 9 2.3.2 Kiến trúc tong quát của Raspberry Pi - 2-2 5 scxccxccxccrcrxrrsrrx 10 2.3.3 Hệ điều hành và phần mềm của Raspberry Pi - 2 5e©5<+£ 12 2.4 Thiết kế phần mềm sử dụng trong hệ thống gương thông minh 12
2.4.1 Cong nghé Electron 0n ằ^': 12
2.4.2 Trình quản lí quy trình van hành cho thời gian chạy gương thông minh 13 2.4.3 1 14
2.5 Téng hợp các thư mục chính dé vận hành gương thông minh 16
Trang 6VI`S BÀI/E1200/00yvv1v0):()0ï0/ 200008 e 16
2.6 Cách vận hành của gương thông minh - - 5 6c Esssvsesersree 17 2.7 Hiện thực chức năng cảm Ứng + 3 S3 + ng nrkp 17
2.8 Hệ thống nhận diện khuôn Mat 2 2© 2+ E+EE+£EEtEEE£EEzEEtrkerrkrrkerred 21
2.8.1 Giới thiệu chung - s5 + tt TH TT HH Hàn Hàn ngư 21
2.8.2 Thuật toán nhận diện khuôn mặt bang DIib 2- 2 2 s2 x+zx£x2 21
2.8.4 Tìm hiểu về Hog -¿- 2-52 ©S E22 2E22112112112112121217121211 21.11.2111 te 24
2.9 HTTTTP PFr0fOCOÌ - G1 1S TH gu TH Tu HH TH ng gà 24
'/¡ (ng £@ Tee eee ee nh ˆ 28 2.12 WebsoCK€Ẩ - nh HH HH TH HT TT nh TH HH HH TH TT g ghgh nh 29
2.13 Giao tiếp tiến trình (IPC - Inter Process Communieation) - 30Chương 3: PHAN TÍCH VA THIET KE HỆ THNG 2 2 2 2222 s+£xcsez 32
3.1 Sơ đồ mạch đơn giản ra chân cho các thiết bị ngoại vi - - 32
3.2 Một số hàm quan trọng để phát triển các mô-đun - 5-52 5¿ 32
3.2.1 Đăng kí mô-đun cho gương thông minh - - 5 55s ++++sx+esecss 32
3.2.3 Một số phương thức quan trọng của mô-đun -2- 2 5¿55+¿ 343.3 Các mô-đun nhóm tự nâng cấp và sử dung phát triển hệ thống 37
3.3.1 Mô-đun newsfeed ch HH HH HH ng HH HH Hàn ry 37
Trang 73.3.3 Mô-đun menu chức NANG - 5+ 3 1x SH ng ng nrkp 39
3.3.4 Mô-đun cho phép truyền video từ ứng dụng youtube trên thiết bị di động
đến gương thông minh (MMM-Screencast) và mô-đun cho phép truyền tai trang
web trên thiết bị di động đến gương thông minh (MMM-SmartwebDisplay) 43
3.3.5 M6-dun xây dung layout riêng biệt cho từng profile
4.2 Kết quả gương hoạt động trong thực tẾ 2 2 s+Ss+EE£EeEEerEerEerkerrerrxee 57
4.3 M6 hinh khung Gung 1 D ': 59
4.4 Thong số đo lường phần cứng khi gương hoạt động - 5: 614.5 Các kịch bản thực nghiệm gương trong thực tẾ -¿ 2 sz+ss+zxezse¿ 62Chương 5 KET LUẬN VA HƯỚNG PHAT TRIÉN 2- 2c 5 +££+E2£22£z+£zcxez 66
5.1 Kết luận 2 2+ E+SE9EEEEEEEEEEEEE1121121121121121111111111 1111111111111 66
5.2 ¡18/188 66TÀI LIEU THAM KHẢO - 5:56 St+ESEESESEEEESEEEESEEEEEEEEEEEEEEEEEEEEEEEEEEEESEEEESErrkrrrrres 68
Trang 8DANH MỤC HèNH VE
Hớnh 1.1 Gương thừng minh cụ khả năng quờt chỉ số cơ thờ con người - 3
Hớnh 1.3 Một sản phẩm gương thừng minh - 2-2 5ê +Sê+Sê2Sê+Eê+Eê+E++E+ê++zxerxerxerxee 5
Hớnh 2.1 Sơ đồ tổng quan hệ thống - 2-2 2ê EẪESEêEEêEEEEEEEEEEE2EE221221221221 2121 xe 7
Hớnh 2.2 Gương hai chiỀU 2-22-5552 2EEEEE2EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE12EE E1 crkee 8
Hớnh 2.3 Phõc thảo sơ bộ cõch lắp đặt khung viền cho hệ thống -. - 2 5+Ò 9Hớnh 2.4 Mừ hớnh kiến trỷc phần cứng Raspberry Pi -2- ++cz+xz+z++zxczrxrrreees 10
Hớnh 2.5 Sơ đồ kiến trỷc của cừng nghệ electron - Ò5+ 5ê+5ê+êê+êê+êê+ê++zx+zxerxees 13
Hớnh 2.6 Mừ hớnh của èNO(€JS - - G0 2 2012313911111 01 1h TH HT Ho ng nh, 14
Hớnh 2.7 Miếng đõn cảm ứng - Ò2-2-2 ESE+SE92EEEEEEE12112215212217171712121 111 xe, 18Hớnh 2.8 Thừng số kợch thước dan cảm ứng - 2 2 2+ê+Sê+EE+EE+êE+EEeEEezEzxezrezreee 19Hớnh 2.9 Hớnh ảnh thực nghiệm miếng đõn cảm ứng - 2-2 5ê sêêêêEê2ê22êê+ê+2zxê2 20
Hớnh 2.10 Sơ đồ giải thuật nhận điện khuừn mặtt 2-2 2s ê+êEêêEê+Eê+zz+zz+zxez 22
Hớnh 2.11 Mừ hớnh hoạt động của HéT”TTP - 1k 91911931 11911 1 vn rry 25
Hớnh 2.13 Mừ hớnh hoạt động của ALPèL - - 22 2 3211211 1211311 111181111 11 11g ren 27 Hớnh 2.14 Mừ hớnh hoạt động của websoCK€Ẩ - -Ă 1.19112119191111 1111 1 re, 30
Hớnh 3.1 Schematic ra chón đơn giản cho cõc thiết bị ngoại vi - s5: 32
Hinh 3.3 Ham load - 34 Hinh 3.4 Ham 0 1n 34 Hớnh 3.5 Ham getéệOm - <3 E31 1E E331 11 911911111 HH HH HH Hệ 35
Iướ]i6 s01 s:i:28/0), 0018 36 Hinh 3 8stớii89i19)0á 0s) T7 36
Hớnh 3.9 Mừ hớnh thiết kế mừ-đun newsfeed - - Òsex vEEEEE+E+EtEEEEEEEtErEeEerrrrsrsrs 37
Trang 9Hình 3.10 Giao diện mô-đun newsfeed mặc định 2555252222 ££+++zseeeeezzsz 38
Hình 3.12 Mô hình thiết kế mô-đun phát nhac cececccccessessessesssessessessessessessesseeseeseesesees 38
Hình 3.13 Giao diện MP3 mặc định - - -Ă 2c SE 2211223111151 11151111 51 1x re ree 39
Hình 3.14 Giao diện MP3 nhóm thiết kế -c¿-222++c+tttEEEkkrrrrtttttkrrrrrrrrrree 39
Hình 3.17 Các nút chức năng COn ÏạI - - 5 2c 2631189113118 113311911 11 1 11 1 1 re rey 43
Hình 3.18 Sơ đồ hệ thống của mô-đun - + £©5£+S£2E£+EE£EE+EE£EE£EEEEEEEEeEErEerrerreee 44
Hình 3.19 Xem youtube trên gương thông minh - - 5 5553 £+**++eexeeexeexeersss 45
Hình 3.20 Mô-đun smartweb cho phép vừa lên web trên điện thoại vừa theo dõi được trên gương thông mìinh, - - <1 5113311311193 E911 191011 v9 Họ HH nhi 46
Hình 3.21 Mô hình hoạt động của mô-đun profileSwItcher - - s++s+++ss+sxs+csss 47 Hình 3.22 Giao diện riêng dành cho người dùng Ï - 5: 5555 £+s+++exeersss 48 Hình 3.23 Giao diện riêng dành cho người dùng 2 5 55 + *+* 3+ +sexeeessererrse 48
Hình 3.24 Sơ đồ thiết kế hệ thống mô-đun app điều khiến -2- 2 525522252552 49Hình 3.25 Thiết lập thông số với Øgương 2-2 5£ 2+E2£E£EE2EE£EEESEEerEeerxerkerrkeres 51Hình 3.26 Giao diện điều khiển gương cccccecccsscsssesssessesssessesssessessesssessesssessesssessessseesees 52Hình 3.27 Giao diện tạo câu lệnh điều khiển -¿-2c+cccccrxeerrtrkrrrrrrrrrrrrrrkee 53Hình 3.28 Giao diện một số câu lệnh nhóm tự tạO ¿:- 25+ t+E+EE+E+EEEeEererrerszsee 54
Hình 4.3 Hình ảnh giao điện gương hoạt động trong thực tẾ - 2-5 ©5z+cxe+s2 57
Hình 4.4 Kết quả chia sẻ màn hình với thiết bị di động xem youtube trực tiếp trên gương
001300) 45 58
Hình 4 5 Kết quả giao điện đọc báo của mô-đun tin tỨC -2- 5¿©cz+cxzzxvcsze 59Hình 4.6 Hình anh khung gương thực t6 c cceccccccessesssessessessesssesseessessesssessesssessesssesseeeseess 60Hình 4.7 Phần cứng bên trong của gương -+- ¿+ <+x2EE£Ek2EEEEEEEEeEErrkerkerrkres 61
Trang 10Hình 4.9 Giao diện của Trung
Hình 4.10 Giao diện của An
Hình 4.11 Giao diện mặc định
ATHh G G0111 11119 11H KH re
Trang 11Danh muc tir viét tat
API - Application Program Interface
AV — Audio Video
CPU - Central Processing Unit
CSS - Cascading Style Sheets
CSI - Camera Serial Interface
GPIO - General Purpose Input Output
HTTP - Hypertext Transfer Protocol
HDMI - High Definition Multimedia Interface
IOT - Internet of Things
IP - Internet Protocol
IO - Input Output
JSON - JavaScript Object Notation LCD - Liquid Crystal Display
MMM - Magic Mirror Module
MIPI DSI - Mobile industry processor interface display serial interface NPM - Node Package Manager
PS3 - Play Station 3
SoC - System On Chip
IPC — Inter-process communication
Trang 12TÓM TẮT KHÓA LUẬN
Gương thông minh là giải pháp tích hợp trong tương lai cho các hệ thống IOT như nhà
thông minh Chúng vừa đem lại những trải nghiệm mới mẻ mà lại vô cùng tiện lợi với các
trợ lí ảo giúp cuộc sống chúng ta trở nên dễ dàng hơn Tuy nhiên, hiện nay gương thôngminh ở Việt Nam vẫn còn rất ít và vẫn còn chưa phô biến đối với mọi người vì giá thànhcòn cao và chức năng vẫn chưa được tối ưu Trong các đề tài đã nghiên cứu trước, tụi emnhận thấy chiếc gương này vẫn còn thiếu rất nhiều chức năng như giao diện chưa đầy đủ,chưa thân thiện với người dùng và đăc biệt thiếu một số chức năng quan trọng như điềukhiển băng giọng nói, nhận diện khuôn mặt từ đó đề xuất hiển thị giao diện thích hợp vớitừng người dùng cụ thê vẫn chưa được hiện thực cùng với đó là khả năng chia sẻ màn hìnhvới thiết bi di động ở một số ứng dụng cụ thé vẫn chưa có vì thé tụi em quyết định chọn đề
tài về chiêc gương thông minh này đê nghiên cứu và cải tiên thêm cho hoàn thiện hon.
Quyền báo cáo này bao gồm 5 chương:
Chương 1: Tổng quan - Giới thiệu về đề tài và các sản phâm đã phát triển trên thị trường.Chương 2: Cơ sở lý thuyết — Lam rõ các nền tảng lý thuyết, phần mềm, phần cứng được
sử dụng đề thực hiện đề tài.
Chương 3: Phân tích và thiết kế hệ thống — Quá trình hiện thực xây dựng hệ thống
Chương 4: Kết quả thực nghiệm— Nêu ra kết quả dé tài, các kiểm nghiệm, đánh giá thực
Chương 5: Kết luận và hướng phát triển — Tổng kết những gì đã dat được trong quátrình thực hiện và đưa ra hướng phát triển
Trang 13LỜI MỞ ĐẦU
Gương thông minh là thiết bị có chức năng như một chiếc gương thông thườngnhưng được tích hợp thêm một số tinh năng thông minh như khả năng hién thị thông báo,thời tiết hôm nay và cho phép người dùng tương tác dé giải trí trực tiếp như nghe nhạc, đọc
báo Mục đích của gương thông minh là tạo ra những trải nghiệm mới mẻ, người dùng có
thê thực hiện các thói quen hằng ngày như đánh răng, rửa mặt đồng thời vẫn có thé ra lệnh
bang giọng nói dé cho các trợ lí ảo hiển thị các thông tin quan trọng, đồng thời nó cũng
được xem như một món đồ trang trí trong nhà bởi vì bản chất bên trong nó là một màn hìnhchúng ta có thé dùng gương thông minh dé hiển thị bat kì nội dung nào Người dùng có thé
gắn nó ở bat kì đâu với su đa dạng về nội dung hiển thi va chức năng chắc chắn sẽ giúp
người dùng bớt cảm thấy nhàm chán với không gian trong nhà của mình khi sở hữu mộtmón đồ chơi công nghệ độc đáo Chắc chắn bat kì vị khách nao khi vào nha cũng sẽ tramtrồ với chiếc gương than kì này Chiếc gương nay cũng sé là giải pháp tích hợp trong tươnglai cho các hệ thống IOT khác như nhà thông minh Tuy nhiên, hiện nay gương thông minh
ở Việt Nam vẫn còn rất ít và vẫn còn chưa phô biến đối với mọi người vì giá thành còn cao
và chức năng vẫn chưa được tối ưu Trong các đề tài đã nghiên cứu trước, chúng em nhậnthấy chiếc gương này vẫn còn thiếu rất nhiều chức năng như giao diện chưa đầy đủ, chưathân thiện với người dùng và đăc biệt thiêu một số chức năng quan trọng như điều khiểnbăng giọng nói, nhận diện khuôn mặt dé hiển thị giao diện thích hợp với người dùng vàkhả năng chia sẻ màn hình với các thiết bị di động ở một sỐ ứng dụng vẫn chưa chưa đượctích hợp vi thé tụi em quyết định chọn đề tài về chiếc gương thông minh nay dé nghiên cứu
và cải tiên thêm cho nó hoàn thiện hơn.
Trang 14Chương 1 GIỚI THIỆU TONG QUAN VE GƯƠNG THONG MINH
1.1 Giới thiệu về các hệ thống gương thông minh đã có trên thị trường
1.1.1 Hệ thống gương thông minh trên thế giới và lịch sử ra đời
Gương thông minh ban đầu được lay cảm hứng từ HomeMirror và Magic Mirrorcủa nhà sáng lập Michale Teeuw đến từ Hà Lan vào năm 2014 Hiện nay cộng đồng pháttriển hệ thống gương thông minh trên thế giới phát triển rất mạnh và cho ra rất nhiềuphiên bản cũng như mã nguồn mở như: MirrorOS, Magic Mirror Builder Cùng với sự
góp mặt của các công ty lớn đã cho sản xuất nhiều sản phẩm tương tự trên thị trường.
Tuy nhiên, xét về tính năng thì những chiếc gương thông minh này chỉ gói gọn trongmột vài khuôn khổ nhất định mà chưa có sự đa dang Hình 1 dưới đây là một trong sốnhững hệ thống gương thông minh tiên tiến nhất hiện nay khi nó vừa có thê hiển thị giaodiện đẹp vừa tích hợp những cảm biến đề có thé theo dõi những thay đổi của cơ thé theothời gian từ đó có thể đề xuất những xu hướng thời trang thích hợp và chăm sóc sức
khỏe người dùng.
Hình 1.1 Gương thông minh có khả năng quét chỉ số cơ thể con người
Trang 151.1.2 Hệ thống gương thông minh tại Việt Nam
Hiện tại ở nước ta gương thông minh cũng bắt đầu được sinh viên và nhà phát triểnnghiên cứu sản xuất có thé ké đến như Dehome, RoyalMirror Tại một số resort, kháchsạn cao cấp cũng đã tích hợp hệ thống gương này dé phục vụ và tăng cường trải nghiệmthú vị cho khách hàng Tuy nhiên, số lượng này vẫn còn ít vì hiện tại những chiếc gươngnày van còn những hạn chế về phiên ban cũng như hệ điều hành tối ưu dành riêng cho
người Việt, chủ yếu lặp đi lặp lại những tính năng cơ bản vì thế thường được nhập từ
nước ngoài nên giá thành cao khó tiếp cận được với người dùng Nhận thấy điều đó màchúng em đã lựa chọn phát triển hệ thống này với mong muốn cải tiến dé có thêm nhiều
sự đa dang về phiên bản cho người dùng lựa chọn.
Hình 1.2 Gương thông minh của Royal Mirror
Trang 161.2 Téng quan
Gương thông minh là thiết bị có chức năng như một chiếc gương thông thườngnhưng được tích hợp thêm một số tính năng thông minh như:
e Khả năng hiển thi thông báo, thời tiết, tin tức và sự kiện quan trọng
e_ Cho phép người dùng tương tác trực tiếp nhờ hệ thống điều khiển giọng
nói và khuôn mặt dé giải trí, đọc bao va nghe nhac
e Còn rất nhiều tinh năng hữu ích khác
Đề đáp ứng một số chức năng đặc biệt của hệ thống nên về cấu tạo chiếc gương thông
minh này sẽ có những sự khác biệt so với những chiếc gương bình thường khác mà dễ
nhận thấy nhất đầu tiên đó là về chất liệu Thông thường thì mặt gương sẽ là thủy tỉnh trang bạc nhưng ở đây mặt gương có thé được sử dụng như kính hai chiều, kính Dieletric
TV, Acrylic hai chiều Nhưng phô biến nhất là Acrylic hai chiều được tráng một mặt
nên tỉ lệ phản xạ khoảng từ 80% đến 90% từ đó có thể hiển thị được những hình anh
Hình 1.3 Một sản phâm gương thông minh
Trang 171.3 Những cải tiến nhóm muốn hiện thực
Trong khuôn khổ khóa luận này chúng em muốn hướng đến những cải tiễn sau:
e Nâng cấp giao diện với đầy đủ thông tin chức năng, thân thiện và bat
mắt hơn đối với người dùng
e Tir một giao diện hoàn chỉnh phát triển ra thêm nhiều giao diện khác
tương ứng với sở thích của từng người dé có thể đề xuất được giao diện
phù hợp với người dùng đó khi sử dụng.
e Hién thực hệ thống cho phép chia sẻ mản hình với thiết bị di động ở một
số ứng dụng cụ thê.
e Phát triển app điều khiến trên điện thoại để người dùng có thể bật tắt
điều khiển gương theo ý muốn
e Tích hợp miếng dán cảm ứng chạm
Ngoài ra, chúng em còn nâng cấp và phát triển nhiều tính năng khác dé gương chat
lượng hơn các sản phâm cũ từ đó tăng tính đa dạng đóng góp cho cộng đồng nghiên
cứu ở lĩnh vực này.
Trang 18Chương 2 CƠ SỞ LÝ THUYET
2.1 Tổng quan hệ thống
(=) Raspberry Pi
Người dùng
Gương thông minh
Hình 2.1 Sơ đồ tổng quan hệ thong
Ở đây, Raspberry sẽ đóng vai trò như bộ não chính điều khién toàn bộ hệ thống Cácthiết bi như cảm biến, camera sẽ được kết nối đến Raspberry thông qua các công USB
và chân GPIO Khi có các lệnh điều khiến từ người dùng đến các thiết bị ngoại viRaspberry sẽ vận hành và hiên thị những thông tin cần thiết đến người dùng thông quamàn hình LCD được tích hợp qua công Micro HDMI Tiếp đến, sever chính là nơi chứacác gói mô-đun, đó là một hệ thống trung gian nắm vai trò quan trọng trong việc nhận
và thực thi các tác vụ điều khiển phan cứng lẫn phần mềm Khi khởi động gương, các
mô-đun đã được cài đặt trước đó sẽ được tải lên màn hình chính Nhiệm vụ của mô-đun
Trang 19là thực thi nhiệm vụ ma nó đảm nhận, một sô mô-đun khác sẽ truy vân các dữ liệu từ
Internet như giờ, lịch, tin tức, Sau đó sẽ hiển thị lên trên màn LCD cho người dùng
2.2 Cách lắp đặt khung viền gương thông minh
2.2.1 Giới thiệu gương hai chiều
Gương hai chiều là loại gương có lớp mặt làm bang thủy tinh có tráng dán phủ một
lớp chất liệu mỏng có khả năng phản xạ ánh sáng Đặc điểm của lớp phủ này có côngdụng giống như giấy dán kình một chiều Khi những mặt này được xoay về phía chiếusáng thì một số ánh sáng sẽ phản xạ đi còn số khác sẽ xuyên qua bề mặt bên kia Điều
này làm cho người đứng bên phía mặt bên tối thấy được phía bên sáng nhưng ngược lại
thì không Nó cũng giống như vào ban đêm, ta rất khó nhìn ra bên ngoài qua cửa kínhnếu trong nhà bật đèn Loại gương này thường dùng trong các phòng thâm vấn của cảnhsát, các cửa kính xe bảo vệ chuyên dụng Nếu đứng trước gương hai chiều có nghĩa làchỉ thay hình ảnh của mình phản chiếu trong gương mà không thấy đăng sau tam gương
ấy có người đang theo dõi
Trang 20Hình 2.3 Phác thảo sơ bộ cách lắp đặt khung viền cho hệ thống
Đề hoàn chình đầy đủ phần cứng cho gương thông minh ta thực hiện lắp đặt theohình 2.6 từ trái sang phải Đầu tiên là gương được đặt ở lớp ngoài cùng, tiếp đến sẽ
có một khung gỗ đề cô định tam gương và dé chứa các phần cứng bên trong Sau đó
là màn hình dé hiển thị và cuối cùng là các phần cứng đi kèm dé vận hành nhưRaspberry, loa Các cảm biến hoặc các thiết bị ngoại vi dùng dé nhận lệnh hiền thị
sẽ được đặt lộ ra bên trên hoặc bên hông khung viền dé tiện cho việc thu nhận tin
hiệu.
2.3 Phần cứng sử dụng trong gương thông minh
2.3.1 Giới thiệu chung về Raspberry Pi
Raspberry Pi là một máy tính nhỏ gọn chạy hệ điều hành linux được phát triển bởiRaspberry Pi Foundation — là tổ chức phi lợi nhuận với tiêu chí xây dựng hệ thống mànhiều người có thê sử dụng được trong những công việc tùy biến khác nhau Raspberry
Trang 21Pi sản xuất bởi 3 OEM: Sony, Qsida, Egoman Và được phân phối chính bởi Element14,
RS Components và Egoman Đặc tính cua Raspberry Pi xây dựng xoay quanh bộ xử lí SoC Broadcom BCM2835 ( là chip xử lí mobile mạnh mẽ có kích thước nhỏ hay được
dùng trong điện thoại di động dựa trên cấu trúc ARM) bao gồm CPU , GPU, bộ xử lí
âm thanh /video , và các tính năng khác tất cả được tích hợp bên trong chip có điện
năng thấp này
Cấu trúc ARM (viết tắt từ tên gốc là Acorn RISC Machine) là một loại cấu trúc vi xử lý32-bit kiểu RISC được sử dụng rộng rãi trong các thiết kế nhúng Do có đặc điểm tiếtkiệm năng lượng, các bộ CPU ARM chiếm ưu thế trong các sản phẩm điện tử di động,
mà với các sản phâm này việc tiêu tán công suất thấp là một mục tiêu thiết kế quan trọnghàng đầu
Ngày nay, hơn 75% CPU nhúng 32-bit là thuộc họ ARM, điều này khiến ARM trở thànhcau trúc 32-bit được sản xuất nhiều nhất trên thế giới CPU ARM được tìm thấy khắpnơi trong các sản phẩm thương mại điện tử, từ thiết bi cầm tay (PDA, điện thoại di động,máy đa phương tiện, máy trò chơi cam tay, và máy tính cầm tay) cho đến các thiết bingoại vi máy tinh (6 đĩa cứng, bộ định tuyến để bàn.) Một nhánh nồi tiếng của họ ARM
là các vi xử lý Xscale của Intel.
2.3.2 Kiến trúc tổng quát của Raspberry Pi
Trang 22nhớ trong RAM, công kết nối với các thiết bị nhập xuất, công kết nối USB và đầu vào
Ethernet Tuy nhiên, ứng với mỗi model khác nhau của Raspberry Pi sẽ có một kiến trúc
khác nhau, thêm hoặc bớt linh kiện phần cứng
Phiên bản Raspberry Pi đầu tiên là Raspberry Pi model A được phát hành vào tháng 2năm 2013 Tiếp theo đó là các model Raspberry Pi model A+, Raspberry Pi model B,Raspberry Pi model B+ Và phiên bản mới nhất là Raspberry Pi 3 model B+ vừa được
phát hành vào tháng 3 năm 2019.
- Vi xử lí: Bộ vi xử lí được sử dụng trong Raspberry Pi thé hệ đầu tiên tương đương với
bộ vi xử lý được dung trong các smartphone cũ như (iPhone 3G, iPhone 3GS) Raspberry
Pi chạy dựa trên hệ thống Broad BCM2835 Bao gồm vi xử lý 700 MHz
ARM1176JZEF-S, bộ xử lí độ họa VideoCore Iv GPU va RAM Nó có bộ nhớ đệm
Level | là 16Kb, Level 2 là 128Kb Bộ nhớ đêm Level 2 được sử dụng chủ yếu bởi GPU.RAM của Raspberry Pi nằm ở dưới chân của CPU
- RAM: Với phiên ban ban đầu của Raspberry Pi, RAM của nó là 256MB với 1283MB
được chia cho GPU và 128MB dành cho CPU Với dung lượng bộ nhớ trong nay,
Raspberry Pi có thê xử lý được video 1080p và 3D đơn giản Tuy nhiên do nhu cầu tangcao, nên trong các model tiếp theo, dung lượng bộ nhớ trong đã được nhà cung cấp tang
lên thành 512MB (Model B, B+) và 1GB (Raspberry Pi 2, 3).
- Network: Trong phiên bản Raspberry Pi thế hệ đầu tiên (A, A+) nhà cung cấp chưatích hợp công Ethernet Vì vậy nếu muốn kết nối internet người dung phải thông quaUSB wili adapter Chỉ từ model B trở đi, nhà cung cấp Raspbemy Pi mới tích hợp côngEthernet 10/100 Mbit/s Ethernet(8P8C) vào trong thiết bị của mình Qua đó người dùng
có thể kết nối internet có dây và không dây
- Thiết bị ngoại vi: Đối với Raspbery Pi, người dùng có thê kết nỗi keyboard, mouse
như đối với một máy vi tính bình thường Ngoài ra, Raspberry Pi còn cho phép chúng
Trang 23ta két nôi với các thiệt bị ngoại vi khác như camera, cảm biên hông ngoại cũng như các
linh kiện phần cứng khác
- Video: Bộ xử lí video của Raspberry Pi cho phép xử lý video độ phân giải cao, chạy
được trên các tivi hiện đại ngày nay như HD, full HD, các màn hình có độ phân giải cao
hơn hoặc thấp hơn và các đòng tivi có độ phân giải cũ
- Đồng bộ thực: Raspberry Pi không có đồng bộ thực như trên máy vi tính thông thường,
vì vậy nó không thế lưu giữ thời gian thực tế khi không hoạt động Đồng bộ thường
được lấy dựa vào đồng hộ internet khi Raspberry Pi được kết nối mạng.
2.3.3 Hệ điều hành và phần mềm của Raspberry Pi
Về cơ ban Raspberry Pi có khá nhiều OS linux chạy được nhưng vẫn có sự thiếu
văng của Ubuntu(do CPU ARMv6) Điểm danh một số Distributions Linux (nhúng)
chạy trên Raspberry Pi như Raspbian, Pidora, openSUSE, OpenWRT, OpenELEC,
- Raspbian: Day là ban build Linux dựa trên nên Debian (Gần giống ubuntu) với giaodiện LXDE (thay vì GNOME) Có đầy đủ web browser, media player, tools, etc Nóichung HĐH này dành cho những người muốn dùng Raspberry Pi như một máy tinh
nhúng.
- Raspbmc: Có thể gọi đây là bản Raspbian lược bỏ đi LXDE và thay vào đó là XBMC.2.4 Thiết kế phần mềm sử dụng trong hệ thống gương thông minh
2.4.1 Công nghệ Electron
Electron là một framework dựa trên nền tang NodeJs dé xây dựng các ứng dụng cho
máy tính sử dụng JavaScript, HTML và CSS chạy trên nền trình duyệt Chromium.Electron cho phép duy trì một cơ sở mã JavaScript và tạo các ứng dụng đa nền tảng hoạt
động trên Windows, macOS và Linux.
Trang 24Hình 2.5 Sơ đồ kiến trúc của công nghệ electron
2.4.2 Trình quản lí quy trình vận hành cho thoi gian chạy gương thông minh
PM2 là trình quản lý quy trình vận hành cho các ứng dụng NodeJs với bộ cân băngtải được tích hợp san Nó cho phép giữ cho các ứng dụng tồn tại mãi mãi, tải lại chúng
mà không cần thời gian chết và tạo điều kiện thuận lợi cho các tác vụ quản trị hệ thống
thông thường PM2 là một platform mở, hiện đại, hiệu quả Nó hoạt động trên Linux,
MacOS cũng như Windows Ở trong đề tài gương thông minh này thì PM2 đóng vai trònhư một phần mềm dé tự khởi động gương thông minh và là cách dé giữ gương hoạt
động trong trường hợp bị lỗi.
Trang 252.4.3 NodeJs
NodeJS là một môi trường runtime chạy JavaScript đa nền tảng và có mã nguồn mở,được sử dụng dé chạy các ứng dụng web bên ngoài trình duyệt của khách hàng Nềntảng này được phát triển bởi Ryan Dahl vào năm 2009, được xem là một giải pháp hoàn
hảo cho các ứng dụng sử dụng nhiều dữ liệu nhờ vào mô hình hướng sự kiện
(event-driven) không đồng bộ
Máy ảo Java (dava virtual machine)
VB (V8 engine)
Node api hoặc mô-đun
Môi trường thời gian chạy Java NodeJs (Java runtime environment)
Hình 2.6 Mô hình của NodeJs
Ưu điểm:
e IO hướng sự kiện không đồng bộ, cho phép xử lý nhiều yêu cầu đồng
thời.
e Sử dụng JavaScript — một ngôn ngữ lập trình dé học
e Chia sẻ cùng code ở cả phía client và server.
e NPM (Node Package Manager) và mô-đun Node đang ngày càng phat
trién manh mé
e Cộng đồng hỗ trợ tích cực
e Cho phép stream các tập tin có kích thước lớn.
Trang 26Nhược điểm:
Không có khả năng mở rộng, vì vậy không thể tận dụng lợi thế mô hình
đa lõi trong các phần cứng cấp server hiện nay
Khó thao tác với cơ sử dữ liệu quan hệ.
Mỗi callback sẽ đi kèm với rất nhiều callback lồng nhau khác
Cần có kiến thức tốt về JavaScript
Không phù hợp với các tác vụ đòi hỏi nhiều CPU
Một số ứng dụng được viết bang NodeJs
Ứng dụng trò chuyện trong thời gian thực: Nhờ vào cấu trúc không đồng
bộ đơn luồng, Node.JS rất thích hợp cho mục đích xử lý giao tiếp trongthời gian thực Nền tang này có thé dé dàng mở rộng quy mô và thườngdùng đề tạo ra các chatbot Bên cạnh đó, các tính năng liên quan đến ứngdụng trò chuyện như: chat nhiều người, thông báo day, cũng có thé dédàng được bồ sung nhờ Node1S
Internet of Things (IoT): Các ứng dụng IoT thường bao gồm nhiều bộcảm biến phức tạp để gửi những phần dữ liệu nhỏ Node.JS là một lựachọn lý tưởng đề xử lý các yêu cầu đồng thời này với tốc độ cực nhanh
Truyền dữ liệu: Netflix là một trong số những công ty lớn trên thế giới
chuyên sử dung NodeJs cho mục đích truyền dữ liệu Sở di vì đây là mộtnền tảng nhẹ và cực nhanh, đồng thời còn cung cấp một API chuyên dùng
dé stream.
Một số li do nên sử dung NodeJs
Tốc độ cực nhanh: Được xây dựng dựa trên nền tảng JavaScript V8 củaGoogle Chrome, do đó các thư viện của nó có khả năng thực thi code rất
nhanh.
NPM: Với hơn 50,000 gói khác nhau, các lập trình viên có thé dé danglựa chọn bat kỳ tính năng nao dé xây dung cho ứng dụng của mình
Trang 27e Đơn luồng: Node.JS sử dụng mô hình đơn luồng với vòng lặp sự kiện Do
đó các ứng dụng có thé xử lý số lượng yêu cau lớn hơn rất nhiều so vớicác server truyền thống như Apache HTTP Server
Trong đề tài nghiên cứu này chúng em sử dụng NodeJs dé phát triển các mô-đun cải tiến
gương thông minh.
2.5 Tổng hợp các thư mục chính dé vận hành gương thông minh
có thé vận hành trên bat cứ thiết bị nào Một số thông số thiết lập mặc định trong thư
mục nay như: port mặc định khi khởi động gương thông minh là 8080, địa chi ip giao
diện để chấp nhận kết nối mặc định là localhost dé ngăn việc hiển thi máy chủ web
tích hợp sẵn cho các máy trong mạng cục bộ Đề hiền thị nó với các máy khác thì dùngthông số 0.0.0.0
2.5.2 \MagicMirror\js
Thư mục này chứa các file mã nguồn JavaScript bao gồm các mã nguồn tạo để
Server, điều chỉnh ngôn ngữ, hiển thi ứng dụng Desktop, tạo kết nối Socket, tải các
mô-đun lên màn hình chính,
2.5.3 \MagicMirror\modules
Trong thư mục nay bao gồm tat cả mô-đun mà nhóm sử dụng dé phát trién gương
thông minh Các mô-đun được những lập trình viên trên thế giới trong cộng đồng
Smart mirror đóng góp nhằm tạo sự kết nối và phát triển da dang hơn cho những người
cùng đam mê nghiên cứu sản phâm này.
Trang 28e \default: Đây là thư mục chứa mã nguồn và những file hỗ trợ cho việc
vận hành những gói mô-đun dé hién thị lên màn hình, người dùng cũng
có thể tự tạo cho mình một mô-đun và thêm vào thư mục này
se \MMM-name: Các thư mục có tên bắt đầu với MMM hoặc tên do người
dùng đặt, là những thư mục do người dùng tải về từ trang chủ Github.Người dùng có thê đặt tên tuỳ thích nhưng bắt đầu với MMM sẽ giúp cho
các lập trình viên phân biệt được đâu là mô-đun tự phát.
e \ModuleName.js: File này chứa mã nguồn, các hàm dé xử lý và các tham
số cần thiết dé vận hành mô-đun
e© \node_helper.js: Day là file trung gian giúp giao tiếp được với Raspberry
dé hién thị các lỗi cũng như debug lên cửa số console, truy cập vào đượccác hệ thống file, điều khiển ngoại vi GPIO, Serial và hỗ trợ tương tác
qua lại giữa các cơ sở dữ liệu, trang web, server khác File này sẽ đảm
nhiệm việc cấu hình và tương tác ở phía backend, nếu không có file này
hỗ trợ thì tầng giao diện Web sẽ không can thiệp được đến tầng phần cứnghay còn gọi là backend mà chỉ có thể debug Smart Mirror như một hệthống Website bình thường sử dụng (F12) hoặc (Ctrl+Shift+i) vi nền tảng
của gương là Electron (Chrominum).
2.6 Cách vận hành của gương thông mỉnh
Sau khi tải gói MagicMirror về từ Magic mirror builder và thực hiện các cài đặt theohướng dẫn của tác giả, ta sẽ truy cập vào bên trong thư mục Magic Mirror bằng cửa số
console trên Raspberry va thực hiện câu lệnh: “npm start” đây là câu lệnh đã được định
nghĩa sẵn chứa trong thư mục Magic Mirror Sau đó đợi khoảng 15s hoặc lâu hơn tuỳ
vào số lượng mô-đun người dùng muốn hiển thi trong file “config.js” để hệ thống tải tat
cả các gói mô-đun lên màn hình chính.
2.7 Hiện thực chức năng cảm ứng
Dé hiện thực chức năng này, sau quá trình tìm hiểu chúng em quyết định lựa chọn
Trang 29miếng dán cảm ứng dé tích hợp vào hệ thống gương thông minh Sau quá trình nghiên
cứu tìm kiếm phần cứng phù hợp chúng em đã chọn miếng dán Interactive Touch Film
Through Glass cỡ 24 inch xuất xứ từ Trung Quốc Đây là một miếng dan trong suốt có
một lớp keo mỏng độ bám dính cao giá thành lại rẻ và có chức năng như một touch pad
một cham khá nhạy khi gắn lên gương người dùng có thé dé dàng thực hiện các thao tácchạm cảm ứng tương đối mượt mà Sau đây là một số chỉ tiết và hình ảnh của miếng dán
cảm ứng:
——
Hình 2.7 Miếng dan cảm ứng
Trang 31e Thích hợp dé dán lên thủy tinh, acrylic hoặc phim ảnh.
e Không có yếu tố cơ học hoặc nhạy cảm với áp suất, bền và ôn định.
e Không nhạy cảm với ánh sáng bên ngoài, sự thay đôi của ánh sáng không
ảnh hướng tới miêng dán nay.
e Trọng lượng nhẹ, dễ vận chuyền, chi phí vận chuyên thấp
e Khoảng 2784 cảm biến được tích hợp
e Độ chính xác: < 2mm.
e Téc độ phản hồi: < 2.5ms
Trang 32e Độ dày của cảm biến: < 200um.
e Truyền ánh sáng: 90%
e Độ dày của miếng dán: 0-12mm
e Interface: USB 2.0.
e Driver: Tự động cài đặt và điều khién
e Tiêu thụ năng lượng: 0.5W-2W.
2.8 Hệ thống nhận diện khuôn mặt
2.8.1 Giới thiệu chung
Ở đây chúng em sử dụng mô-đun MMM-Face-Reco-DNN để phát triển hệ thống
nhận diện khuôn mặt Nó sử dụng DNN được cung cấp bởi OpenCV 4.1 và chính xác
hơn nhiều so với phương pháp Haar Cascade cũ Với mô-đun này, nhóm có thé quyết
định việc hiển thị hay ân các mô-đun khác nhau tùy thuộc vào người dùng được nhận
dang.
2.8.2 Thuật toán nhận diện khuôn mặt bang Dlib
DIib là một chương trình của thư viện OpenCV, hỗ trợ người dùng trong việc xác
định khuôn mặt Thuật toán mà Dlib sử dụng đó là HOG — một phương pháp nhận diện
khuôn mặt với thời gian chạy rất nhỏ và có thê sử dụng trong các hệ thống thời gianthực Gần đây, Dlib cũng đã cung cấp thêm các ham xác định khuôn mặt dựa trên mạng
CNN giúp nâng độ chính xác khi nhận diện khuôn mặt.
Tuy nhiên dé tiết kiệm tài nguyên bộ nhớ, và dé đáp ứng được nhu cau thời gian thực,
nhóm đã quyết định chọn phương pháp HOG đề nhận diện
Trang 33B2: Đầu tiên chúng ta cần xác định vị trí khuôn mặt dựa trên phương pháp HOG.
B3: Tiếp theo cắt vùng ảnh của khuôn mặt theo đúng kích thước đầu vào phù hợp với
mô hình đã được huấn luyện
B4: Khi vùng ảnh khuôn mặt di qua mô hình sẽ cho ra | vector các đặc trưng của khuôn
mặt.
BS: Tiép theo nhóm sé tính độ tương đồng so với các bộ đặc trưng khuôn mặt đã được
lưu trong cơ sở dữ liệu, ở đây đối với mỗi người nhóm thu thập 5 bộ đặc trưng khuôn mặt bao gồm mặt ở các góc trái, phải, hơi nghiêng trên, hơi nghiêng dưới và ảnh ở chính
diện.
Trang 34B6: Sau khi tính toán ra độ tương đồng và so sánh với các tập bộ đặc trưng ở trong cơ
sở dữ liệu thì ID của người đó sẽ được quyết định bởi yếu tố là phải là ID có độ tươngđồng cao nhatva cao hơn ngưỡng quy định Ngược lại nếu như có ID đạt ngưỡng tươngđồng lớn nhất nhưng mà lại thấp hơn ngưỡng quy định thì vẫn được cho là xác thực thất
bại và không tìm được ID khuôn mặt khớp với người dùng.
B7: Trả lại kết quả nhận diện khuôn mặt và quay lại trạng thái chờ nhận diện
2.8.3 OpenCv
Project OpenCV được bắt đầu từ Intel năm 1999 bởi Gary Bradsky OpenCV viếttắt cho Open Source Computer Vision Library OpenCV là thư viện nguồn mở hàng đầu
cho thị giác máy tính (Computer Vision) và máy học (Machine Learning), và hiện có
thêm tính năng tăng tốc GPU cho các hoạt động theo thời gian thực
OpenCV được phát hành theo giấy phép BSD, do đó nó miễn phí cho cả học tập và sử
dụng với mục đích thương mại Nó có trên các giao diện C++, C, Python và Java và hỗ
trợ Windows, Linux, Mac OS, iOS va Android OpenCV được thiết kế dé hỗ trợ hiệu
quả về tính toán và chuyên dùng cho các ứng dụng real-time (thời gian thực) Nếu được
viết trên C/C++ tối ưu, thư viện này có thể tận dụng được bộ xử lý đa lõi (multi-core
processing).
OpenCV được sử dung cho da dạng nhiều mục dich va ứng dụng khác nhau bao gồm:
e Hinh ảnh street view
« Kiém tra và giám sat tự động
e Robot và xe hoi tự lái
e Phan tích hình ảnh y học
¢ Tim kiếm và phục hồi hình ảnh/video
« Phim — cấu trúc 3D từ chuyên động
« _ Nghệ thuật sắp đặt tương tácTheo tính năng và ứng dụng của OpenCV, có thể chia thư viện này thành các nhóm tính
năng và module tương ứng như sau:
Trang 35¢ Xử lý và hiển thị Hình ảnh/ Video/ I/O (core, imgproc, highgui)
¢ Phát hiện các vật thé (objdetect, features2d, nonfree)2.8.4 Tìm hiểu về Hog
HOG (histogram of oriented gradients) là một feature descriptor được sử dụng trong
thị giác máy tinh (computer vision) và xử lý hình anh, dùng dé phát hiện một đối tượng
Các khái niệm về HOG được nêu ra từ năm 1986 tuy nhiên cho đến năm 2005 HOG mớiđược sử dụng rộng rãi sau khi Navneet Dalal và Bill Triggs công bố những bồ sung vềHOG Hog tương tự như các biéu đồ edge orientation, scale-invariant feature transform
descriptors (như sift, surf, ), shape contexts nhưng hog được tính toán trên một lưới day
đặc các cell và chuân hóa sự tương phan giữa các block dé nâng cao độ chính xác Hog được sử dụng chủ yếu dé mô tả hình dang và sự xuất hiện của một object trong ảnh Bài
toán tính toán Hog thường gồm 5 bước:
e Chuan hóa hình ảnh trước khi xử ly
e Tính toán gradient theo cả hướng x và y.
e Lấy phiếu bau cùng trọng số trong các cell
e Chuan hóa các block
e Thu thập tat cả các biéu đồ cường độ gradient định hướng dé tạo ra feature
vector cuôi cùng.
2.9 HTTP Protocol
HTTP là từ viết tat của Hyper Text Transfer Protocol nghĩa là Giao thức Truyền
tải Siêu Văn Bản được sử dụng trong www HTTP là | giao thức cho phép tìm nap tải
nguyên, chăng hạn như HTML doc
Nó là nền tảng của bat kỳ sự trao đổi dữ liệu nào trên Web và cũng là giao thức giữaclient (thường là các trình duyệt hay bất kỳ loại thiết bị, chương trình nào) và server
(thường là các máy tính trên dam mây) 1 doc hoàn chỉnh được tai tạo từ các doc con
khác nhau được fetch — tìm nạp, chăng hạn như văn bản, mô tả layout, hình ảnh, video,
Trang 36Hình 2.11 Mô hình hoạt động cua HTTP
Được thiết kế lần đầu từ những năm 90, HTTP là 1 giao thức có thể mở rộng vốn đãphát triển dan theo thời gian 1 giao thức lớp ứng dụng được gửi thông qua nền tangTCP/I, hay qua 1 kết nối TCP được mã hóa TLS Mặc dù về mặt lý thuyết, bat kỳ giaothức truyền tai đáng tin cậy nào cũng có thé được sử dụng
Nhờ vào khả năng mở rộng của nó, HTTP được sử dụng dé không chỉ tìm nạp các tài
liệu siêu văn bản mà còn cả hình ảnh va video hoặc dé đăng tải nội dung lên server,
giống như với các kết quả form HTML HTTP cũng có thé được sử dung dé tìm nạp các
phân của các doc nhăm cập nhật các trang web theo yêu câu.
Trang 371 trình duyệt web, được gọi là các yêu cầu và message được gửi bởi server như | sự trả lời, được gọi là phản hồi.
Trang 382.10 API
API là viết tắt của Application Programming Interface — phương thức trung gian
kết nối các ứng dụng và thư viện khác nhau.
Nó cung cấp khả năng truy xuất đến một tập các hàm hay dùng, từ đó có thể trao đồi
dữ liệu giữa các ứng dụng.
Thi thoảng vẫn có người lầm tưởng API là một ngôn ngữ lập trình nhưng thực ra,API chỉ là các hàm hay thủ tục thông thường Các hàm này được viết trên nhiều
ngôn ngữ lập trình khác nhau.
Bốn đặc điểm nỗi bật của API:
e API sử dụng mã nguồn mở, dùng được với mọi client hỗ trợ XML,
JSON.
Trang 39API có khả năng đáp ứng đầy đủ các thành phần HTTP: URI,
request/response headers, caching, versioning, content forma có
thé sử dung các host nam trong phan ứng dụng hoặc trên IIS
M6 hinh web API dung dé hỗ tro MVC như: unit test, injection, ioc
container, model binder, action result, filter, routing, controller Ngoai
ra, nó cũng hỗ trợ RESTful đầy đủ các phương thức như: GET, POST,
PUT, DELETE các dữ liệu.
Được đánh giá là một trong những kiểu kiến trúc hỗ trợ tốt nhất với
các thiết bị có lượng băng thông bị giới hạn như smartphone, tablet
Ưu và nhược điểm của API
Ưu điểm:
Nhược điểm:
Giao tiếp hai chiều phải được xác nhận trong các giao dịch sử dụngAPI Cũng chính vì vậy mà các thông tin rất đáng tin cậy
API là công cụ mã nguồn mở, có thê kết nối mọi lúc nhờ vào Internet
Hỗ trợ chức năng RESTful một cách đầy đủ
Cấu hình đơn giản khi được so sánh với WCF (WindowCommunication Foundation) Cung cấp cấp trải nghiệm thân thiện với
người dùng.
Tôn nhiêu chi phí phát triên, vận hành, chỉnh sửa.
Đòi hỏi kiên thức chuyên sâu.
Có thể gặp vấn đề bảo mật khi bị tấn công hệ thống
Trong các mô-đun mà nhóm phát triển API đóng vai trò quan trọng là cơ sở dé trao
đôi dữ liệu giữa các ứng dụng của các mô-đun.
2.11 HTTP API
API HTTP giao tiếp giữa hai hệ thống bằng giao thức truyền siêu văn bản
API HTTP cung cấp các điểm cuối dưới dang công API, cho phép các truy van HTTP
kết nối với máy chủ Ví dụ: khi lên lịch cuộc họp thu phóng trên lịch google của
Trang 40mình, sử dung API HTTP Thay vì sao chép và dán lời mời họp vào một trường, API
giải thích cách Zoom có thể giao tiếp trực tiếp với máy chủ của Google dé nhúng
một cuộc họp Zoom vảo trong sự kiện.
HTTP API là một khái niệm rộng, có nghĩa là chúng có nhiều dạng khác nhau tùythuộc vào nhiệm vụ dự định của chúng Các khái niệm thiết kế kiến trúc được sửdụng dé xây dựng các API HTTP được sử dụng dé phân loại thêm chúng Phan lớnđược sử dụng trong các hệ thống thông tin siêu phương tiện hoặc phát triển web,
mặc dù môi loại đêu có những ưu vả nhược điêm riêng.
Các giao thức này chính là cách giao tiếp truyền tải dir liệu của các mô-đun app điều
khiên và truyên video của nhóm chúng em sẽ được giải thích chi tiét ở chương sau.
2.12 Websocket
Websocket là giao thức hỗ trợ giao tiếp hai chiều giữa client và server đề tạo mộtkết ni trao đôi dữ liệu Giao thức này không sử dụng HTTP mà thực hiện nó qua TCP.Mặc dù được thiết kế dé chuyên sử dụng cho các ứng dụng web, lập trình viên vẫn cóthé đưa chúng vào bat kì loại ứng dụng nào Ưu điềm của nó là cung cấp giao thức giaotiếp hai chiều mạnh mẽ Nó có độ trễ thấp và đễ xử lý lỗi Websocket thường được sửdụng cho những trường hợp yêu cầu real time như chat, hiển thị biểu đồ hay thông tin
chứng khoán.