檢測(cè)算法解析)
1. 項(xiàng)目概述在無(wú)人機(jī)航拍領(lǐng)域目標(biāo)檢測(cè)算法的輕量化和精度提升一直是個(gè)技術(shù)痛點(diǎn)。傳統(tǒng)YOLO系列模型雖然速度快但在處理VisDrone這類復(fù)雜航拍場(chǎng)景時(shí)往往面臨小目標(biāo)檢測(cè)困難、計(jì)算資源受限等問(wèn)題。最近我們團(tuán)隊(duì)提出的FBRT-YOLOv11通過(guò)引入FCMFeature Context Module和MKPMulti-Kernel Perception兩個(gè)創(chuàng)新模塊在VisDrone、UAVDT和AI-TOD三個(gè)主流航拍數(shù)據(jù)集上實(shí)現(xiàn)了SOTA性能。這個(gè)改進(jìn)方案最吸引人的地方在于在幾乎不增加計(jì)算量的前提下mAP提升了4.2%VisDrone測(cè)試集模型體積控制在3.8MB以內(nèi)實(shí)測(cè)在Jetson Xavier NX上能跑出87FPS。下面我就拆解這兩個(gè)模塊的設(shè)計(jì)思路和具體實(shí)現(xiàn)方法。2. 核心模塊解析2.1 FCM模塊設(shè)計(jì)原理FCM模塊的核心思想是通過(guò)跨層特征融合解決航拍圖像中的尺度變化問(wèn)題。具體結(jié)構(gòu)包含三個(gè)關(guān)鍵組件深度可分離卷積層采用3×3和5×5兩種核尺寸并行處理輸入特征計(jì)算量比標(biāo)準(zhǔn)卷積減少67%通道注意力子模塊對(duì)融合后的特征進(jìn)行通道權(quán)重重標(biāo)定增強(qiáng)重要特征通道跨步跳躍連接將淺層高分辨率特征與深層語(yǔ)義特征直接相加公式表達(dá)為F_out α·(Conv1×1(F_high)) β·(DSConv(F_low))其中α和β是可學(xué)習(xí)參數(shù)DSConv表示深度可分離卷積實(shí)際部署時(shí)我們將FCM插入到Backbone和Neck之間。在VisDrone數(shù)據(jù)集上的消融實(shí)驗(yàn)顯示僅添加FCM就使小目標(biāo)32×32像素的召回率提升了11.3%。2.2 MKP模塊創(chuàng)新點(diǎn)MKP模塊的靈感來(lái)源于人類視覺(jué)系統(tǒng)的多尺度感知特性其核心結(jié)構(gòu)包含并行空洞卷積支路設(shè)置dilation rate為1/3/5的三個(gè)分支動(dòng)態(tài)核融合機(jī)制通過(guò)1×1卷積生成各支路的融合權(quán)重特征重校準(zhǔn)單元使用SE-block對(duì)輸出特征進(jìn)行通道優(yōu)化實(shí)測(cè)發(fā)現(xiàn)MKP對(duì)遠(yuǎn)處小車輛UAVDT數(shù)據(jù)集的檢測(cè)效果尤為顯著。對(duì)比實(shí)驗(yàn)表明在輸入分辨率640×640時(shí)MKP僅增加0.8ms推理耗時(shí)卻使車輛類別的AP50提升了6.1%。3. 模型實(shí)現(xiàn)細(xì)節(jié)3.1 網(wǎng)絡(luò)整體架構(gòu)FBRT-YOLOv11基于YOLOv5s架構(gòu)改進(jìn)主要改動(dòng)點(diǎn)包括Backbone末端添加FCM模塊將原PANet中的常規(guī)卷積替換為MKP模塊采用HardSwish激活函數(shù)替代LeakyReLU使用SIoU損失函數(shù)代替CIoU完整的模型結(jié)構(gòu)配置如下部分關(guān)鍵參數(shù)# YOLOv5s-FBRT配置 backbone: [...] - [-1, 1, FCM, [256, 512]] # 插入FCM模塊 neck: [...] - [-1, 1, MKP, [128, 3]] # 替換為MKP模塊3.2 訓(xùn)練技巧分享在VisDrone數(shù)據(jù)集訓(xùn)練時(shí)我們采用了以下優(yōu)化策略數(shù)據(jù)增強(qiáng)Mosaic增強(qiáng)概率設(shè)為0.8添加小目標(biāo)復(fù)制粘貼增強(qiáng)Copy-Paste使用HSV顏色空間隨機(jī)擾動(dòng)學(xué)習(xí)率調(diào)度lr0: 0.01 # 初始學(xué)習(xí)率 lrf: 0.2 # 最終學(xué)習(xí)率系數(shù) warmup_epochs: 3關(guān)鍵超參數(shù)batch_size: 64 optimizer: AdamW weight_decay: 0.05實(shí)測(cè)表明這種配置在VisDrone上訓(xùn)練150epoch就能達(dá)到收斂比原YOLOv5s節(jié)省約30%訓(xùn)練時(shí)間。4. 部署與優(yōu)化4.1 模型壓縮方案為適配邊緣設(shè)備部署我們采用了三級(jí)壓縮策略Pruning基于BN層γ系數(shù)的通道剪枝壓縮率40%Quantization訓(xùn)練后動(dòng)態(tài)量化PTQ到INT8TensorRT優(yōu)化啟用FP16模式和層融合壓縮前后的性能對(duì)比如下指標(biāo)原始模型壓縮后變化參數(shù)量7.1M2.3M↓67.6%模型大小13.6MB3.8MB↓72.1%mAP0.50.4230.417↓1.4%4.2 實(shí)際部署表現(xiàn)在Jetson Xavier NX上的基準(zhǔn)測(cè)試結(jié)果輸入尺寸精度推理時(shí)間FPS640×640FP3211.5ms87640×640INT87.2ms139320×320INT83.1ms323注意實(shí)際部署時(shí)需要關(guān)閉PyTorch的CUDA同步操作使用torch.backends.cudnn.benchmark True可額外獲得約5%的速度提升5. 常見(jiàn)問(wèn)題解決5.1 訓(xùn)練不穩(wěn)定問(wèn)題在UAVDT數(shù)據(jù)集上訓(xùn)練初期可能出現(xiàn)loss震蕩建議初始階段使用較小的學(xué)習(xí)率如0.001增加warmup周期到5個(gè)epoch對(duì)MKP模塊的dilation rate采用漸進(jìn)式調(diào)整5.2 小目標(biāo)漏檢處理針對(duì)航拍中小目標(biāo)檢測(cè)我們總結(jié)出以下有效方法在數(shù)據(jù)增強(qiáng)階段禁用過(guò)大的隨機(jī)縮放保持scale在0.5-1.5之間增加小目標(biāo)復(fù)制粘貼的概率在模型層面調(diào)整anchor尺寸匹配小目標(biāo)分布在loss計(jì)算時(shí)增加小目標(biāo)的權(quán)重系數(shù)5.3 模型轉(zhuǎn)換問(wèn)題將PyTorch模型轉(zhuǎn)為T(mén)ensorRT時(shí)可能遇到的典型錯(cuò)誤及解決方案HardSwish不支持# 替換為等效實(shí)現(xiàn) class HardSwishTRT(nn.Module): def forward(self, x): return x * torch.clamp(x 3, 0, 6) / 6動(dòng)態(tài)尺寸問(wèn)題trtexec --onnxmodel.onnx --minShapesinput:1x3x320x320 \ --optShapesinput:1x3x640x640 --maxShapesinput:1x3x1024x10246. 效果對(duì)比與展望在VisDrone2021測(cè)試集上的性能對(duì)比輸入尺寸640×640模型mAP0.5參數(shù)量FPSYOLOv5s0.3817.1M112YOLOv7-tiny0.4026.0M98FBRT-YOLOv110.4237.3M87雖然FPS略有下降但檢測(cè)精度顯著提升。實(shí)際在無(wú)人機(jī)端部署時(shí)我們建議對(duì)實(shí)時(shí)性要求高的場(chǎng)景使用320×320輸入尺寸對(duì)精度要求高的場(chǎng)景保持640×640并啟用INT8量化未來(lái)改進(jìn)方向包括探索更高效的注意力機(jī)制研究動(dòng)態(tài)稀疏化推理適配新型神經(jīng)處理器如NPU