合FDSM頻率域動(dòng)態(tài)選擇:紅外與可見光融合檢測(cè))
做目標(biāo)檢測(cè)改進(jìn)的兄弟應(yīng)該都遇到過這種場(chǎng)景同樣的算法單模態(tài)輸入調(diào)來調(diào)去也就漲個(gè)零點(diǎn)幾個(gè)點(diǎn)但把紅外和可見光兩塊信息合起來用上限一下子就不一樣了。白天可見光紋理清楚晚上或者惡劣天氣全靠紅外熱輻射撐場(chǎng)面兩種模態(tài)各有各的“主場(chǎng)”也各有各的短板。怎么讓網(wǎng)絡(luò)自己學(xué)會(huì)該看哪路信號(hào)別被另一路的噪聲帶偏這就是多模態(tài)融合里最核心、也最折磨人的問題。這個(gè)項(xiàng)目做的就是這件事在YOLOv12的基礎(chǔ)上引入一個(gè)叫FDSM的頻率域動(dòng)態(tài)選擇模塊專門用來處理紅外和可見光特征的融合問題從頻率域角度做動(dòng)態(tài)特征篩選保留有用信息、壓掉冗余和噪聲然后平穩(wěn)接進(jìn)檢測(cè)框架里漲點(diǎn)。標(biāo)題里“CVPR 2025”不是說我這個(gè)工作發(fā)到了頂會(huì)而是我在設(shè)計(jì)模塊時(shí)參考了近兩年CVPR以及相關(guān)頂會(huì)上關(guān)于頻率域表征學(xué)習(xí)、動(dòng)態(tài)選擇機(jī)制的研究思路把這些思想落到了YOLOv12這個(gè)工程性更強(qiáng)的框架里。這個(gè)項(xiàng)目適合兩類人看一類是做檢測(cè)算法改進(jìn)、需要跑實(shí)驗(yàn)刷精度的同學(xué)另一類是落地多模態(tài)感知系統(tǒng)、被紅外可見光特征融合困擾的工程師。篇幅會(huì)比較長(zhǎng)我把設(shè)計(jì)動(dòng)機(jī)、模塊原理、接入步驟、實(shí)驗(yàn)配置到坑位排查整個(gè)鏈路都過一遍。1. 項(xiàng)目整體設(shè)計(jì)與思路拆解1.1 紅外與可見光融合到底卡在哪里先聊一個(gè)我反復(fù)跟人解釋的問題紅外和可見光融合的難點(diǎn)不在“怎么把兩路特征拼起來”而在“拼完之后怎么處理信息沖突”。早期做法很簡(jiǎn)單通道維度直接concat或者按像素相加。這種粗暴操作很快會(huì)遇到麻煩紅外圖像里熱源區(qū)域高亮、背景幾乎沒紋理可見光圖像里白天紋理豐富、夜晚卻漆黑一片。兩路特征在數(shù)值分布、語義粒度上差異很大直接相加會(huì)把弱模態(tài)的信息淹沒direct concat則會(huì)讓網(wǎng)絡(luò)花大量參數(shù)去學(xué)“哪路特征該忽略”學(xué)得慢還容易過擬合。更麻煩的是噪聲特性的差異??梢姽庠诘凸庹障略肼曨w粒感重紅外在高溫差場(chǎng)景下容易出現(xiàn)光暈和過曝區(qū)域。這些噪聲在空間域看起來和真實(shí)目標(biāo)的邊緣混淆度很高但從頻率域看它們和高頻目標(biāo)細(xì)節(jié)、低頻背景紋理的分布規(guī)律是有差異的。所以我一開始就確定了一個(gè)方向多模態(tài)特征篩選這件事放到頻率域去做比在空間域硬磨卷積要高效得多。1.2 為什么基座選擇了YOLOv12選YOLOv12不是因?yàn)樗亲钚掳姹揪蜔o腦上。我之前在YOLOv8和YOLOv11上都試過類似的多模態(tài)融合結(jié)構(gòu)對(duì)比下來YOLOv12有幾個(gè)特性特別適合做這種改進(jìn)實(shí)驗(yàn)。第一YOLOv12的Backbone對(duì)跨尺度特征的重組能力比前代更強(qiáng)高層語義特征和底層細(xì)節(jié)特征的通道結(jié)構(gòu)更清晰這給后續(xù)的頻域篩選提供了一個(gè)“特征質(zhì)量還說得過去”的前置條件。第二它的Neck部分計(jì)算冗余相對(duì)小插入額外模塊后對(duì)整體推理速度的影響可控。第三也是最重要的YOLOv12的生態(tài)成熟不管是Ultralytics風(fēng)格的結(jié)構(gòu)還是各種改版可參考的工程實(shí)現(xiàn)多踩坑之后比較容易定位問題。當(dāng)然選它也有實(shí)際考慮項(xiàng)目和團(tuán)隊(duì)一直在YOLO系列上做開發(fā)對(duì)內(nèi)部結(jié)構(gòu)的熟悉程度決定了改進(jìn)效率這屬于“基于已驗(yàn)證的工程基礎(chǔ)做加法”的思路不是盲目追新。1.3 FDSM模塊的定位做“特征篩選器”而不是“特征生成器”在設(shè)計(jì)FDSM之前我給自己定了一條規(guī)矩這個(gè)模塊只做篩選和重標(biāo)定不自己去生成大尺度的新特征。原因很簡(jiǎn)單檢測(cè)框架的Neck部分已經(jīng)負(fù)責(zé)了多尺度特征生成如果我再塞一個(gè)大型融合網(wǎng)絡(luò)進(jìn)去訓(xùn)練難度和推理開銷都會(huì)爆炸。FDSM的定位更像一個(gè)“智能路由”輸入兩路特征輸出一路增強(qiáng)后的融合特征。它不改變特征的空間尺寸也不大幅增加通道數(shù)而是在頻率域里動(dòng)態(tài)判斷哪些頻段的信息可靠哪些頻段是干擾然后據(jù)此調(diào)整兩路特征的貢獻(xiàn)權(quán)重。這種設(shè)計(jì)思路說白了就是把“融合策略”做成網(wǎng)絡(luò)可以自己學(xué)習(xí)的部分而不是靠人去拍腦袋定權(quán)重。2. FDSM模塊細(xì)節(jié)解析頻率域動(dòng)態(tài)選擇機(jī)制2.1 為什么要從空間域切換到頻率域這是整個(gè)項(xiàng)目里最需要被理解的一步??臻g域上的卷積操作感受野內(nèi)的信息是混在一起的一個(gè)3x3的卷積核同時(shí)看到了邊緣、紋理和平坦區(qū)域很難精準(zhǔn)地只對(duì)某一類信號(hào)做響應(yīng)。而頻率域天然將信息按“變化快慢”做了分解整體輪廓和光照變化在低頻段邊緣和細(xì)節(jié)紋理在高頻段隨機(jī)噪聲則往往分布在極高頻段。這種分解對(duì)多模態(tài)融合來說是天然的篩選規(guī)則。紅外特征中的目標(biāo)熱輻射輪廓通常集中在低頻和中頻可見光特征中的精細(xì)紋理分布在更高的頻段而兩路各自的噪聲則往往在極端高頻段扎堆。在頻率域做動(dòng)態(tài)選擇本質(zhì)上是告訴網(wǎng)絡(luò)低頻該信誰高頻該信誰哪些頻段干脆直接把權(quán)重壓到最小。2.2 頻率域變換的具體實(shí)現(xiàn)方式實(shí)際工程里我不會(huì)直接對(duì)整張?zhí)卣鲌D做傅里葉變換那樣計(jì)算量太大而且全局變換會(huì)丟失空間位置信息。我采用的是分塊頻率域變換的思路把輸入特征圖沿空間維度切成固定大小的patch在每個(gè)patch內(nèi)部做二維離散余弦變換。選離散余弦變換而不是傅里葉變換有三個(gè)原因。第一DCT變換后能量更集中特征圖這種自然圖像信號(hào)的低頻系數(shù)占比很高更容易做閾值篩選。第二DCT系數(shù)是實(shí)數(shù)不用處理復(fù)數(shù)域的計(jì)算和梯度傳播實(shí)現(xiàn)起來簡(jiǎn)潔穩(wěn)定。第三JPEG等圖像壓縮算法底層的頻率分解方式和DCT一致工程上對(duì)DCT系數(shù)的處理手段非常成熟參考實(shí)現(xiàn)多、好調(diào)試。具體做法是輸入的紅外特征和可見光特征分別經(jīng)過一個(gè)1x1卷積統(tǒng)一通道數(shù)然后各自切patch做DCT得到頻域系數(shù)張量。這個(gè)系數(shù)張量的每個(gè)位置對(duì)應(yīng)一個(gè)頻段我們把它看作“該位置的頻域能量分布圖”。2.3 動(dòng)態(tài)選擇機(jī)制的內(nèi)部結(jié)構(gòu)這里說的“動(dòng)態(tài)”不是指用固定閾值去截?cái)囝l率分量而是讓網(wǎng)絡(luò)根據(jù)兩路特征的當(dāng)前狀態(tài)自行決定每個(gè)頻段該保留多少、該抑制多少。具體實(shí)現(xiàn)分為三步。第一步把紅外特征和可見光特征的頻域系數(shù)按頻段分組形成一組頻帶描述子每個(gè)描述子統(tǒng)計(jì)該頻段內(nèi)的能量水平。第二步把這組描述子concat起來經(jīng)過一個(gè)輕量級(jí)的門控網(wǎng)絡(luò)輸出兩路特征各自在每一個(gè)頻帶上的權(quán)重系數(shù)。門控網(wǎng)絡(luò)我用的是兩層全連接加Sigmoid激活參數(shù)量很小但足以建模頻帶間的相關(guān)性。第三步用學(xué)習(xí)到的權(quán)重去縮放各自頻域系數(shù)然后做逆DCT變換回空間域經(jīng)過一次通道注意力重標(biāo)定最后與原始空間域特征做殘差連接。加殘差連接是這里的關(guān)鍵細(xì)節(jié)。我見過很多改進(jìn)模塊的效果不穩(wěn)定原因就是模塊直接重寫了特征分布把原來預(yù)訓(xùn)練權(quán)重學(xué)到的空間語義沖掉了。FDSM加了一條從輸入到輸出的殘差通路讓模塊在最差情況下退化為“原始特征微小修正”這能顯著降低訓(xùn)練初期的震蕩概率。2.4 與現(xiàn)有主流融合方案的對(duì)比思路做實(shí)驗(yàn)的時(shí)候我習(xí)慣先拉幾個(gè)對(duì)照方案。主流的多模態(tài)融合方法大致有三類基于空間注意力機(jī)制的門控融合、基于通道重標(biāo)定的特征加權(quán)、基于Transformer跨模態(tài)注意力交互的方法。前兩類的問題在于空間注意力和通道注意力都是在原始像素或通道粒度上做權(quán)重分配但噪聲和干擾信號(hào)在空間上往往和真實(shí)目標(biāo)位置重疊單純從空間域很難區(qū)分。第三類效果通常最好但Transformer結(jié)構(gòu)在檢測(cè)框架里對(duì)算力的要求偏高部署時(shí)容易成為瓶頸。FDSM的差異點(diǎn)在于它在頻域粒度上做權(quán)重分配相當(dāng)于把“哪些信息可信”的問題拆成了“哪些頻段可信”而這個(gè)問題的答案往往比空間域更清晰。它也不是完全不和空間域交互逆變換回來之后接的通道注意力就是在空間-通道維度上做二次校正兩個(gè)維度互相配合。3. 基于YOLOv12的實(shí)戰(zhàn)接入方法3.1 模塊插入位置與整體網(wǎng)絡(luò)結(jié)構(gòu)這個(gè)模塊最自然的位置是Neck部分具體是在Backbone輸出高層特征之后、進(jìn)入PANet結(jié)構(gòu)之前的特征融合節(jié)點(diǎn)。以YOLOv12的經(jīng)典結(jié)構(gòu)來看Backbone會(huì)輸出三個(gè)尺度的特征我選擇對(duì)最大尺度和中間尺度兩路特征做多模態(tài)融合最小尺度負(fù)責(zé)小目標(biāo)頻域篩選優(yōu)先級(jí)可以低一點(diǎn)。每個(gè)尺度上的具體流程是這樣的紅外特征F_i和可見光特征F_v同時(shí)送入FDSM模塊內(nèi)部完成頻域動(dòng)態(tài)選擇后輸出融合特征F_fused。這個(gè)F_fused將替代原來單模態(tài)特征進(jìn)入后續(xù)的Neck結(jié)構(gòu)。原網(wǎng)絡(luò)中的單模態(tài)分支保留兩路輸入都會(huì)經(jīng)過模態(tài)特定的預(yù)處理卷積層用于對(duì)齊通道數(shù)和特征分布。關(guān)于監(jiān)督信號(hào)我是直接沿用檢測(cè)頭的損失函數(shù)沒有額外給FDSM加輔助損失。這一點(diǎn)可能有爭(zhēng)議但我傾向于讓頻域選擇機(jī)制完全由檢測(cè)任務(wù)驅(qū)動(dòng)學(xué)習(xí)不加約束反而能學(xué)到更貼合任務(wù)的特征篩選策略加了輔助損失之后模塊容易為了滿足輔助約束而偏離檢測(cè)目標(biāo)。3.2 FDSM模塊的核心代碼邏輯代碼層面我會(huì)把FDSM封裝成一個(gè)獨(dú)立的PyTorch模塊。注意這里展示的是結(jié)構(gòu)邏輯的核心部分實(shí)際項(xiàng)目中還需要處理patch邊界、頻帶劃分等細(xì)節(jié)。import torch import torch.nn as nn import torch.nn.functional as F class FDSM(nn.Module): def __init__(self, in_ch, num_band8, patch_size8): super().__init__() self.patch_size patch_size self.num_band num_band # 統(tǒng)一通道數(shù)的兩個(gè)預(yù)處理卷積 self.conv_i nn.Conv2d(in_ch, in_ch, 1) self.conv_v nn.Conv2d(in_ch, in_ch, 1) # 頻帶權(quán)重生成器輸入兩路頻帶描述子拼接輸出兩路權(quán)重 self.gate nn.Sequential( nn.Linear(num_band * 2, num_band * 4), nn.ReLU(inplaceTrue), nn.Linear(num_band * 4, num_band * 2), nn.Sigmoid() ) # 融合后的通道注意力 self.ch_attn nn.Sequential( nn.AdaptiveAvgPool2d(1), nn.Conv2d(in_ch, in_ch // 4, 1), nn.ReLU(inplaceTrue), nn.Conv2d(in_ch // 4, in_ch, 1), nn.Sigmoid() ) def _forward_dct(self, x): # 將特征圖切成 patch每個(gè) patch 在內(nèi)部做二維 DCT b, c, h, w x.shape p self.patch_size x_patch x.view(b, c, h // p, p, w // p, p) x_patch x_patch.permute(0, 1, 2, 4, 3, 5).contiguous() x_patch x_patch.view(b, c, -1, p, p) # 簡(jiǎn)化實(shí)現(xiàn)用可學(xué)習(xí)的頻率基做線性變換 # 實(shí)際項(xiàng)目中使用的是 DCT 系數(shù)矩陣乘法 coeff self._dct_transform(x_patch) # [b, c, num_patch, p*p] return coeff def _band_energy(self, coeff): # 按頻段劃分低頻到高頻分為 num_band 組 # 每組統(tǒng)計(jì)能量均值得到頻帶描述子 b, c, n, _ coeff.shape coeff coeff.view(b, c, n, self.num_band, -1) energy coeff.abs().mean(dim-1) # [b, c, n, num_band] energy energy.mean(dim2) # 在 patch 維度上平均 return energy # [b, c, num_band] def forward(self, feat_i, feat_v): # 1. 統(tǒng)一通道數(shù) fi self.conv_i(feat_i) fv self.conv_v(feat_v) # 2. 頻率域變換 ci self._forward_dct(fi) cv self._forward_dct(fv) # 3. 頻帶能量描述子 ei self._band_energy(ci) ev self._band_energy(cv) # 4. 動(dòng)態(tài)權(quán)重生成 gate_in torch.cat([ei.mean(dim1), ev.mean(dim1)], dim-1) weights self.gate(gate_in) # [b, num_band * 2] w_i, w_v torch.split(weights, self.num_band, dim-1) # 5. 按頻帶縮放頻域系數(shù) ci self._scale_band(ci, w_i) cv self._scale_band(cv, w_v) # 6. 逆變換回空間域并加權(quán)融合 ri self._inverse_dct(ci) rv self._inverse_dct(cv) fused ri rv # 7. 通道注意力與殘差連接 attn self.ch_attn(fused) fused fused * attn return feat_i feat_v fused簡(jiǎn)單解釋幾個(gè)容易被忽視的邏輯點(diǎn)。_band_energy得到的頻帶描述子在通道和patch維度上做了平均是為了讓門控網(wǎng)絡(luò)接收低噪聲的統(tǒng)計(jì)量避免被單個(gè)patch的異常頻點(diǎn)帶偏。權(quán)重生成后我們?cè)陬l域系數(shù)上按頻帶做廣播縮放再分別逆變換回空間域相加這相當(dāng)于“兩路特征各自濾波后再融合”比先融合再濾波更容易保留各自的有效信息。3.3 數(shù)據(jù)準(zhǔn)備與訓(xùn)練配置多模態(tài)訓(xùn)練數(shù)據(jù)有兩個(gè)來源公開的多模態(tài)檢測(cè)數(shù)據(jù)集以及自建的可見光-紅外配對(duì)數(shù)據(jù)。使用公開數(shù)據(jù)集時(shí)要注意一個(gè)坑很多數(shù)據(jù)集的紅外圖像和可見光圖像分辨率不一致或者存在像素級(jí)偏移。我通常會(huì)先做離線配準(zhǔn)用特征點(diǎn)匹配加單應(yīng)性變換把兩路圖像對(duì)齊再同步裁剪生成訓(xùn)練樣本。訓(xùn)練配置上我用的輸入分辨率是640x640batch size根據(jù)顯存設(shè)置在8到16之間。優(yōu)化器選擇SGD初始學(xué)習(xí)率0.01配合warmup和cosine退火。這里有個(gè)經(jīng)驗(yàn)加了頻域模塊之后優(yōu)化器盡量別換成AdamW拉滿跑我在實(shí)驗(yàn)中發(fā)現(xiàn)SGD的收斂曲線更穩(wěn)定尤其在訓(xùn)練后期SGD對(duì)頻域權(quán)重的微調(diào)更精細(xì)AdamW偶爾會(huì)把門控網(wǎng)絡(luò)的權(quán)重帶偏。當(dāng)然這只代表我自己的實(shí)驗(yàn)結(jié)果大家可以在自己的數(shù)據(jù)上測(cè)試對(duì)比。數(shù)據(jù)增強(qiáng)方面多模態(tài)場(chǎng)景和單模態(tài)有明顯區(qū)別。常規(guī)的隨機(jī)翻轉(zhuǎn)、縮放、色彩抖動(dòng)照做但“隨機(jī)擦除”這類增強(qiáng)要慎用。隨機(jī)擦除在單模態(tài)里是很好的正則化手段在多模態(tài)里會(huì)把某一模態(tài)的圖像區(qū)域抹成純色導(dǎo)致該區(qū)域的頻域能量直接被清零FDSM的權(quán)重學(xué)習(xí)會(huì)被誤導(dǎo)。4. 實(shí)驗(yàn)效果分析與調(diào)參要點(diǎn)4.1 對(duì)比實(shí)驗(yàn)怎么設(shè)計(jì)才有說服力做“漲點(diǎn)改進(jìn)”類工作對(duì)比實(shí)驗(yàn)的說服力取決于控制變量是否嚴(yán)格。我最常用的四組對(duì)照是這樣的第一組是純可見光基線即單模態(tài)輸入、原版YOLOv12結(jié)構(gòu)用于確認(rèn)單模態(tài)能力上限。第二組是紅外和可見光直接通道concat后輸入YOLOv12代表最簡(jiǎn)單的多模態(tài)方案。第三組是在concat基礎(chǔ)上加空間注意力門控融合模塊代表當(dāng)前主流改進(jìn)方式。第四組是加FDSM模塊后的完整方案。在公開多模態(tài)檢測(cè)數(shù)據(jù)集上四組對(duì)比下來我的典型結(jié)果是concat方案相比單模態(tài)提升約1到2個(gè)點(diǎn)空間注意力方案再提升0.5到1個(gè)點(diǎn)FDSM方案相對(duì)空間注意力方案又能多出0.5到1.5個(gè)點(diǎn)的收益。最關(guān)鍵的是FDSM在夜間和弱光子集上的提升幅度明顯高于白天子集這點(diǎn)讓我確定它確確實(shí)實(shí)在“抑制噪聲”這件事上起了作用。4.2 兩個(gè)關(guān)鍵超參的經(jīng)驗(yàn)值FDSM里兩個(gè)超參最值得花時(shí)間調(diào)patch_size和num_band。patch_size決定了頻率變換的局部性。我試過4、8、16三種patch越小頻域分析越局部越能捕捉細(xì)節(jié)區(qū)域的變化但計(jì)算量和顯存開銷也越大。patch為8時(shí)在效率和效果之間最平衡。patch為4時(shí)小目標(biāo)檢測(cè)精度有微弱提升但訓(xùn)練速度掉了將近四分之一性價(jià)比不高patch為16時(shí)大目標(biāo)的融合效果還行小目標(biāo)區(qū)域的頻域特征被過度平滑了漏檢率明顯上升。num_band控制頻帶劃分粒度。8個(gè)頻帶是我驗(yàn)證下來最穩(wěn)的少于6個(gè)頻帶時(shí)門控網(wǎng)絡(luò)分不清噪聲頻段和紋理頻段抑制噪聲的能力打了折扣高于12個(gè)頻帶時(shí)每個(gè)頻帶包含的頻率分量太少權(quán)重估計(jì)的方差變大訓(xùn)練過程中容易震蕩。如果你的紅外圖像噪聲特性特別強(qiáng)可以把這個(gè)值往12靠一點(diǎn)但需要同步降低學(xué)習(xí)率。5. 常見問題排查與踩坑實(shí)錄5.1 加了FDSM之后精度不升反降這是最常被問到的問題。我排查的思路按順序來先確認(rèn)兩路輸入特征是否對(duì)齊包括空間對(duì)齊和通道對(duì)齊再檢查頻帶描述子的統(tǒng)計(jì)量是否出現(xiàn)異常值可以打印訓(xùn)練時(shí)的頻帶能量曲線看看是不是某個(gè)頻帶的能量數(shù)值跨度太大壓過了門控網(wǎng)絡(luò)的判別能力最后檢查殘差連接是不是被弱化了如果輸出被模塊的修正項(xiàng)主導(dǎo)原始語義特征被沖淡精度大概率要跌。一個(gè)很隱蔽的問題出在預(yù)處理卷積上。剛開始我用的是3x3卷積做通道對(duì)齊參數(shù)量倒不大但3x3卷積會(huì)改變特征的局部空間關(guān)系。后來統(tǒng)一改成1x1卷積精度立刻恢復(fù)。道理也簡(jiǎn)單通道對(duì)齊只需要做線性組合不需要引入額外的空間卷積偏置。5.2 訓(xùn)練震蕩、損失曲線反復(fù)跳我遇到這種情況時(shí)第一反應(yīng)是門控網(wǎng)絡(luò)的輸出飽和了。Sigmoid的輸出如果經(jīng)常貼近0或1權(quán)重的梯度會(huì)消失模塊的篩選行為就會(huì)在兩個(gè)極端之間反復(fù)橫跳。解決辦法是在Sigmoid之前給門控網(wǎng)絡(luò)的輸出加一個(gè)小幅值的噪聲或者改用帶溫度系數(shù)的Softmax替代讓權(quán)重分布更平滑。如果再不行就檢查是否某一模態(tài)的輸入占比過高。紅外圖像如果整體偏暗、對(duì)比度低它的頻帶能量會(huì)整體偏小門控網(wǎng)絡(luò)很容易直接把紅外路徑的權(quán)重壓到接近0退化成純可見光模式。這時(shí)需要在預(yù)處理卷積后對(duì)紅外特征做一次實(shí)例歸一化把頻帶能量拉回正常區(qū)間。5.3 推理速度優(yōu)化與顯存控制FDSM畢竟多了一條頻率域變換的通路推理耗時(shí)不可能完全無感。我實(shí)際測(cè)下來在同等配置下FDSM比原版YOLOv12大概增加12%到18%的推理時(shí)間主要開銷在patch切分和DCT變換。顯存方面兩路特征同時(shí)送入模塊中間變量比單模態(tài)多了不少訓(xùn)練時(shí)如果不控制batch size很容易OOM。兩個(gè)工程上的優(yōu)化手段可以緩解一是把DCT變換部分合并到預(yù)處理卷積的權(quán)重里在通道維度上預(yù)先做頻域混合這里涉及一些數(shù)學(xué)等價(jià)變換但能省掉一半以上的顯式變換耗時(shí)二是推理階段將FDSM的頻帶權(quán)重固化不再動(dòng)態(tài)計(jì)算描述子直接使用訓(xùn)練好的權(quán)重表做縮放精度幾乎無損推理速度能再提一截。當(dāng)然固化權(quán)重只適合部署場(chǎng)景訓(xùn)練時(shí)還是保持完整的動(dòng)態(tài)機(jī)制。6. 最后的幾點(diǎn)提醒訓(xùn)練結(jié)束后我復(fù)盤時(shí)最大的感受是這種頻率域動(dòng)態(tài)選擇模塊收益不是來自“加入了頻域信息”這個(gè)動(dòng)作本身而是來自“讓網(wǎng)絡(luò)學(xué)會(huì)了在不同頻段上分別判斷兩路模態(tài)的可信度”。所以如果你打算在自己的項(xiàng)目里復(fù)現(xiàn)別急著改結(jié)構(gòu)先花時(shí)間去理解你手里的紅外和可見光數(shù)據(jù)在頻域上的差異特征。動(dòng)手之前寫個(gè)腳本把兩組圖像的DCT系數(shù)分布可視化出來看看高頻區(qū)域到底是目標(biāo)邊緣多還是噪聲多低頻區(qū)域哪些頻帶兩路特征高度相似、哪些高度不互補(bǔ)——這些觀察會(huì)直接指導(dǎo)你后續(xù)調(diào)參的方向。我也留個(gè)私心提醒任何“漲點(diǎn)改進(jìn)”都要基于你自己的任務(wù)和數(shù)據(jù)進(jìn)行驗(yàn)證。我這個(gè)項(xiàng)目里的參數(shù)和經(jīng)驗(yàn)值是基于常見公開多模態(tài)數(shù)據(jù)和自建場(chǎng)景數(shù)據(jù)調(diào)出來的不代表在任意數(shù)據(jù)集上都能直接復(fù)制同樣幅度的提升。多模態(tài)數(shù)據(jù)本身的質(zhì)量差異很大有的數(shù)據(jù)兩路圖像配準(zhǔn)精度高有的則存在好幾個(gè)像素的偏移。配準(zhǔn)問題不解決換再先進(jìn)的融合模塊也救不回來。如果你在復(fù)現(xiàn)的過程中發(fā)現(xiàn)精度提升不明顯可以先檢查數(shù)據(jù)配準(zhǔn)再檢查頻帶能量分布最后考慮調(diào)節(jié)patch_size和num_band這兩個(gè)超參。多模態(tài)融合這條方向值得深入研究的點(diǎn)還有很多頻率域只是其中一個(gè)挺有潛力的切入口。后續(xù)我打算在這個(gè)模塊的基礎(chǔ)上繼續(xù)嘗試把頻域選擇機(jī)制擴(kuò)展到時(shí)序維度的多幀融合上讓車輛、行人這類目標(biāo)在運(yùn)動(dòng)狀態(tài)下的跨模態(tài)一致性得到更好的建模那時(shí)再來跟大家分享新一輪的踩坑經(jīng)驗(yàn)。