跟蹤為何選用ResNet50+FrozenBN?深度解讀Siamese式雙分支骨干網(wǎng)設(shè)計(jì)邏輯)
TransT視覺(jué)跟蹤為何選用ResNet50FrozenBN深度解讀Siamese式雙分支骨干網(wǎng)設(shè)計(jì)邏輯【免費(fèi)下載鏈接】TransTTransformer Tracking (CVPR2021)項(xiàng)目地址: https://gitcode.com/gh_mirrors/tr/TransTTransT 是 CVPR 2021 提出的基于 Transformer 的視覺(jué)目標(biāo)跟蹤網(wǎng)絡(luò)它用一個(gè) ResNet50 骨干網(wǎng)共享處理模板與搜索區(qū)域再經(jīng)注意力融合輸出目標(biāo)框。本文深度解讀 TransT 骨干網(wǎng)的設(shè)計(jì)邏輯為什么選 ResNet50、為什么凍結(jié) BatchNormFrozenBN、Siamese 雙分支如何做到又快又準(zhǔn)幫助新手快速看懂這份開(kāi)源實(shí)現(xiàn)。1?? TransT 骨干網(wǎng)整體架構(gòu)速覽先看整體框架Template模板128×128與 Search Region搜索區(qū)域256×256兩路圖像進(jìn)入同一個(gè)特征提取器經(jīng) 1×1 卷積降維后送入 Transformer 特征融合網(wǎng)絡(luò)ECA 自注意力 CFA 交叉注意力最后由預(yù)測(cè)頭輸出框回歸與分類(lèi)結(jié)果。這張圖對(duì)應(yīng)源碼 ltr/models/tracking/transt.py 中的TransT.forwardfeature_search, pos_search self.backbone(search)與feature_template, pos_template self.backbone(template)同一個(gè)self.backbone被調(diào)用兩次——這就是 Siamese 式孿生式的含義。2?? 為什么骨干網(wǎng)是 ResNet502.1 ImageNet 預(yù)訓(xùn)練白拿一套通用視覺(jué)特征骨干構(gòu)建入口在 ltr/models/backbone/transt_backbone.py 的build_backbone其中backbone_pretrainedTrue即加載 ImageNet 分類(lèi)預(yù)訓(xùn)練權(quán)重見(jiàn) ltr/models/backbone/resnet.py 的resnet50函數(shù)。特征質(zhì)量高ResNet50 在 ImageNet 上學(xué)到的邊緣、紋理、部件等中層語(yǔ)義對(duì)判斷圖像里有沒(méi)有這個(gè)目標(biāo)天然適用省去從零訓(xùn)練骨干的大量數(shù)據(jù)與時(shí)間可復(fù)用生態(tài)權(quán)重來(lái)自標(biāo)準(zhǔn) torchvision 模型庫(kù)復(fù)現(xiàn)與換骨干如 resnet18成本極低。2.2 只取 layer38 倍下采樣的甜點(diǎn)層注意Backbone類(lèi)固定output_layers[layer3]且 ltr/models/backbone/resnet.py 中 layer3 使用dilation2空洞卷積、不降采樣輸入分辨率layer3 特征圖感受野搜索區(qū)域 256×256stride 832×32×1024較大覆蓋目標(biāo)周邊上下文模板 128×128stride 816×16×1024足夠緊湊layer3 的 8 倍下采樣讓 256 像素的搜索區(qū)域只產(chǎn)生 32×321024 個(gè)特征向量這正是 Transformer 融合網(wǎng)絡(luò)能跑得快的關(guān)鍵——序列長(zhǎng)度直接決定注意力的計(jì)算量。若取 layer416 倍下采樣則語(yǔ)義偏全局、細(xì)節(jié)丟失取淺層則特征圖過(guò)大、推理變慢。layer3 恰好是精度與速度的平衡點(diǎn)。2.3 權(quán)重共享一份骨干雙倍收益Siamese 設(shè)計(jì)的核心是模板與搜索區(qū)域共享同一套卷積權(quán)重而不是兩個(gè)獨(dú)立網(wǎng)絡(luò)參數(shù)省TransT-N2 僅 16.7M 參數(shù)TransT-N4 也僅 23.0M是輕量級(jí)跟蹤器推理快track()中模板特征在初始化時(shí)只算一次并緩存self.zf之后每幀只對(duì)搜索區(qū)域跑一次骨干配合 32×32 的短序列實(shí)測(cè)可達(dá)50~70 fps的實(shí)時(shí)速度訓(xùn)練穩(wěn)兩路圖像分布差異尺度、內(nèi)容由共享權(quán)重強(qiáng)制對(duì)齊模型學(xué)到的是同一物體在不同圖像中的不變表征而非兩條各自為政的特征流。3?? FrozenBN凍住的到底是什么3.1 BatchNorm 統(tǒng)計(jì)量與裁切圖嚴(yán)重失配BatchNorm 依賴(lài)批內(nèi)或運(yùn)行時(shí)的 running均值/方差做歸一化這套統(tǒng)計(jì)量是在 ImageNet 完整自然圖像上學(xué)出來(lái)的。但跟蹤任務(wù)喂給骨干的輸入是緊貼目標(biāo)的小模板裁切塊128×128目標(biāo)幾乎占滿(mǎn)帶大量背景、目標(biāo)偏小的搜索區(qū)域裁切塊256×256。這些裁切塊的亮度、對(duì)比度、紋理分布與 ImageNet 差異巨大。如果 BN 繼續(xù)更新統(tǒng)計(jì)量歸一化行為會(huì)被非典型輸入帶偏特征尺度抖動(dòng)訓(xùn)練極易不穩(wěn)定。3.2 凍結(jié)后確定性、可復(fù)現(xiàn)的特征提取器ltr/models/backbone/transt_backbone.py 中專(zhuān)門(mén)實(shí)現(xiàn)了FrozenBatchNorm2dBackbone的 docstring 也寫(xiě)明 ResNet backbone with frozen BatchNorm前向時(shí)用固定的running_mean/running_var做仿射縮放等價(jià)于把 BN 折疊成一個(gè)線性變換。好處包括推理確定在線跟蹤每幀是單張圖前向batch1批統(tǒng)計(jì)量毫無(wú)意義凍住統(tǒng)計(jì)量后同一輸入永遠(yuǎn)得到同一特征模板緩存特征self.zf與后續(xù)各幀搜索特征嚴(yán)格可比保留預(yù)訓(xùn)練歸納偏置ImageNet 上學(xué)好的歸一化尺度被完整保留骨干充當(dāng)穩(wěn)定的通用特征提取器讓 Transformer 專(zhuān)心學(xué)融合骨干輸出穩(wěn)定后注意力融合網(wǎng)絡(luò)ltr/models/neck/featurefusion_network.py只需解決模板與搜索特征怎么配準(zhǔn)這一個(gè)核心問(wèn)題。配套地訓(xùn)練配置 ltr/train_settings/transt/transt.py 中骨干參數(shù)組的學(xué)習(xí)率僅為 1e-5其他模塊 1e-4即微調(diào)而非重學(xué)與 FrozenBN 的保守策略一脈相承。4?? 從代碼看懂雙分支數(shù)據(jù)流整個(gè) Siamese 骨干的行為可以用 4 步概括對(duì)應(yīng) ltr/models/tracking/transt.py構(gòu)建build_backbone創(chuàng)建 ResNet50layer3 輸出、1024 通道Joiner再拼接正弦位置編碼position_embedding sine模板前向template(z)提取模板特征并緩存搜索前向track(search)每幀只跑搜索區(qū)域融合輸出input_proj1×1 卷積1024→256 通道把兩路特征投影到 Transformer 維度經(jīng) ECA/CFA 融合后由 MLP 頭輸出pred_boxes與pred_logits。搜索/模板區(qū)域大小256/128在 ltr/train_settings/transt/transt.py 中由search_feature_sz32、template_feature_sz16乘以 8 倍上采樣因子得到與骨干 stride 8 嚴(yán)格對(duì)齊——這也是選擇 layer3 的直接原因。5?? 上手驗(yàn)證批量跑一次評(píng)測(cè)理解架構(gòu)后最直觀的驗(yàn)證是跑評(píng)測(cè)。項(xiàng)目?jī)?nèi)置了 got10k_toolkit、pysot_toolkit 兩套評(píng)測(cè)工具支持 GOT-10k、LaSOT、OTB、NFS、UAV123、VOT 等數(shù)據(jù)集批量實(shí)驗(yàn)例如在 GOT-10k 上TransT-N4 取得 72.3 AOTransT-N2 達(dá) 69.9 AO 且速度快一倍——這套 ResNet50 FrozenBN Siamese 共享骨干 Transformer 融合的組合正是少參數(shù)、實(shí)時(shí)速度、強(qiáng)精度三者兼得的原因。總結(jié)ResNet50ImageNet 預(yù)訓(xùn)練通用特征 layer3 的 8 倍下采樣短序列兼顧精度與 Transformer 推理速度FrozenBN凍結(jié)歸一化統(tǒng)計(jì)量消除裁切輸入分布失配與單幀推理的不確定性讓骨干成為穩(wěn)定特征提取器Siamese 共享骨干模板與搜索區(qū)域共用權(quán)重參數(shù)減半、模板特征一次緩存、所有數(shù)據(jù)集同一套模型與超參無(wú)在線更新模塊簡(jiǎn)單且高效。【免費(fèi)下載鏈接】TransTTransformer Tracking (CVPR2021)項(xiàng)目地址: https://gitcode.com/gh_mirrors/tr/TransT創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考