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

Tại các đô thị lớn ở Việt Nam, tốc độ gia tăng phương tiện giao thông cá nhân diễn ra rất nhanh chóng. Theo thống kê của Bộ Giao thông Vận tải được tác giả dẫn chứng, tính đến cuối năm 2019, cả nước đã có khoảng 60 triệu xe máy đang lưu thông. Sự bùng nổ phương tiện này đặt ra áp lực nặng nề lên hạ tầng giao thông tĩnh, trong khi quỹ đất dành cho các bãi đỗ xe nội đô rất khiêm tốn. Việc xây dựng và phát triển các mô hình bãi đỗ xe thông minh công cộng quy mô lớn gặp nhiều rào cản thực tế: quỹ đất thuộc quy hoạch bãi đỗ xe khan hiếm, chi phí giải phóng mặt bằng cao; các chính sách ưu đãi đầu tư chưa đồng bộ (không thuộc diện giao đất miễn tiền sử dụng đất); cùng với mức phí gửi xe thấp khiến khả năng thu hồi vốn của nhà đầu tư bị kéo dài.

Trước bối cảnh đó, việc nâng cấp phương thức quản lý và vận hành tại các bãi giữ xe hiện hữu được xem là giải pháp khả thi. Các hệ thống gửi trả xe truyền thống sử dụng vé giấy hoặc thẻ từ còn bộc lộ nhiều bất cập: bắt buộc phải có nhân viên vận hành túc trực liên tục tại các cổng kiểm soát, dễ xảy ra tình trạng ùn tắc vào khung giờ cao điểm và phát sinh phiền toái khi người dùng làm mất thẻ/vé. Việc ứng dụng công nghệ thị giác máy tính để tự động nhận diện biển số xe theo thời gian thực giúp tối ưu hóa thời gian xử lý và giảm bớt sự phụ thuộc vào con người.

Về mặt công nghệ tính toán, xu hướng gửi toàn bộ dữ liệu video về máy chủ đám mây (Cloud Computing) đang bộc lộ hạn chế lớn về giới hạn băng thông đường truyền và độ trễ dịch vụ không kiểm soát được đối với các tác vụ Internet vạn vật (IoT) thời gian thực. Khóa luận tiếp cận theo hướng Điện toán biên phân tán (Distributed Edge Computing), chuyển dịch tác vụ tính toán và xử lý hình ảnh trực tiếp về các thiết bị biên (Edge devices) có tài nguyên giới hạn như máy tính nhúng, nhằm cắt giảm độ trễ, tiết kiệm băng thông mạng và nâng cao tính an toàn dữ liệu.

Mục tiêu nghiên cứu của đề tài được xác định gồm:

  1. Xây dựng và huấn luyện các mô hình học máy (Machine Learning) và học sâu (Deep Learning) phục vụ bài toán phát hiện và nhận diện biển số xe máy.
  2. Triển khai các mô hình đã huấn luyện lên thiết bị máy tính nhúng Raspberry Pi 4 Model B để mô phỏng hệ thống gửi trả xe.
  3. Thực nghiệm, so sánh và đánh giá hiệu năng giữa các giải thuật nhằm tìm ra mô hình tối ưu cân bằng giữa độ chính xác và tốc độ xử lý trên phần cứng biên.

Nhiệm vụ nghiên cứu được phân tách thành hai giai đoạn kỹ thuật:

  1. Giai đoạn 1: Phát hiện đối tượng (Object Detection) nhằm xác định vị trí và tọa độ khung hình chữ nhật (bounding box) chứa biển số xe từ các khung hình (frame) trích xuất từ video.
  2. Giai đoạn 2: Nhận diện ký tự (Character Recognition) nhằm phân đoạn và giải mã chính xác chuỗi ký tự trên khung biển số đã cắt.

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

  • Đối tượng nghiên cứu: Quy trình và mô hình nhận diện biển số xe máy từ dữ liệu video và luồng dữ liệu truyền trực tiếp (stream).
  • Phạm vi không gian: Dữ liệu video thực tế thu thập tại bãi giữ xe của Trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP. Hồ Chí Minh.
  • Phạm vi phần cứng triển khai: Thiết bị máy tính nhúng Raspberry Pi 4 Model B.
  • Thời gian thực hiện: Từ ngày 01/03/2021 đến ngày 26/06/2021.

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 trụ cột chính của ngành học máy và xử lý ảnh số:

  • Khái niệm học máy và định nghĩa bài toán: Tác giả sử dụng định nghĩa của Tom Mitchell, mô tả bài toán phát hiện biển số xe dưới dạng bộ ba $(E, T, P)$: Kinh nghiệm $E$ là tập dữ liệu hàng nghìn mẫu huấn luyện có gán nhãn; Nhiệm vụ $T$ là xác định vị trí biển số trên ảnh/video; Thước đo hiệu suất $P$ là độ chính xác trung bình mAP (mean Average Precision). Bài toán được xếp vào nhóm Học có giám sát (Supervised Learning).
  • Mạng nơ-ron tích chập (CNN) và học sâu: Khóa luận trình bày cấu trúc nơ-ron nhân tạo (Perceptron), các hàm kích hoạt (Threshold, Sigmoid, Tanh, ReLU) và các tầng chức năng của CNN gồm: Convolution Layer (với các tham số Filter, Receptive Field, Stride, Padding), Nonlinear Layer (ReLU), Pooling Layer (Max Pooling, Average Pooling) và Fully Connected Layer.
  • Kỹ thuật phát hiện đối tượng (Object Detection):
    • Mô hình truyền thống Viola-Jones: Cơ chế sử dụng ảnh tích hợp (Integral Image) để tính toán nhanh, thuật toán tăng cường thích ứng (AdaBoost) để chọn lọc đặc trưng và cấu trúc tầng (Cascade) nhằm loại bỏ nhanh các vùng nền không chứa đối tượng. Hai loại đặc trưng được sử dụng là Haar-Like (tính toán chênh lệch cường độ pixel giữa các vùng chữ nhật lân cận) và LBP (Local Binary Patterns - mô tả cấu trúc cục bộ của pixel so với 8 pixel lân cận, có khả năng chống chịu tốt với biến đổi ánh sáng đơn sắc).
    • Mô hình học sâu một giai đoạn (One-stage Detector): Mô hình SSD (Single Shot MultiBox Detector) kết hợp mạng trích xuất đặc trưng MobileNet (sử dụng kỹ thuật Depthwise Separable Convolution gồm Depthwise Convolution và Pointwise Convolution để giảm tối đa khối lượng tham số tính toán); và mô hình YOLO (You Only Look Once) với các phiên bản YOLOv4, YOLOv4-tiny sử dụng backbone Darknet-53.
  • Kỹ thuật phân loại và nhận diện ký tự: Thuật toán máy vectơ hỗ trợ (Support Vector Machine - SVM) tìm kiếm siêu phẳng (Hyperplane) tối ưu nhằm phân tách các lớp ký tự với khoảng cách lề lớn nhất.

Phương pháp nghiên cứu thực nghiệm được triển khai theo quy trình:

  • Thu thập dữ liệu video thực tế tại bãi giữ xe trường đại học, trích xuất thành các khung ảnh tĩnh.
  • Xây dựng tập dữ liệu huấn luyện gồm tập mẫu dương (ảnh chứa biển số xe) và tập mẫu âm (ảnh nền không chứa biển số). Gán nhãn dữ liệu theo định dạng chuẩn XML (Pascal VOC cho SSD), định dạng TXT (Darknet cho YOLO) và định dạng tọa độ (cho OpenCV Cascade).
  • Huấn luyện mô hình phát hiện khung biển số trên nền tảng đám mây Google Colab có hỗ trợ GPU, sau đó tối ưu hóa và nạp chạy thực nghiệm trên phần cứng Raspberry Pi 4 Model B để thu thập các chỉ số thời gian và độ chính xác.

Thiết kế và triển khai

Quy trình xử lý của hệ thống nhận diện biển số xe được thiết kế theo luồng khép kín gồm các khối chức năng:

[Khung hình đầu vào (Frame)] 
[Chuỗi ký tự biển số xe đầu ra]
  • Khối phát hiện khung biển số (License Plate Detection): Tiếp nhận ảnh đầu vào có kích thước cố định, đưa qua mô hình dò tìm đối tượng để xuất ra tọa độ bounding box của biển số xe máy.
  • Khối phân vùng và trích xuất ký tự (Character Segmentation): Vùng ảnh biển số sau khi cắt được chuyển đổi mức xám (Grayscale), xử lý nhị phân và áp dụng thuật toán tìm đường viền (Contour) của OpenCV để cô lập từng ký tự đơn lẻ.
  • Khối nhận diện ký tự (Character Recognition): Các ma trận điểm ảnh ký tự sau phân đoạn được chuẩn hóa kích thước và đưa vào mô hình SVM đã huấn luyện để phân lớp thành các chữ số (0–9) và chữ cái (A–Z).

Môi trường công nghệ và thiết bị triển khai:

  • Phần cứng thử nghiệm: Máy tính nhúng Raspberry Pi 4 Model B (Broadcom BCM2711, Quad-core Cortex-A72 64-bit SoC, RAM LPDDR4).
  • Công cụ huấn luyện: Google Colaboratory GPU, framework Darknet, TensorFlow Object Detection API, OpenCV (opencv_createsamples, opencv_traincascade).
  • Môi trường thực thi: Hệ điều hành Raspberry Pi OS, môi trường ảo Python và các thư viện hỗ trợ xử lý ảnh.

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

Khóa luận được cấu trúc thành 5 chương với các nội dung trọng tâm:

Chương 1. Giới thiệu đề tài

Chương mở đầu phân tích thực trạng giao thông đô thị tại Việt Nam, sự quá tải của hệ thống bãi giữ xe máy và những rào cản tài chính, chính sách khi triển khai bãi xe thông minh. Tác giả giới thiệu xu hướng chuyển dịch từ điện toán đám mây sang điện toán biên (Edge Computing). Chương này xác định rõ mô tả bài toán, đầu vào (frame trích xuất từ video), đầu ra (chuỗi ký tự), phạm vi thực hiện tại bãi xe UIT, mục tiêu xây dựng và benchmark các mô hình học máy/học sâu trên Raspberry Pi 4 Model B, cùng kế hoạch thực hiện chia làm 4 giai đoạn cụ thể từ tháng 3 đến tháng 6 năm 2021.

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

Chương 2 trình bày có hệ thống các khái niệm toán học và kỹ thuật của Machine Learning và Deep Learning. Tác giả phân loại các phương thức học (Supervised, Unsupervised, Semi-Supervised, Reinforcement Learning), phân tích nguyên lý phân loại đối tượng bằng mạng CNN (cơ chế trượt filter, Stride, Padding, ReLU, Max Pooling). Tiếp đó, chương phân tích sâu các thuật toán: Viola-Jones với đặc trưng Haar-Like và LBP; kiến trúc SSD kết hợp MobileNet tối ưu tham số qua Depthwise Separable Convolution; kiến trúc YOLO (YOLOv4, YOLOv4-tiny) với mạng Darknet-53; và nguyên lý phân lớp tuyến tính/phi tuyến bằng SVM để nhận diện ký tự.

Chương 3. Mô hình phát hiện và nhận diện biển số xe

Chương này đi sâu vào quy trình kỹ thuật xây dựng và huấn luyện mô hình:

  • Xây dựng tập dữ liệu: Thu thập tập ảnh dương (chứa biển số xe máy) và tập ảnh âm (khung cảnh không có biển số), chuẩn bị tập mẫu ký tự chuẩn.
  • Quy trình cho mô hình SSD: Gán nhãn bounding box xuất file XML, thiết lập Label Map và file cấu hình pipeline.config, huấn luyện các biến thể SSD MobileNet v2, SSDLite MobileNet v2, SSD Inception v2, SSD Quantized v2 trên Google Colab.
  • Quy trình cho mô hình Haar/LBP Cascade: Sử dụng công cụ opencv_createsamples để tạo tập mẫu .vec và chạy opencv_traincascade với các tham số điều chỉnh số tầng (numStages), tỷ lệ phát hiện (minHitRate) và tỷ lệ báo sai (maxFalseAlarmRate).
  • Quy trình cho mô hình YOLO: Gán nhãn xuất file TXT theo định dạng Darknet, hiệu chỉnh file cấu hình mạng, biên dịch mã nguồn Darknet trên môi trường Colab và huấn luyện YOLOv4, YOLOv4-tiny.
  • Quy trình nhận diện ký tự: Trích xuất đặc trưng pixel của các ký tự mẫu và huấn luyện bộ phân loại SVM đa lớp.

Chương 4. Thực nghiệm và đánh giá

Chương 4 trình bày phương pháp và kết quả đánh giá hệ thống:

  • Chỉ số đánh giá: Định nghĩa chi tiết các độ đo Intersection over Union (IoU), True Positive (TP), False Positive (FP), False Negative (FN), True Negative (TN), Precision, Recall, Average Precision (AP), mean Average Precision (mAP) và tốc độ xử lý tính bằng số khung hình trên giây (FPS).
  • Thiết lập môi trường: Cấu hình thông số kỹ thuật phần cứng Raspberry Pi 4 Model B, cài đặt hệ điều hành, cấu hình môi trường ảo Python và các gói phụ thuộc.
  • Phân tích kết quả thực nghiệm: Đánh giá hiệu năng của các mô hình SSD, YOLO, Haar Cascade và LBP Cascade khi chạy trên Raspberry Pi.
  • Phân tích các trường hợp lỗi thực tế: Đánh giá chi tiết các tình huống sai số trong môi trường thử nghiệm: nhận diện sai các cặp ký tự có hình dạng tương đồng (ký tự 'B' nhầm thành số '8', hoặc chữ 'B' nhầm thành số '6' hay chữ 'U'); mô hình không thể tìm đường viền (contour) đầy đủ các ký tự do tác động của ánh sáng chói, bóng mờ ngoại cảnh; và hiện tượng suy giảm độ chính xác khi biển số xe bị nghiêng so với góc đặt camera.

Chương 5. Kết luận

Chương kết luận tổng hợp lại toàn bộ kết quả nghiên cứu, khẳng định tính khả thi của việc triển khai mô hình học máy/học sâu trên thiết bị phần cứng nhúng, đồng thời tóm tắt các hạn chế còn tồn tại và đề xuất các định hướng nâng cấp trong tương lai.

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

Khóa luận đã hoàn thành việc huấn luyện và thực nghiệm đánh giá một dải rộng các thuật toán phát hiện và nhận diện biển số xe máy:

Nhóm giải thuật Biến thể mô hình đã huấn luyện Vai trò trong hệ thống Nền tảng huấn luyện / triển khai
Viola-Jones (Machine Learning) Haar Cascade, LBP Cascade Phát hiện khung biển số OpenCV Tools / Raspberry Pi 4 Model B
SSD (Deep Learning) SSD MobileNet v2, SSDLite MobileNet v2, SSD Inception v2, SSD Quantized v2 Phát hiện khung biển số TensorFlow API, Colab GPU / Raspberry Pi 4 Model B
YOLO (Deep Learning) YOLOv4, YOLOv4-tiny Phát hiện khung biển số Darknet, Colab GPU / Raspberry Pi 4 Model B
Support Vector Machine Multi-class SVM Nhận diện ký tự (OCR) Scikit-Learn/OpenCV / Raspberry Pi 4 Model B

Các kết quả định tính và phân tích thực nghiệm được ghi nhận:

  • Hệ thống hoạt động chính xác trong điều kiện chụp chuẩn, khoảng cách và góc đặt camera phù hợp, ánh sáng đồng đều.
  • Khóa luận chỉ ra các trường hợp giới hạn gây lỗi nhận dạng:
    • Lỗi nhầm lẫn ký tự tương đồng: Thuật toán SVM bị nhầm giữa chữ cái 'B' và chữ số '8', hoặc giữa 'B' với '6'/'U' do đặc trưng đường cong gần giống nhau.
    • Lỗi phân đoạn (segmentation): Khi bị tác động bởi ngoại cảnh (bụi bẩn, phản quang, ánh sáng gắt), thuật toán tìm đường viền không thể contour trọn vẹn toàn bộ các ký tự trên khung biển.
    • Lỗi góc chụp: Khung biển số bị xoay nghiêng khiến bounding box bị lệch và làm sai lệch quá trình tách ký tự tiếp theo.

Đóng góp của khóa luận:

  • Xây dựng một tập dữ liệu ảnh biển số xe máy được thu thập và gán nhãn thủ công từ thực tế bãi đỗ xe trường đại học.
  • Đóng vai trò là một công trình thử nghiệm hiệu năng (benchmark) so sánh trực tiếp giữa các phương pháp học máy truyền thống và học sâu hiện đại khi triển khai trên phần cứng nhúng biên (Raspberry Pi 4 Model B) có tài nguyên hạn chế.
  • Cung cấp cơ sở thực nghiệm giúp các nhà phát triển lựa chọn kiến trúc phù hợp khi xây dựng các hệ thống bãi đỗ xe thông minh.

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

Khóa luận tự chỉ ra các hạn chế kỹ thuật trong quá trình thực hiện:

  • Khả năng phát hiện biển số và nhận diện ký tự phụ thuộc nhiều vào vị trí lắp đặt cố định của camera; hệ thống dễ suy giảm độ chính xác nếu góc camera tạo độ nghiêng lớn so với biển số.
  • Giải thuật tách ký tự bằng phương pháp tìm đường viền (contour) truyền thống kém bền vững trước các yếu tố ngoại cảnh như bề mặt biển số bị lóa sáng, dính vết bẩn hoặc bóng râm che khuất.
  • Tài nguyên tính toán và bộ nhớ trên Raspberry Pi 4 Model B có giới hạn, gây khó khăn cho việc duy trì tốc độ khung hình cao khi chạy các mô hình học sâu có kiến trúc phức tạp.

Các hướng phát triển tiếp theo được đề xuất:

  • Nghiên cứu tích hợp các giải thuật căn chỉnh góc nghiêng tự động (deskewing) cho biển số xe trước khi thực hiện bước phân đoạn ký tự.
  • Cải tiến giai đoạn nhận diện ký tự bằng cách áp dụng các mạng học sâu nhận dạng chữ viết chuyên dụng (như CRNN) hoặc các kiến trúc end-to-end thay thế cho pipeline tách contour + SVM truyền thống.
  • Mở rộng thử nghiệm trực tiếp trên luồng camera stream thời gian thực tại các cổng bãi xe trong nhiều điều kiện thời tiết và thời điểm ánh sáng khác nhau (ban ngày, ban đêm).

Giá trị tham khảo

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

  • Sinh viên, học viên chuyên ngành Công nghệ Thông tin, Kỹ thuật Mạng máy tính & Truyền thông, Khoa học Máy tính và Trí tuệ nhân tạo đang thực hiện các đồ án liên quan đến Thị giác máy tính (Computer Vision) và Trí tuệ nhân tạo biên (Edge AI).
  • Các kỹ sư phần mềm, kỹ sư nhúng phát triển các hệ thống giao thông thông minh (ITS), trạm thu phí không dừng hoặc hệ thống bãi đỗ xe tự động.

Các nội dung có giá trị tham khảo kỹ thuật cao trong văn bản:

  • Quy trình chuẩn bị dữ liệu và chuyển đổi định dạng nhãn chi tiết cho nhiều loại framework (Pascal VOC XML, Darknet TXT, cấu hình Haar/LBP).
  • Phương pháp cấu hình và quy trình nạp huấn luyện các biến thể mô hình SSD MobileNet và YOLO trên Google Colab.
  • Phân tích cơ chế hoạt động của kỹ thuật Depthwise Separable Convolution giúp tối ưu hóa mạng nơ-ron trên thiết bị nhúng.
  • Bộ tiêu chí đánh giá hiệu năng mô hình (IoU, mAP, FPS) và phân tích các trường hợp lỗi nhận dạng thực tế tại bãi xe.

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

1. Khóa luận giải quyết bài toán cốt lõi nào và hướng tới môi trường ứng dụng gì?
Khóa luận tập trung nghiên cứu, huấn luyện và đánh giá hiệu năng (benchmark) các kỹ thuật học máy và học sâu phục vụ bài toán phát hiện và nhận diện biển số xe máy, nhằm triển khai thực tế trên thiết bị máy tính nhúng (Raspberry Pi 4 Model B) cho các hệ thống bãi giữ xe thông minh.

2. Tác giả đã huấn luyện và thử nghiệm những mô hình phát hiện đối tượng cụ thể nào?
Nghiên cứu đã huấn luyện 8 mô hình thuộc 3 nhóm kỹ thuật: nhóm học sâu SSD (SSD MobileNet v2, SSDLite MobileNet v2, SSD Inception v2, SSD Quantized v2), nhóm học sâu YOLO (YOLOv4, YOLOv4-tiny) và nhóm học máy truyền thống Viola-Jones (Haar Cascade, LBP Cascade).

3. Kỹ thuật nào được sử dụng để nhận diện các ký tự trên biển số xe sau khi cắt khung?
Sau khi phát hiện khung biển số, hệ thống sử dụng thuật toán xử lý ảnh để tìm đường viền (contour) nhằm tách rời từng ký tự đơn lẻ, sau đó đưa vào mô hình Support Vector Machine (SVM) đa lớp để phân loại và xuất ra chuỗi ký tự.

4. Vì sao nghiên cứu lại triển khai thực nghiệm trên Raspberry Pi 4 Model B thay vì máy trạm có GPU?
Tác giả hướng đến mô hình Điện toán biên (Edge Computing) cho các hệ thống IoT nhằm giảm độ trễ truyền dữ liệu và tiết kiệm băng thông mạng. Thực nghiệm trên Raspberry Pi 4 Model B giúp đánh giá trực tiếp khả năng đáp ứng thực tế của các mô hình trên phần cứng có năng lực xử lý và tài nguyên hạn chế.

5. Những nguyên nhân chính nào dẫn đến việc nhận diện sai biển số trong các ca thử nghiệm thực tế?
Các sai số phát sinh chủ yếu do: sự nhầm lẫn giữa các ký tự có đường nét gần giống nhau (chữ 'B' bị nhận nhầm thành số '8', hoặc chữ 'B' nhầm thành số '6'/'U'); thuật toán contour không bắt trọn ký tự khi bề mặt biển số bị lóa sáng hoặc nhiễu bóng mờ ngoại cảnh; và trường hợp biển số bị nghiêng so với góc quan sát của camera.

Kết luận

Khóa luận tốt nghiệp của nhóm tác giả Tống Tú Ngọc và Võ Thị Ngọc Phương đã nghiên cứu toàn diện quy trình xây dựng hệ thống nhận diện biển số xe máy từ lý thuyết đến thực nghiệm triển khai trên phần cứng nhúng Raspberry Pi 4 Model B. Thông qua việc huấn luyện và so sánh đa dạng các mô hình học máy (Haar/LBP Cascade, SVM) và học sâu (SSD MobileNet, YOLOv4/tiny), công trình đã cung cấp bức tranh đối sánh rõ nét về mối tương quan giữa độ chính xác và tốc độ xử lý trên thiết bị biên. Mặc dù còn một số hạn chế về xử lý góc nghiêng và nhiễu ánh sáng ngoại cảnh, kết quả của đề tài tạo tiền đề kỹ thuật vững chắc cho việc ứng dụng thị giác máy tính vào các giải pháp bãi đỗ xe thông minh trong thực tế.