Giới thiệu dự án
Sự bùng nổ của các phương tiện giao thông thông minh và xe tự hành đã đưa Hệ thống Hỗ trợ Người lái Nâng cao (Advanced Driver Assistance Systems - ADAS) trở thành tiêu chuẩn an toàn bắt buộc trong ngành công nghiệp ô tô toàn cầu. Theo các báo cáo thống kê an toàn giao thông đường bộ quốc tế, hơn 90% các vụ tai nạn giao thông có nguyên nhân xuất phát từ sự thiếu tập trung hoặc phản xạ chậm trễ của người điều khiển phương tiện trước các biển chỉ dẫn và cảnh báo nguy hiểm. Trong bối cảnh hạ tầng giao thông đô thị phức tạp tại Việt Nam, việc phát hiện và nhận diện biển báo giao thông trong thời gian thực (Real-time Traffic Sign Detection and Classification) đối mặt với nhiều rào cản kỹ thuật nghiêm trọng.
+---------------------------------------------------------------------------------------------------+
| THÁCH THỨC TRIỂN KHAI ADAS TẠI BIÊN |
+------------------------------------+----------------------------------+---------------------------+
| ĐIỀU KIỆN MÔI TRƯỜNG THỰC | HẠN CHẾ PHẦN CỨNG | YÊU CẦU THỜI GIAN |
| - Biển báo bị che khuất, biến dạng | - GPU tiêu tốn công suất lớn | - Tần số xử lý >= 30 FPS |
| - Thay đổi cường độ ánh sáng, mưa | - CPU thuần xử lý độ trễ cao | - Độ trễ nội suy < 35 ms |
| - Đa dạng kích thước và cự ly quan | - Băng thông bộ nhớ biên hạn chế | - Cảnh báo tức thì đa mục |
| sát (từ 5m đến trên 35m) | - Nhiệt lượng tỏa ra cao | tiêu trong cùng khung |
+------------------------------------+----------------------------------+---------------------------+
Vấn đề kỹ thuật cốt lõi (Problem Statement)
Các mô hình mạng nơ-ron tích chập (Convolutional Neural Network - CNN) truyền thống đòi hỏi chi phí tính toán đồ sộ với hàng chục triệu tham số dấu chấm động 32-bit (FP32). Khi triển khai trên các thiết bị đồ họa chuyên dụng (GPU rời), công suất tiêu thụ điện thường vượt ngưỡng 30W – 100W, gây quá nhiệt và không khả thi cho các hệ thống nhúng biên nhỏ gọn (Edge Devices). Ngược lại, việc triển khai trên vi xử lý trung tâm (CPU) lại gây ra hiện tượng nghẽn cổ chai tính toán, khiến tốc độ khung hình giảm xuống dưới 10 khung hình/giây (FPS), vi phạm trực tiếp yêu cầu xử lý thời gian thực của các hệ thống an toàn chủ động.
Mục tiêu đề tài
- Thu thập và chuẩn hóa dữ liệu: Xây dựng tập dữ liệu gồm 40 loại biển báo giao thông phổ biến tại Việt Nam theo Quy chuẩn kỹ thuật quốc gia về báo hiệu đường bộ (QCVN 41:2019/BGTVT).
- Thiết kế và tối ưu mạng học sâu: Lựa chọn, tùy biến kiến trúc mạng nơ-ron một giai đoạn YOLOv3-Tiny nhằm đạt được sự cân bằng tối ưu giữa tốc độ nội suy và độ chính xác phân loại.
- Nén và lượng tử hóa mô hình: Thực hiện lượng tử hóa trọng số từ dạng số thực 32-bit (FP32) sang số nguyên 8-bit (INT8) kết hợp kỹ thuật cân bằng liên lớp (Cross-layer Equalization) mà không làm suy giảm đáng kể độ chính xác trung bình (mAP).
- Đồng thiết kế Phần cứng - Phần mềm (HW/SW Co-design): Triển khai toàn diện hệ thống trên bo mạch SoC-FPGA AMD Xilinx Kria KV260 Vision AI Starter Kit thông qua lõi tăng tốc Deep Learning Processor Unit (DPUCZDX8G IP Core), giao tiếp trực tiếp qua Camera USB và xuất dữ liệu thời gian thực lên màn hình HDMI.
Phạm vi và giới hạn
- Phạm vi đối tượng: Phân loại chính xác 40 lớp biển báo giao thông chia thành 4 nhóm: Biển báo cấm (P), Biển báo hiệu lệnh (R), Biển báo chỉ dẫn (I), và Biển báo nguy hiểm (W).
- Phạm vi phần cứng: Giới hạn thực thi nội suy AI trên phần cứng khả trình Kria K26 System-on-Module (SoM) tích hợp vi xử lý Zynq UltraScale+ MPSoC.
- Giới hạn môi trường: Hệ thống được kiểm thử tối ưu trong điều kiện thời tiết ban ngày, ánh sáng tự nhiên từ thuận sáng đến ngược sáng nhẹ; chưa tích hợp cảm biến hồng ngoại cho môi trường ban đêm hoàn toàn.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Phương pháp |
Thuật toán / Kiến trúc |
Ưu điểm |
Nhược điểm |
Khả năng đáp ứng ADAS |
| Truyền thống |
HOG + Color Slicing + SVM |
Cấu trúc nhẹ, không cần phần cứng tăng tốc đặc thù |
Kém linh hoạt, dễ bị nhiễu do ánh sáng, tỷ lệ nhận diện sai cao |
Không đạt yêu cầu |
| Two-Stage Detector |
Faster R-CNN (ResNet-50) |
Độ chính xác cao, trích xuất đặc trưng đa tầng tốt |
Tốc độ trích xuất vùng (RPN) chậm (8–12 FPS trên Edge), tính toán nặng |
Kém khả thi thời gian thực |
| One-Stage (GPU rời) |
YOLOv3 Standard (Darknet-53) |
mAP cao, phát hiện tốt các vật thể kích thước nhỏ |
Tiêu thụ 75W–150W điện năng, kích thước cồng kềnh, chi phí đắt đỏ |
Hạn chế trên thiết bị nhúng |
| Đề xuất (SoC-FPGA) |
YOLOv3-Tiny (INT8) + DPUCZDX8G |
Tốc độ >30 FPS, tiêu thụ điện <10W, độ trễ thấp, tính toán song song phần cứng |
Đòi hỏi quy trình lượng tử hóa và biên dịch đồ thị phức tạp |
Tối ưu toàn diện |
Ưu tiên yêu cầu kỹ thuật (MoSCoW Matrix)
- Must have: Tần số khung hình $\ge 30$ FPS, nhận diện chính xác 4 nhóm biển báo cơ bản, chạy độc lập trên bo mạch SoC-FPGA nhúng không cần kết nối máy chủ đám mây.
- Should have: Khả năng phát hiện đồng thời 4 biển báo khác nhau trong cùng một khung hình với cự ly từ 5m đến 35m; giao diện trực quan hiển thị bounding box, tên biển báo và độ tin cậy.
- Could have: Tích hợp cơ chế theo dõi đối tượng (Object Tracking) liên khung hình để giảm thiểu nhấp nháy dự đoán.
- Won't have (phiên bản hiện tại): Xử lý tín hiệu đa kênh từ cảm biến LiDAR và Radar; điều khiển trực tiếp hệ thống phanh chấp hành của phương tiện.
Thiết kế kiến trúc hệ thống
Kiến trúc giải pháp được thiết kế theo cơ chế dị thể (Heterogeneous System Architecture) kết hợp giữa Hệ thống Xử lý (Processing System - PS) và Logic Khả trình (Programmable Logic - PL) trên chip AMD Zynq UltraScale+ MPSoC.
+------------------------------------------------------------------------------------+
| HỆ THỐNG PHẦN CỨNG KRIA KV260 (ZYNQ ULTRASCALE+) |
| |
| +------------------------------+ +---------------------------------+ |
| | PROCESSING SYSTEM (PS) | | PROGRAMMABLE LOGIC (PL) | |
| | (Quad-core ARM Cortex-A53) | | | |
| | | | +---------------------------+ | |
| | +------------------------+ | AXI-HP | | DPUCZDX8G IP Core | | |
[Camera USB] | OpenCV Frame Capture | <===========> | | | | |
| | +------------------------+ | (DMA Trans)| | - High Perf Scheduler | | |
| | | | | | - Hybrid Compute Array | | |
| | v | | | - PE Convolution Engines | | |
| | +------------------------+ | | | - On-Chip BRAM Pool | | |
| | | Pre/Post Processing | | | +---------------------------+ | |
| | | (Letterbox, NMS, NMS-IoU)|<====+ +---------------------------------+ |
| | +------------------------+ | | | |
| | | | +-------------------------+ |
| | v | (Tensor Kết quả: Boxes & Scores) |
| | +------------------------+ | |
| | | Rendering DRM/KMS |-------------------------------------> [Màn hình HDMI|
| | +------------------------+ | 1080p Output]|
| +------------------------------+ |
| ^ |
| | DDR4 Controller (4GB 64-bit 2400 MT/s) |
| +------------------------------------------------------------------+
Thông số ngăn xếp công nghệ (Technology Stack)
- Framework huấn luyện: Darknet Framework & TensorFlow v2.8.0.
- Bộ công cụ tối ưu hóa phần cứng: AMD Xilinx Vitis AI v2.5 (bao gồm
vai_q_tensorflow và vai_c_tensorflow).
- Môi trường nhúng bo mạch: Ubuntu 22.04 LTS for ARM64 / PetaLinux 2022.2 Runtime.
- Thư viện thực thi AI tại biên: XRT (Xilinx Runtime Core) v2.13 & VART (Vitis AI Run Time) APIs.
- Thư viện thị giác & đồ họa: OpenCV v4.5.4 (tối ưu hóa NEON SIMD) & DRM/KMS Native Display Output.
Implementation và kết quả
Quy trình tiền xử lý và xây dựng Dataset
Dữ liệu được thu thập trực tiếp trên các tuyến đường đô thị TP. Hồ Chí Minh với camera hành trình độ phân giải Full HD (1920x1080). Để giải quyết vấn đề nghẽn cổ chai thời gian khi gán nhãn hàng nghìn ảnh thủ công qua LabelImg, nhóm đã kết hợp công cụ Supervisely với thuật toán Lucas-Kanade Optical Flow Object Tracking, tăng tốc độ gán nhãn tự động lên gấp 6 lần.
+----------------------------------------------------------------------------------+
| PIPELINE TỐI ƯU VÀ BIÊN DỊCH MÔ HÌNH VITIS AI |
+----------------------------------------------------------------------------------+
|
v
+-------------------------------------------------------+
| Huấn luyện mô hình YOLOv3-Tiny trên Darknet (Weights) |
+-------------------------------------------------------+
|
v
+-------------------------------------------------------+
| Chuyển đổi Darknet Weights -> Frozen Graph (.pb) |
+-------------------------------------------------------+
|
v
+-------------------------------------------------------+
| Vitis AI Quantizer (vai_q_tensorflow): |
| - Ánh xạ FP32 sang INT8 (Weight & Activation) |
| - Áp dụng Cross-Layer Equalization giảm thiểu outlier |
| - Sử dụng 500 ảnh không gán nhãn để hiệu chuẩn |
+-------------------------------------------------------+
|
v
+-------------------------------------------------------+
| Vitis AI Compiler (vai_c_tensorflow): |
| - Phân tích đồ thị XIR (Xilinx Intermediate Repr.) |
| - Tạo tập lệnh tối ưu cho kiến trúc DPUCZDX8G |
| - Xuất tập tin thực thi nhị phân: yolov3_tiny.xmodel |
+-------------------------------------------------------+
Kiến trúc mạng và mã nguồn thực thi phần cứng
YOLOv3-Tiny rút gọn mạng nơ-ron còn 13 lớp tích chập (Convolutional Layers) và 6 lớp Max Pooling (kích thước $2 \times 2$, stride = 2), loại bỏ các khối Residual phức tạp của bản đầy đủ. Đầu ra mạng sử dụng 2 nhánh phát hiện đa tỷ lệ (Multi-scale Feature Maps): nhánh $13 \times 13 \times 135$ dành cho các biển báo kích thước trung bình - lớn và nhánh $26 \times 26 \times 135$ dành cho các biển báo kích thước nhỏ (với số tensor output = $3 \times (40 \text{ classes} + 5) = 135$).
Hàm mất mát $Loss_{YOLO}$ kết hợp giữa tính toán sai số vị trí tọa độ Bounding Box, sai số Objectness và Cross-Entropy Loss phân loại lớp:
$$\text{IoU} = \frac{\text{Area of Overlap}}{\text{Area of Union}} = \frac{|B_{\text{pred}} \cap B_{\text{ground-truth}}|}{|B_{\text{pred}} \cup B_{\text{ground-truth}}|}$$
$$\text{Confidence Score} = \Pr(\text{Class}i \mid \text{Object}) \times \Pr(\text{Object}) \times \text{IoU}{\text{pred}}^{\text{truth}}$$
Mã nguồn trích xuất và thực thi nội suy qua Vitis AI Run Time (VART Python API)
import numpy as np
import vart
import xir
import cv2
def run_dpu_inference(xmodel_path, image_raw):
# 1. Khởi tạo đồ thị XIR và DPU Runner từ xmodel
graph = xir.Graph.deserialize(xmodel_path)
root_subgraph = graph.get_root_subgraph()
dpu_subgraphs = [s for s in root_subgraph.children if s.get_attr("device") == "DPU"]
dpu_runner = vart.Runner.create_runner(dpu_subgraphs[0], "run")
# 2. Tiền xử lý ảnh (Letterbox resize về 416x416 và chuẩn hóa INT8 scale)
input_tensors = dpu_runner.get_input_tensors()
output_tensors = dpu_runner.get_output_tensors()
input_scale = 2 ** input_tensors[0].get_attr("fix_point")
img_resized = cv2.resize(image_raw, (416, 416))
img_quantized = (img_resized.astype(np.float32) * (input_scale / 255.0)).astype(np.int8)
# 3. Phân bổ bộ nhớ đệm cho tensors vào/ra
input_data = [np.empty(tuple(input_tensors[0].dims), dtype=np.int8, order="C")]
output_data = [np.empty(tuple(ot.dims), dtype=np.int8, order="C") for ot in output_tensors]
input_data[0][0, ...] = img_quantized
# 4. Thực thi nội suy song song trên phần cứng DPU
job_id = dpu_runner.execute_async(input_data, output_data)
dpu_runner.wait(job_id)
# 5. Khôi phục tỷ lệ Tensor đầu ra phục vụ hậu xử lý NMS
decoded_outputs = []
for i, ot in enumerate(output_tensors):
out_scale = 2 ** (-ot.get_attr("fix_point"))
decoded_outputs.append(output_data[i].astype(np.float32) * out_scale)
return decoded_outputs
Đo đạc hiệu năng và kết quả thực nghiệm
Mô hình đã được thử nghiệm nghiêm ngặt qua 2 giai đoạn: Đánh giá độ chính xác toán học trên tập kiểm thử (Test Dataset gồm 1.200 ảnh độ phân giải cao) và Đánh giá hiệu năng thực tế tại biên (Real-time Pipeline trên bo mạch KV260).
+---------------------------------------------------------------------------------------------------+
| KẾT QUẢ ĐO LƯỜNG ĐỘ CHÍNH XÁC VÀ HIỆU NĂNG TẠI BIÊN |
+------------------------------------+----------------------------------+---------------------------+
| NHÓM BIỂN BÁO GIAO THÔNG | ĐỘ CHÍNH XÁC AP (FP32 BASELINE) | ĐỘ CHÍNH XÁC AP (INT8) |
| - Nhóm biển báo cấm (P) | 93.45% | 92.80% |
| - Nhóm biển hiệu lệnh (R) | 91.20% | 90.55% |
| - Nhóm biển chỉ dẫn (I) | 89.75% | 88.90% |
| - Nhóm biển nguy hiểm (W) | 92.60% | 91.95% |
| TOÀN BỘ 40 CLASS (mAP@0.5) | 91.75% | 91.05% |
+------------------------------------+----------------------------------+---------------------------+
+---------------------------------------------------------------------------------------------------+
| THỜI GIAN THỰC THI CHI TIẾT TRÊN KRIA KV260 (INT8) |
+--------------------------+----------------------------+-------------------------------------------+
| GIAI ĐOẠN PIPELINE | THỜI GIAN XỬ LÝ (ms) | TỶ LỆ TÀI NGUYÊN / ĐẶC TẢ |
+--------------------------+----------------------------+-------------------------------------------+
| Frame Capture & Pre-proc | 5.2 ms | Cortex-A53 ARM CPU (OpenCV NEON) |
| DPU Hardware Inference | 18.6 ms | DPUCZDX8G Core @ 300MHz (PL Engine) |
| Post-proc (YOLO NMS) | 4.8 ms | Cortex-A53 ARM CPU (C++ Optimized) |
| Render HDMI Output | 1.8 ms | Direct DRM/KMS Framebuffer Output |
| TỔNG THỜI GIAN / FPS | 30.4 ms / ~32.89 FPS | Tổng công suất tiêu thụ kit: ~6.8 Watts |
+--------------------------+----------------------------+-------------------------------------------+
Đổi mới và đóng góp
Cải tiến kỹ thuật vượt trội
-
Khử méo trọng số bằng Cross-Layer Equalization (CLE):
Trong quá trình lượng tử hóa mạng YOLOv3-Tiny trực tiếp từ FP32 xuống INT8, hiện tượng lệch dải giá trị (Dynamic Range Imbalance) giữa các bộ lọc liền kề thường gây ra sụt giảm nghiêm trọng điểm mAP ở các biển báo có chi tiết nhỏ. Bằng cách áp dụng kỹ thuật CLE để biến đổi tương đương ma trận trọng số giữa các lớp Convolution liên tiếp trước khi thực hiện hiệu chuẩn (Calibration), độ suy giảm mAP@0.5 của toàn hệ thống được kiểm soát ở mức cực thấp: chỉ mất 0.70% (từ 91.75% xuống 91.05%).
-
Tối ưu hóa đa luồng xử lý phần cứng dị thể (Heterogeneous Pipelining):
Tách biệt hoàn toàn luồng thu thập hình ảnh từ Camera (V4L2 Driver), luồng tính toán nội suy ma trận dày đặc (DPUCZDX8G IP) và luồng giải mã hộp bao hậu xử lý (Non-Maximum Suppression trên CPU) thành 3 thread độc lập sử dụng bộ nhớ chia sẻ không khóa (Lock-free Circular Buffer). Nhờ đó, thông lượng tổng thể của hệ thống tăng từ 19.5 FPS lên 32.89 FPS (cải thiện hơn 68.6% so với cách tiếp cận xử lý tuần tự truyền thống).
So sánh với các giải pháp phần cứng biên phổ biến
+---------------------------------------------------------------------------------------------------+
| SO SÁNH CÁC NỀN TẢNG TRIỂN KHAI HỆ THỐNG PHÁT HIỆN BIỂN BÁO |
+------------------------+-----------------------+-----------------------+--------------------------+
| TIÊU CHÍ KỸ THUẬT | RASPBERRY PI 4 (CPU) | NVIDIA JETSON NANO | AMD KRIA KV260 (ĐỀ TÀI) |
+------------------------+-----------------------+-----------------------+--------------------------+
| Đơn vị tính toán chính | 4x Cortex-A72 CPU | 128-core Maxwell GPU | DPUCZDX8G IP Core (FPGA) |
| Định dạng lượng tử | FP32 / FP16 | FP16 (TensorRT) | INT8 (Vitis AI) |
| Tốc độ khung hình | 4.2 FPS | 18.4 FPS | 32.9 FPS |
| Công suất tiêu thụ | ~5.5 Watts | ~10.0 Watts | ~6.8 Watts |
| Hiệu suất năng lượng | 0.76 FPS / Watt | 1.84 FPS / Watt | 4.84 FPS / Watt |
| Tính tiền định độ trễ | Thấp (Jitter cao) | Trung bình | Rất cao (Độ trễ cố định) |
+------------------------+-----------------------+-----------------------+--------------------------+
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tế (Use-case Scenarios)
- Tích hợp Hộp đen Camera Hành trình Thông minh (Smart Dashcam): Thiết bị hoạt động hoàn toàn Offline, gắn trên kính lái ô tô hoặc xe tải thương mại, tự động phát hiện biển báo giới hạn tốc độ (P.127), biển cấm vượt (P.125), hoặc biển nguy hiểm để cảnh báo trực quan và âm thanh tức thì cho tài xế.
- Hệ thống Kiểm kê Tài sản Giao thông Đô thị Tự động: Lắp đặt trên xe tuần tra của Sở Giao thông Vận tải nhằm tự động quét, định vị tọa độ GPS và lập bản đồ số hóa tình trạng các biển báo giao thông trên toàn thành phố, phát hiện các biển báo bị nghiêng, mờ hoặc mất cắp.
+----------------------------------------------------------------------------------+
| QUY TRÌNH TRIỂN KHAI VẬN HÀNH THỰC ĐỊA |
+----------------------------------------------------------------------------------+
|
+---------------------------------------+---------------------------------------+
| | |
v v v
+-------------------------------+ +-------------------------------+ +-------------------------------+
| 1. CẤU HÌNH PHẦN CỨNG | | 2. NẠP BITSTREAM & XCLBIN | | 3. VẬN HÀNH THỜI GIAN THỰC |
| - Gắn SoM Kria K26 Carrier | | - Nạp Overlay DPU vào PL | | - Đọc luồng Camera USB 1080p |
| - Kết nối Camera USB C920 | | - Load firmware `kv260-dpuc` | | - Tự động nội suy qua VART |
| - Cấp nguồn 12V-3A tiêu chuẩn | | - Mount thư mục chứa `.xmodel`| | - Cảnh báo giao diện HDMI |
+-------------------------------+ +-------------------------------+ +-------------------------------+
Phân tích Tính khả thi và Hiệu quả Đầu tư (Cost-Benefit & ROI)
- Chi phí thiết bị: Module Kria K26 SoM có mức chi phí phần cứng cạnh tranh (~$199) với vòng đời hỗ trợ công nghiệp lên đến 10 năm, vượt trội so với các dòng card GPU phổ thông.
- Độ bền nhiệt độ công nghiệp: Hoạt động ổn định trong dải nhiệt độ $-40^\circ\text{C}$ đến $85^\circ\text{C}$, đáp ứng hoàn hảo tiêu chuẩn vận hành khắc nghiệt trên khoang động cơ phương tiện giao thông.
- Thời gian hoàn vốn (ROI): Việc ứng dụng hệ thống giúp các hãng vận tải thương mại giảm thiểu tới 45% các lỗi vi phạm giao thông do sơ suất quan sát, cắt giảm chi phí bảo hiểm và hạn chế rủi ro tai nạn nghiêm trọng.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Kích thước đầu vào cố định: Mô hình hiện tại chuẩn hóa khung hình ở kích thước $416 \times 416$ pixel. Các biển báo ở khoảng cách quá xa ($> 40\text{m}$) chỉ chiếm diện tích dưới $10 \times 10$ pixel trên ảnh đầu vào, dễ bị suy hao đặc trưng qua các tầng Pooling.
- Thời tiết khắc nghiệt cực hạn: Độ chính xác suy giảm nhẹ trong điều kiện sương mù dày đặc hoặc ban đêm thiếu sáng do tập dữ liệu huấn luyện chủ yếu tập trung vào điều kiện ánh sáng khả kiến ban ngày.
Lộ trình nâng cấp và mở rộng (Development Roadmap)
- Nâng cấp kiến trúc mạng (Q3/2025): Tùy biến và lượng tử hóa các kiến trúc hiện đại hơn như YOLOv8-Nano hoặc YOLOv10-Nano với các khối Attention cơ chế nhẹ (MobileViT/RepVGG blocks) để cải thiện độ chính xác đối tượng siêu nhỏ.
- Cảm biến hợp nhất (Sensor Fusion - Q1/2026): Tích hợp thêm kênh cảm biến ảnh nhiệt (Thermal Camera) hoặc cảm biến sóng Radar tầm ngắn (Millimeter Wave Radar) để hệ thống hoạt động xuyên suốt 24/7 trong mọi điều kiện thời tiết.
- Mở rộng lõi phần cứng: Tăng số lượng lõi DPU Core trên Logic Khả trình (từ 1 lõi DPU B3136 lên 2 lõi DPU B4096) để nâng tần số xử lý vượt ngưỡng 60 FPS, cho phép hỗ trợ đồng thời nhiều góc Camera quan sát xung quanh xe (Surround View System).
Đối tượng hưởng lợi
- Sinh viên & Học viên chuyên ngành: Cung cấp tài liệu tham khảo chi tiết về quy trình đồng thiết kế Phần cứng - Phần mềm (HW/SW Co-design), kỹ thuật nén mô hình học sâu và phương pháp làm chủ công cụ thiết kế hệ thống nhúng SoC-FPGA hiện đại.
- Kỹ sư AI Nhúng & Edge Developers: Cung cấp khung mã nguồn mẫu (Source Framework) hoàn chỉnh về cách biên dịch, lượng tử hóa và điều phối mô hình Darknet/TensorFlow xuống nhân DPU của AMD Xilinx thông qua thư viện VART C++/Python.
- Doanh nghiệp Sản xuất Ô tô & Thiết bị Thông minh: Mô hình kiến trúc phần cứng - phần mềm có thể thương mại hóa trực tiếp thành sản phẩm Smart Dashcam hoặc giải pháp nhúng ADAS Level 1/2 với chi phí linh kiện tối ưu và độ bền công nghiệp cao.
- Nhà nghiên cứu Giao thông Thông minh (ITS): Dữ liệu chuẩn hóa 40 lớp biển báo giao thông Việt Nam cung cấp nền tảng giá trị cho các nghiên cứu chuyên sâu về an toàn thị giác máy tính trong môi trường giao thông Đông Nam Á.
Câu hỏi thường gặp
1. Yêu cầu hệ thống tối thiểu để biên dịch và nạp mô hình xuống Kria KV260 là gì?
Máy trạm (Host PC) cần chạy hệ điều hành Ubuntu 18.04/20.04 LTS x86_64, RAM tối thiểu 16GB, cài đặt Docker Engine để chạy container Vitis AI v2.5. Bo mạch đích Kria KV260 cần trang bị thẻ nhớ MicroSD tối thiểu 16GB Class 10 (khuyến nghị SanDisk Extreme U3) nạp sẵn file ảnh hệ điều hành Ubuntu 22.04 LTS certified for Xilinx.
2. Quá trình lượng tử hóa INT8 có làm mất khả năng nhận diện biển báo nhỏ không?
Nhờ tích hợp kỹ thuật cân bằng liên lớp (Cross-layer Equalization - CLE) và sử dụng tập dữ liệu hiệu chuẩn (Calibration Dataset) gồm 500 ảnh thực tế đa dạng cự ly, sai số biên độ trọng số được san phẳng đều trên toàn bộ dải biểu diễn INT8, do đó tỷ lệ suy hao mAP@0.5 cho các vật thể nhỏ được kiểm soát chặt chẽ dưới 1.0%.
3. Có thể thay thế Camera USB bằng Camera chuẩn MIPI CSI-2 không?
Hoàn toàn khả thi. Bo mạch Kria KV260 hỗ trợ sẵn cổng giao tiếp IAS (Onsemi Image Sensor) và cổng Raspberry Pi Camera Connector chuẩn MIPI CSI-2. Khi chuyển sang giao tiếp MIPI, độ trễ thu nhận khung hình (Capture Latency) sẽ giảm thêm khoảng 2.5ms do luồng dữ liệu được truyền thẳng vào khối xử lý hình ảnh phần cứng ISP (Video Processing Subsystem) trên PL.
4. Hệ thống tiêu thụ bao nhiêu tài nguyên phần cứng trên chip FPGA Zynq UltraScale+?
Lõi DPUCZDX8G với cấu hình tiêu chuẩn B3136 (sử dụng 1 sợi tính toán tại xung nhịp 300MHz) chiếm dụng xấp xỉ 42.5% LUTs (Look-Up Tables), 58.2% BRAM (Block RAM chuyên dụng) và 64.0% DSP Slices của phần logic khả trình trên chip K26 SoM, đảm bảo vẫn còn đủ tài nguyên cho các khối phụ trợ khác.
5. Chi phí triển khai phần cứng một hệ thống hoàn chỉnh ước tính là bao nhiêu?
Tổng chi phí linh kiện phần cứng thử nghiệm thương mại gồm: Bo mạch Kria KV260 Starter Kit (~$249), Cảm biến Camera Full HD góc rộng (~$35), Phụ kiện nguồn, thẻ nhớ và vỏ nhôm tản nhiệt (~$25). Tổng ngân sách phần cứng dưới $310 cho một mẫu thử nghiệm hoàn chỉnh, thấp hơn đáng kể so với việc sử dụng các hệ thống nhúng dựa trên GPU hiệu năng tương đương.
Kết luận
Đề tài khóa luận tốt nghiệp "Hệ thống phát hiện và nhận diện biển báo giao thông đường bộ trên nền tảng SoC-FPGA Kria KV260" đã giải quyết xuất sắc bài toán cân bằng giữa độ chính xác nhận diện và tốc độ xử lý thời gian thực cho hệ thống ADAS tại biên. Bằng việc kết hợp kiến trúc mạng học sâu tối ưu YOLOv3-Tiny, phương pháp lượng tử hóa nén mô hình INT8 chuẩn xác của Vitis AI và sức mạnh tính toán song song phần cứng của nhân DPUCZDX8G trên chip Zynq UltraScale+ MPSoC, hệ thống đạt được hiệu năng ấn tượng với 32.89 FPS, độ chính xác mAP@0.5 đạt 91.05% trên 40 lớp biển báo giao thông Việt Nam với công suất tiêu thụ toàn bo mạch chỉ 6.8 Watts.
Đây là minh chứng rõ nét cho xu hướng chuyển dịch mạnh mẽ từ các hệ thống tính toán đám mây cồng kềnh sang kiến trúc xử lý AI cục bộ tại biên (Edge AI Computing), mang lại giá trị thực tiễn to lớn cho sự phát triển của ngành giao thông thông minh và phương tiện tự hành tại Việt Nam trong tương lai.