0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一個(gè)簡(jiǎn)單且高效的目標(biāo)檢測(cè)算法,該算法降低了訓(xùn)練門檻

新機(jī)器視覺(jué) ? 來(lái)源:知乎 ? 作者:David ? 2020-09-24 12:36 ? 次閱讀

摘要:

隨著深度學(xué)習(xí)的發(fā)展,目前已經(jīng)出現(xiàn)了很多算法(或者訓(xùn)練技巧,tricks)來(lái)提升神經(jīng)網(wǎng)絡(luò)的準(zhǔn)確率。在實(shí)際測(cè)試中評(píng)價(jià)一個(gè)算法的好壞優(yōu)劣主要看兩點(diǎn),一是能否在大規(guī)模的數(shù)據(jù)集中起作用(work),二是是否有理論依據(jù)。一些算法僅能在某些特定的模型上或者某類特定的問(wèn)題上運(yùn)行,亦或是適用于一些小規(guī)模的數(shù)據(jù)集。然而,還有一些算法,例如batch normalization(BN)或者殘差連接(residual-connections)已經(jīng)被用在了不同的模型,任務(wù)以及不同的數(shù)據(jù)集中,已經(jīng)被充分的證明了這些算法的普適性,是一個(gè)general的算法。我們假設(shè)這樣的general(or universal)的算法包括Weighted-residual-connection(WRC),cross-stage-partial-connections(SCP),cross mini-batch Normalization(CmBN),self-adversarial-training(SAT)以及mish-activation。此外,我們還加了一些其余的tricks,包括Mosaic data augmentation,DropBlock regularization,CIoU loss,設(shè)計(jì)了一個(gè)YOLO-V4,并且在MS coco數(shù)據(jù)集中取得了新的state-of-the-art的結(jié)果:在Tesla V100顯卡能達(dá)到43.5% AP(65.7% AP)的精度,且達(dá)到~65FPS的速度。目前代碼已經(jīng)開(kāi)源:

Introduction

Yolo-V4的主要目的在于設(shè)計(jì)一個(gè)能夠應(yīng)用于實(shí)際工作環(huán)境中的快速目標(biāo)檢測(cè)系統(tǒng),且能夠被并行優(yōu)化,并沒(méi)有很刻意的去追求理論上的低計(jì)算量(BFLOP)。同時(shí),Yolo-V4的作者希望算法能夠很輕易的被訓(xùn)練,也就是說(shuō)擁有一塊常規(guī)了GTX-2080ti或者Titan-XP GPU就能夠訓(xùn)練Yolo-V4, 同時(shí)能夠得到一個(gè)較好的結(jié)果(Yolo-V4 結(jié)果如上圖)。整個(gè)introduction可以總結(jié)為以下幾點(diǎn):

研究設(shè)計(jì)了一個(gè)簡(jiǎn)單且高效的目標(biāo)檢測(cè)算法,該算法降低了訓(xùn)練門檻,使得普通人員在擁有一塊1080TI或者2080TI的情況下就能夠訓(xùn)練一個(gè)super fast and accurate 的目標(biāo)檢測(cè)器

在訓(xùn)練過(guò)程中,驗(yàn)證了最新的Bag-of-Freebies和Bag-of-Specials對(duì)Yolo-V4的影響

簡(jiǎn)化以及優(yōu)化了一些最新提出的算法,包括(CBN,PAN,SAM),從而使Yolo-V4能夠在一塊GPU上就可以訓(xùn)練起來(lái)。

Related work

首先解釋一下相關(guān)的名詞:

Input:算法的輸入,包括整個(gè)圖像,一個(gè)patch,或者是image pyramid

Backbone:可以理解為是提取圖像特征的部分,由于圖像中的淺層特征(low-level)是比較類似的,例如提取邊緣,顏色,紋理這些。因此這部分可以很好的借鑒一些設(shè)計(jì)好并且已經(jīng)訓(xùn)練好的網(wǎng)絡(luò),例如(VGG16,19,ResNet-50, ResNeXt-101, Darknet53), 同時(shí)還有一些輕量級(jí)的backbone(MobilenetV1,2,3 ShuffleNet1,2)。

Neck:這部分我的理解是特征增強(qiáng)模塊,前面的backbone已經(jīng)提取到了一些相關(guān)的淺層特征,由這部分對(duì)backbone提取到的淺層特征(low-level feature)進(jìn)行加工,增強(qiáng),從而使得模型學(xué)到的特征是我想要的特征。這部分典型的有(SPP,ASPP in deeplabV3+,RFB,SAM),還有一些(FPN, PAN, NAS-FPN, BiFPN, ASFF, SFAM)。

Head:檢測(cè)頭。這部分就到了算法最關(guān)鍵的部分,就是來(lái)輸出你想要的結(jié)果,例如想得到一個(gè)heatmap,(如在centernet中),那就增加一些反卷積層來(lái)一層一層反卷積回去。如果想直接得到bbox,那就可以接conv來(lái)輸出結(jié)果,例如Yolo,ssd這些。亦或是想輸出多任務(wù)(mask-RCNN)那就輸出三個(gè)head:classification,regression,segmentation(就是mask那部分)。

因此,一個(gè)檢測(cè)算法可以理解為:

Object Detection = Backbone + Neck + Head

2.1. Bag of freebies

什么叫Bag of freebies?字面上的意思就是免費(fèi)贈(zèng)品。在目標(biāo)檢測(cè)中是指:用一些比較有用的訓(xùn)練技巧來(lái)訓(xùn)練模型,從而使得模型取得更好的準(zhǔn)確率但是不增加模型的復(fù)雜度,也就不增加推理(inference)是的計(jì)算量(cost)。在目標(biāo)檢測(cè)中,提到bag of freebies,首先會(huì)想到的 就是Data augmentation。

2.1.1 : Data augmentation 的目的在于增加訓(xùn)練樣本的多樣性,使得檢測(cè)模型具有高的魯棒性。常見(jiàn)的不能再常見(jiàn)的數(shù)據(jù)增強(qiáng)方式包括兩個(gè)方面:幾何增強(qiáng)以及色彩增強(qiáng)。

幾何增強(qiáng)包括:隨機(jī)翻轉(zhuǎn)(水平翻轉(zhuǎn)較多,垂直翻轉(zhuǎn)較少),隨機(jī)裁剪(crop),拉伸,以及旋轉(zhuǎn)。

色彩增強(qiáng)包括:對(duì)比度增強(qiáng),亮度增強(qiáng),以及較為關(guān)鍵的HSV空間增強(qiáng)。

上述說(shuō)的色彩以及幾何增強(qiáng)都是pixel-wise 的調(diào)整。此外還有一些數(shù)據(jù)增強(qiáng)方法被用來(lái)解決目標(biāo)遮擋及不足的問(wèn)題。

在圖像中隨機(jī)裁剪矩形區(qū)域,并用0來(lái)填充(random erase和CutOut算法)

隨機(jī)裁剪多個(gè)矩形區(qū)域(hide-and-seek, grid mask)

上述算法是在圖像中裁剪矩形區(qū)域并填充0,那么算法在heatmap上裁剪并填充的叫做(DropOut,DropConnect, DropBlock)

此外還有一個(gè)重要的data augmentation算法叫做MIX-UP。Mix-up在分類任務(wù)中,將兩個(gè)圖像按照不同的比例相加,例如A*0.1+B*0.9=C,那么C的label就是[0.1A, 0.9B]。在目標(biāo)檢測(cè)中的做法就是將一些框相加,這些label中就多了一些不同置信度的框。

還有一類是style-transfer GAN做數(shù)據(jù)增強(qiáng),例如在做街景分割和目標(biāo)檢測(cè)的時(shí)候,將GTA-5的數(shù)據(jù)做一個(gè)style-transfer,擴(kuò)充一些數(shù)據(jù)集。不過(guò)更多的是用在了Domain Adaptation上。

2.1.2 : 不同于上述說(shuō)的data augmentation,第二類方法是要解決數(shù)據(jù)不均衡問(wèn)題(imbalance problems in object detection),數(shù)據(jù)不均衡問(wèn)題在目標(biāo)檢測(cè)中是一個(gè)特別難的問(wèn)題,Yolo-V4中沒(méi)有細(xì)說(shuō),但是最近的一篇PAMI綜述論文,用了30幾頁(yè)詳細(xì)介紹了這個(gè)問(wèn)題,論文可以見(jiàn)我專欄的第一篇文章。下面我簡(jiǎn)單說(shuō)一下:數(shù)據(jù)不均衡包括了兩種一種是訓(xùn)練的背景和我要識(shí)別的物體之間的不均衡,例如在two-stage的方法中,首先在RPN階段會(huì)生成了很多個(gè)ROI,這里面有太多的背景了,有用的框會(huì)很少。還有一類不均衡是類別之間的不均衡,例如在COCO數(shù)據(jù)集中一些常見(jiàn)的物體例如人就會(huì)很多,不常見(jiàn)的就會(huì)比較少,這樣類別之間還有不平衡,這就涉及到另外一個(gè)問(wèn)題了,叫做長(zhǎng)尾分布(long-tailed Data),也是比較棘手的問(wèn)題。這里面比較經(jīng)典的算法就是在two-stage 中使用hard negative example mining or online head example mining (OHEM)。還有一個(gè)比較經(jīng)典的算法就是Focal-loss,來(lái)處理數(shù)據(jù)不均衡的問(wèn)題。還有一個(gè)trick就是關(guān)于One-hot編碼之后label沒(méi)有關(guān)聯(lián),針對(duì)這個(gè)問(wèn)題進(jìn)行l(wèi)abel-smooth。

2.1.3: 第三個(gè)bag of freebies就是在loss function上進(jìn)行改動(dòng),之前常用的計(jì)算bbox的loss 使用MSE,現(xiàn)在改為了計(jì)算IOU之間的loss,還有一個(gè)叫做GIoU loss。這里面有一個(gè)比較經(jīng)典的算法就是在Mask-RCNN上改動(dòng)的MASK SCoring RCNN中,這部分的邏輯是這樣的:在選擇ROI時(shí),如果按照每個(gè)ROI的score來(lái)排序篩選ROI,會(huì)出現(xiàn)一個(gè)問(wèn)題就是,置信度高的ROI并不一定BBOX的位置就準(zhǔn),后來(lái)作者嘗試了使用IoU來(lái)篩選ROI,發(fā)現(xiàn)效果要好。

2.2. Bag of specials

什么叫做bag of specials:就是指一些plugin modules(例如特征增強(qiáng)模型,或者一些后處理),這部分增加的計(jì)算量(cost)很少,但是能有效地增加物體檢測(cè)的準(zhǔn)確率,我們將這部分稱之為Bag of specials。這部分插件模塊能夠增強(qiáng)網(wǎng)絡(luò)模型的一些屬性,例如增大感受域(ASFF,ASPP,RFB這些模塊),引入注意力機(jī)制(有兩種一種是spatial attention,另外一種是channel attention),增加特征集成能力(FPN,ASFF,BiFPN)。后處理算法是指用一些算法來(lái)篩選模型預(yù)測(cè)出來(lái)的結(jié)果

2.2.1 增大感受域

SPP:He提出了一個(gè)比較經(jīng)典的算法,當(dāng)時(shí)解決了一個(gè)問(wèn)題就是我在測(cè)試的時(shí)候,輸入尺寸可以與訓(xùn)練的時(shí)候 不一樣。但是當(dāng)網(wǎng)絡(luò)中有FC的時(shí)候,尺寸必須是固定的,這時(shí)候,SPP作用就體現(xiàn)出來(lái)了,按照比例劃分pooling,最后輸出的結(jié)果就是一致的了。

ASPP:我記得是用在了DeepLabV3系列中,與SPP不同前面加了Atrous or dilated ,在Pooling中加入了dilated ratio。

RFB:就是說(shuō)是在同一個(gè)featuremap下引入不同dilated ration的空洞卷積,這樣提取到了不同感受野的特征,最后進(jìn)行融合。

2.2.2 引入注意力機(jī)制

Channel Attention:最經(jīng)典的就是SEnet(Squeeze-and-Excitation),這個(gè)算法一開(kāi)始獲得了imagenet分類任務(wù)中的冠軍,他的原理是這樣的,在featuremap層中同時(shí)引入一個(gè)1X1XC的weights,這樣對(duì)每個(gè)channel上的特征加入不同的權(quán)重,這樣提高特征學(xué)習(xí)能力,注意:SE module是在channel 這個(gè)維度上進(jìn)行加入權(quán)重。后來(lái)又有一篇CVPR用SE module做了分割任務(wù),從側(cè)面證明了SE module很好用。

Spatial Attention Module:從字面意思上來(lái)理解,就是在HW維度上加入attention,上述是在Channel維度上加入Attention。

Channel+Spatial:一個(gè)featuremap的維度:NCHW,N:batch size,C:channel,H:height,W:weight。Channel attention 和spatial attention 是從兩個(gè)不同的方法對(duì)feature進(jìn)行增強(qiáng),接著又有一篇paper對(duì)二者進(jìn)行融合,channel attention+spatial attention

2.2.3 特征融合or特征集成

Skip connection:用在encoder-decoder中比較多,例如最經(jīng)典的Unet,融入了low-level和high-level的信息,在目標(biāo)檢測(cè)中主要用在了類似于pose這一類的檢測(cè)任務(wù)中,例如DLA,Hourglass,以及最近的CenterNet

hyper-column:最經(jīng)典的就要屬于InceptionV1-4結(jié)構(gòu)了,使用不同的kernel-size的convolution來(lái)集成特征。

FPN,ASFF,BiFPN:在我看來(lái)都屬于一類,屬于將不同stage下不同scale的特征進(jìn)行融合,只是連接融合的方式不一樣,F(xiàn)PN是最經(jīng)典的,efficientdet中的BiFPN連接的最密集。

2.2.4 激活函數(shù)

一個(gè)好的激活函數(shù)能夠使得梯度傳播的更高效,并且不會(huì)占用額外的計(jì)算資源。常見(jiàn)的激活函數(shù)有以下:(由于我對(duì)激活函數(shù)沒(méi)有研究過(guò),所以這邊就不畫(huà)蛇添足了,直接把論文中的摘錄下來(lái))

ReLU

LRelu, PReLU, SELU,ReLu6, Swish, hard-Swish Mish

2.2.5 后處理

經(jīng)典的后處理包含了NMS,soft NMS,DIoU NMS

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4776

    瀏覽量

    100950
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4760

    瀏覽量

    129132
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4623

    瀏覽量

    93105

原文標(biāo)題:YOLO-V4解讀:速度與精度的完美結(jié)合[已開(kāi)源]

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    廣和通推出多功能AI紅外相機(jī)解決方案

    和通自主研發(fā)的目標(biāo)檢測(cè)算法,針對(duì)野外偏遠(yuǎn)地區(qū)目標(biāo)檢測(cè)面臨的極端光線條件、復(fù)雜環(huán)境背景、目標(biāo)尺寸過(guò)小及遮擋等挑戰(zhàn),提供了
    的頭像 發(fā)表于 01-15 17:51 ?237次閱讀

    廣和通推出多功能AI紅外相機(jī)解決方案,賦能多領(lǐng)域AI發(fā)展

    檢測(cè) 該解決方案內(nèi)置廣和通目標(biāo)檢測(cè)算法,可高效解決野外偏遠(yuǎn)地區(qū)目標(biāo)檢測(cè)存在的極端光線、環(huán)境背景
    的頭像 發(fā)表于 01-15 15:36 ?54次閱讀
    廣和通推出多功能AI紅外相機(jī)解決方案,賦能多領(lǐng)域AI發(fā)展

    采用華為云 Flexus 云服務(wù)器 X 實(shí)例部署 YOLOv3 算法完成目標(biāo)檢測(cè)

    、前言 1.1 開(kāi)發(fā)需求 這篇文章講解:?采用華為云最新推出的 Flexus 云服務(wù)器 X 實(shí)例部署 YOLOv3 算法,完成圖像分析、目標(biāo)檢測(cè)。 隨著計(jì)算機(jī)視覺(jué)技術(shù)的飛速發(fā)展,深度
    的頭像 發(fā)表于 01-02 12:00 ?92次閱讀
    采用華為云 Flexus 云服務(wù)器 X 實(shí)例部署 YOLOv3 <b class='flag-5'>算法</b>完成<b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測(cè)</b>

    AI模型部署邊緣設(shè)備的奇妙之旅:目標(biāo)檢測(cè)模型

    廣泛的應(yīng)用,然而,在移動(dòng)端工業(yè)領(lǐng)域的實(shí)際應(yīng)用中,對(duì)目標(biāo)檢測(cè)算法提出了更為苛刻的要求:需要實(shí)現(xiàn)高速度、高精度、小體積、易部署等特性。為應(yīng)對(duì)這挑戰(zhàn),百度于2021年末發(fā)布了篇關(guān)于移動(dòng)端
    發(fā)表于 12-19 14:33

    如何制定套優(yōu)質(zhì)的工業(yè)視覺(jué)檢測(cè)算法方案?

    很難與當(dāng)下主流的AI平臺(tái)工具配型,或者是通過(guò)單一算法模型進(jìn)行訓(xùn)練,通常情況下,工業(yè)視覺(jué)檢測(cè)項(xiàng)目面臨著系列獨(dú)特的難點(diǎn)與挑戰(zhàn)。比如:算法實(shí)現(xiàn)難
    的頭像 發(fā)表于 11-14 01:05 ?703次閱讀
    如何制定<b class='flag-5'>一</b>套優(yōu)質(zhì)的工業(yè)視覺(jué)<b class='flag-5'>檢測(cè)算法</b>方案?

    在樹(shù)莓派上部署YOLOv5進(jìn)行動(dòng)物目標(biāo)檢測(cè)的完整流程

    目標(biāo)檢測(cè)在計(jì)算機(jī)視覺(jué)領(lǐng)域中具有重要意義。YOLOv5(You Only Look One-level)是目標(biāo)檢測(cè)算法中的種代表性方法,以其
    的頭像 發(fā)表于 11-11 10:38 ?1274次閱讀
    在樹(shù)莓派上部署YOLOv5進(jìn)行動(dòng)物<b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測(cè)</b>的完整流程

    aic3254有沒(méi)有降低環(huán)境噪聲的算法?

    請(qǐng)問(wèn)aic3254有沒(méi)有降低環(huán)境噪聲的算法?或者有哪些算法的組合可以降低環(huán)境噪音?
    發(fā)表于 10-24 08:25

    旗晟機(jī)器人環(huán)境檢測(cè)算法有哪些?

    硬件支撐,更離不開(kāi)強(qiáng)大的算法庫(kù)作為軟件核心,二者相輔相成,缺不可。今天就來(lái)了解旗晟機(jī)器人環(huán)境檢測(cè)算法。 1、設(shè)施異常監(jiān)測(cè) 通過(guò)集成高精度傳感器與智能圖像識(shí)別技術(shù)。它不僅能檢測(cè)A字梯是
    的頭像 發(fā)表于 07-19 17:54 ?554次閱讀
    旗晟機(jī)器人環(huán)境<b class='flag-5'>檢測(cè)算法</b>有哪些?

    慧視小目標(biāo)識(shí)別算法 解決目標(biāo)檢測(cè)中的老大難問(wèn)題

    隨著深度學(xué)習(xí)和人工智能技術(shù)的興起與技術(shù)成熟,大批如FasterR-CNN、RetinaNet、YOLO等可以在工業(yè)界使用的目標(biāo)檢測(cè)算法已逐步成熟并進(jìn)入實(shí)際應(yīng)用,大多數(shù)場(chǎng)景下的目標(biāo)
    的頭像 發(fā)表于 07-17 08:29 ?538次閱讀
    慧視小<b class='flag-5'>目標(biāo)</b>識(shí)別<b class='flag-5'>算法</b>   解決<b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測(cè)</b>中的老大難問(wèn)題

    opencv圖像識(shí)別有什么算法

    圖像識(shí)別算法: 邊緣檢測(cè) :邊緣檢測(cè)是圖像識(shí)別中的基本步驟之,用于識(shí)別圖像中的邊緣。常見(jiàn)的邊緣檢測(cè)算法有Canny邊緣
    的頭像 發(fā)表于 07-16 10:40 ?1137次閱讀

    口罩佩戴檢測(cè)算法

    口罩佩戴檢測(cè)算法基于YOLOv5在圖像識(shí)別檢測(cè)領(lǐng)域的優(yōu)異性能,本文研究基于基于YOLOv5的口罩佩自動(dòng)戴檢測(cè)方法。首先從網(wǎng)絡(luò)和真實(shí)生活中中尋找并采集不同場(chǎng)景人群口罩佩戴的圖片約500張并自建數(shù)據(jù)集
    的頭像 發(fā)表于 07-01 20:20 ?343次閱讀
    口罩佩戴<b class='flag-5'>檢測(cè)算法</b>

    人員跌倒識(shí)別檢測(cè)算法

    人員跌倒識(shí)別檢測(cè)算法是基于視頻的檢測(cè)方法,通過(guò)對(duì)目標(biāo)人體監(jiān)測(cè),當(dāng)目標(biāo)人體出現(xiàn)突然倒地行為時(shí),自動(dòng)監(jiān)測(cè)并觸發(fā)報(bào)警。人員跌倒識(shí)別檢測(cè)算法基于計(jì)算
    的頭像 發(fā)表于 06-30 11:47 ?483次閱讀
    人員跌倒識(shí)別<b class='flag-5'>檢測(cè)算法</b>

    安全帽佩戴檢測(cè)算法

    安全帽佩戴監(jiān)控是鐵路工程施工人員安全管理中的重點(diǎn)和難點(diǎn),它對(duì)檢測(cè)算法的準(zhǔn)確 率與檢測(cè)速度都有較高的要求。本文提出種基于神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索的安全帽佩戴檢測(cè)算法 NAS-YOLO。該神經(jīng)網(wǎng)
    的頭像 發(fā)表于 06-26 22:22 ?425次閱讀
    安全帽佩戴<b class='flag-5'>檢測(cè)算法</b>

    K折交叉驗(yàn)證算法訓(xùn)練

    K折交叉驗(yàn)證算法訓(xùn)練
    的頭像 發(fā)表于 05-15 09:26 ?597次閱讀

    OpenVINO? C# API部署YOLOv9目標(biāo)檢測(cè)和實(shí)例分割模型

    YOLOv9模型是YOLO系列實(shí)時(shí)目標(biāo)檢測(cè)算法中的最新版本,代表著該系列在準(zhǔn)確性、速度和效率方面的又次重大飛躍。
    的頭像 發(fā)表于 04-03 17:35 ?927次閱讀
    OpenVINO? C# API部署YOLOv9<b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測(cè)</b>和實(shí)例分割模型