天天看點

YOLO算法改進Backbone系列之:Fcaformer

作者:Nuist目标檢測

目前,設計更高效視覺Transformer的一個主要研究方向是通過采用稀疏注意力或使用局部注意力視窗來降低自我注意力子產品的計算成本。相比之下,我們提出了一種不同的方法,旨在通過密集注意力模式來提高基于變換器的架構的性能。具體來說,我們為混合視覺轉換器(FcaFormer)提出了前向交叉注意,即在同一階段二次使用前一個區塊的标記。為了實作這一目标,FcaFormer 利用了兩個創新元件:可學習比例因子(LSFs)和标記合并與增強子產品(TME)。LSFs 可以高效處理交叉令牌,而 TME 可以生成有代表性的交叉令牌。通過整合這些元件,拟議的 FcaFormer 增強了具有潛在不同語義的标記塊之間的互動,并鼓勵更多資訊流向下層。

基于前向交叉注意力(Fca),我們設計了一系列 FcaFormer 模型,在模型大小、計算成本、記憶體成本和準确性之間實作了最佳權衡。例如,無需通過知識蒸餾來加強訓練,我們的FcaFormer就能在Imagenet上實作83.1%的top-1準确率,而且隻需1630萬個參數和約36億個MAC。與經過提煉的 EfficientFormer 相比,這節省了近一半的參數和少量計算成本,同時還提高了 0.7% 的準确率。

FcaFormer模型的整體結構如下圖:

YOLO算法改進Backbone系列之:Fcaformer
YOLO算法改進Backbone系列之:Fcaformer
YOLO算法改進Backbone系列之:Fcaformer

在YOLOv5項目中添加模型作為Backbone使用的教程:

(1)将YOLOv5項目的models/yolo.py修改parse_model函數以及BaseModel的_forward_once函數

YOLO算法改進Backbone系列之:Fcaformer
YOLO算法改進Backbone系列之:Fcaformer

(2)在models/backbone(建立)檔案下建立fcaformer.py,添加如下的代碼:

YOLO算法改進Backbone系列之:Fcaformer

(3)在models/yolo.py導入模型并在parse_model函數中修改如下(先導入檔案):

YOLO算法改進Backbone系列之:Fcaformer

(4)在model下面建立配置檔案:yolov5_fcaformer.yaml

YOLO算法改進Backbone系列之:Fcaformer

(5)運作驗證:在models/yolo.py檔案指定--cfg參數為建立的yolov5_fcaformer.yaml

YOLO算法改進Backbone系列之:Fcaformer

繼續閱讀