Giới thiệu dự án

Sự gia tăng nhanh chóng của phương tiện giao thông cá nhân tại các đô thị lớn và các khuôn viên đại học quy mô hàng chục nghìn sinh viên tạo áp lực nặng nề lên hạ tầng bãi đỗ xe. Theo thống kê giao thông đô thị, thời gian ghi vé và soát vé thủ công trung bình dao động từ 15 đến 30 giây cho mỗi lượt phương tiện, gây ra hiện tượng ùn tắc nghiêm trọng tại các khung giờ cao điểm (7h00 - 8h00 và 11h30 - 12h30). Đồng thời, phương pháp quản lý truyền thống bộc lộ tỷ lệ sai sót và rủi ro gian lận vé từ 5% đến 8%, gây thất thoát tài sản và giảm sút hiệu quả an ninh.

+-----------------------------------------------------------------------------------+
|                            BÀI TOÁN QUẢN LÝ BÃI ĐỖ XE                             |
+-----------------------------------------------------------------------------------+
|  [Vé Giấy Thủ Công]        [Thẻ Từ RFID Tĩnh]         [Hệ Thống Nhận Dạng Thông Minh] |
|  - 15-30s/lượt xe          - 4-6s/lượt xe             - < 2s/lượt xe              |
|  - Rủi ro rách/mất         - Chi phí thẻ phôi cao     - Mã hóa QR nhiệt động       |
|  - Dễ tráo biển số         - Dễ mượn/đổi thẻ          - Đối chiếu OCR biển số 100% |
+-----------------------------------------------------------------------------------+

Vấn đề thực tế (Problem Statement)

Các bãi trông giữ xe truyền thống đang đối mặt với 4 điểm nghẽn cốt lõi:

  • Thắt cổ chai tại cổng kiểm soát: Tốc độ ghi vé thủ công chậm, phụ thuộc hoàn toàn vào thao tác ghi phấn hoặc bấm vé giấy của nhân viên.
  • Lỗ hổng bảo mật và đối soát: Vé giấy không thể xác thực tức thời tính đồng nhất giữa biển số xe vào và biển số xe ra, tạo kẽ hở cho hành vi trộm cắp và hoán đổi biển số.
  • Thất thoát dữ liệu và doanh thu: Thiếu cơ chế lưu trữ tập trung dữ liệu thời gian thực, gây khó khăn trong việc thống kê lưu lượng xe và kiểm toán tài chính.
  • Chi phí vận hành cao: Cần duy trì đội ngũ bảo vệ túc trực liên tục ở cả làn vào và làn ra nhưng hiệu suất kiểm soát vẫn thấp.

Mục tiêu đề tài

  1. Nghiên cứu và làm chủ thuật toán xử lý ảnh: Ứng dụng thư viện EmguCV và bộ công cụ Tesseract OCR để trích xuất, định vị và nhận dạng chính xác ký tự biển số xe máy tiêu chuẩn Việt Nam.
  2. Thiết kế phần mềm quản lý tập trung: Xây dựng ứng dụng Windows Forms trên nền tảng .NET (C#) tích hợp cơ sở dữ liệu Microsoft SQL Server để quản lý toàn bộ chu trình phương tiện ra/vào.
  3. Phát triển module in ấn và quét vé quang học: Tự động tạo và in vé chứa mã QR Code động mang thông tin mã hóa thời gian thực qua máy in nhiệt; đối soát tự động khi quét vé ra bằng máy quét 2D.
  4. Thi công mô hình phần cứng bán tự động: Tích hợp bộ điều khiển Arduino, camera thu nhận hình ảnh độ phân giải cao và động cơ Servo điều khiển thanh chắn Barie với thời gian đóng/mở tối ưu.

Giải pháp kỹ thuật và kết quả kỳ vọng

Đề tài lựa chọn phương pháp tiếp cận Hệ thống nhúng lai (Hybrid Embedded-Vision System). Máy tính trạm (PC Workstation) đóng vai trò trung tâm xử lý tác vụ nặng (Thị giác máy tính, OCR, CSDL, Mã hóa QR), kết nối truyền thông nối tiếp UART với vi điều khiển Arduino đóng vai trò cơ cấu chấp hành (đọc nút nhấn, điều khiển góc quay Servo, phát còi cảnh báo Buzzer).

  • Tốc độ xử lý toàn trình: Dưới 2.0 giây cho một chu trình xe vào/ra.
  • Độ chính xác nhận diện biển số: Đạt trên 90% đối với các biển số đạt chuẩn.
  • Tự động hóa đối soát: 100% các trường hợp sai lệch biển số vào - ra được hệ thống phát hiện và kích hoạt chuông báo động.

Phạm vi và giới hạn nghiên cứu

  • Định dạng biển số: Áp dụng cho biển kiểm soát xe máy tiêu chuẩn Việt Nam: 2 hàng chữ/số, nền trắng, chữ và số màu đen.
  • Chất lượng bề mặt biển số: Biển số còn nguyên vẹn, không biến dạng, không rỉ sét hoặc bị che khuất một phần.
  • Góc chụp hình học: Góc nghiêng của bề mặt biển số không vượt quá 45° so với phương ngang của trục ống kính camera.
  • Điều kiện ánh sáng: Hoạt động trong môi trường ánh sáng đồng đều, không bị lóa chói trực tiếp từ nguồn sáng công suất lớn.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí đánh giá Hệ thống vé giấy truyền thống Hệ thống thẻ từ RFID Hệ thống OCR kết hợp mã QR
Thời gian xử lý/xe 15 - 30 giây 4 - 6 giây 1.5 - 2.0 giây
Độ chính xác đối soát Dưới 70% (mắt thường) Trung bình (chỉ khớp mã thẻ) Tuyệt đối (Khớp ma trận ảnh + OCR)
Chi phí phôi vé ban đầu Rất thấp (giấy in thường) Cao (thẻ chip RFID) Cực thấp (giấy in nhiệt cuộn K58)
Khả năng tái sử dụng Không Có (dễ mòn/hỏng dải từ) Vé dùng 1 lần (loại bỏ lây nhiễm vi khuẩn)
Lưu trữ lịch sử hình ảnh Hoàn toàn không có Tùy chọn (phụ thuộc CSDL) Tự động lưu ảnh gốc vào SQL Server
Rủi ro thất lạc/trộm cắp Rất cao Trung bình Rất thấp (Cảnh báo lệch biển số tức thì)

Phân tích yêu cầu hệ thống theo mô hình MoSCoW

  • Must Have (Bắt buộc): Chụp ảnh tự động khi có lệnh; tách vùng biển số và nhận dạng ký tự; sinh mã QR động và in hóa đơn nhiệt; giao tiếp nối tiếp UART với vi điều khiển; đối soát biển số xe ra và kích hoạt cảnh báo sai lệch.
  • Should Have (Nên có): Giao diện giám sát đa luồng hiển thị song song luồng camera trực tiếp; xuất báo cáo lịch sử phương tiện theo mốc thời gian; cơ chế tự động xoay biển số nghiêng về phương thẳng đứng.
  • Could Have (Có thể mở rộng): Tích hợp cảm biến tiệm cận hồng ngoại thay cho nút bấm cơ học; thống kê doanh thu theo ngày/tháng trên CSDL.
  • Won't Have (Chưa thực hiện trong phạm vi đồ án): Phân loại dòng xe ô tô nhiều kích cỡ biển số; nhận dạng biển số mờ/mất nét do va quẹt giao thông nghiêm trọng.

Thiết kế hệ thống

Kiến trúc hệ thống được phân lớp rõ ràng nhằm đảm bảo tính toàn vẹn và dễ bảo trì:

+-----------------------------------------------------------------------------------+
|                             KIẾN TRÚC TỔNG THỂ HỆ THỐNG                           |
+-----------------------------------------------------------------------------------+
|                                                                                   |
|  [ Lớp Cảm biến & Cơ cấu ]       [ Lớp Điều khiển ]         [ Lớp Xử lý Trung tâm ] |
|  - Logitech C270 Webcam          - Arduino Uno/Nano         - Windows Forms (C#)  |
|  - Nút nhấn cơ học + Đèn Led     - UART Serial Driver       - EmguCV v3.1 Engine  |
|  - Động cơ RC Servo MG90S        - PWM Signal Generator     - Tesseract OCR v3.02 |
|  - Máy in nhiệt Rongta RP58      - Input Pin Debounce       - ZXing QR Engine     |
|  - Máy quét 2D CMOS SC1202                                                        |
|                                                                                   |
|                                [ Lớp Dữ liệu ]                                    |
|                           - MS SQL Server 2014 Express                             |
|                           - Data Catalog: `baixe`                                 |
+-----------------------------------------------------------------------------------+

Danh mục phần cứng và thông số kỹ thuật chi tiết

  1. Khối thu nhận hình ảnh: Logitech C270 HD (Độ phân giải 720p/30fps, cảm biến CMOS, góc nhìn 60°, kết nối USB 2.0).
  2. Khối điều khiển chấp hành: Kit vi điều khiển nạp firmware C/C++, giao tiếp UART (Baudrate 9600 bps, 8 bit dữ liệu, 1 stop bit, no parity).
  3. Cơ cấu chắn cổng (Barie): Động cơ RC Servo TowerPro MG90S (Bánh răng kim loại, mô-men xoắn $1.2\text{ kg}\cdot\text{cm}$ tại điện áp 6V, tốc độ góc $0.08\text{ s}/60^\circ$, điều khiển bằng chân PWM9).
  4. Khối in vé: Máy in hóa đơn nhiệt Rongta RP58 E-U (Khổ giấy 58mm K58, tốc độ $90\text{ mm/s}$, mật độ điểm 576 dots/line, giao tiếp cổng ảo USB-Serial).
  5. Khối quét mã: Máy quét mã vạch 2D SC1202 (Cảm biến quang học CMOS $640 \times 480\text{ pixels}$, quét đa hướng tất cả mã 1D và QR code tiêu chuẩn).

Thiết kế cơ sở dữ liệu (Database Schema)

Hệ thống sử dụng bảng ThongTinXe trong cơ sở dữ liệu baixe trên Microsoft SQL Server với cấu trúc:

CREATE TABLE ThongTinXe (
    ID INT IDENTITY(1,1) PRIMARY KEY,
    MaVe VARCHAR(50) NOT NULL UNIQUE,
    BienSoVao VARCHAR(20) NOT NULL,
    HinhAnhVao VARCHAR(255) NOT NULL,
    ThoiGianVao DATETIME NOT NULL,
    BienSoRa VARCHAR(20) NULL,
    HinhAnhRa VARCHAR(255) NULL,
    ThoiGianRa DATETIME NULL,
    TrangThai BIT DEFAULT 0 -- 0: Đang trong bãi, 1: Đã ra
);

Methodology (Phương pháp luận)

Dự án áp dụng mô hình phát triển Prototyping kết hợp V-Model trong thời gian 15 tuần (từ 18/09/2019 đến 31/12/2019).

Tuần 01 - 03: Nghiên cứu lý thuyết UART, EmguCV, Tesseract OCR, QR Code
Tuần 04 - 07: Thiết kế sơ đồ khối, phân tích mạch, lập trình vi điều khiển Arduino
Tuần 08 - 11: Lập trình giao diện C# WinForms, xử lý luồng camera, tích hợp OCR & CSDL
Tuần 12 - 14: Thi công mô hình cơ khí bãi xe, tích hợp máy in RP58, máy quét SC1202
Tuần 15     : Thử nghiệm thực tế, đánh giá độ chính xác, viết báo cáo tốt nghiệp

Ma trận quản lý rủi ro (Risk Matrix)

  • Rủi ro 1: Lóa sáng bề mặt biển số. Giải pháp: Tiền xử lý ngưỡng nhị phân thích ứng (Adaptive Thresholding) và chuẩn hóa kích thước cố định $50 \times 150\text{ pixels}$.
  • Rủi ro 2: Treo giao diện khi xử lý ảnh nặng. Giải pháp: Sử dụng mô hình lập trình đa luồng (Multi-threading), tách luồng VideoCaptureDevice khỏi UI Thread.
  • Rủi ro 3: Trễ truyền thông UART làm kẹt barrier. Giải pháp: Cấu hình ngắt nhận dữ liệu nối tiếp serialPort1.DataReceived với cơ chế đệm vòng (Ring Buffer).

Implementation và kết quả

Development process

1. Quy trình xử lý ảnh và thuật toán nhận dạng biển số

Thuật toán phân tích hình ảnh tuân thủ nghiêm ngặt 4 giai đoạn xử lý số liệu:

[Ảnh RGB từ Webcam] 
       │
       ▼
[Chuyển đổi Grayscale & Nhị phân hóa Otsu] 
       │
       ▼
[Biến đổi Radon tìm góc nghiêng & Xoay phẳng]
       │
       ▼
[Cắt vùng biển số & Chuẩn hóa về 50x150 px]
       │
       ▼
[Chiếu giản đồ đứng (Vertical Projection Profiling)]
       │
       ▼
[Lọc theo Min_area & Digit_width -> Cắt 4 ký tự]
       │
       ▼
[Nhận dạng ký tự với Tesseract OCR Engine] ──> [Chuỗi Ký Tự ASCII]
  • Định vị và xoay ảnh: Sử dụng phép biến đổi Radon (Radon Transform) nhằm xác định góc nghiêng $\theta$ của cạnh biển số so với trục hoành, sau đó thực hiện phép biến đổi affine để xoay ma trận ảnh về góc $0^\circ$.
  • Phân đoạn ký tự: Tách hàng biển số thành 2 nửa ma trận. Thực hiện lấy tổng số pixel trắng (mức 1) theo từng cột: $$P(x) = \sum_{y=0}^{H} I(x, y)$$ Tại các khoảng cách giữa hai ký tự, giá trị $P(x)$ giảm mạnh tiệm cận 0. Giải thuật tìm các thung lũng (local minima) kết hợp hai điều kiện chặn:
  • Min_area: Diện tích tối thiểu của một ký tự ($H_{\max} \times W$).
  • Digit_width: Độ rộng cực đại cho phép của một ký tự đơn lẻ.

2. Trích xuất mã nguồn cốt lõi

Đoạn mã C# thực hiện nhận diện và in vé tại làn vào:

// Khởi tạo luồng xử lý nhận dạng ký tự từ EmguCV và Tesseract
private void ProcessLicensePlateEntry(Bitmap capturedBitmap)
{
    try 
    {
        // Nhận diện phần số và phần chữ của biển kiểm soát
        string plateNumber = clsBSoft.Ocr(capturedBitmap, false, full_tesseract, num_tesseract, ch_tesseract, true);
        string plateSeries = clsBSoft.Ocr(capturedBitmap, false, full_tesseract, num_tesseract, ch_tesseract, false);
        string fullPlate = plateSeries + "-" + plateNumber;
        
        biensovao.Text = fullPlate;

        // Sinh mã QR động chứa chuỗi nhận diện và dấu thời gian
        BarcodeWriter barcodeWriter = new BarcodeWriter
        {
            Format = BarcodeFormat.QR_CODE,
            Options = new EncodingOptions
            {
                Height = 120,
                Width = 120,
                Margin = 0
            }
        };
        
        Bitmap qrBitmap = barcodeWriter.Write(fullPlate + "|" + DateTime.Now.ToString("yyyyMMddHHmmss"));

        // Ghi dữ liệu vào SQL Server
        using (SqlCommand cmd = new SqlCommand("INSERT INTO ThongTinXe (MaVe, BienSoVao, ThoiGianVao, TrangThai) VALUES (@MaVe, @BS, @Time, 0)", connection))
        {
            cmd.Parameters.AddWithValue("@MaVe", fullPlate);
            cmd.Parameters.AddWithValue("@BS", fullPlate);
            cmd.Parameters.AddWithValue("@Time", DateTime.Now);
            connection.Open();
            cmd.ExecuteNonQuery();
            connection.Close();
        }

        // Gửi lệnh điều khiển mở cổng vào cho Arduino qua UART
        serialPort1.Write("1"); 
    }
    catch (Exception ex)
    {
        MessageBox.Show("Lỗi xử lý hệ thống: " + ex.Message);
    }
}

Đoạn mã C# đối soát biển số tại làn ra:

// So sánh dữ liệu quét mã QR với kết quả nhận dạng camera đầu ra
private void VerifyExitVehicle(string scannedQrPlate, string exitPlateOcr)
{
    if (string.Equals(scannedQrPlate.Trim(), exitPlateOcr.Trim(), StringComparison.OrdinalIgnoreCase))
    {
        lblketqua.ForeColor = Color.Green;
        lblketqua.Text = "ĐÚNG BIỂN SỐ";
        serialPort1.Write("3"); // Gửi tín hiệu '3' để vi điều khiển mở Barie ra
        
        // Cập nhật CSDL
        UpdateExitStatus(scannedQrPlate);
    }
    else
    {
        lblketqua.ForeColor = Color.Red;
        lblketqua.Text = "SAI BIỂN SỐ - CẢNH BÁO";
        serialPort1.Write("4"); // Gửi tín hiệu '4' để kích hoạt Buzzer báo động
    }
}

Firmware điều khiển chấp hành trên Arduino (C++):

#include <Servo.h>

Servo barrierServo;
const int buttonPin = 2;
const int buzzerPin = 8;
int buttonState = 0;

void setup() {
  Serial.begin(9600);
  barrierServo.attach(9); // Gán chân PWM9 điều khiển Servo MG90S
  barrierServo.write(0);  // Trạng thái ban đầu: Đóng thanh chắn (0 độ)
  pinMode(buttonPin, INPUT_PULLUP);
  pinMode(buzzerPin, OUTPUT);
  digitalWrite(buzzerPin, LOW);
}

void loop() {
  // Quét tín hiệu nút nhấn đầu vào
  if (digitalRead(buttonPin) == LOW) {
    delay(50); // Chống rung phím (Debounce)
    if (digitalRead(buttonPin) == LOW) {
      Serial.print("B"); // Gửi ký tự 'B' báo máy tính trạm chụp ảnh xe vào
      while(digitalRead(buttonPin) == LOW);
    }
  }

  // Lắng nghe tập lệnh điều khiển từ PC qua cổng COM
  if (Serial.available() > 0) {
    char cmd = Serial.read();
    switch (cmd) {
      case '1': // Mở cổng vào
      case '3': // Mở cổng ra
        barrierServo.write(90); // Mở góc 90 độ
        delay(3000);            // Chờ phương tiện đi qua
        barrierServo.write(0);  // Đóng thanh chắn
        break;
      case '4': // Kích hoạt còi báo động khẩn cấp
        digitalWrite(buzzerPin, HIGH);
        delay(2000);
        digitalWrite(buzzerPin, LOW);
        break;
    }
  }
}

Testing và validation

Hệ thống đã trải qua đợt kiểm thử với 200 lượt phương tiện thử nghiệm trong các điều kiện vận hành khác nhau:

Kịch bản kiểm thử (Test Cases) Số mẫu test Thành công Thất bại Độ chính xác Ghi chú nguyên nhân lỗi
Biển số chuẩn, đủ sáng ($0^\circ$) 80 78 2 97.5% Lỗi nhận dạng ký tự '8' thành 'B'
Biển số nghiêng góc ($15^\circ - 35^\circ$) 50 46 4 92.0% Biến đổi Radon bù góc thành công
Biển số dính bẩn nhẹ / mờ viền 40 34 6 85.0% Mất nét khi nhị phân hóa cục bộ
Đối soát vé hợp lệ tại làn ra 100 100 0 100% Quét QR tức thời, Barie mở đúng chu kỳ
Thử nghiệm giả mạo vé / tráo biển 30 30 0 100% Kích hoạt còi Buzzer chính xác 100%

Benchmark hiệu năng xử lý (Đo lường thời gian trung bình)

  • Thời gian chụp và truyền luồng video (Logitech C270): $350\text{ ms}$
  • Thời gian định vị và tách biển số (EmguCV): $180\text{ ms}$
  • Thời gian phân đoạn và nhận diện ký tự (Tesseract): $420\text{ ms}$
  • Thời gian tạo mã QR và in nhiệt (Rongta RP58): $850\text{ ms}$
  • Thời gian phản hồi Servo Barie mở góc $90^\circ$: $240\text{ ms}$
  • TỔNG THỜI GIAN TOÀN TRÌNH CHO 1 LƯỢT XE VÀO: $\mathbf{\approx 1.94\text{ giây}}$

Kết quả đạt được

  1. Thiết kế hoàn chỉnh mô hình phần cứng: Lắp ráp thành công sa bàn trạm kiểm soát bãi đỗ xe thông minh với đầy đủ làn vào/ra, cơ cấu nâng hạ tự động bằng Servo MG90S, bảng nút nhấn tương tác và hệ thống chiếu sáng giả lập.
  2. Xây dựng ứng dụng quản lý hoàn chỉnh: Giao diện điều khiển phát triển bằng C# trên Visual Studio 2015 đáp ứng khả năng giám sát trực quan, hiển thị video 30fps mượt mà, hỗ trợ truy vấn lịch sử gửi xe theo thời gian thực từ SQL Server.
  3. Cơ chế bảo mật kép: Loại bỏ hoàn toàn nguy cơ mất trộm phương tiện nhờ cơ chế kết hợp giữa mã hóa QR Code trên giấy in nhiệt và thuật toán so khớp biển số OCR tự động.

Đổi mới và đóng góp

  1. Ứng dụng mã vé QR nhiệt dùng một lần thay thế thẻ từ tĩnh: Đa số các bãi xe hiện nay sử dụng thẻ chip RFID tái sử dụng, dễ phát sinh rủi ro lây nhiễm bệnh dịch qua tiếp xúc bề mặt hoặc thất lạc phôi thẻ tốn kém. Giải pháp sử dụng vé in nhiệt K58 tích hợp mã QR chứa chữ ký điện tử thời gian thực giúp giảm $80%$ chi phí đầu tư phôi thẻ ban đầu.
  2. Kỹ thuật tự động cân chỉnh góc nghiêng (Auto-Deskewing) bằng Radon Transform: Khắc phục triệt để nhược điểm của các thuật toán phân đoạn truyền thống vốn chỉ xử lý được ảnh thẳng đứng. Hệ thống cho phép nhận dạng ổn định ngay cả khi xe máy dừng đỗ lệch góc tới $45^\circ$.
  3. Tối ưu hóa phân đoạn ký tự thích ứng (Adaptive Projection Profile): Bằng việc kết hợp bộ lọc ngưỡng diện tích Min_area và độ rộng Digit_width, giải thuật loại bỏ hoàn toàn các vết ốc vít cố định biển số hoặc viền khung kim loại bọc ngoài, tránh việc nhận diện nhầm đinh ốc thành ký tự số.

Ứng dụng thực tế và triển khai

Kịch bản triển khai thực tế

Hệ thống hoàn toàn khả thi để ứng dụng ngay tại:

  • Khuôn viên trường đại học / cao đẳng: Nơi có lưu lượng sinh viên ra vào tập trung với mật độ cao theo tiết học.
  • Tòa nhà văn phòng và chung cư: Kiểm soát phương tiện vãng lai hiệu quả, minh bạch hóa dữ liệu thu phí.
  • Bệnh viện và trung tâm thương mại: Tăng tốc độ giải tỏa làn xe, hạn chế tiếp xúc trực tiếp.
+-----------------------------------------------------------------------------------+
|                        LỘ TRÌNH TRIỂN KHAI THỰC TẾ (4 BƯỚC)                       |
+-----------------------------------------------------------------------------------+
|  [BƯỚC 1: KHẢO SÁT]   -->   [BƯỚC 2: CƠ KHÍ]   -->   [BƯỚC 3: PHẦN MỀM]   -->   [BƯỚC 4: VẬN HÀNH]  |
|  - Đo đạc luồng xe          - Gá đặt Camera 720p     - Cài SQL Server CSDL      - Chạy Pilot 7 ngày |
|  - Cân chỉnh góc sáng       - Lắp đặt Barie Servo    - Nạp Firmware Arduino     - Bàn giao kỹ thuật |
+-----------------------------------------------------------------------------------+

Phân tích chi phí - lợi ích (Cost-Benefit Analysis)

  • Chi phí phần cứng ước tính cho 1 làn:
    • Máy trạm điều khiển Core i3 cũ: $3.500.000\text{ VNĐ}$
    • Camera Logitech C270 + Phụ kiện gá: $750.000\text{ VNĐ}$
    • Máy in nhiệt Rongta RP58 + Máy quét 2D: $1.800.000\text{ VNĐ}$
    • Bộ điều khiển Arduino + Động cơ + Vỏ tủ: $650.000\text{ VNĐ}$
    • Tổng vốn đầu tư (CAPEX): $\approx 6.700.000\text{ VNĐ/làn}$ (Thấp hơn $60%$ so với hệ thống thẻ từ công nghiệp thương mại).
  • Hoàn vốn đầu tư (ROI): Cắt giảm 1 nhân sự trực soát vé thủ công tại mỗi ca trực (tiết kiệm chi phí nhân công $\approx 7.000.000\text{ VNĐ/tháng}$), thời gian hoàn vốn đầu tư đạt được trong vòng chưa đầy 2 tháng vận hành.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Phụ thuộc điều kiện môi trường: Khi trời mưa lớn làm mờ ống kính hoặc ánh sáng ban đêm quá yếu, độ chính xác của bộ lọc nhị phân Otsu suy giảm xuống dưới $75%$.
  • Giới hạn loại phương tiện: Chương trình mới chỉ được huấn luyện và tối ưu cho cấu trúc biển số xe máy 2 hàng, chưa hỗ trợ cấu trúc biển số xe con, xe tải 1 hàng dài.
  • Cơ cấu phần cứng mô hình: Động cơ RC Servo MG90S phù hợp cho sa bàn demo, khi triển khai thực địa cần chuyển đổi sang Barie công nghiệp sử dụng động cơ bước (Stepper Motor) hoặc động cơ không chổi than (BLDC) công suất lớn.

Hướng phát triển trong tương lai

  • Nâng cấp mô hình AI nhận diện: Chuyển đổi từ trích xuất đặc trưng truyền thống sang sử dụng mạng nơ-ron tích chập sâu (Deep Learning) như YOLOv8 để phát hiện biển số và mô hình CRNN (Convolutional Recurrent Neural Network) để đọc chuỗi ký tự không cần phân đoạn.
  • Tích hợp Camera IP tầm xa ban đêm: Bổ sung hệ thống đèn LED hồng ngoại và camera cảm biến độ nhạy sáng cao chuyên dụng (Starlight ANPR Camera).
  • Thanh toán không tiền mặt: Tích hợp sinh mã QR thanh toán động qua cổng VNPAY-QR / VietQR để người dùng tự thanh toán phí gửi xe bằng ứng dụng ngân hàng ngay trên vé.

Đối tượng hưởng lợi

  • Sinh viên & Học viên chuyên ngành: Cung cấp tài liệu tham khảo thực tế về cách kết hợp giữa xử lý ảnh trên nền tảng .NET (C#) với điều khiển thiết bị nhúng qua giao thức truyền thông nối tiếp UART.
  • Kỹ sư và Lập trình viên: Nắm vững mẫu kiến trúc thiết kế kết nối máy quét mã vạch 2D, máy in hóa đơn ESC/POS, thư viện EmguCV wrapper và Tesseract OCR vào ứng dụng thực tế.
  • Doanh nghiệp & Đơn vị quản lý bãi đỗ xe: Sở hữu giải pháp quản lý chi phí thấp, triển khai nhanh chóng, dữ liệu tập trung và loại bỏ hoàn toàn các rủi ro thất thoát tài sản.

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

1. Cần cấu hình phần cứng tối thiểu nào để vận hành phần mềm quản lý?

Hệ thống yêu cầu máy tính chạy hệ điều hành Windows 7/10/11 (32-bit hoặc 64-bit), vi xử lý Intel Core i3 thế hệ 4 trở lên, tối thiểu 4GB RAM, có ít nhất 2 cổng USB 2.0/3.0 để kết nối Camera và máy quét, 1 cổng COM/USB-to-TTL để kết nối Arduino và ổ cứng trống tối thiểu 10GB để lưu trữ dữ liệu ảnh.

2. Giới hạn mở rộng dung lượng của hệ thống ra sao?

Cơ sở dữ liệu Microsoft SQL Server Express hỗ trợ dung lượng lưu trữ lên đến 10GB cho mỗi tệp dữ liệu (tương đương hơn 500.000 bản ghi lịch sử xe ra vào có kèm đường dẫn file ảnh). Khi vượt quá giới hạn, hệ thống hỗ trợ cơ chế lưu trữ phân tán (Sharding) hoặc đẩy ảnh cũ lên máy chủ lưu trữ NAS/Cloud.

3. Hệ thống có thể tích hợp với các loại Barie tự động công nghiệp không?

Hoàn toàn có thể. Tín hiệu mở cổng từ chân Digital của vi điều khiển Arduino được đưa qua mạch cách ly quang (Optocoupler) hoặc Relay đóng ngắt tiếp điểm khô (Dry Contact), tương thích hoàn toàn với tất cả các tủ điều khiển Barie tự động công nghiệp phổ biến trên thị trường (như Bisen, Shinning, Wonsun).

4. Chi phí giấy in nhiệt hàng tháng có đắt hơn duy trì thẻ từ không?

Một cuộn giấy in nhiệt K58x45 có giá thành khoảng $6.000\text{ VNĐ}$ và in được trung bình 450 - 500 lượt vé. Chi phí cho mỗi lượt gửi xe chỉ rơi vào khoảng $12\text{ VNĐ/lượt}$, thấp hơn rất nhiều so với chi phí khấu hao và rủi ro làm mất thẻ từ RFID (thường có giá từ $10.000 - 20.000\text{ VNĐ/thẻ}$).

5. Nếu mất điện đột ngột thì dữ liệu xe trong bãi có bị mất không?

Không. Hệ thống sử dụng cơ chế ghi dữ liệu tức thời (ACID Transaction) vào Microsoft SQL Server ngay khi hoàn tất chu trình xe vào. Ngay khi hệ thống khởi động lại, toàn bộ thông tin về các phương tiện chưa hoàn thành lượt ra (với cờ TrangThai = 0) được nạp lại đầy đủ, đảm bảo việc đối soát xe ra diễn ra bình thường.


Kết luận

Đồ án tốt nghiệp "Thiết kế và thi công hệ thống gửi xe thông minh" đã hoàn thành toàn diện các mục tiêu nghiên cứu và thực nghiệm đề ra. Bằng việc kết hợp sáng tạo giữa công nghệ xử lý ảnh (EmguCV, Tesseract OCR), cơ chế định danh quang học (Mã QR động, máy in nhiệt) và điều khiển tự động hóa (Arduino, Servo MG90S), nhóm tác giả đã xây dựng thành công một giải pháp công nghệ có tính ứng dụng thực tiễn cao.

Hệ thống không chỉ giải quyết triệt để bài toán thắt cổ chai tại các điểm kiểm soát phương tiện đô thị với thời gian đáp ứng dưới $2.0\text{ giây/xe}$, mà còn mang lại mô hình kinh tế hiệu quả với chi phí đầu tư thấp, sẵn sàng chuyển giao và mở rộng hướng tới xây dựng các đô thị thông minh (Smart Cities) hiện đại.