Giới thiệu dự án

Hệ thống hỗ trợ tài xế nâng cao (Advanced Driver Assistance Systems - ADAS) và xe tự hành đang chứng kiến tốc độ phát triển vượt bậc với quy mô thị trường dự kiến đạt hàng trăm tỷ USD. Trong các thành phần cốt lõi của ADAS, nhận diện và phân loại làn đường đóng vai trò quyết định đến an toàn vận hành, giúp xe định vị chính xác vị trí trong làn, cảnh báo chệch làn và hỗ trợ chuyển làn tự động.

Vấn đề thực tiễn và thách thức kỹ thuật

Thực tế giao thông đường bộ đặt ra nhiều thách thức nghiêm trọng:

  • Điều kiện môi trường biến đổi phức tạp: Thiếu sáng ban đêm, chói nắng, bóng cây che khuất, vạch kẻ đường mờ hoặc bị mòn.
  • Các thuật toán xử lý ảnh truyền thống (như Hough Transform, AR-LHT) dễ gãy vỡ khi gặp nhiễu hoặc vạch đứt đoạn.
  • Các mô hình Deep Learning dựa trên phân đoạn ảnh (Semantic/Instance Segmentation như U-Net, LaneNet) tạo ra ma trận điểm ảnh dày đặc (dense pixel mask), đòi hỏi hậu xử lý hình học nặng nề và phức tạp.
  • Các mô hình học sâu hiện đại chủ yếu vận hành trên Graphics Processing Units (GPUs) có công suất tiêu thụ cao (100W–300W), không phù hợp với các hệ thống nhúng di động chạy nguồn pin trên phương tiện giao thông.
+-------------------------------------------------------------------------+
|                  VẤN ĐỀ CỦA CÁC GIẢI PHÁP TRUYỀN THỐNG                   |
+-------------------------------------------------------------------------+
| Thuật toán Cổ điển (Hough/AR-LHT)  --> Kém linh hoạt, dễ vỡ khi nhiễu    |
| Deep Learning Segmentation (U-Net)  --> Đầu ra 393 KB (Dư thừa, cần xử lý)|
| GPU Inference (NVIDIA GPUs)         --> Tiêu thụ điện năng lớn (100-300W)|
+-------------------------------------------------------------------------+
                                    |
                                    v
+-------------------------------------------------------------------------+
|                       GIẢI PHÁP ĐỀ XUẤT TRONG ĐỒ ÁN                     |
+-------------------------------------------------------------------------+
| 1. CNN Row-wise Formulation       --> Đầu ra 8.3 KB (Giảm 47.2 lần)     |
| 2. Lượng tử hóa 8-bit tĩnh (INT8)  --> Độ chính xác giữ nguyên 93.03%    |
| 3. Bộ gia tốc FPGA Virtex-7 VC707 --> 549 FPS @ 8.129 W (36.44 GOPS/W)   |
+-------------------------------------------------------------------------+

Mục tiêu của đề tài

  1. Thiết kế kiến trúc Convolutional Neural Network (CNN) tối ưu: Đề xuất quy tắc miêu tả làn đường dạng hàng (row-wise formulation) gọn nhẹ, giảm thiểu khối lượng tính toán và loại bỏ bớt các bước hậu xử lý phức tạp.
  2. Lượng tử hóa mô hình (Data Quantization): Ứng dụng kỹ thuật Static Quantization chuyển đổi trọng số (weights) và hàm kích hoạt (activations) sang số nguyên 8-bit (INT8) mà không làm suy giảm độ chính xác.
  3. Hiện thực bộ gia tốc phần cứng trên FPGA: Thiết kế kiến trúc phần cứng chuyên dụng trên bo mạch Xilinx Virtex-7 VC707 FPGA, khai thác tối đa khả năng tính toán song song của các khối DSP48E2 và bộ nhớ On-chip BRAM qua giao tiếp PCI Express (PCIe).

Phạm vi và giới hạn

  • Dữ liệu thực nghiệm: Tập dữ liệu chuẩn TuSimple Benchmark (3,626 ảnh huấn luyện, 2,782 ảnh kiểm thử).
  • Định dạng nhận diện: Cố định tối đa 4 làn đường đồng thời trên mỗi khung hình với độ phân giải đầu vào chuẩn hóa $256 \times 512 \times 3$.
  • Nền tảng phần cứng: Bo mạch đánh giá Xilinx Virtex-7 FPGA VC707 kết nối máy tính chủ qua chuẩn giao tiếp PCIe x8 Gen2.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Các phương pháp nhận diện làn đường hiện nay chia thành ba nhóm chính:

Phương pháp Đại diện tiêu biểu Ưu điểm Nhược điểm
Xử lý ảnh truyền thống Canny, Hough Transform, AR-LHT Tốc độ tính toán nhanh, không cần dữ liệu huấn luyện Độ chính xác kém trong điều kiện ánh sáng yếu, vạch mờ
Phân đoạn ngữ nghĩa / thực thể U-Net, ENet, LaneNet, SCNN Nhận diện biên dạng cong phức tạp tốt Kích thước đầu ra lớn, tốn tài nguyên hậu xử lý trích xuất vector
Miêu tả theo hàng (Row-wise Anchor) UFAST, CondLaneNet, PINet Trích xuất trực tiếp tọa độ hình học, độ trễ thấp Đa số thiết kế để chạy trên GPU hiệu năng cao, tiêu hao năng lượng

Ưu tiên yêu cầu theo mô hình MoSCoW

  • Must have: Tốc độ xử lý thực tế $\ge 150\text{ FPS}$, công suất tiêu thụ $\le 10\text{W}$, độ chính xác trên tập TuSimple $\ge 90%$.
  • Should have: Kiến trúc xử lý pipeline sâu trên FPGA không phụ thuộc bộ nhớ DRAM ngoài; tích hợp mạch nhân kép trên DSP48E2.
  • Could have: Mạch xấp xỉ hàm kích hoạt Sigmoid phi tuyến bậc 2 đạt sai số MSE $< 10^{-3}$.
  • Won't have: Tự động chuyển đổi kích thước động cho luồng video vượt quá $256 \times 512$ trực tiếp trên FPGA.

Thiết kế hệ thống

+-----------------------------------------------------------------------------+
|                           KIẾN TRÚC MÔ HÌNH CNN ĐỀ XUẤT                     |
+-----------------------------------------------------------------------------+
| Input Image: 3 x 256 x 512                                                  |
|   │                                                                         |
|   ├──> Encoder Stage 1 (3 khối Conv+BN+ReLU, Stride=2) ──> 16 x 128 x 256   |
|   ├──> Encoder Stage 2 (3 khối Conv+BN+ReLU, Stride=2) ──> 32 x 64 x 128    |
|   └──> Encoder Stage 3 (3 khối Conv+BN+ReLU, Stride=2) ──> 64 x 32 x 64     |
|                               │                                             |
|        ┌──────────────────────┴──────────────────────┐                      |
|        ▼                                             ▼                      |
|  Nhánh Classification                         Nhánh Vertical                |
|  (3x Conv+BN+ReLU + 1x Conv)                  (3x Conv+BN+ReLU + 1x Sigmoid)|
|        │                                             │                      |
|        ▼                                             ▼                      |
|  Row-wise Classification: 4 x 32 x 64         Vertical Range: 4 x 32 x 1    |
+-----------------------------------------------------------------------------+

1. Quy tắc miêu tả làn đường (Row-wise Formulation)

Thay vì xuất ra ảnh phân đoạn kích thước $3 \times 256 \times 512$ (tương đương 393,216 bytes), mô hình xuất ra 2 ma trận tinh gọn:

  • Row-wise classification matrix ($4 \times 32 \times 64$): Phân loại xác suất vị trí hoành độ trên 32 hàng cố định cho 4 làn.
  • Vertical range matrix ($4 \times 32 \times 1$): Xác định sự tồn tại của vạch kẻ đường trên 32 hàng tương ứng (giá trị kích hoạt $> 0.5$).
  • Tổng kích thước đầu ra chỉ còn 8,320 bytes, nén giảm hơn 47.2 lần so với ảnh đầu vào.

2. Kiến trúc phần cứng trên FPGA

Hệ thống phần cứng bao gồm các thành phần:

  • Line Buffer Pipeline: Sử dụng mạng thanh ghi dịch (Shift Registers) và Block RAM on-chip để tạo cửa sổ trượt (sliding window) kích thước $K \times K$ theo thời gian thực mà không cần đọc lại từ bộ nhớ ngoài.
  • Processing Element (PE): Chứa các mảng nhân tích lũy (Multiply-Accumulate - MACC) đa luồng, tích hợp cây cộng (Adder Tree).
  • Giao tiếp XDMA & AXI4: Giao tiếp PCIe Gen2 x8 kết nối bộ nhớ Host PC với IP Core CNN trên FPGA thông qua chuẩn bus AXI4-Stream và AXI4-Lite.
+----------------------------------------------------------------------------+
|                          SƠ ĐỒ KHỐI HỆ THỐNG PHẦN CỨNG                      |
+----------------------------------------------------------------------------+
|  +---------------------+           PCIe Bus           +-----------------+  |
|  |     Host System     | <==========================> |   Xilinx XDMA   |  |
|  |  (Linux Kernel/C++) |                              |     Bridge      |  |
|  +---------------------+                              +--------+--------+  |
|                                                                | AXI4      |
|                                                                v           |
|  +----------------------------------------------------------------------+  |
|  |                           CNN ACCELERATOR IP                         |  |
|  |                                                                      |  |
|  |  +---------------+    FIFO     +---------------+    FIFO             |  |
|  |  | Layer 1:      | ----------> | Layer 2:      | ----------> ...     |  |
|  |  | Line Buffer + |             | Line Buffer + |                     |  |
|  |  | PE + BRAM     |             | PE + BRAM     |                     |  |
|  |  +---------------+             +---------------+                     |  |
|  +----------------------------------------------------------------------+  |
+----------------------------------------------------------------------------+

Phương pháp nghiên cứu và công nghệ sử dụng

  • Môi trường huấn luyện AI: Python 3.8, PyTorch 1.10+cu113, CUDA 11.3, Adam Optimizer ($\text{lr} = 10^{-3}$, batch size = 16, 150 epochs).
  • Phát triển phần cứng (RTL): Xilinx Vivado Design Suite 2020.2, ngôn ngữ mô tả phần cứng Verilog HDL, chuẩn giao tiếp AXI4.
  • Phần mềm kiểm thử Host: C++ và Python tích hợp XDMA Linux Kernel Driver.

Implementation và kết quả

Quy trình phát triển và thuật toán cốt lõi

Thuật toán tính tích chập chuẩn (Standard Convolution)

Quy trình tích chập tuần tự 3D truyền thống đòi hỏi số chu kỳ tính toán lớn:

# Thuật toán 1: Tích chập tuần tự (Standard Convolution)
for r in range(H_out):
    for c in range(W_out):
        for fo in range(C_out):
            Y[fo][r][c] = bias[fo]
            for fi in range(C_in):
                for kr in range(H_k):
                    for kc in range(W_k):
                        Y[fo][r][c] += X[fi][r + kr][c + kc] * kernel[fo][fi][kr][kc]

Để tối ưu hóa phần cứng, đề tài phân rã và đề xuất 2 chiến lược Unrolling:

Chiến lược 1: Incha Convolution Unrolling (Song song hóa kênh đầu vào và Kernel)

Song song hóa toàn bộ vòng lặp kênh đầu vào $C_{in}$ và kích thước Kernel $K = H_k \times W_k$:

# Thuật toán 2: Incha Convolution
for r in range(H_out):
    for c in range(W_out):
        for fo in range(C_out):
            # Tính song song tích chập của toàn bộ C_in channels
            Y[fo][r][c] = sum(X[:][r:r+H_k, c:c+W_k] * kernel[fo][:][:][:]) + bias[fo]
  • Thông lượng: Thực hiện $C_{in} \times K$ phép nhân mỗi chu kỳ; cần $C_{out}$ chu kỳ để hoàn thành 1 pixel đầu ra.

Chiến lược 2: Outcha Convolution Unrolling (Song song hóa kênh đầu ra)

Song song hóa vòng lặp kênh đầu ra $C_{out}$, phù hợp cho các tầng mà số kênh đầu vào lớn hơn số kênh đầu ra ($C_{in} > C_{out}$):

# Thuật toán 3: Outcha Convolution
for r in range(H_out):
    for c in range(W_out):
        Y[:][r][c] = bias[:]
        for fi in range(C_in):
            for fo in range(C_out): # Unroll hoàn toàn vòng lặp C_out
                Y[fo][r][c] += sum(X[fi][r:r+H_k, c:c+W_k] * kernel[fo][fi][:])
  • Thông lượng: Thực hiện $C_{out} \times K$ phép nhân mỗi chu kỳ; cần $C_{in}$ chu kỳ để hoàn thành 1 pixel đầu ra.

Đóng gói 2 phép nhân 8-bit trên 1 khối DSP48E2

Tận dụng kiến trúc bộ nhân $27 \times 18$ bit của khối DSP48E2, hai phép nhân 8-bit $[a \times c]$ và $[b \times c]$ được gộp chung thành một phép nhân số học duy nhất:

$$\text{Result} = ((a \ll 18) + b) \times c = (a \times c \ll 18) + (b \times c)$$

Tín hiệu tích lớn 34-bit sau đó được giải mã:

  • 16-bit cao $\rightarrow a \times c$
  • 16-bit thấp $\rightarrow b \times c$

Kỹ thuật này nhân đôi thông lượng tính toán của tài nguyên DSP trên FPGA Virtex-7 VC707.

                    SƠ ĐỒ PHÉP NHÂN KÉP TRÊN DSP48E2
               
    Thừa số a (8-bit) ────[ Shift Left 18 ]───┐
                                              ├──(+)──> Cổng A: (a << 18) + b
    Thừa số b (8-bit) ──[ Sign-extended ]─────┘         (27-bit)
                                                              │
    Thừa số c (8-bit) ────────────────────────────────> Cổng B: c (18-bit)
                                                              │
                                                              v
                                                    [ Bộ nhân 27x18-bit ]
                                                              │
                                                              v
                                                     Tích chung (34-bit)
                                                              │
                     ┌────────────────────────────────────────┴──────────────────┐
                     ▼                                                           ▼
         16-bit cao: Tích [a x c]                                    16-bit thấp: Tích [b x c]

Xấp xỉ phần cứng hàm phi tuyến Sigmoid

Để loại bỏ phép tính số mũ phức tạp trong hàm kích hoạt Sigmoid, thuật toán Piecewise Second-order Approximation được áp dụng:

$$y = f(x) \approx \begin{cases} 0, & x < -4 \ 0.5 \times \left(1 + \frac{x}{4}\right)^2, & -4 \le x \le 0 \ 1 - 0.5 \times \left(1 - \frac{x}{4}\right)^2, & 0 < x \le 4 \ 1, & x > 4 \end{cases}$$

Độ lỗi toàn phương trung bình (Mean Squared Error - MSE) đạt được:

  • Sigmoid thực (FP32) so với Sigmoid ước lượng (FP32): $\text{MSE} = 1.369 \times 10^{-4}$
  • Sigmoid ước lượng (FP32) so với Mạch phần cứng (Fixed-point 16-bit INT): $\text{MSE} = 3.380 \times 10^{-6}$
+-------------------------------------------------------------------------+
|                  MẠCH ƯỚC LƯỢNG HÀM SIGMOID PHẦN CỨNG                   |
+-------------------------------------------------------------------------+
| i_data[15:0] ──> [ Lấy giá trị tuyệt đối |x| ] ──> x1                   |
|                     │                                                   |
|                     ├──> [ Bão hòa nếu |x| > 4.0 ] ──> x2               |
|                     │                                                   |
|                     ├──> [ Tính (1 - x2/4) ] ─────────> x3              |
|                     │                                                   |
|                     └──> [ Bình phương (x3)^2 >> 1 ] ──> x4             |
|                                                           │             |
| Sign Bit [15] ──?                                         v             |
|   ├─ Âm (x < 0)  ───────────────────────────────────> y = x4            |
|   └─ Dương (x >= 0) ────────────────────────────────> y = 1 - x4        |
+-------------------------------------------------------------------------+

Thử nghiệm và đánh giá hệ thống

1. Đánh giá lượng tử hóa mô hình AI (Quantization)

Kiểu dữ liệu Accuracy (Độ chính xác) False Positive (FP) False Negative (FN)
Float32 (Gốc) 93.03% 0.0543 0.0482
Int8 (Static Quantization) 93.03% 0.0543 0.0482

Quá trình chuyển đổi từ Float32 sang INT8 thông qua phương pháp Static Quantization bảo toàn nguyên vẹn 100% độ chính xác mô hình trên tập kiểm thử TuSimple.

2. Khảo sát cấu hình tài nguyên phần cứng trên FPGA

Nhóm tác giả đã tổng hợp và giả lập 6 cấu hình kiến trúc phần cứng khác nhau trên FPGA Virtex-7 VC707 ở tần số xung nhịp $200\text{ MHz}$:

Cấu hình Mô tả kiến trúc Tỉ lệ sử dụng LUT / FF Tỉ lệ DSP / BRAM Throughput đạt được
Config 1 Tất cả dùng Incha-single Rất thấp Thấp 91 FPS
Config 2 Tất cả dùng Incha-double Trung bình Trung bình 182 FPS
Config 3 Tất cả dùng Incha-quad Quá tải tài nguyên Quá tải 364 FPS
Config 4 Incha-quad 3 layer đầu + Incha-double Cao Cao 364 FPS
Config 5 Tối ưu Stride-2 các tầng Encoder Trung bình Cân bằng 364 FPS
Config 6 (Final) Config 5 kết hợp Outcha-single ở Output Tối ưu tài nguyên Cân bằng 549 FPS

Cấu hình Config 6 tận dụng hiện tượng trễ nhịp của các tầng Encoder có Stride = 2, cho phép các tầng sau hoạt động ở tốc độ xử lý thấp hơn một nửa mà không gây nghẽn cổ chai pipeline, giúp tiết kiệm triệt để tài nguyên DSP và logic gates.


Đổi mới và đóng góp

             SO SÁNH TỐC ĐỘ XỬ LÝ KHUNG HÌNH (FPS)
             
FPGA Virtex-7 (Đề tài) [==================================] 549 FPS
GPU NVIDIA Tesla T4    [======================] 348 FPS
FPGA ZCU102 RoadNet-RT [====================] 327.9 FPS
FPGA UltraScale ChipNet[=====] 79.2 FPS
                       +--------+--------+--------+--------+
                       0       150      300      450      600
  1. Hiệu năng vượt trội và tiết kiệm năng lượng: Bộ gia tốc trên FPGA Virtex-7 VC707 đạt tốc độ xử lý 549 FPS với mức tiêu thụ điện năng chỉ 8.129 W, tương ứng hiệu suất năng lượng đạt 36.44 GOPS/W.
  2. Kỹ thuật Dual 8-bit trên DSP48E2 tối ưu: Tăng gấp 2 lần mật độ tính toán trên mỗi slice DSP so với các thiết kế CNN FPGA truyền thống.
  3. Quy tắc miêu tả gọn nhẹ giảm tải băng thông: Cấu trúc Row-wise classification và Vertical range loại bỏ nhu cầu sử dụng bộ nhớ DRAM trung gian đắt đỏ, cho phép toàn bộ trọng số và Feature Maps nằm hoàn toàn trong bộ nhớ nội Block RAM (BRAM).

Bảng so sánh với các nghiên cứu tương quan

Tiêu chí ChipNet (2020) RoadNet-RT (2021) GPU Tesla T4 (PyTorch) Bộ gia tốc đề xuất (FPGA)
Nền tảng phần cứng Xilinx UltraScale Zynq UltraScale+ ZCU102 NVIDIA Tesla T4 (70W) Xilinx Virtex-7 VC707
Dạng đầu ra Segmentation Map Segmentation Map Row-wise Coordinates Row-wise Coordinates
Tốc độ xử lý 79.2 FPS 327.9 FPS (Dual batch) 348 FPS 549 FPS
Công suất tiêu thụ $\sim 15\text{ W}$ $\sim 11.2\text{ W}$ $70\text{ W}$ (TDP) 8.129 W
Hiệu suất năng lượng $5.28\text{ FPS/W}$ $29.27\text{ FPS/W}$ $4.97\text{ FPS/W}$ 67.53 FPS/W
Throughput tính toán Chưa công bố $176.4\text{ GOPS}$ N/A 296.26 GOPS

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng

  • Hệ thống nhúng ADAS trên ô tô thông minh: Lắp đặt trực tiếp trên các bộ điều khiển trung tâm (Electronic Control Unit - ECU) của xe hơi, xử lý hình ảnh thời gian thực từ camera trước với độ trễ cực thấp ($< 2\text{ ms}$).
  • Robot tự hành công nghiệp (AGV) & Drone: Hỗ trợ dẫn đường tự động trong nhà kho và khu công nghiệp với mức tiêu thụ pin tối thiểu.
+-----------------------------------------------------------------------------+
|                     MÔ HÌNH TRIỂN KHAI THỰC TẾ TRÊN XE                      |
+-----------------------------------------------------------------------------+
|  +-------------------+       Luồng ảnh RAW       +-----------------------+  |
|  |  Front RGB Camera | ────────────────────────> | Embedded Host / ECU   |  |
|  |   (60-120 FPS)    |   (MIPI-CSI / GMSL)       |  (NXP / ARM / x86)    |  |
|  +-------------------+                           +-----------+-----------+  |
|                                                              │              |
|                                          PCIe DMA Stream     │ INT8 Frame   |
|                                          (Non-blocking)      v              |
|                                                  +-----------------------+  |
|                                                  |   FPGA Acceleratator  |  |
|                                                  |    (Virtex-7 / Zynq)  |  |
|                                                  |                       |  |
|                                                  | 549 FPS @ 8.129W      |  |
|                                                  +-----------+-----------+  |
|                                                              │              |
|                                        Tọa độ làn (8.3 KB)   v              |
|  +-------------------+    CAN Bus / Ethernet     +-----------------------+  |
|  | Hệ thống lái / ECU|<───────────────────────── | Bộ điều khiển bám làn |  |
|  | (Cảnh báo lệch làn|  (Tín hiệu điều khiển xe) | (Lane Keeping System) |  |
|  +-------------------+                           +-----------------------+  |
+-----------------------------------------------------------------------------+

Chiến lược triển khai và tích hợp

  1. Yêu cầu phần cứng: Bo mạch FPGA có tối thiểu $200\text{k}$ LUTs, $400$ DSP slices, $15\text{ Mb}$ BRAM (như Virtex-7, Kintex-7, Zynq-7000 hoặc UltraScale+).
  2. Giao tiếp phần mềm: Driver XDMA chuẩn Linux Kernel kết hợp thư viện C++ Zero-copy memory mapping giúp giảm tối đa độ trễ trao đổi dữ liệu Host-FPGA.
  3. Hiệu quả kinh tế (ROI): Việc thay thế các cụm card đồ họa GPU đắt tiền tiêu hao nhiều điện năng bằng các chip FPGA/ASIC chuyên dụng giúp giảm hơn 60% chi phí phần cứnghạ hơn 85% chi phí năng lượng trong toàn bộ vòng đời xe.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Mô hình hiện tại cố định nhận diện tối đa 4 làn đường, chưa tối ưu cho các nút giao phức tạp có trên 6 làn hoặc bùng binh.
  • Chưa tích hợp khối tiền xử lý thay đổi kích thước ảnh (Image Resizing) trực tiếp trên phần cứng FPGA mà vẫn dựa vào CPU của Host.

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

  • Chuyển đổi thiết kế sang kiến trúc Hệ thống trên Chip (System-on-Chip - SoC) như Xilinx Zynq UltraScale+ MPSoC để tích hợp toàn bộ vi xử lý ARM, module Camera Interface và CNN Accelerator trên cùng một vi mạch duy nhất.
  • Tích hợp thêm các bài toán nhận diện biển báo và vật thể (Object Detection) vào cùng một luồng tính toán song song.

Đối tượng hưởng lợi

  • Sinh viên & Kỹ sư nhúng/FPGA: Cung cấp tài liệu tham khảo chi tiết về kỹ thuật thiết kế Pipeline Line-buffer, đóng gói 2 phép nhân trên DSP48E2 và tích hợp hệ thống qua PCIe XDMA.
  • Kỹ sư AI/Computer Vision: Nắm bắt phương pháp tối ưu mô hình bằng Row-wise classification và kỹ thuật Static Quantization INT8 không làm mất độ chính xác.
  • Doanh nghiệp phát triển xe tự hành & ADAS: Sở hữu giải pháp phần cứng gia tốc mạng nơ-ron chuyên dụng với thông lượng cao, chi phí năng lượng thấp và độ tin cậy thời gian thực.

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

1. Yêu cầu phần cứng tối thiểu để triển khai bộ gia tốc này là gì?

Hệ thống yêu cầu bo mạch FPGA dòng Xilinx 7-Series hoặc UltraScale có tối thiểu 200,000 Logic Cells, 500 DSP48E2 slices, 15 Mbits Block RAM và hỗ trợ khe cắm PCIe Gen2 x4 trở lên kết nối máy tính chủ chạy hệ điều hành Linux.

2. Vì sao lượng tử hóa INT8 trong đề tài không làm giảm độ chính xác?

Nhóm tác giả áp dụng phương pháp Static Quantization với tập dữ liệu hiệu chuẩn đại diện, tính toán chính xác hệ số tỷ lệ ($S$) và điểm không ($Z$). Cấu trúc mạng gọn nhẹ và miền giá trị của các tầng trích xuất đặc trưng có phân phối chuẩn đồng đều, giúp loại bỏ hiện tượng tràn số và suy giảm độ chính xác.

3. Bộ gia tốc này có thể mở rộng cho các bài toán AI khác không?

Có. Kiến trúc Line Buffer và PE đa luồng hoàn toàn có thể tái sử dụng cho các mạng nơ-ron tích chập khác như YOLO (phát hiện vật thể), MobileNet hoặc ResNet bằng cách cấu hình lại bảng trọng số trong BRAM và tham số điều khiển tầng.

4. Giao tiếp giữa FPGA và Host PC có gây nghẽn cổ chai băng thông không?

Không. Với chuẩn giao tiếp PCIe Gen2 x8, băng thông lý thuyết đạt tới $4.0\text{ GB/s}$. Dữ liệu ảnh đầu vào ($256 \times 512 \times 3 \approx 393\text{ KB}$) ở tốc độ 549 FPS chỉ tiêu tốn khoảng $215\text{ MB/s}$ băng thông truyền nhận, thấp hơn nhiều so với giới hạn của bus PCIe.

5. Chi phí sản xuất hàng loạt và thời gian hoàn vốn (ROI) ước tính như thế nào?

Khi chuyển đổi từ FPGA thử nghiệm sang dòng chip chuyên dụng ASIC hoặc FPGA thương mại chi phí thấp (như Artix-7 / Zynq-7020), chi phí mỗi module phần cứng chỉ còn dưới 100 USD, mang lại điểm hòa vốn và lợi nhuận nhanh chóng trong vòng 6–12 tháng triển khai cho các chuỗi sản xuất thiết bị phụ trợ ô tô.


Kết luận

Đề tài khóa luận "Nhận diện làn đường bằng phần cứng AI trên FPGA" đã giải quyết thành công bài toán cân bằng giữa độ chính xác, tốc độ xử lý thời gian thực và công suất tiêu thụ điện năng cho hệ thống ADAS. Bằng cách kết hợp đồng bộ giữa thuật toán biểu diễn làn đường dạng hàng (Row-wise formulation), kỹ thuật lượng tử hóa dữ liệu tĩnh 8-bit và kiến trúc phần cứng chuyên biệt tận dụng bộ nhân kép DSP48E2 trên FPGA Xilinx Virtex-7 VC707, hệ thống đạt hiệu năng kỷ lục 549 FPS với công suất tiêu thụ chỉ 8.129 W. Kết quả này khẳng định tiềm năng ứng dụng của phần cứng AI chuyên dụng trong việc nâng cao độ an toàn và hiệu quả cho các phương tiện tự hành tương lai.