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

Sự gia tăng nhanh chóng của các phương tiện giao thông đường bộ đặt ra yêu cầu cấp thiết về việc tự động hóa công tác quản lý và kiểm soát phương tiện. Phương thức ghi nhận thủ công tại các bãi đỗ xe hay trạm kiểm soát bộc lộ nhiều hạn chế về tốc độ xử lý, chi phí nhân lực và mức độ an toàn. Trong bối cảnh đó, hệ thống nhận dạng biển số xe tự động trở thành một cấu phần quan trọng trong các giải pháp giao thông thông minh, trạm cân tự động, bãi giữ xe thông minh, hệ thống kiểm soát lưu thông và hỗ trợ điều tra an ninh, tìm kiếm xe bị mất cắp.

Về mặt kỹ thuật, hệ thống đòi hỏi sự kết hợp giữa thiết bị phần cứng (camera thu nhận hình ảnh phương tiện, máy tính xử lý và hiển thị) cùng phần mềm xử lý ảnh số. Nhiệm vụ trọng tâm của nghiên cứu là xây dựng chương trình có khả năng đọc hiểu biển số xe từ ảnh chụp tĩnh, hỗ trợ xuất thông tin phục vụ mã hóa thẻ từ hoặc in mã vạch quản lý.

Khóa luận xác định 5 mục tiêu nghiên cứu cụ thể:

  1. Trích chọn chính xác vùng ảnh chứa biển số xe từ ảnh chụp đầu vào đáp ứng các tiêu chuẩn chụp quy định (góc chụp vuông góc, biển số thẳng đứng, không chói sáng, không bóng nhiễu, độ tương phản cao).
  2. Xử lý loại bỏ phần biên và phần dư thừa xung quanh vùng biển số trước khi thực hiện nhận dạng.
  3. Tách rời từng ký tự riêng biệt trên bề mặt biển số xe.
  4. Nhận dạng các ảnh ký tự đơn lẻ thành ký tự số hoặc ký tự chữ cái tương ứng.
  5. Xuất kết quả đăng ký xe hoàn chỉnh dưới dạng chuỗi ký tự (string).

Đối tượng nghiên cứu của đề tài là xe mô tô và xe gắn máy lưu thông tại Việt Nam. Đặc điểm biển số xe máy khảo sát có kết cấu 2 hàng, mỗi hàng gồm 4 ký tự; trong đó ở hàng trên, ký tự thứ ba tính từ trái sang phải là ký tự chữ cái (định dạng 4 số: XX-XX XXXX). Phạm vi nghiên cứu giới hạn ở việc xử lý dữ liệu ảnh tĩnh (định dạng JPG, PNG) thu nhận từ camera trong khoảng thời gian thực hiện 15 tuần (hoàn tất ngày 20/12/2010).

Các khó khăn thực tế tác giả ghi nhận bao gồm: góc chụp bị lệch không vuông góc; biển số xe bị nghiêng; hiện tượng chói sáng do ánh nắng mặt trời; độ tương phản của ảnh thấp; bóng mờ phản chiếu qua lớp kính/mica bọc ngoài biển số; bề mặt biển số dính bùn bẩn; và chi phí tính toán lớn do thuật toán phải quét ảnh nhiều lần.

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

Khóa luận xây dựng quy trình xử lý ảnh số dựa trên các kỹ thuật nền tảng và phương pháp thực nghiệm:

  • Các thuật toán biến đổi hình ảnh cơ sở:

    • Thay đổi kích thước ảnh (Image Resizing): Sử dụng hàm ResizeBitmap thông qua lớp Graphics.DrawImage trong C# để đưa ảnh về kích thước chuẩn định trước nhằm tối ưu hóa thời gian xử lý và đồng nhất dữ liệu đầu vào.
    • Cắt ảnh (Image Cropping): Sử dụng hàm CutBitmap kết hợp với đối tượng Rectangle để trích xuất các vùng ảnh con.
    • Chuyển đổi ảnh mức xám (Grayscale Conversion): Áp dụng ma trận biến đổi màu ColorMatrix với các trọng số kênh màu chuẩn để chuyển đổi ảnh màu RGB sang ảnh xám trước khi xử lý hình thái.
    • Chuyển đổi ảnh nhị phân (Binarization): Sử dụng hai cách tiếp cận: giải thuật tự xây dựng duyệt ma trận điểm ảnh theo ngưỡng xám và giải thuật tham chiếu sử dụng ImageAttributes kết hợp ma trận chuyển đổi màu với giá trị ngưỡng (threshold = 0.75f).
    • Lọc biên Sobel (Sobel Edge Detector): Sử dụng bộ lọc Sobel tích hợp trong thư viện AForge.NET để làm nổi bật các đường bao biên của biển số. Giá trị độ dốc xấp xỉ tuyệt đối tại mỗi điểm ảnh được tính theo công thức: $|G| = |G_x| + |G_y|$ thông qua hai mặt nạ tích chập 3x3: $$\begin{matrix} G_x = \begin{bmatrix} -1 & 0 & +1 \ -2 & 0 & +2 \ -1 & 0 & +1 \end{bmatrix}, & G_y = \begin{bmatrix} +1 & +2 & +1 \ 0 & 0 & 0 \ -1 & -2 & -1 \end{bmatrix} \end{matrix}$$
  • Phương pháp trích chọn và nhận dạng:

    • Phương pháp dò cạnh (Edge Detection): Kết hợp lọc Sobel, nhị phân hóa và xây dựng lược đồ tích lũy biến thiên điểm trắng theo chiều dọc (quetDoc) và chiều ngang (quetNgang) để xác định tọa độ 4 cạnh của biển số.
    • Phương pháp dò vùng (Region Detection): Dựa trên phân tích hình thái học, quét tìm các đoạn thẳng đen/trắng liên tục để ghép nối thành các hình chữ nhật ứng viên, lọc theo ràng buộc tỷ lệ hình học thực tế của biển số xe máy.
    • Phương pháp xóa biên: Phân tích đặc trưng khoảng trắng biên xung quanh các cụm ký tự hoặc quét tìm đoạn thẳng biên trong các dải giới hạn (1/7 cạnh trên/dưới, 1/9 cạnh trái/phải).
    • Phương pháp tách ký tự: Quét lược đồ chiếu ngang để phân tách thành 2 vùng hàng (trên và dưới), sau đó quét lược đồ chiếu dọc trên từng vùng hàng để tách thành 8 ảnh ký tự đơn lẻ.
    • Phương pháp nhận dạng ký tự: Sử dụng phương pháp so sánh mẫu (Template Matching) đối chiếu ma trận điểm ảnh 2D với tập mẫu chuẩn, kết hợp đối sánh thực nghiệm với phương pháp hình thái học phân tích số điểm cắt qua 3 trục tọa độ.
  • Nguồn dữ liệu: Tập dữ liệu gồm 100 ảnh mẫu chụp biển số xe máy thực tế được lưu trữ trong thư mục thử nghiệm của hệ thống để tiến hành đánh giá định lượng qua từng công đoạn.

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

Hệ thống được thiết kế dưới dạng ứng dụng máy tính (Desktop Application) hoàn chỉnh với quy trình xử lý tuần tự gồm các thành phần chính:

[Ảnh chụp sau xe (JPG/PNG)] 
   --> [Trích chọn biển số (Dò cạnh / Dò vùng)] 
   --> [Xóa biên và phần dư] 
   --> [Tách ký tự (Chiếu ngang / Chiếu dọc)] 
   --> [Nhận dạng ký tự (So sánh mẫu)] 
   --> [Chuỗi ký tự biển số]
  • Kiến trúc và công nghệ:

    • Môi trường phát triển: Ngôn ngữ lập trình C# trên nền tảng .NET Framework, sử dụng thư viện đồ họa hệ thống System.Drawing (các lớp Bitmap, Graphics, ColorMatrix, ImageAttributes, Rectangle).
    • Thư viện ngoài: Thư viện xử lý ảnh mã nguồn mở AForge.NET hỗ trợ giải thuật lọc tích chập Sobel.
    • Tệp thực thi: Ứng dụng mang tên SegmentLicencePlate.exe, dữ liệu đầu vào nạp từ thư mục hinhchup.
  • Giao diện người dùng: Giao diện điều khiển chính được phân chia thành các khối chức năng trực quan:

    • Nhóm Browse: Tải và chuyển đổi tệp ảnh đầu vào.
    • Nhóm Option: Cho phép người dùng lựa chọn phương pháp xử lý (dò cạnh hoặc dò vùng).
    • Nhóm Image: Hiển thị trực quan các bước tiền xử lý: Ảnh xám (1), Ảnh lọc Sobel (2), Ảnh nhị phân (3).
    • Nhóm Diagram: Hiển thị hai biểu đồ lược đồ biến thiên điểm trắng theo chiều dọc và chiều ngang (đối với phương pháp dò cạnh).
    • Nhóm Licence Plate: Hiển thị ảnh biển số trích chọn (5), ảnh biển số sau khi xóa biên/phần dư (6), và ảnh nhị phân của biển số (7).
    • Nhóm Segment: Hiển thị kết quả tách dòng trên, dòng dưới và 8 ô ảnh ký tự đơn lẻ (8).
    • Nhóm Plate: Hiển thị kết quả chuỗi ký tự nhận dạng sau cùng (9).

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

Chương 1: Giới thiệu và mục tiêu nghiên cứu

Chương này phân tích nhu cầu thực tiễn của bài toán quản lý phương tiện cơ giới, giới thiệu mô hình bãi xe tự động sử dụng mã vạch hoặc thẻ từ giúp tinh giảm nhân sự vận hành xuống tối thiểu 2 người (1 người ghi nhận/in vé ở cổng vào, 1 người quét mã/thu tiền ở cổng ra). Tác giả xác định phạm vi nghiên cứu, liệt kê 5 mục tiêu cụ thể và chỉ ra các yếu tố khó khăn tác động tiêu cực đến chất lượng nhận dạng ảnh chụp thực tế.

Chương 2: Tổng quan hệ thống và các thuật toán hỗ trợ

Chương 2 trình bày kiến trúc luồng dữ liệu 3 giai đoạn của hệ thống (Đầu vào - Nhận dạng - Đầu ra) và phân rã bài toán lớn thành 4 bài toán con: trích chọn biển số, xóa biên/phần dư, tách ký tự và nhận dạng ký tự. Nội dung chương cung cấp chi tiết mã nguồn C# và nguyên lý toán học của các thuật toán xử lý ảnh cơ sở: ResizeBitmap, CutBitmap, MakeGrayscale, ToBinary (giải thuật tự viết và giải thuật tham khảo), cùng ma trận tích chập của bộ lọc Sobel trong thư viện AForge.NET.

Chương 3: Xây dựng hệ thống

Đây là chương nội dung kỹ thuật trọng tâm, mô tả chi tiết các giải thuật đề xuất kèm lưu đồ mã giả và đánh giá thực nghiệm:

  • Trích chọn biển số:

    • Phương pháp dò cạnh: Ảnh đầu vào được chuẩn hóa về kích thước 420x560 pixel, chuyển sang ảnh xám, lọc Sobel và nhị phân hóa. Quét từ trên xuống để tạo mảng quetDoc, xác định tọa độ cạnh dưới trước (nơi có độ dốc tăng mạnh nhất từ phải sang trái), sau đó định vị cạnh trên trong khoảng lùi từ 70 đến 110 pixel. Tiếp tục quét từ trái sang phải trong khoảng giữa 2 cạnh trên-dưới để tạo mảng quetNgang, xác định cạnh trái và cạnh phải (cộng bù sai lệch 5 pixel).
    • Phương pháp dò vùng: Quét tìm các đoạn thẳng biên màu trắng trên ảnh nhị phân, ghép thành các hình chữ nhật ứng viên và lọc theo tỷ lệ hình học: $$\begin{aligned} 0.68 &< \frac{\text{Chiều cao}}{\text{Chiều rộng}} < 0.8 \ 80 &< \text{Chiều rộng} < 400 \text{ (pixel)} \ 63 &< \text{Chiều cao} < 350 \text{ (pixel)} \end{aligned}$$
  • Xóa biên và phần dư:

    • Đối với phương pháp dò cạnh: Đưa ảnh biển số về kích thước chuẩn 210x160 pixel, nhị phân hóa, quét biên dựa trên đặc trưng khoảng trắng biên (độ dài khoảng trắng cố định 50 pixel không có điểm đen). Tọa độ biên trên được gán bằng $i + 3$, biên dưới $i - 3$, biên trái $j + 10$, biên phải $j - 10$ để bù trừ dung sai.
    • Đối với phương pháp dò vùng: Quét phát hiện đoạn thẳng phân cách viền trong các giới hạn: 1/7 chiều cao ảnh từ trên xuống (viền trên), 1/7 từ dưới lên (viền dưới), 1/9 chiều rộng từ trái qua (viền trái) và 1/9 từ phải qua (viền phải).
  • Tách ký tự: Thực hiện quét hàng ngang để tìm các dòng bắt đầu ($D_1, D_3$) và kết thúc ($D_2, D_4$) của các điểm ảnh đen nhằm tách đôi biển số thành phần trên và phần dưới. Sau đó, tiến hành quét theo cột dọc trên từng phần để trích xuất riêng biệt 8 ký tự.

  • Nhận dạng ký tự:

    • Phương pháp so sánh mẫu: Chuẩn hóa ký tự về cùng kích thước với tập mẫu, chuyển đổi thành mảng 2 chiều và so sánh mức độ tương đồng điểm ảnh với toàn bộ cơ sở dữ liệu mẫu; ký tự có điểm tương đồng cao nhất được chọn làm kết quả.
    • Phương pháp hình thái học: Cắt ký tự theo 3 trục (1 trục dọc giữa, 2 trục ngang). Bước 1: Cắt trục dọc giữa để phân thành 3 nhóm (nhóm 1 lần cắt, nhóm 2 lần cắt, nhóm 3 lần cắt). Bước 2: Cắt thêm 2 trục ngang để phân biệt các số 0 (4 điểm cắt), 4 (3 điểm cắt), 7 (2 điểm cắt), 8 (4 điểm cắt), 9 (2 trên, 1 dưới), 6 (2 dưới, 1 trên), 2, 3, 5 (đều cắt 2 lần). Bước 3: Dịch chuyển 2 trục ngang lên/xuống để nhận biết riêng số 3 (4 điểm cắt: 2 trên, 2 dưới), số 2 (2 trên, 1 dưới) và số 5 (1 trên, 2 dưới).

Chương 4: Chương trình

Mô tả chi tiết cấu trúc giao diện đồ họa của phần mềm SegmentLicencePlate, hướng dẫn thao tác nạp ảnh từ thư mục hinhchup, chọn chế độ nhận dạng trên bảng điều khiển Option, theo dõi trực quan trạng thái dữ liệu qua từng bước xử lý trung gian và xem kết quả chuỗi ký tự xuất ra.

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

Tổng kết mức độ hoàn thành 5 mục tiêu nghiên cứu; đánh giá các điều kiện môi trường giúp hệ thống đạt độ chính xác tối ưu; chỉ ra 5 hạn chế kỹ thuật hiện tại và đề xuất 5 định hướng nâng cấp giải thuật trong tương lai.

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

Kết quả thực nghiệm

Khóa luận tiến hành thử nghiệm độc lập trên tập mẫu gồm 100 ảnh biển số xe máy và ghi nhận các số liệu thực nghiệm chi tiết qua từng giai đoạn:

Công đoạn xử lý Phương pháp dò cạnh Phương pháp dò vùng
Trích chọn biển số thành công 100/100 (100%) 96/100 (96.0%)
Xóa biên và phần dư thành công 95/100 (95.0%) 96/96 (100%)
Tỷ lệ tách ký tự thành công 95.38% (764 ký tự) -

Kết quả so sánh đối đầu giữa hai phương pháp nhận dạng ký tự trên tập 100 biển số mẫu được cắt thủ công (gồm 698 ký tự số và 100 ký tự chữ cái):

Tiêu chí đánh giá Phương pháp so sánh mẫu Phương pháp hình thái học
Nhận dạng ký tự số 698/698 (100%) 606/698 (86.82%)
Nhận dạng ký tự chữ 100/100 (98.05% - 100%) 0/100 (0%)
Tỷ lệ chính xác tổng thể 99.57% - 99.75% 75.94%
Khả năng mở rộng ký tự chữ Hỗ trợ tốt chữ và số Không áp dụng được cho chữ

Từ kết quả thực nghiệm vượt trội, nhóm nghiên cứu đã lựa chọn phương pháp so sánh mẫu làm giải thuật nhận dạng ký tự chính thức trong chương trình.

Giải pháp và khuyến nghị vận hành

Để chương trình đạt độ chính xác cao nhất trong triển khai thực tế, tác giả đề xuất các điều kiện lắp đặt kỹ thuật tại bãi đỗ xe:

  • Bố trí vạch dừng xe cố định để kiểm soát khoảng cách và góc chụp vuông góc với camera.
  • Mặt sàn bãi đỗ xe nên được lát gạch hoặc sơn phủ màu tối nhằm tăng độ tương phản với vùng biển số sáng màu.
  • Xe máy phải dựng thẳng đứng, bắt buộc tắt đèn hậu khi vào vị trí chụp để tránh quầng sáng gây nhiễu ảnh.
  • Khu vực kiểm soát ngoài trời cần lắp đặt mái che để triệt tiêu hiện tượng lóa sáng do ánh nắng mặt trời chiếu trực tiếp.

Đóng góp của đề tài

  • Xây dựng hoàn chỉnh pipeline xử lý ảnh nhận dạng biển số xe máy 2 dòng chuyên biệt, phù hợp với đặc thù giao thông Việt Nam thời điểm 2010.
  • Thực hiện so sánh định lượng chi tiết giữa các giải thuật tiếp cận (dò cạnh theo lược đồ Sobel đối chiếu với dò vùng theo hình thái học; so sánh mẫu ma trận đối chiếu với giải thuật cắt trục hình thái học).
  • Cung cấp một chương trình ứng dụng trực quan, minh họa tường minh dữ liệu đầu ra của từng công đoạn tiền xử lý, phục vụ học tập và nghiên cứu.

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

Hạn chế được ghi nhận

  • Hệ thống mất khả năng định vị vùng biển số khi góc nghiêng của biển số vượt quá 30 độ so với phương ngang.
  • Thất bại trong khâu nhị phân hóa hoặc tách ký tự khi bề mặt biển số có độ chiếu sáng không đồng đều (bị đổ bóng một phần).
  • Độ chính xác sụt giảm mạnh khi ảnh bị nhiễu do bụi bẩn bám trên biển số, ánh sáng đèn pha phản xạ, hoặc bóng cảnh vật xung quanh in lên lớp kính bọc.
  • Thuật toán cố định theo khuôn mẫu biển số 4 chữ số cũ (dạng XX-XX XXXX), chưa hỗ trợ định dạng biển 5 số.
  • Phần mềm chỉ xử lý trên tệp ảnh tĩnh lưu sẵn, chưa tích hợp module thu nhận và bắt hình trực tiếp từ luồng video camera thời gian thực.

Hướng phát triển đề xuất

  • Nghiên cứu cơ chế tự động xác định ngưỡng xám cục bộ thích nghi (Local Adaptive Thresholding) khi nhị phân hóa ảnh màu.
  • Bổ sung thuật toán ước lượng độ nghiêng và giải thuật xoay ảnh tự động để xử lý các biển số bị lệch góc lớn.
  • Phân đoạn biển số thành nhiều vùng con để xác định ngưỡng sáng riêng biệt cho từng khu vực bị đổ bóng.
  • Mở rộng tập mẫu nhận dạng để hỗ trợ quy chuẩn biển số xe máy 5 chữ số.
  • Tích hợp driver điều khiển phần cứng cho phép bắt hình trực tiếp từ camera giám sát.

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 ngành Công nghệ thông tin, Khoa học máy tính, Kỹ thuật phần mềm và các nhà phát triển hệ thống giao thông thông minh (ITS).

Các nội dung có giá trị tham khảo ứng dụng cao bao gồm:

  • Mã nguồn và giải thuật chuẩn hóa kích thước, chuyển đổi mức xám, nhị phân hóa ảnh bằng C# .NET.
  • Kỹ thuật tính toán lược đồ tích lũy biến thiên điểm ảnh theo hai chiều dọc/ngang phục vụ phân đoạn đối tượng.
  • Phương pháp tách dòng và phân tách ký tự dựa trên phân tích ma trận điểm ảnh đen/trắng.
  • Cấu trúc thiết kế giao diện kiểm thử từng bước xử lý trung gian cho các đề tài nghiên cứu thị giác máy tính.

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

1. Khóa luận sử dụng các tiêu chí hình học nào để lọc ứng viên biển số trong phương pháp dò vùng?
Trong phương pháp dò vùng, các hình chữ nhật được ghép từ các đoạn thẳng ngang và dọc sẽ được lọc qua các ràng buộc kích thước: tỷ lệ chiều cao/chiều rộng nằm trong khoảng từ 0.68 đến 0.8; chiều rộng từ 80 đến 400 pixel; chiều cao từ 63 đến 350 pixel (các thông số có thể co giãn theo tỷ lệ ảnh).

2. Vì sao phương pháp dò cạnh phải xác định tọa độ cạnh dưới trước cạnh trên của biển số?
Do phần phía trên của bức ảnh thường xuất hiện nhiều đường biên phức tạp từ các chi tiết đuôi xe máy gây nhiễu, việc định vị trực tiếp cạnh trên rất dễ sai lệch. Vì vậy, thuật toán tìm cạnh dưới trước tại vị trí có độ dốc tăng mạnh nhất từ phải sang trái trên lược đồ quetDoc, sau đó xác định cạnh trên nằm cách cạnh dưới một khoảng cố định từ 70 đến 110 pixel theo chiều từ dưới lên.

3. Tại sao phương pháp nhận dạng hình thái học (cắt theo 3 trục) không thể nhận dạng được ký tự chữ cái?
Phương pháp hình thái học dựa vào số điểm cắt qua 1 trục dọc và 2 trục ngang chỉ xây dựng được cây quyết định phân loại cho 10 chữ số (từ 0 đến 9) dựa trên các đặc trưng hình học đặc thù (lỗ tròn kín, nét hở). Cấu trúc nét của các chữ cái tiếng Việt phức tạp hơn rất nhiều nên số lượng đường cắt này không đủ để phân biệt, dẫn đến tỷ lệ nhận dạng chữ cái đạt 0%.

4. Kích thước chuẩn hóa của ảnh đầu vào và ảnh vùng biển số trong hệ thống là bao nhiêu?
Ảnh chụp toàn cảnh phần sau xe nạp vào hệ thống được chuẩn hóa về kích thước 420 x 560 pixel trước khi quét lược đồ. Ảnh vùng biển số trích chọn được quy đổi về kích thước chuẩn 210 x 160 pixel trước khi thực hiện thuật toán xóa biên và phần dư.

5. Bộ lọc Sobel được ứng dụng ở giai đoạn nào và thông qua thư viện nào?
Bộ lọc Sobel được sử dụng ở giai đoạn tiền xử lý của phương pháp dò cạnh nhằm làm nổi bật các đường viền bao quanh biển số từ ảnh mức xám. Tác giả không tự viết ma trận tích chập từ đầu mà tích hợp bộ lọc Sobel có sẵn từ thư viện xử lý ảnh mã nguồn mở AForge.NET.

Kết luận

Khóa luận tốt nghiệp của nhóm tác giả Đinh Như Vũ Anh và Huỳnh Quốc Duy đã nghiên cứu và triển khai thành công phần mềm nhận dạng biển số xe máy từ ảnh tĩnh trên nền tảng C# và AForge.NET. Thông qua việc thử nghiệm và so sánh đối đầu giữa các giải thuật dò cạnh, dò vùng, so sánh mẫu và phân tích hình thái học, nghiên cứu đã chứng minh tính hiệu quả của phương pháp so sánh mẫu với độ chính xác nhận dạng đạt trên 98%. Mặc dù còn hạn chế về khả năng tự động xoay ảnh nghiêng và xử lý nguồn video trực tiếp, kết quả của đề tài đã tạo nền tảng thuật toán thực nghiệm vững chắc cho các hệ thống quản lý bãi xe tự động.