Hình 4: Face Recognition và Voice ControlHình 5: Hai mặt của gương hai chiều Hình 6: Sơ đồ kiến trúc của Electron Hình 12: Vận hành gương thông minh Hình 13: Cây thư mục một project Smar
GIỚI THIỆU TONG QUAN VỀ GƯƠNG THONG MINH
Tổng QUAN 00
Gương thông minh ngoài chức năng chính đề soi thông thường còn tích hợp thêm một số chức năng đặc biệt khác như: e Kha nang hién thi thông bao, thời tiết hôm nay, 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 báo và nghe nhạc. e_ Còn rất nhiều tinh năng hữu ích khác.
Dé đá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 tráng 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 ảnh phía sau nhờ một phần ánh sáng đi qua mặt gương bên kia[1].
Hình 1: Gương thông minh cho phép người dùng xem thông tin thời tiết
Giới thiệu về các hệ thống gương thông minh đã có trên thị trường
1.2.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 là sản phẩm của nhà sáng lập Michale Teeuw người Hà Lan phát hành vào năm 2014 ban đầu được lay cảm hứng từ HomeMirror va Magic Mirror Hiện nay cộng đồng phát triể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êu phiên bản cũng như mã nguôn mở như:
Mirror OS, Magic Mirror Builder Cùng với sự góp mặt của các công ty lớn như Samsung, LG đã cho sản xuất nhiều sản phẩm có mặ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 trong một vài khuôn khô nhất định mà chưa có sự đa dang Cụ thé ở đây, gương thông minh hiện tại chỉ là công cụ dé hiển thị thông tin “cứng nhắc”, được lập trình sẵn và làm theo lệnh được đặt ra mà không có sự tương tác, phản hồi Hình 2 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 thi giao diện đẹp, vừa có thể xem phim đọc báo vừa tích hợp những cảm biến dé có thé theo đõi những thay déi của làn da từ đó có thé chăm sóc sức khỏe người dùng tốt hơn [2].
1.2.2 Hệ thống gương thông minh tại Việt Nam Ở nước ta cũng bắt đầu có một số nhà phát triển nghiên cứu sản xuất có thé kế đến như Dehome, RoyalMirror Các công ty lớn nhỏ khác nhau cũng đã kinh doanh và cung cấp các sản phâm như HiMirror Mini, iHome Reflect Một số resort ở các khu du lịch trong nước cũng đã tích hợp công nghệ này tại khách sạn của minh dé mang đến một trải nghiệm mới lạ cho du khách Tuy nhiên, số lượng này vẫn còn ít vì hiện tại những chiếc gương này vẫn còn nhiều hạn chế như chi phí sản xuất cao, hệ điều hành không tối ưu dành riêng cho người Việt.
Và những chiếc gương đó chủ yếu lặp đi lặp lại những tính năng cơ bản như hiển thị thông tin được cài đặt sẵn hoặc một vài loại trình chiếu hình ảnh cụ thể và do 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 Cũng như ở những đề tài gương thông minh đã xây dựng trước của những anh chị, em nhận thấy rằng gương vẫn chỉ đơn thuần là một màn hình trình chiếu, chưa có được sự tương tác với người dùng Nhận thấy điều đó mà em đã lựa chọn phát triên hệ thông này với mong muôn cải tiên đê có thêm nhiêu sự đa dạng về phiên bản cho người dùng lựa chọn.
Hình 3: Gương thông minh được dùng trong resort dé mang lai cảm giác mới la cho khách du lich
1.3 Những cải tiến em muốn hiện thực
Trong khuôn khổ khóa luận này em muốn hướng đến những cải tiến về tương tác giữa người dùng và gương thông minh, giúp việc giao tiếp giữa người và gương trở nên “mềm mại” hơn, không bị gò bó giữa việc người dùng ra lệnh và gương thực thi Dé có thé hướng đến cải tiến như trên em xin đề xuất một số giải pháp: e Phat triển hệ thống nhận diện khuôn mặt đề đề xuất giao diện cho người đang đứng trước gương Cụ thê hơn với mỗi người dùng nhận diện được sẽ cho ra một giao diện cụ thê dựa theo sở thích của người đó. e Hiện thực giọng nói dé điều khiển gương thông qua thuật toán nhận diện giọng nói Google Assistant Đồng thời cải tiến thêm về mặt cú pháp giúp người dùng dé dang giao tiếp với gương hơn. e Tạo ra một số tương tác thông minh giữa gương với người dùng Cho phép gương có thé phản hồi lai thông tin được đưa ra bởi người dùng.
Ngoài ra, em còn nâng cấp và cải tiến thêm một số tính năng đề tăng tính độ chính xác cho hệ thống chất lượng hơn các sản phẩm cũ từ đó tăng tính da dang, dong góp cho cộng đông nghiên cứu ở lĩnh vực nay.
Hinh 4: Face Recognition va Voice Control
CHUONG 2 CƠ SỞ LÝ THUYET
2.1 Lý thuyết về gương hai chiều
Gương hai chiều là loại gương có lớp mặt được làm bang thủy tinh có trang dan phủ một lớp chất liệu mỏng có thé phản xạ ánh sáng Đặc điểm của lớp phủ này có công dụng giống như giấy dán kính một chiều, khi có ánh sáng chiếu vào mặt này thì phần lớn sẽ bị phản xạ lại chỉ có một ít có thể xuyên qua được nhưng bạn rất khó dé cảm nhận được Khi mặt này được xoay về phía chiếu sá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 Và cũng tùy vào mục đích sử dụng mà chất liệu tráng bạc cũng sẽ khác nhau, ví dụ như ở phòng thâm van trong đồn cảnh sát thì có độ phan xạ cao, tù nhân sẽ hoàn toàn không thể nhìn xuyên qua được, hay trong các cửa hàng bán hàng hay kính xe 6 tô thì van có thé nhìn xuyên qua được du rất khó.
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ính nếu trong nhà bật đèn Loại gương này thường dùng trong các cửa kính xe oto, một sô tường kính của các cửa hang,
Hình 5: Hai mặt của gương hai chiều
Electron là một framework dựa trên nền tảng 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 [3].
NodeJS là một mã nguồn mở được xây dựng dựa trên nền tảng Javascript V8 Engine, nó được sử dụng dé xây dựng các ứng dung web có thé chạy trên đa nền tảng NodeJS cung cấp các thư viện phong phú ở dạng Javascript Module khác nhau giúp đơn giản hóa việc lập trình Các đặc tính của NodeJS (không đồng bộ) cho phép tăng khả năng xử lý tác vụ song song và rút ngắn thời gian trễ giữa các lần yêu cầu từ phía người dùng.
Việc ứng dụng NodeJS vào hệ thống gương thông minh giúp cho không tạo ra quá nhiều thời gian trễ giữa các tác vụ, nhằm đáp ứng yêu cầu của người dùng ngay lập tức NodeJS cũng mang sở hữu rất nhiều mô-đun hữu ích vì đây là một Server cực kỳ phố biến đối với cộng đồng lập trình phía Backend ưa chuộng được gọi là các gói NPM - một tập hợp các thư viện có sẵn chỉ cần cai đặt về từ Internet với một câu lệnh đơn giản là hệ thống NodeJS sẽ tự đồng bộ và có thé sử dung được ngay tức khắc Đây là một số mô-đun cơ bản phô biến được nhóm sử dụng: Socket,
Webserver, Express, MySql, HTTP, GPIO, Ledonoff, [4].
Là một nền tảng cung cấp sức mạnh phần cứng cho các nghiên cứu về máy học và trí tuệ nhân tạo từ Google Dựa trên Jupyter notebook, nó cho phép chạy các dong code Python thông qua trình duyệt, đặc biệt phù hợp với Data analysis, machine learning Nhóm tận dụng dé xây dựng và huấn luyện các model cho việc xử lý ảnh [5].
Lý thuyết về gương hai ChiGU o c.cceccccccccessessessessessssssssessessessessessessessesssesssssesseeseeses 8
Gương hai chiều là loại gương có lớp mặt được làm bang thủy tinh có trang dan phủ một lớp chất liệu mỏng có thé phản xạ ánh sáng Đặc điểm của lớp phủ này có công dụng giống như giấy dán kính một chiều, khi có ánh sáng chiếu vào mặt này thì phần lớn sẽ bị phản xạ lại chỉ có một ít có thể xuyên qua được nhưng bạn rất khó dé cảm nhận được Khi mặt này được xoay về phía chiếu sá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 Và cũng tùy vào mục đích sử dụng mà chất liệu tráng bạc cũng sẽ khác nhau, ví dụ như ở phòng thâm van trong đồn cảnh sát thì có độ phan xạ cao, tù nhân sẽ hoàn toàn không thể nhìn xuyên qua được, hay trong các cửa hàng bán hàng hay kính xe 6 tô thì van có thé nhìn xuyên qua được du rất khó.
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ính nếu trong nhà bật đèn Loại gương này thường dùng trong các cửa kính xe oto, một sô tường kính của các cửa hang,
Hình 5: Hai mặt của gương hai chiều
Công nghệ Electron oo eee eee 2 2 22 21 2291 911 91111121 11 TH HH HH Hiệp 9
Electron là một framework dựa trên nền tảng 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 [3].
Hệ thống Server Node]S ¿- s55 E2E12E1211211571511211711111121111 11111 crk 10
NodeJS là một mã nguồn mở được xây dựng dựa trên nền tảng Javascript V8 Engine, nó được sử dụng dé xây dựng các ứng dung web có thé chạy trên đa nền tảng NodeJS cung cấp các thư viện phong phú ở dạng Javascript Module khác nhau giúp đơn giản hóa việc lập trình Các đặc tính của NodeJS (không đồng bộ) cho phép tăng khả năng xử lý tác vụ song song và rút ngắn thời gian trễ giữa các lần yêu cầu từ phía người dùng.
Việc ứng dụng NodeJS vào hệ thống gương thông minh giúp cho không tạo ra quá nhiều thời gian trễ giữa các tác vụ, nhằm đáp ứng yêu cầu của người dùng ngay lập tức NodeJS cũng mang sở hữu rất nhiều mô-đun hữu ích vì đây là một Server cực kỳ phố biến đối với cộng đồng lập trình phía Backend ưa chuộng được gọi là các gói NPM - một tập hợp các thư viện có sẵn chỉ cần cai đặt về từ Internet với một câu lệnh đơn giản là hệ thống NodeJS sẽ tự đồng bộ và có thé sử dung được ngay tức khắc Đây là một số mô-đun cơ bản phô biến được nhóm sử dụng: Socket,
Webserver, Express, MySql, HTTP, GPIO, Ledonoff, [4].
Là một nền tảng cung cấp sức mạnh phần cứng cho các nghiên cứu về máy học và trí tuệ nhân tạo từ Google Dựa trên Jupyter notebook, nó cho phép chạy các dong code Python thông qua trình duyệt, đặc biệt phù hợp với Data analysis, machine learning Nhóm tận dụng dé xây dựng và huấn luyện các model cho việc xử lý ảnh [5].
CAC PHAN CUNG SU DUNG TRONG HE THONG VA MO HINH
Các phan cứng sử dung trong hệ thống o c.cccccceccesscessesssessesssessesssessessessvessesssesseesees 12
Hình 9: Board mạch trung tâm Raspberry Pi 4
Thông số kĩ thuật: e Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @
1.5GHz. e RAM: 8GB LPDDR4-2400 SDRAM. e Wifi chuẩn 2.4 GHz và 5.0 GHz IEEE 802.1 1ac Bluetooth 5.0, BLE. e Cổng mang Gigabit Ethernet. e 1xUSB 3.0 và 2xUSB 2.0. e 40xGPIO, tương thích với các phiên ban trước. e H6 trợ 2 công ra màn hình chuân Micro HDMI với độ phân giải lên tới
4K. e 1xMIPI DSI. e 1xMIPI CSI. e Cổng AV 4 chan.
12 e H.265 (4kp60 decode), H264 (1080p60 decode, 1080p30 encode). e OpenGL ES 3.0 graphics. e Khe cắm Micro-SD cho hệ điều hành và lưu trữ. e Nguồn điện DC 5V — 3A DC chuẩn USB-C. e 5V DC via GPIO header (minimum 3A*). e Hỗ trợ Power over Ethernet (PoE) (yêu cầu có PoE HAT) [6].
Hình 10: Camera PS3 tích hợp microphone
Day là camera đến từ hãng Sony chuyên dùng dé chơi game cho máy PlayStation
3 hoạt động tốt ngay cả khi thiếu sáng và tích hop microphone đa hướng.
Thông số kĩ thuật: e Hai độ phân giải: 640x480 lên đến 60Hz, và 320x240 lên đến 120Hz ° Ong zoom vat ly: 56 độ (cham đỏ) và 75 độ (chấm xanh) e Microphone: Đa hướng, cho âm thanh 16bit 48KHz e_ Cổng giao tiếp: USB 2.0 e Công suất tiêu thụ: 5V, Tối đa 500mA
Mô hình hệ thống - -2 £ £+E£+EE+EE+EE£EESEEEEEEEEEEEEEEEEEEEEEEEEEEEE1111111 11T cre 14
Các thiết bi ngoại vi( cảm biên nút,micro, )
Hình 11: Sơ đồ tong quan hệ thống
Raspberry sẽ đóng vai trò như bộ não chính điều khiển toàn bộ hệ thống Các thiết bị 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.
Bước 1: Khi có tín hiệu điều khiến từ người dùng, thông qua các thiết bị ngoại vi (như cảm ứng chạm, giọng nói, nhận diện khuôn mặt, tín hiệu từ các thiết bị điện tử khác, ) đến gương thông minh, hay đúng hơn là đến board Raspberry.
Bước 2: Tiếp đến, sever chính là nơi chứa các gói m6-dun, đó 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 phần 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ẽ
14 được tải lên màn hình chính Nhiệm vụ của mô-đun là thực thi nhiệm vụ mà nó đảm nhận, một sô mô-đun khác sẽ truy vân các dữ liệu từ internet như giờ, lich, tin tức,
Raspberry sẽ thu thập thông tin cần thiết đối với yêu cầu người dùng từ server.
Bước 3: Phản hồi lại yêu cầu của người dùng thông qua các thiết bị như: màn hình LCD, loa, đèn led Đối với gương thông minh thì thường là màn hình LCD dé hiển thị những thông tin mà người dùng yêu cau: thời tiết, bóng đá, tin tức,
3.2.2 Cách vận hành của gương thông minh e Đối với sản phâm trong quá trình phát triển
Sau khi tải gói cài đặt hệ thống MagicMirror về từ Magic mirror builder và thực hiện các cài đặt theo hướng dẫn của tác giả, người dùng sẽ truy cập vào bên trong thư mục Magic Mirror bằng cửa số console trên Raspberry và 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 đó hệ thống Electron sẽ khởi động và tải những mô đun đã định nghĩa trong hệ thống lên, tuỳ vào số lượng mô-đun người dùng muốn hiển thị trong file
“config.js” mà hệ thông sẽ hiên thị các mô-đun đó lên màn hình chính. e Đôi với san phâm hoàn thiện/người dùng:
Hệ thống gương thông minh sẽ tự khởi động mà không cần thao tác từ người dùng thông qua trình quản lí vận hành PM2 Nó sẽ giúp người dùng không cần phải quá am hiểu về công nghệ thông tin - hay ở đây là lập trình trên Raspberry vẫn có thé sử dụng được gương thông minh.
3.2.3 Trình quan lí quy trình vận hành 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ằng tải được tích hợp sẵn 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 để tự khởi động gương thông minh và là cách để giữ gương hoạt động trong trường hợp bị lỗi.
3.2.4 Tổng hợp các thư mục chính để vận hành gương thông minh a Magic Mirror Builder Đây là một nền tảng các mô đun mã nguồn mở của gương thông minh Ở đây có rất nhiều mô đun được xây dựng trên nền tảng dành riêng cho gương thông minh. Tất cả mô đun ở đây đều do cộng đồng lớn lập trình viên trên thế giới đóng góp vào và số lượng của các mô đun ngày càng tăng cao Ngoài ra thì đây còn là diễn
16 đàn dé mọi người vào chia sẻ kiến thức cũng như giúp đỡ nhau trong việc xây dựng và phát triển gương thông minh Về cơ bản, MMB chỉ tập trung vào xây dựng hệ thống các mô đun và sử dụng Electron làm môi trường xử lí chính và chỉ được tập trung phát triển trên hệ điều hành Raspbian của Raspberry [7] [8].
Sau khi cài đặt xong môi trường Electron dé có thé chạy gương thông minh, thi nhóm cũng cần lấy về tệp tin hệ thống của gương thông minh, bao gồm những tệp tin như: b \MagicMirror\config\ Đây là file config của gương thông minh dùng dé chỉnh sửa nhanh chóng thông số, chức năng và các cau hình của mô-đun trong hệ thống và giao điện của chúng.
Vì thế đây là một trong những thư mục quan trọng nhất để vận hành và chỉnh sửa gương theo hướng phát trién của em Ngoài ra còn có thê chỉnh sửa trên một web browser có thể vận hành trên bất cứ thiết bị nào Một số thông số thiết lập mặc định trong thư mục này như: port mặc định khi khởi động gương thông minh là 8080, địa chỉ 1p giao diện dé chap nhận kết nối mặc định là localhost dé ngăn việc hiển thị máy chủ web tích hợp sẵn cho các máy trong mạng cục bộ.
Dé hiển thị nó với các máy khác thi dùng thông số 0.0.0.0. c \MagicMirror\js
Thư mục này chứa các file mã nguồn JavaScript bao gồm các mã nguồn dé tao Server, điều chỉnh ngôn ngữ, hiển thị ứng dụng Desktop, tạo kết nối Socket, tải các mô-đun lên màn hình chinh,
Trong thư mục này bao gồm tat cả mô-đun ma nhóm sử dung 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 gương thông minh đóng góp nhằm tạo sự kết nối và phát triển đa dạng hơn cho những người cùng đam mê nghiên cứu sản phâm này. e \default: Day 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. e \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 được cá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 cau hình và tương tác ở phía backend, nếu không có file này hỗ trợ thì tang giao diện Web sẽ không can thiệp được đến tầng phần cứng hay còn gọi là backend mà chỉ có thê debug Smart Mirror như một hệ thống Website bình thường su dụng (F12) hoặc (Ctrl+Shift+]) vì nên tảng của gương là Electron
4S /home/pi/MagicMirror clientonly config fonts installers J8 modules node module serveronly