Bối cảnh và vấn đề nghiên cứu
Trong môi trường giáo dục đại học, việc tiếp nhận và giải đáp các thắc mắc của sinh viên đóng vai trò quan trọng trong việc hỗ trợ học tập và sinh hoạt học đường. Theo tác giả Nguyễn Tuấn Thanh trong đồ án tốt nghiệp ngành Công nghệ Kỹ thuật Điều khiển và Tự động hóa tại Trường Đại học Sư phạm Kỹ thuật TP.HCM (HCMUTE), các trường đại học thường áp dụng hai hình thức hỗ trợ sinh viên truyền thống:
- Tư vấn trực tiếp với ban tư vấn: Sinh viên đến gặp trực tiếp đội ngũ chuyên trách để trao đổi. Hình thức này có ưu điểm là giao tiếp tập trung và câu trả lời chính xác, nhưng bộc lộ nhược điểm lớn là sinh viên phải xếp hàng chờ đợi lâu, khung giờ tư vấn cố định thiếu linh hoạt và số lượng chuyên viên tư vấn bị giới hạn trong khi lượng sinh viên có nhu cầu rất đông.
- Tư vấn trực tuyến qua diễn đàn/tin nhắn: Nhà trường bố trí nhân sự trực và trả lời tin nhắn trên các diễn đàn sinh viên. Hình thức này giúp sinh viên không cần đến trường nhưng thời gian phản hồi thường kéo dài và trường phải tiêu tốn nhiều nguồn lực nhân sự để vận hành.
Bên cạnh đó, bối cảnh đại dịch Covid-19 đã làm nảy sinh thêm các rào cản trong giao tiếp trực tiếp giữa người với người. Nhằm khắc phục những hạn chế về thời gian chờ, sự thiếu hụt nhân lực và đảm bảo khoảng cách an toàn, đề tài "Service robot for students based on computer vision and natural language processing" (Robot dịch vụ hỗ trợ sinh viên dựa trên thị giác máy và xử lý ngôn ngữ tự nhiên) được đề xuất.
Mục tiêu chính của đề tài là thiết kế và xây dựng một robot dịch vụ có khả năng tự động giải đáp thắc mắc của sinh viên thông qua hai chế độ tương tác: trò chuyện bằng giọng nói (talking) và nhắn tin qua hộp thoại (chatting), kết hợp các tính năng thị giác máy tính như nhận dạng danh tính sinh viên và phát hiện, cảnh báo người không đeo khẩu trang.
Đề tài xác định 9 nhiệm vụ nghiên cứu cụ thể:
- Thu thập các câu hỏi thắc mắc thực tế từ sinh viên trong trường đại học.
- Khảo sát các phương pháp phát hiện và nhận diện khuôn mặt.
- Khảo sát các phương pháp nhận dạng và xử lý tiếng nói.
- Nghiên cứu tổng quan về trợ lý ảo (virtual assistant) và chatbot.
- Nghiên cứu các phương pháp xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP).
- Viết đề cương tổng hợp yêu cầu, thiết kế sơ đồ khối hệ thống và giải thích chức năng từng khối.
- Thiết kế giao diện phần mềm tương tác với người dùng.
- Thử nghiệm thực nghiệm, đánh giá và hiệu chỉnh toàn bộ hệ thống.
- Viết báo cáo đồ án tốt nghiệp.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng: Mô hình robot dịch vụ hỗ trợ sinh viên tích hợp thị giác máy tính và xử lý ngôn ngữ tự nhiên.
- Phạm vi: Ứng dụng giải đáp các câu hỏi thường gặp của sinh viên trong khuôn viên trường đại học bằng tiếng Việt trên giao diện phần mềm; độ chính xác của câu trả lời phụ thuộc vào tập dữ liệu thu thập; hệ thống hoạt động tối ưu trong môi trường ít tiếng ồn.
Cơ sở lý thuyết và phương pháp
Đồ án kết hợp nghiên cứu lý thuyết tổng quan về công nghệ robot dịch vụ, thị giác máy tính và xử lý ngôn ngữ tự nhiên với phương pháp thực nghiệm xây dựng mô hình phần mềm.
+-------------------------------------------------------------------------------+
| CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ |
+-----------------------------+-------------------------------------------------+
| Lĩnh vực | Công nghệ / Thuật toán sử dụng |
+-----------------------------+-------------------------------------------------+
| Khảo sát robot dịch vụ | Mô hình robot Pepper (SoftBank Robotics) |
| Không gian màu | RGB (24-bit), HSV (Hue-Saturation-Value) |
| Phát hiện khuôn mặt | MediaPipe Face Detection (BlazeFace, SSD) |
| Trích xuất khuôn mặt | Haar Cascade Classifier (Viola-Jones, 2001) |
| Nhận diện khuôn mặt | Local Binary Patterns Histograms (LBPH, 1994) |
| Phát hiện mốc khuôn mặt | Dlib 68 Face Landmarks (iBUG 300-W dataset) |
| Phân loại / Học máy | Support Vector Machine (SVM), HOG descriptor |
| Nhận dạng giọng nói (STT) | Thư viện SpeechRecognition, Google Speech to |
| | Text API |
| Chuyển văn bản thành giọng | pyttsx3 (offline), gTTS (Google Text-to-Speech) |
| nói (TTS) | |
| Xử lý ngôn ngữ tự nhiên | NLTK (Tokenization, Stemming, Bag-of-Words) |
| Mô hình mạng nơ-ron Chatbot | Feed Forward Neural Network (Multi-layer |
| | Perceptron, PyTorch) |
| Xử lý và tính toán dữ liệu | Pandas, NumPy, OpenCV |
+-----------------------------+-------------------------------------------------+
Lý thuyết thị giác máy tính
- Không gian màu: Không gian màu RGB biểu diễn hình ảnh bằng 3 kênh màu (mỗi kênh 8 bit, tổng cộng 24 bit tương ứng 16.581.375 màu). Không gian màu HSV biểu diễn màu sắc dựa trên 3 thuộc tính: Hue (sắc độ, từ 0 đến 360), Saturation (độ bão hòa, từ 0 đến 255) và Value (độ sáng, từ 0 đến 255).
- Thuật toán Haar Cascade: Phương pháp phát hiện đối tượng dựa trên các đặc trưng hình chữ nhật do Paul Viola và Michael Jones đề xuất năm 2001. Thuật toán sử dụng kỹ thuật ảnh tích phân (integral image) để tính toán nhanh tổng cường độ điểm ảnh chỉ với 4 phép truy xuất, kết hợp cấu trúc phân tầng (cascade) để loại bỏ nhanh các vùng không chứa khuôn mặt.
- Thuật toán LBPH (Local Binary Patterns Histograms): Toán tử kết cấu gán nhãn cho các điểm ảnh bằng cách so sánh giá trị lân cận với điểm ảnh trung tâm trong cửa sổ trượt 3x3 để tạo ra số nhị phân, sau đó chuyển thành số thập phân. Ảnh được chia thành lưới các ô nhỏ (mặc định $8 \times 8$), trích xuất biểu đồ tần suất (histogram) 256 mức cho từng ô và nối lại thành vector đặc trưng có kích thước $8 \times 8 \times 256 = 16.384$ chiều. Khoảng cách Euclidean giữa các vector histogram được dùng để tính toán độ tương đồng; khoảng cách càng nhỏ thì độ tin cậy nhận diện càng cao.
- Phát hiện điểm mốc khuôn mặt (Face Landmarks): Sử dụng mô hình Dlib Frontal Face Detector (kết hợp bộ mô tả HOG và Linear SVM) để xác định 68 điểm mốc đặc trưng trên khuôn mặt (mắt, mũi, miệng, viền mặt) được huấn luyện trên tập dữ liệu iBUG 300-W.
Lý thuyết nhận dạng tiếng nói và xử lý ngôn ngữ tự nhiên
- Nhận dạng giọng nói: Tín hiệu âm thanh analog từ microphone được số hóa qua các bước lấy mẫu, lượng tử hóa và mã hóa đặc trưng. Thư viện
SpeechRecognition trong Python kết hợp với Google Speech to Text API được sử dụng để chuyển đổi âm thanh tiếng Việt sang văn bản (Speech-to-Text).
- Tổng hợp giọng nói: Đồ án phân tích hai giải pháp là
gTTS (chuyển đổi qua Google Translate API, phụ thuộc kết nối Internet) và pyttsx3 (hoạt động hoàn toàn offline, tốc độ phản hồi nhanh và ổn định).
- Mô hình Chatbot học sâu: Sử dụng mạng nơ-ron truyền thẳng (Feed Forward Neural Network) được xây dựng trên nền tảng PyTorch. Quy trình tiền xử lý NLP bao gồm:
- Tokenization: Phân tách chuỗi văn bản câu hỏi thành các từ đơn và ký hiệu riêng biệt.
- Stemming & Normalization: Đưa từ về dạng gốc, chuyển chữ hoa thành chữ thường, loại bỏ ký tự đặc biệt và lọc trùng lặp.
- Bag-of-Words (BoW): Mã hóa mỗi câu hỏi thành vector nhị phân (chứa giá trị 1 nếu từ xuất hiện trong từ điển và 0 nếu không xuất hiện).
Thiết kế và triển khai hệ thống
Hệ thống robot dịch vụ được thiết kế theo cấu trúc module hóa với các khối chức năng chính được mô tả trong đồ án.
| Khối chức năng |
Công nghệ / Thuật toán triển khai |
Vai trò trong hệ thống |
| Giao diện người dùng (UI) |
Python GUI |
Cung cấp giao diện tương tác với 2 nút chức năng chính: Talking và Chatting. |
| Giao tiếp giọng nói |
SpeechRecognition, Google Speech to Text API, pyttsx3 |
Tiếp nhận âm thanh từ microphone, chuyển thành văn bản, gửi đến bộ xử lý và phát âm câu trả lời. |
| Giao tiếp văn bản |
Khung chat giao diện, PyTorch Neural Network |
Nhận câu hỏi dạng văn bản từ người dùng qua hộp chat, phân tích và trả về câu trả lời tương ứng. |
| Phát hiện khuôn mặt |
MediaPipe Face Detection (BlazeFace) |
Định vị nhanh vị trí khuôn mặt người dùng trên luồng video camera với độ trễ thấp và 6 điểm mốc. |
| Nhận diện danh tính |
Haar Cascade + LBPH Classifier |
Trích xuất vùng khuôn mặt, so khớp vector histogram với cơ sở dữ liệu đã huấn luyện để hiển thị tên người dùng. |
| Phát hiện khẩu trang |
MediaPipe + Dlib 68 Landmarks + HSV Saturation |
Định vị đường viền vùng miệng (từ 68 landmarks), tính độ bão hòa trung bình kênh Saturation trên không gian màu HSV và so sánh với ngưỡng quy định để đưa ra cảnh báo viền đỏ khi không đeo khẩu trang. |
| Bộ xử lý Chatbot |
PyTorch, Feed Forward NN, NLTK, tệp intents.json |
Phân loại câu hỏi của người dùng vào các nhãn (tag), tính toán xác suất dự đoán để phản hồi câu trả lời tương ứng. |
| Quản lý dữ liệu chưa biết |
Thư viện Pandas, tệp Excel |
Tự động lưu lại các câu hỏi có độ tin cậy dự đoán dưới ngưỡng quy định vào sheet "unknown question" để cập nhật dữ liệu. |
Quy trình nhận diện và định danh khuôn mặt
- Thu thập dữ liệu ảnh: Chụp ảnh người dùng với các góc độ và biểu cảm khác nhau, lưu trữ vào từng thư mục tương ứng với tên người dùng.
- Trích xuất khuôn mặt: Sử dụng Haar Cascade Classifier để cắt vùng khuôn mặt từ các ảnh đầu vào.
- Huấn luyện mô hình LBPH: Tính toán biểu đồ LBP theo lưới $8 \times 8$ cho từng ảnh huấn luyện và liên kết với nhãn định danh (ID/tên).
- Nhận diện thời gian thực: Camera thu nhận khung hình, trích xuất đặc trưng LBP và tính khoảng cách Euclidean với tập dữ liệu. Nếu khoảng cách nhỏ hơn ngưỡng cho phép, hệ thống xác nhận và hiển thị tên người dùng trên giao diện.
Quy trình phát hiện đeo khẩu trang
- Camera thu thập khung hình và chuyển qua module MediaPipe Face Detection để kiểm tra sự xuất hiện của khuôn mặt.
- Mô hình Dlib 68 Face Landmarks xác định tọa độ các điểm mốc quanh vùng miệng.
- Hệ thống tính toán độ bão hòa màu trung bình (average saturation) của vùng miệng so với toàn bộ khuôn mặt trên kênh màu HSV.
- So sánh giá trị với ngưỡng đặt trước:
- Nếu độ bão hòa trung bình của vùng miệng lớn hơn ngưỡng $\rightarrow$ Người dùng không đeo khẩu trang, hệ thống hiển thị khung viền đỏ cảnh báo quanh miệng.
- Nếu độ bão hòa nhỏ hơn hoặc bằng ngưỡng $\rightarrow$ Người dùng đang đeo khẩu trang, hệ thống không phát cảnh báo.
Quy trình xử lý hỏi - đáp (Chatbot & Trợ lý ảo)
- Dữ liệu huấn luyện: Định nghĩa tệp cấu trúc JSON (
intents.json) bao gồm các thuộc tính tag (chủ đề/nhãn), patterns (danh sách câu hỏi mẫu của sinh viên) và responses (danh sách câu trả lời tương ứng).
- Tiền xử lý NLP: Toàn bộ câu hỏi mẫu được tách từ (tokenization), đưa về chữ thường, lọc bỏ ký tự đặc biệt, tạo danh sách từ vựng duy nhất và xây dựng vector Bag-of-Words.
- Huấn luyện mạng nơ-ron: Mạng Feed Forward Neural Network nhận đầu vào là vector Bag-of-Words, huấn luyện phân loại đầu ra là các
tag.
- Đối sánh và phản hồi:
- Khi nhận câu hỏi từ sinh viên (qua giọng nói đã chuyển đổi sang text hoặc qua khung chat), hệ thống chuyển câu hỏi thành vector BoW và đưa qua mạng nơ-ron để tính toán xác suất dự đoán cho từng nhãn.
- Nếu xác suất dự đoán vượt qua ngưỡng quy định: Robot truy xuất câu trả lời trong
responses tương ứng với tag đó và hiển thị/phát âm qua pyttsx3.
- Nếu xác suất dự đoán thấp hơn ngưỡng quy định: Robot nhận định câu hỏi chưa có trong cơ sở dữ liệu, đưa ra phản hồi chưa nhận biết và tự động ghi câu hỏi đó vào tệp Excel ("unknown question sheet") bằng thư viện Pandas.
Nội dung chính theo từng chương
Chapter 1: Introduction
Chương mở đầu trình bày tính cấp thiết của đề tài xuất phát từ nhu cầu giải đáp thắc mắc hằng ngày của sinh viên và những bất cập của các kênh tư vấn truyền thống tại trường đại học. Tác giả xác định mục tiêu xây dựng robot dịch vụ hỗ trợ sinh viên với 2 chế độ (Talking và Chatting), tích hợp nhận diện danh tính, phát hiện khẩu trang và tự động học hỏi câu hỏi mới. Chương này cũng liệt kê 9 nhiệm vụ cụ thể, xác định phạm vi nghiên cứu trong khuôn viên trường bằng tiếng Việt trên giao diện phần mềm, và nêu rõ phương pháp tiếp cận lý thuyết kết hợp thực nghiệm.
Chapter 2: Literature Review
Chương 2 tổng quan toàn diện về các công nghệ liên quan:
- Robot dịch vụ trong công nghiệp: Khảo sát ứng dụng tự động hóa dịch vụ và phân tích chi tiết thông số kỹ thuật của robot Pepper (chiều cao 1,20 m; trọng lượng 28 kg; pin Lithium-ion 30,0 Ah/795 Wh; màn hình cảm ứng 10,1 inch; 20 bậc tự do; trang bị cảm biến sonar, laser, bumper, gyro, camera 2D/3D và microphone đa hướng).
- Thị giác máy tính: Trình bày quy trình 4 giai đoạn chuẩn của hệ thống nhận diện khuôn mặt (phát hiện khuôn mặt, căn chỉnh khuôn mặt, trích xuất đặc trưng và so khớp đặc trưng); phân tích không gian màu RGB và HSV; cấu trúc toán học của thuật toán trích xuất đặc trưng HOG và bộ phân loại SVM (siêu phẳng tối ưu, biên cực đại margin, phân loại phi tuyến); cơ chế phân loại Haar Cascade.
- Nhận dạng tiếng nói và trợ lý ảo: Phân tích quy trình biến đổi tín hiệu âm thanh; so sánh các package trong Python (
apiai, google-cloud-speech, SpeechRecognition, watson-developer-cloud); khảo sát các ứng dụng thực tế (Windows Speech Recognition, Voice-To-Text Facebook Messenger, Google Speech to Text); phân loại Chatbot (Rule-based và AI/Self-learn); giới thiệu framework PyTorch, thư viện Pandas và NumPy.
Chapter 3: System Design and Construction
Chương 3 chi tiết hóa thiết kế kỹ thuật của hệ thống:
- Đưa ra 5 yêu cầu kỹ thuật: độ trễ phát hiện khuôn mặt thấp, nhận diện danh tính nhanh và chính xác, phát hiện khẩu trang tốc độ cao, nhận dạng tiếng nói phản hồi nhanh, và chatbot trả lời chính xác.
- Thiết lập sơ đồ khối hệ thống gồm 8 khối chức năng.
- Lựa chọn và thiết kế giải thuật cho từng khối: MediaPipe (dựa trên BlazeFace) cho phát hiện khuôn mặt thời gian thực; Haar Cascade kết hợp LBPH ($8 \times 8$ grid, 16.384 chiều đặc trưng) cho nhận diện danh tính; Dlib 68 landmarks kết hợp tính độ bão hòa kênh Saturation trên không gian HSV cho phát hiện khẩu trang; Google Speech to Text kết hợp
pyttsx3 cho giao tiếp giọng nói; xây dựng tệp intents.json, xử lý NLP với NLTK và mạng Feed Forward Neural Network trên PyTorch cho Chatbot.
Chapter 4: Experiment Results, Findings and Analysis
Chương 4 trình bày các kết quả thực nghiệm đạt được trên mô hình:
- Thực nghiệm phát hiện khuôn mặt đa đối tượng và hiển thị 6 điểm mốc thời gian thực với thư viện MediaPipe, đo đạc tốc độ khung hình ổn định.
- Thực nghiệm huấn luyện dữ liệu ảnh và nhận diện chính xác tên người dùng trên khung hình video.
- Thực nghiệm phát hiện khẩu trang: Khi người dùng không đeo khẩu trang, hệ thống nhận diện 68 điểm mốc, đóng khung viền đỏ quanh vùng miệng và đưa ra cảnh báo; khi người dùng đeo khẩu trang, hệ thống không phát cảnh báo.
- Thực nghiệm giao tiếp giọng nói và văn bản: Robot nhận diện chính xác các câu hỏi có trong tập dữ liệu và phản hồi câu trả lời tương ứng.
- Thực nghiệm xử lý câu hỏi ngoài dữ liệu: Khi câu hỏi có xác suất dự đoán dưới ngưỡng, hệ thống tự động ghi nhận câu hỏi vào bảng tính Excel (unknown question sheet).
- Đánh giá tốc độ phản hồi giọng nói: So sánh thực nghiệm giữa thư viện
pyttsx3 và gTTS, chứng minh pyttsx3 có tốc độ phản hồi nhanh và ổn định hơn do hoạt động offline.
Chapter 5: Conclusions and Directions of Development
Chương kết luận tổng kết các kết quả đạt được: hoàn thành hệ thống robot dịch vụ hỗ trợ sinh viên trên giao diện phần mềm với đầy đủ hai chức năng Talking và Chatting, tích hợp thành công nhận diện khuôn mặt, cảnh báo khẩu trang, nhận dạng tiếng nói tiếng Việt và chatbot thông minh có khả năng ghi nhận câu hỏi mới. Tác giả đồng thời đề xuất các hướng phát triển tiếp theo nhằm hoàn thiện hệ thống phần cứng và dữ liệu.
Kết quả và đóng góp
Kết quả kỹ thuật đạt được
- Hệ thống thị giác máy tính:
- Triển khai thành công module MediaPipe Face Detection với tốc độ xử lý nhanh, hỗ trợ phát hiện nhiều khuôn mặt đồng thời và trích xuất 6 điểm mốc cơ bản.
- Xây dựng hoàn chỉnh pipeline nhận diện danh tính bằng Haar Cascade và bộ trích xuất đặc trưng LBPH (lưới $8 \times 8$, vector 16.384 chiều), nhận diện chính xác tên người dùng đã học.
- Triển khai giải pháp phát hiện khẩu trang thông minh dựa trên việc kết hợp mô hình Dlib 68 Face Landmarks và phân tích độ bão hòa màu trung bình (average saturation) trên kênh màu HSV của vùng miệng, phân biệt rõ ràng trạng thái đeo và không đeo khẩu trang.
- Hệ thống xử lý ngôn ngữ tự nhiên và giọng nói:
- Tích hợp thành công công cụ Google Speech to Text để nhận dạng tiếng nói tiếng Việt với độ chính xác cao trong môi trường thử nghiệm.
- Sử dụng thư viện
pyttsx3 cho bộ phát âm trợ lý ảo, đảm bảo tốc độ phản hồi tức thì và không bị gián đoạn bởi kết nối mạng.
- Xây dựng mô hình Chatbot học sâu bán luật (Semi-Rule Based) với mạng Feed Forward Neural Network trên PyTorch, tiền xử lý văn bản bằng NLTK (Tokenization, Stemming, Bag-of-Words), đạt khả năng phân loại nhãn câu hỏi chính xác theo ngưỡng xác suất.
- Thiết lập cơ chế tự động ghi nhận các câu hỏi chưa có trong cơ sở dữ liệu vào tệp Excel thông qua thư viện Pandas, hỗ trợ đắc lực cho việc mở rộng dữ liệu sau này.
- Giao diện người dùng: Thiết kế giao diện đồ họa trực quan, cho phép người dùng linh hoạt chuyển đổi giữa hai chế độ tương tác Talking (thoại) và Chatting (nhắn tin).
Đóng góp của đề tài
- Tự động hóa dịch vụ tư vấn sinh viên: Cung cấp một giải pháp thay thế hiệu quả cho các hình thức tư vấn truyền thống, giúp giảm tải áp lực nhân sự cho nhà trường và rút ngắn thời gian chờ đợi của sinh viên.
- Tích hợp liên ngành: Kết hợp đồng bộ giữa thị giác máy tính thời gian thực (nhận diện khuôn mặt, kiểm tra quy định phòng dịch) và trí tuệ nhân tạo đàm thoại (nhận dạng tiếng nói tiếng Việt, chatbot mạng nơ-ron).
- Tính thích ứng dữ liệu: Cơ chế tự động phát hiện và thu thập các câu hỏi chưa biết vào cơ sở dữ liệu Excel giúp hệ thống có khả năng tích lũy tri thức liên tục từ thực tế tương tác với sinh viên.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế được ghi nhận
- Tập dữ liệu câu hỏi: Cơ sở dữ liệu câu hỏi mẫu trong tệp
intents.json còn giới hạn ở các câu hỏi thông dụng của sinh viên trong trường; độ chính xác trả lời phụ thuộc hoàn toàn vào mức độ đa dạng của dữ liệu đã huấn luyện.
- Độ nhạy âm thanh trong môi trường thực tế: Khả năng nhận dạng giọng nói tiếng Việt qua microphone hoạt động tốt nhất trong môi trường ít tiếng ồn; hiệu suất nhận dạng có thể bị suy giảm trong môi trường giảng đường hoặc khuôn viên có nhiều tạp âm phức tạp.
- Phạm vi triển khai: Toàn bộ hệ thống hiện mới dừng lại ở việc triển khai trên giao diện phần mềm máy tính (tương tác qua camera, microphone, màn hình hiển thị), chưa tích hợp hoàn chỉnh khung phần cứng cơ khí và hệ thống di chuyển cho một robot vật lý độc lập.
Hướng nghiên cứu và phát triển tiếp theo
- Mở rộng cơ sở dữ liệu tri thức: Khai thác tệp Excel lưu trữ các câu hỏi chưa biết để gán nhãn, bổ sung các mẫu câu hỏi và câu trả lời mới vào tệp
intents.json, sau đó tái huấn luyện mạng nơ-ron để mở rộng vốn tri thức của Chatbot.
- Nâng cao khả năng xử lý âm thanh: Nghiên cứu tích hợp các thuật toán lọc nhiễu âm thanh đầu vào để cải thiện độ chính xác nhận dạng giọng nói trong môi trường ồn ào.
- Hoàn thiện phần cứng robot dịch vụ: Tích hợp phần mềm đã phát triển vào khung phần cứng cơ khí hoàn chỉnh (bao gồm bộ điều khiển nhúng, động cơ di chuyển, màn hình cảm ứng tương tác và mảng microphone định hướng) tương tự mô hình các robot dịch vụ thương mại.
Giá trị tham khảo
Đồ án là tài liệu tham khảo kỹ thuật hữu ích cho:
- Sinh viên và học viên chuyên ngành: Công nghệ Kỹ thuật Điều khiển và Tự động hóa, Cơ điện tử, Kỹ thuật Máy tính, Công nghệ Thông tin đang thực hiện các đồ án tốt nghiệp hoặc đề tài nghiên cứu về robot dịch vụ, trợ lý ảo và hệ thống tương tác người - máy (Human-Robot Interaction - HRI).
- Các nội dung tham khảo giá trị:
- Quy trình xây dựng pipeline xử lý ảnh kết hợp giữa MediaPipe, Dlib 68 Face Landmarks và xử lý không gian màu HSV để phát hiện trạng thái khuôn mặt/khẩu trang với chi phí tính toán thấp.
- Phương pháp xây dựng hệ thống nhận diện khuôn mặt kết hợp Haar Cascade và LBPH trên OpenCV.
- Cấu trúc xây dựng một Chatbot học sâu bán luật trên PyTorch từ khâu tiền xử lý ngôn ngữ tiếng Việt (NLTK) đến kiến trúc mạng Feed Forward Neural Network và cơ chế bẫy câu hỏi chưa biết.
- So sánh thực nghiệm giữa các giải pháp Text-to-Speech (
pyttsx3 và gTTS) và Speech-to-Text trên nền tảng Python.
Câu hỏi thường gặp
1. Đề tài lựa chọn thuật toán nào cho tác vụ nhận diện danh tính khuôn mặt và nguyên lý hoạt động là gì?
Tác giả sử dụng thuật toán Haar Cascade để phát hiện và cắt vùng khuôn mặt từ ảnh đầu vào, sau đó áp dụng thuật toán Local Binary Patterns Histograms (LBPH) để trích xuất đặc trưng kết cấu. LBPH chia ảnh thành lưới $8 \times 8$, tạo ra vector histogram 16.384 chiều ($8 \times 8 \times 256$) và sử dụng khoảng cách Euclidean để so khớp với dữ liệu đã huấn luyện; khoảng cách càng nhỏ thì độ tin cậy nhận diện càng cao.
2. Hệ thống phát hiện sinh viên có đeo khẩu trang hay không bằng phương pháp nào?
Hệ thống sử dụng MediaPipe để phát hiện khuôn mặt, sau đó dùng mô hình Dlib Frontal Face Detector để xác định 68 điểm mốc đặc trưng (landmarks). Tọa độ các điểm mốc quanh vùng miệng được dùng để khoanh vùng và tính toán độ bão hòa màu trung bình (average saturation) của vùng miệng so với toàn bộ khuôn mặt trên kênh màu HSV. Nếu độ bão hòa vượt ngưỡng định trước, hệ thống xác định người dùng không đeo khẩu trang và vẽ khung viền đỏ cảnh báo.
3. Tại sao tác giả lựa chọn thư viện pyttsx3 thay vì gTTS cho module trợ lý giọng nói?
Mặc dù gTTS hỗ trợ nhiều ngôn ngữ và dễ cài đặt, thư viện này hoạt động trực tuyến thông qua Google Translate API nên tốc độ phản hồi không ổn định và phụ thuộc vào chất lượng kết nối Internet. Ngược lại, pyttsx3 hoạt động hoàn toàn offline, mang lại tốc độ phản hồi tức thì và độ ổn định cao hơn trong quá trình giao tiếp thời gian thực với sinh viên.
4. Khi nhận được một câu hỏi nằm ngoài cơ sở dữ liệu đã huấn luyện, Chatbot sẽ xử lý như thế nào?
Khi người dùng đưa ra câu hỏi, mạng Feed Forward Neural Network sẽ tính toán xác suất dự đoán của câu hỏi đối với các nhãn (tag). Nếu xác suất này thấp hơn ngưỡng quy định, hệ thống sẽ xác định câu hỏi chưa có trong cơ sở dữ liệu, phản hồi thông báo chưa nhận biết đến người dùng, đồng thời tự động lưu câu hỏi đó vào sheet "unknown question" trong tệp Excel thông qua thư viện Pandas để người quản trị bổ sung tri thức sau này.
5. Phạm vi ứng dụng và ngôn ngữ giao tiếp của robot được giới hạn như thế nào trong đồ án?
Đề tài được thiết kế để giải đáp các câu hỏi thường gặp của sinh viên trong khuôn viên trường đại học bằng tiếng Việt. Toàn bộ quá trình tương tác được thực hiện thông qua giao diện phần mềm máy tính (với hai chế độ Talking và Chatting), và hệ thống được thiết lập để hoạt động tối ưu nhất trong điều kiện môi trường ít tiếng ồn.
Kết luận
Đồ án tốt nghiệp của tác giả Nguyễn Tuấn Thanh đã thiết kế và triển khai thành công mô hình robot dịch vụ hỗ trợ sinh viên thông qua việc kết hợp đồng bộ công nghệ thị giác máy tính và xử lý ngôn ngữ tự nhiên. Hệ thống đáp ứng tốt hai phương thức giao tiếp bằng giọng nói và văn bản tiếng Việt, đồng thời tích hợp các chức năng nhận diện danh tính sinh viên, cảnh báo không đeo khẩu trang và tự động lưu vết câu hỏi mới để mở rộng dữ liệu. Đề tài thể hiện tính ứng dụng thực tiễn cao trong công tác tự động hóa dịch vụ hỗ trợ học đường và cung cấp cơ sở kỹ thuật hoàn chỉnh cho các nghiên cứu phát triển robot dịch vụ chuyên dụng tiếp theo.