Bối cảnh và vấn đề nghiên cứu
Sự phát triển của công nghệ vi điện tử và công nghệ bán dẫn đã tạo điều kiện tích hợp các hệ thống xử lý phức tạp vào trong một vi mạch duy nhất (System on Chip - SoC). Trong lĩnh vực thị giác máy tính, camera thông minh (smart camera) không chỉ dừng lại ở chức năng ghi nhận hình ảnh thô mà còn tích hợp trực tiếp các thuật toán xử lý ảnh và trí tuệ nhân tạo (AI) để phân tích, nhận dạng và đưa ra quyết định tại biên mà không phụ thuộc hoàn toàn vào máy tính xử lý trung tâm. Tuy nhiên, việc áp dụng các mô hình học sâu như mạng nơ-ron tích chập (CNN) lên các thiết bị nhúng đặt ra thách thức lớn về năng lượng tiêu thụ, tài nguyên phần cứng, tốc độ xử lý thời gian thực và độ trễ khi truyền phát (streaming) luồng dữ liệu video độ phân giải cao (Full HD) qua kết nối không dây.
Để giải quyết các vấn đề trên, đề tài khóa luận tốt nghiệp kỹ sư ngành Kỹ thuật Máy tính của nhóm tác giả Nguyễn Tiến Bảo và Nguyễn Phan Hoàng Đức (Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM, năm 2022) tập trung vào việc nghiên cứu, cải tiến khối tăng tốc phần cứng YOLOv2 trên nền tảng FPGA và xây dựng giải pháp streaming video qua mạng Internet.
Các mục tiêu và nhiệm vụ nghiên cứu cụ thể được xác định bao gồm:
- Kế thừa bộ nhân tích chập CNN YOLOv2 từ nghiên cứu trước của nhóm tác giả Bùi Nguyễn Phát và Lê Minh Huy (2021) trên nền tảng Ultra96-V2 để nghiên cứu và tối ưu hóa tốc độ xử lý.
- Tìm hiểu bo mạch phát triển Ultra96-V2 của Avnet dựa trên chip Zynq UltraScale+ MPSoC của Xilinx; sử dụng bộ công cụ Xilinx Vivado 2019.2 (Vivado HLS, Vivado Design Suite, Vitis) để tổng hợp IP YOLOv2 và tích hợp vào hệ thống SoC kết nối với USB Camera và module Wi-Fi.
- Xây dựng và tùy biến hệ điều hành Linux nhúng bằng công cụ PetaLinux để nạp lên bo mạch Ultra96-V2, điều khiển hoạt động của toàn bộ hệ thống.
- Nghiên cứu các yếu tố phần cứng ảnh hưởng đến tốc độ của thuật toán nhằm cải tiến tần số hoạt động của khối xử lý lên 300 MHz.
- Nghiên cứu và tích hợp các công nghệ hỗ trợ như FFmpeg, OpenCV cùng các giao thức truyền thông (UDP, RTP, SFTP, SSH Tunneling) để thực hiện truyền hình ảnh streaming qua mạng không dây và Internet với độ trễ thấp.
- Xây dựng chương trình phần mềm điều khiển bằng công cụ Vitis 2019.2, thực hiện nạp phần mềm lên hệ điều hành Linux trên bo mạch, tiến hành thử nghiệm, đo đạc thông số và đánh giá hiệu năng hệ thống.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Hệ thống tăng tốc phần cứng cho thuật toán nhận dạng đối tượng YOLOv2 tích hợp trên nền tảng FPGA Zynq UltraScale+ MPSoC và giải pháp truyền phát video không dây hai chế độ.
- Phạm vi không gian và phần cứng: Bo mạch Ultra96-V2 (Avnet), chip Zynq UltraScale+ MPSoC (Xilinx), thiết bị thu hình USB Camera, mạng không dây qua điểm truy cập Wi-Fi (Wi-Fi Access Point), hệ thống máy chủ đám mây (Cloud Server / ZoneMinder) và các thiết bị đầu cuối hiển thị (trình duyệt web, phần mềm VLC Media Player).
- Phạm vi thời gian: Khóa luận được hoàn thành và bảo vệ trước Hội đồng chấm khóa luận tốt nghiệp vào tháng 08 năm 2022.
- Giới hạn đề tài: Quá trình streaming video ở chế độ có xử lý AI YOLOv2 được thực hiện theo phương thức truyền từng khung hình (frame-by-frame) lưu dưới dạng tệp tin JPEG thay vì truyền luồng dữ liệu bit nén liên tục, điều này phát sinh thêm một khoảng độ trễ nhất định khi ghi và đọc tệp tin.
Cơ sở lý thuyết và phương pháp
Khóa luận xây dựng nội dung dựa trên các cơ sở lý thuyết kỹ thuật phần cứng, thuật toán học sâu và các framework truyền thông đa phương tiện:
- Kiến trúc FPGA và SoC: Khái niệm về cấu trúc mảng logic lập trình được (Field Programmable Gate Array) bao gồm các khối logic khả trình (CLB - Configurable Logic Blocks chứa LUT, Flip-Flop, Latch), khối liên kết lập trình (Interconnections), khối vào/ra (I/O Blocks gồm User Pin và Dedicated Pin), cùng các khối chức năng chuyên dụng như DSP48E và Block RAM (BRAM). Kiến trúc System on Chip (SoC) tích hợp lõi vi xử lý ARM (Application Processing Unit - APU trong khối Processing System - PS) kết nối với vùng logic khả trình (Programmable Logic - PL) thông qua hệ thống bus nội AMBA AXI (AXI HPM FPD, S-AXI HP, AXI Interconnect, AXI SmartConnect).
- Thuật toán nhận dạng YOLOv2 (YOLO9000): Thuật toán phát hiện đối tượng đơn pha do Joseph Redmon và Ali Farhadi công bố. Khóa luận phân tích các kỹ thuật cải tiến trong YOLOv2:
- Batch Normalization sau các lớp tích chập giúp tăng 2% mAP và loại bỏ lớp Dropout.
- Phân loại độ phân giải cao (High resolution classifier) với quy trình huấn luyện hai pha (tinh chỉnh ở kích thước 448x448 giúp tăng 4% mAP).
- Kiến trúc Anchor Box kết hợp phân cụm K-means để tối ưu hóa chỉ số Mean IoU.
- Dự đoán vị trí trực tiếp (Direct location prediction) sử dụng hàm kích hoạt Sigmoid giới hạn vị trí quanh grid cell giúp tăng 5% mAP.
- Kết hợp đặc trưng mịn (Fine-grained features) thông qua lớp tổ chức lại bộ nhớ Reorg để biến đổi feature map 26x26 thành 13x13 ghép nối với feature map cuối.
- Khung xương mạng Darknet-19 gồm 19 lớp tích chập và 5 lớp Max Pooling.
- Cấu trúc cây phân cấp WordTree kết hợp nhãn giữa ImageNet và COCO/PASCAL.
- Công cụ phần mềm và truyền thông: Thư viện thị giác máy tính OpenCV (các module core, imgproc, video, objdetect, videoio); framework đa phương tiện FFmpeg (các thư viện libavcodec, libavformat, libavutil, libavdevice, libswscale) và kỹ thuật tạo đường hầm bảo mật SSH Tunneling chuyển tiếp cổng (port forwarding qua cổng 22) kết hợp hệ thống giám sát ZoneMinder.
Phương pháp nghiên cứu được triển khai theo hướng thiết kế kỹ thuật và thực nghiệm:
- Phương pháp thiết kế hệ thống phần cứng: Mô tả và tổng hợp mạch mức cao (High-Level Synthesis - HLS) trên công cụ Vivado HLS, thiết kế tích hợp hệ thống SoC trên Vivado Design Suite 2019.2.
- Phương pháp tối ưu hóa phần cứng: Phân tích báo cáo thời gian (timing report), tối ưu hóa các thông số trễ Worst Negative Slack (WNS), Total Negative Slack (TNS), Worst Hold Slack (WHS) để nâng tần số xung nhịp.
- Phương pháp phát triển phần mềm nhúng: Cấu hình và đóng gói bản phân phối Linux nhúng bằng PetaLinux, lập trình điều khiển truy xuất bộ nhớ trực tiếp (DMA) và phần cứng tăng tốc bằng C/C++ trên Xilinx Vitis.
- Phương pháp đo đạc và thực nghiệm: Đo lường tốc độ khung hình (FPS), độ trễ truyền phát (latency), tài nguyên phần cứng tiêu thụ, công suất tiêu thụ và khoảng cách kết nối không dây.
Nguồn dữ liệu thực nghiệm: Luồng khung hình video thu nhận trực tiếp theo thời gian thực từ cảm biến USB Camera kết nối với bo mạch Ultra96-V2; bộ trọng số được huấn luyện sẵn của mô hình YOLOv2.
Thiết kế và triển khai
Hệ thống smart camera được thiết kế dựa trên sự phân chia chức năng giữa khối xử lý phần mềm (Processing System - PS) và khối tăng tốc phần cứng (Programmable Logic - PL) trên chip Zynq UltraScale+ MPSoC thuộc bo mạch Ultra96-V2.
| Khối chức năng |
Vị trí phần cứng |
Vai trò và kết nối giao tiếp |
| USB Camera & Giao tiếp vào/ra |
Ngoại vi PS (IOU) |
Thu nhận tín hiệu hình ảnh trực tiếp từ camera qua cổng USB |
| Lõi điều khiển (Core SW) |
Bộ vi xử lý ARM (PS) |
Điều khiển giao tiếp bộ nhớ, quản lý luồng điều khiển, khởi chạy ứng dụng Linux |
| Bộ điều khiển bộ nhớ (Memory Interface) |
PS |
Lưu trữ các khung ảnh tạm thời vào bộ nhớ DDR4/LPDDR4 |
| Giao tiếp điều khiển (AXI HPM FPD) |
Bus liên kết PS - PL |
Truyền tín hiệu điều khiển xử lý từ Core SW sang khối YOLO2_FPGA |
| Giao tiếp dữ liệu tốc độ cao (S-AXI HP) |
Bus liên kết PL - PS |
Cho phép YOLO2_FPGA đọc trực tiếp frame ảnh từ DDR4 và ghi kết quả trả về |
| Khối tăng tốc YOLO2_FPGA |
Vùng logic khả trình (PL) |
Thực thi tính toán song song các lớp tích chập của mạng YOLOv2 |
Quy trình xử lý phần cứng: Khung hình từ USB Camera được Core SW lưu vào vùng nhớ quy định trong DDR4. Core SW gửi tín hiệu kích hoạt thông qua bus AXI HPM FPD đến khối YOLO2_FPGA. Khối này tự động truy xuất dữ liệu ảnh qua bus S-AXI HP, thực hiện nhận dạng đối tượng và ghi kết quả tọa độ bounding box/nhãn lớp trở lại bộ nhớ DDR4. Khi hoàn tất, Core SW phát tín hiệu DONE để dừng quyền truy xuất bộ nhớ của PL.
Nhóm tác giả đã tiến hành cải tiến thiết kế phần cứng so với nghiên cứu trước (vốn hoạt động ở tần số 200 MHz với chu kỳ xung nhịp 5.0 ns và WNS đạt 0.084 ns) bằng cách nâng tần số hoạt động của khối IP YOLO2_FPGA lên 300 MHz (chu kỳ xung nhịp 3.33 ns). Để khắc phục hiện tượng vi phạm thời gian thiết lập (WNS âm) khi tăng xung nhịp, nhóm đã thay đổi chiến lược tổng hợp (Synthesis Strategy) và thực thi (Implementation Strategy) trong Vivado 2019.2 từ chế độ mặc định sang các tùy chọn tối ưu hiệu năng (PerformanceOptimized, điều chỉnh fanout limit, retiming và tối ưu vị trí định tuyến).
Bảng tổng hợp ước lượng tài nguyên phần cứng sau khi tổng hợp IP YOLO2_FPGA ở tần số 300 MHz:
| Tài nguyên phần cứng |
Sử dụng (Used) |
Khả dụng (Available) |
Tỷ lệ sử dụng (%) |
| BRAM_18K |
265 |
432 |
61% |
| DSP48E |
144 |
360 |
40% |
| Flip-Flop (FF) |
35.530 |
141.120 |
25% |
| Look-Up Table (LUT) |
54.816 |
70.560 |
77% |
Về phần mềm và hệ điều hành, nhóm sử dụng PetaLinux 2019.2 để cấu hình nhân Linux hỗ trợ USB Gadget, tích hợp gói bitbake module Wi-Fi WILC cho chip không dây trên Ultra96-V2, thiết lập phân vùng bộ nhớ dành riêng (Reserved Memory) để tránh xung đột giữa HĐH Linux và vùng nhớ DMA của IP YOLOv2. Chương trình điều khiển chính được biên dịch thành tệp tin thực thi smart_camera.elf bằng công cụ Xilinx Vitis 2019.2.
Luồng truyền phát video streaming được xây dựng theo 4 kịch bản:
- Mạng cục bộ (Local) - Camera hình ảnh thường: Truyền phát qua giao thức SFTP/FFmpeg đến thiết bị nhận trong cùng mạng Wi-Fi.
- Mạng cục bộ (Local) - Camera xử lý YOLOv2: Khung hình sau khi xử lý trên FPGA được lưu thành ảnh JPEG, sau đó FFmpeg đóng gói gửi qua mạng nội bộ.
- Mạng Internet - Camera hình ảnh thường: Sử dụng FFmpeg đẩy luồng video lên Cloud Server hoặc hệ thống ZoneMinder thông qua đường truyền Internet.
- Mạng Internet - Camera xử lý YOLOv2: Sử dụng đường hầm bảo mật SSH Tunneling để chuyển tiếp luồng dữ liệu hình ảnh đã qua nhận diện lên Cloud Server, cho phép người dùng xem trực tiếp trên trình duyệt hoặc qua VLC Media Player.
Nội dung chính theo từng chương
Chương 1. Giới thiệu đề tài
Chương mở đầu phân tích sự cần thiết của việc phát triển camera thông minh tích hợp trí tuệ nhân tạo nhằm tự động hóa quá trình giám sát thị giác. Tác giả tiến hành khảo sát và tổng hợp các công trình nghiên cứu liên quan trong và ngoài nước:
- Nghiên cứu quốc tế: Công trình của Ehsan Norouznezhad và cộng sự (2010) sử dụng FPGA Virtex-5 với thuật toán Histogram (đạt 30 FPS ở độ phân giải 640x480); kiến trúc DreamCam của Merwan Birem và Francois Berry (2014) trên FPGA Altera Cyclone III (đạt 42 FPS ở độ phân giải 800x1024).
- Nghiên cứu trong nước: Đề tài của Phan Tuấn Thành và Vũ Hoàng Hy (2020) chạy YOLOv2 trên Zedboard Zynq-7000 nhưng chỉ xử lý ảnh tĩnh từ thẻ nhớ; đề tài của Chung Vĩnh Kiện (2019) thiết kế IP camera trên Zynq-7000 đạt độ phân giải 1280x720 (5 FPS) nhưng chưa tích hợp AI; đề tài của Phan Trương Khang và La Ngọc Lễ (2020) dùng thuật toán Viola-Jones trên DE10-Nano (độ phân giải 320x420, độ chính xác 40-80%); đề tài của Bùi Nguyễn Phát và Lê Minh Huy (2021) tích hợp YOLOv2 trên Ultra96-V2 (độ phân giải 1280x960, độ trễ 19 giây, chạy ở 200 MHz).
Từ các phân tích trên, chương 1 xác định rõ mục tiêu tăng tốc phần cứng lên 300 MHz, xây dựng giải pháp streaming hai chế độ qua mạng Internet và giới hạn phạm vi nghiên cứu của đề tài.
Chương 2. Cơ sở lý thuyết
Chương 2 trình bày có hệ thống các nền tảng lý thuyết:
- Lý thuyết phần cứng: Cấu tạo vi mạch FPGA, bảng tra LUT, phần tử nhớ Flip-Flop, mạng chuyển mạch lập trình; cấu trúc hệ thống nhúng và hệ thống vi mạch tích hợp trên một chip (SoC); các thành phần cốt lõi của Smart Camera.
- Lý thuyết mạng nơ-ron: Kiến trúc thuật toán YOLOv2, phân tích chi tiết vai trò của Darknet-19, kỹ thuật Batch Normalization, cơ chế dự đoán Bounding Box bằng hàm Sigmoid, cơ chế gom cụm K-means cho Anchor Box và nguyên lý hoạt động của lớp Reorg giúp giảm kích thước không gian và tăng chiều sâu kênh dữ liệu.
- Công cụ và giao thức phần mềm: Thư viện xử lý ảnh OpenCV; kiến trúc xử lý đa phương tiện của FFmpeg (phân tách luồng, giải mã, mã hóa, ghép kênh); nguyên lý định tuyến an toàn và chuyển tiếp cổng của giao thức SSH Tunneling.
Chương 3. Thiết kế hệ thống
Chương 3 chi tiết hóa giải pháp thiết kế kiến trúc phần cứng và phần mềm:
- Thiết kế sơ đồ khối tổng quát kết nối giữa Zynq UltraScale+ MPSoC, cổng USB Camera, bộ nhớ DDR4 và khối tăng tốc YOLOv2 trong PL.
- Thiết lập sơ đồ khối SoC trên phần mềm Vivado 2019.2 tích hợp các IP: Zynq UltraScale+ MPSoC, AXI SmartConnect, AXI Interconnect, Processor System Reset và Clocking Wizard.
- Phân tích chi tiết báo cáo thời gian (Timing Report) của thiết kế 200 MHz kế thừa từ nghiên cứu trước (WNS = 0.084 ns, TNS = 0.000 ns, WHS = 0.045 ns, THS = 0.000 ns).
- Quá trình điều chỉnh xung nhịp mục tiêu lên 300 MHz (chu kỳ 3.33 ns), giải quyết vấn đề trễ đường truyền âm (Negative Slack) thông qua việc cấu hình lại các chiến lược Synthesis và Implementation mới trên Vivado.
- Thiết kế 4 luồng dữ liệu streaming video cho camera thường và camera nhận diện YOLOv2 ở cả hai phạm vi mạng cục bộ và Internet.
- Thiết kế luồng phần mềm điều khiển trên môi trường Xilinx Vitis 2019.2.
Chương 4. Hiện thực, thực nghiệm và đánh giá kết quả
Chương 4 trình bày toàn bộ quá trình triển khai thực tế trên phần cứng bo mạch Ultra96-V2:
- Cấu hình phần cứng và đóng gói hệ điều hành Petalinux (Image Packaging, Boot Image Setting, USB Gadget Support, cấu hình Reserved Memory).
- Thiết lập kịch bản thực nghiệm để kiểm tra độ chính xác nhận diện đối tượng và đo đạc tốc độ xử lý của mô hình YOLOv2 trên phần cứng.
- Đo lường và đánh giá hiệu năng streaming video ở phạm vi mạng cục bộ (Local) và qua mạng Internet đối với cả hai chế độ camera thường và camera xử lý AI.
- Khảo sát sự thay đổi chất lượng luồng video và độ ổn định theo khoảng cách kết nối Wi-Fi giữa bo mạch và Access Point.
- So sánh tốc độ khung hình (FPS) giữa chế độ xem video trực tiếp (live streaming) và chế độ xem lại video lưu trữ trên máy chủ ZoneMinder.
- Thực hiện đóng gói sản phẩm phần cứng hoàn chỉnh thành thiết bị smart camera vật lý và lập bảng đối sánh kết quả với các nghiên cứu trước đây.
Chương 5. Kết luận và hướng phát triển
Chương cuối cùng tổng kết các kết quả đạt được về mặt tối ưu phần cứng (nâng xung nhịp thành công lên 300 MHz, đảm bảo tính toàn vẹn tín hiệu, hoàn thiện streaming không dây hai chế độ) và chỉ ra các hạn chế kỹ thuật chưa giải quyết trọn vẹn, đồng thời đề xuất các định hướng nghiên cứu tiếp theo để nâng cao hiệu quả hệ thống.
Kết quả và đóng góp
Khóa luận đã đạt được các kết quả kỹ thuật cụ thể được chứng minh qua số liệu thực nghiệm:
- Tối ưu hóa thành công khối tăng tốc phần cứng IP YOLO2_FPGA hoạt động ổn định ở tần số xung nhịp 300 MHz (thay vì mức 200 MHz của nghiên cứu trước đó), giải quyết triệt để bài toán vi phạm thời gian thiết lập (WNS) trong quá trình Synthesis và Implementation trên Vivado 2019.2.
- Xây dựng hoàn chỉnh bản phân phối Linux nhúng thông qua PetaLinux 2019.2 nạp lên bo mạch Ultra96-V2, tích hợp thành công trình điều khiển Wi-Fi WILC, hỗ trợ giao tiếp USB Camera và phân bổ chính xác vùng nhớ Reserved Memory phục vụ truyền dữ liệu DMA tốc độ cao.
- Hiện thực thành công khả năng truyền phát video không dây hai chế độ: chế độ camera hình ảnh thường và chế độ camera có xử lý nhận dạng đối tượng bằng AI YOLOv2 ở độ phân giải Full HD (1920x1080) và HD (1280x720 / 1280x960).
- Xây dựng giải pháp truyền phát an toàn qua mạng Internet sử dụng SSH Tunneling kết hợp Cloud Server và hệ thống quản lý ZoneMinder, cho phép người dùng theo dõi trực tiếp hoặc xem lại video qua trình duyệt web và phần mềm VLC Media Player.
- Hoàn thiện việc đóng gói sản phẩm phần cứng smart camera trên bo mạch Ultra96-V2 nhỏ gọn.
Bảng so sánh đóng góp của đề tài với các nghiên cứu liên quan trước đó:
| Tiêu chí so sánh |
Khóa luận của nhóm tác giả (2022) |
Bùi Nguyễn Phát & Lê Minh Huy (2021) [1] |
Phan Tuấn Thành & Vũ Hoàng Hy (2020) [2] |
Chung Vĩnh Kiện (2019) [6] |
Phan Trương Khang & La Ngọc Lễ (2020) [3] |
| Nền tảng phần cứng |
Ultra96-V2 (Zynq UltraScale+) |
Ultra96-V2 (Zynq UltraScale+) |
Zedboard (Zynq-7000) |
Kit Zynq-7000 |
DE10-Nano (Cyclone V) |
| Thuật toán xử lý AI |
YOLOv2 |
YOLOv2 |
YOLOv2 |
Không tích hợp AI |
Viola-Jones |
| Tần số IP xử lý AI |
300 MHz |
200 MHz |
- |
- |
- |
| Nguồn dữ liệu vào |
USB Camera trực tiếp |
USB Camera trực tiếp |
Tệp ảnh tĩnh trên thẻ SD |
Raspberry Pi Camera |
Camera OV7670 |
| Độ phân giải hỗ trợ |
Full HD (1920x1080), HD |
1280x960 |
- |
1280x720 |
320x420 (ảnh xám) |
| Phạm vi Streaming |
Mạng Local & Internet (Cloud Server) |
Mạng P2P cục bộ |
Không hỗ trợ streaming |
Mạng Ethernet cục bộ (5 FPS) |
Không hỗ trợ streaming |
Đóng góp chính của đề tài:
- Nâng cao xung nhịp hoạt động của khối IP CNN YOLOv2 từ 200 MHz lên 300 MHz trên dòng vi mạch Zynq UltraScale+, giúp cải thiện tốc độ tính toán phần cứng của bộ tăng tốc AI.
- Mở rộng tính năng truyền phát video từ phạm vi mạng nội bộ điểm-điểm (P2P) ra môi trường mạng Internet diện rộng thông qua cơ chế chuyển tiếp an toàn SSH Tunneling và máy chủ đám mây.
- Cung cấp quy trình tích hợp hoàn chỉnh từ thiết kế phần cứng HLS, xử lý vi phạm timing trên Vivado, xây dựng Linux nhúng bằng PetaLinux đến lập trình ứng dụng điều khiển trên Vitis.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của đề tài được tác giả nêu rõ trong văn bản:
- Cơ chế truyền phát luồng hình ảnh có xử lý AI YOLOv2 chưa truyền được trực tiếp dưới dạng luồng dữ liệu bit nén liên tục mà phải lưu tạm từng khung hình thành tệp tin định dạng JPEG trước khi gửi qua mạng. Việc lưu và đọc tệp tin này tạo ra một khoảng độ trễ nhất định trong toàn bộ chu trình xử lý.
- Tốc độ xử lý khung hình tổng thể của toàn hệ thống khi chạy thuật toán YOLOv2 vẫn còn bị giới hạn do khối lượng tính toán của mạng tương đối lớn đối với tài nguyên phần cứng của bo mạch nhúng.
Hướng phát triển tiếp theo được đề xuất:
- Cải tiến cơ chế streaming: Nghiên cứu phương thức mã hóa và truyền trực tiếp luồng bit video (chẳng hạn H.264 hoặc H.265) có nhúng kèm dữ liệu tọa độ nhận diện thay vì ghi tệp ảnh JPEG trung gian, nhằm giảm thiểu tối đa độ trễ truyền phát qua Internet.
- Tối ưu hóa mô hình AI: Ứng dụng các kỹ thuật nén mô hình như lượng tử hóa trọng số (Quantization 8-bit / 4-bit) hoặc kỹ thuật cắt tỉa (Pruning), hoặc chuyển đổi sang các phiên bản mạng nhẹ hơn (như Tiny-YOLO hoặc các biến thể YOLO mới hơn) để tăng tốc độ khung hình (FPS).
- Tối ưu hóa tài nguyên phần cứng: Khai thác sâu hơn các khối tính toán logic (LUT) và bộ nhân DSP48E còn trống trên FPGA để tăng cường mức độ xử lý song song cho các lớp tích chập.
Giá trị tham khảo
Khóa luận là tài liệu học thuật và kỹ thuật hữu ích đối với:
- Sinh viên, học viên cao học và kỹ sư thuộc các chuyên ngành Kỹ thuật Máy tính, Điện tử - Viễn thông, Công nghệ Thông tin, Hệ thống Nhúng và IoT đang tìm hiểu về việc hiện thực hóa mạng nơ-ron nhân tạo trên phần cứng chuyên dụng.
- Các nhà nghiên cứu và phát triển phần cứng quan tâm đến quy trình tăng tốc mạng nơ-ron tích chập (CNN Acceleration) trên các dòng chip SoC FPGA hiện đại (cụ thể là dòng Xilinx Zynq UltraScale+ MPSoC).
Các nội dung có giá trị tham khảo chuyên sâu trong khóa luận bao gồm:
- Quy trình chuẩn trong việc thiết kế hệ thống SoC tích hợp IP tăng tốc AI bằng bộ công cụ Xilinx Vivado 2019.2 và Vivado HLS.
- Phương pháp điều chỉnh chiến lược Synthesis và Implementation để xử lý các vi phạm thời gian (Negative Slack), giúp tối ưu hóa tần số xung nhịp cho các thiết kế phức tạp trên FPGA.
- Hướng dẫn chi tiết quy trình xây dựng bản phân phối hệ điều hành Linux nhúng bằng PetaLinux, bao gồm tích hợp trình điều khiển Wi-Fi, USB Gadget và cấu hình vùng nhớ dành riêng cho giao tiếp DMA giữa PS và PL.
- Mô hình kiến trúc truyền phát video đa chế độ kết hợp giữa OpenCV, FFmpeg, ZoneMinder và đường hầm bảo mật SSH Tunneling lên môi trường máy chủ đám mây.
Câu hỏi thường gặp
1. Khối tăng tốc AI YOLOv2 trong khóa luận đã được nhóm tác giả cải tiến tần số hoạt động như thế nào so với nghiên cứu trước đó?
Trong nghiên cứu trước của nhóm tác giả Bùi Nguyễn Phát và Lê Minh Huy (2021), khối IP YOLO2_FPGA hoạt động ở tần số 200 MHz (chu kỳ xung nhịp 5.0 ns) với giá trị Worst Negative Slack (WNS) là 0.084 ns. Nhóm tác giả của khóa luận này đã cấu hình lại hệ thống và thay đổi chiến lược tổng hợp (Synthesis Strategy) và thực thi (Implementation Strategy) trên Vivado 2019.2 sang chế độ tối ưu hiệu năng để nâng tần số hoạt động của IP YOLO2_FPGA và toàn bộ hệ thống SoC lên 300 MHz (chu kỳ xung nhịp 3.33 ns) mà không bị vi phạm timing.
2. Bo mạch phần cứng và chip xử lý chính được sử dụng để xây dựng Smart Camera trong đề tài là gì?
Hệ thống sử dụng bo mạch phát triển Ultra96-V2 do Avnet phát hành, được xây dựng trên nền tảng vi mạch tích hợp Zynq UltraScale+ MPSoC của Xilinx. Nền tảng này kết hợp giữa hệ thống vi xử lý đa lõi ARM (Processing System - PS) và vùng logic lập trình được (Programmable Logic - PL).
3. Khối điều khiển phần mềm (PS) và khối tăng tốc phần cứng (PL) giao tiếp với nhau qua các đường bus nào?
Hệ thống sử dụng hai chuẩn bus giao tiếp chính thuộc kiến trúc AMBA AXI:
- Bus AXI HPM FPD (High Performance Master Full Power Domain): Dùng để truyền tín hiệu điều khiển từ Core SW (thuộc PS) sang khối YOLO2_FPGA (thuộc PL).
- Bus S-AXI HP (Slave High Performance): Cho phép khối YOLO2_FPGA truy xuất trực tiếp bộ nhớ DDR4/LPDDR4 thông qua cơ chế DMA để đọc các khung hình cần xử lý và ghi trả kết quả nhận diện.
4. Nguyên nhân nào dẫn đến độ trễ phát sinh trong luồng streaming video có xử lý YOLOv2?
Do giới hạn thời gian thực hiện, nhóm tác giả chưa thể triển khai cơ chế truyền dữ liệu theo luồng bit liên tục (bitstream) trực tiếp từ bộ nhớ. Thay vào đó, mỗi khung hình sau khi được FPGA nhận dạng xong phải được lưu tạm thành một tệp tin hình ảnh định dạng JPEG trên hệ thống tệp tin, sau đó FFmpeg mới đọc tệp này để đóng gói và truyền phát. Quá trình đọc/ghi tệp trung gian này tạo ra một khoảng thời gian trễ bổ sung cho hệ thống.
5. Kỹ thuật Reorg trong kiến trúc YOLOv2 có chức năng gì?
Lớp Reorg (Reorganization) có nhiệm vụ tái cấu trúc lại bộ nhớ của feature map kích thước 26x26 lấy từ tầng tích chập gần cuối để biến đổi thành feature map kích thước 13x13 với chiều sâu số kênh tăng lên gấp 4 lần. Kỹ thuật này giúp khớp kích thước không gian để thực hiện phép ghép nối (concatenate) với feature map 13x13 ở tầng cuối, cho phép mô hình tận dụng được các đặc trưng chi tiết ở độ phân giải cao (fine-grained features) khi đưa ra dự đoán.
Kết luận
Khóa luận tốt nghiệp của nhóm tác giả Nguyễn Tiến Bảo và Nguyễn Phan Hoàng Đức đã thiết kế và hiện thực thành công hệ thống camera thông minh tăng tốc phần cứng AI trên bo mạch Ultra96-V2 sử dụng chip Zynq UltraScale+ MPSoC. Bằng việc tối ưu hóa chiến lược tổng hợp và thực thi trên bộ công cụ Xilinx Vivado 2019.2, nghiên cứu đã nâng tần số hoạt động của khối xử lý YOLOv2 từ 200 MHz lên 300 MHz mà vẫn đảm bảo các ràng buộc về thời gian. Đồng thời, đề tài đã xây dựng hoàn chỉnh giải pháp truyền phát video không dây hai chế độ qua mạng nội bộ và mạng Internet với độ phân giải Full HD, kết hợp hệ điều hành Linux nhúng và các framework truyền thông an toàn. Công trình mang lại giá trị kỹ thuật thực tiễn cao trong lĩnh vực thiết kế hệ thống nhúng và xử lý thị giác máy tính tại biên.