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

Trong bối cảnh đô thị hóa và sự gia tăng nhanh chóng của các phương tiện giao thông cá nhân, nhu cầu sử dụng bãi đỗ xe ngày càng trở nên cấp thiết. Tuy nhiên, công tác quản lý tại phần lớn các bãi giữ xe hiện nay vẫn tồn tại nhiều bất cập:

  • Việc sử dụng vé giấy ghi tay truyền thống dễ gây ra tình trạng phai mờ mực do ma sát, rách nát hoặc thất lạc, dẫn đến khó khăn trong việc xác minh quyền sở hữu phương tiện khi xảy ra sự cố.
  • Hình thức sử dụng thẻ từ vật lý tuy có cải tiến nhưng vẫn mang rủi ro làm mất thẻ, cầm nhầm thẻ, đồng thời người gửi xe thường xuyên gặp tình trạng quên vị trí đỗ tại các bãi xe có diện tích lớn, gây mất thời gian tìm kiếm.
  • Công tác giám sát an ninh phụ thuộc nhiều vào nhân lực bảo vệ và hệ thống camera quan sát thụ động, chưa tối ưu hóa được năng suất vận hành và chưa ngăn chặn triệt để nguy cơ trộm cắp hoặc phá hoại xe.

Để giải quyết các vấn đề trên, đề tài ứng dụng các thành tựu của cuộc Cách mạng Công nghiệp lần thứ tư, đặc biệt là lĩnh vực Thị giác máy tính (Computer Vision) kết hợp công nghệ nhận dạng ký tự quang học (OCR) và vi điều khiển nhúng. Mục tiêu và nhiệm vụ nghiên cứu được xác định cụ thể:

  1. Mục tiêu đề tài: Thiết kế và thực thi mô hình hệ thống quản lý bãi giữ xe thông minh, thực hiện các chức năng cơ bản: tự động đọc và nhận dạng biển số xe bằng camera, số hóa vé xe thông qua mã QR trên ứng dụng điện thoại di động, và tự động xác định vị trí đỗ của từng phương tiện trong bãi.
  2. Nhiệm vụ nghiên cứu:
    • Nghiên cứu cơ sở lý thuyết về xử lý ảnh số với OpenCV, nhận dạng ký tự quang học với Tesseract-OCR, cấu trúc mã hóa/giải mã QR Code, và giao thức mạng RESTful API/HTTPS.
    • Thiết kế phần cứng mô hình tích hợp máy tính nhúng Raspberry Pi 4 Model B, Camera Logitech C270, Raspberry Pi Camera Module và vi điều khiển ESP32-CAM.
    • Xây dựng hệ thống phần mềm bao gồm cơ sở dữ liệu quan hệ, máy chủ RESTful API backend và ứng dụng di động phục vụ người dùng.
    • Triển khai mô phỏng, thử nghiệm các trạng thái xe vào, xe đỗ, xe ra và đánh giá độ ổn định của hệ thống.

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

  • Đối tượng nghiên cứu: Quy trình tự động hóa đọc biển số xe, nhận dạng mã QR và cơ chế định vị ô đỗ xe trong bãi giữ xe thông minh.
  • Phạm vi nghiên cứu: Mô hình bãi xe được thiết kế giới hạn ở quy mô một tầng; đối tượng phương tiện thử nghiệm là ô tô; biển số xe dài theo tiêu chuẩn Việt Nam, đảm bảo tính hợp pháp và độ rõ nét; xe đỗ đúng làn quy định; điều kiện môi trường có độ sáng ổn định phục vụ camera quan sát.

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

Đề tài vận dụng các khung lý thuyết, công cụ phần mềm và phương pháp nghiên cứu kỹ thuật thực nghiệm:

1. Khung lý thuyết và công nghệ

  • Thư viện OpenCV (Open Source Computer Vision Library): Cung cấp các công cụ xử lý ảnh thời gian thực viết bằng C/C++ và tích hợp qua giao diện Python. Đồ án sử dụng các kỹ thuật:
    • Lọc mịn Gaussian (Gaussian Smoothing): Tích chập mảng ảnh với nhân kernel kích thước 3x3 nhằm khử nhiễu từ cảm biến camera.
    • Phân đoạn ảnh bằng ngưỡng (Thresholding): Chuyển đổi ảnh xám sang ảnh nhị phân (CV_THRESH_BINARY).
    • Ngưỡng thích ứng (Adaptive Thresholding): Áp dụng phương pháp tính toán ngưỡng động theo từng vùng cục bộ (CV_ADAPTIVE_THRESH_MEAN_C hoặc CV_ADAPTIVE_THRESH_GAUSSIAN_C) để khắc phục sự phân bố ánh sáng không đồng đều ngoài trời.
    • Tìm đường viền (Contours): Sử dụng hàm cvFindContours với chế độ thu hồi RETR_LIST và phương pháp xấp xỉ CHAIN_APPROX_SIMPLE để nén các đoạn thẳng, xác định tọa độ khung viền biển số xe.
  • Công cụ nhận dạng ký tự Tesseract-OCR: Động cơ OCR mã nguồn mở tích hợp mạng nơ-ron LSTM (Long Short-Term Memory) và thư viện Leptonica, giao tiếp qua wrapper Pytesseract trong Python. Hệ thống xử lý theo đường ống (pipeline) hai lượt (two-pass process) kết hợp bộ phân loại thích ứng để trích xuất chuỗi ký tự từ hình ảnh biển số đã qua phân đoạn.
  • Lý thuyết mã ma trận hai chiều (QR Code): Phát minh bởi Denso Wave (1994), hỗ trợ từ Version 1 đến Version 40 (ma trận lên tới 177x177 module). Cấu trúc gồm 6 vùng chức năng: Vùng tìm kiếm (Finder Pattern với tỷ lệ module 1:1:3:1:1), Dải phân tách (Separators), Vùng thời gian (Timing Patterns), Vùng căn chỉnh (Alignment Patterns), Vùng mã hóa (Encoding Region) và Vùng tĩnh (Quiet Zone). Sử dụng thuật toán sửa lỗi Reed-Solomon với 4 cấp độ chịu lỗi (L: 7%, M: 15%, Q: 25%, H: 30%).
  • Mạng máy tính và Cơ sở dữ liệu: Hệ thống cơ sở dữ liệu quan hệ lưu trữ thực thể; kiến trúc web service trao đổi dữ liệu qua RESTful API với các phương thức GET, POST; các giao thức phụ trợ DNS, DDNS và HTTPS.

2. Phương pháp nghiên cứu thực tế

  • Phương pháp tổng hợp và phân tích tài liệu: Khảo sát các tài liệu kỹ thuật của OpenCV, Tesseract-OCR, quy chuẩn mã QR Code và khảo sát bố cục không gian các bãi giữ xe thực tế để xác định vị trí bố trí camera tối ưu.
  • Phương pháp thiết kế và thực nghiệm kỹ thuật: Xây dựng mô hình vật lý bãi giữ xe, lập trình nhúng trên Raspberry Pi 4 và ESP32-CAM, thiết kế kiến trúc API máy chủ và lập trình ứng dụng di động; thực hiện kiểm thử chức năng theo kịch bản vận hành thực tế.

3. Nguồn dữ liệu

Dữ liệu thử nghiệm là các hình ảnh biển số xe ô tô tiêu chuẩn và dữ liệu mã QR được thu thập trực tiếp từ hệ thống camera thực nghiệm (Logitech C270, Camera Module Raspberry Pi, ESP32-CAM) trong quá trình vận hành hệ thống.


Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình tích hợp phần cứng - phần mềm đồng bộ:

Thành phần Thiết bị / Công nghệ Vai trò chức năng trong hệ thống
Bộ xử lý trung tâm Raspberry Pi 4 Model B Điều phối luồng xử lý chính, chạy chương trình Python, xử lý ảnh OpenCV và Tesseract-OCR tại cổng bãi xe.
Camera cổng vào/ra Logitech C270 / Camera Module Chụp ảnh biển số xe ô tô và quét mã QR của người dùng tại khu vực cổng vào và cổng ra.
Camera vị trí đỗ ESP32-CAM Lắp đặt tại từng vị trí ô đỗ, chụp biển số xe sau khi đỗ và truyền hình ảnh/dữ liệu cùng địa chỉ MAC về máy chủ qua Wi-Fi/IP.
Máy chủ & CSDL RESTful API, CSDL quan hệ Quản lý 3 bảng dữ liệu chính: Bảng Người dùng (User), Bảng Phương tiện/Trạng thái (Vehicle/Status), Bảng Vị trí Camera (Camera Location/MAC).
Giao diện di động Ứng dụng điện thoại thông minh Cung cấp mã QR định danh cho người dùng, hiển thị trạng thái xe (chưa vào, đã vào, vị trí ô đỗ cụ thể) và hỗ trợ checkout.

Quy trình vận hành theo 3 trạng thái

  1. Trạng thái xe vào (Check-in): Phương tiện tiến vào cổng, camera Logitech C270 chụp biển số xe. Chương trình xử lý ảnh lọc mờ Gaussian, áp dụng Adaptive Threshold và trích xuất ký tự qua Pytesseract. Đồng thời, camera quét mã QR hiển thị trên ứng dụng di động của người dùng. Hệ thống gửi Request POST tới API xe vào, kiểm tra và ghi nhận phương tiện vào bãi trong cơ sở dữ liệu.
  2. Trạng thái xe đậu (Parking): Khi xe di chuyển vào vị trí ô đỗ quy định, ESP32-CAM tại vị trí đó nhận diện sự xuất hiện của xe, chụp ảnh biển số và gửi dữ liệu kèm địa chỉ MAC của camera lên hệ thống qua API. Máy chủ đối chiếu địa chỉ MAC với bảng vị trí camera để xác định chính xác tên ô đỗ, sau đó cập nhật thông tin vị trí lên giao diện ứng dụng di động của chủ phương tiện.
  3. Trạng thái xe ra (Check-out): Phương tiện tiến đến cổng ra, camera chụp lại biển số và hệ thống quét mã QR trên điện thoại. API kiểm tra tính khớp nối giữa biển số và mã định danh người dùng. Nếu thông tin hợp lệ, hệ thống hoàn tất thủ tục xuất bãi, xóa thông tin vị trí đỗ trên ứng dụng và chuyển trạng thái phương tiện sang đã rời bãi.

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

Chương 1: Tổng quan

Chương 1 phân tích bối cảnh thực tiễn của sự phát triển giao thông đô thị và những hạn chế của phương pháp quản lý bãi đỗ xe truyền thống. Tác giả xác định mục tiêu trọng tâm là thực thi mô hình đọc biển số, xác định vị trí đỗ xe và thay thế vé xe vật lý bằng mã QR Code. Chương này cũng nêu rõ phạm vi giới hạn nghiên cứu đối với xe ô tô có biển số chuẩn Việt Nam trong mô hình bãi đỗ xe một tầng và phương pháp tiếp cận kết hợp lý thuyết và thực nghiệm.

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

Chương 2 trình bày có hệ thống các nền tảng kỹ thuật được ứng dụng trong đề tài:

  • Xử lý ảnh với OpenCV: Phân tích kiến trúc 5 thành phần (CV, MLL, HighGUI, CXCore, CvAux); đi sâu vào các hàm xử lý ảnh nhị phân, bộ lọc Gaussian làm mịn bằng nhân chập kernel kích thước 3x3, cơ chế tính toán ngưỡng nhị phân cục bộ của Adaptive Thresholding (CV_ADAPTIVE_THRESH_MEAN_C, CV_ADAPTIVE_THRESH_GAUSSIAN_C), và giải thuật trích xuất đường viền cvFindContours với chế độ RETR_LIST cùng kiểu xấp xỉ CHAIN_APPROX_SIMPLE.
  • Nhận dạng ký tự Tesseract-OCR: Trình bày lịch sử phát triển, kiến trúc pipeline nhận dạng khối (blobs), tiến trình phân loại hai lượt (two-pass process) và cấu trúc wrapper Pytesseract trên nền tảng Python.
  • Cấu trúc mã QR Code: Trình bày chuẩn ma trận từ Version 1 đến Version 40, các vùng hình học chức năng (Finder, Separator, Timing, Alignment, Quiet Zone), cơ chế sửa sai Reed-Solomon và quy trình 8 bước mã hóa dữ liệu.
  • Hạ tầng kết nối: Tổng quan về cơ sở dữ liệu quan hệ, giao thức truyền thông HTTP/HTTPS, hệ thống tên miền DNS/DDNS và cấu trúc thiết kế RESTful API.

Chương 3: Thiết kế mô hình

Chương 3 chi tiết hóa giải pháp kỹ thuật của hệ thống bãi đỗ xe thông minh:

  • Thiết lập sơ đồ khối tổng thể, lưu đồ luồng dữ liệu xử lý ảnh biển số và lưu đồ API cho 3 trạng thái hoạt động (xe vào, xe đậu, xe ra).
  • Thiết kế phần cứng: Bố trí máy tính nhúng Raspberry Pi 4 Model B kết nối Camera Logitech C270, Camera Module Standard và mạng vi điều khiển ESP32-CAM tại các vị trí đỗ.
  • Thiết kế phần mềm: Xây dựng cơ sở dữ liệu quan hệ gồm các bảng Người dùng, Phương tiện/Trạng thái và Vị trí Camera; thiết lập cấu hình máy chủ web service cung cấp các Endpoint API tương ứng cho từng trạng thái; phát triển ứng dụng di động với các giao diện đăng nhập, đăng ký, hiển thị mã QR và màn hình theo dõi vị trí ô đỗ xe.

Chương 4: Kết quả

Chương 4 công bố các kết quả vận hành thực tế của mô hình:

  • Hệ thống nhận dạng chính xác biển số xe ô tô và giải mã thành công mã QR tại trạm kiểm soát vào/ra.
  • Kiểm tra quá trình vận hành hệ thống và ghi nhận nhật ký (log) thông qua công cụ VNC Viewer.
  • Module ESP32-CAM truyền tải ổn định dữ liệu biển số kèm địa chỉ MAC qua mạng không dây, cho phép máy chủ định vị chính xác vị trí ô đỗ của xe.
  • Ứng dụng di động phản hồi tức thời: Hiển thị mã QR khi xe chưa vào bãi, cập nhật biển số cùng vị trí đỗ cụ thể khi xe đã vào vị trí, và tự động giải phóng vị trí đỗ sau khi hoàn tất thủ tục checkout.

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

Chương 5 tổng kết mức độ hoàn thành mục tiêu đề tài: Khẳng định tính khả thi của mô hình tích hợp hệ thống nhúng, thị giác máy tính và ứng dụng di động trong quản lý bãi đỗ xe. Đồng thời, tác giả đề xuất các giải pháp nâng cấp mô hình trong tương lai nhằm nâng cao hiệu suất nhận dạng và mở rộng quy mô ứng dụng.


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

1. Kết quả chính đạt được

  • Hiện thực hóa mô hình phần cứng nhúng: Triển khai thành công mô hình bãi giữ xe kết nối giữa Raspberry Pi 4 Model B, Camera Logitech C270, Camera Module và ESP32-CAM.
  • Tối ưu hóa quy trình xử lý ảnh biển số: Áp dụng thành công chuỗi thuật toán tiền xử lý gồm bộ lọc Gaussian (kernel 3x3) kết hợp Adaptive Threshold và giải thuật tìm đường viền (RETR_LIST, CHAIN_APPROX_SIMPLE) giúp Tesseract-OCR nhận dạng ký tự biển số từ ảnh đầu vào.
  • Số hóa thủ tục ra vào: Loại bỏ hoàn toàn vé xe giấy và thẻ từ thông qua việc quét mã QR động được sinh ra và quản lý trên ứng dụng di động.
  • Tự động hóa định vị vị trí đỗ: Nhận diện và gán chính xác vị trí xe trong bãi nhờ cơ chế đối chiếu địa chỉ MAC của ESP32-CAM với cơ sở dữ liệu máy chủ, hiển thị trực quan trên ứng dụng của người dùng.

2. Giải pháp và kiến nghị đề xuất

  • Ứng dụng kỹ thuật Adaptive Threshold thay thế Threshold thông thường để khắc phục triệt để hiện tượng phân bố cường độ sáng không đồng đều và chênh lệch gradient màu trên biển số xe khi chụp ngoài trời.
  • Chuẩn hóa việc truyền nhận dữ liệu giữa các thiết bị ngoại vi, vi điều khiển phân tán và ứng dụng người dùng thông qua kiến trúc RESTful API tập trung.

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

  • Chứng minh tính khả thi của việc kết hợp các thư viện xử lý ảnh mã nguồn mở (OpenCV, Tesseract-OCR) trên phần cứng nhúng giá thành thấp để giải quyết bài toán giao thông thông minh.
  • Đề xuất mô hình tích hợp đồng thời ba chức năng: Kiểm soát an ninh ra/vào qua biển số, thay thế thẻ giữ xe bằng mã QR di động, và tự động hóa theo dõi vị trí đỗ xe.

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

1. Hạn chế của đề tài

  • Hệ thống được triển khai dưới dạng mô hình thực nghiệm thực thi ý tưởng với các điều kiện giả định lý tưởng (xe ô tô đỗ đúng làn, ánh sáng đủ, biển số chuẩn và rõ nét).
  • Tesseract-OCR phụ thuộc nhiều vào chất lượng ảnh đầu vào; độ chính xác nhận dạng có thể suy giảm nếu biển số bị nghiêng góc lớn, mờ bẩn hoặc trong điều kiện ánh sáng quá yếu.
  • Phạm vi mô hình mới chỉ dừng lại ở bãi đỗ xe ô tô quy mô một tầng, chưa hỗ trợ đa dạng các loại phương tiện khác như xe máy.

2. Hướng nghiên cứu và phát triển tiếp theo

  • Mở rộng thuật toán để nhận dạng được nhiều loại biển số xe khác nhau (biển số vuông, biển số xe máy, xe tải).
  • Huấn luyện bổ sung các mô hình học sâu chuyên dụng (như Convolutional Neural Networks - CNN, YOLO) để cải thiện độ chính xác và tốc độ nhận dạng ký tự trong điều kiện môi trường phức tạp hoặc ban đêm.
  • Mở rộng quy mô hệ thống cho các bãi đỗ xe nhiều tầng và tích hợp thêm tính năng thanh toán phí gửi xe tự động không dùng tiền mặt trực tiếp trên ứng dụng di động.

Giá trị tham khảo

Đồ án là tài liệu tham khảo giá trị cho sinh viên, giảng viên và các kỹ sư thuộc các chuyên ngành Công nghệ Kỹ thuật Máy tính, Điện tử - Viễn thông, Công nghệ Thông tin và Kỹ thuật Điều khiển - Tự động hóa.

Nội dung đặc biệt hữu ích bao gồm:

  • Hướng dẫn chi tiết quy trình tiền xử lý ảnh nhị phân, phân đoạn ảnh bằng Adaptive Threshold và lọc đường viền Contours với OpenCV bằng ngôn ngữ Python.
  • Cách thức cấu hình và tích hợp Tesseract-OCR (qua thư viện Pytesseract) trên hệ thống máy tính nhúng Linux/Raspberry Pi.
  • Thiết kế hệ thống mạng cảm biến phân tán kết hợp ESP32-CAM và máy chủ RESTful API phục vụ bài toán định vị vị trí trong các hệ thống IoT.

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

1. Tại sao nhóm tác giả lựa chọn phương pháp Adaptive Threshold thay vì Binary Threshold trong khâu xử lý ảnh biển số?

Trả lời: Phương pháp Binary Threshold thông thường áp dụng một giá trị ngưỡng cố định cho toàn bộ bức ảnh, dẫn đến việc mất chi tiết hoặc không phân biệt được ký tự khi ảnh chụp ngoài trời có sự phân bố cường độ sáng không đều. Adaptive Threshold tính toán giá trị ngưỡng riêng biệt cho từng vùng lân cận điểm ảnh (dựa trên giá trị trung bình hoặc hàm Gaussian), giúp phân đoạn chính xác các vùng sáng/tối cục bộ và đảm bảo chất lượng ảnh nhị phân đầu vào cho Tesseract-OCR.

2. Cơ chế nào giúp hệ thống xác định chính xác vị trí ô đỗ của phương tiện khi xe đã vào bãi?

Trả lời: Tại mỗi vị trí ô đỗ trong bãi được lắp đặt một vi điều khiển ESP32-CAM có gắn địa chỉ MAC phần cứng duy nhất. Khi xe tiến vào ô đỗ, camera ESP32 chụp biển số xe và gửi gói tin chứa biển số kèm địa chỉ MAC lên máy chủ qua API. Máy chủ đối chiếu địa chỉ MAC này với bảng vị trí camera trong cơ sở dữ liệu để xác định tên ô đỗ tương ứng, sau đó cập nhật thông tin vị trí lên ứng dụng di động của người dùng.

3. Kiến trúc nhận dạng của Tesseract-OCR hoạt động theo tiến trình như thế nào?

Trả lời: Tesseract-OCR xử lý theo đường ống (pipeline): Ảnh nhị phân đầu vào được phân tích thành các thành phần liên kết (blobs), sau đó gom thành các dòng văn bản dựa trên độ cao cố định hoặc tỷ lệ chữ. Quá trình nhận dạng thực hiện theo quy trình 2 lượt (two-pass process): Lượt đầu tiên cố gắng nhận diện từng ký tự và đưa các ký tự thỏa mãn vào bộ phân loại thích ứng để làm dữ liệu huấn luyện; lượt thứ hai chạy lại để nhận dạng các ký tự chưa được xác định ở lượt đầu. Cuối cùng, hệ thống xử lý khoảng cách và kiểm tra kích thước ký tự để trích xuất chuỗi văn bản hoàn chỉnh.

4. Hệ thống phần cứng của mô hình bao gồm những thiết bị nào và sử dụng camera gì?

Trả lời: Phần cứng của mô hình bao gồm máy tính nhúng trung tâm Raspberry Pi 4 Model B, Camera Logitech C270 (hoặc Raspberry Pi Camera Module Standard) phục vụ đọc biển số và quét mã QR tại cổng vào/ra, và các module ESP32-CAM bố trí tại từng ô đỗ xe để định vị phương tiện. Quá trình kiểm tra log và giám sát phần cứng được thực hiện thông qua phần mềm VNC Viewer.


Kết luận

Đồ án tốt nghiệp của nhóm tác giả Bùi Minh Quang và Trần Trung Thắng đã thiết kế và triển khai thành công mô hình bãi giữ xe thông minh tích hợp công nghệ xử lý ảnh OpenCV, nhận dạng ký tự Tesseract-OCR và hệ thống nhúng Raspberry Pi 4 kết hợp ESP32-CAM. Nghiên cứu giải quyết đồng thời bài toán số hóa quy trình kiểm soát ra/vào bằng mã QR di động và tự động định vị vị trí đỗ xe của phương tiện. Kết quả thực nghiệm khẳng định tính khả thi của mô hình, tạo tiền đề vững chắc cho việc phát triển các giải pháp bãi đỗ xe thông minh trong đô thị hiện đại.