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

Trong lĩnh vực thị giác máy tính (Computer Vision), phát hiện đối tượng (Object Detection) là bài toán nền tảng với nhiều ứng dụng thực tiễn như xe tự hành, hệ thống giám sát và robot thông minh. Để nâng cao độ chính xác, các mô hình mạng nơ-ron tích chập (Convolutional Neural Network - CNN) ngày càng phát triển phức tạp, kéo theo khối lượng tính toán ma trận khổng lồ. Việc triển khai các mô hình CNN lên các thiết bị nhúng đặt ra thách thức lớn về sự cân bằng giữa hiệu năng tính toán, độ trễ và mức tiêu thụ năng lượng.

Việc tăng tốc phần cứng cho mạng CNN trên vi mạch bán dẫn lập trình được (Field-Programmable Gate Array - FPGA) là hướng tiếp cận hiệu quả nhờ khả năng xử lý song song cao và cấu hình linh hoạt. Tuy nhiên, rào cản lớn nhất của phương pháp truyền thống là việc thiết kế phần cứng đòi hỏi lập trình bằng các ngôn ngữ mô tả phần cứng (Hardware Description Languages - HDL) như Verilog hoặc VHDL. Quy trình này phức tạp, tốn kém thời gian phát triển và khó khả thi đối với các cấu trúc mạng sâu quy mô lớn.

Để giải quyết hạn chế trên, đề tài khai thác công nghệ Intel® FPGA SDK for OpenCL™, cho phép tổng hợp phần cứng từ ngôn ngữ bậc cao C với framework OpenCL. Khóa luận tập trung thực hiện các nhiệm vụ nghiên cứu cụ thể:

  1. Xây dựng hệ điều hành tùy biến Linux nhúng hỗ trợ đầy đủ môi trường runtime OpenCL cho kit phát triển Terasic DE1-SoC.
  2. Tùy biến kiến trúc mạng phát hiện đối tượng (Custom Tiny-YOLO) dựa trên framework Darknet nhằm phù hợp với giới hạn tài nguyên phần cứng của board DE1-SoC.
  3. Thiết kế và tối ưu bộ tăng tốc phép nhân ma trận tổng quát (General Matrix Multiply - GEMM) trên FPGA bằng OpenCL kernel kết hợp định dạng số thực dấu chấm động nửa chính xác (FP16).
  4. Hiện thực, kiểm thử và đánh giá toàn diện hiệu năng nhận diện đối tượng trên hệ thống SoC-FPGA đối với dữ liệu hình ảnh và video thực tế.

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

  • Đối tượng nghiên cứu: Thuật toán phát hiện đối tượng họ YOLO (You Only Look Once), công nghệ tổng hợp phần cứng mức cao Intel FPGA SDK for OpenCL, và kiến trúc hệ thống trên vi mạch tích hợp SoC-FPGA.
  • Phạm vi phần cứng: Kit phát triển DE1-SoC tích hợp chip Intel Cyclone V SoC 5CSEMA5F31C6N (gồm lõi xử lý cứng ARM Cortex-A9 và phần cứng lập trình Cyclone V FPGA).
  • Phạm vi dữ liệu: Tập dữ liệu chuẩn COCO với 80 nhãn lớp đối tượng phổ biến, kích thước ảnh đầu vào được chuẩn hóa ở mức 224 x 160 điểm ảnh.

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

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

Khóa luận xây dựng trên các nền tảng lý thuyết và công nghệ:

  • Mạng nơ-ron tích chập (CNN): Cấu trúc gồm các tầng tích chập (Convolutional Layer), tầng tổng hợp (Pooling Layer - Max/Average Pooling), tầng kết nối đầy đủ (Fully Connected Layer) và các hàm kích hoạt phi tuyến (ReLU, Leaky ReLU).
  • Định dạng số thực dấu chấm động FP16 (IEEE 754-2008): Biểu diễn số 16-bit gồm 1 bit dấu (Sign), 5 bit mũ (Exponent) và 10 bit định trị (Significand/Fraction), hỗ trợ dải giá trị trong khoảng $\pm 65,504$ nhằm giảm băng thông bộ nhớ và tài nguyên logic tính toán so với chuẩn dấu chấm động đơn chính xác FP32.
  • Họ mô hình phát hiện đối tượng YOLO:
    • YOLOv1: Chuyển bài toán phát hiện đối tượng thành bài toán hồi quy (Regression), chia lưới $S \times S$ trên ảnh và dự đoán đồng thời tọa độ hộp bao (Bounding Box) cùng xác suất lớp.
    • Tiny-YOLO: Phiên bản rút gọn sử dụng 9 lớp tích chập giúp giảm dung lượng mô hình xuống dưới 50MB và tăng tốc độ xử lý.
    • YOLOv2 (YOLO9000): Các cải tiến về Anchor Boxes, chuẩn hóa theo lô (Batch Normalization), phân loại độ phân giải cao (High Resolution Classifier), trích xuất đặc trưng hạt mịn (Fine-Grained Features), và huấn luyện đa kích thước (Multi-Scale Training).
  • Kiến trúc SoC-FPGA và Board DE1-SoC: Cấu trúc kết hợp giữa hệ thống xử lý cứng (Hardware Processor System - HPS) với lõi kép ARM Cortex-A9 và vùng logic lập trình (FPGA Fabric) Cyclone V với 85K phần tử logic (Programmable Logic Elements), giao tiếp thông qua hệ thống cầu nối băng thông cao AXI.
  • Intel® FPGA SDK for OpenCL™: Môi trường phát triển cho phép trình biên dịch ngoại tuyến Altera Offline Compiler (AOC) biên dịch mã nguồn C OpenCL Kernel thành mạch phần cứng mức chuyển thanh ghi (Register-Transfer Level - RTL), nạp trực tiếp vào FPGA thông qua luồng tổng hợp của Quartus Prime.

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

  • Phương pháp đồng thiết kế phần cứng/phần mềm (Hardware/Software Co-design): Phân chia tác vụ tối ưu giữa phần mềm chạy trên vi xử lý ARM (quản lý luồng điều khiển, trích xuất dữ liệu, các lớp kích hoạt và tổng hợp) và phần cứng tăng tốc trên FPGA (thực thi tác vụ nhân ma trận tiêu tốn năng lực tính toán).
  • Phương pháp High-Level Synthesis (HLS): Thiết kế nhân tính toán GEMM bằng OpenCL C và áp dụng phép biến đổi ma trận im2row thay thế cho thuật toán im2col truyền thống để giảm chi phí biến đổi trung gian trong bộ nhớ.
  • Phương pháp thực nghiệm định lượng: Đánh giá mô hình dựa trên các chỉ số chuẩn trong thị giác máy tính gồm độ chính xác trung bình (Mean Average Precision - mAP), độ đo trùng khớp (Intersection over Union - IoU), độ bao phủ (Recall), và tốc độ khung hình xử lý (Frames Per Second - FPS).

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

Kiến trúc phân chia hệ thống SoC-FPGA

Hệ thống nhận diện đối tượng trên kit DE1-SoC được thiết kế theo mô hình kiến trúc phân tán hai phân vùng:

Phân vùng hệ thống Thành phần phần cứng Nhiệm vụ đảm nhiệm Môi trường / Công cụ thực thi
HPS Portion (Phần mềm) Dual-core ARM Cortex-A9 @ 800MHz, 1GB DDR3 RAM - Chạy hệ điều hành Linux tùy biến
- Điều khiển chương trình Host (Darknet framework)
- Tải ảnh/video đầu vào từ SD Card
- Điều phối OpenCL Buffer và bộ nhớ dùng chung
- Xử lý các lớp phi tích chập (Pooling, Leaky ReLU, Region)
Ubuntu 18.04 LTS (armhf), Linux Kernel 3.18, OpenCV 2.4, GCC ARM Compiler
FPGA Portion (Phần cứng) Cyclone V FPGA (85K LEs, 4.45Mb Embedded RAM) - Nhận luồng dữ liệu ma trận đầu vào và ma trận trọng số (Weights) từ RAM
- Tăng tốc phép tính nhân ma trận tổng quát GEMM (FP16)
- Ghi kết quả ma trận tích chập trở lại RAM thông qua OpenCL Buffer
OpenCL Kernel (.cl), Trình biên dịch Intel AOC, Quartus Prime Standard

Quy trình xây dựng Hệ điều hành tùy biến Linux

Để kích hoạt môi trường OpenCL trên bo mạch DE1-SoC, nhóm nghiên cứu đã xây dựng một bản phân phối Linux nhúng tùy biến lưu trữ trên thẻ nhớ SD với cấu trúc 3 phân vùng tiêu chuẩn:

Phân vùng Tên file hệ thống Định dạng & Dung lượng Chức năng chi tiết
Partition 1 zImage
socfpga_cyclone5_de1soc.dtb
opencl.rbf
uboot.img
uboot.scr
FAT32
(300 MB)
- Chứa nhân Linux nén (zImage phiên bản 3.18)
- Cây thiết bị phần cứng (Device Tree Blob)
- File nhị phân cấu hình phần cứng FPGA (opencl.rbf) tạo từ BSP Terasic
- Trình nạp khởi động U-Boot và tệp kịch bản U-Boot Script điều khiển nạp RBF vào FPGA
Partition 2 rootfs Ext4
(6000 MB)
- Hệ thống tệp gốc Ubuntu 18.04 LTS armhf xây dựng qua chroot/QEMU
- Tích hợp môi trường đồ họa LXDE, máy chủ điều khiển từ xa VNC
- Driver hỗ trợ OpenCL từ gói Intel FPGA RTE for OpenCL bản 18.1
- Thư viện thị giác máy tính OpenCV 2.4 và module USB Camera
Partition 3 preloader-mkpimage.bin Raw type 0xA2
(10 MB)
- Khởi tạo bộ điều khiển SDRAM, cấu hình chân xuất nhập I/O cho HPS
- Nạp mã thực thi U-Boot từ bộ nhớ ngoài vào bộ nhớ chính

Tùy biến kiến trúc mô hình Custom YOLO

Do mô hình Tiny-YOLOv2 gốc (9 lớp tích chập, kích thước đầu vào $416 \times 416$) vượt quá dung lượng logic và bộ nhớ khả dụng trên Cyclone V 5CSEMA5F31C6N, mô hình được tái cấu trúc thành phiên bản Custom Tiny-YOLO gồm 12 tầng (8 lớp tích chập Convolution, 3 lớp Max Pooling và 1 lớp Region) với kích thước đầu vào giảm xuống $224 \times 160 \times 3$:

Thứ tự Layer Loại Layer (Tên) Kích thước Kernel / Stride Kích thước dữ liệu đầu vào Kích thước dữ liệu đầu ra Hàm kích hoạt
0 Convolution (16 filters) $3 \times 3$ / Stride 1 $224 \times 160 \times 3$ $224 \times 160 \times 16$ Leaky ReLU
1 Max Pooling $2 \times 2$ / Stride 2 $224 \times 160 \times 16$ $112 \times 80 \times 16$ —
2 Convolution (32 filters) $3 \times 3$ / Stride 1 $112 \times 80 \times 16$ $112 \times 80 \times 32$ Leaky ReLU
3 Max Pooling $4 \times 4$ / Stride 4 $112 \times 80 \times 32$ $28 \times 20 \times 32$ —
4 Convolution (128 filters) $3 \times 3$ / Stride 1 $28 \times 20 \times 32$ $28 \times 20 \times 128$ Leaky ReLU
5 Max Pooling $4 \times 4$ / Stride 4 $28 \times 20 \times 128$ $7 \times 5 \times 128$ —
6 Convolution (512 filters) $3 \times 3$ / Stride 1 $7 \times 5 \times 128$ $7 \times 5 \times 512$ Leaky ReLU
7 Convolution (512 filters) $3 \times 3$ / Stride 1 $7 \times 5 \times 512$ $7 \times 5 \times 512$ Leaky ReLU
8 Convolution (256 filters) $1 \times 1$ / Stride 1 $7 \times 5 \times 512$ $7 \times 5 \times 256$ Leaky ReLU
9 Convolution (512 filters) $3 \times 3$ / Stride 1 $7 \times 5 \times 256$ $7 \times 5 \times 512$ Leaky ReLU
10 Convolution (425 filters) $1 \times 1$ / Stride 1 $7 \times 5 \times 512$ $7 \times 5 \times 425$ Linear
11 Region Layer — $7 \times 5 \times 425$ Ma trận tọa độ & xác suất 80 lớp Softmax / Sigmoid

(Ghi chú: 425 bộ lọc tại lớp tích chập số 10 tương ứng với 5 hộp neo đại diện cho mỗi ô lưới, mỗi hộp bao gồm 5 tham số tọa độ/độ tin cậy và xác suất của 80 lớp đối tượng: $5 \times (5 + 80) = 425$).


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

Chương 1: Tổng quan đề tài

Trình bày tính cấp thiết của việc tối ưu hóa tốc độ tính toán cho mạng nơ-ron tích chập trong các bài toán thị giác máy tính. Giới thiệu xu hướng ứng dụng FPGA làm phần cứng tăng tốc nhờ tính linh hoạt tái lập trình. Phân tích hạn chế của phương pháp thiết kế HDL cổ điển và đề xuất giải pháp ứng dụng công nghệ Intel® FPGA SDK for OpenCL™ để tổng hợp phần cứng từ ngôn ngữ C. Xác định rõ mục tiêu hiện thực mô hình YOLO tùy biến trên board DE1-SoC và phân định phạm vi giới hạn mô hình xuống 8 lớp tích chập nhằm thích ứng với tài nguyên phần cứng.

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

Cung cấp bức tranh toàn diện về các nền tảng lý thuyết:

  • Cấu trúc hệ thống tệp boot Linux trên thẻ nhớ SD cho vi xử lý SoC.
  • Nguyên lý biểu diễn số thực dấu chấm động theo chuẩn IEEE 754 và cấu trúc số bán chính xác FP16 (IEEE 754-2008).
  • Các khối chức năng cơ bản của mạng CNN: Convolution, Pooling, Fully Connected, cùng các hàm kích hoạt ReLU và Leaky ReLU.
  • Lịch sử phát triển và cấu trúc các thuật toán YOLOv1, Tiny-YOLO, YOLOv2 (cơ chế Anchor Boxes, phân loại độ phân giải cao, Batch Normalization, Reorg layer).
  • Kiến trúc phần cứng FPGA, các khối logic cấu hình được (Configurable Logic Block - CLB), sơ đồ cấu trúc của kit DE1-SoC (Cyclone V SoC 5CSEMA5F31C6N).
  • Quy trình biên dịch và lập trình FPGA thông qua Intel® FPGA SDK for OpenCL™ với trình biên dịch Altera Offline Compiler (AOC).

Chương 3: Xây dựng hệ điều hành tùy biến Linux cho board DE1-SoC

Chi tiết hóa toàn bộ các bước kỹ thuật để triển khai môi trường Linux hoàn chỉnh:

  • Hướng dẫn cấu hình và biên dịch tệp nhị phân FPGA .rbf từ gói Board Support Package (BSP) của Terasic bằng lệnh aoc.
  • Tạo tệp preloader-mkpimage.bin từ thư mục chuyển giao phần cứng hps_isw_handoff thông qua công cụ BSP Editor trong bộ Intel SoC EDS.
  • Biên dịch mã nguồn U-Boot sinh ra u-boot.img và xây dựng tập lệnh uboot.scr tự động hóa việc nạp cấu hình FPGA tại thời điểm khởi động.
  • Biên dịch nhân Linux zImage (nhánh linux-socfpga phiên bản 3.18) và tệp mô tả phần cứng socfpga_cyclone5_de1soc.dtb.
  • Xây dựng hệ thống tệp gốc Ubuntu 18.04 LTS (armhf) thông qua kỹ thuật chroot kết hợp trình giả lập QEMU User Mode, cài đặt thư viện OpenCV 2.4 và biên dịch driver OpenCL từ gói Intel FPGA Runtime Environment (RTE).
  • Đóng gói toàn bộ hệ thống vào tệp hình ảnh sdcard.img sẵn sàng nạp lên thẻ nhớ.

Chương 4: Thiết kế và hiện thực mô hình custom YOLO trên DE1-SoC sử dụng OpenCL

Trình bày chi tiết luồng xử lý dữ liệu và thiết kế kiến trúc:

  • Mô tả sơ đồ khối phân vùng chức năng giữa vi xử lý HPS và vi mạch FPGA.
  • Thiết kế luồng dữ liệu tuần tự: Đọc ảnh/video $\rightarrow$ Chuyển đổi ma trận số $\rightarrow$ Tải dữ liệu vào OpenCL Buffer $\rightarrow$ FPGA thực thi nhân ma trận GEMM bằng FP16 $\rightarrow$ Trả kết quả về RAM $\rightarrow$ HPS thực thi Pooling, Activation và Region layer.
  • Cấu hình chi tiết các thông số mạng Custom Tiny-YOLO 12 tầng trên nền framework Darknet.
  • Thiết kế OpenCL Kernel cho phép tính toán GEMM, áp dụng thuật toán im2row nhằm tối ưu hóa tổ chức dữ liệu bộ nhớ khi tính tích chập ma trận.

Chương 5: Kết quả và đánh giá

Trình bày kết quả huấn luyện mô hình và đo lường thực nghiệm:

  • Dữ liệu huấn luyện: Huấn luyện mô hình Custom YOLO trên tập dữ liệu COCO với 80 nhãn đối tượng.
  • Kết quả kiểm thử trên hình ảnh tĩnh và luồng video thời gian thực từ camera gắn ngoài.
  • Phân tích hiệu năng định lượng: Mô hình đạt độ chính xác trung bình mAP 13.54%, tốc độ xử lý đạt từ 3 đến 4 khung hình/giây (FPS) trên board DE1-SoC.
  • So sánh hiệu năng giữa CPU máy tính cá nhân và kit DE1-SoC, đánh giá mức độ sử dụng tài nguyên phần cứng của FPGA kernel.

Chương 6: Kết luận và hướng phát triển

Tổng kết toàn bộ các kết quả kỹ thuật đã đạt được của khóa luận. Đánh giá mức độ hoàn thành so với mục tiêu ban đầu và đề xuất các định hướng nghiên cứu tiếp theo nhằm nâng cao hiệu năng hệ thống.


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

Kết quả định lượng của hệ thống

Thông số / Tiêu chí đánh giá Giá trị thực nghiệm đạt được trên DE1-SoC
Độ chính xác trung bình (mAP) 13.54% (trên tập dữ liệu COCO gồm 80 nhãn đối tượng)
Tốc độ xử lý khung hình (FPS) 3 ~ 4 FPS (xử lý trực tiếp trên hệ thống SoC-FPGA)
Định dạng dữ liệu tính toán Chuẩn số thực dấu chấm động 16-bit FP16 (IEEE 754-2008)
Kiến trúc mô hình mạng Custom Tiny-YOLO gồm 12 layers (8 Convolution, 3 MaxPooling, 1 Region)
Kích thước đầu vào mô hình 224 x 160 x 3 pixels
Hệ điều hành nhúng Ubuntu 18.04 LTS armhf, Kernel Linux-SoCFPGA 3.18, Intel RTE OpenCL 18.1

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

  1. Phương pháp tiếp cận thiết kế phần cứng mới: Đề tài là một trong những công trình tiên phong trong nước ứng dụng công nghệ Intel® FPGA SDK for OpenCL™ để hiện thực mạng nơ-ron tích chập (CNN) trên FPGA, thay thế cho quy trình thiết kế phức tạp bằng HDL truyền thống.
  2. Quy trình triển khai Linux nhúng toàn diện: Xây dựng hoàn chỉnh tài liệu và quy trình từng bước tạo bản phân phối Linux nhúng (Ubuntu 18.04 + OpenCL driver + OpenCV) tương thích trực tiếp với kit phát triển DE1-SoC.
  3. Tối ưu hóa mô hình cho thiết bị giới hạn tài nguyên: Rút gọn thành công cấu trúc mạng Tiny-YOLO và ứng dụng thuật toán GEMM kết hợp chuẩn biểu diễn FP16 cùng phép biến đổi im2row, cho phép chạy hoàn chỉnh mạng phát hiện 80 lớp đối tượng trên dòng chip FPGA Cyclone V có tài nguyên hạn chế.

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

Hạn chế được ghi nhận trong văn bản

  • Tài nguyên phần cứng hạn chế: Dòng vi mạch Cyclone V 5CSEMA5F31C6N trên board DE1-SoC có dung lượng logic tương đối nhỏ (85K Logic Elements), buộc phải lược giảm bớt 1 lớp tích chập và hạ thấp độ phân giải đầu vào (từ $416 \times 416$ xuống $224 \times 160$).
  • Độ chính xác còn khiêm tốn: Độ chính xác trung bình mAP đạt 13.54%, thấp hơn đáng kể so với mô hình Tiny-YOLOv2 gốc (23.7% mAP) do sự cắt giảm số tầng và giảm độ phân giải dữ liệu.
  • Tốc độ xử lý: Tốc độ đạt 3 ~ 4 FPS trên board DE1-SoC chưa đạt mức thời gian thực cao cho các tác vụ đòi hỏi tốc độ khung hình lớn.

Hướng phát triển mở rộng

  • Nghiên cứu tối ưu hóa sâu hơn mã nguồn OpenCL Kernel (áp dụng kỹ thuật pipeline, unrolling vòng lặp, tận dụng bộ nhớ cục bộ Local Memory trên FPGA) để nâng cao tốc độ tính toán GEMM.
  • Triển khai mô hình trên các dòng vi mạch FPGA cao cấp hơn (như Intel Arria 10 hoặc Stratix 10) có tài nguyên khối xử lý số tín hiệu số (DSP blocks) và băng thông bộ nhớ lớn hơn, cho phép giữ nguyên cấu trúc mạng phức tạp và cải thiện mAP.

Giá trị tham khảo

Tài liệu khóa luận mang lại giá trị tham khảo chuyên môn cho:

  • Sinh viên và kỹ sư ngành Kỹ thuật Máy tính, Điện tử - Viễn thông và Hệ thống Nhúng: Cung cấp hướng dẫn toàn diện từ lý thuyết đến thực hành về quy trình thiết kế đồng phần cứng/phần mềm (Hardware/Software Co-design) trên nền tảng Intel SoC-FPGA.
  • Nhà nghiên cứu về Trí tuệ nhân tạo biên (Edge AI): Cung cấp tài liệu tham khảo thực tế về kỹ thuật chuyển đổi và tối ưu mô hình học sâu (sử dụng OpenCL, biểu diễn dữ liệu FP16, tối ưu hóa GEMM) trên các vi mạch bán dẫn khả lập trình.
  • Nội dung kỹ thuật đáng tham khảo: Toàn bộ Chương 3 (quy trình chi tiết từng bước xây dựng hệ điều hành Linux tùy biến tích hợp driver OpenCL cho DE1-SoC) và Chương 4 (kỹ thuật thiết kế bộ tăng tốc nhân ma trận GEMM bằng OpenCL kernel).

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

1. Tại sao nhóm tác giả lựa chọn Intel FPGA SDK for OpenCL thay vì ngôn ngữ Verilog/VHDL truyền thống?

Theo luận giải của nhóm tác giả, việc thiết kế mạng CNN bằng các ngôn ngữ mô tả phần cứng truyền thống (Verilog/VHDL) rất phức tạp, tốn kém thời gian phát triển và khó khả thi đối với các mạng có kiến trúc lớn. Intel FPGA SDK for OpenCL cung cấp công cụ tổng hợp phần cứng tự động từ ngôn ngữ bậc cao C (OpenCL framework), giúp rút ngắn đáng kể chu kỳ phát triển hệ thống mà vẫn tận dụng được năng lực tính toán song song của FPGA.

2. Mô hình Custom Tiny-YOLO trong khóa luận có những thay đổi cụ thể nào so với Tiny-YOLOv2 gốc?

Mô hình Custom Tiny-YOLO đã giảm bớt 1 lớp tích chập (từ 9 lớp xuống còn 8 lớp tích chập, tổng cộng mạng gồm 12 lớp) và giảm kích thước ảnh đầu vào từ $416 \times 416$ xuống $224 \times 160$ điểm ảnh nhằm đảm bảo mô hình có thể vừa vặn trong dung lượng tài nguyên logic (85K LEs) của chip Cyclone V trên board DE1-SoC.

3. Việc sử dụng định dạng số FP16 (IEEE 754-2008) mang lại lợi ích gì cho hệ thống?

Định dạng số bán chính xác FP16 (16-bit) giúp giảm một nửa kích thước lưu trữ bộ nhớ và băng thông truyền nhận so với định dạng dấu chấm động đơn chính xác FP32 (32-bit). Điều này giúp tối ưu hóa đáng kể tài nguyên logic tính toán của bộ nhân ma trận GEMM trên FPGA mà vẫn duy trì độ chính xác chấp nhận được cho bài toán nhận diện đối tượng.

4. Hệ điều hành Linux tùy biến trên board DE1-SoC gồm những thành phần phần mềm chính nào?

Hệ điều hành được xây dựng dựa trên bản phân phối Ubuntu 18.04 LTS armhf với nhân Linux phiên bản linux-socfpga 3.18. Hệ thống được tích hợp môi trường giao diện đồ họa LXDE, dịch vụ truy cập từ xa VNC, thư viện xử lý ảnh OpenCV 2.4, driver hỗ trợ USB Camera, và trình điều khiển OpenCL trích xuất từ gói Intel FPGA Runtime Environment (RTE) for OpenCL v18.1.


Kết luận

Khóa luận tốt nghiệp của sinh viên Trần Minh Tuấn và Dương Thanh Tùng đã xây dựng và hiện thực thành công hệ thống phát hiện đối tượng trên nền tảng vi mạch Terasic DE1-SoC sử dụng công nghệ Intel® FPGA SDK for OpenCL™. Đề tài đã hoàn thành việc thiết lập hệ điều hành Linux nhúng tùy biến hỗ trợ môi trường OpenCL, đồng thời tùy biến mô hình Custom Tiny-YOLO 12 tầng kết hợp tăng tốc phép nhân ma trận GEMM theo định dạng FP16 trên phân vùng FPGA. Kết quả thực nghiệm đạt độ chính xác mAP 13.54% với tốc độ xử lý 3~4 FPS trên tập dữ liệu COCO 80 lớp, cung cấp một tài liệu kỹ thuật hoàn chỉnh và mở ra hướng tiếp cận thiết kế phần cứng mức cao cho các nghiên cứu tiếp theo trong lĩnh vực thị giác máy tính nhúng.