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

Trong quá trình phát triển kinh tế tại Việt Nam, số lượng phương tiện ô tô tham gia giao thông gia tăng nhanh chóng, kéo theo nhu cầu cấp thiết về việc mở rộng quy mô và nâng cao năng lực quản lý của các bãi đỗ xe. Thực tế này dẫn đến nhiều khó khăn cho cả người điều khiển phương tiện lẫn đơn vị quản lý, đặc biệt là việc xác định và tìm kiếm các vị trí đỗ xe còn trống. Hệ thống bãi đỗ xe thông minh (Smart Parking) được xem là giải pháp khả thi, tuy nhiên các triển khai hiện nay vẫn tồn tại nhiều điểm hạn chế cần tối ưu hóa:

  • Hạn chế của giải pháp IoT truyền thống: Việc gắn cảm biến chuyên dụng (như cảm biến từ, hồng ngoại, siêu âm) tại từng vị trí đỗ xe đòi hỏi chi phí lắp đặt rất cao, bảo trì phức tạp do tác động của môi trường thời tiết, đồng thời yêu cầu hệ thống máy chủ trung tâm công suất lớn để xử lý dữ liệu từ hàng loạt cảm biến.
  • Hạn chế của hệ thống xử lý tập trung: Việc truyền tải toàn bộ luồng video độ phân giải cao từ các camera an ninh về máy chủ trung tâm làm nghẽn băng thông mạng và gia tăng chi phí vận hành hạ tầng máy chủ.
  • Hạn chế từ các nghiên cứu tiền nhiệm: Giải pháp bãi đỗ xe thông minh từ nhóm nghiên cứu học kỳ HK192 và khóa luận của sinh viên Viên đã đạt được một số kết quả ban đầu nhưng mô hình nhận diện xử lý ảnh tại các thiết bị biên còn sơ khai, độ chính xác nhận diện xe chưa cao, việc xác định vị trí trống vẫn phải thực hiện thủ công (vẽ khung định sẵn) chứ chưa tự động hóa hoàn toàn, đồng thời chưa tích hợp module nhận dạng ký số biển số xe hoàn chỉnh.

Khóa luận tốt nghiệp của sinh viên Nguyễn Vũ Thành Nguyễn (ngành Kỹ thuật Máy tính, Trường Đại học Bách Khoa – ĐHQG TP.HCM) đặt ra hai bài toán nghiên cứu chính:

  1. Cải thiện độ chính xác và khả năng tự động hóa trong việc phát hiện xe và xác định các vị trí đỗ còn trống từ camera giám sát mà không cần sự can thiệp thủ công của con người.
  2. Hiện thực hóa mô hình học sâu trực tiếp trên thiết bị tính toán tại biên (Edge AI) với khả năng nhận diện thời gian thực (real-time), hoạt động độc lập không cần sự trợ giúp từ máy chủ xử lý trung tâm.

Nhiệm vụ nghiên cứu được giao cụ thể bao gồm:

  1. Nghiên cứu phương pháp Mạng nơ-ron nhị phân (Binary Neural Network - BNN) trong bài toán phân loại ảnh trên tập dữ liệu bãi đỗ xe CNRPark.
  2. Hiện thực hóa bộ mã hóa (encoder) cho ảnh đầu vào và xây dựng tập tham số trọng số (weights) tối ưu cho bài toán đỗ xe.
  3. Xây dựng và đánh giá bộ tăng tốc phần cứng chạy trên kit phát triển SoC Ultra96-V2 với tập dữ liệu ảnh 32x32 điểm ảnh đã được tiền mã hóa.

Phạm vi nghiên cứu tập trung vào việc thiết kế đồng thời phần cứng/phần mềm (HW/SW co-design) cho mô hình FracBNN kết hợp tập dữ liệu CNRPark trên nền tảng vi mạch Xilinx Zynq UltraScale+ MPSoC (Ultra96-V2), tiến hành trong giai đoạn từ ngày 19/09/2022 đến ngày 09/01/2023.


Cơ sở lý thuyết và phương pháp

Khóa luận xây dựng trên các nền tảng lý thuyết về thị giác máy tính, mạng nơ-ron nhân tạo và kỹ thuật tăng tốc phần cứng:

Khung lý thuyết và mô hình tính toán

  • Mạng nơ-ron tích chập (CNN): Sử dụng các tầng tích chập (convolutional layers) với các bộ lọc (filters) trượt qua ma trận ảnh 2D/3D để trích xuất đặc trưng không gian, kết hợp các tầng gộp (max pooling, average pooling) và các tầng liên kết đầy đủ (fully connected layers) để phân loại.
  • Mạng nơ-ron nhị phân (BNN): Lượng tử hóa trọng số ($W$) và tensor kích hoạt ($A$) từ dạng dấu phẩy động 32-bit (FP32) xuống mức 1-bit (${-1, +1}$). Phép nhân ma trận dấu phẩy động tiêu tốn tài nguyên được thay thế hoàn toàn bằng các phép toán logic XNOR và đếm bit (bitcount/popcount), giúp giảm thiểu đáng kể dung lượng bộ nhớ, băng thông truyền dữ liệu và năng lượng tiêu thụ.
  • Mô hình FracBNN: Kiến trúc BNN hiện đại kế thừa từ cấu trúc ResNet-20, tích hợp các khối cải tiến từ ReActNet, kỹ thuật tích chập nhị phân thưa (sparse binary convolution) và bộ mã hóa nhiệt kế (thermometer encoding) để lượng tử hóa ảnh đầu vào mà không làm sụt giảm nhiều độ chính xác.
  • Cơ chế xấp xỉ đạo hàm: Sử dụng hàm ước lượng Straight-Through Estimator (STE) trong quá trình lan truyền ngược (backpropagation) để vượt qua trở ngại đạo hàm bằng 0 của hàm dấu (sign function) trong quá trình huấn luyện mạng nhị phân.

Phương pháp nghiên cứu và quy trình kỹ thuật

Nghiên cứu áp dụng phương pháp thiết kế kỹ thuật thực nghiệm và đồng thiết kế phần cứng/phần mềm:

  • Huấn luyện phần mềm: Sử dụng framework PyTorch trên môi trường GPU để huấn luyện mô hình FracBNN trên tập dữ liệu ảnh bãi đỗ xe.
  • Tổng hợp phần cứng: Ứng dụng công cụ tổng hợp mức cao Vivado HLS (High-Level Synthesis) để chuyển đổi mã thuật toán C/C++ thành các khối IP phần cứng (RTL/VHDL/Verilog), sau đó sử dụng Vivado Design Suite để tổng hợp, đặt vị trí, định tuyến và tạo luồng bit (bitstream).
  • Triển khai hệ thống nhúng: Sử dụng framework PYNQ (Python Productivity for Zynq) để nạp overlay phần cứng lên phân hệ logic khả trình (PL) và điều khiển luồng dữ liệu từ phân hệ xử lý (PS).

Nguồn dữ liệu

Nghiên cứu sử dụng tập dữ liệu ảnh chuẩn CNRPark và CNRPark+EXT, bao gồm các ảnh chụp vị trí đỗ xe trong các điều kiện thời tiết, góc nhìn và ánh sáng khác nhau, được chuẩn hóa và cắt về kích thước 32x32 điểm ảnh RGB.


Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình điện toán biên không đồng nhất (heterogeneous computing), kết hợp linh hoạt giữa bộ xử lý đa lõi và logic khả trình.

[Camera giám sát] --> [Ảnh cắt 32x32 RGB] --> [Bộ mã hóa Thermometer] 
       --> [Bộ tăng tốc FracBNN trên PL (FPGA)] --> [Xác định trạng thái: Trống / Bận]

Kiến trúc phần cứng bộ tăng tốc

Hệ thống được triển khai trên kit phát triển Avnet Ultra96-V2 tích hợp chip Zynq UltraScale+ MPSoC (ZU3EG):

  • Phân hệ xử lý (Processing System - PS): Bao gồm vi xử lý Quad-core ARM Cortex-A53 và Dual-core ARM Cortex-R5, kết hợp 2GB RAM LPDDR4, chạy hệ điều hành Linux trên nền tảng PYNQ. PS chịu trách nhiệm nhận dữ liệu ảnh từ camera, điều phối nạp dữ liệu và giao tiếp với ứng dụng người dùng.
  • Phân hệ logic khả trình (Programmable Logic - PL): Cung cấp 70.560 bảng tra (LUTs), 214 khối bộ nhớ trong BRAM (tổng dung lượng ~7.6MB) và các khối xử lý số tín hiệu DSP slices. Bộ tăng tốc phần cứng FracBNN được tổng hợp trực tiếp trên PL để thực hiện song song các phép tính XNOR-popcount và tích chập nhị phân.

Quy trình lượng tử hóa và tiền xử lý

  1. Mã hóa đầu vào bằng Thermometer Encoder: Ảnh đầu vào 32x32x3 được chuyển đổi thành các vector nhị phân thông qua hàm mã hóa nhiệt kế, giúp tầng tích chập đầu tiên có thể tính toán hoàn toàn bằng các phép toán logic nhị phân.
  2. Tối ưu trọng số và độ lệch (Weights & Bias Processing): Các trọng số nhị phân được đóng gói thành các từ dữ liệu (packed words) phù hợp với độ rộng băng thông bus nội bộ của FPGA nhằm tối ưu hóa việc truy xuất từ BRAM.
  3. Tích hợp PYNQ Overlay: Tạo tệp bitstream và tệp mô tả phần cứng (.hwh), cho phép ứng dụng Python trên PS gọi trực tiếp bộ tăng tốc PL thông qua các hàm API của thư viện PYNQ.

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

Chương 1: Introduction (Giới thiệu)

Trình bày bối cảnh phát triển của trí tuệ nhân tạo, máy học và học sâu; sự chuyển dịch tính toán từ trung tâm dữ liệu đám mây về thiết bị biên (Edge AI) nhằm giảm tải đường truyền mạng. Phân tích thực trạng giao thông tại Việt Nam, sự cần thiết của hệ thống Smart Parking, các giới hạn của nghiên cứu trước đó tại trường Đại học Bách Khoa, xác định mục tiêu, phạm vi và cấu trúc của khóa luận.

Chương 2: Background knowledge and Terminology (Kiến thức nền tảng và thuật ngữ)

Cung cấp lý thuyết chi tiết về:

  • Mạng nơ-ron nhân tạo, hàm kích hoạt (Binary step, Sigmoid, Tanh, ReLU, Leaky ReLU), hàm mất mát Categorical Cross-Entropy, kỹ thuật lan truyền ngược và lượng tử hóa mô hình.
  • Mạng nơ-ron tích chập (CNN) và Mạng nơ-ron nhị phân (BNN).
  • Kiến trúc phần cứng FPGA, SoC (CLBs, LUTs, FFs, BRAM, DSP) của kit Ultra96-V2 so với nền tảng GPU nhúng (NVIDIA Jetson Nano).
  • Các công cụ và framework phát triển: PyTorch, Vivado, Vivado HLS, PYNQ và BNN-PYNQ.
  • Các tiêu chí đo lường hiệu năng: Precision, Recall, F1-score, IoU, mAP, độ trễ (latency), tốc độ khung hình (FPS) và công suất tiêu thụ điện (Power consumption).

Chương 3: Literature Review (Tổng quan nghiên cứu)

Đánh giá các giải pháp đỗ xe thông minh trên thế giới (Moscow Parking tại Nga, hệ thống cảm biến SENSIT, dự án SFpark tại Mỹ, Cisco Smart+Connected City Parking) và các giải pháp tại Việt Nam (MyParking của Viettel và Sở GTVT TP.HCM, IParking của FUTECH). Khảo sát các công trình học thuật ứng dụng xử lý ảnh, CNN (mAlexNet, mLeNet trên Raspberry Pi), SVM, thuật toán Canny, Tiny YOLO và LSTM. Phân tích chi tiết kết quả từ nhóm nghiên cứu tiền nhiệm (sử dụng mô hình CNV) và khóa luận của sinh viên Viên (triển khai YOLOv3 tiny trên Darknet/Ultra96-V2).

Chương 4: Proposed Solution & Hardware Accelerator Architecture (Đề xuất giải pháp và kiến trúc bộ tăng tốc)

Trình bày chi tiết kiến trúc giải pháp Smart Parking tại biên; cấu trúc mô hình FracBNN+CNRPark dựa trên nền tảng ResNet-20; phân tích sự khác biệt với kiến trúc ReActNet; cơ chế mã hóa ảnh Thermometer Encoding và thiết kế kiến trúc bộ tăng tốc phần cứng tối ưu hóa tính toán ma trận nhị phân trên logic khả trình của chip Zynq UltraScale+.

Chương 5: Implementation (Hiện thực hóa)

Mô tả quy trình huấn luyện mô hình FracBNN+CNRPark trên PyTorch bằng GPU; kỹ thuật xử lý và định dạng lại tập trọng số/độ lệch; quy trình thiết kế và tổng hợp IP bằng Vivado HLS; thiết kế hệ thống vi mạch trên Vivado; tạo bitstream và cấu hình môi trường PYNQ trên Ultra96-V2 để thực thi suy luận (inference) thời gian thực.

Chương 6: Results, Evaluation and Future Works (Kết quả, đánh giá và hướng phát triển)

Trình bày các kết quả thực nghiệm chi tiết về tài nguyên phần cứng sử dụng trên FPGA, độ trễ suy luận, công suất tiêu thụ; so sánh hiệu năng giữa bộ tăng tốc FPGA trên Ultra96-V2 với GPU trên Jetson Nano và mô hình YOLOv3 của khóa luận trước; tổng kết các mục tiêu đã hoàn thành, khó khăn gặp phải và đề xuất hướng nghiên cứu tiếp theo.


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

Kết quả thực nghiệm chính

Khóa luận đã hoàn thành việc huấn luyện mô hình FracBNN+CNRPark trên tập dữ liệu kích thước 32x32 và tổng hợp thành công bộ tăng tốc phần cứng trên kit Ultra96-V2.

Bảng so sánh hiệu năng suy luận và tiêu thụ năng lượng giữa các nền tảng dựa trên các dữ liệu thực nghiệm trong văn bản:

Nền tảng phần cứng Mô hình triển khai Độ trễ (Latency) Tốc độ (FPS) Công suất tiêu thụ trên chip (W) Điện năng trên mỗi ảnh (Power per Image)
Ultra96-V2 (FPGA SoC) CNV Model (1-bit / 2-bit) 12,455 ms ~80,3 FPS Mức tiêu thụ thấp Tối ưu hóa trên PL
NVIDIA Jetson Nano (GPU) VGG Model Cao hơn Ultra96-V2 Thấp hơn Cao hơn (đo qua tegrastats) Tiêu tốn nhiều năng lượng hơn
Ultra96-V2 (FPGA SoC) FracBNN+CNRPark (32x32) Đạt ngưỡng thời gian thực Xử lý trực tiếp tại biên Tối ưu nhờ logic XNOR Giảm thiểu đáng kể so với GPU
  • Sử dụng tài nguyên phần cứng: Bộ tăng tốc FracBNN tận dụng hiệu quả các khối LUTs và BRAM bên trong chip ZU3EG, không vượt quá giới hạn tài nguyên khả dụng (70.560 LUTs và 214 khối BRAM), cho phép hệ thống hoạt động ổn định ở tần số xung nhịp thiết kế.
  • Xử lý độc lập tại biên: Hệ thống giải quyết trọn vẹn bài toán suy luận phân loại trạng thái vị trí đỗ xe từ ảnh đầu vào 32x32 mà không cần kết nối máy chủ xử lý trung gian.

Đóng góp của khóa luận

  1. Hiện thực hóa thành công mô hình mạng nơ-ron nhị phân FracBNN tích hợp bộ mã hóa Thermometer Encoding chuyên biệt cho bài toán phát hiện vị trí đỗ xe trên tập dữ liệu CNRPark.
  2. Xây dựng hoàn chỉnh quy trình thiết kế phần cứng từ mã C/C++ mức cao (Vivado HLS) sang RTL và bitstream, nạp thành công overlay lên kit Ultra96-V2 thông qua PYNQ.
  3. Chứng minh tính ưu việt của giải pháp FPGA MPSoC so với GPU nhúng (Jetson Nano) về mặt hiệu quả năng lượng khi chạy các mô hình mạng nơ-ron lượng tử hóa sâu (1-bit).

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

Hạn chế

  • Mô hình hiện tại chỉ tiếp nhận và xử lý ảnh đầu vào có kích thước nhỏ (32x32 điểm ảnh) đã được cắt và tiền mã hóa, chưa hỗ trợ trực tiếp luồng video đầu vào độ phân giải lớn từ camera toàn cảnh.
  • Chưa hoàn thiện và tích hợp module nhận dạng ký số biển số xe (car-plate digit recognition) thành một luồng xử lý khép kín cùng với module nhận diện chỗ đỗ.
  • Dữ liệu thử nghiệm chủ yếu dựa trên tập dữ liệu mẫu CNRPark, chưa được kiểm chứng trên diện rộng với nhiều camera giám sát thực tế tại các bãi đỗ xe phức tạp ở Việt Nam.

Hướng nghiên cứu tiếp

  • Nâng cấp kiến trúc phần cứng để hỗ trợ xử lý trực tiếp các khung hình độ phân giải cao và tự động hóa khâu phát hiện, cắt vùng đỗ xe (bounding box detection).
  • Tích hợp mô hình nhận dạng biển số xe trực tiếp trên FPGA nhằm cung cấp giải pháp quản lý bãi đỗ xe thông minh toàn diện.
  • Tối ưu hóa hơn nữa thiết kế HLS để giảm chu kỳ xung nhịp tính toán và mở rộng khả năng kết nối mạng không dây truyền dữ liệu trạng thái lên ứng dụng di động/web server theo thời gian thực.

Giá trị tham khảo

Tài liệu khóa luận có giá trị tham khảo thiết thực cho:

  • Sinh viên và kỹ sư ngành Kỹ thuật Máy tính, Điện tử - Viễn thông: Tham khảo phương pháp đồng thiết kế phần cứng/phần mềm (HW/SW Co-design), kỹ thuật tổng hợp mức cao Vivado HLS và cách sử dụng framework PYNQ trên dòng vi điều khiển/MPSoC Zynq UltraScale+.
  • Nhà nghiên cứu về Trí tuệ nhân tạo biên (Edge AI): Cung cấp tài liệu thực chứng về phương pháp lượng tử hóa mạng nơ-ron nhị phân (BNN, FracBNN), cơ chế mã hóa Thermometer Encoding và cách thay thế phép nhân ma trận bằng logic bitwise XNOR trên vi mạch logic khả trình.
  • Nhóm phát triển hệ thống giao thông thông minh (ITS): Cung cấp giải pháp kỹ thuật khả thi để thay thế mạng lưới cảm biến đỗ xe đắt tiền bằng hệ thống xử lý thị giác máy tính tại biên tiết kiệm năng lượng.

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

1. Mục tiêu cốt lõi của khóa luận tốt nghiệp này là gì?
Khóa luận tập trung nghiên cứu, xây dựng và đánh giá bộ tăng tốc phần cứng trên nền tảng FPGA (kit Ultra96-V2 MPSoC) cho mô hình Mạng nơ-ron nhị phân (FracBNN) nhằm phân loại và phát hiện trạng thái bận/trống của vị trí đỗ xe theo thời gian thực từ tập dữ liệu CNRPark.

2. Tại sao tác giả lựa chọn mô hình Binary Neural Network (BNN) thay vì mô hình CNN thông thường?
Mô hình CNN thông thường sử dụng dữ liệu dấu phẩy động 32-bit (FP32), đòi hỏi năng lực tính toán và dung lượng bộ nhớ lớn. BNN lượng tử hóa trọng số và kích hoạt về 1-bit (${-1, +1}$), biến đổi các phép nhân ma trận phức tạp thành các phép toán logic XNOR và đếm bit đơn giản, giúp giảm mạnh tài nguyên phần cứng, tiết kiệm năng lượng và phù hợp tối đa với thiết bị biên như FPGA.

3. Phần cứng chính được sử dụng trong nghiên cứu bao gồm những gì?
Nghiên cứu sử dụng kit phát triển Avnet Ultra96-V2 chứa chip Xilinx Zynq UltraScale+ MPSoC (ZU3EG) gồm 4 lõi ARM Cortex-A53, 2 lõi ARM Cortex-R5, 2GB RAM LPDDR4 và phần logic khả trình PL (70.560 LUTs, 214 khối BRAM). Thiết bị đối chuẩn là máy tính nhúng NVIDIA Jetson Nano trang bị GPU Maxwell 128 lõi và 4GB RAM.

4. Bộ mã hóa Thermometer (Thermometer Encoder) có vai trò gì trong mô hình FracBNN?
Bộ mã hóa Thermometer có nhiệm vụ chuyển đổi các giá trị điểm ảnh đầu vào (ảnh 32x32 RGB) thành chuỗi nhị phân nhiều mức. Điều này cho phép tầng tích chập đầu tiên của mạng có thể tính toán hoàn toàn bằng các phép toán nhị phân mà không cần giữ lại tầng đầu vào ở dạng dấu phẩy động, giúp tối ưu hóa phần cứng và duy trì độ chính xác của mạng.

5. Khóa luận này kế thừa và cải tiến điểm gì so với các nghiên cứu trước đó tại trường?
So với nghiên cứu của nhóm HK192 (chỉ dùng mô hình BNN CNV có sẵn với bãi đỗ nhỏ) và đề tài của sinh viên Viên (dùng YOLOv3 tiny trên Darknet), khóa luận này tự xây dựng và huấn luyện mô hình FracBNN tùy biến trên PyTorch cho tập dữ liệu CNRPark, thiết kế bộ mã hóa nhiệt kế cho ảnh 32x32 và hiện thực hóa bộ tăng tốc HLS riêng biệt trên logic khả trình của chip UltraScale+, đạt mức tiêu thụ năng lượng tối ưu hơn.


Kết luận

Khóa luận tốt nghiệp của sinh viên Nguyễn Vũ Thành Nguyễn đã giải quyết thành công bài toán thiết kế bộ tăng tốc phần cứng cho mô hình mạng nơ-ron nhị phân FracBNN phục vụ phát hiện trạng thái bãi đỗ xe thời gian thực trên kit Xilinx Zynq UltraScale+ MPSoC Ultra96-V2. Bằng cách kết hợp mô hình học sâu 1-bit với phương pháp mã hóa Thermometer Encoding và tổng hợp mạch qua Vivado HLS/PYNQ, nghiên cứu đã chứng minh khả năng xử lý suy luận chính xác, độ trễ thấp và tiết kiệm năng lượng vượt trội tại biên so với các giải pháp GPU nhúng truyền thống. Đây là tài liệu kỹ thuật có giá trị tham khảo cao trong lĩnh vực thiết kế hệ thống nhúng thông minh, vi mạch FPGA và trí tuệ nhân tạo tại biên.