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

Khóa luận tốt nghiệp tập trung giải quyết bài toán phát hiện sớm các đám cháy thông qua việc ứng dụng thị giác máy tính và mạng nơ-ron tích chập (Convolutional Neural Network - CNN) trên nền tảng phần cứng nhúng SoC-FPGA. Về mặt thực tiễn, tác giả dẫn số liệu thống kê từ Tổng cục Lâm nghiệp Việt Nam để làm rõ tính cấp thiết: năm 2016 cả nước xảy ra hàng chục vụ cháy rừng gây thiệt hại hơn 3.000 ha; năm 2017 ghi nhận 182 vụ cháy lớn nhỏ làm thiệt hại hơn 350 ha; đến đầu năm 2018, các vụ cháy tiếp tục bùng phát tại nhiều địa phương như Lạng Sơn, Lai Châu, Điện Biên, Gia Lai, Đắk Lắk, Bà Rịa - Vũng Tàu, Bình Thuận, Kiên Giang, Cà Mau. Địa bàn rừng núi hiểm trở, diện tích lớn và vận tốc gió lan truyền nhanh khiến việc giám sát bằng sức người bộc lộ nhiều hạn chế. Do đó, việc thiết kế một thiết bị phát hiện khói lửa tự động tại chỗ với độ trễ thấp là yêu cầu cấp thiết nhằm giảm thiểu thiệt hại tài nguyên và ô nhiễm môi trường.

Về mặt kỹ thuật, các nghiên cứu trước đây gặp phải những rào cản nhất định: xử lý CNN trên vi xử lý thông thường (CPU) cho tốc độ thấp; triển khai trên bộ xử lý đồ họa (GPU) tuy đạt hiệu năng xử lý ảnh tốt nhưng tiêu thụ điện năng rất lớn, không phù hợp cho môi trường dã ngoại; trong khi đó, thiết kế phần cứng vi mạch bằng ngôn ngữ mô tả phần cứng truyền thống (RTL như VHDL/Verilog) lại đòi hỏi thời gian mô phỏng, tổng hợp vi mạch rất dài và khó mở rộng. Các giải pháp phát hiện cháy hiện hữu như mô hình MCCNN (2018), MobileNet-V2 tích hợp 5G IoT (2019) hay mô hình CNN chạy trên MATLAB (2018) với dung lượng tới 238 MB vẫn gặp hạn chế về tỷ lệ nhận diện nhầm trong môi trường dễ gây nhiễu (bình minh, hoàng hôn, đèn pha) hoặc chưa được tối ưu hóa trên phần cứng chuyên dụng.

Theo văn bản khóa luận, mục tiêu chính của đề tài là xây dựng hệ thống phát hiện cháy thời gian thực tích hợp trực tiếp camera với tốc độ cao, tiêu tốn tài nguyên hợp lý và duy trì độ chính xác cao trên nền tảng SoC-FPGA Altera Arria 10. Các nhiệm vụ nghiên cứu cụ thể bao gồm:

  1. Thu thập dữ liệu hình ảnh đám cháy và môi trường gây nhiễu, tiến hành huấn luyện mô hình bằng Caffe và Google Colab.
  2. Xây dựng bản phân phối hệ điều hành Linux (SDCard Image) cho bo mạch Altera Arria 10 SoC.
  3. Cài đặt thư viện OpenCV và nền tảng OpenCL lên hệ điều hành Linux nhúng.
  4. Tìm hiểu và hiện thực hóa kiến trúc mạng tăng tốc phần cứng PipeCNN.
  5. Nghiên cứu cải tiến kiến trúc PipeCNN bằng kỹ thuật đường ống hóa (pipeline) nạp dữ liệu đầu vào nhằm tăng tốc độ khung hình (Frames Per Second - FPS).
  6. Tối ưu hóa toàn diện hệ thống bằng phương pháp pipeline song song nhiều khối xử lý.
  7. Đánh giá thực nghiệm mô hình trên tập dữ liệu ảnh kiểm thử tĩnh, tập video kiểm thử và kiểm thử trực tiếp với luồng hình ảnh từ camera trong điều kiện thực tế.

Đối tượng nghiên cứu của đề tài là các giải thuật mạng nơ-ron tích chập dùng cho bài toán phân loại hình ảnh đám cháy và kiến trúc tăng tốc phần cứng PipeCNN dựa trên OpenCL. Phạm vi không gian của đề tài giới hạn ở môi trường các đám cháy ngoài trời (cháy xe cộ, nhà ở đô thị, cháy rừng quy mô lớn) cùng các điều kiện cảnh quan dễ gây nhiễu quang học. Phạm vi thời gian và công nghệ tập trung vào giai đoạn thực nghiệm năm 2022 trên nền tảng phần cứng Altera Arria 10 SoC kết nối webcam ngoại vi.

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

Khóa luận vận dụng lý thuyết về mạng nơ-ron tích chập (CNN) với các lớp chức năng cốt lõi: lớp tích chập (Convolutional Layer) thực hiện phép tính nhân chập 3 chiều (3D Multiply-Accumulate - MAC) giữa các tensor đầu vào với các ma trận bộ lọc; lớp tổng hợp (Pooling Layer) bao gồm Max Pooling và Average Pooling nhằm giảm chiều không gian ma trận đặc trưng và hạn chế hiện tượng quá khớp (overfitting); lớp kết nối đầy đủ (Fully Connected Layer) để chuyển đổi đặc trưng thành phân loại nhị phân thông qua hàm kích hoạt Softmax và hàm kích hoạt phi tuyến tính ReLU (Rectified Linear Unit).

Về giải pháp thiết kế phần cứng, đề tài ứng dụng ngôn ngữ và framework OpenCL (Open Computing Language) theo hướng tổng hợp bậc cao (High-Level Synthesis - HLS). OpenCL cho phép lập trình viên viết mã nguồn hạt nhân (kernel) bằng C/C++ tiêu chuẩn, sau đó trình biên dịch OpenCL Compiler sẽ tự động tổng hợp mã này thành các khối phần cứng mức chuyển thanh ghi (RTL) trên FPGA. Hệ thống bao gồm hai thành phần: OpenCL Host chạy trên vi xử lý ARM điều khiển luồng công việc, bộ nhớ, camera và ngoại vi; OpenCL Device chạy trên mảng logic lập trình được của FPGA để thực thi các phép tính song song khối lượng lớn. Thư viện thị giác máy tính OpenCV (Open Source Computer Vision) được tích hợp trên Linux nhúng để thu nhận khung hình và tiền xử lý ảnh.

Khóa luận sử dụng phương pháp nghiên cứu thực nghiệm kết hợp thiết kế đồng bộ phần cứng và phần mềm (HW/SW Co-design). Dữ liệu huấn luyện được xử lý thông qua framework Caffe kết hợp nền tảng Google Colab với cấu hình GPU Tesla T4 hoặc Tesla P100 và 32 GB RAM.

Về phần cứng thực nghiệm, đề tài sử dụng:

  • Bo mạch phát triển Altera Arria 10 SoC (mã chip Intel Arria 10 10AS066N3F40E2SGI sản xuất trên quy trình công nghệ 20nm của TSMC, tích hợp hệ thống xử lý ARM Cortex-A9 MPCore lõi kép, bộ nhớ 2GB DDR4 ECC dành riêng cho HPS, 4GB DDR4 dành riêng cho FPGA, cổng giao tiếp Gigabit Ethernet, USB 2.0, giao diện thẻ MicroSD).
  • Thiết bị thu nhận hình ảnh ngoại vi Webcam Logitech HD C270 (độ phân giải 720p, tích hợp công nghệ cân bằng ánh sáng RightLight, tốc độ tối đa 30 FPS).

Bộ dữ liệu tự xây dựng trong nghiên cứu có tổng quy mô 26.600 hình ảnh, được phân bổ cụ thể theo cấu trúc sau:

Nhóm dữ liệu Thành phần chi tiết Số lượng ảnh Nhãn phân loại Mô tả nội dung dữ liệu
Dữ liệu đám cháy Xe cộ 1.000 Cháy (Fire) Phương tiện bốc cháy trên đường giao thông
Nhà ở 1.000 Cháy (Fire) Đám cháy nhà ở tập trung tại đô thị
Rừng 1.000 Cháy (Fire) Cháy thảm thực vật quy mô lớn
Cháy khác 6.000 Cháy (Fire) Các đám cháy hỗn hợp tăng độ tổng quát
Dữ liệu không cháy Sương mù 1.500 Bình thường (Normal) Sương mù trên đường và trong rừng
Rừng tự nhiên 2.250 Bình thường (Normal) Cảnh quan rừng cây không có khói lửa
Hoạt động ngoài trời 2.250 Bình thường (Normal) Hoạt động dân sự, cảnh nhà cửa, phương tiện
Đèn quang học 1.500 Bình thường (Normal) Đèn xe, đèn đường gây chói sáng ban đêm
Mặt trời 1.500 Bình thường (Normal) Ánh sáng bình minh và hoàng hôn
Tổng tập gán nhãn Huấn luyện & Kiểm định 21.600 - 18.000 ảnh Train, 3.600 ảnh Validation
Tập kiểm thử tĩnh Đánh giá hệ thống 5.000 Không nhãn Đánh giá độc lập trên thiết bị
Toàn bộ dữ liệu Tổng số 26.600 - Thu thập từ nguồn internet và bộ dữ liệu [9]

Thiết kế và triển khai

Tinh giản kiến trúc mạng nơ-ron AlexNet

Mô hình AlexNet gốc với 5 lớp Convolution và 3 lớp Fully Connected chứa khoảng 57 triệu tham số, đòi hỏi bộ nhớ lớn và băng thông cao. Tác giả đã tiến hành lược bỏ 1 lớp tích chập và thu hẹp số nút ở các lớp kết nối đầy đủ. Bảng thông số cấu trúc mạng được điều chỉnh như sau:

Thứ tự lớp Loại lớp Số lượng bộ lọc Kích thước bộ lọc Bước trượt (Stride) Kích thước bản đồ đặc trưng
0 Input - - - 227 x 227 x 3
1 Convolution 1 96 11 x 11 4 55 x 55 x 96
2 MaxPool 1 - 3 x 3 2 27 x 27 x 96
3 Convolution 2 256 5 x 5 2 27 x 27 x 256
4 MaxPool 2 - 3 x 3 2 13 x 13 x 256
5 Convolution 3 384 3 x 3 1 13 x 13 x 384
6 Convolution 4 256 3 x 3 1 13 x 13 x 256
7 MaxPool 3 - 3 x 3 2 6 x 6 x 256
8 Fully Connected 1 - - - 2.048 nút
9 Fully Connected 2 - - - 2.048 nút (bản gốc 4.096)
10 Fully Connected 3 - - - 8 nút (phân loại ngõ ra)

Việc tinh chỉnh này giúp số lượng tham số giảm từ xấp xỉ 57 triệu xuống còn khoảng 25 triệu tham số (giảm hơn một nửa). Thời gian thực thi suy luận trên một bức ảnh giảm từ 155 ms xuống còn 115 ms.

Xây dựng phần mềm hệ thống trên nền tảng SoC-FPGA

Hệ thống nhúng khởi động từ thẻ nhớ MicroSD với định dạng bao gồm 3 phân vùng kỹ thuật:

  • MBR (Master Boot Record) & Environment Settings: Lưu trữ bảng định vị phân vùng và các biến môi trường cấu hình nạp cho U-boot (địa chỉ IP, địa chỉ MAC, phân bổ RAM).
  • Phân vùng 1 (Partition 1): Chứa tệp nhị phân cấu hình phần cứng FPGA (.rbf), tệp ảnh nhân hệ điều hành Linux nén (zImage) và tệp cây thiết bị phần cứng (socfpga_arria10_socdk_sdmmc.dtb).
  • Phân vùng 2 (Partition 2): Chứa hệ thống tập tin gốc (rootfs) của Linux tích hợp thư viện OpenCV và môi trường thực thi OpenCL Runtime.
  • Phân vùng 3 (Partition 3): Chứa bộ khởi động sơ cấp Preloader (uboot_w_dtb-mkpimage.bin).

Các hạt nhân phần cứng trong PipeCNN và cơ chế xử lý dữ liệu

Mô hình tăng tốc PipeCNN bao gồm chuỗi các hạt nhân (kernel) OpenCL được kết nối thành đường ống xử lý:

  • Data Mover Kernel: Gồm khối MemRD chịu trách nhiệm đọc bản đồ đặc trưng (feature map) và trọng số (weights) từ bộ nhớ ngoài DDR vào FPGA; khối MemWR tiếp nhận đầu ra của hạt nhân tích chập qua các kênh nội bộ, sắp xếp lại theo kích thước vector (VEC_SIZE = 8) và ghi ngược trở lại bộ nhớ Global Memory. Khối MemWR hỗ trợ hai chế độ: Convolution Mode (chỉ ghi dữ liệu) và Pooling Mode (vừa ghi dữ liệu vừa gửi tín hiệu đồng bộ để kích hoạt khối gộp).
  • Convolution Kernel: Thực thi phép nhân chập cho cả lớp Convolution và Fully Connected. Hạt nhân chuyển đổi phép toán tích chập 3D nhiều vòng lặp lồng nhau thành tích chập 1D để tránh trễ xử lý. Cấu trúc gồm cây nhân-cộng (multiplier-adder tree) kết hợp thanh ghi trễ (delayed buffer Reg[N]). Tại lớp Conv 1, dữ liệu ảnh 3 kênh màu được chèn thêm 5 giá trị rỗng (NULL) để đồng bộ hóa thành 8 kênh theo VEC_SIZE. Hệ thống mở rộng tính toán song song thông qua chỉ thị biên dịch #pragma unroll theo hệ số LANE_NUM.
  • Pooling Kernel: Cấu trúc phần cứng dựa trên thanh ghi dịch (shift-register). Khi nhận tín hiệu cho phép từ MemWR, dữ liệu được gom thành từng nhóm Pooling Group dựa trên tham số PT_NUM. Cơ chế bộ đệm luân phiên hai ngăn (Ping-pong buffer có kích thước Pool_final[2][POOL_GP_SIZE_X]) cho phép hệ thống vừa tính toán khối Pooling Group hiện tại vừa đồng thời chuyển kết quả của khối trước đó về bộ nhớ Global Memory mà không làm gián đoạn chu kỳ xử lý.
  • Local Response Normalization (LRN): Đọc dữ liệu từ bộ nhớ ngoài để thực hiện chuẩn hóa đặc trưng lân cận nhằm tránh suy giảm hiệu năng do bão hòa nơ-ron.

Tối ưu hóa hiệu năng bằng kiến trúc Pipeline 2 tầng

Mô hình PipeCNN nguyên bản gặp tình trạng nghẽn cổ chai: tốc độ truy xuất giữa các OpenCL kernel và bộ nhớ FPGA DDR rất cao, nhưng tốc độ truyền giữa vi xử lý ARM CPU và bộ nhớ FPGA DDR lại rất chậm do thiếu kênh truyền DMA trực tiếp. Hơn nữa, hệ thống ban đầu vận hành tuần tự: nạp 1 khung hình từ camera vào DDR, chờ xử lý tuần tự qua 7 lớp của mạng AlexNet, sau khi có kết quả mới nạp khung hình tiếp theo, khiến tốc độ hệ thống chỉ đạt khoảng 9 FPS.

Tác giả đề xuất giải pháp tối ưu theo 2 bước:

  1. Pipeline dữ liệu đầu vào: Tách quá trình nạp khung hình thành khối Initial Frame (chỉ chạy duy nhất 1 lần khi khởi động) và khối Load Frame i. Khi phần cứng FPGA bắt đầu xử lý Lớp 1 (Layer 1) của khung hình hiện tại, CPU lập tức lấy khung hình kế tiếp từ camera và nạp sẵn vào bộ đệm (Buffer). Khi xử lý xong Lớp 7, hệ thống lấy ngay dữ liệu từ Buffer đẩy vào Lớp 1 của chu kỳ sau. Giải pháp này giúp triệt tiêu thời gian chờ đợi nạp ảnh, tăng tốc độ tổng thể thêm 2 đến 3 FPS.
  2. Pipeline toàn bộ hệ thống (Song song hóa đa hệ thống): Do tài nguyên trên bo mạch Altera Arria 10 vẫn còn trống hơn 50%, tác giả nhân bản thêm một luồng xử lý phần cứng hoàn chỉnh thứ hai, tạo thành System 1 và System 2 chạy gối đầu nhau với hai khối bộ đệm Buffer 1 và Buffer 2. Khi System 1 đang tính toán Lớp 2 đến Lớp 7, System 2 tận dụng thời gian này để nạp dữ liệu từ Buffer 1 và chạy Lớp 1. Cơ chế này nâng tốc độ xử lý thêm 5 đến 6 FPS.

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

Chương 1. Giới thiệu tổng quan đề tài

Chương này phân tích bối cảnh biến đổi khí hậu, trích dẫn thống kê thiệt hại cháy rừng giai đoạn 2016-2018 tại Việt Nam để khẳng định sự cần thiết của hệ thống cảnh báo sớm. Tác giả khảo sát các công trình liên quan trên thế giới, chỉ ra nhược điểm của các mô hình trên CPU/GPU hoặc mô phỏng MATLAB đơn thuần (như mô hình đạt 17 FPS năm 2018 nhưng tệp trọng số nặng 238 MB). Từ đó, đề tài xác định mục tiêu xây dựng hệ thống phát hiện cháy thời gian thực trên bo mạch SoC-FPGA bằng OpenCL, vạch rõ 8 nội dung công việc và giới hạn phạm vi nghiên cứu ở các đám cháy ngoài trời.

Chương 2. Convolutional Neural Network — Mạng Nơron tích chập

Chương 2 trình bày có hệ thống nền tảng lý thuyết mạng nơ-ron tích chập, công thức toán học và sơ đồ hoạt động của các lớp Convolution, Max/Average Pooling, Fully Connected cùng các hàm kích hoạt ReLU, Softmax. Tiếp theo, tác giả mô tả chi tiết thông số phần cứng của bo mạch Altera Arria 10 SoC (tiến trình 20nm, lõi kép ARM Cortex-A9, cấu hình DDR4, cổng kết nối) và Webcam Logitech HD C270. Chương này cũng phân tích luồng biên dịch của OpenCL từ mã nguồn C/C++ sang phần cứng RTL thông qua trình biên dịch của hãng và vai trò của thư viện OpenCV trong môi trường nhúng.

Chương 3. Thiết kế tổng quan

Chương 3 trình bày kiến trúc tổng thể kết nối giữa Camera và khối xử lý phần cứng PipeCNN. Trọng tâm của chương là quá trình tinh chỉnh mô hình mạng AlexNet: cắt giảm từ 5 lớp tích chập xuống 4 lớp, giảm số nút các lớp kết nối đầy đủ FC1 và FC2 từ 4.096 xuống 2.048 nút. Tác giả lập bảng so sánh hiệu năng giữa mô hình gốc và mô hình tinh chỉnh trên môi trường MATLAB và bo mạch nhúng, ghi nhận số lượng tham số giảm từ ~57 triệu xuống ~25 triệu, thời gian suy luận giảm từ 155 ms xuống 115 ms trên mỗi ảnh mà vẫn duy trì độ chính xác tương đương.

Chương 4. Thiết kế hệ thống phát hiện cháy

Chương 4 cung cấp chi tiết toàn bộ quá trình hiện thực kỹ thuật: từ khâu phân loại 26.600 ảnh trong bộ dữ liệu huấn luyện bằng Caffe trên Google Colab đến bố cục phân vùng thẻ nhớ MicroSD nạp hệ điều hành Linux nhúng. Tác giả phân tích sâu cấu trúc phần cứng của từng hạt nhân trong PipeCNN bao gồm thuật toán chuyển đổi tích chập 3D thành 1D trong Convolution Kernel, cơ chế trượt của Data Mover Kernel, hàng đợi Shift Register và cấu trúc Ping-pong Buffer của Pooling Kernel. Cuối chương, tác giả chỉ ra nguyên nhân gây nghẽn bus giao tiếp giữa CPU và DDR, từ đó trình bày chi tiết hai giải pháp cải tiến: pipeline nạp dữ liệu đầu vào và pipeline toàn bộ hệ thống bằng hai khối xử lý song song.

Chương 5. Hiện thực, đánh giá kết quả

Chương này trình bày các kịch bản thực nghiệm hệ thống đã triển khai hoàn chỉnh. Hệ thống được đánh giá toàn diện trên ba tập dữ liệu: tập 5.000 ảnh kiểm thử tĩnh, tập video kiểm thử và luồng video thời gian thực từ webcam kết nối qua giao diện RealVNC Viewer. Tác giả tổng hợp các bảng đo lường tốc độ khung hình, độ chính xác nhận diện và tỷ lệ tiêu thụ tài nguyên phần cứng trên bo mạch Altera Arria 10 SoC tương ứng với từng giai đoạn điều chỉnh tham số.

Chương 6. Kết luận và hướng phát triển đề tài

Chương cuối đúc kết các kết quả đạt được của khóa luận, thẳng thắn nêu các khó khăn kỹ thuật phát sinh trong quá trình cấu hình giao tiếp phần cứng không có kênh DMA chuyên dụng và đưa ra sơ đồ kiến trúc phần cứng định hướng phát triển trong tương lai nhằm nâng cao hơn nữa hiệu suất hệ thống.

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

Nghiên cứu đã hiện thực thành công một hệ thống nhận diện đám cháy hoàn chỉnh từ phần mềm xuống phần cứng SoC-FPGA. Toàn bộ các chỉ số kỹ thuật đều được đo lường thực tế trên bo mạch Altera Arria 10 SoC:

Chỉ số đánh giá AlexNet gốc trên PipeCNN AlexNet tinh chỉnh (Chưa Pipeline) Đề xuất Pipeline dữ liệu đầu vào Đề xuất Pipeline toàn bộ hệ thống
Số lượng tham số ~57 triệu tham số ~25 triệu tham số ~25 triệu tham số ~25 triệu tham số
Thời gian tính toán/ảnh 155 ms 115 ms 115 ms 115 ms
Tốc độ khung hình (FPS) - ~9 FPS ~11 - 12 FPS (+2 đến 3 FPS) ~15 - 16 FPS (+5 đến 6 FPS)
Độ chính xác (Tập Test) 99,3% (trên MATLAB) 86,5% (trên PipeCNN) >80% >80% trên tất cả thực nghiệm
Độ trễ camera trực tiếp - Không khả thi thời gian thực Cải thiện độ trễ Đạt 15 FPS ổn định với camera

Các đóng góp chính được nhóm tác giả tự xác định bao gồm:

  1. Chứng minh tính khả thi của việc ứng dụng OpenCL (HLS) để triển khai mô hình học sâu CNN lên SoC-FPGA, giúp rút ngắn thời gian thiết kế vi mạch so với phương pháp RTL truyền thống nhưng vẫn kiểm soát tốt năng lượng tiêu thụ so với các dòng GPU rời.
  2. Thu thập và chuẩn hóa bộ dữ liệu thực tế gồm 26.600 hình ảnh tập trung vào các đám cháy ngoài trời và bổ sung nhiều ảnh gây nhiễu thực tế (sương mù, đèn pha xe, bình minh, hoàng hôn) giúp mô hình không bị nhầm lẫn trong môi trường khắc nghiệt.
  3. Cắt giảm thành công kích thước mô hình AlexNet (giảm hơn một nửa tham số), giúp tiết kiệm tài nguyên lưu trữ và bộ nhớ đệm trên bo mạch nhúng.
  4. Phát hiện chính xác điểm nghẽn thắt cổ chai về băng thông giao tiếp giữa vi xử lý ARM và bộ nhớ ngoài DDR của FPGA; từ đó đề xuất hai giải pháp kiến trúc đường ống: Pipeline nạp dữ liệu đầu vào và Pipeline toàn diện hai hệ thống xử lý gối đầu, tăng tốc độ thực thi từ ~9 FPS lên gần gấp đôi (~15 - 16 FPS), đáp ứng yêu cầu xử lý thời gian thực.

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

Khóa luận ghi nhận các khó khăn và hạn chế kỹ thuật còn tồn tại đúng theo nội dung văn bản:

  • Giao tiếp truyền dữ liệu giữa vi xử lý ARM (HPS) và bộ nhớ DDR của FPGA không sử dụng khối truy cập bộ nhớ trực tiếp (Direct Memory Access - DMA), dẫn đến băng thông trao đổi dữ liệu thấp, tạo thành điểm thắt cổ chai làm hạn chế tốc độ đẩy ảnh vào hệ thống.
  • Mức độ khai thác tài nguyên logic của bo mạch Altera Arria 10 vẫn chưa đạt mức tối đa; ở thiết kế ban đầu lượng tài nguyên sử dụng chưa tới 50%, đòi hỏi phải nhân đôi hệ thống xử lý song song mới khai thác tốt hơn phần cứng.
  • Phạm vi dữ liệu thực nghiệm mới chỉ bao quát các đám cháy không gian ngoài trời (xe cộ, nhà ở đô thị, cháy rừng) và chưa tích hợp thêm các cảm biến phụ trợ để giám sát nồng độ khói hoặc nhiệt độ thực tế.

Hướng phát triển tiếp theo được tác giả đề xuất:

  • Nghiên cứu cơ chế truyền dữ liệu thông qua kênh DMA tốc độ cao giữa ARM CPU và FPGA DDR memory nhằm giải quyết triệt để điểm nghẽn băng thông.
  • Tiếp tục tối ưu hóa kiến trúc hạt nhân phần cứng để nâng cao tốc độ khung hình và độ phân giải hình ảnh xử lý.
  • Tích hợp thêm các khối phần cứng kết nối mạng không dây tầm xa nhằm đưa hệ thống vào thử nghiệm thực tế tại các vùng rừng phòng hộ có nguy cơ cháy cao.

Giá trị tham khảo

Tài liệu khóa luận có giá trị thực tiễn đố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, Hệ thống nhúng và Trí tuệ nhân tạo biên (Edge AI).

Các nội dung đáng tham khảo chuyên sâu gồm có:

  • Quy trình chuẩn bị tệp ảnh phân vùng Linux nhúng và các bước tích hợp nền tảng OpenCL Runtime, OpenCV trực tiếp lên hệ điều hành nhúng của bo mạch SoC-FPGA Altera Arria 10.
  • Phương pháp luận chuyển đổi các phép toán tích chập nhiều chiều phức tạp thành cấu trúc tích chập 1D tối ưu hóa cho FPGA trong mô hình PipeCNN.
  • Thiết kế mạch đệm Ping-pong buffer và thanh ghi dịch kết hợp chỉ thị #pragma unroll để khai thác song song độ rộng kênh phần cứng (LANE_NUM, PT_NUM).
  • Giải pháp thiết kế kiến trúc đường ống (Pipeline) đa luồng để che giấu độ trễ nạp dữ liệu ngoại vi, một kinh nghiệm hữu ích cho các dự án tăng tốc thị giác máy tính trên phần cứng giới hạn băng thông.

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

1. Tại sao nhóm tác giả lại lựa chọn framework OpenCL thay vì viết mã RTL (Verilog/VHDL) truyền thống để triển khai CNN trên FPGA?
Trong Chương 1 và Chương 2, tác giả nêu rõ phương pháp hiện thực CNN bằng ngôn ngữ RTL truyền thống cực kỳ phức tạp, đòi hỏi thời gian mô phỏng và biên dịch vi mạch rất dài. OpenCL đóng vai trò là công cụ tổng hợp bậc cao (HLS), cho phép chuyển đổi mã nguồn C/C++ trực tiếp thành ngôn ngữ mô tả phần cứng, giúp rút ngắn thời gian hiện thực mạng nơ-ron lên SoC-FPGA và dễ dàng kiểm soát việc phân bổ bộ nhớ.

2. Mô hình AlexNet sau khi được nhóm nghiên cứu chỉnh sửa có những thay đổi cụ thể nào về mặt cấu trúc?
Theo Bảng 3.1 và mô tả tại Chương 3, mô hình AlexNet chỉnh sửa đã lược bớt 1 lớp Convolution (chỉ còn 4 lớp tích chập thay vì 5 lớp). Đồng thời, số lượng nơ-ron ở hai lớp kết nối đầy đủ FC 1 và FC 2 được giảm từ 4.096 nút xuống còn 2.048 nút. Cải tiến này giúp số lượng tham số giảm từ khoảng 57 triệu xuống xấp xỉ 25 triệu tham số, giảm thời gian thực thi từ 155 ms xuống 115 ms trên mỗi ảnh.

3. Nguyên nhân chính khiến kiến trúc PipeCNN nguyên bản đạt tốc độ khung hình thấp (~9 FPS) là gì?
Do đường truyền giao tiếp giữa ARM CPU và bộ nhớ DDR của FPGA không sử dụng DMA, dẫn đến băng thông truyền dữ liệu rất thấp, gây tắc nghẽn khi nạp khung hình. Đồng thời, kiến trúc gốc vận hành tuần tự: nạp khung hình từ Camera/SDCard vào DDR, chờ chạy xong toàn bộ 7 lớp của mạng nơ-ron rồi mới nạp khung hình tiếp theo, làm phát sinh thời gian chờ đợi nhàn rỗi lớn của phần cứng.

4. Kỹ thuật Pipeline hai tầng được đề xuất đã nâng cao tốc độ của hệ thống như thế nào?
Bước 1 (Pipeline dữ liệu đầu vào) sử dụng khối Initial Frame và xen kẽ quá trình nạp khung hình kế tiếp (Load Frame i) vào bộ đệm ngay khi Lớp 1 của khung hình trước đang tính toán, giúp tăng tốc độ hệ thống thêm 2 đến 3 FPS. Bước 2 (Pipeline toàn bộ hệ thống) nhân bản hai hệ thống tính toán (System 1 và System 2) chạy xen kẽ luân phiên thông qua hai bộ đệm Buffer 1 và Buffer 2, giúp tăng thêm 5 đến 6 FPS. Tổng cộng, tốc độ hệ thống tăng từ ~9 FPS lên xấp xỉ 15 - 16 FPS.

5. Lớp tích chập đầu tiên (Conv Layer 1) trong kiến trúc PipeCNN xử lý dữ liệu ảnh ngõ vào như thế nào để tương thích phần cứng?
Tại Lớp Conv 1, ảnh đầu vào có kích thước chuẩn 227 x 227 x 3 (3 kênh màu R, G, B). Để thực thi đồng bộ với cấu trúc phần cứng có kích thước vector VECSIZE = 8, hệ thống đã chuẩn hóa dữ liệu bằng cách chèn thêm 5 giá trị rỗng (NULL) vào sau mỗi cụm 3 giá trị R, G, B, biến đổi chiều sâu dữ liệu đầu vào thành 227 x 227 x 8 trước khi đưa vào các kênh tính toán (LANE).

Kết luận

Khóa luận tốt nghiệp của tác giả Trần Quốc Việt và Nguyễn Trương Hoàng Trung đã nghiên cứu và thiết kế hoàn chỉnh hệ thống nhận diện cháy thời gian thực tích hợp camera trên nền tảng bo mạch Altera Arria 10 SoC thông qua framework OpenCL. Bằng cách tinh giảm mạng AlexNet xuống còn 25 triệu tham số và thiết lập kiến trúc đường ống nạp dữ liệu hai tầng song song, đề tài đã giải quyết hiệu quả điểm nghẽn băng thông giữa CPU và bộ nhớ DDR của FPGA. Hệ thống đạt tốc độ xử lý 15 khung hình/giây trên luồng camera thực tế với độ chính xác nhận diện trên 80%, khẳng định tính khả thi của giải pháp đồng thiết kế phần cứng - phần mềm cho các ứng dụng giám sát cảnh báo cháy thông minh.