時間:2021-12-15 23:15:32來源:王宏任 陳世峰
1 引言
目標檢測是計算機視覺中很常見的任務(wù)。根據(jù)有無提取候選區(qū)域 (Region Proposal),目標檢測領(lǐng)域的檢測方法通常分為一階段 (One-stage) 檢測網(wǎng)絡(luò)和二階段 (Two-stage) 檢測網(wǎng)絡(luò)。其中,一階段檢測方法直接回歸物體的類別概率和位置坐標值。常見的一階段算法包括:YOLOv1、YOLOv2、YOLOv3、SSD、DSSD 和 Retina-Net。二階段檢測方法的任務(wù)包括第一階段提取候選區(qū)域以及第二階段將候選區(qū)域送到分類器進行分類與檢測。常見的二階段算法包括:R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN、Mask R-CNN 和Cascade R-CNN。與一階段檢測網(wǎng)絡(luò)相比,二階段檢測網(wǎng)絡(luò)的檢測精度更高,但速度慢于一階段檢測網(wǎng)絡(luò)。
另外,根據(jù)是否利用錨框 (Anchor) 提取候選目標框,目標檢測框架也可分為基于錨框的方法 (Anchor-based)、基于無錨框的方法 (Anchorfree) 以及兩者融合類。其中,基于錨框類算法有 Fast R-CNN、SSD、YOLOv2 和 YOLOv3;基于無錨框類算法有 CornerNet、ExtremeNet、CenterNet 和FCOS;融合基于錨框和基于無錨框分支的方法有 FSAF、GA- RPN 和 SFace。
目前, 所有的主流探測器, 如 Faster R-CNN、SSD、YOLOv2 和 YOLOv3 都依賴一組預(yù)先定義的錨框。其中,人們認為錨框的使用是檢測器成功的關(guān)鍵。盡管這些主流探測器取得了巨大的成功,但基于錨框方法仍存在一些缺點:(1) 即使經(jīng)過仔細的設(shè)計,但由于錨框的尺度和長寬比是預(yù)先設(shè)定的,檢測器在處理形狀變化較大的候選物體時也會遇到困難, 尤其是對于小物體,這無疑阻礙了檢測器的泛化能力;(2) 為了達到較高的召回率,需要在輸入圖像上密集放置錨框 ( 如對于短邊為 800 的圖像,在特征金字塔網(wǎng)絡(luò) (FPN) 中放置超過180k 的錨框 ),但大多數(shù)錨框在訓練中被標記為負樣本,而過多的負樣本會加劇訓練中正負樣本之間的不平衡;(3) 錨框涉及復(fù)雜的計算,如計算與真實邊框 (Ground-truth) 的重疊度(Intersection over Union,IoU)。
為了克服基于錨框方法的缺點,CornerNet 采用基于關(guān)鍵點檢測角點提取候選區(qū)域的方法:利用單個卷積神經(jīng)網(wǎng)絡(luò)來檢測一個以左上角和右下角為一對關(guān)鍵點的目標包圍框,通過將目標作為成對的關(guān)鍵點進行檢測,消除了以往檢測器通常需要人為設(shè)計錨框的需要。然而,CornerNet 也存在一些問題: (1)CornerNet 對物體內(nèi)部信息的感知能力相對較弱,制約了CornerNet 的性能。(2) 在進行關(guān)鍵點配對時,CornerNet 認為屬于同一類別的關(guān)鍵角點間應(yīng)盡可能靠近,屬于不同類別的關(guān)鍵角點間應(yīng)盡可能遠離。但在實驗過程中發(fā)現(xiàn),通過計算左上角點的嵌入向量及右下角點的嵌入向量間的距離來決定是否將兩個點進行組合,經(jīng)常會發(fā)生配對錯誤的情況。(3) 采用關(guān)鍵點配對的方式確定一個目標的候選區(qū)域,會產(chǎn)生大量誤檢目標的候選區(qū)域,這樣不僅會使檢測精度降低而且會花費較長時間。本文提出一種新的無錨框二階段目標檢測算法對以上 3 個問題進行優(yōu)化。
2 基于關(guān)鍵點目標檢測方法
本文將 CornerNet 作為基準,提出一種基于無錨框 3 個關(guān)鍵點檢測的二階段目標檢測網(wǎng)絡(luò)方法。如圖 1 所示:第一階段采用基于無錨框關(guān)鍵點檢測的方法分別檢測角點以及中心關(guān)鍵點,同時判斷中心點是否落在中心區(qū)域以進行誤檢候選區(qū)域的剔除,即提取候選區(qū)域;第二階段將第一階段過濾后保留下來的候選區(qū)域送到多元分類器中進行分類與檢測。
圖 1 基于關(guān)鍵點檢測的二階段目標檢測方法網(wǎng)絡(luò)框架
2.1 基于無錨框 3 個關(guān)鍵點檢測
為了檢測角點,本文先采用基于 CornerNet 關(guān)鍵點檢測的方法來定位左上以及右下角點;然后,通過角點池化生成左上角以及右下角兩個熱圖來代表不同類別關(guān)鍵點的位置;最后, 進行角點關(guān)鍵點的偏移修正。
另外,為了加強網(wǎng)絡(luò)對物體內(nèi)部信息的感知能力,本文增加了中心關(guān)鍵點的檢測分支,并采用中心池化操作加強中心點的特征。同時定義了物體中心度的概念——設(shè)定中心度大于0.7 時,可認為中心關(guān)鍵點落在中心區(qū)域,很好地解決了不同尺寸物體中心區(qū)域的判定。最終,只有當物體的中心點落在預(yù)測框的中心區(qū)域才進行保留,否則去除。需要說明的是,當中心關(guān)鍵點同時落在多個不同的預(yù)測框中時,取中心度最大的那個預(yù)測框予以保留,并剔除多余的預(yù)測框,以減少誤檢框出現(xiàn)的概率。具體如圖 2 所示。
圖 2 利用中心關(guān)鍵點過濾誤檢候選區(qū)域
2.1.1 角點關(guān)鍵點檢測
關(guān)于角點關(guān)鍵點的檢測,本文借鑒 CornerNet 來定位被檢對象的兩個角點關(guān)鍵點——分別位于其左上角和右下角。計算 3 個熱圖 ( 即左上的熱圖和右下的熱圖以及中心點的熱圖, 熱圖上的每個值表示一個角的關(guān)鍵點出現(xiàn)在相應(yīng)位置的概率), 其分辨率變成原始圖像分辨率的 1/4。其中,熱圖有兩個損失, 用來定位熱圖上的左上角關(guān)鍵點, 用來定位熱圖上的右下角關(guān)鍵點和偏移損失,具體如公式 (1) ~ (3)。在計算熱圖之后,從所有熱圖中提取固定數(shù)量的關(guān)鍵點 ( 左上角 k 個,右下角 k 個 ),每個角點的關(guān)鍵點都配有一個類標簽。
(1)
其中,C 為目標的類別;H、W 分別為熱圖的高和寬;pcij 為預(yù)測熱圖中 c 類在位置 (i, j) 的得分;ycij 為加了非歸一化高斯熱圖;N 為圖像中物體的數(shù)量;α 和 β 為控制每個點貢獻的超參數(shù)。
(2)
(3)
其中,OK是偏移量; 表示在取整計算時丟失的精度信息;xk 和 yk 為角 k 的 x 和 y 坐標;(xk , yk) 在映射到熱圖中為,n 為下采樣值,在本文中為 4; 表示向下取整。特別地,預(yù)測一組由所有類別的左上角共享的偏移量,以及另一組由右下角共享的偏量,在訓練時采用 Smooth L1 Loss。
在進行關(guān)鍵點配對時,CornerNet 認為屬于同一類別的關(guān)鍵角點間應(yīng)盡可能靠近,屬于不同類別的關(guān)鍵角點間應(yīng)盡可能遠離。但在實驗的過程中,配對關(guān)鍵點時可能會出現(xiàn)錯誤, 同時為了充分利用物體的內(nèi)部信息,本文將這一機制舍棄,留給二階段中的多元分類器來完成關(guān)鍵點的配對問題。
2.1.2 中心度——中心區(qū)域的定義
為了有效剔除大量誤檢候選區(qū)域,本文通過判斷中心關(guān)鍵點是否落在目標框的中心區(qū)域的方法來解決此問題。由于每個邊界框的大小不同,所以中心區(qū)域不能設(shè)置為一個固定的數(shù)值。本文提出尺度可調(diào)節(jié)的中心區(qū)域定義法如公式 (4) 所示,引入新的定量指標中心度 (Centrality) 概念。
(4)
其中,l 為計算中心點到預(yù)測框左邊的距離;r 為中心點到右側(cè)的距離;t 為中心點到上邊框的距離;b 為中心點到下邊框的距離,具體如圖 3 所示。
2.1.3 中心池化
圖 3 中心度計算
中心池化操作參考 CornerNet 的兩個角點池化模塊—— 左上角點池化和右下角點池化,分別預(yù)測左上角關(guān)鍵點和右下角關(guān)鍵點。每個角點模塊有 2 個輸入特征圖,相應(yīng)圖的寬、高分別用 W 和 H 表示。假設(shè)要對特征圖上 (i, j) 點做左上角的角點池化,即計算(i, j) 到(i, H) 的最大值( 最大池化),同時計算(i,j) 到(W, j) 的最大值( 最大池化),隨后將這兩個最大值相加得到 (i, j) 點的值。右下角的角點池化操作類似,只不過計算最大值變成從 (0, j) 到 (i, j) 和從 (i, 0) 到 (i, j)。
物體的幾何中心不一定具有很明顯的視覺特征,如人類頭部包含強烈的視覺特征,但中心關(guān)鍵點往往在人體的中間。為了解決這個問題,本文采用中心池化來捕捉更豐富和可識別的視覺特征。圖 4 為中心池化的原理:特征提取網(wǎng)絡(luò)輸出一幅特征圖 ( 寬、高分別用 W 和 H 表示 ),中心池化可通過不同方向上的角點池化的組合實現(xiàn)。其中,水平方向上取最大值的操作可通過左邊池化 (Left Pooling) 和右邊池化 (Right Pooling) 串聯(lián)實現(xiàn)。同理,垂直方向上取最大值的操作可通過上部池化 (Top Pooling) 和下部池化 (Bottom Pooling) 串聯(lián)實現(xiàn)。
圖 4 中心池化結(jié)構(gòu)示意圖
注:AP50 和 AP75 為在單個 IoU 閾值 0.50 和 0.75 時的精度;APs、APm、APl 分別為小目標、中目標和大目標的檢測精度。下同表 2、表 4
表 1 本文方法和最先進的檢測框架在 COCO test-2017 上的精度對比
為了判斷特征圖中的某個像素是否為中心關(guān)鍵點,需要通過中心池化找到其在水平方向和垂直方向的最大值,且將二者相加,這樣有助于更好地檢測中心關(guān)鍵點。具體操作為特征圖的兩個分支分別經(jīng)過一個 3×3 卷積層、BN(Batch Normalization) 層以及一個 ReLU 激活函數(shù),做水平方向和垂直方向的角點池化,最后再相加。假設(shè)對圖上 (i, j) 點在水平方向做右邊池化,即計算(i, j) 到(W, j) 的最大值( 最大池化); 同理,計算左邊池化,再將二者串聯(lián)相加獲得 (i, j) 點水平方向的值。同理,找到垂直方向,最后將水平與垂直方向的值進行相加獲得 (i, j) 點的值。
2.2 分類
采用關(guān)鍵點檢測的方式提取候選區(qū)域,雖然能夠解決需人為設(shè)定錨框大小以及長寬比等超參數(shù)的問題,大大提高檢測的靈活度,但也因此帶來了兩個問題:大量的誤檢候選區(qū)域以及過濾掉這些誤檢區(qū)域而帶來的高計算成本?;诖耍疚牟扇〉慕鉀Q方案主要包括兩個步驟:
(1) 先判斷角點與中心點是否屬于同一類別,再通過計算中心點的中心度是否大于 0.7 來過濾掉大量錯誤的候選區(qū)域。
(2) 將第一步篩選后存留的候選區(qū)域送到之后的多元分類器,對仍存在多個類別的目標分數(shù)進行排序。其中,采用RoIAlign 提取每個候選區(qū)域上的特征,并通過 256×7×7 卷積層,得到一個表示類別的向量,為每一個存活的候選區(qū)域建立單獨的分類器。損失函數(shù) Lclass 為 Focal Loss:
(5)
其中,M 和 N 分別為保留的候選區(qū)域數(shù)量和其中的正樣本數(shù)量;C 為數(shù)據(jù)集中與之交叉的類別數(shù);IoUnc 為第 n 個候選區(qū)域與第 c 個類別中所有真實框之間的最大 IoU 值;τ 為IoU 的閾值 ( 設(shè)為 0.7); 為第 n 個目標中第 c 個類別的分類分數(shù);? 為平滑損失函數(shù)的超參數(shù) ( 設(shè)為 2)。
3 實驗
3.1 數(shù)據(jù)集與評估指標
MS-COCO 是目前最流行的目標檢測基準數(shù)據(jù)集之一,總共包含 12 萬張圖片,超過 150 萬個邊界框,覆蓋 80 個對象類別,是一個非常具有挑戰(zhàn)性的數(shù)據(jù)集。本文使用trainval35k 來訓練基于關(guān)鍵點檢測二階段目標檢測網(wǎng)絡(luò)模型, 并在 MS-COCO 數(shù)據(jù)集上進行評估。其中,trainval35k 是由80k 張訓練圖片和 35k 張驗證圖像的子集組成的聯(lián)合集?! ?/p>
本文使用 MS-COCO 中定義的平均精度 (Average Precision,AP) 作為度量來表征網(wǎng)絡(luò)模型的性能以及其他競爭對手的性能。單個 IoU 閾值從 0.5 到 0.95 每隔 0.05 記錄一次精度 AP,最后取平均值 ( 即 0.5:0.05:0.95) 。實驗中也記錄了一些其他重要指標,如 AP50 和 AP75 為在單個 IoU 閾值 0.50 和 0.75 下計算精度,APs、APm 和 APl 為在不同的目標尺度下計算精度 ( 小尺寸物體面積小于 32×32,中尺寸物體面積大于 32×32 小于 96×96,大尺寸物體面積大于 96×96)。所有的度量都是在每個測試圖像上允許最多保留100 個候選區(qū)域計算的。
3.2 網(wǎng)格的訓練和測試
本文以 CornerNet 作為基線,部分參考了CornerNet、FCOS 的代碼,特征提取網(wǎng)絡(luò)仍然延用 CornerNet 中采用的52/104 層的 Hourglass 網(wǎng)絡(luò),并借助 Pytorch 實現(xiàn)算法。
網(wǎng)絡(luò)從零開始訓練,輸入圖像的分辨率為 511×511,輸出熱圖的分辨率為 128×128。利用 Adam 來優(yōu)化訓練損失, 整個網(wǎng)絡(luò)的損失函數(shù) L 為:
(6)
其中,和采用的是 Focal Loss,分別用于訓練網(wǎng)絡(luò)檢測角點和中心關(guān)鍵點;和采用 Smooth L1 Loss 分別訓練網(wǎng)絡(luò)預(yù)測角點和中心關(guān)鍵點的偏移量。在8 張 NVIDIA 2080-Ti 上進行模型訓練,batch size 大小設(shè)為 48( 每張卡分配 6 個樣本 ),前 250k 次迭代學習率設(shè)為2.5×10- 4,接下來的 50k 次迭代減小學習率到 2.5×10 - 5。訓練 Hourglass-104、Hourglass-52 的時間分別是 9 d 和 5 d。
4 結(jié)果與討論
本文在通用檢測數(shù)據(jù)集 COCO test-2017 上對近年來比較常見的基于錨框與基于無錨框的檢測框架進行精度測試,結(jié)果如表 1 所示。從表 1 可知,本文基于無錨框關(guān)鍵點檢測的二階段方法比基于錨框的二階段方法 YOLOv4 精度提升 3.2%;比基于無錨框的一階段方法如 FCOS、CenterNet 精度分別提升 5.2% 和 1.8%,比 CornerNet 精度提升 6.2%。其中,在檢測尺寸以及長寬比特殊的物體時,檢測精度提升更明顯。這表明,基于無錨框方法進行提取候選區(qū)域更具優(yōu)勢。在單尺度測試時,將原始分辨率的圖像和水平翻轉(zhuǎn)的圖像輸入網(wǎng)絡(luò)中,而在多尺度測試時,將原始圖像的分辨率分別設(shè)置為 0.6、1、1.2、1.5 和 1.8 倍。此外,在單尺度評價和多尺度評價中都增加了翻轉(zhuǎn)變量。在多尺度評價時,將所有尺度的預(yù)測結(jié)果 ( 包括翻轉(zhuǎn)變量 ) 融合到最終結(jié)果中,然后使用soft-NMS 來抑制冗余的限定框,并保留 100 個得分最高的限定框作為最終評價,結(jié)果如表 2 所示。
表 2 多尺度測試
將 3 種不同檢測框架與本研究檢測方法在 COCO 數(shù)據(jù)集上進行召回率評估,即記錄不同長寬比和不同大小目標的平均召回率 (Average Recall,AR),結(jié)果如表 3 所示。
注:X 為 ResNeXt[29];AR1+、AR2+、AR3+、AR4+ 分別表示邊界框面積在(962, 2002]、(2002, 3002]、(3002, 4002]、(4002, ∞ ) 時的召回率; AR5∶ 1、AR6∶ 1、AR7∶ 1、AR8∶1 分別表示物體長寬比為 5 ∶ 1、6 ∶ 1、7 ∶ 1、8 ∶ 1 時的召回率
表 3 基于錨框和無錨框檢測方法的平均召回率 (AR) 比較
通常來說,在物體非常大時,如尺寸大于 (400×400, ∞ ), 更容易被檢測到。與其他基于無錨框的方法相比,基于錨框的方法 Faster R-CNN 并沒有達到期望的較高召回率。但當物體長寬比比較特殊 ( 如 5 ∶ 1 和 8 ∶ 1) 時,基于無錨框的檢測方法比基于錨框的方法表現(xiàn)更加優(yōu)異。這是因為基于無錨框的檢測方法擺脫了人為設(shè)置錨框長寬比的束縛。本文方法繼承了FCOS 和 CornerNet 的優(yōu)點,使目標定位更靈活,特別是長寬比例特殊的物體。
本文在 CornerNet 算法基礎(chǔ)上加上中心關(guān)鍵點檢測分支與原始算法進行對比來進行消融實驗,其中特征提取網(wǎng)絡(luò)采用Hourglass-52,結(jié)果如表 4 所示。分析數(shù)據(jù)可以看到,當引入中心關(guān)鍵點檢測分支后精度提升 3%,小目標檢測精度提升5.8%,大目標檢測精度提升 3.6%。表明引入中心關(guān)鍵點檢測分支后,小目標誤檢候選區(qū)域去除得更多。這是因為從概率上講,小目標由于面積小更容易確定其中心點,因此那些誤檢候選區(qū)域不在中心點附近的概率更大。
表 4 添加中心關(guān)鍵點分支的消融實驗
圖 5 為基于錨框方法 Faster R-CNN 與基于無錨框關(guān)鍵點檢測的方法進行檢測任務(wù)的可視化對比結(jié)果??梢钥吹?,本文研究方法無需人為設(shè)置錨框大小及長寬比,對于檢測小目標以及形狀特殊的物體具有更好的檢測效果。
圖 5 基于錨框方法 Faster R-CNN 與基于無錨框關(guān)鍵點檢測的方法進行檢測任務(wù)的可視化對比結(jié)果
5 結(jié)論
本文提出了基于無錨框二階段目標檢測框架,即分別提取角點關(guān)鍵點以及物體中心關(guān)鍵點,并將它們組合成候選區(qū)域。通過判斷物體中心點是否落在中心區(qū)域來過濾掉大量誤檢候選區(qū)域,同時舍棄了 CornerNet 中采取的角點關(guān)鍵點結(jié)合的方式,采用二階段的方式,將保留下來的候選區(qū)域送入多元分類器進行分類與回歸。
通過以上兩個階段,本文網(wǎng)絡(luò)模型檢測的查全率和準確率均有顯著提高,其結(jié)果也優(yōu)于大多數(shù)現(xiàn)有目標檢測方法,在召回率與檢測精度上都取得了良好的表現(xiàn)。最重要的是,基于無錨框的方法在提取候選區(qū)域時更加靈活,克服了基于錨框方法需人為設(shè)置錨框超參數(shù)的缺點。
作者:王宏任 1,2 陳世峰 1
1 中國科學院深圳先進技術(shù)研究院
2 中國科學院大學深圳先進技術(shù)學院轉(zhuǎn)載自《集成技術(shù)》
中國傳動網(wǎng)版權(quán)與免責聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(m.u63ivq3.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責任。