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

Trong bối cảnh chuyển đổi số và tự động hóa quy trình quản lý doanh nghiệp, việc ứng dụng các công nghệ nhận dạng sinh trắc học và mã phản hồi nhanh (Quick Response - QR) đang trở nên phổ biến. Tại Việt Nam cũng như trên thế giới, mã QR đã được áp dụng rộng rãi trong các lĩnh vực như truy xuất nguồn gốc sản phẩm (Vinamilk), thanh toán trực tuyến (Vietcombank, các ví điện tử tại Trung Quốc, Nga, Mỹ), tiếp thị quảng cáo (Thế giới Di động) và giải trí (Spotify). Tuy nhiên, trong lĩnh vực quản lý nội bộ doanh nghiệp, đặc biệt là bài toán quản lý suất ăn/khẩu phần ăn cho nhân viên tại các nhà ăn tập thể, việc kiểm soát thủ công hoặc sử dụng các thiết bị chấm công truyền thống (máy quét vân tay, thẻ từ) thường phát sinh chi phí đầu tư thiết bị cao và dễ xảy ra tình trạng người ngoài trà trộn, gây thất thoát tài sản và thiếu công bằng.

Khóa luận tốt nghiệp kỹ sư ngành Kỹ thuật Máy tính của tác giả Ngô Mẫn Đạt (Trường Đại học Công nghệ Thông tin, Đại học Quốc gia TP. Hồ Chí Minh) tập trung giải quyết bài toán quản trị này bằng cách xây dựng hệ thống kết hợp mã QR và nhận diện khuôn mặt qua luồng camera thời gian thực.

Các mục tiêu và nhiệm vụ nghiên cứu cụ thể được xác định trong văn bản bao gồm:

  1. Xây dựng hệ thống quản lý khẩu phần ăn và thông tin nhân viên bằng mã QR kết hợp định danh sinh trắc học khuôn mặt thông qua camera.
  2. Triển khai luồng thu thập và xử lý video trực tiếp ổn định bằng giao thức truyền thông thời gian thực (RTSP) và thư viện thị giác máy tính OpenCV.
  3. Xây dựng ứng dụng web (Single Page Application) phục vụ việc đăng ký, đăng nhập tài khoản, quản lý hồ sơ nhân viên, tải ảnh phục vụ huấn luyện/trích xuất đặc trưng khuôn mặt, ghi nhận lịch sử in/quét mã và xuất báo cáo ra tập tin Excel.
  4. Tối ưu hóa thuật toán đối sánh dữ liệu khuôn mặt trong cơ sở dữ liệu bằng khoảng cách Euclid (L2 distance), giảm thiểu độ trễ xử lý và tiết kiệm chi phí phần cứng bằng cách tận dụng máy in nhiệt khổ nhỏ và camera giám sát sẵn có.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Quy trình định danh nhân viên qua khuôn mặt, quy chế cấp phát và kiểm soát khẩu phần ăn bằng mã QR, kiến trúc hệ thống web server - cơ sở dữ liệu, giao thức truyền luồng RTSP và kỹ thuật in mã nhiệt trực tiếp.
  • Phạm vi nghiên cứu: Hệ thống được thiết kế, lập trình và thực nghiệm tại Khoa Kỹ thuật Máy tính, Trường Đại học Công nghệ Thông tin (ĐHQG-HCM) vào năm 2023. Dữ liệu thử nghiệm bao gồm hình ảnh khuôn mặt của người dùng đăng ký trên hệ thống trong các điều kiện có và không có vật cản (đeo kính), kết nối với camera giám sát qua giao thức mạng nội bộ và máy in nhiệt Xprinter XP-58IIH.

Cơ sở lý thuyết và phương pháp

Khóa luận thiết lập nền tảng lý thuyết dựa trên các chuẩn công nghệ, giao thức mạng và mô hình tính toán sau:

  • Công nghệ mã QR (Quick Response Code): Dạng mã vạch ma trận 2D được phát triển bởi Denso Wave (1994). Cấu tạo gồm ba phần chính: Header (kích thước, định dạng, dung lượng), Data (dữ liệu thực tế dạng văn bản, số, URL) và Error correction code (mã sửa lỗi). Kích thước ma trận dao động từ $21 \times 21$ ô vuông đến $177 \times 177$ ô vuông, hỗ trợ khoảng cách quét từ 2 cm đến 10 m.
  • Giao thức RTSP (Real Time Streaming Protocol): Giao thức tầng ứng dụng điều khiển truyền luồng đa phương tiện theo thời gian thực từ máy chủ đến máy khách. Vận hành thông qua tập lệnh tiêu chuẩn: DESCRIBE (yêu cầu thông tin luồng), SETUP (thiết lập kết nối vận chuyển), PLAY (bắt đầu truyền dữ liệu bit stream), PAUSE (tạm dừng) và TEARDOWN (hủy bỏ phiên kết nối).
  • Công nghệ xử lý ảnh và thư viện OpenCV: Ứng dụng OpenCV để đọc khung hình, chuyển đổi không gian màu (RGB, HSV, YCbCr), phát hiện cạnh, theo dõi chuyển động và trích xuất đặc trưng khuôn mặt thành các mảng vector (embedding).
  • Thuật toán so khớp khoảng cách Euclid (L2 Distance): Sử dụng công thức toán học tính khoảng cách giữa hai vector đặc trưng: $$distance = \sqrt{\sum_{i=1}^{n} (x_i - y_i)^2}$$ Trong đó $x$ là vector trích xuất từ camera và $y$ là vector mẫu lưu trong cơ sở dữ liệu. Độ tương đồng tỷ lệ nghịch với giá trị khoảng cách L2.
  • Kiến trúc Web Server - Cơ sở dữ liệu và giao thức HTTP: Mô hình máy chủ tách biệt (Web Server Database Architecture), sử dụng giao thức HTTP giao tiếp dạng văn bản (textual) và không lưu trạng thái (stateless), đảm bảo tính an toàn dữ liệu và khả năng mở rộng hệ thống.
  • Thiết bị in nhiệt: Máy in hóa đơn nhiệt Xprinter XP-58IIH sử dụng công nghệ in nhiệt trực tiếp trên giấy cảm nhiệt khổ 57 mm (k57), độ phân giải 384 điểm/dòng, tốc độ in 90 mm/s, tuổi thọ đầu in 100 km, giao tiếp qua cổng USB 2.0, Bluetooth Android và RJ11.

Phương pháp nghiên cứu chủ đạo là phương pháp thiết kế và phát triển kỹ thuật phần mềm kết hợp thực nghiệm đo lường các chỉ số kỹ thuật (tốc độ khung hình fps, thời gian trích xuất/nhận diện khuôn mặt tính bằng mili-giây, tỷ lệ khớp mã in). Dữ liệu nghiên cứu thu thập trực tiếp từ luồng video camera và dữ liệu người dùng đăng ký vào hệ thống cơ sở dữ liệu thực nghiệm.


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

Hệ thống được tổ chức theo kiến trúc phân tầng gồm các khối chức năng chính: Web Service, Web Server Service, Phần cứng (Hardware: Camera RTSP, Máy in) và Cơ sở dữ liệu (Database).

Thành phần Công nghệ / Giao thức Chức năng chính
Camera Module RTSP Protocol, OpenCV Thu nhận hình ảnh luồng video liên tục, trích xuất khung hình khuôn mặt.
Processing Server Image Processing, Vectorization Chuyển đổi ảnh thành mảng vector embedding; thực thi SQL Query tính khoảng cách L2.
Background Worker Set Interval (chu kỳ 10 giây) Quét cơ sở dữ liệu, kiểm tra cờ Create vector? và tự động vector hóa các ảnh mới tải lên.
Web Application HTML, CSS, JavaScript (SPA) Cung cấp giao diện người dùng và quản trị viên, quản lý tài khoản, tải ảnh, xuất file Excel.
Printing Module Xprinter Driver, REST API Tiếp nhận mã lệnh chuỗi bit sau khi xác thực thành công và in mã QR qua máy in nhiệt.

Cơ chế hoạt động và xử lý dữ liệu

  1. Khởi tạo và truyền luồng: Camera truyền luồng video liên tục về máy chủ thông qua giao thức RTSP.
  2. Trích xuất và đối sánh: Khi phát hiện khuôn mặt, OpenCV chuyển đổi khung hình sang mảng vector đặc trưng. Hệ thống gửi yêu cầu API đến máy chủ để thực hiện truy vấn SQL (l2_distance) so sánh với toàn bộ vector người dùng trong cơ sở dữ liệu.
  3. Phân loại kết quả:
    • Nếu khoảng cách L2 vượt ngưỡng cho phép hoặc không tìm thấy bản ghi tương đồng, hệ thống trả về cảnh báo 'unknown'.
    • Nếu nhận diện thành công, hệ thống truy xuất ID người dùng tương ứng. Người vận hành xác nhận bằng cách nhấn phím Enter để gửi chuỗi dữ liệu bit sang máy in Xprinter XP-58IIH, in ra mã QR định danh suất ăn.
  4. Tối ưu hóa vector hóa nền (Background Process): Nhằm tối ưu hóa thời gian xử lý, một tiến trình chạy ngầm định kỳ 10 giây (interval 10s) sẽ tự động kiểm tra thuộc tính Create vector? của các hình ảnh trong cơ sở dữ liệu. Nếu trạng thái là false, tiến trình tiến hành chuyển đổi ảnh sang vector và cập nhật trạng thái thành true, tránh lặp lại thao tác xử lý cho các ảnh đã có vector.

Hệ thống định tuyến ứng dụng Web

Giao diện web được thiết kế dưới dạng ứng dụng đơn trang (Single Page Application), định tuyến các chức năng cụ thể:

Đường dẫn (Route) Phân quyền Chức năng thực hiện
/login Công khai Đăng nhập hệ thống bằng email và mật khẩu.
/register Công khai Đăng ký tài khoản mới và xác nhận mã kích hoạt qua email.
/my-profile Người dùng Xem thông tin cá nhân, chỉnh sửa họ tên, đổi mật khẩu và xem mã QR cá nhân.
/qr_printers Người dùng / Quản lý Ghi chép và hiển thị lịch sử in mã QR của tất cả người dùng, hỗ trợ xuất Excel.
/qr_scanners Người dùng / Quản lý Ghi chép và hiển thị lịch sử quét mã QR của tất cả người dùng, hỗ trợ xuất Excel.
/users Quản lý Hiển thị danh sách tất cả tài khoản người dùng, phân quyền và chức năng xóa tài khoản.
//users/id Quản lý Xem chi tiết thông tin, mã QR và cho phép đăng tải nhiều hình ảnh khuôn mặt để tăng độ chính xác nhận diện.
/logout Người dùng / Quản lý Đăng xuất khỏi phiên làm việc.

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

Chương 1. Tình hình trong và ngoài nước & Tổng quan đề tài

Chương này tổng kết bức tranh tổng quan về ứng dụng mã QR trên thế giới và tại Việt Nam trong các mảng kinh tế, dịch vụ, y tế và giáo dục. Tác giả phân tích các hạn chế của hệ thống quản lý suất ăn truyền thống tại doanh nghiệp, chỉ rõ nguy cơ thất thoát chi phí do người ngoài trà trộn và sự tốn kém khi trang bị máy chấm công sinh trắc học chuyên dụng. Từ đó, tác giả đề xuất mục tiêu nghiên cứu xây dựng hệ thống quản lý tích hợp mã QR và nhận dạng khuôn mặt qua camera giám sát, hỗ trợ doanh nghiệp tối ưu hóa chi phí và quản lý nhân sự hiệu quả.

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

Nội dung chương tập trung trình bày chi tiết các cơ sở công nghệ cấu thành hệ thống:

  • Cấu trúc vật lý và logic của mã QR, nguyên lý sinh ma trận ô vuông và cơ chế sửa lỗi.
  • Thông số kỹ thuật của máy in nhiệt Xprinter XP-58IIH (khổ giấy 57 mm, tốc độ 90 mm/s, độ phân giải 384 điểm/dòng).
  • Chu trình làm việc của giao thức truyền video thời gian thực RTSP và các mã lệnh điều khiển luồng đa phương tiện.
  • Các tiêu chí kỹ thuật đánh giá chất lượng hình ảnh/video (độ phân giải, bitrate, kích thước khung hình, tỷ lệ khung hình fps, phạm vi động, mức xám) cùng các hàm chức năng chính trong thư viện OpenCV.
  • Mô hình kiến trúc Web Server Database, nguyên lý hoạt động không trạng thái (stateless) của giao thức HTTP và phương thức lưu trữ tệp tin trên máy chủ.

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

Tác giả thiết kế chi tiết kiến trúc tương tác giữa bốn thành phần: camera RTSP, máy chủ web/xử lý ảnh, cơ sở dữ liệu và máy in nhiệt. Trọng tâm của chương gồm:

  • Cơ chế đồng bộ dữ liệu ảnh: tiến trình định kỳ 10 giây tự động vector hóa hình ảnh mới tải lên để tối ưu tài nguyên tính toán.
  • Thiết kế thuật toán đối sánh: mô hình hóa thuộc tính bảng Item (ID, Embedding), áp dụng công thức khoảng cách Euclid (L2 distance) trong câu lệnh SQL để truy vấn các vector lân cận gần nhất.
  • Quy trình chuyển đổi hình ảnh mã QR thành chuỗi bit dữ liệu để gửi API điều khiển máy in sau khi nhận diện thành công bằng nút Enter.
  • Thiết kế cấu trúc các trang chức năng trên nền tảng Single Page Application phục vụ hai đối tượng: nhân viên thông thường và người quản lý.

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

Chương 4 công bố kết quả đo đạc các thông số kỹ thuật thực tế của hệ thống:

  • Luồng truyền RTSP: Khởi tạo luồng stream liên tục sử dụng bộ mã hóa Lavf58.160 mpeg4, băng thông tối đa 600 kbps, duy trì tốc độ khung hình ổn định ở mức 30 - 32 fps, tỷ lệ rớt khung hình đạt drop=0.
  • Hiệu năng nhận diện khuôn mặt: Thời gian nhận diện thành công trung bình đạt khoảng 7 ms cho một hình ảnh.
  • Kiểm thử các kịch bản nhận diện:
    • Trả về 'unknown' chính xác khi khuôn mặt chưa được đăng ký trong cơ sở dữ liệu.
    • Nhận diện thành công đối với người dùng đã đăng ký khi không có vật cản.
    • Nhận diện thành công ngay cả khi người dùng đeo kính (mặc dù hình ảnh gốc đăng ký trên hệ thống không đeo kính).
  • Tích hợp máy in: Cài đặt thành công driver XP-58, in chính xác mã QR vật lý trùng khớp với mã QR hiển thị trên website khi xác nhận bằng phím Enter.
  • Vận hành giao diện web: Hoàn thiện các luồng đăng ký tài khoản có gửi mã xác thực email, đăng nhập, đổi mật khẩu, xem mã QR cá nhân, phân quyền quản trị, tải nhiều ảnh khuôn mặt và xuất báo cáo lịch sử in/quét mã QR ra tập tin Excel.

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

Chương cuối tổng kết các ưu điểm của giải pháp (tốc độ xử lý nhanh, chi phí đầu tư thấp, giao diện thân thiện, dễ mở rộng) và chỉ ra các hạn chế kỹ thuật hiện tại của hệ thống cùng các định hướng nâng cấp trong tương lai.


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

Kết quả đo đạc thực nghiệm

Thông số / Hạng mục Giá trị ghi nhận trong văn bản
Tốc độ khung hình luồng RTSP 30 – 32 khung hình/giây (fps)
Tỷ lệ rớt khung hình (drop frame) drop = 0 (dup = 1)
Băng thông luồng video (bitrate max) 600.000 bps (600 kbps)
Bộ mã hóa luồng RTSP (Encoder) Lavf58.160 mpeg4
Thời gian nhận diện khuôn mặt Khoảng 7 mili-giây (ms) / ảnh
Khả năng nhận diện khi có vật cản Thành công khi đối tượng đeo kính
Kích thước ma trận mã QR $21 \times 21$ đến $177 \times 177$ ô vuông
Khoảng cách quét mã QR 2 cm – 10 m
Tốc độ in của máy in nhiệt Xprinter 90 mm/giây
Độ phân giải máy in 384 điểm/dòng (khổ giấy 57 mm)
Chu kỳ tiến trình xử lý vector ngầm 10 giây / lần quét

Đóng góp và giải pháp đề xuất

  • Giải pháp kỹ thuật: Đề xuất mô hình tích hợp mã QR cá nhân và nhận diện khuôn mặt phục vụ bài toán quản lý suất ăn công nghiệp, khắc phục nhược điểm gian lận hoặc thất thoát tài sản tại nhà ăn doanh nghiệp.
  • Tối ưu chi phí: Thay thế các thiết bị nhận dạng vân tay/thẻ từ đắt tiền bằng việc tận dụng camera giám sát thông thường kết hợp máy in nhiệt mini và điện thoại thông minh.
  • Tối ưu hiệu năng xử lý: Ánh xạ khuôn mặt thành mảng vector embedding và tính khoảng cách L2 trực tiếp qua truy vấn cơ sở dữ liệu; kết hợp tiến trình chạy ngầm kiểm tra cờ Create vector? theo chu kỳ 10 giây giúp hệ thống không phải tính toán lại các vector đã tồn tại.
  • Tính thực tiễn: Hệ thống hỗ trợ trích xuất toàn bộ lịch sử in và quét mã ra định dạng Excel, giúp bộ phận quản lý nhân sự và nhà bếp dễ dàng đối soát số liệu khẩu phần ăn hàng ngày.

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

Dựa trên các phân tích trong văn bản khóa luận, các hạn chế và định hướng phát triển của đề tài gồm:

  • Hạn chế:
    • Hệ thống vẫn cần thao tác nhấn nút cứng (phím Enter) để ra lệnh in mã QR sau khi nhận diện thành công khuôn mặt, chưa tự động hóa hoàn toàn quy trình in.
    • Quá trình đăng tải và xác thực ảnh ban đầu phụ thuộc vào sự phê duyệt và thao tác của người quản trị trên trang quản lý.
    • Độ chính xác nhận diện có thể bị ảnh hưởng nếu điều kiện ánh sáng môi trường hoặc chất lượng camera không đáp ứng các tiêu chuẩn về độ phân giải và tỷ lệ khung hình.
  • Hướng phát triển:
    • Nâng cấp cơ chế tự động gửi lệnh in mã QR ngay khi camera nhận diện thành công với độ tin cậy cao mà không cần thao tác bấm phím thủ công.
    • Mở rộng quy mô hệ thống để triển khai đồng thời tại nhiều chi nhánh, nhà ăn có lưu lượng người dùng lớn hơn.
    • Tích hợp thêm các thuật toán thị giác máy tính và học máy tiên tiến hơn nhằm nâng cao khả năng nhận dạng khuôn mặt trong các điều kiện môi trường phức tạp (ánh sáng yếu, góc nghiêng lớn).

Giá trị tham khảo

Khóa luận là tài liệu tham khảo hữu ích cho:

  • Sinh viên và kỹ sư các ngành Kỹ thuật Máy tính, Công nghệ Thông tin, Kỹ thuật Phần mềm và Hệ thống Nhúng & IoT: Cung cấp tài liệu thực tế về việc xây dựng ứng dụng kết hợp giữa phần mềm web (SPA), xử lý dữ liệu luồng video thời gian thực và điều khiển phần cứng ngoại vi.
  • Người nghiên cứu các đề tài về Thị giác máy tính và Điểm danh/Quản lý tự động: Tham khảo phương pháp trích xuất vector khuôn mặt bằng OpenCV, cách tổ chức cơ sở dữ liệu lưu trữ embedding và kỹ thuật truy vấn khoảng cách Euclid (L2 distance) trong SQL.
  • Nhà phát triển hệ thống quản lý doanh nghiệp vừa và nhỏ: Tham khảo mô hình kiến trúc chi phí thấp (Low-cost Architecture) thay thế máy chấm công vân tay bằng camera IP/RTSP và máy in nhiệt mini.

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

1. Hệ thống xử lý thế nào để tránh tính toán vector lặp lại cho các ảnh chân dung đã lưu trong cơ sở dữ liệu?

Hệ thống sử dụng một tiến trình chạy ngầm với chu kỳ 10 giây (interval 10s). Tiến trình này gọi API kiểm tra thuộc tính cờ Create vector? của từng hình ảnh trong cơ sở dữ liệu. Nếu thuộc tính là true, hệ thống bỏ qua; nếu là false, hệ thống mới thực hiện chuyển đổi hình ảnh thành mảng vector embedding và cập nhật lại trạng thái, giúp tiết kiệm tài nguyên tính toán cho máy chủ.

2. Thuật toán nào được sử dụng để đối sánh khuôn mặt từ camera với dữ liệu người dùng?

Tác giả sử dụng thuật toán tính khoảng cách Euclid (khoảng cách L2) theo công thức $distance = \sqrt{\sum (x - y)^2}$ được tích hợp trong câu lệnh truy vấn SQL (l2_distance). Hệ thống so sánh vector embedding thu được từ camera với các vector mẫu của người dùng lưu trong bảng cơ sở dữ liệu để tìm ra 5 bản ghi có khoảng cách ngắn nhất, từ đó xác định danh tính nhân viên.

3. Luồng truyền hình ảnh từ camera về máy chủ đạt tốc độ khung hình bao nhiêu trong thực nghiệm?

Trong quá trình thực nghiệm, luồng truyền video qua giao thức RTSP sử dụng bộ mã hóa Lavf58.160 mpeg4 duy trì tốc độ ổn định từ 30 đến 32 khung hình/giây (fps), bitrate tối đa 600 kbps, với thông số dup=1 và tỷ lệ rớt khung hình bằng 0 (drop=0).

4. Loại máy in nào được tích hợp trong hệ thống và thông số kỹ thuật ra sao?

Hệ thống sử dụng máy in nhiệt Xprinter XP-58IIH. Máy in sử dụng công nghệ in nhiệt trực tiếp không cần mực trên khổ giấy cảm nhiệt 57 mm (k57), độ phân giải 384 điểm/dòng, tốc độ in đạt 90 mm/s, độ bền đầu in 100 km, hỗ trợ kết nối qua cổng USB 2.0, Bluetooth (Android) và cổng RJ11.

5. Hệ thống phản hồi như thế nào khi nhận diện khuôn mặt của người chưa đăng ký tài khoản?

Khi khuôn mặt thu nhận qua camera không có vector tương đồng trong cơ sở dữ liệu hoặc khoảng cách L2 vượt ngưỡng cho phép, hệ thống sẽ trả về kết quả 'unknown' trên màn hình và không kích hoạt lệnh in mã QR.


Kết luận

Khóa luận tốt nghiệp của tác giả Ngô Mẫn Đạt đã hoàn thành trọn vẹn mục tiêu thiết kế và hiện thực hóa hệ thống quản lý nhân viên và khẩu phần ăn bằng mã QR kết hợp nhận dạng khuôn mặt. Hệ thống vận hành ổn định trên nền tảng web Single Page Application, xử lý luồng video RTSP đạt tốc độ 30–32 fps và tốc độ nhận dạng khuôn mặt trung bình khoảng 7 ms. Công trình cung cấp một giải pháp kỹ thuật có tính ứng dụng cao, giúp doanh nghiệp tối ưu chi phí đầu tư phần cứng, ngăn ngừa thất thoát tài sản và nâng cao hiệu quả quản trị nhân sự nội bộ.