Giới thiệu dự án
Bối cảnh và thực trạng ngành
Biến đổi khí hậu toàn cầu đang khiến tình trạng cháy rừng và hỏa hoạn ngoài trời diễn biến ngày càng phức tạp và khốc liệt. Theo thống kê từ Tổng cục Lâm nghiệp Việt Nam, năm 2016 cả nước ghi nhận hàng chục vụ cháy rừng gây thiệt hại hơn 3.000 ha; năm 2017 xảy ra 182 vụ cháy lớn nhỏ làm thiêu rụi hơn 350 ha rừng. Đến giai đoạn 2018–2022, hàng loạt vụ cháy bùng phát diện rộng tại các địa phương trọng điểm như Lạng Sơn, Lai Châu, Điện Biên, Gia Lai, Đắk Lắk, Bình Thuận, Kiên Giang và Cà Mau. Hỏa hoạn không chỉ phá hủy tài nguyên sinh thái, gây xói mòn đất, lũ quét và phát thải khí nhà kính khổng lồ, mà còn đe dọa trực tiếp đến tính mạng và gây thiệt hại kinh tế hàng nghìn tỷ đồng.
+-------------------------------------------------------------------------------+
| BỐI CẢNH THỰC TẾ & THÁCH THỨC GIẢI PHÁP |
+-------------------------------------------------------------------------------+
| 1. Diện tích giám sát rộng lớn (hàng chục nghìn ha), địa hình hiểm trở |
| 2. Gió và thảm thực vật khô khiến tốc độ cháy lan nhanh phi tuyến tính |
| 3. Giám sát thủ công hoặc cảm biến khói truyền thống có độ trễ cảnh báo cao |
| 4. Hệ thống AI trên GPU/Cloud tiêu tốn điện năng lớn (>150W), phụ thuộc mạng |
+-------------------------------------------------------------------------------+
Vấn đề cốt lõi (Problem Statement)
Các phương pháp phát hiện cháy truyền thống (cảm biến nhiệt độ, cảm biến khói ion hóa) chỉ hoạt động hiệu quả trong không gian kín hẹp và hoàn toàn bất khả thi khi triển khai tại các cánh rừng bạt ngàn hoặc công trường ngoài trời. Trong khi đó, việc ứng dụng Trí tuệ nhân tạo (AI) và Mạng nơ-ron tích chập (Convolutional Neural Network - CNN) trên các hệ thống điện toán biên (Edge Computing) gặp phải các điểm nghẽn kỹ thuật nghiêm trọng:
- Hiệu năng CPU: Bộ vi xử lý nhúng thông thường không đủ năng lực tính toán dấu phẩy động cho các ma trận hàng triệu tham số, dẫn đến độ trễ cao (dưới 2 FPS).
- Tiêu thụ năng lượng của GPU: Các card đồ họa GPU rời cho tốc độ xử lý tốt nhưng tiêu thụ công suất từ 75W–250W, không phù hợp cho các trạm giám sát chạy bằng pin mặt trời ở vùng sâu vùng xa.
- Độ phức tạp phát triển phần cứng (RTL/HDL): Việc thiết kế bộ tăng tốc CNN bằng ngôn ngữ phần cứng truyền thống (VHDL/Verilog) đòi hỏi thời gian thiết kế, mô phỏng và kiểm thử cực kỳ kéo dài.
Mục tiêu dự án
Đồ án tập trung nghiên cứu, thiết kế và hiện thực hóa hệ thống phát hiện cháy theo thời gian thực trên nền tảng vi mạch tích hợp SoC-FPGA thông qua các mục tiêu định lượng:
- Thiết kế và tối ưu hóa kiến trúc CNN: Tinh chỉnh mạng AlexNet giảm hơn 50% lượng tham số nhưng vẫn duy trì độ chính xác nhận diện trên 85%.
- Xây dựng bộ dữ liệu hỏa hoạn thực tế: Thu thập và gán nhãn 26.600 hình ảnh đa dạng bối cảnh (cháy xe, cháy nhà, cháy rừng) cùng các mẫu nhiễu phức tạp (sương mù, đèn pha xe, hoàng hôn, bình minh).
- Hiện thực hóa tăng tốc phần cứng với OpenCL: Triển khai kiến trúc xử lý song song PipeCNN trên kit phần cứng Altera Arria 10 SoC Board.
- Cải tiến thông lượng xử lý: Đề xuất kỹ thuật Pipelining dữ liệu đầu vào và Pipelining toàn bộ hệ thống (Dual-System Pipeline) để loại bỏ hiện tượng nghẽn cổ chai bộ nhớ giữa CPU ARM và FPGA DDR.
- Tích hợp Camera thời gian thực: Kết nối webcam độ phân giải cao và xuất luồng cảnh báo thời gian thực đạt tốc độ xử lý $\ge 15$ FPS.
Phương pháp tiếp cận
Đề tài lựa chọn hướng tiếp cận kết hợp giữa Hệ thống phần cứng khả trình (FPGA) và ngôn ngữ tổng hợp bậc cao OpenCL (Open Computing Language). Giải pháp này cho phép chuyển đổi mã nguồn C/C++ trực tiếp thành các khối phần cứng Register Transfer Level (RTL), tận dụng triệt để kiến trúc luồng dữ liệu song song (pipelined streaming) và bộ nhớ phân tán trên chip của FPGA để đạt hiệu năng xử lý cao với mức tiêu thụ điện năng tối ưu.
+-----------------------------------------------------------------------------+
| KẾT QUẢ KỲ VỌNG & CHỈ SỐ ĐO LƯỜNG |
+-----------------------------------------------------------------------------+
| * Tốc độ xử lý khung hình (Frame Rate) : 15 - 16 FPS (Real-time) |
| * Độ chính xác nhận diện (Accuracy) : > 80% trên Video & Camera thực tế |
| * Thời gian trích xuất đặc trưng : Giảm từ 155 ms xuống 115 ms/ảnh |
| * Số lượng tham số mô hình : Giảm 56.1% (từ ~57M còn ~25M) |
| * Mức độ sử dụng tài nguyên FPGA : Dưới 50% Logic Elements Arria 10 |
+-----------------------------------------------------------------------------+
Phạm vi và giới hạn
- Phạm vi: Nhận diện ngọn lửa và đám cháy trong môi trường ngoài trời ban ngày và ban đêm (cháy rừng, cháy phương tiện giao thông, hỏa hoạn nhà xưởng) tích hợp cùng camera quan sát Logitech HD C270.
- Giới hạn: Hệ thống tập trung vào bài toán phân loại nhị phân (Cháy / Bình thường) theo khung hình thời gian thực; chưa thực hiện khoanh vùng tọa độ điểm cháy (Bounding Box Regression) hoặc phân đoạn ngữ nghĩa đám khói (Semantic Segmentation).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
+--------------------+--------------------------------+--------------------------------+
| Nền tảng thực thi | Ưu điểm chính | Nhược điểm & Rào cản |
+--------------------+--------------------------------+--------------------------------+
| CPU (x86 / ARM) | Dễ lập trình, chi phí thấp | Tốc độ suy luận thấp (< 3 FPS) |
| GPU (Nvidia Jetson)| Song song hóa cao, đa dạng libs| Công suất cao, tỏa nhiệt lớn |
| FPGA (Thuần RTL) | Tiết kiệm điện, độ trễ cực thấp| Thời gian thiết kế RTL quá lâu |
| SoC-FPGA (OpenCL) | Song song hóa, phát triển nhanh| Cần tối ưu băng thông Host-Mem |
+--------------------+--------------------------------+--------------------------------+
Ma trận ưu tiên yêu cầu người dùng (MoSCoW)
- Must have: Nhận diện cháy chính xác với độ trễ dưới 100ms; hoạt động ổn định trên SoC-FPGA Arria 10; tích hợp luồng vào trực tiếp từ Camera qua cổng USB.
- Should have: Loại trừ chính xác các tác nhân gây dương tính giả (đèn pha xe, ánh nắng mặt trời, sương mù dày); giao diện hiển thị cảnh báo trực quan qua RealVNC Viewer.
- Could have: Cơ chế nạp dữ liệu gối đầu đa tầng (Multi-buffer Pipelining) để khai thác tối đa tài nguyên nhàn rỗi của FPGA.
- Won't have (lần này): Kết nối truyền thông không dây 5G/LoRa diện rộng và thuật toán định vị tọa độ GPS của đám cháy.
Thiết kế hệ thống
Kiến trúc tổng thể hệ thống
Hệ thống là sự kết hợp chặt chẽ giữa hệ thống xử lý phần mềm HPS (Hard Processor System - ARM Cortex-A9) và ma trận logic lập trình được FPGA (Intel Arria 10), kết nối thông qua giao tiếp bus nội AXI/PCIe tốc độ cao.
+-------------------------------------------------------------+
| HỆ THỐNG SOc-FPGA ARRIA 10 |
| |
| +-----------------------------------------------------+ |
| | HPS (ARM Cortex-A9) - Linux Embedded OS | |
| | | |
| | +-------------------+ +--------------------+ | |
| | | OpenCV Video In | ---> | OpenCL Host Driver | | |
| | +-------------------+ +--------------------+ | |
| +---------------------------------------|-------------+ |
| | AXI Bridge |
| +---------------------------------------|-------------+ |
| | FPGA Fabric (PipeCNN Hardware Acceleration) | |
| | v | |
| | +------------+ +-------------+ +------------+ | |
| | | MemRD Eng |-->| Conv Vector |-->| MemWR Eng | | |
| | | (DataMover)| | Engine (1D) | | (Sync Out) | | |
| | +------------+ +-------------+ +------------+ | |
| | | | |
| | v | |
| | +--------------+ | |
| | | MaxPool Unit | | |
| | | (Ping-Pong) | | |
| | +--------------+ | |
| +-----------------------------------------------------+ |
+-------------------------------------------------------------+
Ngăn xếp công nghệ (Technology Stack)
- Phần cứng chính: Kit phát triển Altera/Intel Arria 10 SoC (10AS066N3F40E2SG1) với 2GB DDR4 ECC cho HPS và 4GB DDR4 riêng cho FPGA.
- Cảm biến hình ảnh: Logitech HD Webcam C270 (Độ phân giải HD 720p, công nghệ cân bằng sáng RightLight, USB 2.0).
- Hệ điều hành nhúng: Linux SoC-FPGA Kernel 4.9.x / RootFS Busybox.
- Thư viện xử lý ảnh: OpenCV 3.4.x (C++ API).
- Môi trường tổng hợp phần cứng: Intel FPGA SDK for OpenCL (v17.1 / v18.0) và Quartus Prime Pro Edition.
- Framework huấn luyện AI: Caffe Framework kết hợp Google Colab (Nvidia Tesla T4 / P100 GPU).
Cấu trúc lưu trữ và phân vùng thẻ nhớ (SD Card Layout)
Để hệ thống khởi động độc lập trên SoC-FPGA, thẻ nhớ MicroSD được chia thành 3 phân vùng tiêu chuẩn:
- Master Boot Record (MBR) & Environment Settings: Bảng định tuyến phần vùng và thiết lập biến môi trường U-Boot (địa chỉ IP, MAC, thanh ghi RAM).
- Partition 1 (FAT32): Chứa tệp nhân hệ điều hành
zImage, cây thiết bị socfpga_arria10_socdk_sdmmc.dtb, và tệp bitstream cấu hình phần cứng socfpga.rbf.
- Partition 2 (ext4): Chứa Root Filesystem (
rootfs) của Linux nhúng, các thư viện liên kết động OpenCL Runtime và OpenCV.
- Partition 3 (RAW Type A2): Chứa bộ tiền nạp phần cứng
uboot_w_dtb-mkpimage.bin.
Phương pháp luận phát triển (Methodology)
Dự án áp dụng quy trình thiết kế đồng phần cứng - phần mềm (Hardware/Software Co-design) kết hợp mô hình kiểm thử lặp:
- Giai đoạn 1: Nghiên cứu lý thuyết mạng tích chập, phân tích toán học mô hình PipeCNN và đánh giá độ phức tạp tính toán.
- Giai đoạn 2: Xây dựng bộ dữ liệu huấn luyện, thực hiện tiền xử lý, tăng cường dữ liệu (Data Augmentation) và huấn luyện mô hình trên Caffe/MATLAB.
- Giai đoạn 3: Xây dựng Linux Board Support Package (BSP), biên dịch nhân Linux nhúng và cài đặt môi trường OpenCL Runtime trên SoC-FPGA.
- Giai đoạn 4: Tối ưu hóa kiến trúc PipeCNN bằng kỹ thuật tổng hợp phần cứng và lập trình đường ống song song.
- Giai đoạn 5: Tích hợp phần cứng hoàn chỉnh, kiểm thử thực nghiệm trên tập ảnh tĩnh, tập video và luồng camera trực tiếp.
Implementation và kết quả
Quy trình phát triển và chi tiết thuật toán
Tối ưu hóa cấu trúc mô hình AlexNet
Mạng AlexNet nguyên bản bao gồm 5 lớp Convolution và 3 lớp Fully-Connected (FC) với khoảng 57 triệu tham số, đòi hỏi dung lượng bộ nhớ lớn và băng thông cao. Nhóm đã tinh chỉnh cấu trúc bằng cách loại bỏ lớp Conv5, đồng thời giảm số lượng nơ-ron tại các lớp Fully-Connected từ 4096 xuống 2048.
+-----------+------------+-------------+--------+---------+--------------------+
| Tên Lớp | Số Lượng | Kích Thước | Stride | Padding | Kích Thước Ngõ Ra |
| (Layer) | Filter | Filter | | | (Feature Map) |
+-----------+------------+-------------+--------+---------+--------------------+
| Input | - | - | - | - | 227 x 227 x 3 |
| Conv 1 | 96 | 11 x 11 | 4 | 0 | 55 x 55 x 96 |
| MaxPool 1 | - | 3 x 3 | 2 | 0 | 27 x 27 x 96 |
| Conv 2 | 256 | 5 x 5 | 1 | 2 | 27 x 27 x 256 |
| MaxPool 2 | - | 3 x 3 | 2 | 0 | 13 x 13 x 256 |
| Conv 3 | 384 | 3 x 3 | 1 | 1 | 13 x 13 x 384 |
| Conv 4 | 256 | 3 x 3 | 1 | 1 | 13 x 13 x 256 |
| MaxPool 3 | - | 3 x 3 | 2 | 0 | 6 x 6 x 256 |
| FC 1 | 2048 | Tuyến tính | - | - | 2048 |
| FC 2 | 2048 | Tuyến tính | - | - | 2048 |
| FC 3 | 2 / 8 | Tuyến tính | - | - | Softmax Output |
+-----------+------------+-------------+--------+---------+--------------------+
Thiết kế Convolution Kernel dạng 1D Vectorized
Phép tích chập không gian 3 chiều tiêu chuẩn:
$$D_o(f_o, y, x) = \sum_{f_i=0}^{C_l-1} \sum_{k_y=0}^{K-1} \sum_{k_x=0}^{K-1} W_l(f_o, f_i, k_y, k_x) \cdot D_i(f_i, y \cdot S + k_y, x \cdot S + k_x)$$
Được làm phẳng (flatten) thành phép tính tích chập 1D để loại bỏ triệt để các vòng lặp lồng nhau, giúp bộ biên dịch OpenCL ánh xạ trực tiếp thành cây nhân cộng đa tầng (Multiplier-Adder Tree):
$$D_o(f_o) = \sum_{j=1}^{C_l \times K \times K} W_l(f_o, j) \cdot D_i(j)$$
// Mã giả OpenCL Kernel thực thi Convolution song song
__kernel void Convolution_Kernel(
__global const float8* restrict input_feature,
__global const float8* restrict weight_data,
__global float* restrict output_feature,
const int CN, const int output_conv_num)
{
// Định nghĩa bộ đệm dịch (Shift-register delayed buffer)
float Reg[PIPE_DEPTH];
for (int i = 0; i < output_conv_num; i++) {
#pragma unroll by factor of LANE_NUM
for (int lane = 0; lane < LANE_NUM; lane++) {
float temp_sum = 0.0f;
for (int j = 0; j < CN; j++) {
// Đọc dữ liệu vector hóa trực tiếp từ Channel
float8 di = read_channel_altera(chan_in_data[lane]);
float8 wi = read_channel_altera(chan_in_weight[lane]);
// Tích vô hướng phần tử vector
temp_sum += dot(di.s0123, wi.s0123) + dot(di.s4567, wi.s4567);
// Cập nhật delayed buffer
#pragma unroll
for (int n = PIPE_DEPTH - 1; n > 0; n--) {
Reg[n] = Reg[n - 1];
}
Reg[0] = temp_sum;
}
// Tích lũy và ghi kết quả ngõ ra kèm hàm kích hoạt ReLU
output_feature[i * LANE_NUM + lane] = fmax(0.0f, Reg[PIPE_DEPTH - 1]);
}
}
}
Kiến trúc Max Pooling và Ping-Pong Buffer
Để giải quyết độ trễ trong quá trình gom cụm dữ liệu, khối Max Pooling sử dụng cấu trúc bộ đệm hoán đổi (Ping-Pong Buffer) Pool_final[2][POOL_GP_SIZE_X]. Khi dữ liệu của nhóm Pooling Group 0 đang được ghi xuống bộ nhớ ngoài Global Memory từ Pool_final[0], khối tính toán phần cứng tiếp tục thực thi Pooling Group 1 và lưu song song vào Pool_final[1], loại bỏ hoàn toàn thời gian chết của phần cứng.
+-------------------------------------------------------------+
| HOẠT ĐỘNG BỘ ĐỆM PING-PONG BUFFER |
| |
| Giai đoạn t: |
| [Tính toán Pool Group 0] ---> Ghi vào [Pool_final[0]] |
| |
| Giai đoạn t+1: |
| [Tính toán Pool Group 1] ---> Ghi vào [Pool_final[1]] |
| | |
| [Pool_final[0]] ----------> Đẩy xuống Global DDR Memory |
+-------------------------------------------------------------+
Đề xuất cải tiến luồng dữ liệu Pipeline
Đề xuất 1: Pipelining nạp dữ liệu đầu vào (Input Frame Pipelining)
Trong mô hình PipeCNN gốc, hệ thống thực hiện tuần tự: Nạp ảnh từ Camera vào FPGA DDR $\rightarrow$ Tính toán tuần tự 7 Layer $\rightarrow$ Trả kết quả $\rightarrow$ Nạp ảnh tiếp theo. Do giao tiếp giữa ARM CPU và FPGA DDR không hỗ trợ DMA tốc độ cao, tốc độ toàn hệ thống bị giới hạn ở 9 FPS. Nhóm đề xuất cơ chế gối đầu: khi FPGA đang xử lý Layer 1 của Frame $N$, CPU ARM đồng thời đọc Frame $N+1$ từ Camera và nạp sẵn vào bộ đệm DDR. Cải tiến này giúp tốc độ tăng thêm $2 - 3$ FPS.
Đề xuất 2: Pipelining toàn bộ hệ thống (Dual-System Pipeline)
Nhận thấy mạng AlexNet tối ưu chỉ chiếm dưới 50% tài nguyên logic của Arria 10, nhóm nhân bản kiến trúc phần cứng thành hai hệ thống xử lý song song (System 1 và System 2) hoạt động xen kẽ theo chu kỳ đường ống:
- Khi System 1 thực thi các lớp $L_2 \rightarrow L_7$ cho Frame $N$, System 2 bắt đầu thực thi $L_1$ cho Frame $N+1$ và đồng thời nạp Frame $N+2$ vào Buffer 2.
- Khi System 2 thực thi $L_2 \rightarrow L_7$ cho Frame $N+1$, System 1 quay lại thực thi $L_1$ cho Frame $N+2$ từ dữ liệu có sẵn trong Buffer 2.
+------------+-----------------------------------+-----------------------------------+
| Thời điểm | System 1 (FPGA Fabric Core 1) | System 2 (FPGA Fabric Core 2) |
+------------+-----------------------------------+-----------------------------------+
| T = 0 | Initial Frame -> Xử lý L1 (Frm 0) | Nghỉ (Chờ dữ liệu) |
| T = 1 | Thực thi L2 -> L7 (Frame 0) | Load Frm 1 -> Xử lý L1 (Frm 1) |
| T = 2 | Load Frm 2 -> Xử lý L1 (Frm 2) | Thực thi L2 -> L7 (Frame 1) |
| T = 3 | Thực thi L2 -> L7 (Frame 2) | Load Frm 3 -> Xử lý L1 (Frm 3) |
+------------+-----------------------------------+-----------------------------------+
Kiểm thử và đánh giá kết quả
Tập dữ liệu thực nghiệm (Dataset Breakdown)
Bộ dữ liệu gồm 26.600 hình ảnh được phân bổ chi tiết nhằm đảm bảo tính bao quát và khả năng chống nhiễu:
+------------------+----------+---------------+-------------------------------------+
| Nhóm Dữ Liệu | Số Lượng | Phân Loại | Đặc Tính Kỹ Thuật |
+------------------+----------+---------------+-------------------------------------+
| Cháy Phương Tiện | 1.000 | Cháy (Fire) | Xe hơi, xe tải bốc cháy trên đường |
| Cháy Đô Thị | 1.000 | Cháy (Fire) | Hỏa hoạn nhà xưởng, khu dân cư |
| Cháy Rừng Quy Mô | 1.000 | Cháy (Fire) | Cháy tán rừng, cháy thảm thực vật |
| Cháy Khác | 6.000 | Cháy (Fire) | Đám cháy đa dạng góc nhìn |
| Sương Mù | 1.500 | Không (Normal)| Khói sương đường đèo, rừng ẩm |
| Rừng Tự Nhiên | 2.250 | Không (Normal)| Thảm thực vật xanh, mùa thay lá |
| Hoạt Động Ngoài | 2.250 | Không (Normal)| Tòa nhà, đường xá ban ngày |
| Ánh Đèn Ban Đêm | 1.500 | Không (Normal)| Đèn pha ô tô, đèn cao áp ban đêm |
| Hoàng Hôn / Sáng | 1.500 | Không (Normal)| Ánh sáng vàng/đỏ dễ nhầm ngọn lửa |
| Tập Test Độc Lập | 5.000 | Đánh giá | Không gán nhãn, kiểm tra tổng thể |
+------------------+----------+---------------+-------------------------------------+
Kết quả thực nghiệm và đối sánh hiệu năng
+------------------------+-------------------+-------------------+------------------+
| Tiêu Chí So Sánh | AlexNet Nguyên Bản| AlexNet Tối Ưu | Mức Độ Cải Thiện |
+------------------------+-------------------+-------------------+------------------+
| Số lượng tham số | ~57 triệu | ~25 triệu | Giảm 56.1% |
| Thời gian thực thi/ảnh | 155 ms | 115 ms | Nhanh hơn 25.8% |
| Độ chính xác (MATLAB) | 99.3% | 100.0% | Tương đương |
| Độ chính xác (PipeCNN) | 86.5% | 86.5% | Duy trì ổn định |
| Tốc độ luồng Camera | ~9 FPS | ~16 FPS | Tăng 77.8% |
| Mức dùng Logic Arria10 | ~24% LEs | ~45% LEs (Dual) | Tối ưu tài nguyên|
+------------------------+-------------------+-------------------+------------------+
Đổi mới và đóng góp
Các cải tiến kỹ thuật đột phá
- Tinh giản mạng học sâu chuyên biệt cho Edge FPGA: Bằng cách loại bỏ lớp tích chập thứ 5 và tái cấu trúc các lớp kết nối đầy đủ từ 4096 xuống 2048 chiều, mô hình giảm tải $32 \times 10^6$ phép tính mà không làm suy giảm độ chính xác nhận diện trên tập kiểm thử thực tế.
- Kỹ thuật Vector hóa dữ liệu đầu vào ($VEC_SIZE = 8$): Để đồng bộ hóa luồng dữ liệu 3 kênh (R, G, B) với độ rộng vector tính toán phần cứng, thuật toán chèn 5 giá trị NULL có kiểm soát giúp chuẩn hóa ma trận đầu vào thành kích thước $227 \times 227 \times 8$, tối ưu hóa 100% các khối tính toán DSP trên FPGA.
- Kiến trúc Pipelining toàn diện loại bỏ điểm nghẽn bộ nhớ: Việc xây dựng kiến trúc luân phiên hai hệ thống phần cứng (Dual-System Hardware) trên cùng một vi mạch đã khai thác triệt để phần tài nguyên dư thừa (>50%) của Arria 10, tăng gấp đôi thông lượng xử lý khung hình từ 9 FPS lên 16 FPS.
+--------------------+---------------------+--------------------+--------------------+
| Giải Pháp / Đề Tài | Nền Tảng Triển Khai | Kích Thước Mô Hình | Tốc Độ Xử Lý (FPS) |
+--------------------+---------------------+--------------------+--------------------+
| Muhammad et al.[4] | PC (MATLAB R2015a) | ~238 MB | 17 FPS (Giả lập) |
| MCCNN (2018) [2] | Server GPU rời | Lớn (>150 MB) | Không di động |
| MobileNet+5G [3] | Nhúng ARM CPU | Nhỏ (~15 MB) | < 8 FPS |
| Đề Tài Khóa Luận | Intel Arria 10 SoC | ~98 MB (Optimized) | 16 FPS (Thời gian |
| (SoC-FPGA OpenCL) | | | thực tại biên) |
+--------------------+---------------------+--------------------+--------------------+
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tế
- Chòi quan sát cháy rừng thông minh: Lắp đặt trạm giám sát chạy bằng pin năng lượng mặt trời tại các khu bảo tồn thiên nhiên. Hệ thống phân tích luồng camera liên tục và phát tín hiệu cảnh báo hỏa hoạn tự động.
- Hệ thống giám sát giao thông đô thị và đường hầm: Tích hợp trực tiếp vào mạng lưới camera giám sát đường cao tốc để phát hiện ngay lập tức các sự cố cháy nổ phương tiện giao thông.
- Nhà xưởng và kho bãi hóa chất: Giám sát tự động các vùng không gian mở có trần cao — nơi các đầu báo khói truyền thống mất nhiều phút mới có thể kích hoạt.
+-------------------------------------------------------------+
| SƠ ĐỒ TRIỂN KHAI TRẠM BIÊN |
| |
| [Pin Mặt Trời] ---> [Bộ Quản Lý Nguồn 5V DC] |
| | |
| v |
| +-----------------------------------------------------+ |
| | Logitech HD C270 | ---> [ Arria 10 SoC-FPGA Box ] | |
| +------------------+ | (Linux + OpenCL Engine) | |
| +---------------------------+ |
| | |
| v |
| +--------------------------+ |
| | Còi Báo Động & Relay Kích| |
| | Hoạt Hệ Thống Chữa Cháy | |
| +--------------------------+ |
+-------------------------------------------------------------+
Phân tích chi phí và hiệu quả đầu tư (ROI)
- Chi phí năng lượng: Một cụm máy chủ GPU phục vụ xử lý 4 luồng camera tiêu tốn xấp xỉ $300\text{W} - 500\text{W}$ điện năng liên tục ($~3.500\text{ kWh/năm}$). Hệ thống SoC-FPGA Arria 10 chỉ tiêu thụ khoảng $15\text{W} - 25\text{W}$, giúp tiết kiệm hơn 90% chi phí vận hành năng lượng.
- Thời gian hoàn vốn (ROI): Giảm thiểu rủi ro thiệt hại do một vụ cháy rừng quy mô trung bình (ước tính thiệt hại từ vài trăm triệu đến hàng chục tỷ đồng) giúp hệ thống đạt điểm hòa vốn kinh tế ngay khi ngăn chặn thành công sự cố đầu tiên.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Băng thông kết nối CPU - DDR: Việc giao tiếp giữa nhân ARM HPS và bộ nhớ DDR của FPGA chưa tích hợp bộ điều khiển DMA trực tiếp bằng phần cứng, làm giới hạn tốc độ truyền khung hình từ camera.
- Độ phân giải đầu vào cố định: Ảnh đầu vào bắt buộc phải resize về kích thước chuẩn $227 \times 227$ pixel, có thể làm suy giảm chi tiết của các đám cháy ở cự ly quá xa.
- Phạm vi phân loại: Hệ thống chỉ thực hiện phân loại toàn khung hình (Frame-level Classification), chưa xuất tọa độ điểm cháy dạng hộp giới hạn (Bounding Box).
Lộ trình nâng cấp và mở rộng
- Nâng cấp thuật toán phát hiện vật thể: Chuyển đổi mô hình phân loại sang mạng Tiny-YOLOv4 hoặc SSD-MobileNet viết bằng OpenCL để khoanh vùng chính xác tọa độ và diện tích đám cháy.
- Tối ưu hóa phần cứng DMA Engine: Thiết kế khối Direct Memory Access (DMA) chuyên dụng trên FPGA Fabric để truyền trực tiếp dữ liệu hình ảnh từ Camera USB vào DDR Memory mà không cần CPU ARM can thiệp.
- Mở rộng kết nối mạng diện rộng không dây: Tích hợp module truyền thông tầm xa LoRaWAN hoặc 5G NB-IoT để truyền dữ liệu cảnh báo và hình ảnh nén về trung tâm điều hành phòng cháy chữa cháy từ khoảng cách hàng chục km.
Đối tượng hưởng lợi
+------------------+-----------------------------------------------------------------+
| Nhóm Đối Tượng | Lợi Ích Cụ Thể Nhận Được |
+------------------+-----------------------------------------------------------------+
| Sinh Viên & Kỹ Sư| Tài liệu mẫu chi tiết về thiết kế SoC-FPGA, cách viết OpenCL HLS|
| Hệ Thống Nhúng | chuẩn hóa và phương pháp cấu hình Linux nhúng trên vi mạch Intel|
+------------------+-----------------------------------------------------------------+
| Doanh Nghiệp & | Giải pháp phần cứng Edge AI trọn gói, tiết kiệm điện năng, có khả|
| Tích Hợp Hệ Thống| năng chống chịu môi trường khắc nghiệt ngoài trời không cần quạt |
+------------------+-----------------------------------------------------------------+
| Nhà Nghiên Cứu | Phương pháp luận tối ưu hóa pipeline song song trên FPGA và bộ dữ|
| Trí Tuệ Nhân Tạo | liệu 26.600 ảnh thực tế đã được chuẩn hóa chống dương tính giả |
+------------------+-----------------------------------------------------------------+
Câu hỏi thường gặp
1. Yêu cầu phần cứng tối thiểu để triển khai hệ thống là gì?
Hệ thống yêu cầu bo mạch Intel/Altera Arria 10 SoC (hoặc các dòng SoC-FPGA tương đương như Cyclone V SoC, Zynq-7000 với tối thiểu 110K Logic Elements), tối thiểu 2GB RAM cho HPS, thẻ nhớ MicroSD dung lượng từ 8GB trở lên (Class 10 tốc độ cao) và camera chuẩn UVC hỗ trợ giao tiếp USB 2.0.
2. Làm thế nào hệ thống phân biệt được đám cháy với ánh sáng hoàng hôn hoặc đèn xe?
Tập dữ liệu huấn luyện đã được bổ sung 4.500 ảnh chứa các tác nhân gây nhiễu đặc trưng (1.500 ảnh sương mù, 1.500 ảnh đèn xe/đèn đường, 1.500 ảnh bình minh và hoàng hôn). Quá trình huấn luyện sâu giúp các bộ lọc trích xuất được cả đặc trưng về hình thái vân bề mặt (texture) và cấu trúc tán sắc của ngọn lửa chứ không chỉ dựa vào cường độ màu đỏ/vàng đơn thuần.
3. Có thể thay thế Camera Logitech C270 bằng Camera chuyên dụng khác không?
Hoàn toàn có thể. Nhờ sử dụng thư viện OpenCV trên nhân Linux HPS, hệ thống hỗ trợ toàn bộ các dòng camera chuẩn giao tiếp V4L2 (Video4Linux2), Camera IP RTSP qua cổng Gigabit Ethernet hoặc Camera ảnh nhiệt (Thermal Camera) giao tiếp qua bus SPI/I2C.
4. Tại sao lại chọn OpenCL thay vì viết trực tiếp bằng Verilog/VHDL?
OpenCL cho phép mô tả thuật toán ở cấp độ trừu tượng C/C++, giúp giảm hơn 70% thời gian phát triển và gỡ lỗi so với RTL truyền thống. Trình biên dịch OpenCL Offline Compiler (AOC) tự động tổng hợp cây nhân cộng song song, quản lý thanh ghi trượt (shift-registers) và tối ưu hóa tài nguyên phần cứng với hiệu năng đạt xấp xỉ thiết kế thủ công.
5. Chi phí phần cứng và thời gian triển khai một trạm thực tế mất bao lâu?
Chi phí phần cứng cho một bo mạch SoC-FPGA tầm trung và camera dao động từ 15–25 triệu VNĐ. Việc nạp toàn bộ hệ điều hành Linux và bitstream OpenCL thông qua thẻ nhớ MicroSD chỉ mất dưới 5 phút cho mỗi thiết bị mới.
Kết luận
Đồ án tốt nghiệp "Nghiên cứu và thiết kế hệ thống phát hiện cháy trên SoC-FPGA" của nhóm tác giả Trần Quốc Việt và Nguyễn Trương Hoàng Trung (Trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM, hướng dẫn bởi ThS. Ngô Hiếu Trường) đã giải quyết trọn vẹn bài toán phát hiện hỏa hoạn thời gian thực tại biên. Bằng việc kết hợp sáng tạo giữa mô hình học sâu AlexNet tối ưu, khung tăng tốc phần cứng PipeCNN trên nền OpenCL và kỹ thuật Pipelining luân phiên đa hệ thống trên vi mạch Altera Arria 10 SoC, hệ thống đạt tốc độ xử lý vượt trội 16 FPS với độ chính xác trên 80% trong điều kiện môi trường thực tế phức tạp.
Công trình mở ra hướng ứng dụng thực tiễn to lớn cho các trạm cảnh báo sớm thiên tai, chòi quan sát bảo vệ rừng quốc gia và các giải pháp an ninh thông minh, khẳng định tính khả thi vượt bậc của công nghệ SoC-FPGA trong kỷ nguyên Trí tuệ nhân tạo vạn vật (AIoT).