目标检测算法随笔
最近在學(xué)習(xí)有關(guān)目標(biāo)檢測(cè)方向的內(nèi)容,所以對(duì)最近閱讀的論文進(jìn)行一定的總結(jié)與記錄,如有理解錯(cuò)誤歡迎大家批評(píng)指正,也很希望和大家進(jìn)行交流~
文章目錄
- 傳統(tǒng)opencv類(lèi)
- 一、DETR
- 二、Swin Transformer
- 三、Dynamic Head
- 四、Soft Teacher
- 五、Florence
- 六、Swin Transformer V2
- 總結(jié)
- 參考文獻(xiàn):
傳統(tǒng)opencv類(lèi)
目標(biāo)檢測(cè)任務(wù)是指利用計(jì)算機(jī)技術(shù)及算法來(lái)實(shí)現(xiàn)對(duì)目標(biāo)進(jìn)行分類(lèi)和定位的計(jì)算機(jī)視覺(jué)任務(wù)[1],該任務(wù)的目標(biāo)是為每個(gè)檢測(cè)到的對(duì)象預(yù)測(cè)一組邊界框及類(lèi)別標(biāo)簽,針對(duì)目標(biāo)檢測(cè)任務(wù)存在較多以opencv為代表的傳統(tǒng)目標(biāo)檢測(cè)方法的工作,例如徐曉明,王雪梅[2]提出的Subsense 檢測(cè)算法,該算法基于 Color-LBSP 算子原理,能根據(jù)局部環(huán)境變化自動(dòng)化調(diào)整模型參數(shù);胡昭華[3]等提出超像素特征的運(yùn)動(dòng)目標(biāo)檢測(cè)算法,對(duì)ViBe算法進(jìn)行了改進(jìn)并引入了超像素特征, 提出了基于超像素特征的運(yùn)動(dòng)目標(biāo)檢測(cè)算法。這類(lèi)算法一般是先對(duì)背景進(jìn)行建模然后進(jìn)行前景和背景的分離,而后實(shí)現(xiàn)對(duì)運(yùn)動(dòng)目標(biāo)的檢測(cè),算法需要手工提取特征,并針對(duì)特定的任務(wù)特定的檢測(cè)目標(biāo)設(shè)計(jì)或訓(xùn)練分類(lèi)器,受噪聲影響較大故魯棒性較弱。相比之下基于深度學(xué)習(xí)的目標(biāo)檢測(cè)則無(wú)需人工提取特征,而是通過(guò)神經(jīng)網(wǎng)絡(luò)提取及學(xué)習(xí)目標(biāo)的多層次特征,接著將其輸入分類(lèi)器中預(yù)測(cè)識(shí)別目標(biāo)的位置及類(lèi)別,故有較高的準(zhǔn)確性與魯棒性,這類(lèi)算法已經(jīng)在相關(guān)領(lǐng)域均取得實(shí)用性進(jìn)展。
一、DETR
目前基于Transformer模型的深度學(xué)習(xí)方法在目標(biāo)檢測(cè)領(lǐng)域占據(jù)了極大的地位,DETR[4]就是其中具有代表性的經(jīng)典工作,其不同于R-CNN等經(jīng)典模型在檢測(cè)時(shí)會(huì)生成錨點(diǎn)或候選區(qū)域,DETR將目標(biāo)檢測(cè)問(wèn)題視為集合預(yù)測(cè)問(wèn)題,即給定圖片后模型預(yù)測(cè)出包含檢測(cè)目標(biāo)的無(wú)序集合,可以將DETR視為一個(gè)從圖像序列到一個(gè)集合序列的轉(zhuǎn)換過(guò)程。DETR根據(jù)給出的可學(xué)習(xí)對(duì)象查詢(xún)集,結(jié)合對(duì)象查詢(xún)間的關(guān)系及全局化的圖像信息來(lái)輸出最后的預(yù)測(cè)集合,之后在預(yù)測(cè)集合和真實(shí)集合間進(jìn)行二分匹配強(qiáng)制模型實(shí)現(xiàn)預(yù)測(cè)和真實(shí)對(duì)象之間的唯一匹配。在實(shí)現(xiàn)時(shí)DETR使用了Transformer的編碼器解碼器架構(gòu)并進(jìn)行了一些調(diào)整,在輸出的分支上DETR利用FFN引出了兩個(gè)分支,一個(gè)做類(lèi)別的分類(lèi)另一個(gè)用作BBox的回歸,另外Decoder的輸入數(shù)據(jù)包括Encoder的輸出、可學(xué)習(xí)的object queries以及一些mask信息,這里的object queries的作用相當(dāng)于位置嵌入信息,可以理解為每個(gè)object query對(duì)不同的事物感興趣,包括不同的類(lèi)別信息和不同的區(qū)域,其通過(guò)self-attention層建模事物實(shí)例與其他事物實(shí)例之間的關(guān)系又通過(guò)attention層從編碼器輸出的序列中對(duì)全局化的圖像上下文特征做聚合,在訓(xùn)練過(guò)程中會(huì)強(qiáng)制模型根據(jù)損失矩陣對(duì)預(yù)測(cè)集合與真實(shí)標(biāo)簽集合進(jìn)行最佳二分匹配。這些新穎的方法極大地簡(jiǎn)化了目標(biāo)檢測(cè)的流程,消除了手動(dòng)設(shè)計(jì)組件的需求,工程實(shí)現(xiàn)簡(jiǎn)單且有較少需要調(diào)的超參數(shù)并提高了檢測(cè)模型的性能。
二、Swin Transformer
Swin Transformer[5]憑借在一系列視覺(jué)任務(wù)上的強(qiáng)大表現(xiàn)被評(píng)為ICCV21的最佳論文,它也進(jìn)一步證明了Transformer有能力在視覺(jué)領(lǐng)域得到廣泛應(yīng)用,因?yàn)門(mén)ransformer在NLP領(lǐng)域取得了卓越的成果,把它應(yīng)用到視覺(jué)時(shí)會(huì)有較大的挑戰(zhàn),因?yàn)槲淖譀](méi)有類(lèi)似圖像這種多尺度的特點(diǎn),另外對(duì)高像素圖像進(jìn)行全局自注意力計(jì)算也會(huì)帶來(lái)較高的計(jì)算成本,所以Swin Transformer提出了一種以移動(dòng)窗口進(jìn)行計(jì)算的分層Transformer,它模仿CNN的特點(diǎn),通過(guò)從小尺寸的圖像patch開(kāi)始,在更深的層中逐漸合并相鄰的patch來(lái)獲取分層特征,所以能夠得到不同尺度的圖像特征,并且由于它只在每個(gè)局部窗口內(nèi)進(jìn)行自注意力計(jì)算,所以具有根據(jù)輸入圖像大小的線性計(jì)算復(fù)雜度。在處理時(shí),首先Swin Transformer會(huì)把輸入圖像進(jìn)行patch操作,然后經(jīng)過(guò)一個(gè)embedding層將向量的維度轉(zhuǎn)化為預(yù)先設(shè)定的值,之后進(jìn)行展平操作,這時(shí)序列的長(zhǎng)度可能是比較大的一個(gè)值,所以它就使用了基于窗口的自注意力計(jì)算,將一定數(shù)量的向量放置于窗口中進(jìn)行計(jì)算,這使得每次計(jì)算的序列長(zhǎng)度是一個(gè)可接受的定值,增加的只是窗口數(shù)量,也就是說(shuō)需要對(duì)多個(gè)窗口的自注意力進(jìn)行計(jì)算。為了讓它具備多尺度的信息,需要構(gòu)建一個(gè)層級(jí)式的結(jié)構(gòu),這里用到了一個(gè)patch merging層也就相當(dāng)于CNN中的pooling層,在得到每個(gè)窗口的結(jié)果后將其按長(zhǎng)寬減半的方式patch后堆疊之后再經(jīng)過(guò)一個(gè)1*1的卷積層實(shí)現(xiàn)將通道數(shù)變?yōu)橹暗?倍,通過(guò)多層的這種結(jié)構(gòu)后就可以實(shí)現(xiàn)CNN多尺度的效果。他們提出的移動(dòng)窗口機(jī)制是在Swin Transformer Block中實(shí)現(xiàn)的,這里先將圖像進(jìn)行窗口級(jí)的自注意力計(jì)算,然后將窗口進(jìn)行移動(dòng)后得到不同的窗口布局,再進(jìn)行一次自注意力計(jì)算,這樣做就可以實(shí)現(xiàn)窗口間的交互,進(jìn)而可以提高模型的特征提取能力。
三、Dynamic Head
Dynamic Head[6]在當(dāng)時(shí)是第一個(gè)單模型在COCO數(shù)據(jù)集上能達(dá)到60%以上AP的工作,因?yàn)槟繕?biāo)檢測(cè)有許多工作,在解決時(shí)主要是先通過(guò)backbone網(wǎng)絡(luò)提取特征,然后再將特征輸入到目標(biāo)檢測(cè)頭來(lái)實(shí)現(xiàn)指定的目標(biāo)檢測(cè)任務(wù),不同的檢測(cè)頭分別關(guān)注不同的特點(diǎn),比如有些工作主要解決目標(biāo)尺度(scale)不同帶來(lái)的問(wèn)題,也有一些工作主要解決目標(biāo)不同空間角度(spatial)帶來(lái)的問(wèn)題,另外也有一些工作會(huì)根據(jù)任務(wù)(task)不同進(jìn)行一定的特定化制訂目標(biāo)檢測(cè)頭,Dynamic Head這個(gè)工作就想將這些工作進(jìn)行統(tǒng)一來(lái)實(shí)現(xiàn)更好的普適性特征表達(dá),因此提出了一個(gè)動(dòng)態(tài)的目標(biāo)檢測(cè)頭,它將骨干網(wǎng)絡(luò)提取到的特征視為level×space ×channel這種具有語(yǔ)義信息的3D張量,工作中發(fā)現(xiàn)這些問(wèn)題可以統(tǒng)一于一個(gè)有效的注意力學(xué)習(xí)的問(wèn)題,為了簡(jiǎn)化計(jì)算它在這三個(gè)維度分別進(jìn)行獨(dú)立的注意力計(jì)算但它們的性能可以實(shí)現(xiàn)相互補(bǔ)充,level維度用來(lái)解決scale所帶來(lái)的問(wèn)題,以期學(xué)習(xí)各種尺度的對(duì)象特征;space維度用來(lái)解決spatial所帶來(lái)的問(wèn)題,學(xué)習(xí)便于分辯的空間位置特征;channel維度用來(lái)解決task所帶來(lái)的問(wèn)題,認(rèn)為不同的通道可能會(huì)注重不同的任務(wù)。在實(shí)現(xiàn)時(shí)通過(guò)backbone得到圖像的特征金字塔,這樣就可以得到L×H×W×C的特征向量,然后將W×C進(jìn)行合并,得到一個(gè)三維的張量,分別對(duì)應(yīng)上述的level、space和channel維度,之后將在這三個(gè)維度上的注意力機(jī)制進(jìn)行順序級(jí)聯(lián),通過(guò)級(jí)聯(lián)可以提高模型特征表達(dá)的能力。Dynamic Head顯著提高了目標(biāo)檢測(cè)頭的特征表征能力,它可作為一個(gè)插件靈活地集成到現(xiàn)有的目標(biāo)檢測(cè)框架中以提高其效率。
四、Soft Teacher
Mengde Xu[7]等人提出了一種端到端的基于偽標(biāo)簽的半監(jiān)督目標(biāo)檢測(cè)框架,他們認(rèn)為對(duì)于半監(jiān)督學(xué)習(xí)來(lái)說(shuō)目標(biāo)檢測(cè)的模型性能取決于偽標(biāo)簽的質(zhì)量,該框架對(duì)未標(biāo)注的圖像進(jìn)行偽標(biāo)簽生成的同時(shí)會(huì)在每次迭代中使用這些偽標(biāo)簽和一些有標(biāo)簽的數(shù)據(jù)來(lái)訓(xùn)練目標(biāo)檢測(cè)模型,最后該工作得到的模型在多個(gè)數(shù)據(jù)集上均達(dá)到了較好的性能。在實(shí)現(xiàn)時(shí)未標(biāo)注的圖像和標(biāo)注的圖像按一定比例進(jìn)行隨機(jī)抽樣構(gòu)成batch,在每個(gè)訓(xùn)練迭代中soft teacher和student都會(huì)被訓(xùn)練,前者會(huì)對(duì)強(qiáng)數(shù)據(jù)增強(qiáng)的圖像進(jìn)行boxes預(yù)測(cè),后者被應(yīng)用于對(duì)弱數(shù)據(jù)增強(qiáng)的圖像進(jìn)行偽標(biāo)簽生成,首先要對(duì)它生成的大量預(yù)測(cè)結(jié)果進(jìn)行NMS操作,然后根據(jù)score過(guò)濾得到一組boxes結(jié)果,另外根據(jù)回歸過(guò)濾得到一組boxes,soft teacher得到的兩組boxes作為偽標(biāo)簽計(jì)算得到無(wú)監(jiān)督的分類(lèi)和回歸loss,student對(duì)有標(biāo)簽數(shù)據(jù)進(jìn)行預(yù)測(cè)得到對(duì)應(yīng)的有監(jiān)督分類(lèi)和回歸loss。整個(gè)訓(xùn)練過(guò)程的損失函數(shù)是有監(jiān)督預(yù)測(cè)損失與無(wú)監(jiān)督預(yù)測(cè)損失的和,student通過(guò)該損失利用梯度下降對(duì)其進(jìn)行訓(xùn)練,soft teacher模型由student模型通過(guò)指數(shù)平均(EMA)方式更新,其通過(guò)訓(xùn)練可以提高生成偽標(biāo)簽的質(zhì)量,而這精準(zhǔn)的標(biāo)簽又會(huì)利于student目標(biāo)檢測(cè)模型的訓(xùn)練。當(dāng)score的閾值很高時(shí)soft teacher在無(wú)標(biāo)簽圖像上生成的偽標(biāo)簽準(zhǔn)確率高而召回率低,這會(huì)使student將一些前景boxes誤判為背景,這里的解決方法是使用soft teacher機(jī)制,也就是為student產(chǎn)生的每個(gè)box賦予一個(gè)屬于背景的可能性得分。另外該工作發(fā)現(xiàn)在回歸過(guò)程中將前景得分高的boxes作為偽標(biāo)簽不合適,所以該工作提出利用框抖動(dòng)策略來(lái)得到反應(yīng)偽框可信度的可靠性指標(biāo),實(shí)現(xiàn)時(shí)先將前景score大于一定值的boxes進(jìn)行隨機(jī)抖動(dòng),然后利用soft teacher對(duì)這些抖動(dòng)boxes進(jìn)行回歸預(yù)測(cè),然后選擇回歸方差小于閾值的boxes作為偽標(biāo)簽。
五、Florence
Lu Yuan[8]等人想要得到一個(gè)更普適可以應(yīng)用于所有視覺(jué)任務(wù)的基礎(chǔ)模型進(jìn)而提出了Florence,相較于之前模型大多注重于文本和圖像的融合表征,該模型將現(xiàn)有表征能力進(jìn)行了拓展,不但從粗略的場(chǎng)景表征擴(kuò)展到精細(xì)的對(duì)象表征,從靜態(tài)圖像表征擴(kuò)展到動(dòng)態(tài)視頻表征,同時(shí)還從RGB圖像表征擴(kuò)展到多模態(tài)的文字或深度信息表征,得到的模型更通用具有更好的泛化性和特征提取能力,在44個(gè)計(jì)算機(jī)視覺(jué)任務(wù)上都取得了當(dāng)時(shí)最好的結(jié)果。他們認(rèn)為計(jì)算機(jī)視覺(jué)任務(wù)可劃分為映射到空間-時(shí)間-模態(tài)空間中,這種想法和他們提出Dynamic Head時(shí)是相似的,計(jì)算機(jī)視覺(jué)的基礎(chǔ)模型包括在多樣大規(guī)模數(shù)據(jù)集上訓(xùn)練得到的預(yù)訓(xùn)練模型和僅需少量樣本即可解決特定下游任務(wù)的適配器,為了得到較好的計(jì)算機(jī)視覺(jué)基礎(chǔ)模型,他們提出了模型訓(xùn)練的新范式。首先是數(shù)據(jù)集的收集,他們?cè)诰W(wǎng)絡(luò)上收集了大量圖像文本對(duì)數(shù)據(jù),并對(duì)其進(jìn)行了清洗;在模型預(yù)訓(xùn)練時(shí)在文本和圖像端均使用了單獨(dú)Encoder,考慮到多個(gè)圖像會(huì)有同一個(gè)文本對(duì),所以使用到了UniCL這一對(duì)比學(xué)習(xí)算法,即給定一個(gè)圖像文本對(duì)后,通過(guò)文本哈希表會(huì)生成(x,t,y),其中x為圖像,t為文本也叫哈希值,y是標(biāo)簽也叫哈希鍵,具有相同y的圖像文本對(duì)均為正樣本,模型訓(xùn)練時(shí)的損失函數(shù)包括image2language和language2image這兩個(gè)對(duì)比損失;最后是對(duì)預(yù)訓(xùn)練模型加入一個(gè)針對(duì)特定下游任務(wù)的適配器進(jìn)行finetune以解決不同的視覺(jué)任務(wù),而結(jié)果也證明了他們提出的Florence可以在不同類(lèi)的視覺(jué)任務(wù)上均可表現(xiàn)得很好,也就可以說(shuō)是這個(gè)基礎(chǔ)模型的表征能力實(shí)現(xiàn)了較大的擴(kuò)展。
六、Swin Transformer V2
Ze Liu[9]等人提出的Swin Transformer V2解決了大型視覺(jué)模型訓(xùn)練兩個(gè)主要問(wèn)題,包括訓(xùn)練不穩(wěn)定和預(yù)訓(xùn)練與應(yīng)用到下游任務(wù)時(shí)存在分辨率差異,他們將Swin Transformer擴(kuò)展到了30億個(gè)參數(shù)并使其能夠訓(xùn)練分辨率高達(dá)1,536×1,536的圖像,其訓(xùn)練出的大型視覺(jué)模型在目標(biāo)檢測(cè)任務(wù)中的COCO數(shù)據(jù)集上達(dá)到了63.1%的box mAP。他們發(fā)現(xiàn)在訓(xùn)練大型視覺(jué)模型時(shí)各層的激活幅度是存在差異的,由于殘差結(jié)構(gòu)致使較深層的幅度要大于前面層的值,為了解決這個(gè)問(wèn)題他們使用了后歸一化技術(shù)代替前歸一化,也就是將LN層放到了殘差單元的后面,每個(gè)殘差塊的輸出在合并回主分支之前被歸一化,另外還使用到了縮放余弦注意力代替之前的點(diǎn)積注意力,這使得訓(xùn)練過(guò)程更加穩(wěn)定且模型性能也有所提升。同時(shí)為了解決下游任務(wù)和預(yù)訓(xùn)練時(shí)所采用的圖像分辨率不同,比如目標(biāo)檢測(cè)和語(yǔ)義分割任務(wù)會(huì)使用到更高分辨率的圖像作為輸出或者需要更大的注意力窗口,所以他們提出了一種對(duì)數(shù)間隔的連續(xù)位置偏置技術(shù),對(duì)數(shù)間隔是指將坐標(biāo)轉(zhuǎn)換成對(duì)數(shù)空間,使其可以減少窗口變大后相對(duì)位置范圍的變化,另外它不是直接優(yōu)化相對(duì)位置偏置參數(shù)而是通過(guò)應(yīng)用一個(gè)小的元網(wǎng)絡(luò)(2L-MLP)來(lái)為任意的坐標(biāo)范圍產(chǎn)生偏置,這個(gè)元網(wǎng)絡(luò)可以接受任何坐標(biāo),預(yù)訓(xùn)練模型將能夠通過(guò)共享元網(wǎng)絡(luò)的權(quán)重在不同窗口大小之間自由轉(zhuǎn)換。最后為了解決大模型計(jì)算時(shí)內(nèi)存消耗過(guò)大又不影響訓(xùn)練速度,他們采用了一些重要技術(shù),包括ZeRO優(yōu)化器、Activation check-pointing并且不對(duì)自注意力進(jìn)行batch運(yùn)算,而是序列地逐個(gè)執(zhí)行。
總結(jié)
通過(guò)這些文獻(xiàn)的閱讀,我發(fā)現(xiàn)當(dāng)前性能較為突出的模型都是使用到圖像文本對(duì)作為訓(xùn)練數(shù)據(jù)并使用對(duì)比學(xué)習(xí)的方法來(lái)進(jìn)行訓(xùn)練,我想這可能是未來(lái)的一種趨勢(shì),因?yàn)門(mén)ransformer已被證明它可以很好的提取文本和圖像的特征,如果在訓(xùn)練時(shí)所使用的數(shù)據(jù)包含多種模態(tài)的特征,這樣模型可能就可以更精準(zhǔn)地提取到關(guān)鍵性的特征而避免一些噪聲的影響,這和我們?nèi)祟?lèi)感知世界的方式也是類(lèi)似的,通過(guò)聽(tīng)、看、讀、觸等多種方式相結(jié)合是要比單一感覺(jué)獲取的信息更準(zhǔn)確也更利于理解。另外現(xiàn)在的模型訓(xùn)練所需要的數(shù)據(jù)集是非常龐大的,訓(xùn)練所花費(fèi)的算力也是普通研究者難以觸及的,很多工作可能思想不是很新穎只是在前人工作的基礎(chǔ)上擴(kuò)大了訓(xùn)練數(shù)據(jù)規(guī)模以及參數(shù)配置,這就極大地限制了研究人員創(chuàng)新的積極性,所以我還是很期待今后的模型能夠在保證性能的基礎(chǔ)上降低模型的規(guī)模以及訓(xùn)練的成本,相信隨著技術(shù)的發(fā)展,這一定會(huì)實(shí)現(xiàn)的!
參考文獻(xiàn):
[1] 蔣弘毅,王永娟,康錦煜. 目標(biāo)檢測(cè)模型及其優(yōu)化方法綜述. 自動(dòng)化學(xué)報(bào). 2021年6月第47卷.
[2] 徐曉明,王雪梅. 基于Subsense運(yùn)動(dòng)目標(biāo)檢測(cè)算法. 電子測(cè)試. 2021年19卷.
[3] 胡昭華, 張維新, 邵曉雯. 超像素特征的運(yùn)動(dòng)目標(biāo)檢測(cè)算法. 控制理論與應(yīng)用. 2017年34 卷.
[4] Nicolas Carion, Francisco Massa, Gabriel Synnaeve, et al. End-to-End Object Detection with Transformers. 28 May 2020.
[5] Ze Liu, Yutong Lin, Yue Cao, et al. Swin Transformer: Hierarchical Vision Transformer using Shifted Windows. 17 Aug 2021
[6] Xiyang Dai, Yinpeng Chen, Bin Xiao, et al. Dynamic Head: Unifying Object Detection Heads with Attentions. 15 Jun 2021.
[7] Mengde Xu, Zheng Zhang, Han Hu, et al. End-to-End Semi-Supervised Object Detection with Soft Teacher. 6 Aug 2021.
[8] Lu Yuan, Dongdong Chen, Yi-Ling Chen, et al. Florence: A New Foundation Model for Computer Vision. 22 Nov 2021
[9] Ze Liu, Han Hu, Yutong Lin, Zhuliang Yao, et al. Swin Transformer V2: Scaling Up Capacity and Resolution. 18 Nov 2021.
總結(jié)
- 上一篇: 快速傅里叶变换学习及C语言实现
- 下一篇: 目标检测经典论文——Fast R-CNN