Bối cảnh và vấn đề nghiên cứu
Trong đời sống hiện đại, việc trải nghiệm ẩm thực tại các nhà hàng, quán ăn không chỉ đáp ứng nhu cầu dinh dưỡng mà còn là một hoạt động giao tiếp xã hội và giải trí quan trọng. Tuy nhiên, khi tiếp cận các nền ẩm thực mới hoặc dùng bữa tại nước ngoài, thực khách thường xuyên đối mặt với rào cản ngôn ngữ. Các thực đơn truyền thống chỉ cung cấp mô tả dạng văn bản ngắn gọn, khó truyền tải đầy đủ thành phần, hương vị hay quy cách chế biến của món ăn, dẫn đến sự lúng túng trong việc lựa chọn. Ngay cả đối với các món ăn quen thuộc, sự đa dạng của thực đơn kết hợp với sở thích cá nhân riêng biệt cũng tạo ra trở ngại trong việc ra quyết định.
Khảo sát thực tế các ứng dụng hỗ trợ quét thực đơn hiện có cho thấy nhiều hạn chế:
- Phần lớn ứng dụng quét menu chỉ phụ thuộc vào mã QR; khi nhà hàng không trang bị mã QR, ứng dụng hoàn toàn không thể thực hiện chức năng.
- Các công cụ như CamScanner chỉ hỗ trợ chụp và chuyển đổi tài liệu sang định dạng PDF mà không bóc tách dữ liệu văn bản.
- Tính năng nhận diện ký tự quang học tích hợp sẵn trên ứng dụng máy ảnh của Apple cho phép trích xuất ký tự thô nhưng không cung cấp các tiện ích gia tăng như dịch thuật chuyên biệt hay gợi ý món ăn.
Trước những bất cập đó, đồ án tốt nghiệp với đề tài "Arbitrarily-shaped text recognizer and translator for smart menu application" (Nhận diện và dịch văn bản hình dạng tùy ý cho ứng dụng thực đơn thông minh) được thực hiện bởi sinh viên Phạm Minh Long và Cao Hoàng Bách, dưới sự hướng dẫn của TS. Trần Vũ Hoàng tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh (ngành Công nghệ Kỹ thuật Máy tính).
Mục tiêu nghiên cứu
Đề tài hướng đến việc ứng dụng Trí tuệ Nhân tạo nhằm nâng cao trải nghiệm ăn uống của khách hàng thông qua 4 mục tiêu cốt lõi:
- Trích xuất chính xác văn bản tiếng Việt có hình dạng tùy ý trên ảnh chụp thực đơn.
- Dịch thuật nội dung thực đơn đã nhận diện sang tiếng Anh.
- Đề xuất món ăn và đồ uống phù hợp với sở thích, hạn chế ăn kiêng và khẩu vị cá nhân của người dùng.
- Tích hợp trợ lý ảo (Chatbot) để tương tác và hướng dẫn người dùng sử dụng ứng dụng.
Nhiệm vụ nghiên cứu
Để hoàn thành các mục tiêu trên, tác giả đã xác định và triển khai 9 nhiệm vụ cụ thể:
- Task 1: Nghiên cứu các tài liệu khoa học liên quan để định hướng giải pháp kỹ thuật.
- Task 2: Thiết kế sơ đồ khối tổng thể và định nghĩa chức năng của từng khối trong hệ thống.
- Task 3: Nghiên cứu và lựa chọn các phương pháp đáp ứng yêu cầu của từng khối.
- Task 4: Khảo sát các thuật toán tối ưu hóa, các mô hình AI phù hợp và cải tiến chúng.
- Task 5: Huấn luyện các mô hình AI đã chọn, đánh giá và tối ưu hóa để vận hành trên thiết bị biên (edge devices).
- Task 6: Xây dựng ứng dụng di động để triển khai các mô hình.
- Task 7: Thiết kế lưu đồ chương trình chính và lập trình hoàn thiện hệ thống phần mềm.
- Task 8: Tiến hành kiểm thử, đánh giá hiệu năng và tinh chỉnh các chức năng.
- Task 9: Viết báo cáo khóa luận tốt nghiệp và chuẩn bị tài liệu nghiệm thu.
Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Các mô hình học sâu gọn nhẹ (light-weight AI models) phục vụ bài toán OCR, các kỹ thuật nén mô hình (quantization, distillation, pruning), thuật toán gợi ý món ăn và xử lý ngôn ngữ tự nhiên.
- Phạm vi nghiên cứu: Ứng dụng tập trung xử lý thực đơn món ăn tiếng Việt dịch sang tiếng Anh; hệ thống gợi ý vận hành dựa trên các thông số khẩu vị do người dùng khai báo; toàn bộ hệ thống được tối ưu để hoạt động cục bộ trên thiết bị di động thông minh (nền tảng Android).
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và mô hình sử dụng
Đề tài áp dụng các kỹ thuật học sâu trong thị giác máy tính và xử lý ngôn ngữ tự nhiên:
-
Phát hiện văn bản (Text Detection) với Differentiable Binarization (DB): DB giải quyết bài toán định vị văn bản trong khung cảnh phức tạp bằng cách nhúng thao tác nhị phân hóa vi phân vào mạng tích chập toàn phần (FCN). Nhờ hàm xấp xỉ bước nhảy liên tục, mô hình có thể tối ưu hóa đồng thời bản đồ xác suất (probability map) và bản đồ ngưỡng thích ứng (adaptive threshold map). Quá trình co/giãn đa giác đường bao văn bản sử dụng thuật toán Vatti clipping.
-
Nhận dạng văn bản (Text Recognition) với CRNN và CTC: Mô hình kết hợp mạng tích chập (CNN) để trích xuất đặc trưng không gian và mạng hồi quy hai chiều (BiLSTM) để mô hình hóa chuỗi ngữ cảnh. Tầng phiên mã (Transcription layer) sử dụng hàm mất mát Connectionist Temporal Classification (CTC) cho phép huấn luyện end-to-end mà không cần gán nhãn từng ký tự riêng biệt.
-
Mạng xương sống gọn nhẹ (Lightweight Backbones):
- MobileNetv3: Sử dụng tích chập phân tách theo chiều sâu (depthwise separable convolutions), khối bottleneck tuyến tính kết hợp cấu trúc residual đảo ngược, khối chú ý Squeeze-and-Excitation (SE), hàm kích hoạt $h\text{-}swish$ tối ưu cho thiết bị phần cứng hạn chế, cùng thuật toán tìm kiếm kiến trúc mạng (NAS) và NetAdapt.
- PP-LCNet: Kiến trúc tối ưu hóa cho CPU của Intel, thay thế hàm kích hoạt sang $H\text{-}Swish$, bổ sung khối SE ở các tầng cuối và sử dụng kernel tích chập kích thước $5 \times 5$.
-
Kỹ thuật nén và tối ưu hóa mô hình:
- Lượng tử hóa PACT (Parameterized Clipping Activation): Cắt tỉa các giá trị ngoại lai trước khi lượng tử hóa, có cải tiến để tương thích với hàm $h\text{-}swish$.
- Cắt tỉa bộ lọc FPGM (Filter Pruning via Geometric Median): Loại bỏ các bộ lọc dư thừa dựa trên trung vị hình học của trọng số.
- Chưng cất tri thức (Knowledge Distillation): Sử dụng CML (Collaborative Multi-model Learning) cho bài toán Detection và U-DML (Unified-Deep Mutual Learning) cho bài toán Recognition nhằm truyền tri thức từ mô hình giáo viên sang mô hình học sinh.
- Chiến lược suy giảm tốc độ học Cosine (Cosine Learning Rate Decay) kết hợp khởi động tốc độ học (Learning Rate Warm-up).
-
Xử lý ngôn ngữ tự nhiên với BERT và RASA Framework: Mô hình BERT (Bidirectional Encoder Representations from Transformers) được huấn luyện trước trên kho ngữ liệu lớn thông qua hai tác vụ: Masked Language Model (MLM - dự đoán 15% token bị che) và Next Sentence Prediction (NSP). BERT đóng vai trò trích xuất đặc trưng ngữ nghĩa cho hệ thống chatbot xây dựng trên nền tảng RASA.
Phương pháp nghiên cứu
- Phương pháp thực nghiệm kỹ thuật: Khảo sát, lựa chọn và so sánh thực nghiệm giữa các framework OCR mã nguồn mở (EasyOCR, PaddleOCR, mmOCR) để xác định cấu trúc tối ưu.
- Phương pháp xử lý dữ liệu: Áp dụng các kỹ thuật tăng cường dữ liệu chuyên sâu cho bài toán OCR như biến đổi hình học TIA (Text Image Augmentation) và CopyPaste augmentation.
Thiết kế và triển khai hệ thống
Kiến trúc tổng thể
Hệ thống Smart Menu được thiết kế theo cấu trúc module hóa phân tán, nhận đầu vào là hình ảnh thực đơn từ máy ảnh hoặc thư viện ảnh trên điện thoại, xử lý qua các khối AI và hiển thị kết quả tương tác cho người dùng.
[Ảnh thực đơn]
[English Translator] [Food Recommender]
(Từ điển Google Translate (Khớp sở thích khẩu vị
+ Tokenizer & Label Match) + Dữ liệu lịch sử)
[Giao diện ứng dụng di động]
[RASA Chatbot (BERT)]
Chi tiết các phân hệ chức năng
-
Phân hệ quét thực đơn (Menu Scanner Module):
- Thực hiện phát hiện vùng chứa chữ bằng mô hình DB (sử dụng backbone MobileNetv3_large_x0_5).
- Tự động xoay và hiệu chỉnh hướng của các hộp bao văn bản bị nghiêng thông qua mô hình phân loại góc quay (backbone MobileNetv3_small_x0_5 áp dụng lượng tử hóa PACT).
- Nhận dạng chuỗi ký tự tiếng Việt bằng mô hình CRNN (backbone MobileNetv3_small_x0_5 hoặc PP-LCNet) với độ phân giải đầu vào chuẩn hóa chiều cao 32 pixel.
-
Phân hệ dịch thuật (English Translator Module):
- Xây dựng kho dữ liệu từ điển ẩm thực song ngữ Việt - Anh tự động thông qua API của Google Translate Platform.
- Kết hợp thuật toán tách từ (Word-based tokenizer) và cơ chế khớp nhãn văn bản (Text label matching) để chuẩn hóa các cụm từ món ăn nhận diện từ OCR trước khi tra cứu ngữ nghĩa.
-
Phân hệ gợi ý món ăn (Food Recommender Module):
- Tiếp nhận danh sách các món ăn đã bóc tách từ thực đơn.
- Đối chiếu với hồ sơ người dùng (User Profile) bao gồm các trường thông tin: trường phái ẩm thực yêu thích, hạn chế ăn kiêng (dị ứng, ăn chay), nhóm hương vị (cay, ngọt, mặn, chua), kết cấu món ăn và nguyên liệu ưu tiên để xuất ra danh sách món đề xuất tối ưu.
-
Phân hệ trợ lý ảo (RASA Chatbot Module):
- Tích hợp framework RASA sử dụng mô hình ngôn ngữ BERT để phân loại ý định (Intent Classification) và trích xuất thực thể (Entity Extraction).
- Cung cấp tính năng hướng dẫn sử dụng ứng dụng, giải đáp các thắc mắc về chức năng và hỗ trợ tương tác tự nhiên với người dùng.
-
Triển khai trên thiết bị di động:
- Ứng dụng được đóng gói và vận hành trực tiếp trên thiết bị điện thoại thông minh, hiển thị giao diện quét ảnh trực quan, bảng bình chọn/đánh giá của người dùng và khung hội thoại tương tác với chatbot.
Nội dung chính theo từng chương
Chương 1: Giới thiệu (Introduction)
Chương 1 trình bày tổng quan về bối cảnh xã hội của ngành dịch vụ ăn uống, nêu bật khó khăn của thực khách khi tiếp cận thực đơn ngôn ngữ lạ. Tác giả phân tích điểm yếu của các ứng dụng quét mã QR và phần mềm quét tài liệu thông thường, từ đó xác lập mục tiêu nghiên cứu, 9 nhiệm vụ kỹ thuật, phạm vi ứng dụng và bố cục 5 chương của khóa luận.
Chương 2: Tổng quan tài liệu (Literature Review)
Chương 2 cung cấp nền tảng toán học và kiến trúc mạng chi tiết:
- Phân tích cơ chế của Differentiable Binarization (DB), phương pháp sinh nhãn cho bản đồ xác suất và bản đồ ngưỡng bằng thuật toán Vatti clipping, cùng cấu trúc hàm mất mát đa thành phần ($L_s, L_b, L_t$).
- Trình bày quá trình tiến hóa của các kiến trúc MobileNet (từ MobileNetv1, v2 đến v3), giải thích cơ chế tối ưu hóa NAS, NetAdapt, việc tinh giảm các tầng tích chập đầu/cuối và thay thế hàm kích hoạt bằng $h\text{-}swish$.
- Phân tích chi tiết mô hình CRNN cho nhận dạng chuỗi, cơ chế bộ nhớ dài-ngắn hạn hai chiều (BiLSTM), hàm mất mát CTC và hai chế độ phiên mã (lexicon-free, lexicon-based).
- Khái quát các cải tiến trong PaddleOCRv1 và PaddleOCRv2 (CML, U-DML, PP-LCNet, CopyPaste).
- Trình bày lịch sử phát triển của Chatbot (Rule-based, Seq2Seq, Transformer) và nguyên lý hoạt động của mô hình BERT (WordPiece, MLM, NSP, Fine-tuning).
Chương 3: Thiết kế hệ thống (System Design)
Chương 3 chi tiết hóa các yêu cầu kỹ thuật của hệ thống, thiết lập sơ đồ khối và lưu đồ giải thuật cho 4 phân hệ chính:
- Khảo sát các framework OCR mã nguồn mở hàng đầu trên GitHub (EasyOCR, PaddleOCR, mmOCR) thông qua các bảng thống kê tính năng.
- Thiết kế luồng xử lý từ điển dịch thuật dựa trên Google Translate API kết hợp bộ tokenizer tách từ.
- Xây dựng sơ đồ trường hợp sử dụng (Use Case Diagram) và thiết kế giao diện tương tác người dùng trên thiết bị di động.
Chương 4: Thực nghiệm và kết quả (Experiments and Results)
Chương 4 ghi nhận dữ liệu thực nghiệm, quy trình lọc mẫu dữ liệu lỗi và đánh giá hiệu năng:
- Thống kê các mẫu dữ liệu không phù hợp trong tập dữ liệu phát hiện và nhận dạng văn bản.
- So sánh định lượng giữa các mô hình cho bài toán phát hiện văn bản (Text Detection) và nhận dạng văn bản (Text Recognition).
- Đo lường độ chính xác phân loại ý định của Chatbot RASA dựa trên mô hình BERT.
- Ghi nhận chi tiết thời gian suy luận (Inference time) của từng module chức năng trên phần cứng di động thực tế.
Chương 5: Kết luận và hướng phát triển (Conclusion and Future Works)
Chương 5 tổng kết các mục tiêu đã đạt được, phân tích bảng đối chiếu điểm mạnh và điểm yếu của hệ thống theo đánh giá của hội đồng, đồng thời đề xuất các hướng mở rộng cho các nghiên cứu tiếp theo.
Kết quả và đóng góp
Kết quả định lượng
Các thử nghiệm thực nghiệm trên thiết bị di động ghi nhận các số liệu cụ thể sau:
| Thông số / Module | Giá trị đo lường | Ghi chú kỹ thuật |
|---|---|---|
| Dung lượng mô hình Text Detection | 0.5 MB | Sau khi áp dụng nén và tối ưu hóa backbone MobileNetv3 |
| Dung lượng mô hình Text Recognition | 0.5 MB | Kiến trúc CRNN kết hợp lượng tử hóa |
| Độ chính xác Chatbot (RASA - BERT) | 0.995 (99.5%) | Đánh giá trên tập dữ liệu huấn luyện hội thoại |
| Tổng thời gian suy luận toàn hệ thống | 3.941 giây | Thời gian xử lý trọn gói tất cả các module trên thiết bị di động |
Đánh giá nghiệm thu
Đồ án được Hội đồng chấm bảo vệ và Giảng viên hướng dẫn đánh giá đạt loại Xuất sắc (Excellent) với điểm số 9.0 (Chín).
Đóng góp của đề tài
- Đã tích hợp thành công một chu trình xử lý khép kín từ trích xuất văn bản thực đơn thực tế, dịch thuật sang tiếng Anh, gợi ý món ăn theo hồ sơ cá nhân đến trợ lý ảo chỉ dẫn trên cùng một ứng dụng di động.
- Tối ưu hóa thành công kích thước các mô hình học sâu thị giác máy tính xuống mức siêu nhẹ (0.5 MB cho mỗi tác vụ phát hiện và nhận dạng), giúp hệ thống có thể vận hành ổn định trên các thiết bị biên có năng lực tính toán hạn chế mà không cần phụ thuộc vào GPU rời.
Hạn chế và hướng nghiên cứu tiếp
Theo nhận xét trong phiếu đánh giá của Giảng viên hướng dẫn và nội dung khóa luận, hệ thống còn tồn tại một số hạn chế:
- Module Dịch thuật: Thiết kế còn ở mức cơ bản, vẫn phụ thuộc nhiều vào bảng từ điển ẩm thực được tạo sẵn thay vì áp dụng các mô hình dịch máy nơ-ron (NMT) ngữ cảnh hóa hoàn chỉnh.
- Module Gợi ý món ăn: Thuật toán chưa có khả năng tự động học sâu sở thích biến đổi của khách hàng từ hành vi lịch sử lâu dài, mà vẫn đòi hỏi người dùng phải chủ động khai báo trước các thông số khẩu vị.
- Phạm vi mô hình: Đồ án chủ yếu tập trung vào việc khảo sát, ứng dụng và tối ưu hóa các mô hình sẵn có trong framework đặc thù để triển khai trên Android, chưa đề xuất các kiến trúc mạng gốc mới hoàn toàn cho bài toán tiếng Việt.
Hướng nghiên cứu tiếp:
- Nâng cấp module dịch thuật bằng các mô hình ngôn ngữ dịch máy gọn nhẹ có khả năng hiểu ngữ cảnh món ăn vùng miền.
- Cải tiến thuật toán gợi ý sang mô hình học tăng cường hoặc lọc cộng tác thích ứng tự động (Adaptive Collaborative Filtering).
- Tối ưu hóa sâu hơn về độ phức tạp thời gian và không gian nhằm rút ngắn tổng thời gian suy luận (dưới mức 3.941 giây).
Giá trị tham khảo
Khóa luận là tài liệu tham khảo có giá trị chuyên môn cao đối với:
- Sinh viên ngành Kỹ thuật Máy tính, Công nghệ Thông tin, Trí tuệ Nhân tạo: Cung cấp tài liệu tham khảo chi tiết về quy trình tối ưu hóa mô hình học sâu cho thiết bị biên thông qua các kỹ thuật tiên tiến như lượng tử hóa PACT, cắt tỉa FPGM và chưng cất tri thức (CML, U-DML).
- Người phát triển ứng dụng di động AI: Cung cấp quy trình tích hợp thư viện PaddleOCR và nền tảng chatbot RASA lên môi trường ứng dụng di động thực tế.
- Các nghiên cứu về OCR tiếng Việt: Là tài liệu tham khảo tốt cho việc thiết lập tham số trích xuất đặc trưng cho văn bản dạng chuỗi và xử lý nhãn văn bản đa từ.
Câu hỏi thường gặp
1. Đồ án sử dụng giải pháp nào để phát hiện và nhận dạng văn bản tiếng Việt có hình dạng tùy ý?
Hệ thống sử dụng framework PaddleOCR với mô hình Differentiable Binarization (DB) dựa trên mạng xương sống MobileNetv3_large_x0_5 cho bài toán phát hiện vị trí văn bản (Text Detection), kết hợp mô hình CRNN (tích hợp CNN, BiLSTM và hàm mất mát CTC) trên backbone MobileNetv3_small_x0_5/PP-LCNet cho bài toán nhận dạng ký tự (Text Recognition).
2. Kích thước mô hình OCR sau khi tối ưu hóa đạt bao nhiêu?
Sau khi áp dụng các kỹ thuật nén mô hình như cắt tỉa bộ lọc FPGM, loại bỏ khối SE không cần thiết và lượng tử hóa kích hoạt PACT, cả mô hình phát hiện văn bản (Text Detection) và mô hình nhận dạng văn bản (Text Recognition) đều đạt kích thước siêu nhẹ là 0.5 MB mỗi mô hình.
3. Phân hệ Chatbot được xây dựng trên công nghệ gì và đạt hiệu năng ra sao?
Chatbot được phát triển dựa trên framework RASA tích hợp mô hình ngôn ngữ BERT (sử dụng biểu diễn WordPiece và cơ chế chú ý hai chiều), đạt độ chính xác 0.995 (99.5%) trên tập dữ liệu huấn luyện phân loại ý định người dùng.
4. Tổng thời gian xử lý toàn bộ các module trên thiết bị di động là bao lâu?
Theo số liệu đo lường thực nghiệm ghi nhận tại Bảng 4-6 của khóa luận, toàn bộ hệ sinh thái Smart Menu (bao gồm quét OCR, dịch thuật, gợi ý món và xử lý liên quan) mất tổng cộng 3.941 giây để hoàn tất quá trình suy luận trên thiết bị điện thoại thông minh.
5. Giảng viên hướng dẫn đã chỉ ra những điểm hạn chế nào của đồ án?
Trong phiếu đánh giá (Advisor's Evaluation Sheet), TS. Trần Vũ Hoàng nhận xét: hệ thống dịch thuật vẫn phụ thuộc đáng kể vào từ điển dựng sẵn; đồng thời hệ thống gợi ý món ăn chưa thực sự tự học được thói quen và sở thích sâu của khách hàng mà cần người dùng phải thiết lập khai báo trước các thông số.
Kết luận
Đồ án tốt nghiệp của sinh viên Phạm Minh Long và Cao Hoàng Bách đã hoàn thành việc nghiên cứu, thiết kế và triển khai thành công ứng dụng thực đơn thông minh Smart Menu trên thiết bị di động. Bằng việc kết hợp hiệu quả giữa kỹ thuật phát hiện văn bản DB, nhận dạng CRNN, xử lý ngôn ngữ BERT và các thuật toán nén mô hình, công trình đã giải quyết tốt bài toán bóc tách thực đơn tiếng Việt và dịch thuật sang tiếng Anh trong một kích thước mô hình siêu gọn nhẹ. Dù còn một số hạn chế về tính thích ứng tự động của bộ gợi ý và sự phụ thuộc vào từ điển dịch thuật, đồ án đã đạt kết quả xuất sắc với điểm số 9.0 và mang lại giá trị ứng dụng thực tiễn cao cho lĩnh vực hỗ trợ dịch vụ ẩm thực.