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

Hệ thống hỗ trợ người lái xe nâng cao (Advanced Driver Assistance System - ADAS) đóng vai trò then chốt trong việc hỗ trợ người điều khiển phương tiện, nâng cao an toàn giao thông và giảm thiểu tai nạn. Trong các tác vụ nhận diện môi trường xung quanh của ADAS, bài toán phát hiện và nhận diện biển báo giao thông là một cấu phần quan trọng do cung cấp trực tiếp các thông tin quy chuẩn điều hướng và cảnh báo.

Thực tế vận hành đặt ra nhiều thách thức đối với hệ thống thị giác máy tính:

  • Môi trường thực tế có độ nhiễu cao do sự thay đổi của điều kiện ánh sáng, thời tiết.
  • Các tác nhân vật lý khiến biển báo bị che khuất bởi cây cối, xe cộ, hoặc bị biến dạng, mờ nhòe.
  • Biển báo ở khoảng cách xa có kích thước nhỏ trong khung hình, dẫn đến nguy cơ bỏ sót đối tượng.
  • Về mặt phần cứng, các mô hình mạng nơ-ron tích chập (CNN) đòi hỏi khối lượng tính toán lớn. Bộ xử lý đồ họa (GPU) tuy có khả năng tính toán song song mạnh nhưng tiêu thụ nhiều năng lượng, không tối ưu khi tích hợp vào các thiết bị nhúng độc lập (edge devices). Bộ xử lý học sâu (Deep Learning Processor Unit - DPU) tích hợp trên nền tảng SoC-FPGA là giải pháp cân bằng giữa hiệu năng tính toán, mức tiêu thụ năng lượng và nhiệt độ.

Khóa luận xác định 4 mục tiêu nghiên cứu cụ thể:

  1. Nhận diện chính xác các biển báo ở các khoảng cách khác nhau.
  2. Đạt tốc độ khung hình ổn định với mật độ biển báo khoảng 4 biển báo trong cùng một khung hình.
  3. Nhận diện được 40 loại biển báo giao thông đường bộ phổ biến tại Việt Nam.
  4. Triển khai hoàn chỉnh hệ thống trên phần cứng SoC-FPGA (Kria KV260 Vision AI Starter Kit).

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

  • Đối tượng nghiên cứu: 40 loại biển báo giao thông đường bộ Việt Nam (chia thành 4 nhóm chính) và quy trình tăng tốc phần cứng cho mạng nơ-ron trên SoC-FPGA.
  • Phạm vi không gian: Dữ liệu hình ảnh và video thực tế được ghi nhận tại khu vực TP. Hồ Chí Minh.
  • Phạm vi thiết bị: Nền tảng phần cứng Kria KV260 Vision AI Starter Kit (chứa SOM Kria K26 dựa trên chip AMD Zynq UltraScale+ MPSoC), camera thu nhận hình ảnh Logitech và màn hình hiển thị xuất qua cổng HDMI.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết và mô hình sử dụng

Khóa luận xây dựng trên các nền tảng lý thuyết thị giác máy tính và kiến trúc máy tính chuyên dụng:

  • Mạng nơ-ron tích chập (CNN): Phép nhân tích chập với các bộ lọc (kernel) 2D/3D trượt trên ảnh (sliding window) kết hợp kỹ thuật padding và stride để trích xuất bản đồ đặc trưng (Feature Map).
  • Hàm kích hoạt (Activation Functions): Phân tích sự chuyển dịch từ hàm Sigmoid (gây hiện tượng triệt tiêu đạo hàm - vanishing gradient) sang hàm ReLU ($f(x) = \max(0, x)$) và hàm Leaky ReLU ($f(x) = \max(\alpha x, x)$ với $\alpha$ nhỏ) nhằm duy trì hoạt động của nơ-ron khi giá trị đầu vào âm.
  • Các tầng chức năng: Tầng Pooling (Max pooling, Average pooling) giảm kích thước không gian và chi phí tính toán; Tầng Batch Normalization chuẩn hóa đầu ra lớp ẩn, cải thiện độ ổn định và đóng góp tăng mAP xấp xỉ 2%; Tầng Dropout và Upsampling phục vụ giải mã đặc trưng.
  • Mô hình One-stage Detector (YOLO): Tiếp cận bài toán phát hiện đối tượng dưới dạng hồi quy trực tiếp từ pixel ảnh thành tọa độ hộp bao (bounding box) và xác suất phân loại lớp, loại bỏ khâu tạo vùng đề xuất (Region Proposal) phức tạp của các mô hình Two-stage (R-CNN, Fast R-CNN, Faster R-CNN). Mô hình sử dụng độ đo Intersection over Union (IoU) để đánh giá độ chính xác định vị: $$\text{IoU} = \frac{\text{Area of Overlap}}{\text{Area of Union}}$$
  • Kiến trúc phần cứng DPU (DPUCZDX8G): Lõi IP chuyên dụng của Xilinx triển khai trên phần logic khả trình (Programmable Logic - PL) của dòng Zynq UltraScale+ MPSoC để tăng tốc tính toán mạng nơ-ron.

Phương pháp nghiên cứu

Khóa luận sử dụng kết hợp phương pháp nghiên cứu thực nghiệm và phương pháp thiết kế hệ thống kỹ thuật:

  1. Thu thập dữ liệu: Ghi hình thực tế trên các tuyến đường tại TP. Hồ Chí Minh để tạo tập dữ liệu biển báo giao thông Việt Nam.
  2. Gán nhãn dữ liệu: Sử dụng công cụ mã nguồn mở LabelImg cho gán nhãn thủ công từng khung hình, kết hợp công cụ Supervisely với thuật toán tracking object trên chuỗi video để tự động gán nhãn hàng loạt.
  3. Huấn luyện mô hình: Huấn luyện mô hình YOLOv3-Tiny trên framework Darknet sử dụng môi trường Google Colab.
  4. Tối ưu hóa và lượng tử hóa mô hình: Chuyển đổi trọng số sang định dạng đồ thị tính toán TensorFlow, sau đó thực hiện lượng tử hóa (Quantization) từ định dạng số thực dấu chấm động 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).
  5. Biên dịch và thực thi trên phần cứng nhúng: Sử dụng bộ biên dịch Vitis AI Compiler để tạo tệp mô hình trung gian (.xmodel) tương thích với cấu hình tập lệnh DPU, sau đó xây dựng luồng phần mềm xử lý đa luồng trên Kria KV260 để nhận dữ liệu từ Camera USB và xuất kết quả qua cổng HDMI.

Thiết kế và triển khai hệ thống

Kiến trúc phần cứng Kria KV260 và DPUCZDX8G

Hệ thống được xây dựng trên kit phát triển Kria KV260 Vision AI Starter Kit, bao gồm:

  • Kria K26 System on Module (SOM): Tích hợp vi xử lý AMD Zynq UltraScale+ MPSoC, bộ nhớ RAM DDR4, khối khởi động và các mạch bảo vệ.
  • Carrier Card: Cung cấp giao tiếp ngoại vi gồm cổng kết nối camera MIPI/USB, giao tiếp mạng 1GbE, khe cắm thẻ microSD, cổng gỡ lỗi UART/JTAG và các cổng xuất hình ảnh HDMI/DisplayPort.
  • Lõi IP DPU (DPUCZDX8G): Được cấu hình trên phần logic khả trình (PL), kết nối với hệ thống xử lý (Processing System - PS) qua các đường truyền dữ liệu băng thông cao (High-Speed Data Pipe).
+-----------------------------------------------------------------------+
|                HỆ THỐNG XỬ LÝ (PROCESSING SYSTEM - PS)                |
|  - APU (CPU): Điều khiển luồng, tiền/hậu xử lý, ngắt                  |
|  - Bộ điều khiển bộ nhớ (Memory Controller)                           |
|  - Bộ nhớ ngoài (External DDR RAM): Chứa ảnh gốc, trọng số, kết quả   |
|               LOGIC KHẢ TRÌNH (PROGRAMMABLE LOGIC - PL)               |
|                                                                       |
|  +-----------------------------------------------------------------+  |
|  |                     LÕI IP DPU (DPUCZDX8G)                      |  |
|  |                                                                 |  |
|  |  +--------------------------+     +--------------------------+  |  |
|  |  |  Instruction Fetch Unit  |     |   On-Chip Buffer Ctrler  |  |  |
|  |  |  (Lấy lệnh từ off-chip)  |     |   - Data Mover           |  |  |
|  |  | (Lập lịch & phát lệnh)   |     |    Global Memory Pool    |  |  |
|  |  |               HYBRID COMPUTING ARRAY                      |  |  |
|  |  |  - Processing Elements (PE): Bộ nhân ma trận, bộ cộng     |  |  |
|  |  |  - Conv Engine: Tối ưu chuyên biệt cho phép tính tích chập|  |  |
|  |  |  - Misc Engines: Xử lý các phép toán phụ trợ              |  |  |
|  |  +-----------------------------------------------------------+  |  |
|  +-----------------------------------------------------------------+  |
+-----------------------------------------------------------------------+

Kiến trúc mô hình YOLOv3-Tiny

Mô hình YOLOv3-Tiny là biến thể thu gọn từ kiến trúc Darknet-53 của YOLOv3, giúp tăng tốc độ xử lý lên xấp xỉ 442% so với bản gốc:

  • Kích thước đầu vào: $416 \times 416 \times 3$.
  • Cấu trúc mạng: Chuỗi các tầng tích chập kích thước $3 \times 3$ (với số bộ lọc tăng dần từ 16, 32, 64, 128, 256 đến 512) xen kẽ các tầng Max pooling kích thước $2 \times 2$ (stride = 2). Mạng sử dụng các tầng tích chập $1 \times 1$ để trích xuất đặc trưng và giảm số kênh, kết hợp tầng Upsampling và ghép nối tầng (Concat).
  • Đầu ra phát hiện (Output Tensors): Dự đoán trên 2 nhánh tỷ lệ khác nhau thay vì 3 nhánh như YOLOv3 tiêu chuẩn:
    • Nhánh 1: Đầu ra kích thước $13 \times 13 \times 147$.
    • Nhánh 2: Đầu ra kích thước $26 \times 26 \times 147$.
    • Chiều sâu 147 tương ứng với việc dự đoán 3 hộp bao (anchor boxes) tại mỗi ô lưới, mỗi hộp bao gồm 4 tham số tọa độ $(x, y, w, h)$, 1 giá trị tin cậy đối tượng (objectness score) và 40 xác suất phân loại lớp: $3 \times (5 + 40) = 147$.
Tầng / Khối Kích thước bộ lọc / Stride Kích thước đầu ra
Đầu vào (Input) - $416 \times 416 \times 3$
Conv 1 + Maxpool 1 $3 \times 3$ / 1, Maxpool $2 \times 2$ / 2 $208 \times 208 \times 16$
Conv 2 + Maxpool 2 $3 \times 3$ / 1, Maxpool $2 \times 2$ / 2 $104 \times 104 \times 32$
Conv 3 + Maxpool 3 $3 \times 3$ / 1, Maxpool $2 \times 2$ / 2 $52 \times 52 \times 64$
Conv 4 + Maxpool 4 $3 \times 3$ / 1, Maxpool $2 \times 2$ / 2 $26 \times 26 \times 128$
Conv 5 + Maxpool 5 $3 \times 3$ / 1, Maxpool $2 \times 2$ / 2 $13 \times 13 \times 256$
Conv 6 + Maxpool 6 $3 \times 3$ / 1, Maxpool $2 \times 2$ / 1 $13 \times 13 \times 512$
Conv 7 + Conv 8 $3 \times 3$ / 1, $1 \times 1$ / 1 $13 \times 13 \times 256$
Nhánh phát hiện 1 Conv $1 \times 1$ / 1 $13 \times 13 \times 147$
Nhánh trích xuất 2 Conv $1 \times 1$ / 1 + Upsample $2 \times 2$ $26 \times 26 \times 128$
Ghép nối (Concat) Nối đặc trưng Conv 5 và Upsample $26 \times 26 \times 384$
Conv 9 $3 \times 3$ / 1 $26 \times 26 \times 256$
Nhánh phát hiện 2 Conv $1 \times 1$ / 1 $26 \times 26 \times 147$

Quy trình tối ưu hóa và triển khai phần cứng

Quy trình triển khai mô hình học sâu từ phần mềm xuống phần cứng SoC-FPGA bao gồm các giai đoạn kế tiếp:

  1. Huấn luyện và xuất trọng số: Huấn luyện mô hình YOLOv3-Tiny trên tập dữ liệu 40 lớp bằng Darknet.
  2. Chuyển đổi đồ thị: Chuyển đổi định dạng mô hình từ Darknet (.weights/.cfg) sang đồ thị đông kết TensorFlow (.pb).
  3. Lượng tử hóa (Vitis AI Quantizer): Ánh xạ các trọng số và hàm kích hoạt từ định dạng số thực 32-bit (FP32) sang số nguyên 8-bit (INT8), áp dụng kỹ thuật cân bằng liên lớp (Cross-layer equalization) để hạn chế suy giảm độ chính xác mAP.
  4. Biên dịch đồ thị (Vitis AI Compiler): Chuyển đổi mạng nơ-ron đã lượng tử hóa thành tệp nhị phân chứa tập lệnh DPU (.xmodel) dựa trên biểu diễn trung gian XIR (Xilinx Intermediate Representation).
  5. Thực thi ứng dụng nhúng: Ứng dụng chạy trên CPU quản lý luồng nhận ảnh từ Camera USB (tiền xử lý chuẩn hóa kích thước $416 \times 416$), chuyển dữ liệu vào DPU để tính toán suy luận (inference), và nhận kết quả đầu ra để thực hiện Non-Maximum Suppression (NMS), vẽ bounding box, xuất tín hiệu thời gian thực qua màn hình HDMI.

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

Chương 1. Giới thiệu tổng quan đề tài

Chương này phân tích vai trò của hệ thống ADAS trong giao thông thông minh và sự cần thiết của hệ thống phát hiện, phân loại biển báo đường bộ. Tác giả tổng hợp các nghiên cứu trước đây, chia thành 2 hướng tiếp cận:

  • Hướng tiếp cận truyền thống (sử dụng trích xuất đặc trưng thủ công như HOG kết hợp bộ phân loại SVM hoặc DPM): Dễ bị ảnh hưởng bởi nhiễu môi trường, hiệu suất kém khi số lượng lớp đối tượng tăng.
  • Hướng tiếp cận học sâu (CNN, FCN, mô hình Two-stage như R-CNN/Faster R-CNN và One-stage như SSD/YOLO): Phân tích ưu thế vượt trội về tốc độ của kiến trúc YOLO và tiềm năng giải quyết bài toán tiêu thụ năng lượng khi tích hợp DPU trên phần cứng SoC-FPGA. Đồng thời, tác giả xác định rõ 4 mục tiêu kỹ thuật cần đạt được.

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

Chương này cung cấp toàn bộ nền tảng toán học và kiến trúc kỹ thuật của hệ thống:

  • Giới thiệu phần cứng kit Kria KV260 và kiến trúc Kria K26 SOM.
  • Lý thuyết mạng nơ-ron: Cấu trúc đa tầng (Input, Hidden, Output layer), cơ chế truyền thẳng và lan truyền ngược.
  • Mạng nơ-ron tích chập (CNN): Bản chất phép tính tích chập đa kênh, kỹ thuật padding, stride, các hàm kích hoạt (Sigmoid, ReLU, Leaky ReLU) và các tầng bổ trợ (Batch Normalization, Pooling, Dropout, Upsampling).
  • Thuật toán YOLO: Cơ chế chia lưới $S \times S$, dự đoán tọa độ hộp bao $(x, y, w, h)$, tính toán điểm tin cậy (confidence score) thông qua chỉ số IoU và xác suất lớp có điều kiện.
  • Kiến trúc phần cứng DPU (DPUCZDX8G): Phân tích chi tiết các khối chức năng gồm APU, Instruction Fetch Unit, High Performance Scheduler, Global Memory Pool, On-Chip BRAM và Hybrid Computing Array (Conv Engine, Misc Engines).

Chương 3. Phương pháp đề xuất

Chương này trình bày toàn bộ phương pháp xây dựng tập dữ liệu và quy trình triển khai kỹ thuật:

  • Thiết lập danh mục 40 loại biển báo giao thông đường bộ Việt Nam chia làm 4 nhóm: Biển báo cấm (nhóm P), Biển báo hiệu lệnh (nhóm R), Biển báo chỉ dẫn (nhóm R/bến xe buýt), Biển báo nguy hiểm (nhóm W).
  • Phương pháp thu thập dữ liệu thực tế tại TP. Hồ Chí Minh; giải quyết bài toán gán nhãn dữ liệu video quy mô lớn bằng cách kết hợp LabelImg và tính năng tracking object của nền tảng Supervisely.
  • Thiết kế mạng YOLOv3-Tiny với 2 đầu ra dự đoán tỷ lệ ($13 \times 13$ và $26 \times 26$).
  • Quy trình triển khai lên Kria KV260: Chuyển đổi mô hình Darknet sang TensorFlow, kỹ thuật lượng tử hóa INT8 bằng Vitis AI Quantizer, cân bằng liên lớp (Cross-layer equalization), biên dịch bằng Vitis AI Compiler và xây dựng luồng dữ liệu điều khiển qua cổng HDMI.

Chương 4. Kết quả

Chương này trình bày các số liệu thực nghiệm và đánh giá hiệu năng hệ thống:

  • Đánh giá tổng số lượng nhãn và hình ảnh thu thập được trong tập dữ liệu.
  • Đánh giá độ chính xác Average Precision (AP) của tất cả 40 lớp biển báo khi huấn luyện trên môi trường phần mềm (Google Colab).
  • Đo lường và so sánh độ chính xác AP của các lớp sau khi thực hiện lượng tử hóa sang INT8.
  • Kết quả kiểm thử thực tế trên kit Kria KV260 thông qua 2 kịch bản: Kiểm tra bằng tệp ảnh tĩnh lưu sẵn và kiểm tra thời gian thực với luồng video thu nhận trực tiếp từ camera.

Chương 5. Kết luận và hướng phát triển tiếp theo

Chương này tổng kết toàn bộ các mục tiêu kỹ thuật đã đạt được trong khóa luận, chỉ ra các hạn chế còn tồn tại về độ phân giải và tài nguyên tính toán, đồng thời vạch ra các định hướng mở rộng nghiên cứu trong tương lai.


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

Danh mục dữ liệu phân loại 40 biển báo giao thông Việt Nam

Khóa luận đã xây dựng thành công tập dữ liệu biển báo đường bộ Việt Nam được phân loại thành 4 nhóm chính với 40 mã định danh chuẩn:

Nhóm biển báo Đặc điểm nhận dạng theo quy chuẩn Các mã biển báo được hiện thực trong khóa luận
Biển báo cấm Hình tròn, viền đỏ, nền trắng, hình vẽ màu đen mô tả hành vi cấm P.102, P.103b, P.103c, P.106a, P.107a, P.117, P.123a, P.123b, P.124a, P.127, P.130, P.131a, P.137
Biển báo hiệu lệnh Hình tròn, nền xanh lam, hình vẽ màu trắng truyền đạt hiệu lệnh bắt buộc R.301d, R.301e, R.302a, R.302b, Nơi giao nhau chạy theo vòng xuyến
Biển báo chỉ dẫn Hình vuông / chữ nhật / mũi tên, nền xanh, hướng dẫn thông tin đường R.407a (Đường một chiều), R.434 (Bến xe buýt)
Biển báo nguy hiểm Hình tam giác, viền đỏ, nền vàng, hình vẽ màu đen mô tả mối nguy hiểm W.201a, W.201b, W.202a, W.202b, W.203b, W.205a, W.205d, W.207a, W.207b, W.207c, W.208, W.209, W.210, W.233, Biển nguy hiểm khác

Đóng góp kỹ thuật của đề tài

  1. Xây dựng quy trình xử lý dữ liệu video hiệu quả: Ứng dụng thành công kỹ thuật tracking object trên Supervisely để gán nhãn dữ liệu video giao thông thực tế tại Việt Nam, giải quyết hạn chế tốn thời gian của phương pháp gán nhãn thủ công từng khung hình.
  2. Triển khai thành công mô hình học sâu lên phần cứng SoC-FPGA: Thực hiện trọn vẹn chuỗi công cụ (toolchain) của Xilinx Vitis AI bao gồm chuyển đổi cấu trúc mô hình, lượng tử hóa INT8 kết hợp kỹ thuật Cross-layer equalization và biên dịch mã lệnh tối ưu cho lõi DPUCZDX8G.
  3. Hiện thực hóa hệ thống nhúng hoàn chỉnh: Xây dựng hệ thống phát hiện biển báo hoạt động trực tiếp trên Kria KV260 với đầu vào camera và đầu ra màn hình HDMI, cung cấp giải pháp xử lý thị giác máy tính tại biên có mức tiêu thụ điện năng tối ưu hơn so với các hệ thống sử dụng GPU truyền thống.

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

Hạn chế được ghi nhận

  • Việc sử dụng mô hình rút gọn YOLOv3-Tiny tuy tăng tốc độ xử lý lên ~442% nhưng có sự suy giảm độ chính xác nhận diện so với mô hình YOLOv3 gốc (sử dụng Darknet-53).
  • Khả năng phát hiện biển báo ở khoảng cách quá xa hoặc trong điều kiện môi trường có mức độ che khuất và biến dạng nặng vẫn là thách thức đối với cấu trúc 2 đầu ra ($13 \times 13$ và $26 \times 26$) của mô hình thu gọn.
  • Quá trình lượng tử hóa mô hình từ FP32 sang INT8 dẫn đến sự thay đổi nhỏ về độ chính xác (AP) ở một số lớp đối tượng.

Hướng phát triển tiếp theo

  • Mở rộng tập dữ liệu với số lượng mẫu lớn hơn, đa dạng hóa các điều kiện thời tiết phức tạp (mưa lớn, ban đêm, sương mù) và bổ sung thêm các lớp biển báo giao thông khác ngoài 40 lớp hiện tại.
  • Thử nghiệm và tối ưu hóa các phiên bản mạng nơ-ron tiên tiến hơn trên DPU để nâng cao độ chính xác nhận diện đối tượng nhỏ mà vẫn bảo đảm tốc độ khung hình thời gian thực.
  • Tích hợp thêm các thuật toán bám vết đối tượng (Object Tracking) trực tiếp trên kit nhúng để tối ưu độ ổn định của bounding box giữa các khung hình liên tiếp.

Giá trị tham khảo

Tài liệu khóa luận cung cấp giá trị tham khảo thực tiễn cho các nhóm đối tượng:

  • Sinh viên ngành Kỹ thuật Máy tính, Hệ thống Nhúng và IoT: Tham khảo quy trình thiết kế và triển khai mô hình trí tuệ nhân tạo biên (Edge AI) trên phần cứng SoC-FPGA của Xilinx/AMD.
  • Người nghiên cứu hệ thống ADAS và Thị giác máy tính: Tham khảo danh mục 40 lớp biển báo giao thông Việt Nam, phương pháp gán nhãn video thông qua tracking object và kinh nghiệm huấn luyện mạng YOLO trên tập dữ liệu đặc thù đường bộ Việt Nam.
  • Kỹ sư phát triển phần cứng - phần mềm: Tham khảo chi tiết về chuỗi công cụ Vitis AI (Vitis AI Quantizer, Cross-layer equalization, Vitis AI Compiler) và kiến trúc vi mô của lõi phần cứng DPUCZDX8G trên dòng vi xử lý Zynq UltraScale+ MPSoC.

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

1. Tại sao nhóm tác giả lựa chọn mô hình YOLOv3-Tiny thay vì YOLOv3 bản đầy đủ?

Mô hình YOLOv3 bản đầy đủ sử dụng mạng Darknet-53 có độ sâu lớn, đòi hỏi tài nguyên tính toán cao và gây độ trễ lớn khi chạy trên thiết bị nhúng. YOLOv3-Tiny giảm độ sâu của mạng, sử dụng các lớp pooling để giảm bớt tham số và chỉ dùng 2 đầu ra dự đoán ($13 \times 13$ và $26 \times 26$). Kiến trúc này giúp tốc độ xử lý tăng xấp xỉ 442% so với bản gốc, đáp ứng yêu cầu xử lý thời gian thực trên phần cứng biên Kria KV260.

2. Lõi IP DPU (Deep Learning Processor Unit) trong khóa luận đóng vai trò gì?

DPU (cụ thể là lõi DPUCZDX8G) là phần cứng chuyên dụng khả trình được triển khai trên phần Logic khả trình (PL) của chip Zynq UltraScale+ MPSoC. DPU được tối ưu hóa đặc biệt cho các phép toán tích chập và xử lý song song của mạng CNN, giúp tăng tốc độ suy luận mô hình với mức tiêu thụ năng lượng và nhiệt lượng thấp hơn nhiều so với bộ xử lý đồ họa GPU rời.

3. Phương pháp gán nhãn dữ liệu của nhóm tác giả có điểm gì cải tiến so với cách làm truyền thống?

Ban đầu, nhóm sử dụng công cụ LabelImg để gán nhãn thủ công từng khung hình ảnh, phương pháp này tốn nhiều thời gian và khó đáp ứng đủ số lượng dữ liệu lớn cho 40 lớp biển báo. Nhóm đã chuyển sang sử dụng ứng dụng Supervisely với tính năng tracking object có sẵn, cho phép tự động bám vết và gán nhãn đối tượng trên chuỗi video, giúp rút ngắn thời gian xây dựng tập dữ liệu.

4. Mục đích của quá trình lượng tử hóa (Quantization) mô hình trong Vitis AI là gì?

Quá trình lượng tử hóa thực hiện ánh xạ các trọng số và giá trị kích hoạt của mô hình từ dạng số thực dấu chấm động 32-bit (FP32) sang dạng số nguyên 8-bit (INT8). Việc này giúp giảm kích thước bộ nhớ lưu trữ mô hình, giảm băng thông truyền dữ liệu giữa bộ nhớ ngoài và bộ nhớ on-chip BRAM, đồng thời tận dụng tối đa hiệu năng của các phần tử xử lý số học (PE) trong DPU mà không làm suy giảm quá nhiều độ chính xác nhờ kỹ thuật Cross-layer equalization.

5. Hệ thống phần cứng hoàn chỉnh gồm những thành phần nào và luồng dữ liệu hoạt động ra sao?

Hệ thống gồm kit Kria KV260 (chứa SOM Kria K26), Camera USB Logitech và màn hình kết nối qua cổng HDMI. Luồng dữ liệu hoạt động: Hình ảnh từ Camera được CPU nhận và tiền xử lý (chuẩn hóa kích thước), sau đó chuyển qua DPU trên phần cứng PL để thực hiện tính toán suy luận nhận diện biển báo, kết quả dự đoán được CPU hậu xử lý (vẽ khung nhận diện, gán nhãn) và xuất trực tiếp lên màn hình qua cổng HDMI.


Kết luận

Khóa luận tốt nghiệp của tác giả Lê Dương và Võ Ngọc Thiện đã thiết kế và hiện thực thành công hệ thống phát hiện và nhận diện 40 loại biển báo giao thông đường bộ Việt Nam trên nền tảng SoC-FPGA Kria KV260. Bằng việc kết hợp kiến trúc mô hình tối ưu YOLOv3-Tiny với chuỗi công cụ lượng tử hóa và biên dịch Vitis AI của Xilinx, đề tài đã giải quyết 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 trên thiết bị nhúng biên. Hệ thống hoàn chỉnh đã thực thi luồng xử lý khép kín từ thu nhận hình ảnh camera đến xuất kết quả hiển thị qua cổng HDMI, tạo cơ sở kỹ thuật thực tiễn cho việc phát triển các ứng dụng hỗ trợ lái xe nâng cao ADAS tại Việt Nam.