Giới thiệu dự án

Sự bùng nổ của đô thị hóa và gia tăng phương tiện cá nhân tại các thành phố lớn trên thế giới cũng như tại Việt Nam đang tạo áp lực khổng lồ lên hạ tầng giao thông đô thị. Theo các nghiên cứu từ Cisco Smart+Connected City Parking và thống kê quốc tế, khoảng 30% tình trạng tắc nghẽn giao thông tại khu vực trung tâm bắt nguồn từ các phương tiện di chuyển lòng vòng tìm kiếm vị trí đỗ xe còn trống. Thời gian trung bình để tìm kiếm điểm đỗ xe có thể dao động từ 15 đến 20 phút, gây tiêu hao nhiên liệu, ô nhiễm khí thải và lãng phí thời gian xã hội.

[Camera Giám sát IP] 
        │ (RTSP Video Stream 1080p)
        ▼
┌─────────────────────────────────────────────────────────────┐
│  HỆ THỐNG EDGE AI TẬP TRUNG (Ultra96-V2 MPSoC)             │
│  ┌───────────────────────────────────────────────────────┐  │
│  │ Processing System (PS - Quad-core ARM Cortex-A53)     │  │
│  │  - Thu thập khung hình & Tiền xử lý / Cắt ROI (32x32) │  │
│  │  - Quản lý bộ đệm DMA & Điều phối PYNQ Framework      │  │
│  └──────────────────────────┬────────────────────────────┘  │
│                             │ AXI4-Stream Interface         │
│  ┌──────────────────────────▼────────────────────────────┐  │
│  │ Programmable Logic (PL - Xilinx FPGA Accelerator)     │  │
│  │  - Thermometer Encoder (Chuyển đổi 1-bit input)       │  │
│  │  - FracBNN Engine (Mạng nơ-ron nhị phân ResNet-20)    │  │
│  │  - Khối tính toán bitwise XNOR & Popcount song song   │  │
│  └──────────────────────────┬────────────────────────────┘  │
└─────────────────────────────┼───────────────────────────────┘
                              ▼ (Trạng thái Busy / Free)
┌─────────────────────────────────────────────────────────────┐
│  MÁY CHỦ QUẢN LÝ / CLOUD & ỨNG DỤNG NGƯỜI DÙNG              │
│  - RESTful API Server / MQTT Broker                         │
│  - Bảng điều khiển giám sát & Mobile App Smart Parking      │
└─────────────────────────────────────────────────────────────┘

Đồ án tốt nghiệp ngành Kỹ thuật Máy tính tại Trường Đại học Bách Khoa – ĐHQG TP.HCM của tác giả Nguyễn Vũ Thành Nguyễn (dưới sự hướng dẫn của PGS. TS Trần Ngọc Thịnh và KS. Huỳnh Phúc Nghi) tập trung giải quyết bài toán phát hiện trạng thái bãi đỗ xe theo thời gian thực (Real-Time Parking Occupancy Detection) bằng phương pháp thiết kế bộ tăng tốc phần cứng tùy biến trên nền tảng FPGA (Field-Programmable Gate Array).

Vấn đề thực tiễn và bài toán kỹ thuật

  1. Hạn chế của giải pháp IoT dựa trên cảm biến: Các hệ thống sử dụng cảm biến từ trường (magnetic) hoặc cảm biến siêu âm (ultrasonic) gắn trực tiếp tại từng ô đỗ xe (như hệ thống SENSIT) có chi phí thi công lắp đặt và bảo trì định kỳ rất cao, dễ bị hỏng hóc do tác động vật lý và thời tiết ngoài trời.
  2. Nghẽn băng thông và độ trễ của mô hình Cloud-centric: Việc truyền tải toàn bộ luồng video độ phân giải cao từ hàng chục camera an ninh về máy chủ đám mây (cloud server) để xử lý AI gây áp lực băng thông, rủi ro bảo mật thông tin cá nhân và chi phí vận hành máy chủ đắt đỏ.
  3. Thách thức năng lượng của thiết bị nhúng GPU: Khi triển khai các mô hình mạng nơ-ron tích chập tiêu chuẩn (Convolutional Neural Networks - CNN) như VGG hoặc YOLO trên các vi xử lý GPU biên (Edge GPU như NVIDIA Jetson Nano), mức tiêu thụ năng lượng thường dao động từ 5W – 10W, nhiệt lượng cao, khó triển khai tại các cụm camera dùng nguồn năng lượng mặt trời hoặc pin.

Mục tiêu dự án

  1. Nghiên cứu và tối ưu hóa kiến trúc mạng nơ-ron nhị phân (Binary Neural Network - BNN) dựa trên mô hình FracBNN kết hợp tập dữ liệu không gian đỗ xe CNRPark-EXT.
  2. Thiết kế và cài đặt bộ mã hóa nhiệt kế (Thermometer Encoder) để nhị phân hóa lớp đầu vào của ảnh từ RGB sang dạng nhị phân 1-bit mà không làm suy giảm trích xuất đặc trưng.
  3. Cài đặt và tổng hợp bộ tăng tốc phần cứng (Hardware Accelerator) sử dụng công cụ Vivado High-Level Synthesis (HLS) trên kit phát triển SoC nhúng đa xử lý Avnet Ultra96-V2 (Xilinx Zynq UltraScale+ MPSoC ZU3EG).
  4. Tích hợp mô hình vào môi trường thực thi PYNQ, đánh giá hiệu năng suy luận (inference latency), khung hình trên giây (FPS), mức tiêu thụ năng lượng (power consumption) và tài nguyên logic trên chip.

Phạm vi và giới hạn của đề tài

  • Phạm vi nghiên cứu: Mô hình tập trung phân loại trạng thái nhị phân (Occupied/Busy vs Vacant/Free) cho từng ô đỗ xe dựa trên ảnh cắt kích thước cố định $32 \times 32$ pixel từ tập dữ liệu CNRPark.
  • Giới hạn kỹ thuật: Hệ thống chưa tích hợp thuật toán tự động nhận diện tọa độ góc của ô đỗ xe khi camera thay đổi góc quay; vị trí các ô đỗ ban đầu được ánh xạ thông qua mặt nạ cấu hình (Region of Interest - ROI).

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

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

Phương pháp Ưu điểm Nhược điểm Độ chính xác Mức tiêu thụ công suất
Cảm biến vật lý (SENSIT, Ultrasonic) Độ trễ thấp, kết quả đo trực tiếp từng ô Chi phí phần cứng cao cho bãi xe lớn, bảo trì phức tạp 95% – 98% Rất thấp (< 0.5W/node), nhưng tổng hệ thống cao
Edge GPU (Jetson Nano + YOLOv3-tiny) Dễ lập trình với PyTorch/TensorFlow, nhận diện bounding box tốt Công suất cao (5W - 10W), độ trễ cao khi suy luận hàng loạt ô đỗ 88% – 92% Cao (~5.2W - 8.5W)
Edge FPGA BNN Accelerator (Ultra96-V2) Khả năng xử lý song song cực cao, phép tính bitwise thay thế phép nhân FP32 Quá trình phát triển RTL/HLS phức tạp 90% – 94% Cực thấp (~2.4W - 4.1W)

Yêu cầu người dùng và hệ thống được phân loại theo mô hình MoSCoW:

  • Must have (Bắt buộc): Khả năng phân loại trạng thái bãi đỗ với độ chính xác > 90%; độ trễ suy luận trên mỗi ô đỗ < 20 ms; vận hành độc lập hoàn toàn tại biên (edge-only).
  • Should have (Nên có): Công suất tiêu thụ của bộ xử lý < 5W; giao tiếp trực quan thông qua PYNQ overlay và Jupyter Notebook.
  • Could have (Có thể mở rộng): Tự động phát hiện biển số xe (License Plate Recognition) khi phương tiện di chuyển qua cổng.
  • Won't have (Chưa thực hiện): Tái huấn luyện mô hình học sâu trực tiếp ngay trên bộ nhớ Logic khả trình (PL) của FPGA.

Thiết kế hệ thống

Hệ thống được thiết kế theo kiến trúc đồng thiết kế phần cứng/phần mềm (Hardware/Software Co-design) trên vi cấu trúc không đồng nhất (Heterogeneous Computing System):

+-----------------------------------------------------------------------------------+
|                        Avnet Ultra96-V2 MPSoC (XCZU3EG)                           |
|                                                                                   |
|  +-------------------------------------+   AXI-Lite Control    +---------------+  |
|  |     Processing System (PS)          |---------------------->|  BNN Engine   |  |
|  |  - ARM Cortex-A53 (Quad-Core)       |                       |  Control Regs |  |
|  |  - Embedded Linux OS (PYNQ v2.6)    |   AXI4-Stream (DMA)   +---------------+  |
|  |  - Python Driver / PYNQ API Layer   |======================>|  Thermometer  |  |
|  +-------------------------------------+      Input Stream     |  Encoder IP   |  |
|                                                                +---------------+  |
|                                                                        |          |
|                                                                        v          |
|  +----------------------------------------------------------------------------+  |
|  |                    Programmable Logic (PL Fabric)                          |  |
|  |                                                                            |  |
|  |  +-------------------------+    +--------------------+    +-------------+  |  |
|  |  | Sparse Conv Engine      |--->| Sign Activation    |--->| Dual-Output |  |  |
|  |  | (XNOR-Popcount Clusters)|    | (Threshold Layers) |    | Argmax Unit |  |  |
|  |  +-------------------------+    +--------------------+    +-------------+  |  |
|  |               ^                           ^                                |  |
|  |               |                           |                                |  |
|  |      +-----------------+         +-----------------+                       |  |
|  |      | BRAM: Weights   |         | BRAM: Thresholds|                       |  |
|  |      +-----------------+         +-----------------+                       |  |
|  +----------------------------------------------------------------------------+  |
+-----------------------------------------------------------------------------------+

Ngăn xếp công nghệ (Technology Stack)

  • Thiết bị phần cứng: Avnet Ultra96-V2 trang bị chip Xilinx Zynq UltraScale+ MPSoC ZU3EG (70.560 Logic Cells / LUTs, 141.120 Flip-Flops, 214 khối Block RAM tổng dung lượng 7.6 MB, 360 DSP slices).
  • Phần mềm và Framework:
    • PyTorch v1.10: Xây dựng, lượng tử hóa và huấn luyện mạng nơ-ron FracBNN.
    • Xilinx Vivado Design Suite & Vivado HLS v2020.2: Thiết kế phần cứng mức C++, tổng hợp High-Level Synthesis sang Verilog/VHDL RTL, tổng hợp Bitstream.
    • PYNQ Framework v2.6: Nạp Bitstream overlay, điều khiển trực tiếp phần cứng bằng thư viện Python.
    • Tập dữ liệu: CNRPark-EXT (chứa hơn 150.000 ảnh ô đỗ xe chụp trong các điều kiện thời tiết nắng, mưa, nhiều mây và góc khuất).

Methodology

Phương pháp tiếp cận dựa trên quy trình Co-design lặp tuần tự:

  1. Giai đoạn 1 - Software Modeling: Huấn luyện mô hình chuẩn ResNet-20 trên tập dữ liệu CNRPark-EXT với độ chính xác số thực (FP32), sau đó áp dụng cơ chế lượng tử hóa BNN với hàm xấp xỉ đạo hàm Straight-Through Estimator (STE).
  2. Giai đoạn 2 - HLS IP Core Modeling: Tái cấu trúc phép nhân ma trận trọng số và lớp kích hoạt (activation) thành các toán tử bitwise XNOR và đếm bit 1 (popcount), sử dụng các chỉ thị pragma của Vivado HLS (#pragma HLS UNROLL, #pragma HLS PIPELINE, #pragma HLS ARRAY_PARTITION).
  3. Giai đoạn 3 - Hardware Implementation: Tổng hợp kiến trúc sang dạng IP block, kết nối với bộ xử lý ARM Processing System (PS) qua bus giao tiếp AXI4-Stream và bộ điều khiển DMA (Direct Memory Access).
  4. Giai đoạn 4 - On-board Testing & Evaluation: Đo kiểm tham số độ trễ, công suất và độ chính xác thực tế trên bo mạch Ultra96-V2.

Implementation và kết quả

Development process

1. Nguyên lý lượng tử hóa Binary Neural Network và hàm STE

Trong một mạng BNN chuẩn, trọng số thực $W \in \mathbb{R}$ và kích hoạt $A \in \mathbb{R}$ được lượng tử hóa thành các giá trị nhị phân ${-1, +1}$ thông qua hàm Sign:

$$q(x) = \text{Sign}(x) = \begin{cases} +1 & \text{nếu } x \ge 0 \ -1 & \text{nếu } x < 0 \end{cases}$$

Do đạo hàm của hàm $\text{Sign}(x)$ bằng 0 ở hầu hết mọi điểm, thuật toán lan truyền ngược (backpropagation) truyền thống không thể cập nhật gradient. Do đó, phương pháp xấp xỉ đạo hàm Straight-Through Estimator (STE) được ứng dụng:

$$\frac{\partial \text{Sign}(x)}{\partial x} = \begin{cases} 1 & \text{nếu } |x| \le 1 \ 0 & \text{nếu } |x| > 1 \end{cases}$$

import torch
import torch.nn as nn

class BinaryActivationSTE(torch.autograd.Function):
    @staticmethod
    def forward(ctx, input_tensor):
        ctx.save_for_backward(input_tensor)
        # Binarize output: +1 if >= 0 else -1
        return torch.where(input_tensor >= 0, torch.tensor(1.0), torch.tensor(-1.0))

    @staticmethod
    def backward(ctx, grad_output):
        input_tensor, = ctx.saved_tensors
        # STE: Pass gradient through if within [-1, 1] clip range
        grad_input = grad_output.clone()
        grad_input[input_tensor.abs() > 1.0] = 0.0
        return grad_input

2. Kiến trúc FracBNN và Thermometer Encoding

Đối với lớp tích chập đầu tiên nhận ảnh RGB, việc chuyển đổi trực tiếp điểm ảnh $0 - 255$ sang nhị phân 1-bit làm mất hầu hết thông tin không gian. Đề tài sử dụng phương pháp Thermometer Encoding để chia dải giá trị điểm ảnh thành $K$ mức ngưỡng nhị phân song song. Một pixel mức xám $V \in [0, 255]$ được biểu diễn bằng vector nhị phân độ dài $L$:

$$T_k(V) = \begin{cases} 1 & \text{nếu } V \ge \text{Threshold}_k \ 0 & \text{nếu } V < \text{Threshold}_k \end{cases}$$

Toàn bộ phép tích chập giữa vector kích hoạt nhị phân và ma trận trọng số nhị phân được chuyển đổi hoàn toàn thành phép toán logic XNOR và phép đếm bit 1 Popcount:

$$\mathbf{A} \cdot \mathbf{W} = 2 \times \text{popcount}(\mathbf{A}_b \oplus \overline{\mathbf{W}_b}) - N$$

(Trong đó $N$ là tổng số bit của vector, $\oplus$ là phép XNOR bitwise).

#include <ap_int.h>
#include <hls_stream.h>

// Core Binary Convolution Engine in Vivado HLS
void binary_conv_layer(
    ap_uint<64> input_feature[32][32],
    ap_uint<64> weights[64][3][3],
    ap_int<16>  output_feature[64][32][32]
) {
    #pragma HLS PIPELINE II=1
    #pragma HLS ARRAY_PARTITION variable=weights complete dim=2
    #pragma HLS ARRAY_PARTITION variable=weights complete dim=3

    for (int co = 0; co < 64; co++) {
        for (int r = 0; r < 32; r++) {
            for (int c = 0; c < 32; c++) {
                ap_int<16> accumulator = 0;
                for (int kr = 0; kr < 3; kr++) {
                    for (int kc = 0; kc < 3; kc++) {
                        int row_idx = r + kr - 1;
                        int col_idx = c + kc - 1;
                        
                        if (row_idx >= 0 && row_idx < 32 && col_idx >= 0 && col_idx < 32) {
                            // XNOR bitwise logic between 64-bit binary channels
                            ap_uint<64> xnor_res = ~(input_feature[row_idx][col_idx] ^ weights[co][kr][kc]);
                            // Built-in HW popcount: returns number of active bits
                            int popcnt = __builtin_popcountll(xnor_res);
                            accumulator += (2 * popcnt - 64);
                        }
                    }
                }
                output_feature[co][r][c] = accumulator;
            }
        }
    }
}

Testing và validation

Quá trình kiểm thử được thực hiện trên 2 phương diện: Kiểm thử tính đúng đắn của mô hình học sâu và Đo kiểm đặc tính vật lý phần cứng (Hardware In-Loop Benchmarking).

1. Sử dụng tài nguyên phần cứng trên Ultra96-V2 (ZU3EG)

Bộ tăng tốc FracBNN được tổng hợp thành công với việc sử dụng tối ưu các thành phần logic trên chip:

Thành phần tài nguyên Khả dụng (Available) Sử dụng (Used) Tỷ lệ sử dụng (%)
LUT (Look-Up Table) 70.560 48.230 68,35%
FF (Flip-Flop) 141.120 56.400 39,96%
BRAM (Block RAM - Blocks) 214 142 66,35%
DSP48 Slices 360 18 5,00%

Nhận xét: Việc sử dụng DSP chỉ chiếm 5.00% cho thấy toàn bộ phép nhân phức tạp đã được chuyển đổi thành công sang mạng lưới cổng logic LUT và thanh ghi FF, đúng với đặc tính của kiến trúc mạng BNN.

2. Độ trễ và Khung hình trên giây (FPS)

Hệ thống đo kiểm trực tiếp thời gian thực thi bằng cách đọc bộ đếm phần cứng ARM Performance Monitor Unit thông qua PYNQ driver.

[Tổng quan quy trình kiểm thử]
Input Image (32x32x3) -> Thermometer IP (0.82 ms) -> FracBNN Backbone (11.63 ms) -> Output Class (Free/Busy)
Total Hardware Latency: 12.455 ms  ===>  Throughput: ~80.28 FPS

Kết quả đạt được

Hệ thống cho thấy sự vượt trội toàn diện về hiệu suất năng lượng và tốc độ suy luận khi so sánh với các nền tảng khác:

Tiêu chí đánh giá Vien's Thesis (YOLOv3-tiny trên Jetson Nano) [17] CNV Baseline Model trên Ultra96-V2 [4] FracBNN + CNRPark trên Ultra96-V2 (Đề tài)
Độ chính xác (Accuracy) 89,40% 88,10% 92,65%
Độ trễ suy luận (Latency) 42,10 ms 16,00 ms 12,45 ms
Tốc độ xử lý (FPS) ~23,75 FPS ~62,50 FPS ~80,28 FPS
Công suất tiêu thụ (Power) 6,85 W 3,12 W 2,85 W
Hiệu suất năng lượng (FPS/W) 3,46 FPS/W 20,03 FPS/W 28,16 FPS/W

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

  1. Bộ tăng tốc FracBNN tối ưu cho bãi đỗ xe: Khác với các mô hình BNN truyền thống thường bị sụt giảm độ chính xác nghiêm trọng so với mô hình FP32, việc áp dụng kiến trúc phân số (Fractional BNN) cho phép duy trì độ chính xác 92,65% trên tập dữ liệu khó CNRPark-EXT.
  2. Khai phóng tiềm năng tính toán nhị phân trên Ultra96-V2 MPSoC: Giảm mức tiêu thụ điện năng xuống chỉ còn 2,85W, mang lại hiệu suất năng lượng đạt 28,16 FPS/W, gấp hơn 8,1 lần so với giải pháp sử dụng GPU nhúng NVIDIA Jetson Nano.
  3. Hiện thực hóa giải pháp Edge-AI khép kín: Loại bỏ hoàn toàn sự phụ thuộc vào máy chủ GPU trung tâm, dữ liệu ảnh từ camera an ninh được xử lý ngay tại node biên, đảm bảo tính riêng tư dữ liệu và loại bỏ độ trễ truyền dẫn mạng.

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

+------------------+       +-------------------+       +--------------------+
| CAMERA AN NINH   | RTSP  | NODE BIÊN FPGA    | JSON  | BACKEND & DATABASE |
| (Bãi đỗ ngoài    |------>| (Ultra96-V2       |------>| (Node.js +         |
| trời / Tòa nhà)  |       |  Accelerator)     | (MQTT)|  PostgreSQL)       |
+------------------+       +-------------------+       +--------------------+
                                                         |
                                                         v
                                               +--------------------+
                                               | ỨNG DỤNG NGƯỜI DÙNG|
                                               | (Web & Mobile App) |
                                               +--------------------+

Kịch bản vận hành thực tế

  • Triển khai tại các tòa nhà trung tâm thương mại và bãi đỗ xe thông minh: Một bo mạch Ultra96-V2 duy nhất với khả năng xử lý ~80 FPS có thể phân tích luân phiên trạng thái của hơn 400 ô đỗ xe trong chu kỳ quét 5 giây từ nhiều luồng camera an ninh IP.
  • Tích hợp nguồn năng lượng tái tạo: Do mức tiêu thụ công suất chỉ dưới 3W, node xử lý FPGA có thể dễ dàng vận hành liên tục bằng pin lưu trữ kết hợp tấm pin năng lượng mặt trời tại các bãi đỗ xe lộ thiên.

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

Hạn chế kỹ thuật

  • Kích thước ảnh đầu vào của mạng bị cố định ở mức $32 \times 32$ pixel; chất lượng nhận diện có thể suy giảm nếu góc quay camera bị che khuất quá 50% bởi các xe kích thước lớn (xe tải, xe bán tải).
  • Quá trình phân vùng ô đỗ xe (ROI extraction) ở giai đoạn đầu vẫn cần thao tác cấu hình tọa độ thủ công một lần khi lắp đặt camera.

Hướng phát triển trong tương lai

  • Tích hợp mô hình phát hiện đối tượng nhẹ (Lightweight Object Detection) trực tiếp lên phần cứng để tự động nhận dạng và định vị ô đỗ động.
  • Nâng cấp đường truyền dữ liệu AXI-Stream và áp dụng kỹ thuật nén mô hình hỗn hợp (Mixed Precision INT4/Binary) để nâng cao hơn nữa độ chính xác phân loại trong điều kiện thời tiết sương mù và ban đêm.

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

  • Sinh viên và Học viên Cao học: Tài liệu tham khảo toàn diện về phương pháp luận đồng thiết kế phần cứng/phần mềm (HW/SW Co-design), kỹ thuật HLS và tối ưu hóa mạng nơ-ron BNN trên FPGA.
  • Kỹ sư Hệ thống Nhúng & AI: Nắm bắt quy trình triển khai mạng học sâu từ PyTorch xuống Bitstream thực tế trên chip Xilinx Zynq UltraScale+ thông qua PYNQ framework.
  • Doanh nghiệp Vận hành Bãi xe & Đô thị Thông minh: Tiếp cận giải pháp phát hiện trạng thái đỗ xe chi phí thấp, tiết kiệm điện năng và dễ dàng tận dụng lại hệ thống camera an ninh sẵn có.
  • Nhà nghiên cứu Khoa học: Cung cấp các số liệu thực nghiệm đo kiểm tài nguyên và hiệu năng thực tế giữa kiến trúc FPGA và GPU ở biên.

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

1. Yêu cầu phần cứng và phần mềm tối thiểu để triển khai giải pháp này là gì?

  • Phần cứng: Kit phát triển Avnet Ultra96-V2 (hoặc các dòng board Xilinx Zynq UltraScale+ tương đương như ZCU104, ZCU102), thẻ nhớ microSD tối thiểu 16GB Class 10, nguồn cấp 12V/2A, và camera IP hỗ trợ chuẩn RTSP.
  • Phần mềm: Host PC chạy Ubuntu 18.04/20.04 LTS cài đặt bộ công cụ Xilinx Vivado/Vitis 2020.2 và PyTorch 1.10; môi trường bo mạch nạp sẵn PYNQ v2.6 image.

2. Giới hạn khả năng mở rộng (scalability) của hệ thống khi tăng số lượng ô đỗ xe?

Với tốc độ xử lý 80,28 FPS (tương đương 80 ô đỗ/giây), nếu chấp nhận thời gian cập nhật dữ liệu là 4 giây một lần (đủ chuẩn thời gian thực cho bãi đỗ), một bo mạch Ultra96-V2 có thể quản lý đồng thời lên đến 320 ô đỗ xe. Khi bãi đỗ xe mở rộng quy mô, chỉ cần bổ sung các node FPGA Ultra96-V2 cục bộ tại từng cụm camera và đẩy dữ liệu kết quả dạng chuỗi JSON nhẹ qua giao thức MQTT.

3. Làm thế nào để tích hợp bộ tăng tốc FPGA vào hệ thống quản lý bãi xe hiện có?

Board Ultra96-V2 giao tiếp với mạng nội bộ qua Wi-Fi hoặc cổng Ethernet mở rộng. Sau khi FPGA hoàn thành suy luận trạng thái ô đỗ, script Python chạy trên nhân ARM (PS) sẽ đóng gói trạng thái thành các gói tin RESTful API hoặc MQTT message gửi trực tiếp đến Database máy chủ trung tâm mà không cần thay đổi cấu trúc phần mềm quản lý hiện tại của bãi đỗ.

4. Chi phí đầu tư phần cứng và thời gian hoàn vốn (ROI) ước tính như thế nào?

Chi phí một board FPGA Ultra96-V2 dao động khoảng $250 - $300 USD. So với việc lắp đặt 100 cảm biến từ trường độc lập (khoảng $50 - $80 USD/cảm biến + chi phí thi công đục nền), giải pháp camera AI chạy FPGA giúp tiết kiệm từ 60% đến 75% chi phí đầu tư ban đầu cho bãi đỗ 100 xe, đồng thời thời gian thu hồi vốn ước tính chỉ trong vòng 6 - 9 tháng nhờ giảm thiểu tối đa chi phí bảo trì.

5. Sự khác biệt cốt lõi giữa BNN và CNN chuẩn 32-bit là gì?

Mạng CNN truyền thống (FP32) sử dụng các phép nhân - cộng dấu chấm động (Floating Point Multiplications) đòi hỏi khối DSP chuyên dụng và tiêu tốn nhiều bộ nhớ băng thông. Ngược lại, mạng BNN lượng tử hóa trọng số và kích hoạt về 1-bit ${-1, +1}$, thay thế toàn bộ phép nhân phức tạp bằng các cổng logic XNOR và mạch đếm bit Popcount, giúp giảm dung lượng mô hình hơn 30 lần và tăng tốc độ xử lý phần cứng lên gấp nhiều lần.


Kết luận

Đồ án tốt nghiệp "Thiết kế tăng tốc FPGA hiệu quả cho phát hiện tình trạng đỗ xe thời gian thực" của tác giả Nguyễn Vũ Thành Nguyễn đã nghiên cứu và hiện thực hóa thành công một giải pháp công nghệ biên (Edge AI) tiên tiến. Bằng cách kết hợp mô hình học sâu nhị phân FracBNN, bộ mã hóa nhiệt kế Thermometer Encoding và bộ tăng tốc tùy biến trên FPGA Xilinx Zynq UltraScale+, hệ thống đạt tốc độ xử lý vượt bậc 80,28 FPS với mức tiêu thụ năng lượng cực thấp 2,85W và độ chính xác phân loại 92,65%. Kết quả của đồ án mở ra tiềm năng ứng dụng thực tiễn to lớn trong việc số hóa và xây dựng hệ thống giao thông thông minh tại các đô thị hiện đại.