改進(jìn)YOLO | 可能這才是用Transformer正確打開(kāi)YOLO的方式吧?


目前最先進(jìn)的One-Stage目標(biāo)檢測(cè)器的限制是只分別處理每個(gè)圖像區(qū)域,而不考慮目標(biāo)之間存在的可能關(guān)系。這就導(dǎo)致了模型只依賴(lài)于高質(zhì)量的卷積特征來(lái)檢測(cè)目標(biāo)。然而,有時(shí)由于一些具有挑戰(zhàn)性的條件,這可能是不可能的。
本文分析了推理特征在One-Stage目標(biāo)檢測(cè)中的應(yīng)用。作者嘗試了不同的架構(gòu),利用自注意力來(lái)解釋圖像區(qū)域之間的關(guān)系。YOLOv3-Reasoner2模型在空間上和語(yǔ)義上增強(qiáng)了reasoning層中的特征,并將其與原始的卷積特征進(jìn)行融合以性能的提升。YOLOv3-Reasoner2模型在COCO上比YOLOv3 Baseline實(shí)現(xiàn)了約2.5%的提升。
1簡(jiǎn)介
目標(biāo)檢測(cè)的目的是在給定的圖像中分類(lèi)和定位感興趣的目標(biāo)。由于與其他計(jì)算機(jī)視覺(jué)應(yīng)用的緊密聯(lián)系,它已經(jīng)引起了社會(huì)各界的極大關(guān)注。在深度學(xué)習(xí)領(lǐng)域取得重大突破之前,已有許多傳統(tǒng)的方法被提出來(lái)解決目標(biāo)檢測(cè)問(wèn)題。這些方法建立在手工制作的特征表示上。不可避免地依賴(lài)于手工制作的特征限制了傳統(tǒng)方法的性能。
AlexNet的巨大影響使目標(biāo)檢測(cè)方法呈現(xiàn)出新的面貌,基于深度學(xué)習(xí)的方法已完全主導(dǎo)了目標(biāo)檢測(cè)的研究?;谏疃葘W(xué)習(xí)的檢測(cè)器可分為T(mén)wo-Stage目標(biāo)檢測(cè)器和One-Stage目標(biāo)檢測(cè)器。由于中間層用于提出可能的目標(biāo)區(qū)域,Two-Stage目標(biāo)檢測(cè)器的推理速度較低。區(qū)域建議層在第一階段提取目標(biāo)區(qū)域。在第二階段,這些提出的區(qū)域用于分類(lèi)和邊界框回歸。另一方面,One-Stage檢測(cè)器可以以較高的推理速度在一次推理中預(yù)測(cè)所有的邊界框和類(lèi)概率。這使得One-Stage目標(biāo)檢測(cè)器更適合于實(shí)時(shí)應(yīng)用。
最近的One-Stage目標(biāo)檢測(cè)器在諸如MS COCO和PASCAL VOC等數(shù)據(jù)集上取得了良好的性能。然而,他們?nèi)狈紤]圖像區(qū)域之間可能的關(guān)系的能力。目前的One-Stage目標(biāo)檢測(cè)器對(duì)每個(gè)圖像區(qū)域進(jìn)行單獨(dú)處理。當(dāng)考慮圖像大小時(shí),由于較小的感受野導(dǎo)致他們不知道不同的圖像區(qū)域。它們完全依賴(lài)于高質(zhì)量的局部卷積特征來(lái)檢測(cè)目標(biāo)。然而,這并不是人類(lèi)視覺(jué)系統(tǒng)的工作方式。人類(lèi)有一種reasoning能力,能夠在獲得的知識(shí)的幫助下完成視覺(jué)任務(wù)。許多方法已經(jīng)被提出來(lái)模仿人類(lèi)的推理能力在目標(biāo)檢測(cè)。另一方面,這些方法大多比較復(fù)雜,采用Two-Stage檢測(cè)體系結(jié)構(gòu)。因此,它們不適用于實(shí)時(shí)應(yīng)用程序。
在本文中提出了一種將視覺(jué)reasoning納入One-Stage目標(biāo)檢測(cè)的新方法。本文將基于Multi-Head Attention的reasoning層整合到Neck的頂部,而不是在Backbone上。通過(guò)這種方式,可以通過(guò)使用更有意義、更細(xì)粒度和更增強(qiáng)的特征映射來(lái)提取關(guān)于不同圖像區(qū)域之間關(guān)系的reasoning信息。
本文的貢獻(xiàn)可以總結(jié)如下:
提出通過(guò)視覺(jué)reasoning改進(jìn)One-Stage目標(biāo)檢測(cè)。提出了一種新的提取圖像區(qū)域間語(yǔ)義關(guān)系來(lái)預(yù)測(cè)邊界框和類(lèi)概率的體系結(jié)構(gòu)。 分析了僅使用reasoning特征對(duì)目標(biāo)檢測(cè)性能的影響。證明了僅卷積和reasoning特征仍然能夠?qū)崟r(shí)運(yùn)行,同時(shí)比Baseline模型取得了更好的性能。 分析了利用reasoning對(duì)每個(gè)對(duì)象類(lèi)別的平均精度提高的影響。
2本文方法
所提方法的總體結(jié)構(gòu)如圖1所示。首先,利用Darknet-53進(jìn)行特征提取,與YOLOv3一樣在3個(gè)不同的尺度上產(chǎn)生邊界框預(yù)測(cè)。通過(guò)FPN進(jìn)行必要的上采樣操作后。然后,在reasoning層提取圖像區(qū)域之間的語(yǔ)義關(guān)系。最后階段由YOLO Head預(yù)測(cè)類(lèi)概率和邊界框。

2.1 Reasoning Layer
采用類(lèi)似transformer編碼器的模型作為Reasoning層。Reasoning層的體系結(jié)構(gòu)如圖2所示。

1、Flatten
Multi-Head Attention層期望有一個(gè)序列作為輸入。在Flatten中Tensor被reshape為一個(gè)序列,并以這種形式輸入到Multi-Head Attention層。
2、Positional Encoding
就其本質(zhì)而言,Multi-Head Attention層是不知道順序的。然而區(qū)域位置的信息是有價(jià)值的。為了對(duì)圖像區(qū)域的順序進(jìn)行建模,采用固定正弦位置編碼:

式中,i為網(wǎng)格區(qū)域在序列中的位置,j為特征深度索引與特征深度相同。由正弦函數(shù)和余弦函數(shù)生成的值被成對(duì)cat,并添加到網(wǎng)格區(qū)域的卷積特征嵌入中。
3、Multi-Head Attention
Multi-Head Attention是在網(wǎng)格單元之間進(jìn)行推理,即圖像區(qū)域的主要層。輸入序列不同區(qū)域之間的推理采用自注意力法進(jìn)行建模,自注意法力基于query、key和value三個(gè)主要概念。在高級(jí)抽象中,query序列中的單個(gè)網(wǎng)格單元格會(huì)搜索潛在的關(guān)系,并試圖通過(guò)key將該單元格與序列中的其他單元格關(guān)聯(lián)起來(lái),即圖像區(qū)域。query對(duì)和key之間的比較給這個(gè)value的注意力權(quán)重。注意力權(quán)重和value之間的相互作用決定了在表示當(dāng)前單元格時(shí)放置序列的其他部分的焦點(diǎn)是多少。
在自注意力過(guò)程中,query矩陣、key矩陣和value矩陣是通過(guò)將輸入序列X乘以3個(gè)不同的權(quán)重矩陣來(lái)計(jì)算的:、和:

為了比較query和key矩陣,使用scaled dot product attention:

每個(gè)網(wǎng)格單元,即圖像區(qū)域,通過(guò)取注意力加權(quán)值矩陣列的求和來(lái)進(jìn)行編碼。注意力權(quán)重決定了在value矩陣中觀察的位置。換句話(huà)說(shuō),在編碼當(dāng)前網(wǎng)格時(shí),它們會(huì)告訴圖像的哪些部分是有價(jià)值的、信息豐富的和相關(guān)的。
采用多頭方式進(jìn)一步完善了自注意力機(jī)制。在Multi-Head Attention中,對(duì)head進(jìn)行并行計(jì)算自注意力。多頭比單頭的主要優(yōu)勢(shì)是它使模型能夠在不同的關(guān)系子空間上工作。每個(gè)head都有一個(gè)不同的query、key和value矩陣,因?yàn)檫@些集合都是通過(guò)使用單獨(dú)的和隨機(jī)初始化的權(quán)重矩陣獲得的。head i中的注意力計(jì)算為:

然后,使用權(quán)重矩陣對(duì)注意力進(jìn)行連接和變換:

4、Skip Connections
在reasoning層中有2個(gè)Skip Connections。如ResNet論文所述,反向傳播得到了改進(jìn),并通過(guò)殘差跳躍連接將原始信息傳播到以下各層。
5、Normalization
在reasoning層的2個(gè)地方應(yīng)用了歸一化方法。除了殘差的跳躍連接外,歸一化也是改善反向傳播的另一個(gè)關(guān)鍵因素。為了處理 internal covariate shift,作者采用了層歸一化。
6、MLP
Multi-Head Attention的輸出經(jīng)過(guò)歸一化后被輸入到多層感知器(MLP)。MLP層由2個(gè)線性層和中間的ReLU非線性層組成:

7、Rearrange
Rearrange是reasoning層的最后一個(gè)子層,在其中序列被轉(zhuǎn)換回檢測(cè)Head所期望的shape。
2.2 Reasoner配置
1、YOLOv3-Reasoner1
在這個(gè)配置中,F(xiàn)PN輸出被直接輸入到reasoning層。每個(gè)Head分別選擇16、8和4的下采樣scale,使每個(gè)Head的嵌入尺寸為64。reasoning層輸出輸入1×1卷積層。YOLOv3-Reasoner1的整個(gè)體系結(jié)構(gòu)如圖4所示。

2、YOLOv3-Reasoner2
在這種配置中,reasoning層的輸出通過(guò)一個(gè)Shortcut的方式與FPN輸出連接起來(lái)。然后,將連接層的輸出輸入到1×1的卷積層,以融合由推理和原始的單卷積特征組成的信息。有可能卷積特征的某些部分被減弱。本文的連接策略確保了原始卷積特征的可重用性。YOLOv3-Reasoner2的體系結(jié)構(gòu)如圖5所示。

3實(shí)驗(yàn)

4參考
[1].ANALYSIS OF VISUAL REASONING ON ONE-STAGE OBJECT DETECTION
長(zhǎng)按掃描下方二維碼添加小助手。
可以一起討論遇到的問(wèn)題
聲明:轉(zhuǎn)載請(qǐng)說(shuō)明出處
掃描下方二維碼關(guān)注【集智書(shū)童】公眾號(hào),獲取更多實(shí)踐項(xiàng)目源碼和論文解讀,非常期待你我的相遇,讓我們以夢(mèng)為馬,砥礪前行!

