Bối cảnh và vấn đề nghiên cứu
Trong quá trình đô thị hóa và phát triển các mô hình đô thị thông minh, sự gia tăng nhanh chóng của số lượng phương tiện giao thông cá nhân – đặc biệt là xe hơi – đã đặt ra áp lực lớn đối với hạ tầng giao thông tĩnh. Tình trạng quá tải tại các bãi đỗ xe khu vực trung tâm dẫn đến việc người điều khiển phương tiện mất nhiều thời gian tìm kiếm vị trí còn trống, gây lãng phí nhiên liệu, ùn tắc cục bộ và gia tăng khí thải ra môi trường.
Đề tài "Hệ thống Đếm Chỗ Đỗ Xe Hơi Tự Động - Automated Car Parking Space Counting System" do nhóm sinh viên Khoa Công nghệ Thông tin, Trường Đại học Văn Lang thực hiện vào tháng 11/2023 nhằm nghiên cứu và xây dựng giải pháp tự động hóa quá trình giám sát, quản lý bãi đỗ xe thông qua công nghệ thị giác máy tính (Computer Vision), thay thế các phương thức kiểm đếm thủ công hoặc hệ thống bảng hiệu tĩnh kém linh hoạt.
Văn bản đồ án xác định năm thách thức kỹ thuật cốt lõi cần giải quyết:
- Độ chính xác trong việc nhận dạng xe và chỗ đỗ: Khắc phục ảnh hưởng của điều kiện chiếu sáng tự nhiên, góc đặt camera quan sát và sự đa dạng về kiểu dáng, màu sắc, kích thước của các phương tiện.
- Xử lý dữ liệu trong thời gian thực: Đảm bảo tốc độ tính toán của thuật toán để cung cấp thông tin cập nhật liên tục với độ trễ tối thiểu cho bảng điều khiển.
- Tính ổn định của hệ thống: Duy trì khả năng vận hành tin cậy dưới sự biến động của môi trường ngoại cảnh, thời tiết và chu kỳ chiếu sáng ngày/đêm.
- Khả năng mở rộng: Thiết kế kiến trúc phần mềm linh hoạt, có khả năng cấu hình để đáp ứng sự gia tăng về quy mô bãi đỗ và tích hợp với hạ tầng đô thị thông minh trong tương lai.
- Bảo mật thông tin: Đảm bảo an toàn dữ liệu hình ảnh ghi nhận từ camera giám sát và ngăn ngừa các rủi ro liên quan đến dữ liệu người dùng.
Về mục tiêu nghiên cứu, đồ án xác định mục tiêu tổng quát là thiết kế và triển khai một hệ thống tự động nhận diện, đếm số lượng ô đỗ xe hơi còn trống trong một khu vực cụ thể dựa trên hình ảnh/video camera. Tác giả phân chia thành bốn nhiệm vụ cụ thể được đánh số theo văn bản:
- Tăng hiệu suất quản lý bãi đỗ xe: Cung cấp bức tranh toàn cảnh về tình trạng sử dụng bãi xe theo thời gian thực, hỗ trợ người quản lý điều phối và hướng dẫn phương tiện kịp thời.
- Giao diện thân thiện: Cung cấp giao diện hiển thị trực quan, dễ quan sát trạng thái vị trí đỗ cho cả nhà quản lý và tài xế.
- Tích hợp linh hoạt và mở rộng: Xây dựng hệ thống với cấu trúc mở, có khả năng tương thích với hạ tầng sẵn có và dễ dàng cập nhật tính năng.
- Tiết kiệm năng lượng và bảo vệ môi trường: Giảm thiểu sự phụ thuộc vào các cảm biến vật lý độc lập (như cảm biến từ, siêu âm tại từng vị trí đỗ), qua đó giảm điện năng tiêu thụ và rác thải pin/thiết bị điện tử.
- Đối tượng nghiên cứu: Không gian các vị trí đỗ xe hơi và trạng thái chiếm dụng của chúng thông qua dữ liệu hình ảnh, video kỹ thuật số.
- Phạm vi nghiên cứu: Không gian bãi đỗ xe ô tô cố định được bao quát bởi thiết bị ghi hình (camera quan sát hoặc thiết bị bay không người lái - drone); thực nghiệm xây dựng và kiểm thử chương trình trên môi trường máy trạm lập trình Python sử dụng các thư viện thị giác máy tính truyền thống tại Trường Đại học Văn Lang vào tháng 11/2023.
Cơ sở lý thuyết và phương pháp
Đồ án được xây dựng dựa trên nền tảng lý thuyết thị giác máy tính cổ điển, kết hợp chuỗi xử lý hình ảnh số (digital image processing pipeline) để phân tích trạng thái điểm ảnh mà không cần sử dụng các mô hình học sâu phức tạp trong khâu suy luận trực tiếp.
1. Khung lý thuyết và công nghệ sử dụng
- Thị giác máy tính (Computer Vision): Vận dụng mô hình hoạt động ba giai đoạn cơ bản gồm: thu nhận hình ảnh (qua camera/drone), xử lý hình ảnh (tiền xử lý dữ liệu số), và nhận biết hình ảnh (phân loại trạng thái đối tượng). Tác giả tổng thuật quá trình phát triển từ dự án Summer Vision Project (1966) của Seymour Papert và Marvin Minsky, mô hình Neocognitron (1979) của Kunihiko Fukushima, cùng các luận điểm của Melanie Mitchell về trí tuệ thị giác.
- Thư viện OpenCV (Open Source Computer Vision Library): Bộ công cụ mã nguồn mở khởi xướng từ năm 1999 bởi Gary Bradsky tại Intel Research, phát hành bản 1.0 năm 2006 và bản OpenCV 2 năm 2009 với giao diện C++ hiện đại. Đồ án sử dụng các module nòng cốt gồm:
core(cấu trúc dữ liệu mảng đa chiều),imgproc(xử lý hình ảnh số), vàHighgui(giao diện hiển thị, tương tác video và bắt sự kiện ngoại vi). - Kỹ thuật chuyển đổi ảnh xám (Image Grayscale): Kỹ thuật rút giảm dữ liệu từ ảnh màu 3 kênh (RGB) xuống ảnh đơn sắc 1 kênh (8-bit, dải giá trị 0–255) nhằm giảm tải bộ nhớ và tăng tốc độ xử lý. Đồ án so sánh ba công thức chuyển đổi:
- Phương pháp Lightness: Lấy giá trị trung bình giữa thành phần lớn nhất và nhỏ nhất: $$\text{GrayScale} = \frac{\max(R, G, B) + \min(R, G, B)}{2}$$
- Phương pháp Average: Lấy trung bình cộng của ba kênh: $$\text{GrayScale} = \frac{R + G + B}{3}$$
- Phương pháp Luminosity: Sử dụng trọng số phản ánh độ nhạy cảm thị giác của mắt người: $$\text{GrayScale} = 0.2126 \cdot R + 0.7152 \cdot G + 0.0722 \cdot B$$
- Bộ lọc Gaussian Blur: Kỹ thuật làm mịn ảnh dựa trên phân phối chuẩn Gauss hai chiều để loại bỏ nhiễu tần số cao: $$G(x, y) = \frac{1}{2\pi\sigma^2} e^{-\frac{x^2+y^2}{2\sigma^2}}$$ Đồ án áp dụng tính chất tách được tuyến tính (linear separable) của bộ lọc Gauss với các kích thước ma trận tích chập (kernel) rời rạc $3\times3$, $5\times5$, hoặc $7\times7$.
- Phân ngưỡng thích nghi (Adaptive Thresholding): Phương pháp nhị phân hóa cục bộ, chia ảnh thành các vùng nhỏ để tính toán giá trị ngưỡng động, khắc phục sự chiếu sáng không đồng đều. Đồ án khảo sát hai thuật toán phân ngưỡng
ADAPTIVE_THRESH_MEAN_C(trung bình đơn giản lân cận) vàADAPTIVE_THRESH_GAUSSIAN_C(trung bình có trọng số Gauss), dựa trên hai tham số điều khiển làBlock Size(kích thước vùng lân cận) và hằng số trừC. - Bộ lọc trung vị (Median Blur): Bộ lọc phi tuyến hoạt động bằng cách quét cửa sổ lẻ qua từng điểm ảnh, sắp xếp dãy số cường độ lân cận và lấy giá trị trung vị gán cho điểm ảnh trung tâm. Thuật toán có tính chất vượt trội trong việc loại bỏ nhiễu ngẫu nhiên dạng muối tiêu mà không làm mờ đường biên cạnh sắc nét của vật thể.
- Các thư viện bổ trợ trong hệ sinh thái Python: Thư viện
pickledùng để tuần tự hóa (serialization) danh sách cấu hình tọa độ thành định dạng byte lưu trữ cục bộ; thư việncvzone(phát triển trên nền OpenCV và MediaPipe) hỗ trợ các tiện ích vẽ đồ họa, hiển thị thông tin trực quan trên khung hình; và thư việnnumpydùng cho các thao tác xử lý ma trận dữ liệu điểm ảnh.
2. Phương pháp nghiên cứu thực tế
Tác giả sử dụng phương pháp thực nghiệm thiết kế hệ thống phần mềm, chia quy trình thực hiện thành hai giai đoạn độc lập:
- Giai đoạn thu thập và cấu hình vị trí đỗ: Xây dựng công cụ tương tác đồ họa để người dùng tự xác định vùng quan tâm (ROI - Region of Interest) của từng chỗ đỗ trên mặt bằng bãi xe và lưu trữ thông số hình học.
- Giai đoạn phân tích luồng video: Áp dụng chuỗi giải thuật xử lý ảnh tuần tự kết hợp phương pháp đếm điểm ảnh có giá trị khác không (
non-zero pixels) trong từng ô đỗ để đưa ra quyết định nhị phân (trống/bị chiếm dụng).
3. Nguồn dữ liệu
Dữ liệu sử dụng trong đồ án là các tệp video và hình ảnh ghi hình bãi đỗ xe hơi nhìn từ góc trên cao, thu nhận thông qua camera giám sát cố định hoặc thiết bị bay (drone), thể hiện không gian bãi đỗ với các vạch kẻ và phương tiện ra vào thực tế.
Thiết kế và triển khai hệ thống
Hệ thống được lập trình hoàn toàn bằng ngôn ngữ Python, chạy trên môi trường phát triển Visual Studio Code, sử dụng các thư viện chính: cv2, pickle, cvzone và numpy. Kiến trúc triển khai bao gồm hai chương trình độc lập:
| Chương trình / Module | Vai trò chức năng chính | Thư viện & Thao tác kỹ thuật |
|---|---|---|
1. Chương trình cấu hình tọa độ (data_collect.py) |
Thiết lập bản đồ tọa độ các ô đỗ xe cố định trên bãi đỗ từ một ảnh chụp tĩnh đại diện. | - Đọc ảnh tĩnh bãi đỗ xe bằng OpenCV. - Định nghĩa kích thước chuẩn của ô đỗ ( width, height).- Sử dụng hàm bắt sự kiện chuột cv2.setMouseCallback('image', mouseClick).- Chuột trái: Thêm tọa độ (x, y) vào danh sách posList.- Chuột phải: Kiểm tra và xóa ô đỗ nếu điểm click nằm trong phạm vi ô có sẵn. - Tuần tự hóa danh sách posList lưu vào tệp dữ liệu CarParkPicked qua pickle.dump().- Phím 'Q' để đóng chương trình. |
| 2. Chương trình đếm tự động theo thời gian thực | Đọc video luồng, tiền xử lý khung hình, kiểm tra mật độ điểm ảnh từng ô và hiển thị kết quả. | - Đọc lại danh sách tọa độ từ tệp CarParkPicked qua pickle.load().- Vòng lặp đọc từng frame video bãi xe. - Tiền xử lý: BGR $\rightarrow$ Grayscale $\rightarrow$ Gaussian Blur $\rightarrow$ Adaptive Threshold $\rightarrow$ Median Blur $\rightarrow$ Dilate. - Cắt vùng ảnh con (Crop ROI) tương ứng từng ô đỗ. - Đếm số điểm ảnh trắng bằng hàm cv2.countNonZero().- So sánh với ngưỡng phân loại: nếu số lượng điểm ảnh dưới ngưỡng xác định thì ô đó là "Trống" (Free), ngược lại là "Đã đỗ" (Occupied). - Vẽ viền màu và số đếm lên khung hình bằng cvzone. |
Quy trình tiền xử lý và phân loại trạng thái ô đỗ
Chuỗi biến đổi hình ảnh được thiết kế tuần tự qua các bước:
- Chuyển ảnh xám: Loại bỏ các kênh màu để giảm chi phí tính toán từ ma trận 3 chiều xuống ma trận 2 chiều.
- Làm mờ bằng Gaussian Blur: Làm mượt ảnh, triệt tiêu bớt các chi tiết nền không cần thiết và nhiễu vi mô.
- Phân ngưỡng thích nghi (Adaptive Thresholding): Biến đổi ảnh xám thành ảnh nhị phân cục bộ. Ở trạng thái này, các vùng có xe xuất hiện nhiều chi tiết cạnh, góc phản chiếu ánh sáng và đường nét phức tạp, dẫn đến số lượng điểm ảnh trắng (pixel 255) dày đặc; trong khi các ô trống chỉ có mặt nền bê tông phẳng đồng màu sẽ có rất ít đường biên và điểm ảnh trắng.
- Lọc trung vị (Median Blur): Loại trừ các hạt nhiễu nhỏ lẻ phát sinh sau bước phân ngưỡng nhị phân.
- Dãn nở ảnh (Dilation): Áp dụng phép dãn nở hình thái học để làm dày và liền mạch các đường biên cạnh của xe ô tô, làm tăng sự chênh lệch rõ rệt về mật độ điểm ảnh trắng giữa ô có xe và ô không có xe.
- Kiểm tra ngưỡng
countNonZero: Chương trình duyệt qua danh sáchposList, trích xuất ma trận con của từng ô đỗ và tính tổng số điểm ảnh trắng. Dựa trên một ngưỡng pixel cố định được thiết lập thực nghiệm, hệ thống gán nhãn trạng thái, tính tổng số ô trống và hiển thị thông tin trực quan lên màn hình giám sát.
Nội dung chính theo từng chương
Bố cục khóa luận được cấu trúc thành các chương nội dung sau:
I. Giới Thiệu Về Hệ Thống Đếm Chỗ Đỗ Xe Hơi Tự Động
Chương này đặt vấn đề về áp lực quản lý không gian đỗ xe tại các đô thị hiện đại, phân tích nguyên nhân dẫn đến tình trạng lãng phí thời gian và nhiên liệu của tài xế. Tác giả trình bày ý tưởng xây dựng hệ thống tự động dựa trên camera giám sát, đồng thời liệt kê chi tiết năm thách thức kỹ thuật (độ chính xác nhận dạng, xử lý thời gian thực, độ ổn định hệ thống, khả năng mở rộng quy mô và an toàn thông tin) cùng bốn mục tiêu cụ thể nhằm hướng tới mô hình đô thị thông minh.
II. Tìm Hiểu Cơ Sở Lý Thuyết
Chương này cung cấp hệ thống lý thuyết nền tảng cho toàn bộ đồ án, bao gồm:
- Thị giác máy tính: Lịch sử hình thành (Summer Vision Project 1966, Neocognitron 1979), nguyên tắc 3 bước vận hành, ứng dụng thực tế trong mở khóa khuôn mặt, y tế, xe tự lái và các hạn chế nội tại của AI thị giác khi thiếu nhận thức tình huống.
- Thư viện OpenCV: Lịch sử phát triển qua các giai đoạn tại Intel, tổ chức OpenCV.org, thương vụ Itseez, chiến dịch OpenCV AI Kit; cấu trúc các module tính năng (
core,imgproc,video,calib3d,features2d,objdetect,highgui) và so sánh ưu nhược điểm khi lập trình trên C++, Python, Java, C#. - Thư viện Pickle: Nguyên lý tuần tự hóa (serialization) và giải tuần tự hóa (deserialization), vai trò lưu trữ trạng thái đối tượng, phân tích ưu điểm tiện lợi và các hạn chế về bảo mật cũng như khả năng tương thích phiên bản Python.
- Thư viện Cvzone: Giới thiệu các chức năng hỗ trợ phát triển nhanh ứng dụng Computer Vision dựa trên OpenCV và MediaPipe.
- Image Grayscale: Khái niệm ảnh xám 8-bit; phân tích chi tiết công thức toán học, cơ chế hoạt động, ưu nhược điểm của ba phương pháp: Lightness, Average, và Luminosity.
- Gaussian Blur: Cơ sở toán học của hàm mật độ xác suất Gauss 1 chiều và 2 chiều; nguyên lý tích chập ma trận rời rạc với bán kính giới hạn $3\sigma$; ưu điểm khử nhiễu và nhược điểm làm mờ cạnh biên, tăng chi phí tính toán.
- Adaptive Thresholding: Phân tích sự cần thiết của phân ngưỡng cục bộ so với phân ngưỡng toàn cục trong môi trường ánh sáng biến thiên; khảo sát hai phương thức tính ngưỡng
ADAPTIVE_THRESH_MEAN_CvàADAPTIVE_THRESH_GAUSSIAN_Ccùng hai tham sốBlock Sizevà hằng sốC. - Median Blur: Cơ chế hoạt động của phép lọc phi tuyến sắp xếp trung vị trên cửa sổ lân cận lẻ; công thức toán học tổng quát; phân tích khả năng bảo toàn cạnh biên vượt trội so với Gaussian Blur và hạn chế về độ phức tạp thuật toán khi kích thước kernel lớn.
III. Áp Dụng Cơ Sở Lý Thuyết Cho Đồ Án
Tác giả mô tả chi tiết phương thức hiện thực hóa lý thuyết vào hai thành phần phần mềm cụ thể:
- Xây dựng dữ liệu (
data_collect.py): Quy trình chuẩn bị dữ liệu đầu vào từ video bãi xe; phương pháp bắt sự kiện chuột trái để ghi nhận tọa độ góc trên bên trái của khung chữ nhật ô đỗ; bắt sự kiện chuột phải để kiểm tra tọa độ click có rơi vào ô đỗ nào không nhằm thực hiện thao tác xóa; cơ chế lưu tự động danh sáchposListvào tệp nhị phânCarParkPicked. - Xây dựng hệ thống đếm tự động: Tích hợp tuần tự các thuật toán từ đọc tệp tọa độ, tiếp nhận luồng video, áp dụng chuỗi biến đổi (Grayscale $\rightarrow$ Gaussian Blur $\rightarrow$ Adaptive Threshold $\rightarrow$ Median Blur $\rightarrow$ Dilate), trích xuất ROI và thuật toán đếm pixel trắng
non-zerođể quyết định trạng thái từng chỗ đỗ xe.
IV. Cài Đặt Chương Trình Minh Họa
(Theo danh mục mục lục của đồ án, chương này tập trung trình bày các ảnh chụp giao diện khi chương trình đang chạy thử nghiệm, minh chứng thao tác khoanh vùng các ô đỗ bằng chuột và kết quả hiển thị khung chữ nhật xanh/đỏ biểu thị trạng thái trống/chiếm dụng trên video thực tế).
V. Đánh Giá Thực Nghiệm
(Mục lục tài liệu xác định nội dung đánh giá hoạt động của hệ thống đếm tự động trên dữ liệu video mẫu, phân tích độ nhạy của việc thiết lập ngưỡng điểm ảnh và đề xuất các cải tiến kỹ thuật cho dự án).
Kết quả và đóng góp
1. Kết quả thực nghiệm chính
- Xây dựng thành công công cụ đồ họa trực quan
data_collect.pychạy trên Python, cho phép người dùng cấu hình bản đồ vị trí các ô đỗ xe một cách linh hoạt bằng chuột (thêm/xóa ô đỗ tức thì) và lưu trữ danh sách tọa độ bền vững vào tệp nhị phânCarParkPickedqua thư việnpickle. - Thiết lập hoàn chỉnh pipeline xử lý ảnh thời gian thực kết hợp giữa
cv2,cvzone, vànumpy, xử lý mượt mà luồng video đầu vào từ bãi đỗ xe. - Ứng dụng thành công phương pháp đếm điểm ảnh trắng
countNonZerosau quá trình nhị phân hóa thích nghi và giãn nở viền, cho phép phân biệt chính xác trạng thái ô đỗ có xe (nhiều cạnh phản chiếu, mật độ điểm ảnh trắng vượt ngưỡng) và ô đỗ trống (ít điểm ảnh trắng) mà không cần nạp mô hình mạng nơ-ron nặng nề. - Cung cấp giao diện trực quan hiển thị trực tiếp trên khung hình: đóng khung màu các ô đỗ (xanh lá biểu thị ô trống, đỏ biểu thị ô đã có xe) kèm theo bộ đếm tổng số chỗ trống trên toàn bãi đỗ theo thời gian thực.
2. Đóng góp của đề tài
- Về mặt kỹ thuật: Đề xuất một giải pháp thị giác máy tính truyền thống (rule-based image processing) gọn nhẹ, có tốc độ tính toán cao, chiếm dụng ít tài nguyên CPU/GPU và có khả năng vận hành ổn định trên các hệ thống máy tính cấu hình phổ thông mà không đòi hỏi phần cứng chuyên dụng cho Deep Learning.
- Về mặt chi phí và thực tiễn: Cung cấp phương án thay thế kinh tế cho các hệ thống quản lý bãi đỗ truyền thống. Việc tận dụng dữ liệu từ camera giám sát góc rộng giúp loại bỏ hoàn toàn nhu cầu lắp đặt các cảm biến vật lý độc lập (như cảm biến từ trường, siêu âm, cảm biến hồng ngoại) tại từng vị trí đỗ đơn lẻ, giúp tiết kiệm chi phí lắp đặt, bảo trì, thay thế pin và hạn chế rác thải điện tử ra môi trường.
Hạn chế và hướng nghiên cứu tiếp
1. Hạn chế
Dựa trên phạm vi kỹ thuật và nội dung phân tích của tác giả, hệ thống tồn tại các hạn chế kỹ thuật sau:
- Tính cố định của góc quan sát: Toàn bộ quy trình phụ thuộc vào camera đặt ở vị trí cố định, không rung lắc; nếu góc quay thay đổi, danh sách tọa độ trong
CarParkPickedsẽ bị sai lệch hoàn toàn và phải khoanh vùng lại từ đầu. - Khâu thiết lập ban đầu mang tính thủ công: Người vận hành vẫn phải dùng chuột để click chọn từng ô đỗ xe trên ảnh tĩnh đại diện.
- Nhạy cảm với điều kiện môi trường cực đoan: Mặc dù Adaptive Thresholding giúp thích ứng với ánh sáng cục bộ, nhưng các hiện tượng đổ bóng mạnh từ cây cối, tòa nhà hoặc góc chiếu sáng xiên của đèn pha ô tô vào ban đêm có thể tạo ra các điểm ảnh trắng giả, dẫn đến việc nhận dạng sai ô trống thành ô có xe.
- Vấn đề che khuất (Occlusion): Đối với các bãi đỗ xe quy mô lớn có góc nhìn nghiêng, các xe có chiều cao lớn (như SUV, xe tải nhỏ) có thể che khuất một phần hoặc toàn bộ ô đỗ ở hàng phía sau, gây sai lệch số đếm.
- Chưa nhận dạng thực thể: Hệ thống chỉ kiểm tra sự thay đổi mật độ điểm ảnh mà không phân loại được loại phương tiện hay nhận dạng biển số xe.
2. Hướng nghiên cứu tiếp
- Tự động hóa quá trình xác định ranh giới ô đỗ xe thông qua các thuật toán phát hiện đường thẳng (như Hough Transform) hoặc mô hình phân vùng ảnh (Semantic Segmentation) nhằm loại bỏ thao tác khoanh vùng thủ công.
- Kết hợp các mô hình học sâu hiện đại (như YOLO, Faster R-CNN) để phát hiện và định vị chính xác hộp bao phương tiện (bounding box), nâng cao độ chính xác trong điều kiện ban đêm, thời tiết xấu hoặc góc quay bị che khuất.
- Tích hợp thêm module nhận diện biển số xe (ALPR/ANPR) để kết hợp quản lý an ninh, thu phí tự động và ghi nhận thời gian đỗ.
- Mở rộng kiến trúc hệ thống: Phát triển cổng API kết nối dữ liệu đám mây (Cloud Database) và ứng dụng di động để cung cấp thông tin điều hướng chỗ trống trực tiếp cho người lái xe trên smartphone.
Giá trị tham khảo
Báo cáo đồ án là tài liệu kỹ thuật có giá trị tham khảo thiết thực cho:
- Sinh viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm, Trí tuệ Nhân tạo: Tài liệu minh họa trực quan, rõ ràng cách xây dựng một ứng dụng Computer Vision thực tế từ đầu bằng ngôn ngữ Python, chuyển hóa lý thuyết xử lý ảnh số thành sản phẩm phần mềm chạy được.
- Người nghiên cứu các đề tài về Hệ thống giao thông thông minh (ITS): Cung cấp tài liệu tham khảo về phương pháp tiếp cận thị giác chi phí thấp cho bài toán quản lý bãi đỗ xe thông minh.
- Các nội dung đáng tham khảo chuyên sâu trong văn bản:
- Phần phân tích và so sánh toán học ba phương pháp chuyển đổi ảnh Grayscale (Lightness, Average, Luminosity) và hai bộ lọc khử nhiễu (Gaussian Blur, Median Blur).
- Kỹ thuật xây dựng công cụ tương tác chuột với OpenCV và cơ chế lưu trữ/khôi phục dữ liệu cấu hình vùng quan tâm (ROI) bằng thư viện
pickle. - Chuỗi liên kết xử lý ảnh tuần tự (Grayscale $\rightarrow$ Blur $\rightarrow$ Adaptive Threshold $\rightarrow$ Dilate) kết hợp hàm
cv2.countNonZero()để phân loại trạng thái không gian tĩnh mà không cần gắn nhãn tập dữ liệu lớn để huấn luyện mạng nơ-ron.
Câu hỏi thường gặp
1. Hệ thống xác định một ô đỗ xe đang có xe hay còn trống bằng nguyên lý kỹ thuật nào?
Hệ thống không dùng thuật toán nhận diện xe nguyên con mà sử dụng phương pháp phân tích mật độ điểm ảnh. Từng ô đỗ được cắt ra thành một vùng ảnh con (ROI) từ khung hình đã qua tiền xử lý (Grayscale, Gaussian Blur, Adaptive Threshold, Median Blur, Dilate). Sau đó, hàm cv2.countNonZero() đếm tổng số pixel trắng trong ô đó. Một ô có xe sẽ chứa nhiều đường nét, góc cạnh và chi tiết phản chiếu nên số pixel trắng vượt qua một ngưỡng quy định; ngược lại, ô trống có bề mặt đồng nhất nên số pixel trắng rất ít (dưới ngưỡng), từ đó hệ thống kết luận ô đó đang trống.
2. Chương trình data_collect.py hoạt động như thế nào và lưu trữ tọa độ bằng công cụ gì?
Chương trình data_collect.py mở một ảnh chụp tĩnh đại diện cho bãi đỗ xe và sử dụng hàm cv2.setMouseCallback để lắng nghe sự kiện thao tác chuột từ người dùng. Khi người dùng click chuột trái, tọa độ (x, y) được thêm vào danh sách posList tương ứng với một khung chữ nhật có kích thước cố định (width, height). Khi click chuột phải vào vùng một ô đã chọn, chương trình sẽ xóa ô đó khỏi danh sách. Toàn bộ danh sách posList sau đó được lưu trữ trực tiếp vào tệp nhị phân CarParkPicked thông qua hàm pickle.dump().
3. Trong ba phương pháp chuyển đổi Grayscale được đồ án trình bày, phương pháp nào phản ánh tốt nhất thị giác con người?
Phương pháp độ sáng (Luminosity Method) phản ánh tốt nhất thị giác con người. Khác với phương pháp Lightness (lấy trung bình cực trị) và Average (trung bình cộng 3 kênh), phương pháp Luminosity áp dụng các trọng số khác nhau cho từng kênh màu: $$\text{GrayScale} = 0.2126 \cdot R + 0.7152 \cdot G + 0.0722 \cdot B$$ Trọng số của màu xanh lá cây (0.7152) lớn nhất vì mắt người nhạy cảm nhất với ánh sáng màu lục, giúp ảnh xám sau khi chuyển đổi giữ được độ tương phản và chi tiết tự nhiên nhất.
4. Tại sao đồ án sử dụng Adaptive Thresholding thay vì phương pháp phân ngưỡng cố định (Global Thresholding)?
Trong môi trường thực tế của bãi đỗ xe ngoài trời hoặc bán lộ thiên, điều kiện chiếu sáng không đồng đều trên toàn bộ khung hình do bóng râm, góc chiếu của mặt trời hoặc đèn bãi đỗ. Nếu dùng phân ngưỡng cố định toàn cục, một giá trị ngưỡng duy nhất sẽ khiến vùng quá sáng bị cháy trắng hoặc vùng tối bị biến thành đen hoàn toàn. Phân ngưỡng thích nghi (Adaptive Thresholding) khắc phục điều này bằng cách chia ảnh thành các vùng nhỏ lân cận (xác định bởi Block Size) và tính toán ngưỡng động riêng cho từng vùng, giúp bảo toàn chính xác đường nét đối tượng trên toàn cảnh.
5. Bộ lọc Median Blur đóng vai trò gì trong chuỗi tiền xử lý hình ảnh của hệ thống?
Bộ lọc Median Blur là một bộ lọc phi tuyến, có tác dụng sắp xếp các giá trị pixel trong cửa sổ lân cận và chọn giá trị trung vị thay thế cho điểm ảnh trung tâm. Trong hệ thống, Median Blur được áp dụng ngay sau bước Adaptive Thresholding nhằm loại bỏ hiệu quả các chấm nhiễu ngẫu nhiên (nhiễu muối tiêu) phát sinh do sự gồ ghề của mặt đường bê tông hoặc nhiễu cảm biến, đồng thời giữ nguyên vẹn đường biên cạnh sắc nét của phương tiện, tránh làm nhòe vùng biên như các bộ lọc trung bình tuyến tính.
Kết luận
Đồ án "Hệ thống Đếm Chỗ Đỗ Xe Hơi Tự Động" của nhóm sinh viên Trường Đại học Văn Lang là một nghiên cứu thực nghiệm ứng dụng công nghệ thị giác máy tính vào bài toán quản lý giao thông đô thị thông minh. Thông qua việc kết hợp tinh gọn chuỗi tiền xử lý hình ảnh số trên OpenCV và thuật toán đếm điểm ảnh nhị phân trong vùng quan tâm ROI, hệ thống đã chứng minh tính khả thi trong việc kiểm đếm tự động chỗ trống theo thời gian thực mà không đòi hỏi phần cứng tính toán đắt tiền hay cảm biến vật lý phức tạp. Mặc dù vẫn còn những hạn chế nhất định về khâu cấu hình thủ công và sự nhạy cảm với điều kiện môi trường cực đoan, cấu trúc phần mềm của đồ án cung cấp một nền tảng thực nghiệm vững chắc, mở ra tiềm năng nâng cấp và tích hợp cùng các mô hình học sâu hiện đại trong tương lai.