Giới thiệu dự án

Hệ thống nhận dạng biển số xe tự động (Automatic Number Plate Recognition - ANPR/ALPR) đóng vai trò xương sống trong hạ tầng giao thông thông minh (Intelligent Transportation Systems - ITS). Tại Việt Nam, với hơn 65 triệu xe máy và 5 triệu ô tô đang lưu hành, mật độ phương tiện tại các đô thị lớn như Hà Nội và TP. Hồ Chí Minh tạo áp lực khổng lồ lên hạ tầng bãi đỗ xe và trạm kiểm soát. Phương thức kiểm soát vé thủ công truyền thống bộc lộ nhiều điểm nghẽn: thời gian xử lý trung bình từ 10–15 giây/lượt xe, tỷ lệ thất thoát doanh thu từ 3–5% do gian lận vé, và nguy cơ ùn ứ nghiêm trọng vào các khung giờ cao điểm.

Đồ án "Tìm hiểu thuật toán nhận dạng biển số xe Việt Nam" do sinh viên Trần Hằng Ny thực hiện dưới sự hướng dẫn của ThS. Nguyễn Thanh Sơn (Khoa Công nghệ Thông tin, Robot và Trí tuệ Nhân tạo – Trường Đại học Bình Dương) tập trung giải quyết triệt để bài toán tự động hóa quy trình kiểm soát phương tiện. Đề tài xây dựng một quy trình thị giác máy tính khép kín kết hợp kỹ thuật xử lý ảnh nâng cao (Digital Image Processing) và thuật toán học máy giám sát K-Nearest Neighbors (KNN) để nhận dạng chính xác ký tự trên cả hai định dạng biển số xe cơ giới tại Việt Nam.

+---------------+     +--------------------+     +------------------------+     +---------------+
|  Camera Feed  | --> | Plate Localization | --> | Deskew & Segmentation  | --> |   KNN OCR     |
| (RGB / 1080p) |     | (HSV + Canny Edge) | --> | (Affine + BoundingBox) | --> | (ASCII Output)|
+---------------+     +--------------------+     +------------------------+     +---------------+

Mục tiêu nghiên cứu cụ thể

  1. Nghiên cứu đặc trưng hình học và quang học của biển số xe Việt Nam theo quy chuẩn quốc gia (biển dài $110 \times 470\text{ mm}$ và biển vuông $200 \times 280\text{ mm}$, quy cách ký tự cao $80\text{ mm}$, rộng $40\text{ mm}$).
  2. Xây dựng pipeline tiền xử lý ảnh thích nghi (Adaptive Image Preprocessing) nhằm loại bỏ nhiễu quang học, cân bằng độ tương phản trong điều kiện chiếu sáng không đồng đều.
  3. Phát triển giải thuật phát hiện vùng biển số kết hợp phép biến đổi hình thái học (Mathematical Morphology) và thuật toán dò biên Suzuki's Contour Tracing.
  4. Hiện thực hóa thuật toán nắn xoay biển số (Deskewing) dựa trên vector góc nghiêng và giải thuật phân đoạn ký tự nhị phân.
  5. Huấn luyện và tối ưu mô hình K-Nearest Neighbors (KNN) nhận dạng 33 lớp ký tự (chữ cái và chữ số tiêu chuẩn) với thời gian suy luận thời gian thực trên phần cứng phổ thông.

Phạm vi và giới hạn của đề tài

  • Phạm vi: Xử lý ảnh tĩnh thu nhận từ camera giám sát cố định tại các trạm kiểm soát, bãi đỗ xe; nhận dạng biển số xe dân sự nền trắng chữ đen (1 hàng ký tự cho ô tô biển dài và 2 hàng ký tự cho xe máy/ô tô biển vuông).
  • Giới hạn: Góc nghiêng của phương tiện so với trục camera không vượt quá $45^\circ$; ảnh đầu vào không bị che khuất cơ học quá 20% diện tích bề mặt biển số.

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

Phân tích hiện trạng và giải pháp kỹ thuật

Tiêu chí so sánh Hướng tiếp cận phát triển vùng (Region Growing) Hướng tiếp cận biến đổi Hough (Hough Transform) Hướng tiếp cận hình thái học + KNN (Đồ án đề xuất) Mô hình Deep Learning (YOLOv8 + CRNN)
Tốc độ xử lý (FPS) 40–50 FPS 15–25 FPS 30–45 FPS 10–20 FPS (trên CPU)
Yêu cầu phần cứng Rất thấp (CPU cơ bản) Thấp (CPU) Thấp (CPU, không cần GPU) Cao (Cần GPU/VRAM $\ge 4\text{GB}$)
Độ phức tạp tính toán $\mathcal{O}(N)$ $\mathcal{O}(N^3)$ $\mathcal{O}(N \log N)$ $\mathcal{O}(K \cdot N^2)$
Độ chính xác biển nghiêng Kém ($< 70%$) Trung bình ($75–80%$) Cao ($> 92%$) nhờ Deskewing Rất cao ($> 96%$)
Chi phí triển khai Edge Rất thấp Thấp Tối ưu cho thiết bị nhúng Chi phí cao

Yêu cầu hệ thống theo mô hình MoSCoW

  • Must-have (Bắt buộc): Tách chính xác vùng biển số từ khung hình kích thước $1920 \times 1080\text{ px}$; nắn phẳng góc nghiêng; phân đoạn và nhận dạng chính xác chuỗi ký tự chuẩn ASCII.
  • Should-have (Cần có): Khả năng tự động phân loại cấu trúc biển số 1 hàng hay 2 hàng dựa trên tỷ lệ tọa độ $y < \frac{1}{3} H_{\text{plate}}$.
  • Could-have (Có thể có): Cơ chế lọc nhiễu các vết ốc vít cố định biển số và đường viền kim loại.
  • Won't-have (Chưa thực hiện): Nhận diện biển số xe quân sự (biển đỏ), ngoại giao (biển NG/NN) có ký tự đặc biệt trong pha này.

Thiết kế kiến trúc hệ thống

+-----------------------------------------------------------------------------------+
|                            HỆ THỐNG ANPR PIPELINE                                 |
+-----------------------------------------------------------------------------------+
| [Giai đoạn 1: Tiền xử lý]                                                         |
|  Input Image -> HSV Conversion (V-Channel) -> TopHat/BlackHat -> Gaussian Blur   |
+-----------------------------------------------------------------------------------+
| [Giai đoạn 2: Định vị biển số]                                                   |
|  Adaptive Thresholding -> Canny Edge -> Suzuki Contour -> Bounding Box Filter     |
+-----------------------------------------------------------------------------------+
| [Giai đoạn 3: Phân đoạn ký tự]                                                   |
|  Coordinate Deskewing (Affine Transform) -> Character Contour -> Geometric Filter |
+-----------------------------------------------------------------------------------+
| [Giai đoạn 4: Nhận dạng & Trích xuất]                                             |
|  Feature Vector Normalization (20x30 px) -> KNN Model (K=3) -> ASCII Formatter    |
+-----------------------------------------------------------------------------------+
  • Technology Stack:
    • Ngôn ngữ lập trình: Python 3.9.13
    • Thư viện thị giác máy tính: OpenCV (Open Source Computer Vision Library) v4.5.5
    • Xử lý mảng và đại số tuyến tính: NumPy v1.21.6
    • Môi trường phát triển: Visual Studio Code IDE trên nền tảng Linux/Windows

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

Dự án áp dụng mô hình phát triển Agile/Iterative qua 4 chu kỳ lặp (Sprint) kéo dài trong 12 tuần:

  • Tuần 1–3: Nghiên cứu cơ sở lý thuyết xử lý ảnh số, thu thập 500 ảnh mẫu biển số thực tế.
  • Tuần 4–6: Xây dựng module tiền xử lý, lọc nhiễu và thuật toán phát hiện biên Canny.
  • Tuần 7–9: Phát triển giải thuật phân đoạn ký tự, gán nhãn tập dữ liệu huấn luyện và tích hợp KNN.
  • Tuần 10–12: Tối ưu hóa tham số ($K$, kích thước kernel), kiểm thử hiệu năng và hoàn thiện báo cáo.

Implementation và kết quả

Chi tiết giải thuật và mã nguồn triển khai

1. Tiền xử lý và tăng cường độ tương phản hình thái học

Thay vì chuyển đổi không gian màu sang Grayscale trực tiếp từ RGB, hệ thống trích xuất kênh Value ($V$) trong không gian màu HSV nhằm triệt tiêu sự phụ thuộc vào sắc độ ánh sáng môi trường. Sau đó, kỹ thuật Morphological Contrast Enhancement kết hợp hai phép toán Top Hat (làm nổi bật chi tiết sáng trên nền tối) và Black Hat (làm nổi bật chi tiết tối trên nền sáng) được áp dụng:

$$I_{\text{enhanced}} = I + \text{TopHat}(I) - \text{BlackHat}(I)$$

Trong đó $\text{TopHat}(I) = I - (I \circ b)$ và $\text{BlackHat}(I) = (I \bullet b) - I$, với $b$ là phần tử cấu trúc (Structuring Element) kích thước $3 \times 3$.

import cv2
import numpy as np

def preprocess_image(img_raw: np.ndarray) -> np.ndarray:
    """
    Tiền xử lý ảnh: Tách kênh Value trong không gian HSV,
    tăng độ tương phản hình thái học và giảm nhiễu Gauss.
    """
    # Chuyển đổi sang không gian màu HSV và lấy kênh V
    hsv = cv2.cvtColor(img_raw, cv2.COLOR_BGR2HSV)
    _, _, v_channel = cv2.split(hsv)
    
    # Khởi tạo phần tử cấu trúc chữ nhật 3x3
    structuring_element = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
    
    # Thực hiện biến đổi Top-Hat và Black-Hat
    top_hat = cv2.morphologyEx(v_channel, cv2.MORPH_TOPHAT, structuring_element)
    black_hat = cv2.morphologyEx(v_channel, cv2.MORPH_BLACKHAT, structuring_element)
    
    # Tăng cường tương phản
    enhanced = cv2.add(v_channel, top_hat)
    enhanced = cv2.subtract(enhanced, black_hat)
    
    # Làm mờ Gauss kích thước 5x5 để triệt tiêu nhiễu tần số cao
    blurred = cv2.GaussianBlur(enhanced, (5, 5), 0)
    return blurred

2. Phát hiện cạnh Canny và lọc ngưỡng nhị phân động

Hệ thống sử dụng toán tử Adaptive Threshold với phân phối Gauss để tách ngưỡng cục bộ, chống lại hiện tượng bóng râm cục bộ, sau đó dẫn truyền qua thuật toán Canny:

def extract_plate_contours(blurred_img: np.ndarray) -> list:
    """
    Phát hiện cạnh Canny và trích xuất danh sách đường bao contour tiềm năng.
    """
    # Nhị phân hóa ngưỡng động Gaussian C
    adaptive_thresh = cv2.adaptiveThreshold(
        blurred_img, 255, 
        cv2.ADAPTIVE_THRESH_GAUSSIAN_C, 
        cv2.THRESH_BINARY_INV, 19, 9
    )
    
    # Phát hiện biên Canny
    edges = cv2.Canny(adaptive_thresh, 100, 200, apertureSize=3)
    
    # Trích xuất contour bằng thuật toán Suzuki (cv2.RETR_TREE)
    contours, hierarchy = cv2.findContours(
        edges, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE
    )
    return contours

3. Xoay chỉnh nghiêng (Deskewing) và phân đoạn ký tự

Khi góc chụp bị lệch, ma trận xoay 2D (Affine Transformation Matrix) được thiết lập dựa trên tọa độ 2 điểm đáy $A(x_1, y_1)$ và $B(x_2, y_2)$ của đa giác bao quanh:

$$\theta = \arctan\left(\frac{y_2 - y_1}{x_2 - x_1}\right) \times \frac{180^\circ}{\pi}$$

def deskew_plate(plate_crop: np.ndarray, pt_a: tuple, pt_b: tuple) -> np.ndarray:
    """
    Tính toán góc nghiêng theta và xoay phẳng vùng ảnh biển số.
    """
    delta_x = pt_b[0] - pt_a[0]
    delta_y = pt_b[1] - pt_a[1]
    
    # Tính góc quay theo độ
    angle = np.degrees(np.arctan2(delta_y, delta_x))
    
    h, w = plate_crop.shape[:2]
    center = (w // 2, h // 2)
    
    # Khởi tạo ma trận biến đổi Affine 2D
    rotation_matrix = cv2.getRotationMatrix2D(center, angle, 1.0)
    rotated_plate = cv2.warpAffine(
        plate_crop, rotation_matrix, (w, h), 
        flags=cv2.INTER_CUBIC, borderMode=cv2.BORDER_REPLICATE
    )
    return rotated_plate

4. Nhận dạng ký tự với K-Nearest Neighbors (KNN)

Mỗi ký tự sau khi phân đoạn được chuẩn hóa về kích thước cố định $20 \times 30\text{ pixels}$, trải phẳng (flatten) thành vector đặc trưng 600 chiều trong không gian Euclid:

$$d(p, q) = \sqrt{\sum_{i=1}^{600} (p_i - q_i)^2}$$

def classify_characters(char_crops: list, knn_model) -> str:
    """
    Chuẩn hóa ảnh ký tự về 20x30, chuyển thành vector 600 chiều và phân lớp bằng KNN.
    """
    recognized_string = ""
    for char_img in char_crops:
        # Resize về kích thước chuẩn hóa 20x30
        resized = cv2.resize(char_img, (20, 30))
        # Chuyển đổi định dạng sang float32 và làm phẳng thành vector 1x600
        feature_vector = resized.reshape((1, 600)).astype(np.float32)
        
        # Dự đoán với KNN (k=3)
        ret, results, neighbours, dist = knn_model.findNearest(feature_vector, k=3)
        ascii_code = int(results[0][0])
        recognized_string += chr(ascii_code)
        
    return recognized_string

Kết quả kiểm thử và đánh giá thực nghiệm

Hệ thống được thử nghiệm trên tập dữ liệu gồm 350 ảnh phương tiện thực tế (gồm 200 xe máy và 150 ô tô) thu nhận trong các điều kiện ánh sáng khác nhau:

+------------------------------------------------------------------------+
| Giai đoạn Pipeline       | Tỷ lệ thành công (%) | Độ trễ trung bình (ms)|
+--------------------------+----------------------+----------------------+
| 1. Định vị biển số xe    |        96.8%         |        62.4 ms       |
| 2. Nắn xoay & Phân đoạn  |        94.2%         |        54.1 ms       |
| 3. Nhận dạng ký tự (OCR) |        93.5%         |        28.3 ms       |
| Toàn chu trình (End-to-End)|      91.4%         |       144.8 ms       |
+------------------------------------------------------------------------+
          MA TRẬN NHẦM LẪN KÝ TỰ PHỔ BIẾN (KNN OCR)
          +--------------------------------------+
          | Ký tự thực tế | Ký tự nhận dạng nhầm | Tỷ lệ nhầm (%) |
          +---------------+----------------------+----------------+
          |       8       |          B           |      3.8%      |
          |       5       |          S           |      2.9%      |
          |       0       |          D           |      2.4%      |
          |       1       |          7           |      1.7%      |
          |       Z       |          2           |      1.5%      |
          +---------------+----------------------+----------------+

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

  1. Chuẩn hóa quy trình tiền xử lý thích nghi kép (Dual-Morphology Adaptation): Việc tích hợp đồng thời biến đổi Top-Hat và Black-Hat trên kênh cường độ sáng $V$ (HSV) giúp tăng biên độ tương phản giữa viền chữ số và nền biển lên 34.6%, khắc phục hoàn toàn hiện tượng mất nét khi nhị phân hóa các biển số bị ố vàng hoặc bám bụi nhẹ.
  2. Kỹ thuật nắn xoay hình học tự động (Bottom-Corner Coordinate Deskewing): Thay vì sử dụng biến đổi Radon phức tạp tốn tài nguyên, giải thuật trích xuất vector đáy từ hộp bao giúp giảm độ phức tạp thuật toán từ $\mathcal{O}(N^3)$ xuống $\mathcal{O}(1)$ cho bước xoay ảnh, đạt độ chính xác căn chỉnh góc sai lệch dưới $1.5^\circ$.
  3. Phân loại cấu trúc biển số 1 hàng/2 hàng theo tỷ lệ hình học động: Sử dụng ngưỡng $Y$-split tại vị trí $\frac{1}{3}$ chiều cao biển số kết hợp thuật toán sắp xếp tọa độ $X$ tăng dần cho từng hàng, giải quyết triệt để lỗi đảo lộn thứ tự ký tự trên biển số xe máy Việt Nam.
  4. Tối ưu hóa mô hình KNN siêu nhẹ: Bộ trích xuất vector $20 \times 30\text{ px}$ mang lại độ chính xác tổng thể ký tự đạt 93.5%, dung lượng mô hình chỉ 1.2 MB, cho phép thực thi trơn tru trên các hệ thống vi xử lý nhúng như Raspberry Pi 4 mà không cần vi điều khiển tăng tốc AI chuyên dụng.

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

Kịch bản ứng dụng (Use Cases)

  • Hệ thống bãi đỗ xe thông minh (Smart Parking): Tự động mở barrier khi nhận diện biển số xe đã đăng ký vé tháng, giảm thời gian check-in từ 12 giây xuống dưới 0.8 giây/lượt xe, loại bỏ hoàn toàn chi phí in ấn thẻ từ.
  • Giám sát an ninh khu công nghiệp và đô thị: Kiểm soát lưu lượng xe ra vào tự động, lưu trữ log lịch sử kèm hình ảnh phục vụ điều tra truy vết phương tiện vi phạm.
  • Trạm thu phí không dừng (ETC Backup System): Đóng vai trò hệ thống đối soát độc lập ghi nhận hình ảnh biển số để đối chiếu với chip RFID DSRC dán trên kính lái.
+--------------------------------------------------------------------+
|                   MÔ HÌNH TRIỂN KHAI TRẠM GÁC THỰC TẾ               |
+--------------------------------------------------------------------+
|  [IP Camera RTSP]  -->  [Edge Device (PC / Linux Box)]              |
|                             |-- OpenCV Video Capture               |
|                             |-- ANPR Pipeline (Canny + KNN)        |
|                             |-- SQLite / MySQL Local Log           |
|                             v                                      |
|                   [Relay Controller] --> [Mở Barrier tự động]       |
+--------------------------------------------------------------------+

Phân tích hiệu quả kinh tế và ROI (Dự toán cho bãi đỗ xe 1.000 phương tiện)

  • Chi phí đầu tư ban đầu: 15.000.000 VNĐ (Bao gồm 02 Camera IP Full HD, 01 Edge Mini PC Core i3/8GB RAM, bộ điều khiển Relay).
  • Chi phí vận hành thủ công trước đây: 3 nhân viên bảo vệ chia ca = 24.000.000 VNĐ/tháng.
  • Chi phí sau khi tự động hóa: 1 nhân viên giám sát kỹ thuật = 9.000.000 VNĐ/tháng.
  • Thời gian hoàn vốn (ROI):

$$\text{ROI} = \frac{15.000.000\text{ VNĐ}}{(24.000.000 - 9.000.000)\text{ VNĐ/tháng}} = 1.0\text{ tháng}$$


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

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

  • Khả năng nhận diện suy giảm xuống dưới $70%$ trong môi trường ban đêm thiếu đèn trợ sáng hồng ngoại (IR) hoặc khi trời mưa làm mờ ống kính camera.
  • Thuật toán KNN sử dụng khoảng cách Euclid nguyên bản dễ bị nhầm lẫn giữa các cặp ký tự có cấu trúc hình học tương đồng cao (như $8 \leftrightarrow B$, $0 \leftrightarrow D$, $5 \leftrightarrow S$).
  • Chưa xử lý được các trường hợp biển số bị che lấp cơ học một phần bởi ốc vít gắn biển hoặc thanh cản va đập.

Hướng phát triển tiếp theo

  • Tích hợp Deep Learning cho định vị: Chuyển đổi module phát hiện vùng biển số sang kiến trúc siêu nhẹ YOLOv8-Nano để tăng độ bền vững trước góc chụp nghiêng phức tạp.
  • Cải tiến OCR với Convolutional Neural Network (CNN) hoặc CRNN: Thay thế KNN bằng mạng tích chập nhỏ (3 layers Conv2D) hoặc MobileNetV3 để triệt tiêu lỗi phân loại nhầm giữa số và chữ.
  • Hỗ trợ xử lý đa luồng (Multi-threading / AsyncIO): Xây dựng pipeline xử lý video streaming thời gian thực qua giao thức RTSP đạt tốc độ trên 60 FPS.

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

+-------------------+---------------------------------------------------------+
| Nhóm đối tượng    | Giá trị và lợi ích định lượng                           |
+-------------------+---------------------------------------------------------+
| Sinh viên CNTT /  | - Bộ tài liệu tham khảo bài bản về OpenCV & KNN pipeline|
| Robotics          | - Source code mẫu hoàn chỉnh về phân đoạn ký tự thực tế |
+-------------------+---------------------------------------------------------+
| Kỹ sư phần mềm    | - Khung kiến trúc ANPR gọn nhẹ chạy trên thiết bị Edge  |
| (Developers)      | - Bộ quy tắc lọc hình học chuẩn hóa biển số Việt Nam    |
+-------------------+---------------------------------------------------------+
| Doanh nghiệp      | - Cắt giảm 62.5% chi phí nhân sự vận hành bãi xe        |
| Quản lý bãi đỗ    | - Tăng thông lượng phương tiện qua cổng lên gấp 10 lần  |
+-------------------+---------------------------------------------------------+
| Nhà nghiên cứu    | - Dữ liệu thực nghiệm làm cơ sở so sánh hiệu năng giữa  |
| (Researchers)     |   Machine Learning truyền thống và Deep Learning        |
+-------------------+---------------------------------------------------------+

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

1. Hệ thống yêu cầu cấu hình phần cứng tối thiểu như thế nào để triển khai?

Hệ thống được tối ưu hóa cho CPU thuần, không phụ thuộc vào card đồ họa rời (GPU). Cấu hình tối thiểu gồm: CPU Intel Core i3 thế hệ 4 (hoặc chip ARM Cortex-A72 trên Raspberry Pi 4), RAM 4GB, ổ cứng trống 1GB, và camera IP chuẩn RTSP độ phân giải tối thiểu HD 720p (khuyến nghị 1080p có đèn hồng ngoại).

2. Làm thế nào để giải quyết hiện tượng phân loại nhầm giữa ký tự số '8' và chữ cái 'B'?

Trong phiên bản cải tiến, giải pháp là áp dụng luật cú pháp biển số xe Việt Nam (Syntax/Grammar Rules). Cấu trúc biển số quy định vị trí ký tự thứ 3 (sau 2 chữ số mã tỉnh) bắt buộc là chữ cái (ví dụ: 59-X1), còn các vị trí cuối cùng bắt buộc là chữ số. Bằng cách áp dụng mặt nạ cú pháp (Regex Mask), hệ thống sẽ tự động ép kiểu ký tự dự đoán theo đúng miền giá trị của vị trí đó.

3. Hệ thống phân biệt biển số 1 hàng và biển số 2 hàng như thế nào?

Sau bước nắn xoay (Deskewing), hệ thống tính toán tỷ lệ khung hình (Aspect Ratio = $\frac{\text{Width}}{\text{Height}}$). Biển số 1 hàng có tỷ lệ $\approx 4.27$ ($470/110$), trong khi biển số 2 hàng có tỷ lệ $\approx 1.4$ ($280/200$). Ngoài ra, hệ thống căn cứ vào tọa độ trọng tâm trục $Y$ của các contour ký tự để tự động phân cụm thành 1 hay 2 dòng riêng biệt.

4. Thuật toán KNN có cần huấn luyện lại khi có thêm dữ liệu không?

KNN là thuật toán học lười (Lazy Learning), không xây dựng mô hình trọng số trừu tượng mà lưu trực tiếp các vector đặc trưng. Khi muốn bổ sung mẫu ký tự mới (ví dụ font chữ biển số mới), ta chỉ cần trích xuất vector đặc trưng $20 \times 30\text{ px}$, gán nhãn mã ASCII và thêm trực tiếp vào file lưu trữ classifications.txtflattened_images.txt mà không cần thời gian retrain phức tạp.

5. Chi phí triển khai phần mềm cho một cổng kiểm soát 2 làn là bao nhiêu?

Nhờ tận dụng hoàn toàn các thư viện mã nguồn mở (Python, OpenCV, NumPy) không chịu phí bản quyền thương mại, chi phí bản quyền phần mềm là 0 đồng. Doanh nghiệp chỉ cần đầu tư thiết bị phần cứng (khoảng 15–20 triệu VNĐ cho 2 làn xe) và chi phí tích hợp phần mềm ban đầu.


Kết luận

Đồ án "Tìm hiểu thuật toán nhận dạng biển số xe Việt Nam" của sinh viên Trần Hằng Ny dưới sự hướng dẫn của ThS. Nguyễn Thanh Sơn đã nghiên cứu và hiện thực hóa thành công một hệ thống ANPR hoàn chỉnh, có tính ứng dụng cao. Bằng cách kết hợp linh hoạt giữa các phép toán hình thái học (Top Hat, Black Hat), phân ngưỡng động, phát hiện cạnh Canny, thuật toán dò biên Suzuki và phân lớp K-Nearest Neighbors, công trình đạt tỷ lệ nhận dạng chính xác 91.4% trên toàn chu trình với độ trễ xử lý trung bình chỉ 144.8 ms/khung hình.

Nghiên cứu khẳng định giá trị thực tiễn vượt trội của các phương pháp thị giác máy tính cổ điển khi được tinh chỉnh chính xác theo đặc thù dữ liệu địa phương (quy chuẩn biển số Việt Nam). Đây là nền tảng kỹ thuật vững chắc để các nhà phát triển tiếp tục mở rộng, tích hợp các module trí tuệ nhân tạo chuyên sâu nhằm hoàn thiện các giải pháp đô thị thông minh và giao thông số trong tương lai.