Bối cảnh và vấn đề nghiên cứu

Trong xu hướng phát triển của công nghệ Internet vạn vật (IoT) và nhà thông minh (Smart Home), gương thông minh được định vị là thiết bị hiển thị và tương tác đa phương tiện tích hợp vào các sinh hoạt thường nhật của người dùng. Thiết bị vừa đảm nhận chức năng phản chiếu hình ảnh như gương soi truyền thống, vừa cung cấp thông tin cập nhật (thời tiết, tin tức, lịch trình sự kiện) và hỗ trợ giải trí (nghe nhạc, đọc báo, điều khiển trợ lý ảo).

Tại thị trường Việt Nam, các giải pháp gương thông minh thương mại (tiêu biểu như Dehome, RoyalMirror) hoặc thiết bị nhập khẩu từ nước ngoài còn rất hạn chế về số lượng, giá thành cao và khó tiếp cận người dùng đại chúng. Về mặt kỹ thuật, các hệ thống nghiên cứu trước đó còn bộc lộ nhiều điểm hạn chế: giao diện tĩnh chưa thân thiện, tính năng lặp lại đơn điệu, thiếu cơ chế nhận diện khuôn mặt để tự động điều chỉnh nội dung theo sở thích cá nhân, chưa tích hợp điều khiển tương tác chạm trực tiếp và thiếu khả năng chia sẻ luồng dữ liệu đa phương tiện từ điện thoại di động.

Để giải quyết những tồn tại này, khóa luận đặt ra các mục tiêu và nhiệm vụ kỹ thuật cụ thể:

  1. Nâng cấp giao diện hiển thị tổng thể của gương thông minh, bảo đảm tính trực quan, thẩm mỹ và cung cấp đầy đủ thông tin tiện ích.
  2. Xây dựng cơ chế đa giao diện tương ứng với hồ sơ (profile) và sở thích của từng cá nhân; tích hợp hệ thống thị giác máy tính nhận diện khuôn mặt để tự động hiển thị giao diện phù hợp với người dùng tương ứng.
  3. Hiện thực hóa tính năng truyền phát và chia sẻ màn hình từ thiết bị di động lên gương thông minh đối với các ứng dụng cụ thể (YouTube và hiển thị trang web).
  4. Phát triển ứng dụng điều khiển từ xa trên điện thoại di động nhằm hỗ trợ người dùng bật/tắt và quản lý các mô-đun của gương linh hoạt.
  5. Tích hợp giải pháp phần cứng màng cảm ứng chạm điện dung xuyên kính trực tiếp lên bề mặt gương hai chiều.

Đối tượng nghiên cứu của đề tài là hệ thống gương thông minh hoàn chỉnh bao gồm kết cấu cơ khí, phần cứng nhúng và hệ thống phần mềm điều khiển đa nhiệm. Phạm vi nghiên cứu giới hạn trong việc tích hợp thực nghiệm trên bo mạch Raspberry Pi 4 Model B (2019), màn hình LCD, camera PS3, khung gỗ lắp ráp gương Acrylic hai chiều; phạm vi dữ liệu nhận diện phục vụ thử nghiệm được xây dựng cho các nhóm đối tượng người dùng cụ thể (các tác giả và người thử nghiệm: Dũng, Trung Anh, An) cùng kịch bản dự phòng dành cho người lạ.

Cơ sở lý thuyết và công nghệ nền tảng

Hệ thống gương thông minh được xây dựng dựa trên sự kết hợp giữa kỹ thuật quang học, kiến trúc máy tính nhúng, khung phần mềm ứng dụng web đa nền tảng và các thuật toán thị giác máy tính xử lý thời gian thực:

  • Nguyên lý gương hai chiều (Two-way Mirror): Mặt gương sử dụng vật liệu tấm Acrylic hai chiều được tráng phủ mỏng một mặt, có tỉ lệ phản xạ ánh sáng đạt từ 80% đến 90%. Khi bố trí màn hình LCD phát sáng phía sau trong một không gian khung tối, ánh sáng từ màn hình sẽ truyền xuyên qua bề mặt gương đến mắt người quan sát; ngược lại, khi màn hình hiển thị nền đen (không phát sáng), bề mặt gương hoạt động tương tự tấm gương phản chiếu quang học thông thường.
  • Phần cứng máy tính nhúng Raspberry Pi: Đề tài sử dụng bo mạch Raspberry Pi 4 Model B (phát hành năm 2019). Nền tảng này vận hành dựa trên hệ thống vi xử lý đơn chip (SoC) Broadcom BCM2835/ARM với kiến trúc tập lệnh RISC 32-bit tiết kiệm năng lượng, tích hợp bộ xử lý đồ họa VideoCore GPU, bộ nhớ RAM, hệ thống cổng nhập xuất tín hiệu ngoại vi GPIO, cổng mạng Ethernet, các cổng kết nối USB và cổng giao tiếp xuất hình ảnh độ nét cao Micro HDMI. Hệ điều hành được triển khai là bản phân phối Linux nhúng (Raspbian/Raspberry Pi OS).
  • Môi trường thời gian chạy Node.js và công nghệ Electron:
    • Electron: Khung ứng dụng mã nguồn mở kết hợp nhân trình duyệt Chromium và môi trường Node.js, cho phép lập trình giao diện đồ họa cho hệ điều hành Linux bằng HTML5, CSS và JavaScript. Electron phân tách rõ hai luồng: tiến trình hiển thị (renderer process) chịu trách nhiệm dựng DOM và tiến trình chính (main/browser process) can thiệp sâu vào hệ thống tệp và phần cứng.
    • Node.js: Môi trường thực thi JavaScript hướng sự kiện, mô hình I/O bất đồng bộ đơn luồng (single-threaded event loop), hỗ trợ quản lý gói thư viện mở rộng thông qua NPM (Node Package Manager).
    • PM2: Trình quản lý tiến trình (process manager) cho môi trường Node.js, giữ cho ứng dụng vận hành liên tục, tự động chạy lại khi khởi động hệ điều hành và xử lý tự phục hồi khi có xung đột phần mềm nhằm hạn chế thời gian chết (downtime).
  • Khung phần mềm MagicMirror² (MagicMirror.js): Nền tảng mã nguồn mở chuyên dụng cho các thiết bị gương thông minh, được Michael Teeuw xây dựng từ năm 2014. Kiến trúc MagicMirror phân tách cấu trúc vận hành thành ba thư mục chính: \MagicMirror\config\ (chứa tệp cấu hình cổng mạng, danh mục mô-đun và tham số), \MagicMirror\js\ (mã nguồn lõi, xử lý socket, điều hướng hiển thị) và \MagicMirror\modules\ (chứa các gói mô-đun chức năng mặc định và mở rộng MMM-*). Mỗi mô-đun bao gồm tệp JavaScript điều khiển hiển thị và tệp trung gian node_helper.js để kết nối tầng dịch vụ backend.
  • Thị giác máy tính và thuật toán nhận diện khuôn mặt:
    • Thư viện OpenCV 4.1 và Dlib: Cung cấp công cụ phát hiện và nhận diện khuôn mặt theo thời gian thực dựa trên mô hình mạng nơ-ron sâu (DNN - Deep Neural Network).
    • Bộ mô tả HOG (Histogram of Oriented Gradients): Giải thuật trích xuất đặc trưng hình thái đối tượng thông qua 5 bước xử lý: chuẩn hóa ảnh, tính toán gradient cường độ theo hai trục x và y, phân chia lưới ô (cells) để bỏ phiếu hướng dốc có trọng số, chuẩn hóa tương phản theo khối (blocks) và gom các lược đồ thành vector đặc trưng (feature vector).
  • Giao thức truyền thông và kết nối mạng:
    • HTTP Protocol và RESTful HTTP API: Giao thức trao đổi bản tin dạng yêu cầu - phản hồi (Request - Response) hỗ trợ cấu trúc dữ liệu JSON/XML, phục vụ truy vấn thông tin ngoại vi và liên kết dịch vụ web.
    • WebSocket: Giao thức truyền dữ liệu hai chiều song công (full-duplex) qua kết nối TCP chuẩn ws:// và bảo mật wss://, cho phép trao đổi chuỗi dữ liệu thời gian thực giữa máy khách và máy chủ với độ trễ thấp.
    • IPC (Inter-Process Communication): Cơ chế trao đổi thông điệp nội bộ giữa tiến trình giao diện web (renderer) và tiến trình dịch vụ nhúng (Node.js helper/backend).

Thiết kế và triển khai hệ thống

Kiến trúc phần cứng và bố trí cơ khí

Kết cấu phần cứng của gương thông minh được thiết kế theo cấu trúc xếp lớp từ ngoài vào trong, cố định chắc chắn bên trong một khung gỗ bảo vệ:

Thứ tự lớp Thành phần phần cứng Thông số kỹ thuật và vai trò theo văn bản
Lớp ngoài cùng Tấm gương quang học Kính Acrylic hai chiều tráng một mặt, tỷ lệ phản chiếu 80% - 90%
Lớp cảm ứng Màng Interactive Touch Film Through Glass 24 inch Công nghệ cảm ứng điện dung xuyên kính, 10 - 20 điểm cảm ứng, tích hợp 2.784 cảm biến, độ dày cảm biến < 200 µm, độ truyền sáng 90%, độ chính xác < 2 mm, tốc độ phản hồi < 2 ms
Lớp hiển thị Màn hình LCD Kết nối nhận tín hiệu hình ảnh từ máy tính nhúng qua cổng cáp chuyển đổi Micro HDMI
Khung cố định Khung gỗ định hình Bao bọc, nâng đỡ tấm gương và tạo hộp kín chứa toàn bộ mạch điều khiển điện tử bên trong
Tầng xử lý trung tâm Bo mạch Raspberry Pi 4 Model B (2019) SoC xử lý ARM Broadcom, cổng giao tiếp GPIO, các cổng USB kết nối thiết bị ngoại vi
Thiết bị thu nhận Camera PS3 Eye Tích hợp cụm microphone đa hướng thu âm giọng nói, kết nối qua cổng USB
Khối nguồn và tản nhiệt Giắc cắm DC, Quạt làm mát (Fan), Loa (Speaker) Mạch nguồn kết nối qua header CONN-SIL, quạt làm mát hạ nhiệt CPU và loa phát âm thanh

Cấu trúc lập trình và vòng đời mô-đun phần mềm

Hệ thống phần mềm được phát triển dựa trên việc lập trình mở rộng các mô-đun MagicMirror thông qua hàm khởi tạo Module.register("tên_mô_đun", { ... }). Mỗi mô-đun được định danh qua các thuộc tính: this.name, this.identifier, this.hidden, biến đối tượng cấu hình defaults và khai báo ràng buộc phiên bản requiresVersion.

Vòng đời thực thi của một mô-đun tuân theo chuỗi phương thức nội tại:

  • init(): Khởi tạo dữ liệu nội bộ ban đầu khi nạp mô-đun vào bộ nhớ.
  • loaded(callback): Gọi lại khi toàn bộ tệp tài nguyên của mô-đun đã tải xong.
  • start(): Thực thi khi hệ thống hoàn tất quá trình kiểm tra cấu hình và sẵn sàng hoạt động.
  • getDom(): Dựng và trả về đối tượng phần tử giao diện HTML DOM của mô-đun hiển thị trên màn hình.
  • getHeader(): Trả về chuỗi tiêu đề được định nghĩa trong cấu hình hiển thị.
  • notificationReceived(notification, payload, sender): Nhận thông điệp đồng bộ được phát từ lõi MagicMirror hoặc từ các mô-đun khác trong hệ thống.
  • sendNotification(notification, payload): Phát một thông báo kèm dữ liệu payload tới tất cả các mô-đun đang hoạt động.
  • updateDom(speed): Yêu cầu nhân giao diện vẽ lại đối tượng DOM khi có dữ liệu mới cập nhật.
  • suspend() / resume(): Tạm dừng hoặc kích hoạt lại bộ đếm thời gian cập nhật khi mô-đun bị ẩn hoặc hiển thị lại thông qua cơ chế khóa hiển thị (visibility locking).
Module.register("MMM-CustomModule", {
    defaults: { text: "Hello World" },
    start: function() {
        Log.info("Mô-đun bắt đầu khởi chạy: " + this.name);
    },
    getDom: function() {
        var wrapper = document.createElement("div");
        wrapper.innerHTML = this.config.text;
        return wrapper;
    },
    notificationReceived: function(notification, payload, sender) {
        if (notification === "CHANGE_PROFILE") {
            this.updateDom();
        }
    }
});

Thiết kế các mô-đun chức năng cải tiến

  1. Mô-đun Tin tức (Newsfeed nâng cấp): Mô-đun nguyên bản chỉ hỗ trợ một luồng tin tĩnh duy nhất. Nhóm tác giả tái thiết kế mô hình hỗ trợ đa thực thể (multi-instance), phân chia nguồn cấp dữ liệu theo từng nhóm người dùng (Class 1, Class 2, Class 3 và Class mặc định). Trên giao diện hiển thị, nhóm bổ sung thêm một nút bấm cho phép chuyển hướng sang trang web để đọc nội dung toàn văn của bài báo và hai nút điều hướng cảm ứng hỗ trợ lật xem tin tức kế tiếp hoặc quay lại tin trước đó.
  2. Mô-đun Phát nhạc (MP3 Player nâng cấp): Hệ thống thiết lập đường dẫn đến các thư mục lưu trữ tập tin âm thanh riêng biệt tương ứng với hồ sơ sở thích của từng người dùng. Thay vì chỉ tự động phát nhạc ngẫu nhiên và không có bộ điều khiển như mô-đun mặc định, nhóm đã lập trình bổ sung giao diện đồ họa tích hợp 4 nút điều khiển cảm ứng: chuyển bài tiếp theo, quay lại bài trước, phát nhạc (Play) và tạm dừng/dừng phát (Pause/Stop).
  3. Mô-đun Menu chức năng và giao diện chạm: Xây dựng thanh công cụ điều hướng tập trung các biểu tượng chức năng con của hệ thống, bổ sung các hiệu ứng đồ họa tương tác (hover effect) khi ngón tay người dùng tiếp xúc với bề mặt màng cảm ứng điện dung.
  4. Mô-đun Truyền phát đa phương tiện từ thiết bị di động:
    • MMM-Screencast: Nhận diện và truyền luồng video từ ứng dụng YouTube trên điện thoại thông minh sang gương thông qua giao tiếp mạng nội bộ.
    • MMM-SmartwebDisplay: Đồng bộ và hiển thị trực tiếp giao diện các trang web đang duyệt trên thiết bị di động lên khung màn hình gương.
  5. Mô-đun Phân quyền và chuyển đổi kịch bản người dùng (MMM-ProfileSwitcher): Đóng vai trò điều phối viên trung tâm, kết hợp chặt chẽ với mô-đun nhận diện khuôn mặt MMM-Face-Reco-DNN. Dựa trên kết quả định danh người dùng do camera cung cấp, mô-đun gửi tín hiệu ẩn/hiện có chọn lọc các khối thông tin trên màn hình, thiết lập không gian giao diện cá nhân hóa riêng biệt.
  6. Ứng dụng điều khiển từ xa (MMM-Remote / MMM-Remote-Control): Cung cấp giao diện ứng dụng nền web trên thiết bị di động, giao tiếp với gương qua giao thức HTTP API và WebSocket để gửi các câu lệnh tắt/bật màn hình, khởi động lại hệ thống, chọn bài hát hoặc ẩn hiện nhanh các mô-đun mà không cần chạm trực tiếp vào gương.

Quy trình giải thuật nhận diện khuôn mặt (Dlib HOG)

Quy trình nhận diện người dùng và kích hoạt kịch bản điều khiển giao diện được thực thi qua 7 bước:

  • Bước 1: Khởi tạo mô-đun, mở luồng thu nhận khung hình thời gian thực từ camera PS3 Eye.
  • Bước 2: Áp dụng bộ mô tả HOG để quét và xác định chính xác tọa độ vùng chứa khuôn mặt người đứng trước gương.
  • Bước 3: Cắt vùng ảnh khuôn mặt (crop face) và chuẩn hóa kích thước đầu vào theo tiêu chuẩn mạng nơ-ron huấn luyện.
  • Bước 4: Đưa ma trận ảnh qua mô hình mạng sâu DNN của OpenCV 4.1 để trích xuất thành một vector đặc trưng toán học đại diện cho khuôn mặt.
  • Bước 5: Tính toán độ tương đồng giữa vector đặc trưng vừa trích xuất với cơ sở dữ liệu mẫu đã lưu. Mỗi người dùng hợp lệ trong hệ thống được thu thập trước 5 bộ đặc trưng tương ứng với 5 tư thế khuôn mặt: góc nghiêng trái, góc nghiêng phải, hơi nghiêng lên trên, hơi nghiêng xuống dưới và góc chụp trực diện.
  • Bước 6: Đánh giá điều kiện so khớp: Định danh (ID) được công nhận phải là ID có độ tương đồng toán học cao nhất và chỉ số này bắt buộc phải vượt qua ngưỡng tin cậy xác thực đã được quy định trước. Nếu giá trị cao nhất vẫn nằm dưới ngưỡng, hệ thống kết luận xác thực thất bại.
  • Bước 7: Trả về ID người dùng tương ứng (Dũng, Trung Anh, An) để kích hoạt hồ sơ cá nhân, hoặc chuyển sang chế độ người lạ (Guest/Default Profile) nếu không tìm thấy dữ liệu khớp, sau đó quay lại trạng thái chờ của vòng lặp tiếp theo.

Nội dung chính theo từng chương

Chương 1: Giới thiệu tổng quan về gương thông minh

Chương này tổng kết nguồn gốc lịch sử của các hệ thống gương thông minh trên thế giới, bắt đầu từ các dự án mã nguồn mở ban đầu như HomeMirror và nền tảng Magic Mirror do Michael Teeuw phát triển tại Hà Lan năm 2014, từ đó hình thành các hệ sinh thái phần mềm như MirrorOS hay Magic Mirror Builder. Tác giả khảo sát các dòng gương thương mại tiên tiến có tích hợp cảm biến phân tích chỉ số cơ thể, gợi ý thời trang và chăm sóc sức khỏe.

Đối với thị trường Việt Nam, chương 1 phân tích các nỗ lực nghiên cứu chế tạo của một số đơn vị (Dehome, RoyalMirror) cùng việc ứng dụng bước đầu tại các khách sạn, khu nghỉ dưỡng cao cấp; chỉ rõ rào cản giá thành cao do phụ thuộc linh kiện nhập ngoại và thiếu hệ điều hành tối ưu riêng. Trên cơ sở đó, tác giả xác lập 5 mục tiêu cải tiến mang tính kỹ thuật của đề tài: hoàn thiện giao diện đa thông tin thân thiện, đề xuất giao diện cá nhân hóa theo nhận diện khuôn mặt, truyền phát video và web từ di động, xây dựng app điều khiển từ xa và tích hợp màng cảm ứng chạm.

Chương 2: Cơ sở lý thuyết

Chương 2 làm rõ toàn bộ nền tảng lý thuyết vật lý, kiến trúc phần cứng máy tính và công nghệ phần mềm được ứng dụng trong đề tài:

  • Phân tích tính chất quang học của kính Acrylic hai chiều và sơ đồ phác thảo bố trí cơ khí xếp lớp các linh kiện phần cứng (tấm gương ngoài, khung gỗ, màn hình LCD, Raspberry Pi, loa và cảm biến ngoại vi).
  • Trình bày kiến trúc phần cứng máy tính nhúng họ ARM của Raspberry Pi, quá trình phát triển các phiên bản bo mạch từ Model A (2013) qua các thế hệ B, B+ đến Raspberry Pi 3 Model B+ (2019) và Raspberry Pi 4 Model B; phân tích chi tiết các khối chức năng CPU, VideoCore GPU, bộ nhớ RAM, giao tiếp mạng Ethernet 10/100 Mbit/s và cơ chế đồng bộ thời gian mạng qua máy chủ NTP.
  • Khảo sát các nền tảng phần mềm nền tảng: khung công nghệ Electron, trình quản lý tiến trình PM2, môi trường thực thi bất đồng bộ Node.js và hệ thống quản lý gói NPM.
  • Phân tích chi tiết cấu trúc thư mục của khung MagicMirror (config, js, modules, tệp điều khiển .js và bộ trợ giúp backend node_helper.js), cách khởi động bằng lệnh npm start trên cửa sổ dòng lệnh Linux.
  • Trình bày thông số kỹ thuật của màng cảm ứng điện dung xuyên kính 24 inch (Interactive Touch Film Through Glass).
  • Làm rõ cấu trúc nhận diện khuôn mặt với mô-đun MMM-Face-Reco-DNN, OpenCV 4.1 và thư viện Dlib; chi tiết hóa 5 bước trích xuất đặc trưng của giải thuật HOG và quy trình nhận diện 7 bước.
  • Phân tích các giao thức kết nối mạng: HTTP/HTTP API, cơ chế truyền thông hai chiều WebSocket (ws://, wss://) và kỹ thuật giao tiếp liên tiến trình IPC giữa các phân hệ phần mềm.

Chương 3: Phân tích và thiết kế hệ thống

Chương 3 trình bày chi tiết các bước thiết kế kỹ thuật từ mạch điện phần cứng đến cấu trúc logic của các mô-đun phần mềm:

  • Trình bày sơ đồ nguyên lý mạch điện (schematic) phân phối nguồn và ra chân kết nối ngoại vi từ Raspberry Pi gồm: khối cấp nguồn Jack DC, khối kết nối quạt tản nhiệt (FAN), loa âm thanh (SPEAKER) và các chân tín hiệu dự phòng (CONN-SIL).
  • Phân tích cơ chế hướng đối tượng trong phát triển mô-đun MagicMirror: phương thức đăng ký Module.register(), các thuộc tính lõi (this.name, this.identifier, this.hidden, this.config, defaults, requiresVersion) và các phương thức giao tiếp (init, loaded, start, getDom, getHeader, notificationReceived, suspend, resume, updateDom, sendNotification, cùng cơ chế visibility locking).
  • Trình bày kiến trúc thiết kế chi tiết cho từng mô-đun nhóm cải tiến:
    • Mô-đun Newsfeed: Thiết kế mô hình phân lớp tin tức đa tầng theo người dùng, giao diện bổ sung nút đọc bài viết gốc trên trình duyệt và các nút bấm cảm ứng chuyển tin tức.
    • Mô-đun Phát nhạc (MP3): Thiết lập logic phân nhánh thư mục nhạc theo người dùng nhận diện, thiết kế thanh điều khiển gồm 4 nút bấm thao tác trực quan.
    • Mô-đun Menu chức năng: Thiết lập hệ thống nút bấm dạng lưới, tích hợp hiệu ứng thị giác phản hồi trạng thái chạm.
    • Mô-đun Truyền phát di động: Sơ đồ luồng dữ liệu cho MMM-Screencast (nhận luồng YouTube) và MMM-SmartwebDisplay (chia sẻ giao diện web điện thoại).
    • Mô-đun Quản lý kịch bản giao diện: Sơ đồ khối hoạt động của MMM-ProfileSwitcher, phân phối sự kiện cập nhật giao diện khi nhận tín hiệu từ mô hình nhận diện khuôn mặt.
    • Mô-đun Điều khiển từ xa: Thiết kế giao diện app MMM-Remote, thiết lập các bảng thông số kết nối IP và tạo danh mục câu lệnh điều khiển hệ thống tùy biến.

Chương 4: Kết quả và thực nghiệm

Chương 4 công bố kết quả hoàn thiện phần cứng và các dữ liệu kiểm nghiệm thực tế của hệ thống:

  • Trình bày hình ảnh và thông số bố trí phần cứng thực tế bên trong khung gương: bo mạch Raspberry Pi 4 Model B (2019), Camera PS3 Eye tích hợp mic thu âm, màng cảm ứng điện dung tích hợp màn hình hiển thị.
  • Đánh giá thời gian tải hệ thống: sau khi thực thi lệnh npm start, thời gian chờ nạp toàn bộ các mô-đun lên màn hình gương là khoảng 15 giây.
  • Thử nghiệm thực tế các kịch bản chuyển đổi giao diện theo nhận diện khuôn mặt:
    • Kịch bản người dùng 1 (Giao diện của Dũng): Hệ thống nhận diện chính xác khuôn mặt, tải danh mục tin tức và thư mục bài hát theo sở thích của tác giả Dũng.
    • Kịch bản người dùng 2 (Giao diện của Trung Anh): Chuyển đổi thành công sang cấu hình thông tin và nội dung đa phương tiện của tác giả Trung Anh.
    • Kịch bản người dùng 3 (Giao diện của An): Nhận diện và thiết lập giao diện riêng của người dùng An.
    • Kịch bản người lạ (Giao diện mặc định): Khi người đứng trước gương không có dữ liệu mẫu trong hệ thống, gương hiển thị giao diện cơ bản với luồng tin tức và âm nhạc mặc định.
  • Kết quả kiểm tra tính năng chia sẻ màn hình từ thiết bị di động: hiển thị luồng video YouTube mượt mà trên gương thông qua MMM-Screencast và trình chiếu nội dung trang web đồng bộ từ điện thoại thông minh qua MMM-SmartwebDisplay.
  • Kết quả thử nghiệm thao tác cảm ứng chạm: người dùng thực hiện thành công các thao tác chạm trên bề mặt kính để đọc báo, chuyển tin và điều khiển phát nhạc.

Chương 5: Kết luận và hướng phát triển

Chương 5 tóm tắt các kết quả đạt được đối chiếu với mục tiêu ban đầu: chế tạo thành công mẫu thử nghiệm gương thông minh hoàn chỉnh về phần cứng lẫn phần mềm; xây dựng được hệ thống nhận diện khuôn mặt để tự động chuyển đổi kịch bản hiển thị giao diện theo người dùng; hoàn thành các mô-đun chia sẻ màn hình YouTube/web, ứng dụng điều khiển qua điện thoại và màng cảm ứng chạm. Tác giả đồng thời nêu ra các hạn chế và đề xuất hướng nghiên cứu tiếp theo để hoàn thiện sản phẩm.

Kết quả và đóng góp

Kết quả kỹ thuật thực nghiệm

Khóa luận đã hoàn thành việc chế tạo mô hình thực nghiệm gương thông minh với các thông số kỹ thuật được xác nhận trong văn bản:

Hạng mục kiểm nghiệm Kết quả và thông số kỹ thuật ghi nhận trong văn bản
Tấm nền gương hiển thị Kính Acrylic hai chiều, tỷ lệ phản xạ ánh sáng đạt từ 80% đến 90%
Khả năng tương tác chạm Màng cảm ứng điện dung 24 inch, hỗ trợ 10 - 20 điểm cảm ứng đồng thời, độ chính xác < 2 mm, tốc độ phản hồi < 2 ms, độ truyền sáng qua kính 90%
Tốc độ khởi động phần mềm Thời gian nạp toàn bộ các mô-đun hệ thống qua lệnh npm start đạt mức xấp xỉ 15 giây
Dữ liệu nhận diện khuôn mặt Thu thập 5 góc chụp đặc trưng/người (chính diện, trái, phải, nghiêng trên, nghiêng dưới); thuật toán Dlib HOG kết hợp OpenCV 4.1 DNN nhận diện chính xác và phân loại các profile thử nghiệm
Kịch bản giao diện kiểm thử Thực nghiệm thành công 4 kịch bản giao diện độc lập: Giao diện của Dũng, Giao diện của Trung Anh, Giao diện của An và Giao diện mặc định cho người lạ
Truyền phát đa phương tiện Kết nối truyền video trực tiếp từ ứng dụng YouTube di động qua MMM-Screencast và truyền tải trang web qua MMM-SmartwebDisplay ổn định trên mạng nội bộ

Đóng góp kỹ thuật của đề tài

So với các hệ thống gương thông minh đã được nghiên cứu trước đó trong phạm vi khoa và trên thị trường, đề tài đạt được các đóng góp cụ thể do tác giả tự nêu:

  • Khắc phục tình trạng giao diện nghèo nàn, thiếu tương tác bằng cách thiết kế lại hệ thống giao diện trực quan, thân thiện; bổ sung các nút bấm điều khiển cảm ứng trực tiếp trên các mô-đun tin tức (Newsfeed) và phát nhạc (MP3).
  • Hiện thực hóa thành công cơ chế cá nhân hóa giao diện người dùng dựa trên thị giác máy tính: tự động nhận dạng danh tính người đứng trước gương bằng thuật toán Dlib HOG và OpenCV DNN, từ đó tự động nạp hồ sơ hiển thị, nguồn tin tức và danh sách nhạc phù hợp với từng cá nhân, đồng thời duy trì kịch bản an toàn cho người lạ.
  • Mở rộng phương thức tương tác đa kênh cho gương thông minh thông qua việc tích hợp màng cảm ứng điện dung xuyên kính, bổ sung tính năng chia sẻ màn hình không dây từ thiết bị di động (YouTube, web) và xây dựng ứng dụng điều khiển từ xa qua mạng cục bộ.

Hạn chế và hướng nghiên cứu tiếp

Khóa luận thẳng thắn ghi nhận một số điểm hạn chế kỹ thuật trong quá trình thực hiện:

  • Phần mạch điện phần cứng chưa được thiết kế thành bo mạch chuyên dụng riêng biệt mà chủ yếu kế thừa từ các đề tài nghiên cứu trước đó của khoa, dừng lại ở mức vẽ sơ đồ schematic nối dây ra chân cấp nguồn và tín hiệu đơn giản cho quạt tản nhiệt, loa và cảm biến ngoại vi.
  • Tính năng điều khiển bằng giọng nói mặc dù đã được định hướng trong phần mở đầu và phần cứng đã trang bị cụm microphone tích hợp trên camera PS3 Eye, nhưng trong phạm vi nội dung thực nghiệm của khóa luận vẫn chưa được hiện thực hóa và đánh giá chi tiết.
  • Về phần mềm, việc thực thi đồng thời nhiều tiến trình nặng trên bo mạch Raspberry Pi (nhân Chromium của Electron, các tác vụ tính toán vector khuôn mặt của OpenCV và Dlib, cùng hệ thống các mô-đun web) đòi hỏi phải tiếp tục tối ưu hóa việc phân bổ tài nguyên CPU và bộ nhớ RAM để đảm bảo tính ổn định lâu dài.

Các hướng phát triển tiếp theo được nhóm tác giả xác định:

  • Nâng cấp và tối ưu hóa thuật toán nhận diện khuôn mặt để rút ngắn hơn nữa thời gian xử lý và giảm tải cho vi xử lý nhúng.
  • Nghiên cứu hiện thực hóa hoàn chỉnh mô-đun nhận dạng và điều khiển bằng giọng nói tiếng Việt cho trợ lý ảo trên gương.
  • Thiết kế mạch in phần cứng (PCB) tích hợp đồng bộ, tối ưu hóa kích thước khung viền cơ khí và mở rộng kết nối với hệ sinh thái thiết bị thông minh trong nhà (Smart Home IoT).

Giá trị tham khảo

Khóa luận là tài liệu tham khảo kỹ thuật hữu ích đối với:

  • Sinh viên thuộc các chuyên ngành Kỹ thuật Máy tính, Công nghệ Thông tin, Kỹ thuật Điều khiển & Tự động hóa, Hệ thống Thông tin đang triển khai các đồ án chuyên ngành hoặc khóa luận tốt nghiệp về hệ thống nhúng, thiết bị tương tác người - máy (HMI) và ứng dụng IoT.
  • Các nhóm nghiên cứu hoặc kỹ sư phần mềm muốn tìm hiểu kiến trúc mở rộng của khung MagicMirror², phương pháp lập trình mô-đun JavaScript tương tác giữa tiến trình giao diện và tiến trình nền (Node.js helper) qua giao thức IPC và WebSocket.

Các nội dung có giá trị tham chiếu thực tiễn cao bao gồm:

  • Quy trình lắp đặt cơ khí và kết hợp vật liệu quang học (tấm gương Acrylic hai chiều tỷ lệ phản xạ 80% - 90%) với màng cảm ứng điện dung 24 inch dán xuyên kính.
  • Cấu trúc chuẩn của một mô-đun MagicMirror (khai báo vòng đời hàm, cơ chế xử lý thông điệp notificationReceived, updateDom).
  • Phương pháp xây dựng tập dữ liệu đặc trưng khuôn mặt 5 góc chụp và quy trình so khớp vector đặc trưng bằng Dlib HOG trên nền tảng máy tính nhúng Linux.

Câu hỏi thường gặp

1. Khóa luận sử dụng thuật toán và công nghệ nào để thực hiện nhận diện khuôn mặt người dùng trên gương?
Hệ thống sử dụng mô-đun MMM-Face-Reco-DNN tích hợp thư viện OpenCV 4.1 và Dlib. Quá trình phát hiện vị trí khuôn mặt dựa trên bộ mô tả HOG (Histogram of Oriented Gradients), sau đó mô hình mạng nơ-ron sâu (DNN) trích xuất thành vector đặc trưng để so sánh độ tương đồng toán học với cơ sở dữ liệu mẫu đã được huấn luyện trước.

2. Cơ chế cá nhân hóa giao diện theo kịch bản người dùng (user-based access control) hoạt động như thế nào?
Mỗi người dùng hợp lệ được thu thập trước 5 bộ đặc trưng khuôn mặt ở 5 góc chụp khác nhau. Khi camera quét được khuôn mặt đạt độ tương đồng cao nhất và vượt ngưỡng quy định, mô-đun MMM-ProfileSwitcher sẽ điều phối việc ẩn/hiện các thành phần giao diện: tự động nạp nguồn tin tức (Newsfeed) theo sở thích và trỏ đường dẫn tới thư mục bài hát (MP3) riêng của người đó (ví dụ: giao diện của Dũng, Trung Anh, An). Nếu nhận diện thất bại hoặc là người lạ, hệ thống sẽ kích hoạt giao diện mặc định.

3. Màng cảm ứng tích hợp trong gương có những đặc tính kỹ thuật cơ bản nào?
Nhóm tác giả sử dụng màng Interactive Touch Film Through Glass kích thước 24 inch công nghệ cảm ứng điện dung xuyên kính. Màng có độ dày cảm biến dưới 200 µm, tỷ lệ truyền ánh sáng 90%, tích hợp 2.784 cảm biến, hỗ trợ từ 10 đến 20 điểm cảm ứng đa điểm, độ chính xác định vị dưới 2 mm và tốc độ phản hồi dưới 2 ms.

4. Hai mô-đun Tin tức (Newsfeed) và Phát nhạc (MP3) đã được nhóm tác giả cải tiến những điểm cụ thể nào so với bản gốc?
Ở mô-đun Tin tức, nhóm thiết kế hỗ trợ đa thực thể (multi-instance) phân loại nguồn báo theo sở thích từng người dùng, bổ sung nút bấm chuyển sang trang web để đọc toàn văn bài báo và hai nút điều hướng lật tin trước/sau. Ở mô-đun Phát nhạc, nhóm phân chia thư mục bài hát theo từng hồ sơ người dùng và thiết kế thêm giao diện đồ họa gồm 4 nút điều khiển cảm ứng (chọn bài, phát nhạc, tạm dừng) thay vì chỉ tự động phát nhạc không thể can thiệp như phiên bản mặc định.

5. Nền tảng phần mềm của hệ thống gương thông minh được xây dựng trên những công nghệ chủ chốt nào?
Hệ thống phần mềm chạy trên hệ điều hành Linux (Raspbian) của Raspberry Pi 4 Model B, sử dụng khung MagicMirror xây dựng trên nền tảng công nghệ Electron (nhân Chromium và môi trường thời gian chạy Node.js). Trình quản lý tiến trình PM2 đảm nhận việc duy trì ứng dụng chạy liên tục và tự khởi động lại khi có lỗi. Việc trao đổi dữ liệu giữa các tiến trình và ứng dụng ngoại vi được thực hiện qua giao thức IPC, RESTful HTTP API và WebSocket.

Kết luận

Khóa luận tốt nghiệp "Thiết kế gương thông minh điều khiển theo kịch bản người dùng" của sinh viên Trương Nguyễn Trung Anh và Nguyễn Chí Dũng đã hiện thực hóa thành công một sản phẩm phần cứng - phần mềm nhúng hoàn chỉnh trên nền tảng Raspberry Pi 4 kết hợp màn hình cảm ứng điện dung và gương Acrylic hai chiều. Đề tài ghi nhận những đóng góp thiết thực trong việc nâng cấp các mô-đun giao diện của khung MagicMirror, tích hợp giải thuật thị giác máy tính Dlib HOG để phân quyền và cá nhân hóa trải nghiệm người dùng, đồng thời mở rộng các tiện ích điều khiển qua ứng dụng di động và chia sẻ luồng dữ liệu đa phương tiện. Công trình là tài liệu kỹ thuật có giá trị tham khảo rõ ràng và toàn diện cho các nghiên cứu phát triển thiết bị IoT thông minh phục vụ đời sống gia đình.