CornerNet中keypoint-based如何通過定位角點進行目標檢測

本篇文章給大家分享的是有關CornerNet中keypoint-based如何通過定位角點進行目標檢測,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)建站主營黎城網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,手機APP定制開發(fā),黎城h5微信小程序開發(fā)搭建,黎城網(wǎng)站營銷推廣歡迎黎城等地區(qū)企業(yè)咨詢

下面提出了CornerNet,通過檢測角點對的方式進行目標檢測,與當前的SOTA檢測模型有相當?shù)男阅?。CornerNet借鑒人體姿態(tài)估計的方法,開創(chuàng)了目標檢測領域的一個新框架,后面很多論文都基于CorerNet的研究拓展出新的角點目標檢測

Introduction


目標檢測算法大都與anchor box脫不開關系,論文認為使用anchor box有兩個缺點:1) 需要在特征圖上平鋪大量的anchor box避免漏檢,但最后只使用很小一部分的anchor box,造成正負樣本不平衡且拖慢訓練。 2) anchor box的引入帶來了額外的超參數(shù)和特別的網(wǎng)絡設計,使得模型訓練變復雜。

CornerNet中keypoint-based如何通過定位角點進行目標檢測

基于上面的考慮,論文提出了CornerNet,將目標檢測定義為左上角點和右下角點的檢測。網(wǎng)絡結構如圖1所示,通過卷積網(wǎng)絡預測出左上角點和右下角點的熱圖,然后將兩組熱圖組合輸出預測框,徹底去除了anchor box的需要。論文通過實驗也表明CornerNet與當前的主流算法有相當?shù)男阅?,開創(chuàng)了目標檢測的新范式。

CornerNet


Overview

CornerNet中通過檢測目標的左上角點和右下角點進行目標檢測,卷積網(wǎng)絡預測兩組熱圖(heatmap)來表示不同類別目標的角點位置,分別對應左上角點和右下角點。為了將左上角點和左下角點進行對應,為每個角點預測一個embedding向量,屬于同一個目標的兩個角點的距離會非常小。另外還增加了偏移量(offset)的預測,對角點的位置進行小幅度的調整。

CornerNet中keypoint-based如何通過定位角點進行目標檢測

CornerNet的結構如圖4所示,使用hourglass網(wǎng)絡作為主干網(wǎng)絡,通過獨立的兩個預測模塊輸出兩組結果,分別對應左上角點和右下角點,每個預測模塊通過corner池化輸出用于最終預測的熱圖、embedding向量和偏移。

Detecting Corners

CornerNet中keypoint-based如何通過定位角點進行目標檢測

預測的熱圖的大小為$C\times H\times W$,$C$為類別數(shù)量,不包含背景類。每個GT的角點僅對應一個正樣本點,其它的點均為負樣本點,但在訓練時不會等同地懲罰負樣本點,而是減少正樣本點半徑內的負樣本點的懲罰力度。這樣做的原因主要在于,靠近正樣本點的負樣本點能夠產(chǎn)生有足夠高IoU的預測框,如圖5所示。
? 半徑的大小根據(jù)目標的大小來設定,保證產(chǎn)生的預測框能至少滿足IoU大于$t$。在設定半徑后,根據(jù)二維高斯核$e^{-\frac{x^2+y^2}{2\sigma^2}}$進行懲罰衰減,$x$和$y$為相對正樣本點的距離,$\sigma$為半徑的1/3。定義$p_{cij}$為位置$(i,j)$關于類別$c$的預測分數(shù),$y_{cij}$為根據(jù)高斯核得出的分數(shù),論文設計了一個focal loss的變種:

CornerNet中keypoint-based如何通過定位角點進行目標檢測

由于池化層的存在,原圖位置$(x,y)$在特征圖上通常會被映射到$(\lfloor\frac{x}{n}\rfloor, \lfloor\frac{y}{n}\rfloor)$,$n$為下采樣因子。在將熱圖中的點映射回原圖時,由于池化的原因可能會有精度的損失,這會極大地影響小目標的IoU計算。為了解決這個問題,論文提出了偏移預測,在將熱圖位置映射到原圖前,小幅調整角點的位置:

CornerNet中keypoint-based如何通過定位角點進行目標檢測

$o_k$為偏移值,$x$和$y$為角點$k$的坐標。需要注意的是,網(wǎng)絡對左上角點和右下角點分別預測一組偏移值,偏移值在類別間共用。在訓練時,對正樣本點添加smooth L1損失來訓練角點的偏移值:

CornerNet中keypoint-based如何通過定位角點進行目標檢測

Grouping Corners

當圖片中存在多個目標時,需要區(qū)分預測的左上角點和右下角點的對應關系,然后組成完整的預測框。這里論文參考了人體姿態(tài)估計的策略,每個角點預測一個一維的embedding向量,根據(jù)向量間的距離進行對應關系的判斷。定義$e_{t_k}$目標$k$左上角點的embedding向量,$e_{b_k}$為右下角的embedding向量,使用pull損失和push損失來分別組合以及分離角點:

CornerNet中keypoint-based如何通過定位角點進行目標檢測

$e_k$為$e_{t_k}$和$e_{b_k}$的平均值,$\Delta=1$,這里的pull損失和push損失跟偏移一樣,僅對正樣本點使用。

Corner Pooling

CornerNet中keypoint-based如何通過定位角點進行目標檢測

角點的位置一般都沒有目標信息,為了判斷像素是否為左上角點,需要向右水平查找目標的最高點以及向下垂直查找目標的最左點。基于這樣的先驗知識,論文提出corner pooling來定位角點。 ? 假設需要確定位置$(i,j)$是否為左上角點,首先定義$f_t$和$f_l$為左上corner pooling的輸入特征圖,$f_{t_{i,j}}$和$f_{l_{i,j}}$為輸入特征圖在位置$(i,j)$上的特征向量。特征圖大小為$H\times W$,corner pooling首先對$f_t$中$(i,j)$到$(i,H)$的特征向量進行最大池化輸出向量$t_{ij}$,同樣對$f_l$中$(i,j)$到$(W,j)$的特征向量也進行最大池化輸出向量$l_{ij}$,最后將$t_{ij}$和$l_{ij}$相加。完整的計算可表示為:

CornerNet中keypoint-based如何通過定位角點進行目標檢測

公式6和公式7采用element-wise最大池化。

CornerNet中keypoint-based如何通過定位角點進行目標檢測

在實現(xiàn)時,公式6和公式7可以如圖6那樣進行整張?zhí)卣鲌D的高效計算,有點類似動態(tài)規(guī)劃。對于左上角點的corner pooling,對輸入特征圖分別進行從右往左和從下往上的預先計算,每個位置只需要跟上一個位置的輸出進行element-wise最大池化即可,最后直接將兩個特征圖相加即可。

CornerNet中keypoint-based如何通過定位角點進行目標檢測

完整的預測模塊結構如圖7所示,實際上是個改進版residual block,將$3\times 3$卷積模塊替換為corner pooling模塊,最后輸出熱圖、embedding向量和偏移。

Hourglass Network

CornerNet中keypoint-based如何通過定位角點進行目標檢測

CornerNet使用hourglass網(wǎng)絡作為主干網(wǎng)絡,這是用于人體姿態(tài)估計任務中的網(wǎng)絡。Hourglass模塊如圖3所示,先對下采樣特征,然后再上采樣恢復,同時加入多個短路連接來保證恢復特征的細節(jié)。論文采用的hourglass網(wǎng)絡包含兩個hourglass模塊,并做了以下改進:

  • 替換負責下采樣的最大池化層為stride=2的卷積

  • 共下采樣五次并逐步增加維度(256, 384, 384, 384, 512)

  • 上采樣使用兩個residual模塊+最近鄰上采樣

  • 短路連接包含2個residual模塊

  • 在網(wǎng)絡的開頭,使用4個stride=2、channel=128的$7\times 7$卷積模塊以及1個stride=2、channel=256維度的residual模塊進行處理

  • 原版的hourglass網(wǎng)絡會對每個hourglass模塊添加一個損失函數(shù)進行有監(jiān)督學習,而論文發(fā)現(xiàn)這對性能有影響,沒有采用這種方法

Experiments


CornerNet中keypoint-based如何通過定位角點進行目標檢測

對比corner pooling的效果。

CornerNet中keypoint-based如何通過定位角點進行目標檢測

對比負樣本點懲罰衰減的效果。

CornerNet中keypoint-based如何通過定位角點進行目標檢測

對比hourglass網(wǎng)絡與corner檢測搭配的效果

CornerNet中keypoint-based如何通過定位角點進行目標檢測

對比熱圖和偏移預測的效果。

CornerNet中keypoint-based如何通過定位角點進行目標檢測

與其它各種類型的檢測網(wǎng)絡進行對比。

以上就是CornerNet中keypoint-based如何通過定位角點進行目標檢測,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當前標題:CornerNet中keypoint-based如何通過定位角點進行目標檢測
鏈接URL:http://muchs.cn/article48/ihcjep.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供Google、標簽優(yōu)化、域名注冊、品牌網(wǎng)站設計、App設計、網(wǎng)站設計

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設