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

Khóa luận tốt nghiệp Kỹ thuật máy tính: Thiết kế gương thông minh điều khiển theo kịch bản người dùng

82 0 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 đề Thiết kế gương thông minh điều khiển theo kịch bản người dùng
Tác giả Trương Nguyễn Trung Anh, Nguyễn Chí Dũng
Người hướng dẫn TS. Doan Duy, THS. Phan Đình Duy
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Kỹ thuật máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 82
Dung lượng 44,79 MB

Nội dung

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 3

THONG 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 4

LOI 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 5

MỤ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 6

VI`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 7

3.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 8

DANH 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 9

Hì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 10

Hì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 11

Danh 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 12

TÓ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 13

LỜ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 14

Chươ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 15

1.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 16

1.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 17

1.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 18

Chươ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 19

là 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 20

Hì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 21

Pi 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 22

nhớ 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 23

ta 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 24

Hì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 25

2.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 26

Nhượ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 27

e Đơ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 28

e \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 29

miế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 31

e 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 32

e Độ 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 33

B2: Đầ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 34

B6: 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 36

Hì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 37

1 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 38

2.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 39

API 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 40

mì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.

Ngày đăng: 08/11/2024, 17:02

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w