天天看點

YOLO算法改進Backbone系列之MogaNet

作者:Nuist目标檢測

卷積神經網絡(ConvNets)一直是計算機視覺的首選方法。受靈長類視覺系統的啟發,卷積層可以對具有區域密集連接配接和平移等方差限制的觀測圖像的鄰域相關性進行編碼。通過交錯分層,ConvNets獲得了被動增加的感受野,并善于識别潛在的語義模式。但ConvNets提取的表示已被證明對區域紋理有很強的偏差,導緻視覺目标的全局上下文資訊的顯著丢失。相比之下,通過放松局部感應偏差,ViT及其變種模型在廣泛的視覺基準上迅速超越了ConvNets。ViT的能力主要來源于自注意力機制,無論拓撲距離如何,它都有助于長距離互動。然而自注意力機制中的二次複雜性限制了ViT的計算效率及其在細粒度下遊任務中的應用潛力。

然而,現有方法仍然存在一個表示瓶頸:自注意力機制或大核心的實作阻礙了區分性上下文資訊和全局互動的模組化,導緻DNN和人類視覺系統之間的認知差距。與特征整合理論一樣,人腦不僅提取局部特征,而且同時聚合這些特征以進行全局感覺,這比DNN更緊湊和高效。為了應對這一挑戰,作者從特征互動複雜性的角度研究了DNN的表示能力。為此,作者設計了一個具有相應基本操作的宏ConvNet架構,并進一步開發了一個名為多階門控聚合網絡(MogaNet)的新型ConvNets家族,用于加速具有多重互動複雜性的上下文資訊。在MogaNet中,根據人類視覺引入了一個多階特征聚合子產品。作者的設計将局部感覺和上下文聚合封裝到一個統一的空間聚合塊中,在該塊中,複合多階關聯通過并行的選通機制被有效地聚合和上下文。

從通道方面來看,由于現有方法易于實作高通道資訊備援,是以定制了一個簡單而有效的通道聚合塊,該塊對輸入特征執行自适應通道重配置設定,并以較低的計算成本顯著優于主流對應方(例如SE子產品)。

MogaNet的整體架構如下圖所示,架構和一般的 Transformer 網絡非常類似,核心包括兩個子產品:spatial aggregation(取代注意力)和 channel aggregation(取代FFN)。

YOLO算法改進Backbone系列之MogaNet
YOLO算法改進Backbone系列之MogaNet

spatial aggregation 如下圖所示,藍色部分叫做 feature decomposition,用于 exclude trivial interactions。下面是 Moga子產品,也就是多次 DWConv,作者認為是多階門控。

YOLO算法改進Backbone系列之MogaNet

channel aggregation 如下圖所示。目前的主流方法FFN中僅包括兩個FC層。是以作者進行了如下改進,這個操作類似于是一個空間位置的注意力。

YOLO算法改進Backbone系列之MogaNet

MogaNet模型的其他變體如下所示:

YOLO算法改進Backbone系列之MogaNet

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

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

YOLO算法改進Backbone系列之MogaNet
YOLO算法改進Backbone系列之MogaNet

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

YOLO算法改進Backbone系列之MogaNet

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

YOLO算法改進Backbone系列之MogaNet

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

YOLO算法改進Backbone系列之MogaNet

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

YOLO算法改進Backbone系列之MogaNet

繼續閱讀