Poly-YOLO 学习
關(guān)于<POLY-YOLO:HIGHER SPEED,MORE PRECISE DETECTION AND INSTANCE SEGMENTATION FOR YOLOV3> 論文學(xué)習(xí)
????????Poly-YOLO建立在YOLOv3的原始思想的基礎(chǔ)上,并消除了它的兩個(gè)弱點(diǎn):標(biāo)簽重寫(xiě)和anchor分配不平衡。
標(biāo)簽重寫(xiě):由于YOLO系列都是基于圖像cell柵格作為單元進(jìn)行檢測(cè),以416*416大小的圖像為例,在圖像分辨率隨著卷積下降到13*13的特征圖大小時(shí),這時(shí)候特征圖一個(gè)像素點(diǎn)的感受野是32*32大小的圖像patch,YOLOV3在訓(xùn)練時(shí)候,如果出現(xiàn)相同兩個(gè)目標(biāo)的中心位于同一個(gè)cell,且分配給同一個(gè)anchor,那么前面一個(gè)目標(biāo)就會(huì)被后面目標(biāo)重寫(xiě),也就是說(shuō)兩個(gè)目標(biāo)由于中心距離太近以至于在特征圖上將采樣成為同一個(gè)像素點(diǎn)的時(shí)候,這時(shí)候其中有個(gè)目標(biāo)會(huì)被重寫(xiě)而無(wú)法進(jìn)行到訓(xùn)練當(dāng)中。結(jié)果導(dǎo)致,網(wǎng)絡(luò)訓(xùn)練時(shí)會(huì)忽略一些目標(biāo),導(dǎo)致正樣本數(shù)量非常少,特別是存在于分辨率比較低的特征圖中。
Anchor分配不平衡:yolov3中采用kmeans算法聚類得到特定的9個(gè)anchor,并且以每三個(gè)為一組,大輸出圖檢測(cè)小物體,中等輸出圖和小輸出圖層檢測(cè)大物體)。一個(gè)特定的GroundTruth框與哪個(gè)scale的anchor匹配度最高,就會(huì)被指定給哪個(gè)scale,正常情況下應(yīng)該是不同大小的物體會(huì)被這三組anchor分配到不同預(yù)測(cè)層進(jìn)行預(yù)測(cè)。但是這種分配機(jī)制只適用于標(biāo)準(zhǔn)分布M~ U(0,r),然而,在實(shí)際問(wèn)題中,目標(biāo)框大小不會(huì)分布的這么理想化,就會(huì)造成某些尺度的特征層未被充分利用。
1)標(biāo)簽重寫(xiě)改進(jìn)
????????1、增加輸入圖片分辨率大小;
????????2、增加輸出特征圖大小實(shí)現(xiàn)。
????????Poly-YOLO作者的做法是增加輸出特征圖大小。
2)Anchor分配問(wèn)題的改進(jìn)
KMeans聚類算法詳解:KMeans聚類算法詳解 - 知乎“如果把人工智能比作一塊大蛋糕,監(jiān)督學(xué)習(xí)只是上面的一層奶油“。日常生活中,從人臉識(shí)別、語(yǔ)音識(shí)別到搜索引擎,我們看到越來(lái)越多人工智能領(lǐng)域的算法逐漸走向落地。盡管全球每日新增數(shù)據(jù)量以PB或EB級(jí)別增長(zhǎng),但是…https://zhuanlan.zhihu.com/p/184686598
對(duì)于kmean聚類帶來(lái)的問(wèn)題,有兩種解決辦法:
kmean聚類流程不變,但是要避免出現(xiàn)小物體被分配到小輸出特征圖上面訓(xùn)練和大物體被分配到大輸出特征圖上面訓(xùn)練問(wèn)題,具體就是首先基于網(wǎng)絡(luò)輸出層感受野,定義三個(gè)大概范圍尺度,然后設(shè)置兩道閾值,強(qiáng)行將三個(gè)尺度離散化分開(kāi);然后對(duì)bbox進(jìn)行單獨(dú)三次聚類,每次聚類都是在前面指定的范圍內(nèi)選擇特定的bbox進(jìn)行,而不是作用于整個(gè)數(shù)據(jù)集。主要是保證kmean僅僅作用于特定bbox大小訪問(wèn)內(nèi)即可,就可以避免上面問(wèn)題了。但是缺點(diǎn)也非常明顯,如果物體大小都差不多,那么幾乎僅僅有一個(gè)輸出層有物體分配預(yù)測(cè),其余兩個(gè)尺度在那里空跑,浪費(fèi)資源。
就只有一個(gè)輸出層,所有物體都是在這個(gè)層預(yù)測(cè)即可。可以避免kmean聚類問(wèn)題,但是為了防止標(biāo)簽重寫(xiě),故把輸出分辨率調(diào)高,此時(shí)就完美了。作者實(shí)際上采用的是1/4尺度輸出,屬于高分辨率輸出,重寫(xiě)概率很低。
根據(jù)上圖可以發(fā)現(xiàn):
????????(1) 網(wǎng)絡(luò)方面,為了減少參數(shù)量,首先減少了通道數(shù)目,同時(shí)為了提高性能,引入了squeeze-and-excitation(SE)單元來(lái)加強(qiáng)特征
?通過(guò)對(duì)卷積得到的C個(gè)feature map進(jìn)行處理,得到一個(gè)和通道數(shù)一樣的一維向量作為每個(gè)通道的評(píng)價(jià)分?jǐn)?shù),然后將該分?jǐn)?shù)分別施加到對(duì)應(yīng)的通道上,得到其結(jié)果,就在原有的基礎(chǔ)上只添加了一個(gè)模塊。通過(guò)(SE)塊和提高輸出分辨率,降低了計(jì)算速度。由于速度是YOLO的主要優(yōu)勢(shì),作者在特征提取階段減少了卷積濾波器的數(shù)量,即設(shè)置為原始數(shù)的75%。
????????(2) 和YOLOv3的最大區(qū)別是輸出層是一個(gè),但是也采用了多尺度融合方式
????????(3) neck部分提出了hypercolumn+stairstep上采樣操作
?左側(cè)是HC方案插圖,右側(cè)是帶有階梯的HC
損失函數(shù)如上圖,顯示了使用標(biāo)準(zhǔn)超柱技術(shù)和階梯超柱技術(shù)在損失方面的差異,細(xì)線表示特定的學(xué)習(xí)運(yùn)行,粗線表示運(yùn)行的平均值
使用Poly-YOLO進(jìn)行實(shí)例分段
? 1)多邊形框原則
????????通過(guò)不規(guī)則四邊形檢測(cè)更精確地檢測(cè)YOLO,證明了四邊形檢測(cè)的擴(kuò)展收斂速度更快,還證明了基于四角逼近的分類方法比基于矩形逼近的分類方法具有更高的精度。
????????該方法的局限性在于檢測(cè)到的頂點(diǎn)數(shù)目固定,即4個(gè)。在這里,引入了一種多邊形表示,它能夠檢測(cè)具有不同數(shù)量頂點(diǎn)的對(duì)象,而不需要使用會(huì)降低處理速度的循環(huán)神經(jīng)網(wǎng)絡(luò)。為了了解邊界盒檢測(cè)和基于多邊形的檢測(cè)質(zhì)量之間的實(shí)際區(qū)別。
左圖:矩形網(wǎng)格,取自YOLOv3。對(duì)象的邊界框有其中心的單元格可以預(yù)測(cè)其邊界框的坐標(biāo)。右圖:Poly-YOLO中基于圓形扇區(qū)的網(wǎng)格,用于多邊形頂點(diǎn)的檢測(cè)。網(wǎng)格的中心與對(duì)象的包圍框的中心重合。然后,每個(gè)圓形扇形負(fù)責(zé)檢測(cè)特定頂點(diǎn)的極坐標(biāo)。沒(méi)有頂點(diǎn)的扇區(qū),其置信度應(yīng)該等于零。?
? ?2)與Poly-YOLO集成
????????檢測(cè)邊界多邊形的思想是普遍的,可以很容易地集成到一個(gè)任意的神經(jīng)網(wǎng)絡(luò)。一般來(lái)說(shuō),需要修改三個(gè)部分:數(shù)據(jù)準(zhǔn)備的方式、體系結(jié)構(gòu)和丟失函數(shù)。在Poly-YOLO,輸出層中卷積濾波器的數(shù)量必須更新。當(dāng)我們只檢測(cè)box時(shí),最后一層輸出維度為n=(+ 5),=9 (anchor個(gè)數(shù)),為類別數(shù)。對(duì)基于多邊形的目標(biāo)檢測(cè)進(jìn)行集成,得到n=(+ 5+ 3),為每個(gè)多邊形檢測(cè)到的頂點(diǎn)數(shù)的最大值。
?損失函數(shù):
?(i, j) 是對(duì)邊界框中心的預(yù)測(cè)的損失,
(i, j) 是對(duì)框的尺寸的損失,
?(i, j) 是置信度損失,
?(i, j) 是類預(yù)測(cè)損失,
?(i, j) 是由距離,角度和頂點(diǎn)置信度預(yù)測(cè)組成的邊界多邊形的損失,
∈{0,1}是一個(gè)常數(shù),指示第i個(gè)單元格和第j個(gè)錨點(diǎn)是否包含標(biāo)簽。
?
論文地址:https://arxiv.org/pdf/2005.13243.pdf
源代碼:IRAFM AI / Poly-YOLO · GitLab
參考文章:Poly-YOLO:更快,更精確的檢測(cè)(主要解決Yolov3兩大問(wèn)題,附源代碼)
參考視頻:AI論技第一期《目標(biāo)檢測(cè)模型 Poly-YOLO詳解與應(yīng)用》_嗶哩嗶哩_bilibili
總結(jié)
以上是生活随笔為你收集整理的Poly-YOLO 学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Arduino温度传感器全系列使用详解
- 下一篇: 自贸港有志青年,捂碳星球旧衣回收项目,成