Giới thiệu dự án
Sự bùng nổ của cuộc cách mạng công nghiệp 4.0 và trí tuệ nhân tạo (Artificial Intelligence - AI) đã tạo ra bước ngoặt lớn trong ngành giao thông thông minh. Theo báo cáo từ Grand View Research, thị trường xe tự hành toàn cầu dự kiến đạt quy mô hơn 2.100 tỷ USD vào năm 2030 với tốc độ tăng trưởng kép hàng năm (CAGR) 22,7%. Dù các tập đoàn lớn như Tesla, Waymo hay tại Việt Nam có VinFast và FPT liên tục đạt được những bước tiến vượt bậc theo phân loại 6 cấp độ tự động hóa của SAE (Society of Automobile Engineers), việc triển khai các hệ thống xe tự hành kích thước nhỏ, tối ưu hóa chi phí và tài nguyên tính toán biên (Edge Computing) cho các ứng dụng thực tế vẫn là một bài toán hóc búa.
Đề tài "Nghiên cứu và phát triển mô hình xe tự hành ứng dụng AI" do nhóm sinh viên Văn Huy Du và Trần Văn Đạt, dưới sự hướng dẫn của TS. Trần Vũ Hoàng tại Trường Đại học Sư phạm Kỹ thuật TP.HCM (Khoa Điện – Điện tử, Ngành Công nghệ Kỹ thuật Máy tính), tập trung giải quyết các thách thức kỹ thuật cốt lõi trong phân tích thời gian thực dữ liệu thị giác máy tính trên thiết bị nhúng.
+-----------------------------------------------------------------------------+
| SAE AUTONOMY SPECTRUM |
| |
| [Level 0] [Level 1] [Level 2] [Level 3] [Level 4] [Level 5]|
| No Autonomy -> Driver Assist -> Partial -> Conditional -> High -> Full Auto|
| ^ |
| [PROJECT SCOPE] |
+-----------------------------------------------------------------------------+
Vấn đề kỹ thuật (Problem Statement)
Các hệ thống xe tự hành thông thường phụ thuộc vào dàn cảm biến đắt tiền (LiDAR đa tia, Radar dải tần cao) và các cụm máy tính công suất lớn tiêu thụ hàng trăm watt. Khi thu nhỏ về quy mô mô hình 1:10 phục vụ nghiên cứu và vận chuyển tự động trong nhà xưởng (AGV), các kỹ sư gặp phải 3 vấn đề kỹ thuật lớn:
- Nút thắt cổ chai tính toán trên vi xử lý biên: Nền tảng nhúng như NVIDIA Jetson Nano có dung lượng RAM (4GB) và số nhân CUDA giới hạn, dễ gây trễ khung hình khi vừa xử lý video vừa chạy mạng nơ-ron học sâu (Deep Learning).
- Nhiễu điều kiện ánh sáng và độ trôi làn đường: Sự thay đổi quang thông, bóng đổ cục bộ và độ chói làm đứt đoạn các cạnh vạch kẻ đường, gây sai số tích lũy cho góc bẻ lái.
- Độ trễ phản hồi điều khiển thời gian thực (Real-time Latency): Tốc độ suy luận không kịp thời dẫn đến hiện tượng trượt quán tính và mất ổn định khi xe vào cua gấp hoặc nhận diện biển báo tại các giao lộ ngã ba.
Mục tiêu dự án
- Xây dựng hoàn chỉnh mô hình phần cứng xe tự hành tỷ lệ 1:10: Sử dụng khung sợi carbon, tích hợp máy tính nhúng NVIDIA Jetson Nano, cơ cấu lái servo và động cơ DC truyền động.
- Phát triển pipeline xử lý ảnh thời gian thực: Kết hợp không gian màu HSV, bộ lọc Canny Edge Detection và biến đổi Hough Line để trích xuất vạch làn và xác định độ lệch tâm ($x_{offset}$).
- Huấn luyện mô hình mạng nơ-ron tích chập (CNN): Nhận dạng chính xác 6 loại biển báo giao thông phổ biến (Stop, Turn Left, Turn Right, No Turn Left, No Turn Right, Go Straight).
- Tối ưu hóa thuật toán điều khiển bẻ lái: Đảm bảo xe bám làn chính xác và đưa ra quyết định chuyển hướng trong thời gian thực tại các bản đồ phức tạp.
- Thiết lập quy trình tự động hóa thu thập và dán nhãn dữ liệu (Auto-labeling): Rút ngắn thời gian tiền xử lý dữ liệu huấn luyện thị giác máy tính.
Phương pháp tiếp cận và kết quả kỳ vọng
Dự án áp dụng phương pháp Hybrid Vision-and-Learning: sử dụng thị giác máy tính truyền thống (Computer Vision) cho tác vụ bám làn nhằm giảm tải GPU, đồng thời sử dụng mạng nơ-ron tích chập (CNN) được nén gọn cho tác vụ phân loại biển báo. Hệ thống hướng đến mục tiêu đạt tốc độ xử lý $\ge 20\text{ FPS}$, độ trễ suy luận $\le 50\text{ ms}$, và độ chính xác phân loại biển báo $\ge 95%$.
Phạm vi và giới hạn
- Quy mô phần cứng: Mô hình xe RC 1:10 (kích thước $300 \times 150\text{ mm}$, trọng lượng $780\text{ g}$).
- Môi trường hoạt động: Bản đồ thực nghiệm kích thước $2\text{ m}^2$ với các phân đoạn: đường cong, đường ngoằn ngoèo (S-curve), và ngã ba giao lộ.
- Tập biển báo: 6 loại biển báo chuẩn kích thước mô hình theo quy chuẩn giao thông đường bộ.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
+-----------------------------------------------------------------------------+
| COMPARISON OF APPROACHES |
| |
| [A] Pure Computer Vision (Canny + Hough) |
| ├── Pros: Rất nhẹ, không cần train model |
| └── Cons: Dễ nhiễu sáng, khó mở rộng nhận diện vật cản phức tạp |
| |
| [B] End-to-End Deep Learning (NVIDIA PilotNet) |
| ├── Pros: Xử lý tình huống tốt, không cần tinh chỉnh tay |
| └── Cons: Đòi hỏi dataset khổng lồ, "hộp đen", tốn GPU Jetson Nano |
| |
| [C] Hybrid Pipeline (Đề xuất trong đồ án) |
| ├── Pros: Tối ưu tải tính toán, trễ thấp (~25 FPS), minh bạch giải thuật|
| └── Cons: Cần cân chỉnh ngưỡng không gian màu HSV thủ công |
+-----------------------------------------------------------------------------+
| Tiêu chí |
Thị giác máy tính thuần túy (Canny + Hough) |
Học sâu đầu-cuối (End-to-End CNN) |
Kiến trúc Hybrid (Giải pháp đồ án) |
| Tải tính toán GPU |
Rất thấp ($< 15%$) |
Rất cao ($85% - 98%$) |
Trung bình ($45% - 60%$) |
| Tốc độ khung hình (FPS) |
$30 - 45\text{ FPS}$ |
$10 - 15\text{ FPS}$ (Jetson Nano) |
$22 - 28\text{ FPS}$ |
| Độ ổn định với ánh sáng |
Trung bình |
Tốt |
Tốt (nhờ chuẩn hóa HSV) |
| Khả năng giải thích (Explainability) |
Rõ ràng (hình học giải tích) |
Hộp đen (Black-box) |
Cao ở khâu lái, hộp đen ở biển báo |
| Chi phí gán nhãn dữ liệu |
$0$ (Không cần train) |
Rất cao ($> 10.000$ ảnh) |
Thấp (Sử dụng Auto-labeling CV) |
Phân tích yêu cầu theo mô hình MoSCoW
- Must have: Tự động nhận diện hai vạch làn đường; tính toán góc lái và điều khiển servo 17g; phân loại chính xác 6 loại biển báo; cơ chế dừng khẩn cấp khi mất làn.
- Should have: Pipeline tự động gán nhãn dữ liệu cho tập huấn luyện CNN; giao tiếp UART ổn định giữa Jetson Nano và driver L298N.
- Could have: Đồng bộ không gian màu HSV và RGB trên cùng một pipeline xử lý; tính toán tốc độ thích ứng theo độ cong cung đường.
- Won't have: Tích hợp cảm biến LiDAR 3D; thuật toán SLAM định vị toàn cầu; mạng nơ-ron đa nhiệm (Multi-task learning) tích hợp chung một backbone (dành cho giai đoạn tiếp theo).
Thiết kế hệ thống
graph TD
A[Sony IMX219 CSI-2 Camera] -->|Raw 3280x2464 @ 30fps| B[NVIDIA Jetson Nano 4GB]
subgraph "Jetson Nano Processing Pipeline"
B --> C[Preprocessing: Resize 320x240 & Gaussian Blur]
C --> D[HSV Color Space Transformation]
D --> E[Canny Edge & ROI Extraction]
E --> F[Hough Transform & Lane Fitting]
F --> G[Steering Angle Calculation: theta = arctan x_offset / y]
C --> H[Traffic Sign ROI Detector]
H --> I[CNN Classification Model 6 Classes]
G --> J[Decision & Motion Planning Unit]
I --> J
end
J -->|PWM Steering Signal| K[RC Servo 17g]
J -->|PWM Speed & Direction| L[L298N Motor Driver]
L --> M[DC Motor 380 Drive]
N[LiPo 3S 11.1V 1500mAh 35C] -->|Power Rail| L
N -->|Step-down 5V/4A| B
Technology Stack và phiên bản chi tiết
- Phần cứng trung tâm: NVIDIA Jetson Nano Developer Kit (4GB 64-bit LPDDR4, Quad-core ARM Cortex-A57 @ 1.43 GHz, 128-core NVIDIA Maxwell GPU).
- Cảm biến thị giác: Sony IMX219 8MP CSI-2 (Góc nhìn $160^\circ$ Wide Angle, tiêu cự $3.15\text{ mm}$, độ phân giải trích xuất $320 \times 240$ phục vụ xử lý thời gian thực).
- Driver & Cơ cấu chấp hành: Driver cầu H L298N (dòng đỉnh $2\text{A}$/kênh), Động cơ DC 380 (chổi than, điện áp hoạt động $6-12\text{V}$, tốc độ $15.000\text{ RPM}$ không tải), Servo RC 17g (mô-men xoắn $1.8\text{ kg}\cdot\text{cm}$ tại $4.8\text{V}$).
- Nguồn cấp: Pin LiPo 3S $11.1\text{V} - 12.6\text{V}$, dung lượng $1500\text{ mAh}$, tốc độ xả $35\text{C}$.
- Hệ điều hành & Môi trường: Linux Ubuntu 18.04 LTS (JetPack 4.6), Python 3.8.10, OpenCV 4.5.4, TensorFlow 2.6.0 / Keras 2.6.0, CUDA 10.2, cuDNN 8.2.
Methodology
Quy trình phát triển tuân theo mô hình Agile/Iterative Development với 4 vòng lặp (Sprint):
- Sprint 1 (Tuần 1 - 3): Lắp ráp cơ khí khung xe RC 1/10, tích hợp mạch nguồn phân phối, thiết lập JetPack và driver giao tiếp camera IMX219 qua giao thức MIPI-CSI.
- Sprint 2 (Tuần 4 - 6): Thiết kế giải thuật thị giác máy tính phát hiện làn đường, cân chỉnh vùng quan tâm (ROI), lập công thức tính góc lái hình học.
- Sprint 3 (Tuần 7 - 9): Xây dựng sa bàn ngã ba, thu thập tập dữ liệu biển báo, huấn luyện mạng CNN trên TensorFlow và tối ưu hóa TensorRT.
- Sprint 4 (Tuần 10 - 12): Tích hợp module hợp nhất (Decision Unit), kiểm thử sa bàn thực tế, tối ưu hóa độ trễ phản hồi vòng lặp kín (Closed-loop latency).
Implementation và kết quả
Development Process & Core Algorithms
Pipeline bám làn được tối ưu qua 4 bước toán học và xử lý ảnh liên tục:
[Camera Input]
│
▼
[1. HSV Space] ──> Hue (0-180), Saturation (0-255), Value (0-255)
│
▼
[2. Gaussian + Canny] ──> G = sqrt(Gx² + Gy²), theta = arctan(Gy/Gx)
│
▼
[3. ROI Masking] ──> Trapezoid focus on lower 60% of frame
│
▼
[4. Hough Transform] ──> rho = x*cos(theta) + y*sin(theta)
│
▼
[5. Slope Fitting] ──> m = (y2 - y1) / (x2 - x1) [Left: m < 0, Right: m > 0]
│
▼
[6. Steering Command] ──> Angle = arctan(x_offset / y_lookahead)
1. Thuật toán phát hiện cạnh Canny và lọc vùng ROI
Để triệt tiêu nhiễu hạt trước khi phát hiện cạnh, ảnh được làm mịn bằng ma trận lọc Gaussian Kernel $5 \times 5$:
$$K = \frac{1}{256} \begin{bmatrix} 1 & 4 & 6 & 4 & 1 \ 4 & 16 & 24 & 16 & 4 \ 6 & 24 & 36 & 24 & 6 \ 4 & 16 & 24 & 16 & 4 \ 1 & 4 & 6 & 4 & 1 \end{bmatrix}$$
Sau đó, áp dụng toán tử Sobel tính gradient theo hai trục ngang ($G_x$) và dọc ($G_y$) để xác định cường độ và hướng biên:
$$|G| = \sqrt{G_x^2 + G_y^2}, \quad \theta = \arctan\left(\frac{G_y}{G_x}\right)$$
2. Biểu diễn đường thẳng trong không gian tọa độ cực Hough
Mỗi đoạn biên được ánh xạ từ không gian Cartesian $(x, y)$ sang không gian tham số Hough $(\rho, \theta)$ theo phương trình:
$$\rho = x \cos\theta + y \sin\theta$$
Hệ thống phân loại các đoạn thẳng thành làn trái và làn phải dựa trên độ dốc $m$:
$$m = \frac{y_2 - y_1}{x_2 - x_1}$$
Quy tắc phân loại:
- Vạch làn trái: $m < 0$ và nằm trong khoảng $2/3$ bề rộng khung hình bên trái.
- Vạch làn phải: $m > 0$ và nằm trong khoảng $1/3$ bề rộng khung hình bên phải.
import cv2
import numpy as np
import math
def calculate_steering_angle(frame, lane_lines):
"""
Tính toán góc bẻ lái dựa trên vị trí trung tâm làn đường so với tâm khung hình.
"""
height, width, _ = frame.shape
if len(lane_lines) == 0:
return 90 # Giữ góc lái thẳng mặc định nếu mất dấu làn
if len(lane_lines) == 1:
# Nếu chỉ thấy 1 vạch, ước lượng tâm dựa trên độ dốc của vạch đơn
x1, _, x2, _ = lane_lines[0][0]
x_offset = x2 - x1
y_offset = int(height / 2)
else:
# Tính điểm giữa của hai vạch trái và phải ở đáy khung hình
_, _, left_x2, _ = lane_lines[0][0]
_, _, right_x2, _ = lane_lines[1][0]
mid_lane = int((left_x2 + right_x2) / 2)
mid_frame = int(width / 2)
x_offset = mid_lane - mid_frame
y_offset = int(height / 2)
angle_to_mid_radian = math.atan2(x_offset, y_offset)
angle_to_mid_deg = int(angle_to_mid_radian * 180.0 / math.pi)
steering_angle = angle_to_mid_deg + 90 # Quy đổi về góc servo (0 - 180 độ)
return np.clip(steering_angle, 45, 135)
3. Kiến trúc mạng nơ-ron tích chập (CNN) phân loại biển báo
Mạng CNN được xây dựng theo kiến trúc tối ưu cho Jetson Nano với các lớp:
- Input Layer: Kích thước ảnh chuẩn hóa $64 \times 64 \times 3$.
- Conv2D Block 1: 32 bộ lọc ($3 \times 3$), Stride $= 1$, Padding = 'Same', Activation = 'ReLU' $\rightarrow$ Batch Normalization $\rightarrow$ MaxPooling2D ($2 \times 2$).
- Conv2D Block 2: 64 bộ lọc ($3 \times 3$), Activation = 'ReLU' $\rightarrow$ MaxPooling2D ($2 \times 2$) $\rightarrow$ Dropout ($0.25$).
- Conv2D Block 3: 128 bộ lọc ($3 \times 3$), Activation = 'ReLU' $\rightarrow$ MaxPooling2D ($2 \times 2$).
- Fully Connected Layer: Dense (128 neurons), Dropout ($0.5$).
- Output Layer: Dense (6 neurons), Softmax Activation Function:
$$P(y = i | \mathbf{x}) = \frac{e^{z_i}}{\sum_{j=1}^{6} e^{z_j}}$$
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout, BatchNormalization
def build_traffic_sign_cnn(input_shape=(64, 64, 3), num_classes=6):
model = Sequential([
Conv2D(32, (3, 3), padding='same', activation='relu', input_shape=input_shape),
BatchNormalization(),
MaxPooling2D(pool_size=(2, 2)),
Conv2D(64, (3, 3), padding='same', activation='relu'),
BatchNormalization(),
MaxPooling2D(pool_size=(2, 2)),
Dropout(0.25),
Conv2D(128, (3, 3), padding='same', activation='relu'),
MaxPooling2D(pool_size=(2, 2)),
Dropout(0.25),
Flatten(),
Dense(128, activation='relu'),
Dropout(0.5),
Dense(num_classes, activation='softmax')
])
return model
Testing và Validation
Hệ thống được đưa vào kiểm thử thực nghiệm trên 3 kịch bản sa bàn với diện tích $2\text{ m}^2$, ghi nhận dữ liệu qua 100 lượt chạy liên tục:
| Kịch bản kiểm thử |
Tốc độ trung bình ($m/s$) |
Tỷ lệ bám làn thành công ($%$) |
Độ trễ suy luận trung bình ($ms$) |
FPS trung bình (Jetson Nano) |
| Đoạn đường cong (Curved Map) |
$0.45\text{ m/s}$ |
$96.2%$ |
$38.4\text{ ms}$ |
$26.0\text{ FPS}$ |
| Đoạn đường ngoằn ngoèo (S-Curve) |
$0.35\text{ m/s}$ |
$92.5%$ |
$41.2\text{ ms}$ |
$24.2\text{ FPS}$ |
| Ngã ba + Biển báo (Junction + Sign) |
$0.30\text{ m/s}$ |
$94.8%$ |
$44.6\text{ ms}$ |
$22.4\text{ FPS}$ |
Đánh giá độ chính xác nhận diện 6 lớp biển báo (Confusion Matrix Summary)
Tập dữ liệu huấn luyện gồm 3.600 ảnh (đã qua Data Augmentation: xoay $\pm 15^\circ$, thay đổi độ sáng $\pm 20%$, zoom $0.8 - 1.2$).
+--------------------------------------------------------------------+
| CLASS | SAMPLES | PRECISION | RECALL | F1-SCORE |
+-------------------+---------+-----------+---------+----------------+
| Stop (STOP) | 200 | 98.5% | 99.0% | 98.7% |
| Turn Left (TL) | 200 | 96.0% | 95.5% | 95.7% |
| Turn Right (TR) | 200 | 97.1% | 96.0% | 96.5% |
| No Turn Left(NTL) | 200 | 94.5% | 93.0% | 93.7% |
| No Turn Right(NTR)| 200 | 95.2% | 94.5% | 94.8% |
| Go Straight (GS) | 200 | 98.0% | 97.5% | 97.7% |
+-------------------+---------+-----------+---------+----------------+
| OVERALL AVERAGE | 1200 | 96.55% | 95.92% | 96.18% |
+--------------------------------------------------------------------+
Đổi mới và đóng góp
- Pipeline tự động thu thập và gán nhãn dữ liệu (Semi-automated Data Labeling):
Thay vì gán nhãn thủ công hàng nghìn bức ảnh, nhóm đã tận dụng thuật toán phân đoạn màu và trích xuất đặc trưng hình học để tự động cắt (crop) và phân loại các mẫu biển báo từ luồng video camera, giúp giảm $75%$ thời gian chuẩn bị dữ liệu.
- Kiến trúc Hybrid tối ưu cho phần cứng biên:
Bằng cách tách biệt tác vụ bám làn đường (giao cho thuật toán Canny/Hough chạy tối ưu trên CPU/OpenCV) và tác vụ phân loại biển báo (chạy mô hình CNN tinh gọn trên 128 nhân CUDA của Jetson Nano), hệ thống duy trì được tốc độ xử lý ổn định trên $22\text{ FPS}$, loại bỏ hoàn toàn hiện tượng drop frame gây mất lái.
- Cơ chế bẻ lái thích ứng hình học (Geometric Steering Adaptation):
Giải thuật lọc vạch làn dựa trên phân vùng $2/3$ trái và $1/3$ phải của khung hình kết hợp công thức bẻ lái bù sai số $x_{offset}$ giúp xe chuyển hướng mượt mà ở các khúc cua chữ S mà không cần dùng đến các bộ điều khiển quá phức tạp.
Ứng dụng thực tế và triển khai
Khả năng ứng dụng thực tế
- Robot tự hành trong nhà máy thông minh (Industrial AGV/AMR): Vận chuyển linh kiện, hàng hóa dọc theo các tuyến đường cố định đánh dấu bằng vạch phản quang, tự động dừng hoặc rẽ khi gặp biển chỉ dẫn.
- Xe trung chuyển nội khu (Smart Campus Shuttle): Ứng dụng trong các khu công nghệ cao, bệnh viện, trường đại học để vận chuyển tự động trong môi trường đường nội bộ có kiểm soát.
- Nền tảng đào tạo và nghiên cứu Robotics/AI: Bộ công cụ học tập thực tế (Hands-on Lab Kit) cho sinh viên ngành Kỹ thuật Máy tính, Điện tử Viễn thông và Tự động hóa.
+-----------------------------------------------------------------------------+
| SYSTEM BILL OF MATERIALS (BOM) |
+-----------------------+------------------------------------+----------------+
| LINH KIỆN | QUY CÁCH KỸ THUẬT | CHI PHÍ (EST.) |
+-----------------------+------------------------------------+----------------+
| NVIDIA Jetson Nano | 4GB B01 Developer Kit | $110 - $130 |
| Sony IMX219 Camera | 8MP, 160 deg FOV, CSI-2 Interface | $20 - $25 |
| RC Chassis 1/10 | Khung Carbon Fiber, Kèm Giảm Xóc | $35 - $45 |
| DC Motor 380 + Servo | Động cơ kéo 380 + Servo lái 17g | $12 - $15 |
| Module Driver L298N | Dual H-Bridge 2A | $3 - $5 |
| Pin LiPo 3S 1500mAh | 11.1V, 35C Discharge Rate | $15 - $18 |
| Mạch hạ áp & Dây nối | Buck Converter 5V/4A, Jack nối | $5 - $8 |
+-----------------------+------------------------------------+----------------+
| TỔNG CHI PHÍ PHẦN CỨNG| | $200 - $246 |
+-----------------------------------------------------------------------------+
Lộ trình triển khai thương mại hóa (Implementation Roadmap)
[Tháng 1-2: Proof of Concept]
│ └── Kiểm chứng giải thuật trên sa bàn 2m² (Đã hoàn thành)
▼
[Tháng 3-4: Edge Optimization]
│ └── TensorRT Model Quantization (FP16/INT8) & Tích hợp ROS2
▼
[Tháng 5-6: Sensor Fusion Integration]
│ └── Bổ sung LiDAR 2D RPLIDAR A1 & Cảm biến siêu âm chống va chạm
▼
[Tháng 7+: Commercial Pilot Deployment]
└── Thử nghiệm AGV vận chuyển tài liệu trong văn phòng/nhà xưởng
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Độ nhạy cảm với ánh sáng: Việc chuyển đổi không gian màu HSV vẫn dựa trên các ngưỡng cận dưới/cận trên (Upper/Lower bounds) cố định. Khi cường độ sáng môi trường thay đổi đột ngột hoặc xuất hiện bóng râm gắt, vạch kẻ đường dễ bị đứt đoạn.
- Tách rời hai tác vụ tính toán: Việc chạy song song bộ nhận diện biên OpenCV và suy luận phân loại CNN khiến bộ xử lý phải quản lý hai luồng dữ liệu độc lập, chưa khai thác được tính liên kết không gian của mạng nơ-ron đa nhiệm (Multi-task Network).
- Thiếu cảm biến khoảng cách chiều sâu: Hệ thống chỉ dựa trên camera đơn (Monocular Vision), chưa có khả năng đo đạc chính xác khoảng cách vật lý tới biển báo và chướng ngại vật phía trước.
Hướng phát triển trong tương lai
- Chuyển đổi sang kiến trúc mạng học sâu đa nhiệm (Unified Multi-Task Network): Tích hợp mô hình dạng YOLOP hoặc HybridNets để thực hiện đồng thời 3 tác vụ: phân đoạn làn đường (Lane Segmentation), phát hiện vật thể (Object Detection) và phân loại biển báo trên một mạng backbone duy nhất được tối ưu qua NVIDIA TensorRT (FP16).
- Hợp nhất cảm biến (Sensor Fusion): Bổ sung cảm biến LiDAR 2D và cụm cảm biến siêu âm qua bộ lọc Kalman mở rộng (Extended Kalman Filter - EKF) để tăng độ an toàn trong điều kiện thiếu sáng.
- Nâng cấp nền tảng phần mềm lên ROS2 (Robot Operating System 2): Chuẩn hóa các node xử lý hình ảnh, điều khiển động cơ và truyền nhận thông điệp qua chuẩn DDS, cho phép tích hợp xe vào hệ thống điều phối đội xe (Fleet Management).
Đối tượng hưởng lợi
+-----------------------------------------------------------------------------+
| STAKEHOLDER MATRIX |
| |
| [SINH VIÊN & NGHIÊN CỨU SINH] [KỸ SƯ & DEVELOPERS] |
| * Tài liệu tham khảo toàn diện * Kiến trúc Hybrid tối ưu Jetson Nano |
| * Pipeline xử lý ảnh thực tế * Mẫu code tích hợp OpenCV & TensorFlow|
| * Rút ngắn thời gian R&D * Giải pháp Auto-labeling tiết kiệm time|
| |
| [DOANH NGHIỆP & NHÀ XƯỞNG] [GIẢNG VIÊN & NHÀ TRƯỜNG] |
| * Giải pháp AGV chi phí thấp ($200) * Giáo trình thực hành môn Robotics/AI |
| * Dễ bảo trì, linh kiện sẵn có * Mô hình Lab chuẩn cho đồ án tốt nghiệp|
+-----------------------------------------------------------------------------+
- Sinh viên & Học viên chuyên ngành: Nắm bắt trọn vẹn quy trình xây dựng hệ thống nhúng AI từ cơ khí, mạch điện tử đến giải thuật xử lý ảnh nâng cao.
- Kỹ sư phát triển phần mềm nhúng (Embedded AI Engineers): Tiếp cận phương pháp tối ưu hóa tài nguyên phần cứng biên cho các ứng dụng thị giác máy tính thời gian thực.
- Doanh nghiệp vừa và nhỏ (SMEs): Sở hữu thiết kế tham chiếu (Reference Design) khả thi để chế tạo robot AGV vận chuyển nội bộ với chi phí tiết kiệm đến $80%$ so với giải pháp nhập khẩu.
Câu hỏi thường gặp
1. Yêu cầu cấu hình tối thiểu để triển khai phần mềm của đề tài là gì?
Hệ thống yêu cầu máy tính nhúng NVIDIA Jetson Nano (khuyến nghị bản 4GB RAM), thẻ nhớ MicroSD tối thiểu 32GB chuẩn UHS-I Class 10, camera Sony IMX219 kết nối qua cổng CSI-2, hệ điều hành JetPack 4.6 (Ubuntu 18.04 LTS), cài đặt sẵn OpenCV 4.5+ và TensorFlow 2.6+.
2. Tại sao nhóm lại chọn chuyển đổi sang không gian màu HSV thay vì xử lý trực tiếp trên RGB?
Không gian màu RGB gộp chung thông tin màu sắc và cường độ sáng vào cả 3 kênh (Red, Green, Blue), khiến ngưỡng nhận diện bị sai lệch lớn khi ánh sáng thay đổi. Không gian màu HSV tách riêng thành phần sắc độ (Hue), độ bão hòa (Saturation) và giá trị sáng (Value), cho phép hệ thống dễ dàng cô lập vạch kẻ đường thông qua kênh H và S mà không bị ảnh hưởng bởi bóng đổ hay độ sáng môi trường.
3. Xe xử lý thế nào trong trường hợp mất dấu cả hai vạch làn đường tại các giao lộ lớn?
Khi hàm calculate_steering_angle trả về danh sách rỗng (không tìm thấy đường thẳng qua biến đổi Hough), hệ thống sẽ kích hoạt trạng thái an toàn: giữ góc bẻ lái thẳng mặc định ($90^\circ$), đồng thời giảm tốc độ động cơ DC xuống $50%$. Nếu sau $500\text{ ms}$ vẫn không tìm thấy làn đường, xe sẽ kích hoạt ngắt phanh khẩn cấp để đảm bảo an toàn.
4. Chi phí bảo trì và thay thế linh kiện cho mô hình này như thế nào?
Mô hình sử dụng các linh kiện tiêu chuẩn phổ biến trong ngành điều khiển tự động (khung xe RC 1/10, động cơ DC 380, driver L298N, servo 17g). Tổng chi phí thay thế cho các bộ phận hao mòn cơ khí chỉ dao động dưới $20\text{ USD}$, quy trình sửa chữa và thay thế module diễn ra nhanh chóng nhờ thiết kế dạng module hóa (Modular Design).
5. Khả năng mở rộng từ mô hình 1:10 lên xe điện thực tế có khả thi không?
Toàn bộ nguyên lý xử lý ảnh và kiến trúc phần mềm (Canny/Hough, CNN, bộ điều khiển bẻ lái) hoàn toàn có thể tái sử dụng trên xe thực tế. Tuy nhiên, khi chuyển đổi lên xe kích thước thật, cần nâng cấp nền tảng xử lý lên các máy tính công nghiệp chuyên dụng (như NVIDIA Jetson AGX Orin), bổ sung cụm camera Stereo, cảm biến LiDAR 3D và giao tiếp điều khiển qua mạng CAN Bus (Controller Area Network).
Kết luận
Đồ án tốt nghiệp "Nghiên cứu và phát triển mô hình xe tự hành ứng dụng AI" của sinh viên Văn Huy Du và Trần Văn Đạt (Đại học Sư phạm Kỹ thuật TP.HCM) đã giải quyết thành công bài toán tự hành hóa mô hình xe tỷ lệ 1:10 trong điều kiện thực nghiệm sa bàn phức tạp. Dự án khẳng định tính khả thi của việc ứng dụng trí tuệ nhân tạo và thị giác máy tính trên các nền tảng nhúng giới hạn tài nguyên như NVIDIA Jetson Nano.
Bằng việc kết hợp hài hòa giữa giải thuật hình học truyền thống (HSV, Canny, Hough Transform) cho tác vụ bám làn và mạng nơ-ron học sâu (CNN) cho tác vụ nhận dạng biển báo, hệ thống đã đạt tốc độ xử lý ấn tượng $22 - 26\text{ FPS}$ với độ chính xác phân loại $96,18%$. Đây là nền tảng vững chắc để tiếp tục mở rộng nghiên cứu sang các hệ thống tự hành đa cảm biến và robot AGV công nghiệp.
Bạn đang tìm kiếm giải pháp phát triển hệ thống xe tự hành hoặc ứng dụng AI nhúng cho robot nhà xưởng? Hãy kết nối với nhóm tác giả và Bộ môn Kỹ thuật Máy tính – Viễn thông, Khoa Điện – Điện tử, Trường Đại học Sư phạm Kỹ thuật TP.HCM để cùng hợp tác nghiên cứu, chuyển giao công nghệ và phát triển các sản phẩm tự hành thông minh "Make in Vietnam".