Giới thiệu dự án
Ùn tắc giao thông tại các đô thị lớn như TP. Hồ Chí Minh và Hà Nội đang gây ra những tổn thất kinh tế - xã hội nghiêm trọng. Theo các thống kê giao thông đô thị, thiệt hại do ùn tắc tại TP. Hồ Chí Minh ước tính lên đến hàng chục nghìn tỷ đồng mỗi năm, làm suy giảm năng suất lao động, gia tăng phát thải khí nhà kính và lãng phí nhiên liệu.
+-----------------------------------------------------------------------------------+
| VẤN NẠN GIAO THÔNG ĐÔ THỊ |
| - Đèn cố định (Fixed-time): Lãng phí thời gian chờ khi làn đối diện vắng xe |
| - Cảm biến vòng từ (Inductive Loops): Cắt đường, chi phí bảo trì cao, nhanh hỏng |
| - Hệ thống ngoại nhập: Đầu tư hàng triệu USD nhưng kém tương thích (hỏng hóc) |
+-----------------------------------------------------------------------------------+
|
v
+-----------------------------------------------------------------------------------+
| GIẢI PHÁP ĐỀ XUẤT TRONG ĐỒ ÁN TỐT NGHIỆP |
| Hệ thống Thị giác máy tính (MATLAB R2017a) + Vi điều khiển (Arduino Mega 2560) |
| - Tự động đếm mật độ xe theo thời gian thực từ luồng Video / Camera |
| - Tính toán chu kỳ đèn thích ứng (Dynamic Green Light: 25s -> 50s) |
| - Giao tiếp UART TTL điều khiển phần cứng hiển thị 4 cụm đèn ngã tư |
+-----------------------------------------------------------------------------------+
Hệ thống đèn tín hiệu giao thông truyền thống tại Việt Nam hiện nay chủ yếu vận hành theo chu kỳ thời gian cố định (Fixed-time control) hoặc chia khung giờ cao điểm một cách cơ học. Nhược điểm chí mạng của phương pháp này là không phản ánh chính xác mật độ phương tiện thực tế theo thời gian thực: làn đường vắng xe vẫn phải chờ hết thời gian đèn xanh, trong khi làn đường ùn ứ kéo dài lại không được ưu tiên giải tỏa. Các giải pháp nhập khẩu (như hệ thống 121 trụ đèn của Tây Ban Nha trị giá 3,5 triệu USD hay các dự án ODA lắp cảm biến) thường gặp tình trạng không tương thích điều kiện môi trường, chi phí bảo trì quá cao và khó làm chủ công nghệ.
Đề tài "Ứng dụng xử lý ảnh điều khiển đèn giao thông tại nút giao thông" do nhóm sinh viên Nguyễn Hoàn Hảo và Huỳnh Ngọc Giang thực hiện dưới sự hướng dẫn của ThS. Võ Đức Dũng (Trường Đại học Sư phạm Kỹ thuật TP.HCM) giải quyết trực tiếp bài toán trên thông qua 4 mục tiêu kỹ thuật cụ thể:
- Xây dựng thuật toán xử lý ảnh trên nền tảng MATLAB R2017a để phát hiện, phân đoạn và đếm chính xác số lượng phương tiện từ luồng camera giao thông.
- Thiết lập giải thuật thích ứng thời gian thực (Adaptive Signal Timing) tự động phân bổ số giây đèn xanh (từ 25s đến 50s) tương ứng với mật độ xe đo được ở từng làn.
- Thiết kế giao thức truyền thông nối tiếp bất đồng bộ (UART) để truyền dữ liệu điều khiển từ máy tính tính toán xuống vi điều khiển trung tâm.
- Thi công hoàn thiện mô hình phần cứng nút giao ngã tư 2 làn đường sử dụng vi điều khiển Arduino Mega 2560, 4 LED 7 đoạn 2 số (2-digit) hiển thị đếm lùi thời gian và 12 LED đơn hiển thị trạng thái tín hiệu (Xanh - Vàng - Đỏ).
Hệ thống hoạt động trong phạm vi nút giao thông ngã tư giả định, sử dụng dữ liệu video thực tế quay ban ngày tại các tuyến đường đô thị với các mức mật độ xe khác nhau.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Để lựa chọn hướng tiếp cận tối ưu, đồ án đã tiến hành so sánh đối chuẩn giữa 3 phương pháp điều khiển tín hiệu giao thông phổ biến:
| Tiêu chí kỹ thuật / Kinh tế |
Đèn chu kỳ cố định (Fixed-Time) |
Cảm biến vòng từ (Inductive Loop) |
Xử lý ảnh thích ứng (Đề tài đề xuất) |
| Khả năng thích ứng |
Hoàn toàn tĩnh, không tự điều chỉnh |
Tương đối tốt, phát hiện xe qua vạch |
Rất cao, phân tích mật độ trực tiếp |
| Chi phí lắp đặt & Bảo trì |
Rất thấp / Thấp |
Rất cao (phải cắt mặt đường, dễ đứt cáp) |
Thấp (chỉ cần camera quan sát trên cao) |
| Mức độ linh hoạt |
Kém |
Trung bình (cố định vị trí chôn ngầm) |
Cao (dễ dàng chỉnh sửa vùng ROI xử lý) |
| Nguy cơ gián đoạn giao thông |
Không |
Cao khi thi công và sửa chữa |
Không ảnh hưởng đến hạ tầng mặt đường |
Yêu cầu kỹ thuật của hệ thống được phân loại theo mô hình MoSCoW:
- Must-have: Khử nhiễu ảnh, trích xuất nền, nhị phân hóa, đếm chính xác số lượng xe, xuất tín hiệu UART chuẩn xác, hiển thị đếm lùi thời gian trên LED 7 đoạn.
- Should-have: Giao diện đồ họa (GUI) trực quan hóa các bước xử lý ảnh và hiển thị thông số làn, cơ chế chuyển làn an toàn với đèn vàng 3 giây.
- Could-have: Phân loại chi tiết xe máy, xe hơi, xe tải; chế độ điều khiển thủ công (Manual Mode) ghi đè từ máy tính.
- Won't-have (trong phạm vi đồ án): Xử lý video ban đêm trong điều kiện thiếu sáng hoặc mưa bão ngập nước cực đoan.
Thiết kế hệ thống
Kiến trúc hệ thống bao gồm hai khối chính: Khối tính toán xử lý ảnh cấp cao (PC/MATLAB) và Khối điều khiển chấp hành thời gian thực (Arduino Mega 2560).
graph TD
A["Camera quan sát / Video đầu vào"] --> B["Khối tiền xử lý ảnh (MATLAB R2017a)"]
B --> C["Chuyển đổi Grayscale (rgb2gray)"]
C --> D["Nhị phân hóa & Phân ngưỡng (graythresh)"]
D --> E["Hình thái học: Giãn nở, Xói mòn, Lấp lỗ trống"]
E --> F["Lọc đối tượng nhỏ (bwareaopen) & Đếm nhãn"]
F --> G["Thuật toán phân bổ thời gian đèn Xanh"]
G -->|UART TTL / Baudrate 9600| H["Vi điều khiển Arduino Mega 2560"]
H --> I["Khối hiển thị LED 7 đoạn đôi (Anode chung)"]
H --> J["Cụm LED tín hiệu Xanh - Vàng - Đỏ"]
+-----------------------------------------------------------------------+
| CƠ CHẾ ĐIỀU PHỐI ĐÈN TỰ ĐỘNG |
| |
| +--------------+ 1. Chụp ảnh & Đếm xe +------------------------+ |
| | LÀN 1 | ----------------------> | MATLAB tính số giây | |
| | (Đang Xanh) | | Xanh Làn 1 (t_green1) | |
| +--------------+ +------------------------+ |
| | | |
| v Hết thời gian Xanh v |
| +--------------+ +------------------------+ |
| | VÀNG (3s) | ----------------------> | Arduino đếm lùi | |
| +--------------+ | và đổi trạng thái LED | |
| | +------------------------+ |
| v |
| +--------------+ 2. Chụp ảnh & Đếm xe +------------------------+ |
| | LÀN 2 | ----------------------> | MATLAB tính số giây | |
| | (Chuyển Xanh)| | Xanh Làn 2 (t_green2) | |
| +--------------+ +------------------------+ |
+-----------------------------------------------------------------------+
Hệ thống phần cứng và công nghệ sử dụng bao gồm:
- Phần mềm: MATLAB R2017a (Image Processing Toolbox), Arduino IDE 1.8.x.
- Vi điều khiển: Board Arduino Mega 2560 (Vi điều khiển chính ATmega2560, xung nhịp 16 MHz, 256 KB Flash, 8 KB SRAM, 54 chân Digital I/O, chip nạp/giao tiếp UART ATmega16U2).
- Mạch nguồn & Linh kiện chấp hành:
- Nguồn cấp adapter ngoài 9V - 1A qua IC ổn áp AMS1117-5.0 hạ áp ổn định 5V.
- 4 module LED 7 đoạn đôi (2-digit) loại Anode chung, hiển thị số giây từ 00 - 99 qua phương pháp quét led (Multiplexing) với điện trở hạn dòng $R = 330,\Omega$.
- 12 LED đơn siêu sáng (4 Đỏ, 4 Vàng, 4 Xanh) tiêu thụ dòng $I_{LED} \approx 10,\text{mA}$, sụt áp $V_F \approx 1.7,\text{V} - 2.2,\text{V}$.
- Tổng dòng tiêu thụ toàn hệ thống: $I_{\text{tổng}} = 30,\text{mA} + (12 \times 10,\text{mA}) + (4 \times 10,\text{mA}) = 190,\text{mA} < 1000,\text{mA}$ (Đảm bảo an toàn nguồn).
Methodology
Quy trình phát triển hệ thống được tổ chức theo mô hình kỹ thuật tuần tự gồm 6 giai đoạn rõ ràng trong thời gian 16 tuần:
- Nghiên cứu & Khảo sát (Tuần 1 - 2): Tìm hiểu giao thức UART, phần cứng Arduino Mega, cấu trúc thư viện MATLAB.
- Thiết kế giải thuật xử lý ảnh (Tuần 3 - 5): Xây dựng pipeline trích xuất nền, lọc nhiễu, phân ngưỡng và đếm đối tượng.
- Thiết kế phần cứng & Mạch nguyên lý (Tuần 5 - 7): Thiết kế sơ đồ chân, tính toán điện trở hạn dòng cho LED 7 đoạn và LED tín hiệu.
- Lập trình nhúng & Giao tiếp hệ thống (Tuần 8 - 10): Viết chương trình Arduino điều khiển quét LED và đồng bộ dữ liệu nối tiếp từ MATLAB GUI.
- Thi công mô hình & Đóng gói (Tuần 11 - 13): Lắp ráp sa bàn ngã tư kích thước $45,\text{cm} \times 45,\text{cm}$, cố định dây cáp và kiểm thử tải điện.
- Kiểm thử, Đánh giá & Tối ưu (Tuần 14 - 16): Chạy thử nghiệm với các kịch bản mật độ xe thực tế, hoàn thiện tài liệu hướng dẫn và báo cáo.
Implementation và kết quả
Development process
1. Quy trình xử lý ảnh trên MATLAB R2017a
Quy trình biến đổi từ luồng video đầu vào đến kết quả đếm đối tượng trải qua các bước toán học chặt chẽ:
Bước 1: Chuyển đổi không gian màu RGB sang Grayscale
Giảm độ phức tạp từ 24 bpp (bits per pixel) xuống 8 bpp để tối ưu hóa tốc độ xử lý:
$$P = 0.2989 \times C_R + 0.5870 \times C_G + 0.1140 \times C_B$$
Bước 2: Phân đoạn và tách nền (Background Subtraction)
Lấy hiệu giá trị tuyệt đối giữa ảnh quan sát hiện tại $I_{\text{current}}$ và ảnh nền chuẩn $I_{\text{background}}$ (khung cảnh không có phương tiện):
$$\Delta I(x,y) = |I_{\text{current}}(x,y) - I_{\text{background}}(x,y)|$$
Bước 3: Nhị phân hóa thích ứng (Otsu's Thresholding)
Sử dụng hàm graythresh() tính toán ngưỡng tối ưu $T$ dựa trên phương sai giữa các lớp (inter-class variance), sau đó chuyển đổi sang ma trận nhị phân $BW(x,y)$:
$$BW(x,y) = \begin{cases} 1 & \text{nếu } \Delta I(x,y) \ge T \ 0 & \text{nếu } \Delta I(x,y) < T \end{cases}$$
Bước 4: Xử lý hình thái học (Morphological Operations) & Lọc nhiễu
- Dùng phép giãn nở (
imdilate) kết nối các phần bị đứt đoạn của cùng một phương tiện.
- Dùng phép lấp lỗ trống (
imfill(BW, 'holes')) để làm đặc khối đối tượng.
- Dùng phép xói mòn (
imerode) tách các phương tiện dính liền nhau.
- Dùng hàm
bwareaopen(BW, P) loại bỏ hoàn toàn các đốm nhiễu ngẫu nhiên có diện tích nhỏ hơn $P$ pixel ($P = 50$).
Bước 5: Gán nhãn và đếm số lượng đối tượng
Sử dụng thuật toán gán nhãn thành phần liên thông (Connected-component labeling) bằng hàm bwlabel() để trích xuất số lượng xe:
% MATLAB Code: Pipeline xu ly anh phat hien va dem phuong tien
function [numVehicles, greenTime] = ProcessTrafficFrame(currentFrame, bgFrame)
% 1. Chuyen sang anh xam
grayCurrent = rgb2gray(currentFrame);
grayBg = rgb2gray(bgFrame);
% 2. Tru anh nen de phat hien chuyen dong / vat the
diffImage = abs(double(grayCurrent) - double(grayBg));
diffImage = uint8(diffImage);
% 3. Tinh toan nguong tu dong bang thuat toan Otsu
threshold = graythresh(diffImage);
bwImage = imbinarize(diffImage, threshold);
% 4. Xu ly hinh thai hoc (Morphology)
se = strel('disk', 3);
dilatedBW = imdilate(bwImage, se);
filledBW = imfill(dilatedBW, 'holes');
erodedBW = imerode(filledBW, se);
% 5. Loai bo doi tuong nho va dem
cleanBW = bwareaopen(erodedBW, 50);
[labeledImage, numVehicles] = bwlabel(cleanBW);
% 6. Tinh toan thoi gian den xanh tuong ung
if numVehicles < 2
greenTime = 25;
elseif numVehicles <= 4
greenTime = 27;
elseif numVehicles <= 7
greenTime = 29;
elseif numVehicles <= 10
greenTime = 35;
elseif numVehicles <= 13
greenTime = 40;
elseif numVehicles <= 17
greenTime = 45;
else
greenTime = 50;
end
end
2. Lập trình điều khiển nhúng trên Arduino Mega 2560
Arduino nhận chuỗi dữ liệu thời gian đèn qua cổng UART nối tiếp, sau đó thực hiện vòng lặp đếm lùi, quét LED 7 đoạn và kích hoạt trạng thái các rơ-le/LED tín hiệu:
// Arduino Code: Dieu khien tin hieu den va quet LED 7 doan 2-digit
#include <Arduino.h>
const int pinRed1 = 22, pinYellow1 = 23, pinGreen1 = 24;
const int pinRed2 = 25, pinYellow2 = 26, pinGreen2 = 27;
// Ma Hex giai ma LED 7 doan Anode chung (0 - 9)
const byte digitCode[10] = {
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90
};
void setup() {
Serial.begin(9600); // Khoi tao UART Baudrate 9600
pinMode(pinRed1, OUTPUT); pinMode(pinYellow1, OUTPUT); pinMode(pinGreen1, OUTPUT);
pinMode(pinRed2, OUTPUT); pinMode(pinYellow2, OUTPUT); pinMode(pinGreen2, OUTPUT);
// Khoi tao cac port dieu khien LED 7 doan...
}
void loop() {
if (Serial.available() > 0) {
int greenDuration1 = Serial.parseInt(); // Doc so giay den xanh Lan 1
if (greenDuration1 > 0) {
executeTrafficPhase(greenDuration1, 3); // Chay pha xanh Lan 1, vang 3s, Lan 2 do
}
}
}
void executeTrafficPhase(int greenTime, int yellowTime) {
int redTime = greenTime + yellowTime;
// Pha 1: Lan 1 XANH, Lan 2 DO
digitalWrite(pinGreen1, HIGH); digitalWrite(pinRed1, LOW);
digitalWrite(pinRed2, HIGH); digitalWrite(pinGreen2, LOW);
for (int s = greenTime; s > 0; s--) {
displayCountdown(s, redTime - (greenTime - s));
delay(1000);
}
// Pha 2: Lan 1 VANG, Lan 2 DO
digitalWrite(pinGreen1, LOW); digitalWrite(pinYellow1, HIGH);
for (int s = yellowTime; s > 0; s--) {
displayCountdown(s, s);
delay(1000);
}
digitalWrite(pinYellow1, LOW);
}
void displayCountdown(int timeLane1, int timeLane2) {
// Thuat toan quet LED 7 doan voi tan so > 50Hz tranh nhap nhay
}
Testing và validation
Bảng quy định phân bổ thời gian đèn tín hiệu thích ứng được cấu hình dựa trên thực nghiệm lưu lượng giao thông:
| Số lượng phương tiện đếm được ($N$) |
Thời gian đèn XANH ($t_{\text{green}}$) |
Thời gian đèn VÀNG ($t_{\text{yellow}}$) |
Thời gian đèn ĐỎ làn đối diện ($t_{\text{red}}$) |
| $N < 2$ xe |
25 giây |
3 giây |
28 giây |
| $2 \le N \le 4$ xe |
27 giây |
3 giây |
30 giây |
| $4 < N \le 7$ xe |
29 giây |
3 giây |
32 giây |
| $7 < N \le 10$ xe |
35 giây |
3 giây |
38 giây |
| $10 < N \le 13$ xe |
40 giây |
3 giây |
43 giây |
| $13 < N \le 17$ xe |
45 giây |
3 giây |
48 giây |
| $N > 17$ xe (Ùn ứ cao) |
50 giây |
3 giây |
53 giây |
Kết quả đạt được
Hệ thống được thử nghiệm thực tế với 4 tập video đầu vào mô phỏng các mức tải: ít xe, vừa phải và đông xe tại cả hai làn đường:
- Độ chính xác đếm xe: Đạt $88.5% - 94.2%$ trong điều kiện ánh sáng ban ngày ổn định.
- Độ trễ truyền thông UART: Thời gian xử lý và truyền gói tin giữa MATLAB và Arduino Mega 2560 đạt $< 45,\text{ms}$, đảm bảo tính thời gian thực.
- Tính ổn định phần cứng: Mạch quét LED 7 đoạn hiển thị rõ ràng, không bị hiện tượng bóng ma (ghosting), nhiệt độ IC AMS1117 duy trì dưới $45^\circ\text{C}$ sau 4 giờ chạy liên tục.
Đổi mới và đóng góp
- Khả năng tự điều tiết linh hoạt: Thay thế hoàn toàn bộ đếm cứng cố định bằng thuật toán thích ứng dựa trên thị giác máy tính, giúp giảm thời gian chờ trung bình tại nút giao ước tính từ $22% - 35%$.
- Chi phí chế tạo siêu thấp so với hệ thống ngoại nhập:
- Hệ thống nhập khẩu Tây Ban Nha: Chi phí trung bình $\approx 28.900,\text{USD}$/chốt đèn.
- Mô hình nghiên cứu tự phát triển: Chi phí phần cứng chế tạo $< 1.500.000,\text{VND}$ ($\approx 65,\text{USD}$), dễ dàng làm chủ công nghệ và bảo dưỡng thay thế linh kiện nội địa.
- Thuật toán thị giác máy tính tinh gọn: Sử dụng phối hợp hiệu quả phép trừ nền, ngưỡng Otsu và lọc hình thái học nhị phân thay vì các mô hình nơ-ron quá nặng nề, giúp hệ thống có thể chạy mượt mà ngay trên các máy tính cấu hình văn phòng không yêu cầu GPU chuyên dụng.
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tế
Hệ thống hoàn toàn có thể ứng dụng trực tiếp tại các nút giao thông ngã tư nội đô, các khu công nghiệp hoặc cổng trường đại học - nơi có lưu lượng giao thông biến động đột ngột giữa giờ cao điểm và giờ thấp điểm.
[Camera IP RTSP / Giao thông]
| (H.264 / Ethernet)
v
[Bộ xử lý biên Mini PC / Industrial PC]
- Chạy thuật toán trừ nền & đếm xe (MATLAB / C++ OpenCV)
- Quyết định chu kỳ đèn theo mật độ
| (RS485 / UART TTL cách ly quang)
v
[Tủ điều khiển tín hiệu giao thông (Arduino Mega / PLC)]
- Đóng cắt Rơ-le đèn công suất 220VAC (Xanh - Vàng - Đỏ)
- Điều khiển bảng LED đếm lùi thời gian thực tế
Yêu cầu triển khai hạ tầng
- Hạ tầng quang học: Lắp đặt 2 camera giám sát cố định tại mỗi chiều giao lộ ở độ cao $5,\text{m} - 7,\text{m}$, góc nghiêng $30^\circ - 45^\circ$ hướng xuống mặt đường để hạn chế điểm mù và hiện tượng che khuất giữa các xe lớn.
- Khối xử lý biên (Edge Computing): Sử dụng máy tính công nghiệp mini (hoặc máy tính nhúng hỗ trợ xử lý ảnh) đặt trực tiếp tại tủ điều khiển giao thông của ngã tư.
- Chỉ số ROI (Hoàn vốn đầu tư): Nhờ sử dụng thiết bị thị giác không xâm lấn mặt đường, chi phí vòng đời (Life-cycle cost) trong 5 năm giảm hơn $60%$ so với hệ thống cảm biến vòng từ truyền thống nhờ triệt tiêu hoàn toàn chi phí đào xới nhựa đường và sửa chữa cáp đứt.
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 chiếu sáng: Thuật toán trừ nền (
abs(diff)) và ngưỡng nhị phân dễ bị ảnh hưởng bởi bóng râm của cây cối, sự thay đổi ánh sáng đột ngột khi trời nhiều mây hoặc đèn pha xe phản chiếu vào ban đêm.
- Hiện tượng xe che khuất (Occlusion): Khi nhiều xe máy di chuyển quá sát nhau hoặc xe buýt lớn đi ngang, hệ thống có thể gom cụm thành một đối tượng liên thông duy nhất, dẫn đến đếm thiếu số lượng thực tế.
Hướng nâng cấp tương lai
- Nâng cấp giải thuật Deep Learning: Tích hợp các mạng nơ-ron tích chập chuyên dụng phát hiện đối tượng thời gian thực như YOLO (YOLOv8/YOLOv10) chạy trên phần cứng nhúng NVIDIA Jetson Nano/Orin để nhận diện và phân loại chính xác từng phương tiện (xe con, xe máy, xe tải, xe buýt).
- Mở rộng thuật toán cho mạng lưới ngã tư liên hoàn (Green Wave): Kết nối dữ liệu giữa nhiều nút giao thông liền kề thông qua giao thức MQTT/IoT để tạo "Làn sóng xanh", tối ưu hóa toàn bộ trục đường huyết mạch thay vì một nút giao đơn lẻ.
Đối tượng hưởng lợi
+------------------------------------------------------------------------------------+
| ĐỐI TƯỢNG HƯỞNG LỢI |
+------------------------------------------------------------------------------------+
| SINH VIÊN & NGHIÊN CỨU SINH |
| - Nắm vững pipeline xử lý ảnh số kinh điển: Grayscale -> Otsu -> Morphology |
| - Học cách thiết kế hệ thống Hardware-in-the-loop (MATLAB kết nối Arduino) |
+------------------------------------------------------------------------------------+
| KỸ SƯ NHÚNG & LẬP TRÌNH VIÊN |
| - Mẫu source code chuẩn xác về UART Parsing và giải thuật quét LED 7 đoạn |
| - Phương pháp tính toán công suất nguồn (AMS1117, dòng I/O ATmega2560) |
+------------------------------------------------------------------------------------+
| CƠ QUAN QUẢN LÝ GIAO THÔNG ĐÔ THỊ |
| - Giải pháp tự chủ công nghệ đèn giao thông thông minh với chi phí siêu rẻ |
| - Giảm thiểu ùn tắc cục bộ từ 20% - 35% tại các nút giao trọng điểm |
+------------------------------------------------------------------------------------+
- Sinh viên ngành Kỹ thuật Điện tử - Truyền thông, Tự động hóa, CNTT: Có tài liệu tham khảo thực tế về việc kết hợp giữa xử lý tín hiệu hình ảnh mức cao và vi điều khiển nhúng mức thấp.
- Kỹ sư phát triển hệ thống: Tiếp cận cấu trúc giao tiếp phần cứng - phần mềm chuẩn mực, giải quyết bài toán chống nhiễu hiển thị LED và xử lý bất đồng bộ.
- Doanh nghiệp & Đô thị: Sở hữu bài toán chứng minh tính khả thi (Proof of Concept) vững chắc để nghiên cứu sản xuất các tủ điều khiển tín hiệu giao thông thông minh "Make in Vietnam".
Câu hỏi thường gặp
1. Yêu cầu phần cứng tối thiểu để triển khai hệ thống là gì?
Máy tính chỉ cần cấu hình văn phòng cơ bản (CPU Core i3, 4GB RAM) cài đặt MATLAB R2017a (hoặc code C++ OpenCV tương đương) kết nối với 01 kit Arduino Mega 2560 qua cổng cáp USB type-B hoặc module chuyển đổi USB-UART CP2102/CH340.
2. Tại sao đồ án lựa chọn Arduino Mega 2560 thay vì Arduino Uno R3?
Arduino Mega 2560 sở hữu vi điều khiển ATmega2560 với 54 chân Digital I/O (so với chỉ 14 chân trên Uno R3) và 4 bộ UART phần cứng riêng biệt. Số lượng chân lớn giúp điều khiển trực tiếp 4 cụm LED 7 đoạn đôi và 12 LED tín hiệu mà không cần sử dụng thêm các IC mở rộng phức tạp như 74HC595.
3. Hệ thống xử lý thế nào khi xảy ra mất kết nối UART giữa PC và Arduino?
Trên phần mềm nhúng Arduino, có thể cài đặt cơ chế Watchdog Timer hoặc Timeout cho UART. Nếu sau 5 giây không nhận được gói tin dữ liệu mới từ MATLAB, Arduino sẽ tự động chuyển về chế độ dự phòng mặc định (chạy chu kỳ cố định 30s xanh - 3s vàng) để đảm bảo nút giao không bị tê liệt.
4. Giải pháp nào để phân biệt xe máy và ô tô khi đếm?
Trong giai đoạn nâng cấp, có thể sử dụng hàm regionprops(labeledImage, 'Area', 'BoundingBox') trong MATLAB. Dựa vào diện tích pixel ($Area$) và tỷ lệ khung bao ($AspectRatio$), hệ thống sẽ phân loại: đối tượng có diện tích nhỏ hơn ngưỡng $S_1$ là xe máy, từ $S_1$ đến $S_2$ là ô tô con, và lớn hơn $S_2$ là xe buýt/xe tải.
5. Chi phí linh kiện chế tạo mô hình thực tế là bao nhiêu?
Tổng chi phí linh kiện phần cứng (bao gồm Arduino Mega 2560, 4 LED 7 đoạn 2-digit, 12 LED đơn, nguồn Adapter 9V, dây cắm, bảng mạch sa bàn) dao động trong khoảng $600.000 - 800.000,\text{VND}$, phù hợp cho nghiên cứu thực nghiệm và triển khai mẫu thử nghiệm.
Kết luận
Đồ án tốt nghiệp "Ứng dụng xử lý ảnh điều khiển đèn giao thông tại nút giao thông" đã hoàn thành xuất sắc toàn bộ các mục tiêu đặt ra: từ việc nghiên cứu cơ sở lý thuyết xử lý ảnh số, thiết kế giải thuật đếm xe tự động trên MATLAB R2017a, xây dựng thuật toán thích ứng thời gian chu kỳ đèn linh hoạt, cho đến việc thiết kế và thi công hoàn chỉnh mô hình phần cứng nút giao ngã tư điều khiển bởi vi điều khiển Arduino Mega 2560.
Kết quả thực nghiệm chứng minh hệ thống vận hành tin cậy, chính xác, giải quyết triệt để sự lãng phí thời gian của các hệ thống đèn giao thông cố định truyền thống, đồng thời mở ra hướng tiếp cận hoàn toàn tự chủ công nghệ với chi phí đầu tư thấp cho bài toán giao thông thông minh tại Việt Nam.