Bối cảnh và vấn đề nghiên cứu
Khóa luận tốt nghiệp kỹ sư ngành Kỹ thuật Máy tính với đề tài "Tối ưu streaming cho bộ tăng tốc AI tích hợp trên Ultra96-V2 cho Smart Camera" (tên tiếng Anh: Streaming Optimization for AI Acceleration on FPGA Ultra96-V2 for Smart Camera) được thực hiện bởi hai sinh viên Võ Phúc Vinh Khang (MSSV: 17520621) và Lê Hoài (MSSV: 18520770), dưới sự hướng dẫn của TS. Nguyễn Minh Sơn tại Trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP. Hồ Chí Minh (bảo vệ năm 2023 theo Quyết định số 75/QĐ-ĐHCNTT).
Lý do chọn đề tài và bối cảnh thực tiễn
Trong xu hướng phát triển của các hệ thống thông minh mô phỏng giác quan con người, kênh thông tin thị giác đóng vai trò trọng yếu để nhận dạng và tìm kiếm đối tượng. Khác với máy ảnh kỹ thuật số thông thường chỉ chụp và ghi hình, máy ảnh thông minh (smart camera) tích hợp các bộ xử lý (CPU, DSP, FPGA hoặc SoC) trực tiếp tại biên để tự động phân tích khung hình, nhận dạng và đưa ra quyết định mà không cần truyền toàn bộ dữ liệu thô về máy tính trung tâm.
Tuy nhiên, thách thức lớn nhất trong các hệ thống smart camera ứng dụng trí tuệ nhân tạo (AI) là khả năng thu nhận hình ảnh độ phân giải cao và truyền tải luồng video (video streaming) qua mạng không dây hoặc Internet tới các thiết bị hiển thị với độ trễ thấp và khung hình ổn định. Nghiên cứu tiền đề trước đó tại trường (luận văn năm 2021 của nhóm Bùi Nguyễn Phát, Lê Minh Huy) đã tích hợp thành công mô hình mạng nơ-ron tích chập YOLOv2 trên kit FPGA Ultra96-V2, đạt độ phân giải 1280x960 với độ chính xác từ 64% đến 96%, nhưng độ trễ truyền luồng ngang hàng (P2P streaming) còn lớn (khoảng 19 giây) và chưa tập trung xử lý bài toán tối ưu độ trễ luồng truyền qua môi trường Internet. Do đó, đề tài này được thực hiện nhằm tập trung tối ưu hóa tốc độ streaming, nâng cao tần số hoạt động của khối AI và cải thiện độ ổn định đường truyền cho smart camera.
Mục tiêu và nhiệm vụ nghiên cứu
Văn bản xác định 6 nhiệm vụ cụ thể:
- Kế thừa bộ tăng tốc AI CNN YOLOv2 từ đề tài nghiên cứu trước trên nền tảng Ultra96-V2 để phục vụ việc cải tiến tốc độ hệ thống.
- Tìm hiểu bo mạch phần cứng Ultra96-V2 (Avnet) phát triển trên nền tảng Zynq UltraScale+ MPSoC của Xilinx; sử dụng bộ công cụ Vivado 2019.2 (Vivado HLS, Vivado Design Suite, Vitis) để tổng hợp IP YOLOv2, nâng tần số hoạt động lên mức 300 MHz và kết nối ngoại vi (USB Camera, module Wi-Fi).
- Tìm hiểu quy trình và xây dựng hệ điều hành nhúng Linux bằng công cụ PetaLinux 2019.2 của Xilinx để nạp lên bo mạch điều khiển toàn bộ hệ thống.
- Nghiên cứu các phương pháp và giao thức truyền tải video streaming để cải thiện tốc độ và giảm độ trễ so với các hệ thống trước.
- Nghiên cứu và ứng dụng các công nghệ hỗ trợ xử lý đa phương tiện gồm FFmpeg, OpenCV, giao thức thời gian thực RTSP (Real-time Streaming Protocol) và kỹ thuật SSH Tunneling để truyền dữ liệu video qua Internet lên máy chủ đám mây (Cloud Server).
- Phát triển ứng dụng điều khiển bằng công cụ Vitis, nạp thực thi trên PetaLinux, tiến hành đo đạc thực nghiệm, kiểm tra tính ổn định, đánh giá nhiệt độ, đóng gói vỏ hộp và so sánh kết quả với các nghiên cứu tiền đề.
Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Kỹ thuật tối ưu hóa luồng truyền video streaming (có và không có xử lý thuật toán nhận dạng vật thể YOLOv2) trên hệ thống nhúng SoC/FPGA cho thiết bị smart camera.
- Phạm vi phần cứng: Bo mạch nhúng Ultra96-V2 trang bị chip Zynq UltraScale+ MPSoC ZU3EG, USB Camera, module Wi-Fi tích hợp và adapter chuyển đổi USB-to-Ethernet.
- Phạm vi phần mềm và môi trường thử nghiệm: Bộ công cụ Xilinx phiên bản 2019.2 (Vivado, Vivado HLS, PetaLinux, Vitis); hệ thống máy chủ Cloud Server cài đặt phần mềm quản lý camera giám sát ZoneMinder; thiết bị đầu cuối hiển thị qua trình duyệt Web hoặc trình phát đa phương tiện VLC Media Player; mạng truyền dẫn bao gồm Wi-Fi Access Point cục bộ và kết nối định tuyến qua Internet.
Cơ sở lý thuyết và phương pháp
Khóa luận thuộc dạng nghiên cứu thiết kế kỹ thuật và hiện thực hệ thống nhúng phần cứng - phần mềm kết hợp (HW/SW Co-design).
Cơ sở lý thuyết và mô hình công nghệ
Hệ thống được xây dựng dựa trên sự tích hợp của các nền tảng kỹ thuật sau:
- Kiến trúc phần cứng FPGA và System on Chip (SoC): Sử dụng vi kiến trúc Zynq UltraScale+ MPSoC, kết hợp giữa hệ thống xử lý (Processing System - PS) chứa các nhân vi xử lý ARM Cortex và vùng logic lập trình được (Programmable Logic - PL) chứa các khối logic cơ bản (CLB, LUT, Flip-Flop), khối nhớ phân tán/khối Block RAM, bộ nhân xử lý tín hiệu số DSP48E. Cơ chế truyền thông nội bộ sử dụng chuẩn bus AMBA AXI hiệu năng cao: AXI HPM FPD (High Performance Master Full Power Domain) cho tín hiệu điều khiển và S-AXI HP (Slave High Performance) cho việc truyền dữ liệu tốc độ cao giữa bộ nhớ DDR4 và lõi xử lý AI.
- Mô hình nhận dạng đối tượng YOLOv2 (YOLO9000): Tác giả phân tích các cải tiến cốt lõi của mạng tích chập YOLOv2 (Joseph Redmon & Ali Farhadi, 2017) gồm:
- Batch Normalization: Áp dụng sau tất cả các lớp tích chập, giúp tăng 2% mAP và loại bỏ lớp Dropout.
- High resolution classifier: Huấn luyện phân loại ở kích thước 224x224, sau đó tinh chỉnh ở độ phân giải 448x448 trước khi huấn luyện phát hiện, giúp tăng 4% mAP.
- Kiến trúc Anchor Box & K-means clustering: Loại bỏ lớp fully connected, dùng thuật toán K-means để tối ưu hóa tỷ lệ anchor box ban đầu, tăng chỉ số recall.
- Direct location prediction: Áp dụng hàm sigmoid ($\sigma$) giới hạn tọa độ offset bounding box quanh ô lưới (grid cell), tăng 5% mAP.
- Fine-grained feature & Lớp Reorg: Chuyển đổi feature map 26x26 thành 13x13 bằng cách trải phẳng theo chiều sâu (depth/channels) để ghép nối (concatenate) với feature map 13x13 cuối.
- Backbone Darknet-19: Gồm 19 lớp tích chập (Convolutional) và 5 lớp gộp cực đại (Maxpool), hỗ trợ xử lý đa tỷ lệ (Multi-scale training) ở kích thước đầu vào chuẩn 416x416.
- Cấu trúc WordTree: Kết hợp cây phân cấp định danh giữa tập dữ liệu ImageNet (1000 lớp) và COCO/PASCAL để mở rộng khả năng nhận dạng.
- Thư viện và giao thức đa phương tiện: Thư viện thị giác máy tính OpenCV (các module core, imgproc, video, videoio...); framework xử lý đa phương tiện FFmpeg (các tiện ích ffmpeg, ffserver, ffplay, ffprobe và các thư viện libavutil, libavcodec, libavformat, libavdevice, libswscale...); giao thức truyền tải thời gian thực RTSP; giao thức mạng mã hóa SSH Tunneling nhằm chuyển tiếp cổng (port forwarding) an toàn từ mạng nội bộ lên máy chủ đám mây; nền tảng quản lý theo dõi camera mã nguồn mở ZoneMinder.
Phương pháp nghiên cứu và nguồn dữ liệu
- Phương pháp thiết kế phần cứng: Thiết kế và tổng hợp lõi IP (IP Core) YOLO2_FPGA bằng công cụ Vivado HLS 2019.2 từ mô tả thuật toán C/C++; tích hợp hệ thống phần cứng SoC trong Vivado Design Suite 2019.2; phân tích thời gian đóng gói mạch (timing analysis), xử lý vi phạm thời gian xác lập (setup time slack) bằng cách thay đổi chiến lược tổng hợp (Synthesis Strategy) và chiến lược thực thi (Implementation Strategy).
- Phương pháp phát triển phần mềm nhúng: Cấu hình bo mạch, trình điều khiển thiết bị (drivers), phân vùng bộ nhớ dành riêng (reserved memory) và đóng gói bản phân phối Linux bằng PetaLinux; lập trình ứng dụng điều khiển luồng dữ liệu, thu nạp frame từ USB Camera qua V4L2, điều phối DMA chuyển ảnh vào bộ nhớ DDR4 và đồng bộ hóa với khối FPGA bằng công cụ Vitis 2019.2.
- Phương pháp thực nghiệm và đánh giá: Thiết lập các kịch bản thực nghiệm đo đạc định lượng trực tiếp trên hệ thống thực tế gồm:
- Đo đạc thời gian trễ từ camera đến màn hình hiển thị trên trình duyệt qua Cloud Server.
- Đo tốc độ khung hình (Frame Per Second - FPS) ở hai chế độ: camera truyền hình ảnh thông thường và camera truyền hình ảnh sau khi nhận dạng bằng AI YOLOv2.
- Đánh giá độ ổn định luồng truyền liên tục theo thời gian thực (đơn vị giây).
- So sánh hiệu năng giữa kết nối mạng không dây (Wi-Fi) và kết nối mạng có dây (Ethernet thông qua USB-to-Ethernet Adapter).
- Kiểm tra khả năng mở rộng truyền song song 2 camera trên cùng 1 bo mạch nhúng.
Thiết kế và triển khai
Hệ thống được thiết kế theo mô hình luồng dữ liệu khép kín từ khâu thu nhận, xử lý AI tại biên đến khâu phát luồng mạng:
1. Kiến trúc phần cứng SoC trên Vivado 2019.2
Kiến trúc SoC bao gồm các khối thành phần chính:
- Zynq UltraScale+ MPSoC (PS): Đóng vai trò máy chủ điều khiển, khởi tạo ứng dụng, nhận luồng video từ cổng USB thông qua khối IOU (USB 0 hoặc USB 1), cấp phát không gian bộ nhớ trong RAM DDR4.
- Khối xử lý IP YOLO2_FPGA (PL): Lõi phần cứng thực thi giải thuật tích chập được tổng hợp tại tần số định mức 300 MHz (chu kỳ xung nhịp 3,33 ns).
- Hệ thống kết nối liên mạng AXI:
- Khối AXI Interconnect kết nối bus điều khiển
M_AXI_HPM0_FPD từ nhân ARM tới cổng điều khiển s_axi_CTRL_BUS của IP YOLOv2.
- Khối AXI SmartConnect (smartconnect_0 và smartconnect_1) kết nối cổng dữ liệu băng thông cao
m_axi_DATA_BUS và m_axi_DATA_BUS1 của IP YOLOv2 tới các cổng slave S_AXI_HP0_FPD và S_AXI_HP1_FPD của vi xử lý để truy cập trực tiếp dữ liệu hình ảnh trong bộ nhớ DDR4.
- Các khối hỗ trợ: Processor System Reset quản lý tín hiệu reset đồng bộ cho hệ thống; Clocking Wizard (
clk_wiz_0) tạo lưới xung nhịp ổn định cho vùng PL.
2. Tối ưu hóa thời gian (Timing Closure) cho khối phần cứng 300 MHz
Khi tổng hợp IP YOLOv2 ở tần số cao 300 MHz, việc áp dụng cấu hình mặc định (Default Strategy) của Vivado 2019.2 đã dẫn tới lỗi vi phạm thời gian xác lập nghiêm trọng:
- Thông số đo lường ban đầu: Độ trễ âm lớn nhất (Worst Negative Slack - WNS) đạt giá trị âm là -0.034 ns, tổng độ trễ âm (Total Negative Slack - TNS) là -0.113 ns, với 8 điểm cuối bị lỗi (Failing Endpoints) trên tổng số 143.299 điểm cuối logic. Mạch không đủ điều kiện hoạt động ổn định trên bo mạch Ultra96-V2.
- Giải pháp xử lý của nhóm nghiên cứu: Thay đổi cấu hình chiến lược trong Vivado:
- Quá trình tổng hợp (Synthesis): Chuyển sang chiến lược
Flow_PerfThresholdCarry, kích hoạt chỉ thị FewerCarryChains để giảm tải các chuỗi cộng dồn logic phức tạp; kích hoạt keep_equivalent_registers nhằm duy trì các thanh ghi tương đương; tắt cơ chế chia sẻ tài nguyên resource_sharing = off; kích hoạt cờ -no_lc (ngăn cản LUT combining không cần thiết).
- Quá trình thực thi (Implementation): Điều chỉnh cấu hình định tuyến và tối ưu hóa vị trí đặt linh kiện (Place & Route optimization) nhằm loại bỏ hoàn toàn WNS âm, đáp ứng thời gian thực để xuất file cấu hình phần cứng (bitstream).
3. Ước lượng tài nguyên phần cứng sau tổng hợp
Dữ liệu tổng hợp IP YOLO2_FPGA trên chip Zynq UltraScale+ (bảng tài nguyên trong văn bản):
| Loại tài nguyên phần cứng |
Tài nguyên tiêu thụ bởi IP |
Tổng tài nguyên khả dụng trên chip |
Tỷ lệ sử dụng (%) |
| BRAM 18K |
265 |
432 |
61% |
| DSP48E |
144 |
360 |
40% |
| Flip-Flop (FF) |
35.530 |
141.120 |
25% |
| LUT |
54.816 |
70.560 |
77% |
Ghi chú: Bảng thống kê chi tiết các thành phần cho thấy khối Instance chiếm 24 BRAM, 142 DSP48E, 33.483 FF và 46.074 LUT; khối Memory chiếm 241 BRAM; khối Multiplexer chiếm 8.063 LUT; thanh ghi bổ sung chiếm 2.047 FF.
4. Triển khai phần mềm và luồng truyền dữ liệu (Streaming Pipeline)
- Hệ điều hành PetaLinux: Được xây dựng với cấu hình phần cứng xuất từ Vivado, kích hoạt các mô-đun hạt nhân cần thiết như USB Gadget Support, Debug Tweaks, cấu hình vùng nhớ dành riêng (Reserved Memory) để chia sẻ bộ nhớ đệm khung hình giữa nhân hệ điều hành và lõi FPGA. Bản phân phối được tích hợp sẵn các thư viện OpenCV, FFmpeg.
- Quy trình xử lý ảnh:
- USB Camera chụp khung hình đưa vào bộ nhớ DDR4 thông qua phần mềm lõi ARM (
Core SW).
Core SW phát tín hiệu điều khiển kích hoạt IP YOLOv2 trên vùng PL qua bus AXI HPM FPD.
- IP YOLOv2 đọc trực tiếp frame từ DDR4 qua kênh DMA của bus S-AXI HP, thực hiện nhận diện vật thể/người và ghi đè kết quả đóng khung bounding box trở lại DDR4.
- Sau khi nhận tín hiệu ngắt báo hoàn thành (
DONE), Core SW dừng việc truy cập của PL và đưa luồng ảnh đã xử lý tới module streaming.
- Kỹ thuật phát luồng và giám sát:
- Sử dụng tiện ích FFmpeg để mã hóa luồng dữ liệu video và đẩy qua giao thức RTSP.
- Sử dụng cơ chế SSH Tunneling để tạo đường hầm truyền tải an toàn, chuyển tiếp các cổng mạng vượt qua tường lửa nội bộ tới Cloud Server.
- Trên Cloud Server, hệ thống tích hợp phần mềm giám sát ZoneMinder (được nhóm nghiên cứu Việt hóa giao diện) và máy chủ Web Server riêng để phân phối luồng phát cho người dùng qua trình duyệt hoặc phần mềm VLC Media Player.
- Đóng gói cơ khí và giải pháp tản nhiệt: Nhóm thiết kế và chế tạo lại vỏ hộp camera mới bằng vật liệu gia công chuyên dụng, tích hợp thêm quạt tản nhiệt gắn trực tiếp phía trên tản nhiệt của kit Ultra96-V2 nhằm giải quyết triệt để tình trạng quá nhiệt gây sụt giảm khung hình hoặc ngắt kết nối khi phát luồng thời gian dài.
Nội dung chính theo từng chương
Bố cục khóa luận được trình bày mạch lạc qua 5 chương chuyên môn:
Chương 1: Giới thiệu đề tài
Chương mở đầu phân tích tổng quan xu hướng ứng dụng thị giác máy tính và sự phát triển của hệ thống smart camera. Tác giả nêu rõ hạn chế về độ trễ truyền dữ liệu video qua Internet của các giải pháp nhúng hiện nay. Khảo sát 2 công trình quốc tế (Ehsan Norouznezhad et al., 2010 trên Virtex-5; Merwan Birem & Francois Berry, 2014 trên Cyclone IV) và 4 đề tài tốt nghiệp trong nước liên quan tại trường. Xác định mục tiêu kế thừa lõi tăng tốc phần cứng YOLOv2, nâng xung nhịp lên 300 MHz trên kit Ultra96-V2, tối ưu hóa giao thức streaming RTSP, tích hợp hệ thống phần mềm PetaLinux/FFmpeg/OpenCV và triển khai máy chủ giám sát ZoneMinder.
Chương 2: Cơ sở lý thuyết
Cung cấp bức tranh toàn diện về lý thuyết nền tảng:
- Cấu trúc vi mạch FPGA: Phân tích chức năng các khối CLB (LUT, flip-flop), mạng lưới liên kết lập trình được (Interconnections), các chân I/O (User Pin, Dedicated Pin) và tài nguyên chuyên dụng (DSP48, BRAM).
- Khái niệm và đặc tính kỹ thuật của hệ thống nhúng, cấu trúc phần cứng của hệ thống trên một vi mạch SoC (CPU, Bus liên kết AMBA, bộ nhớ nội, các ngoại vi UART, Video, Audio).
- Khái niệm smart camera và các tiêu chí thiết kế (năng lực xử lý, cảm biến ảnh, khả năng ra quyết định tại biên).
- Phân tích chi tiết 8 kỹ thuật then chốt trong thuật toán nhận diện đối tượng YOLOv2 (Batch Normalization, High resolution classifier, Anchor Box, K-means, Direct location prediction, Fine-grained feature với Reorg layer, Multi-scale training, Darknet-19, WordTree).
- Cơ chế hoạt động của thư viện thị giác máy tính OpenCV, framework xử lý đa phương tiện FFmpeg, kiến trúc streaming video tiêu chuẩn và kỹ thuật định tuyến an toàn qua SSH Tunneling.
Chương 3: Thiết kế hệ thống
Mô tả chi tiết giải pháp kỹ thuật đề xuất:
- Sơ đồ khối tổng thể của hệ thống smart camera tích hợp thuật toán YOLOv2 kết nối với Cloud Server qua Wi-Fi Access Point.
- Thiết kế chi tiết sơ đồ khối phần cứng SoC trong Vivado 2019.2 tích hợp khối IP YOLO2_FPGA với vi xử lý Zynq UltraScale+ qua bus AXI SmartConnect và AXI Interconnect.
- Quá trình phân tích timing ở tần số 300 MHz; trình bày hiện tượng WNS âm (-0.034 ns) và đề xuất bộ chiến lược tổng hợp (Synthesis Strategy)
Flow_PerfThresholdCarry cùng cấu hình Implementation tương ứng để khắc phục lỗi vi phạm thời gian.
- Xây dựng sơ đồ luồng streaming video lên nền tảng ZoneMinder bằng FFmpeg cho cả hai trường hợp: camera truyền hình ảnh thông thường và camera truyền hình ảnh có xử lý YOLOv2 qua Internet.
- Thiết lập chương trình nhúng trong môi trường Vitis 2019.2 và cấu hình giao diện web giám sát camera.
Chương 4: Hiện thực, thực nghiệm và đánh giá kết quả
Trình bày các bước triển khai thực tế trên phần cứng và phần mềm:
- Cấu hình nhân PetaLinux: Hardware Description, Image Packaging, Boot Image, USB Gadget, Reserved Memory.
- Cài đặt, cấu hình và Việt hóa giao diện phần mềm quản lý camera giám sát ZoneMinder trên Cloud Server; tích hợp giao diện Web Server riêng.
- Thực nghiệm kịch bản truyền luồng video: Đo độ trễ truyền hình ảnh thường và hình ảnh xử lý YOLOv2 ở độ phân giải Full HD (1920x1080); kiểm tra độ ổn định liên tục của hệ thống theo thời gian thực.
- Thử nghiệm phát song song 2 luồng camera độc lập trên cùng 1 bo mạch Ultra96-V2.
- Thực nghiệm đối sánh giữa đường truyền Wi-Fi và đường truyền mạng có dây Ethernet (sử dụng USB to Ethernet Adapter).
- Thiết kế hộp bảo vệ hoàn chỉnh cho smart camera tích hợp quạt làm mát cưỡng bức để đảm bảo ổn định nhiệt độ hoạt động.
Chương 5: Kết luận và hướng phát triển
Đánh giá tổng kết các kết quả đạt được so với mục tiêu đề ra ban đầu, đối chiếu với các công trình nghiên cứu trước đó tại Việt Nam và chỉ ra các phương hướng mở rộng nhằm hoàn thiện hệ thống trong tương lai.
Kết quả và đóng góp
1. Kết quả kỹ thuật đạt được
- Tối ưu hóa tần số IP Core: Tổng hợp thành công khối xử lý tăng tốc phần cứng YOLOv2 trên vùng logic khả trình (PL) của chip Zynq UltraScale+ MPSoC đạt tần số làm việc thực tế 300 MHz (chu kỳ xung nhịp 3,33 ns), giải quyết triệt để lỗi vi phạm timing (WNS ban đầu là -0.034 ns) nhờ thay đổi chiến lược tổng hợp và thực thi chuyên biệt.
- Tài nguyên tối ưu: Lõi IP chiếm 61% BRAM 18K (265/432), 40% khối nhân DSP48E (144/360), 25% Flip-Flop (35.530/141.120) và 77% bảng tra LUT (54.816/70.560).
- Hệ thống nhúng hoàn chỉnh: Xây dựng thành công bản phân phối PetaLinux nhúng đầy đủ driver V4L2, OpenCV, FFmpeg, giao thức RTSP và cấu hình phân vùng nhớ chia sẻ giữa PS và PL.
- Khả năng mở rộng và độ ổn định: Hệ thống hỗ trợ phát luồng video an toàn qua Internet thông qua SSH Tunneling lên máy chủ ZoneMinder (đã được Việt hóa); thử nghiệm thành công khả năng truyền phát song song 2 camera trên cùng 1 bo mạch Ultra96-V2; hoàn thiện vỏ hộp cơ khí tích hợp quạt làm mát giúp hệ thống vận hành liên tục không bị gián đoạn do quá nhiệt.
- Hiệu năng đường truyền: Đo đạc thực tế chứng minh luồng truyền qua kết nối Ethernet (qua USB to Ethernet Adapter) mang lại tốc độ khung hình và độ ổn định vượt trội so với kết nối không dây Wi-Fi vốn có độ biến động cao.
2. So sánh với các nghiên cứu trong nước
Khóa luận đã định vị rõ nét đóng góp thông qua bảng tổng hợp so sánh với các công trình nghiên cứu trước đó trong nước:
| Tiêu chí |
Nghiên cứu của Chung Vĩnh Kiện (2019) |
Nghiên cứu của Phan Tuấn Thanh & Vũ Hoàng Hy (2020) |
Nghiên cứu của Phan Trường Khang & La Ngọc Lễ (2020) |
Nghiên cứu của Bùi Nguyễn Phát & Lê Minh Huy (2021) |
Khóa luận của Võ Phúc Vinh Khang & Lê Hoài (2023) |
| Nền tảng phần cứng |
Zynq-7000 |
Zedboard Zynq-7000 |
DE10-Nano (Altera) |
Ultra96-V2 (Zynq UltraScale+) |
Ultra96-V2 (Zynq UltraScale+) |
| Thuật toán xử lý |
Không tích hợp AI |
YOLOv2 |
Viola-Jones |
YOLOv2 |
YOLOv2 (tần số 300 MHz) |
| Nguồn dữ liệu hình ảnh |
Trực tiếp từ camera |
Ảnh tĩnh lưu sẵn trong thẻ nhớ SD |
Trực tiếp từ camera (OV7670) |
Trực tiếp từ Smart Camera |
Trực tiếp từ USB Camera (hỗ trợ 2 camera song song) |
| Độ phân giải |
1280 x 720 |
- |
320 x 420 (ảnh xám) |
1280 x 960 |
Full HD 1920 x 1080 |
| Độ chính xác |
- |
Khá cao |
Thấp (40% - 80%) |
Cao (64% - 96%) |
Kế thừa mô hình nhận diện chính xác cao |
| Phương thức truyền dữ liệu |
Ethernet (5 FPS) |
Không truyền luồng |
Không truyền luồng |
Streaming P2P qua Wi-Fi |
Streaming qua Internet (RTSP, SSH Tunneling, Cloud ZoneMinder) |
| Độ trễ truyền luồng |
Ổn định |
- |
- |
Cao (~19 giây ở P2P) |
Đã tối ưu hóa cho phạm vi Internet; hỗ trợ Ethernet |
3. Đóng góp kỹ thuật tự nêu
- Giải quyết bài toán Timing Closure cho lõi IP AI trên công cụ Vivado 2019.2 ở mức xung nhịp cao (300 MHz) mà các nghiên cứu trước chưa hoàn thiện.
- Hiện thực hóa thành công luồng truyền video streaming chuẩn RTSP qua môi trường mạng Internet có chuyển tiếp cổng an toàn bằng SSH Tunneling lên máy chủ đám mây, thay vì chỉ truyền cục bộ hoặc truyền ngang hàng P2P trong mạng nội bộ.
- Xây dựng giải pháp phần cứng thực tế hoàn chỉnh bao gồm thiết kế cơ khí vỏ hộp chuyên dụng và hệ thống quạt tản nhiệt, giải quyết triệt để vấn đề sụt giảm hiệu năng do tích tụ nhiệt trên dòng chip MPSoC.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế được ghi nhận
- Do giới hạn về mặt thời gian làm luận văn, nhóm tác giả tập trung chủ yếu vào việc tối ưu hóa luồng truyền streaming và đóng gói hệ thống, chưa tiến hành tinh chỉnh sâu hoặc tái cấu trúc kiến trúc bên trong của lõi IP core YOLOv2 (chỉ kế thừa và tăng tần số tổng hợp).
- Tốc độ và độ ổn định khi truyền luồng qua kết nối không dây Wi-Fi phụ thuộc nhiều vào chất lượng môi trường sóng và khoảng cách tới Access Point, đòi hỏi phải sử dụng kết nối mạng có dây Ethernet thông qua adapter ngoài để đạt được độ ổn định tối đa.
Hướng phát triển của đề tài
- Nghiên cứu tối ưu hóa trực tiếp kiến trúc phần cứng của lõi IP tăng tốc AI trên FPGA (nâng cấp lên các phiên bản mạng nơ-ron mới hơn hoặc tối ưu hóa lượng tử hóa trọng số) nhằm giảm diện tích chiếm dụng tài nguyên LUT/BRAM và đẩy tốc độ suy luận lên cao hơn.
- Cải tiến giao thức truyền tải và các thuật toán nén video hiện đại hơn trên nền tảng nhúng nhằm tiếp tục kéo giảm độ trễ truyền luồng qua Internet về mức tiệm cận thời gian thực hoàn toàn.
- Nâng cấp phần cứng kết nối mạng có dây tích hợp sẵn trên bo mạch thay vì sử dụng adapter chuyển đổi USB-to-Ethernet để tăng độ tin cậy cơ học và tốc độ truyền dẫn.
Giá trị tham khảo
Báo cáo khóa luận là tài liệu kỹ thuật có giá trị thực tiễn cao cho:
- Sinh viên và học viên cao học ngành Kỹ thuật Máy tính, Điện tử - Viễn thông, Hệ thống nhúng và IoT: Cung cấp tài liệu tham khảo chi tiết về toàn bộ quy trình thiết kế phần cứng - phần mềm kết hợp (HW/SW Co-design) trên nền tảng Xilinx Zynq UltraScale+ MPSoC.
- Các kỹ sư thiết kế FPGA: Cung cấp ca điển hình (case study) rõ ràng về việc xử lý vi phạm thời gian xác lập (Negative Slack/Timing Violation) ở tần số 300 MHz thông qua việc thay đổi các chiến lược tổng hợp (Synthesis Strategy
Flow_PerfThresholdCarry, chỉ thị FewerCarryChains) và thiết lập các cờ tham số trong Vivado 2019.2.
- Nhóm nghiên cứu phát triển Smart Camera và thiết bị AI tại biên (Edge AI): Cung cấp giải pháp mẫu hoàn chỉnh về việc tích hợp hệ điều hành nhúng PetaLinux, cấu hình bộ nhớ dùng chung (Reserved Memory) cho DMA, kết hợp các công cụ mã nguồn mở OpenCV, FFmpeg, RTSP, SSH Tunneling và nền tảng giám sát ZoneMinder để triển khai hệ thống camera giám sát từ biên lên đám mây.
Câu hỏi thường gặp
1. Tại sao nhóm nghiên cứu phải thay đổi chiến lược tổng hợp (Synthesis Strategy) trong Vivado 2019.2?
Khi tổng hợp IP YOLOv2 ở xung nhịp mục tiêu 300 MHz với cấu hình mặc định (Vivado Synthesis Defaults), hệ thống gặp lỗi vi phạm thời gian xác lập với chỉ số Worst Negative Slack (WNS) đạt giá trị âm là -0.034 ns, Total Negative Slack (TNS) là -0.113 ns và có 8 điểm cuối bị lỗi (Failing Endpoints). Nhóm đã chuyển sang chiến lược Flow_PerfThresholdCarry kết hợp chỉ thị FewerCarryChains, bật keep_equivalent_registers, tắt resource_sharing và áp dụng -no_lc để loại bỏ độ trễ âm, giúp mạch hoạt động đúng trên phần cứng thực tế.
2. IP YOLO2_FPGA chiếm bao nhiêu tài nguyên logic trên chip Zynq UltraScale+ của kit Ultra96-V2?
Sau khi tổng hợp, khối IP tiêu thụ:
- 265 / 432 khối BRAM 18K (chiếm 61%).
- 144 / 360 khối xử lý tín hiệu DSP48E (chiếm 40%).
- 35.530 / 141.120 Flip-Flop (chiếm 25%).
- 54.816 / 70.560 bảng tra LUT (chiếm 77%).
3. Cơ chế giao tiếp nội bộ giữa hệ thống vi xử lý (PS) và bộ tăng tốc AI (PL) diễn ra như thế nào?
Vi xử lý ARM (thuộc PS) gửi tín hiệu điều khiển tới khối YOLOv2 trên vùng logic khả trình (PL) thông qua bus M_AXI_HPM0_FPD và bộ điều phối AXI Interconnect. Khi nhận lệnh, khối YOLOv2 tự động truy cập trực tiếp vào vùng nhớ chứa khung hình trong DDR4 qua hai kênh m_axi_DATA_BUS và m_axi_DATA_BUS1 kết nối với các cổng S_AXI_HP0_FPD và S_AXI_HP1_FPD thông qua AXI SmartConnect. Khi xử lý xong, khối AI ghi trả kết quả vào RAM và phát tín hiệu DONE để vi xử lý tiến hành bước truyền luồng.
4. Hệ thống giải quyết vấn đề truyền luồng video an toàn qua Internet bằng cách nào?
Khung hình sau khi xử lý được phần mềm trên PetaLinux mã hóa và tạo luồng bằng FFmpeg qua giao thức RTSP. Để vượt qua các giới hạn định tuyến và tường lửa nội bộ khi truyền ra Internet, hệ thống sử dụng giao thức SSH Tunneling để chuyển tiếp cổng an toàn từ bo mạch Ultra96-V2 lên máy chủ đám mây (Cloud Server) có cài đặt phần mềm giám sát ZoneMinder và dịch vụ Web Server, cho phép người dùng theo dõi trực tiếp trên trình duyệt hoặc trình phát VLC.
5. Giải pháp nào được tác giả áp dụng để khắc phục hiện tượng mất ổn định khi bo mạch vận hành liên tục?
Nhóm nghiên cứu đã thực hiện hai biện pháp: thứ nhất là thiết kế lại toàn bộ vỏ hộp cơ khí cho smart camera và lắp đặt thêm quạt tản nhiệt cưỡng bức gắn trên chip để giải quyết triệt để hiện tượng quá nhiệt của bo mạch Ultra96-V2; thứ hai là trang bị thêm USB to Ethernet Adapter để sử dụng mạng có dây, giúp luồng truyền video đạt độ ổn định cao hơn hẳn so với kết nối qua mạng không dây Wi-Fi.
Kết luận
Khóa luận tốt nghiệp của sinh viên Võ Phúc Vinh Khang và Lê Hoài đã thiết kế và hiện thực thành công hệ thống smart camera tích hợp bộ tăng tốc phần cứng YOLOv2 hoạt động ở tần số 300 MHz trên nền tảng Zynq UltraScale+ MPSoC (Ultra96-V2). Bằng việc kết hợp hệ điều hành PetaLinux, framework FFmpeg, giao thức RTSP, kỹ thuật bảo mật SSH Tunneling và nền tảng giám sát ZoneMinder, đề tài đã giải quyết hiệu quả bài toán truyền luồng video qua Internet ở độ phân giải Full HD. Các giải pháp kỹ thuật về tối ưu hóa thời gian (Timing Closure) trên Vivado và cải tiến tản nhiệt phần cứng được trình bày chi tiết, mang lại giá trị tham khảo kỹ thuật tin cậy cho lĩnh vực thiết kế hệ thống nhúng và xử lý AI tại biên.