黃 健,張 鋼
西安科技大學(xué) 通信與信息工程學(xué)院,西安 710000
目標(biāo)檢測(cè)是計(jì)算機(jī)視覺以及圖像處理領(lǐng)域的一個(gè)基本問題,是近些年來理論和應(yīng)用的研究熱點(diǎn),應(yīng)用十分廣泛,其主要目標(biāo)是在圖像或圖像序列中精確定位出各種目標(biāo)的類別和位置信息。目標(biāo)檢測(cè)任務(wù)有很多種類型,例如單類目標(biāo)檢測(cè)、多類/通用目標(biāo)檢測(cè)、靜態(tài)圖像目標(biāo)檢測(cè)、視頻目標(biāo)檢測(cè)等等。目標(biāo)檢測(cè)的任務(wù),根據(jù)后續(xù)任務(wù)的需要,有三個(gè)主要的層次:分類、檢測(cè)、分割。然而,目標(biāo)種類、數(shù)量、尺度變化以及外在環(huán)境干擾等因素對(duì)目標(biāo)檢測(cè)任務(wù)構(gòu)成了挑戰(zhàn)[1]。為了克服這些困難,眾多學(xué)者投入到了該領(lǐng)域的研究。
傳統(tǒng)目標(biāo)檢測(cè)算法的流程包括以下幾個(gè)階段:(1)采用滑動(dòng)窗口的方式對(duì)輸入圖像進(jìn)行候選框的選?。唬?)采用尺度不變特征變換(SITF)、方向梯度直方圖(HOG)等方法對(duì)每個(gè)窗口中的圖像信息進(jìn)行特征提??;(3)使用形變部件模型(DPM)、支持向量機(jī)(SVM)等分類器對(duì)特征進(jìn)行分類;(4)使用NMS算法對(duì)候選框進(jìn)行合并,實(shí)現(xiàn)物體的檢測(cè)。然而,傳統(tǒng)的目標(biāo)檢測(cè)算法比較依賴于手工設(shè)計(jì)的特征,其采用滑動(dòng)窗口選取候選框的方式,導(dǎo)致窗口冗余問題嚴(yán)重,而且其特征提取方法泛化性能較差,導(dǎo)致檢測(cè)精度較低,算法步驟繁多導(dǎo)致檢測(cè)速度慢、實(shí)時(shí)性差,所以需要對(duì)傳統(tǒng)的目標(biāo)檢測(cè)算法進(jìn)行一系列的改進(jìn),以達(dá)到較好的性能指標(biāo)[2]。
近些年來,隨著深度學(xué)習(xí)的快速發(fā)展,深度卷積神經(jīng)網(wǎng)絡(luò)越來越多地應(yīng)用于計(jì)算機(jī)視覺領(lǐng)域,并且在該領(lǐng)域取得重大進(jìn)展[3]?;谏疃染矸e神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法給目標(biāo)檢測(cè)帶來了新的研究方向,引領(lǐng)了目標(biāo)檢測(cè)領(lǐng)域的發(fā)展。2012年,Hinton等人首次將深層卷積神經(jīng)網(wǎng)絡(luò)AlexNet[4]應(yīng)用在大規(guī)模圖像分類任務(wù)中,并以碾壓的成績(jī)奪得當(dāng)年的ILSVRC圖像分類比賽的冠軍,從此卷積神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺領(lǐng)域受到了眾多學(xué)者的青睞?;谏疃染矸e神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法利用ImageNet、PASCAL VOC、COCO 等大規(guī)模數(shù)據(jù)集來訓(xùn)練提取特征的卷積神經(jīng)網(wǎng)絡(luò)(CNN)[5],最終大幅提升了目標(biāo)檢測(cè)算法的性能指標(biāo)。例如,2013 年,Girshick 等人提出的R-CNN[6]作為利用深層卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行目標(biāo)檢測(cè)任務(wù)的開山之作,使用AlexNet 網(wǎng)絡(luò)進(jìn)行特征提取,最終的檢測(cè)精度比傳統(tǒng)方法提升了將近30%。
基于深度卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法主要分為兩類,一類是基于候選區(qū)域的目標(biāo)檢測(cè)算法(即兩階段目標(biāo)檢測(cè)器),另一類是基于回歸的目標(biāo)檢測(cè)算法(即單階段目標(biāo)檢測(cè)器)。兩階段目標(biāo)檢測(cè)器首先對(duì)輸入圖像選取候選區(qū)域,然后對(duì)候選區(qū)域進(jìn)行分類和位置回歸,從而實(shí)現(xiàn)目標(biāo)檢測(cè)。單階段目標(biāo)檢測(cè)器則省略了候選區(qū)域生成步驟,直接將特征提取、目標(biāo)分類和位置回歸的過程都整合到一個(gè)卷積神經(jīng)網(wǎng)絡(luò)中完成,將目標(biāo)檢測(cè)過程簡(jiǎn)化為一種端到端的回歸問題。
數(shù)據(jù)集對(duì)于有監(jiān)督學(xué)習(xí)算法十分重要,對(duì)于目標(biāo)檢測(cè)任務(wù)而言,適用性強(qiáng)的數(shù)據(jù)集不僅能對(duì)算法的性能進(jìn)行測(cè)試和評(píng)估,同時(shí)也促進(jìn)了目標(biāo)檢測(cè)相關(guān)研究領(lǐng)域的發(fā)展。在目標(biāo)檢測(cè)任務(wù)中,應(yīng)用最多的兩個(gè)數(shù)據(jù)集是PASCAL VOC數(shù)據(jù)集和Microsoft COCO數(shù)據(jù)集。
PASCAL VOC 數(shù)據(jù)集初始發(fā)布于2005 年,經(jīng)歷了多個(gè)版本的更新,至2012 年止。VOC2007 和VOC2012是目前學(xué)術(shù)界用的最多的兩個(gè)版本,目標(biāo)類別數(shù)均為20類。其中,VOC2007 數(shù)據(jù)集包含9 963 張圖片,由train/val/test 三部分組成,而 VOC2012 數(shù)據(jù)集包含 11 530 張圖片,由train/test兩部分組成。學(xué)術(shù)界有兩種使用該數(shù)據(jù)集用于目標(biāo)檢測(cè)任務(wù)的方法,一種是使用train2007+train2012 作為訓(xùn)練集,用test2007 作為測(cè)試集,另一種是使用train2007+test2007+train2012 作為訓(xùn)練集,用test2012作為測(cè)試集。該數(shù)據(jù)集的主要評(píng)價(jià)指標(biāo)是平均精確率均值(mAP)。
Microsoft COCO 數(shù)據(jù)集初始發(fā)布于2014 年,包含了 91 個(gè)物體類別、328 000 張圖片和 2 500 000 個(gè) lable。COCO 數(shù)據(jù)集以場(chǎng)景理解為目標(biāo),可用于圖像分類、圖像分割、目標(biāo)檢測(cè)等領(lǐng)域,主要研究non-iconic views、contextual reasoning between objects、precise 2D localization 這三個(gè)問題。該數(shù)據(jù)集的發(fā)布促進(jìn)了近幾年圖像分割領(lǐng)域的發(fā)展,是目前為止圖像分割領(lǐng)域最大的數(shù)據(jù)集。表1為COCO數(shù)據(jù)集主要評(píng)價(jià)指標(biāo)。
表1 COCO數(shù)據(jù)集主要評(píng)價(jià)指標(biāo)
目標(biāo)檢測(cè)算法常用的性能評(píng)價(jià)指標(biāo)包括:檢測(cè)速度、交并比、精確率、召回率、平均精確率、平均精確率均值等。
其中,檢測(cè)速度(Frames Per Second,F(xiàn)PS),表示算法模型每秒鐘所能檢測(cè)到的圖片數(shù)量,F(xiàn)PS可以評(píng)估一個(gè)模型的實(shí)時(shí)性,其值越大,說明模型的實(shí)時(shí)性越好。交并比(Intersection Over Union,IOU),表示為算法模型產(chǎn)生的預(yù)測(cè)框和原始標(biāo)注框的交集與并集的比值,它描述了兩個(gè)區(qū)域的重合程度,其值越高代表算法模型的定位越準(zhǔn)確。精確率(Precision,P),表示為分類正確的正樣本個(gè)數(shù)與分類后判別為正樣本個(gè)數(shù)的比值,衡量的是一個(gè)分類器分出來的正樣本的確是正樣本的概率。召回率(Recall,R),表示為分類正確的正樣本數(shù)與真正的正樣本數(shù)的比值,衡量的是一個(gè)分類器能把所有的正樣本都找出來的能力,在通常情況下,精確率越高,則召回率越低。平均精確率(Average Precision,AP),表示為精確率-召回率曲線上的精確率對(duì)召回率的積分,其值越大,表示分類器對(duì)某個(gè)類別的檢測(cè)效果越好。平均精確率均值(mean Average Presion,mAP),表示為所有類別的平均精確率的均值,衡量的是分類器對(duì)所有類別的檢測(cè)效果,它是目標(biāo)檢測(cè)算法中用的最多也是最重要的一個(gè)指標(biāo)。
圖像是目標(biāo)檢測(cè)的基礎(chǔ),目標(biāo)檢測(cè)是在分類的基礎(chǔ)上,實(shí)現(xiàn)圖像中的目標(biāo)定位,給出目標(biāo)的具體空間位置和邊界信息[7]。基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)網(wǎng)絡(luò)需要卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取來完成目標(biāo)檢測(cè)的任務(wù),因此卷積神經(jīng)網(wǎng)絡(luò)的性能好壞直接關(guān)系到了目標(biāo)檢測(cè)網(wǎng)絡(luò)的性能好壞。
2012 年,Hinton 等人提出的 AlexNet 超越了眾多傳統(tǒng)圖像分類算法模型,以16.4%的Top-5 錯(cuò)誤率奪得當(dāng)年的ILSVRC圖像分類比賽的冠軍,使得卷積神經(jīng)網(wǎng)絡(luò)越來越多地應(yīng)用在圖像分類問題上,標(biāo)志著深度學(xué)習(xí)時(shí)代的來臨。
2013 年,Lin M 等人提出的 NiN[8]網(wǎng)絡(luò)引入了 1×1卷積層和全局池化,有效地降低了網(wǎng)絡(luò)的參數(shù)量,之后的ResNet[9]和Inception 等網(wǎng)絡(luò)也借鑒了這種設(shè)計(jì)。Simonyan K等人提出了VGGNet[10],該網(wǎng)絡(luò)使用3×3的小卷積核代替了5×5或7×7的大卷積核,增加了網(wǎng)絡(luò)深度,減少了模型的參數(shù)量,使得模型在圖像分類任務(wù)上的Top-5錯(cuò)誤率降低到了6.8%,這證明了通過增加網(wǎng)絡(luò)深度也能提高模型精確度。
2014年,Szegedy C等人提出的GoogleNet[11]引入了Inception模塊,以更少的參數(shù)和更高的性能,一舉奪得當(dāng)年的ILSVRC圖像分類比賽的冠軍。GoogleNet一共包含了Inception-v1、Inception-v2、Inception-v3、Inception-v4四個(gè)版本,模型性能不斷提高,其在圖像分類任務(wù)中的Top-5 錯(cuò)誤率分別為6.67%、4.82%、3.58%、3.08%。其中,Inception-v1 將CNN 中常用的1×1、3×3、5×5 卷積和3×3 池化堆疊在一起,增加了模型寬度,同時(shí)減少了模型參數(shù)數(shù)量。Inception-v2提出了卷積核分解和特征圖尺寸縮減兩種優(yōu)化方法,將5×5 卷積核分解為2 個(gè)3×3卷積核,在保持感受野大小的同時(shí)減少了模型參數(shù)量。Inception-v3 在Inception-v2 基礎(chǔ)上,進(jìn)一步對(duì)卷積核進(jìn)行分解,將7×7卷積核分解為1×7卷積核和7×1卷積核,3×3 卷積核分解為1×3 卷積核和3×1 卷積核,這種設(shè)計(jì)在加速計(jì)算的同時(shí)使得網(wǎng)絡(luò)深度進(jìn)一步增加,增加了網(wǎng)絡(luò)的非線性。Inception-v4中使用了ResNet的殘差連接方式,在加深網(wǎng)絡(luò)深度的同時(shí)加速了模型的訓(xùn)練速度,模型性能進(jìn)一步得到提高。
為了解決網(wǎng)絡(luò)深度達(dá)到飽和后出現(xiàn)的梯度消散或梯度爆炸的問題,2015 年He Kaiming 等人提出了殘差網(wǎng)絡(luò)ResNet,其在圖像分類任務(wù)中的Top-5 錯(cuò)誤率為3.57%。該網(wǎng)絡(luò)通過一種跨層連接的方式,在增加網(wǎng)絡(luò)深度的同時(shí)不會(huì)影響誤差,對(duì)后續(xù)卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展具有很好的借鑒意義,使得之后采用跨層連接方式的卷積神經(jīng)網(wǎng)絡(luò)可以在大幅度增加網(wǎng)絡(luò)深度的同時(shí)進(jìn)一步提高模型性能。
2016 年,Zagoruyko S 等人提出的廣度殘差網(wǎng)絡(luò)WRNs[12],通過拓寬殘差網(wǎng)絡(luò)通道數(shù)的方式來提升網(wǎng)絡(luò)性能[13]。2017 年,Xie S 等人提出的 ResNeXt[14]引入了深度和寬度之外的第3個(gè)維度“基數(shù)”(cardinality),在沒有增加模型的參數(shù)復(fù)雜度的同時(shí)提高了模型準(zhǔn)確率。Huang G等人設(shè)計(jì)的DenseNet[15]引入稠密鏈接,將當(dāng)前的層與之后的所有層直連,減輕了梯度消失的現(xiàn)象,減少了模型參數(shù)量的同時(shí)有效防止了模型訓(xùn)練的過擬合。Chen Y等人融合了ResNet和DenseNet的優(yōu)點(diǎn),設(shè)計(jì)了一類全新的雙通道網(wǎng)絡(luò)結(jié)構(gòu)DPN[16],該網(wǎng)絡(luò)對(duì)特征的利用更加充分。
2020 年,Hu J 等人設(shè)計(jì)的 SENet[17]使用了“特征重標(biāo)定”的策略來對(duì)特征進(jìn)行處理,它是根據(jù)每個(gè)特征通道的重要程度,來降低或者提升相應(yīng)的特征通道的權(quán)重,這種設(shè)計(jì)使得該網(wǎng)絡(luò)在圖像分類中的Top-5錯(cuò)誤率降低到了2.3%,從而獲得了2017 年ILSVRC 圖像分類比賽的冠軍。部分卷積神經(jīng)網(wǎng)絡(luò)如表2所示。
從表2 可以看出,這幾年卷積神經(jīng)網(wǎng)絡(luò)發(fā)展迅速,模型結(jié)構(gòu)不斷優(yōu)化,模型性能不斷提升,在圖像分類任務(wù)中的錯(cuò)誤率從AlexNet 的16.4%降低到了SENet 的2.3%。卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展推動(dòng)了目標(biāo)檢測(cè)的進(jìn)步,使基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法的性能不斷提升。
基于候選區(qū)域的目標(biāo)檢測(cè)算法首先對(duì)輸入圖像選取建議框,然后對(duì)建議框進(jìn)行分類和位置回歸,進(jìn)而得到最終的檢測(cè)結(jié)果。這類算法的典型代表有:R-CNN系列、R-FCN、Mask R-CNN、Cascade R-CNN、Trident-Net等。下面將分別進(jìn)行介紹。
2014 年,Grishick 等人提出的 R-CNN,開創(chuàng)了將CNN 應(yīng)用于目標(biāo)檢測(cè)的先河,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。R-CNN首先對(duì)輸入圖像采用Selective Search建議框提取方法生成約2 000 個(gè)建議框,并將不同大小的建議框縮放到227×227 的相同大小,然后使用AlexNet 對(duì)建議框進(jìn)行特征提取,得到特征圖,最后分別使用SVM分類器和回歸器確定目標(biāo)的類別和位置。
表2 部分卷積神經(jīng)網(wǎng)絡(luò)
圖1 R-CNN網(wǎng)絡(luò)結(jié)構(gòu)
R-CNN算法的性能大大超越了之前最好的傳統(tǒng)目標(biāo)檢測(cè)算法,以AlexNet為主干網(wǎng)絡(luò)的R-CNN在VOC2007數(shù)據(jù)集上的準(zhǔn)確率達(dá)到了58.5%,但也存在不少問題:
(1)使用Selective Search方法提取建議框耗時(shí)嚴(yán)重。
(2)R-CNN對(duì)輸入圖片進(jìn)行縮放操作,破壞了圖片的信息,降低了檢測(cè)精度。
(3)建議框之間存在的重復(fù)區(qū)域增加了計(jì)算復(fù)雜度。
(4)訓(xùn)練步驟繁瑣,訓(xùn)練時(shí)間長(zhǎng)。
2015 年,為了解決 R-CNN 存在的部分問題,He 等人提出了SPP-Net[18]。之前的R-CNN 對(duì)所有的建議框分別使用卷積神經(jīng)網(wǎng)絡(luò)來提取特征,而SPP-Net在使用卷積神經(jīng)網(wǎng)絡(luò)提取特征時(shí),對(duì)整張輸入圖片僅進(jìn)行一次卷積操作,大大降低了運(yùn)算量。此外,SPP-Net在網(wǎng)絡(luò)的最后一個(gè)卷積層添加了空間金字塔池化層(SPP層),產(chǎn)生固定長(zhǎng)度的特征向量,作為第一個(gè)全連接層的輸入??臻g金字塔池化層結(jié)構(gòu)如圖2所示。
圖2 空間金字塔池化層結(jié)構(gòu)示意圖
以上兩點(diǎn)改進(jìn)使得以ZF-5 為主干網(wǎng)絡(luò)的SPP-Net在VOC2007數(shù)據(jù)集上的準(zhǔn)確率上升為59.2%,但是其仍然存在缺陷:
(1)需要存儲(chǔ)大量特征,空間開銷大。
(2)生成候選區(qū)域、特征提取、目標(biāo)分類和位置回歸這些步驟依然是分離的。
(3)SPP-Net 依然使用SVM 作為分類器,訓(xùn)練步驟繁瑣且訓(xùn)練時(shí)間長(zhǎng)。
2015年,Girshick等人吸收了SPP-Net的思想,進(jìn)一步提出了Fast R-CNN[19]。該網(wǎng)絡(luò)將SPP層簡(jiǎn)化一層,稱為 ROI Pooling 層。另外,F(xiàn)ast R-CNN 用 softmax 函數(shù)替代了R-CNN 中采用的SVM,并引入了SVD 分解,將分類問題和回歸問題進(jìn)行了合并。Fast R-CNN進(jìn)行目標(biāo)檢測(cè)的過程如圖3所示。
圖3 Fast R-CNN網(wǎng)絡(luò)結(jié)構(gòu)
Fast R-CNN 將特征提取、目標(biāo)分類和位置回歸這些步驟整合到一個(gè)模型中,降低了計(jì)算復(fù)雜度,在提高檢測(cè)速度的同時(shí)提高了檢測(cè)精度,以VGG-16為主干網(wǎng)絡(luò)的 Fast R-CNN 在 VOC2007 數(shù)據(jù)集上的 mAP 上升為70.0%。但是,該網(wǎng)絡(luò)仍然存在一定缺點(diǎn):
(1)由于該網(wǎng)絡(luò)仍使用比較耗時(shí)的selective search方法生成候選區(qū)域,導(dǎo)致檢測(cè)速度仍然很慢,使得Fast R-CNN依然不能實(shí)時(shí)檢測(cè)。
(2)ROIs區(qū)域是在圖片輸入到CNN網(wǎng)絡(luò)前獲得的,因此Fast R-CNN依然不是真正意義上的端到端網(wǎng)絡(luò)。
針對(duì)Fast R-CNN存在的問題,2015年,Ren等人提出了Faster R-CNN[20]。該網(wǎng)絡(luò)使用區(qū)域生成網(wǎng)絡(luò)(RPN)來生成候選區(qū)域,將生成候選區(qū)域、特征提取、目標(biāo)分類和位置回歸這些步驟整合到了一個(gè)模型中,真正實(shí)現(xiàn)了目標(biāo)檢測(cè)網(wǎng)絡(luò)的端到端訓(xùn)練。同時(shí)檢測(cè)速度的提升,使得Faster R-CNN成為第一個(gè)準(zhǔn)實(shí)時(shí)的深度學(xué)習(xí)目標(biāo)檢測(cè)網(wǎng)絡(luò)。圖4為Faster R-CNN的檢測(cè)過程圖。
圖4 Faster R-CNN的檢測(cè)過程圖
Faster R-CNN 的檢測(cè)精度和檢測(cè)速度在Fast RCNN的基礎(chǔ)上進(jìn)一步得到提升,采用VGG-16為主干網(wǎng)絡(luò)的Faster R-CNN在VOC2007數(shù)據(jù)集上達(dá)到了73.2%mAP,同時(shí)檢測(cè)速度由Fast R-CNN 的3 f/s 提高到了7 f/s。但是,F(xiàn)aster R-CNN仍然存在不少缺點(diǎn):
(1)保留了Fast R-CNN 中使用的ROI Pooling 層,這導(dǎo)致之后的網(wǎng)絡(luò)特征喪失了平移不變形,從而影響了目標(biāo)定位的準(zhǔn)確性[21]。
(2)ROI Pooling層后每個(gè)區(qū)域經(jīng)過多個(gè)全連接層,存在較多重復(fù)計(jì)算,降低了檢測(cè)速度。
(3)Faster R-CNN在特征圖上使用錨點(diǎn)框?qū)?yīng)原圖,而錨點(diǎn)框經(jīng)過多次下采樣操作,對(duì)應(yīng)原圖一塊較大的區(qū)域,導(dǎo)致Faster R-CNN檢測(cè)小目標(biāo)的效果并不是很好。
鑒于 Faster R-CNN 存在的問題,2016 年,Dai 等人提出了R-FCN[22]。R-FCN 使用了ResNet 作為特征提取網(wǎng)絡(luò),提高了特征提取與分類的效果。同時(shí),在ROI Pooling 層后不再使用全連接層,而改用全卷積神經(jīng)網(wǎng)絡(luò),減少了參數(shù)量。另外,該網(wǎng)絡(luò)還引入了位置敏感得分圖,解決了之前Faster R-CNN 中存在的圖像分類的平移不變性和目標(biāo)檢測(cè)的平移不變性的矛盾。R-FCN的網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 R-FCN網(wǎng)絡(luò)結(jié)構(gòu)
R-FCN在整幅圖像上共享幾乎所有的計(jì)算,實(shí)現(xiàn)了在VOC2007 數(shù)據(jù)集上79.5%的mAP,但是該網(wǎng)絡(luò)存在一些缺點(diǎn):
(1)由于該網(wǎng)絡(luò)引入了位置敏感得分圖,降低了網(wǎng)絡(luò)的檢測(cè)速度,導(dǎo)致其仍然難以滿足目標(biāo)檢測(cè)的實(shí)時(shí)性要求。
(2)模型復(fù)雜,訓(xùn)練時(shí)間長(zhǎng)。
2017 年,He 等人提出的 Mask R-CNN[23]是在 Faster R-CNN 基礎(chǔ)上的擴(kuò)展,即在原有Faster R-CNN 的基于邊界框識(shí)別的分支上再加入一個(gè)用于預(yù)測(cè)目標(biāo)掩碼的并行分支(Mask 預(yù)測(cè)分支),以完成實(shí)例分割任務(wù)。由于ROI Pooling 中的量化操作會(huì)顯著增大掩碼錯(cuò)誤率,Mask R-CNN 提出了ROI Align,使用雙線性差值的方法,使得為每個(gè)ROI取得的特征能夠更好地對(duì)齊原圖上的ROI區(qū)域,提高了掩碼的精確度。Mask R-CNN的網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。
圖6 Mask R-CNN網(wǎng)絡(luò)結(jié)構(gòu)
Mask R-CNN將分類損失、邊界框損失和掩碼損失聯(lián)合訓(xùn)練,同時(shí)提高了檢測(cè)和分割的精度,采用ResNeXt-101 為主干網(wǎng)絡(luò)的Mask R-CNN 在COCO 數(shù)據(jù)集上達(dá)到了39.8%的mAP。Mask R-CNN 不僅可以完成目標(biāo)檢測(cè)任務(wù),也能完成實(shí)例分割任務(wù),實(shí)現(xiàn)對(duì)物體的細(xì)粒度分割,具有很大的靈活性。但是Mask R-CNN存在一些缺陷:
(1)Mask R-CNN 雖然可以實(shí)現(xiàn)實(shí)例分割,但是分割代價(jià)過高。
(2)模型檢測(cè)速度依然沒有得到改善,不能實(shí)現(xiàn)實(shí)時(shí)檢測(cè)。
Faster R-CNN 中是通過設(shè)置固定的IOU 閾值來設(shè)定正負(fù)樣本的,這就使得選取的候選框不太準(zhǔn)確,從而給目標(biāo)檢測(cè)帶來一定的噪聲干擾。
針對(duì)此問題,2018年,Cai等人提出了一種級(jí)聯(lián)結(jié)構(gòu)的 檢測(cè)器 Cascade R-CNN[24]。Cascade R-CNN 每個(gè)級(jí)聯(lián)的檢測(cè)器設(shè)置不同的IOU閾值進(jìn)行訓(xùn)練,且越往后的檢測(cè)器的IOU閾值越高,這樣可以逐步過濾掉一些誤檢框,使得每個(gè)檢測(cè)器輸出的準(zhǔn)確度提升一點(diǎn),用作下一個(gè)更高精度的檢測(cè)器的輸入,以達(dá)到提高最終網(wǎng)絡(luò)檢測(cè)框準(zhǔn)確度的作用。圖7(a)為Faster R-CNN的基本框架,圖7(b)為Cascade R-CNN的基本框架,Cascade RCNN可以看作是一種級(jí)聯(lián)的Faster R-CNN結(jié)構(gòu)。
圖7 Faster R-CNN和Cascade R-CNN基本框架對(duì)比
Cascade R-CNN級(jí)聯(lián)器結(jié)構(gòu)幾乎對(duì)于任意的R-CNN(Faster R-CNN、FPN、R-FCN 等)結(jié)構(gòu)都可以帶來2%~4%的AP提升,且IoU閾值越高提升越明顯,其在COCO數(shù)據(jù)集上的精確度達(dá)到了42.8%。使用Cascade結(jié)構(gòu)對(duì)于網(wǎng)絡(luò)精度的提升確實(shí)是有幫助的,但是也增大了網(wǎng)絡(luò)訓(xùn)練時(shí)間。
傳統(tǒng)的解決多尺度檢測(cè)的算法,大都依賴于圖像金字塔與特征金字塔FPN 這兩種方法,但是,前者使得算法的測(cè)試時(shí)間大幅度提高,對(duì)于實(shí)際使用并不友好,而后者對(duì)于算法的性能提升不如前者。
2019年,Li等人利用空洞卷積構(gòu)建了一個(gè)三分支網(wǎng)絡(luò)TridentNet[25],相比之前的算法,更好地解決了多尺度檢測(cè)問題。TridentNet首次驗(yàn)證了不同大小的感受野對(duì)于檢測(cè)結(jié)果的影響,即大的感受野更有利于檢測(cè)大物體,小的感受野更有利于檢測(cè)小物體。圖8為TridentNet的結(jié)構(gòu)圖。TridentNet 采用ResNet 作為基礎(chǔ)網(wǎng)絡(luò),前三個(gè)stage沿用原始的結(jié)構(gòu),在第四個(gè)stage,將三種不同的感受野網(wǎng)絡(luò)并行化,3個(gè)分支使用了空洞數(shù)不同的空洞卷積,感受野由小到大,分別檢測(cè)小、中、大的目標(biāo),更好地實(shí)現(xiàn)了多尺度的目標(biāo)檢測(cè)。并且3個(gè)分支共享權(quán)重,不僅可以使網(wǎng)絡(luò)學(xué)習(xí)到更本質(zhì)的物體檢測(cè)信息,而且也減少了參數(shù)量與過擬合的風(fēng)險(xiǎn)。
圖8 TridentNet結(jié)構(gòu)圖
TridentNet對(duì)于多尺度物體的檢測(cè)相比之前的算法有了明顯的精度提升,其在COCO數(shù)據(jù)集上的精確度達(dá)到了48.4%。但是網(wǎng)絡(luò)模型規(guī)模的增大增加了計(jì)算量,導(dǎo)致網(wǎng)絡(luò)的檢測(cè)速度較低,難以進(jìn)行實(shí)時(shí)檢測(cè)。
4.1~4.8 節(jié)介紹的算法均是基于候選區(qū)域的目標(biāo)檢測(cè)算法,即均屬于兩階段目標(biāo)檢測(cè)器??傮w而言,這類算法的檢測(cè)精度在不斷提升,但是檢測(cè)速度普遍較慢。表3總結(jié)了這些算法分別在VOC2007測(cè)試集、VOC2012測(cè)試集、COCO測(cè)試集上的性能,“—”表示無相關(guān)數(shù)據(jù),各種算法在測(cè)試集下的mAP 值括號(hào)中的表示所使用的訓(xùn)練集,且所使用的GPU 是Geforce GTX Titan X顯卡。表4 總結(jié)了基于候選區(qū)域的目標(biāo)檢測(cè)算法的優(yōu)缺點(diǎn)和適用場(chǎng)景。
從表3 可以看出,隨著卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展,基于候選區(qū)域的目標(biāo)檢測(cè)算法的檢測(cè)精度也在不斷提升,已經(jīng)達(dá)到了很高的水平,但是算法模型規(guī)模的擴(kuò)大也帶來了計(jì)算量的增大,使得該類算法的檢測(cè)精度一直較低,始終難以滿足實(shí)時(shí)檢測(cè)。從表4可以看出,基于候選區(qū)域的目標(biāo)檢測(cè)算法在發(fā)展過程中,不斷解決之前算法的缺陷,不斷向著滿足更高更多樣化需求的方向發(fā)展,但同時(shí)也帶來了新的問題,并且模型規(guī)模大、檢測(cè)速度慢的問題始終沒有得到根本性解決。未來該類算法的發(fā)展,應(yīng)在提高檢測(cè)精度的同時(shí)提高檢測(cè)速度,借鑒基于回歸的目標(biāo)檢測(cè)算法的優(yōu)勢(shì),降低模型規(guī)模,以滿足實(shí)際應(yīng)用中對(duì)于模型規(guī)模限制的要求,使該類模型在一些硬件平臺(tái)上得到大規(guī)模部署和應(yīng)用。
表3 基于候選區(qū)域的目標(biāo)檢測(cè)算法性能對(duì)比
表4 基于候選區(qū)域的目標(biāo)檢測(cè)算法的優(yōu)缺點(diǎn)及適用場(chǎng)景對(duì)比
基于回歸的目標(biāo)檢測(cè)算法之所以被稱為單階段目標(biāo)檢測(cè)器,是因?yàn)槠涫÷粤撕蜻x區(qū)域生成階段,可以直接得到目標(biāo)的分類和位置坐標(biāo)。單階段目標(biāo)檢測(cè)器的檢測(cè)速度一般比兩階段目標(biāo)檢測(cè)器快,但是檢測(cè)精度卻普遍比兩階段目標(biāo)檢測(cè)器差。這類算法的典型代表有YOLO系列、SSD系列、RetinaNet、CornerNet、CenterNet、EfficientDet等。下面將分別進(jìn)行介紹。
針對(duì)兩階段網(wǎng)絡(luò)普遍存在實(shí)時(shí)性差的問題,2016年,Redmon 等人提出了首個(gè)單階段網(wǎng)絡(luò)YOLOv1[26],它將目標(biāo)檢測(cè)任務(wù)當(dāng)作一個(gè)回歸問題來處理,只需要對(duì)輸入圖像進(jìn)行一次處理,即可同時(shí)得到目標(biāo)的位置和類別。YOLOv1的主要優(yōu)點(diǎn)是目標(biāo)檢測(cè)速度很快,遠(yuǎn)遠(yuǎn)超過兩階段目標(biāo)檢測(cè)器,由于網(wǎng)絡(luò)對(duì)圖片進(jìn)行全局處理使得背景錯(cuò)誤相對(duì)比較少,同時(shí)其泛化性能較好。
YOLOv1 的網(wǎng)絡(luò)結(jié)構(gòu)如圖9 所示,其進(jìn)行目標(biāo)檢測(cè)的步驟是,首先將圖像縮放到448×448 的固定尺寸,然后將圖像輸入到卷積神經(jīng)網(wǎng)絡(luò)中,來預(yù)測(cè)出邊界框的坐標(biāo)、框中物體的類別和置信度,最后使用NMS算法去除重疊的框,從而得到最后的預(yù)測(cè)框,實(shí)現(xiàn)目標(biāo)檢測(cè)。
圖9 YOLOv1網(wǎng)絡(luò)結(jié)構(gòu)
由于YOLOv1沒有候選區(qū)域生成的步驟,所以它的檢測(cè)速度非???,達(dá)到了45 f/s,大大超過了基于候選區(qū)域的目標(biāo)檢測(cè)算法。但是,YOLOv1劃分圖片網(wǎng)格較為粗糙,每個(gè)網(wǎng)格生成的邊界框個(gè)數(shù)較少,使該網(wǎng)絡(luò)對(duì)小尺寸目標(biāo)和鄰近目標(biāo)的檢測(cè)效果較差,而且YOLOv1產(chǎn)生了更多的定位誤差,導(dǎo)致其整體檢測(cè)精度較低。
2017 年,Redmon 等人在 YOLOv1 基礎(chǔ)上提出了YOLOv2[27],該網(wǎng)絡(luò)在所有卷積層都應(yīng)用了批量歸一化(BN)操作,舍棄了Dropout 操作,使用Anchor Boxes 來預(yù)測(cè)邊界框,同時(shí)采用了更高效的Darknet-19 作為YOLOv2 的骨干網(wǎng)絡(luò)。這些措施有效提升了YOLOv2的檢測(cè)精度,其在VOC2007數(shù)據(jù)集上的準(zhǔn)確率為78.6%。
2018 年,Redmon 等人提出了 YOLOv2 的改進(jìn)版本YOLOv3[28],它使用了效果更好的Darknet-53作為骨干網(wǎng)絡(luò),Darknet-53的精度和ResNet-101相當(dāng),但速度更快。YOLOv3吸收了FPN的思想,在網(wǎng)絡(luò)中3個(gè)不同位置的3種不同尺度的FeatureMap上進(jìn)行檢測(cè)任務(wù),這有效提高了網(wǎng)絡(luò)對(duì)小尺寸目標(biāo)的檢測(cè)效果。同時(shí),YOLOv3使用了二元交叉熵作為損失函數(shù)進(jìn)行訓(xùn)練,實(shí)現(xiàn)了對(duì)同一個(gè)邊界框進(jìn)行多個(gè)類別的預(yù)測(cè)。這些改進(jìn)使得YOLOv3在COCO數(shù)據(jù)集上的準(zhǔn)確率提高到了33.0%。
2019 年 ,Choi 等 人 提 出 了 YOLOv3 的 改 進(jìn) 網(wǎng) 絡(luò)Guassian YOLOv3[29],YOLOv3在預(yù)測(cè)邊界框坐標(biāo)時(shí),只輸出4 個(gè)維度的坐標(biāo)信息,而Gaussian YOLOv3 輸出了8 個(gè)維度的坐標(biāo)信息,同時(shí)改進(jìn)了網(wǎng)絡(luò)的損失函數(shù),這些改進(jìn)使得該網(wǎng)絡(luò)在KITTI 數(shù)據(jù)集上的準(zhǔn)確率相比YOLOv3提高了3%的mAP。
2020 年,Bochkovskiy 等人提出了 YOLOv4[30],該模型使用了具有更大感受野、更大參數(shù)的CSPDarknet53作為主干網(wǎng)絡(luò),在CSPDarknet53上添加了SPP模塊來增大感受野,同時(shí)使用PANet替換YOLOv3中的FPN來進(jìn)行多通道特征的融合,加上YOLOv3(基于錨的)head,就構(gòu)成了YOLOv4 的模型框架。YOLOv4 融合了一系列的調(diào)優(yōu)技巧,在目前所有實(shí)時(shí)目標(biāo)檢測(cè)算法中精度最高,在模型精度和檢測(cè)速度的trade-off方面達(dá)到了當(dāng)前最優(yōu),其在COCO數(shù)據(jù)集上的檢測(cè)精度達(dá)到了43.5%。
SSD[31]是2016 年由Liu 等人提出的,該網(wǎng)絡(luò)是在YOLOv1基礎(chǔ)上進(jìn)行改進(jìn)的,SSD的網(wǎng)絡(luò)結(jié)構(gòu)圖如圖10所示。SSD 是在6 個(gè)不同尺度的FeatureMap 上進(jìn)行檢測(cè)任務(wù)的,其中低層FeatureMap 預(yù)測(cè)小尺寸目標(biāo),高層FeatureMap預(yù)測(cè)大尺寸目標(biāo);并且在每個(gè)FeatureMap的每個(gè)像素點(diǎn)處,使用不同大小的default box檢測(cè)不同大小的目標(biāo);同時(shí)該網(wǎng)絡(luò)使用了放大和縮小兩種數(shù)據(jù)增強(qiáng)技術(shù)。這些改進(jìn)提高了網(wǎng)絡(luò)的檢測(cè)效果,其在VOC2007數(shù)據(jù)集上的檢測(cè)精度提高到了76.8%,同時(shí)檢測(cè)速度也提升到了59 f/s,使得SSD網(wǎng)絡(luò)得到了廣泛的應(yīng)用。
圖10 SSD網(wǎng)絡(luò)結(jié)構(gòu)
SSD通過利用不同層特征進(jìn)行目標(biāo)檢測(cè),使其對(duì)尺度變化有較好的魯棒性,檢測(cè)精度和速度相比YOLOv1都有很大的提高。但由于在SSD網(wǎng)絡(luò)中,不同層的特征圖都是獨(dú)立作為分類網(wǎng)絡(luò)的輸入,因此容易出現(xiàn)同一個(gè)目標(biāo)被多個(gè)不同大小的預(yù)測(cè)框同時(shí)檢測(cè)出來的情況,另外由于淺層的特征圖所含語義信息較少,導(dǎo)致該網(wǎng)絡(luò)對(duì)小尺寸物體的檢測(cè)效果比較差。
針對(duì)SSD 存在的這兩個(gè)問題,Jeong 等人提出的R-SSD[32]一方面利用分類網(wǎng)絡(luò)增加不同層特征圖之間的聯(lián)系,以降低重疊框個(gè)數(shù);另一方面R-SSD 使用了一種深層和淺層特征融合的方式,增加了特征圖的通道數(shù),提升其對(duì)小尺寸物體的檢測(cè)效果。這些改進(jìn)使得R-SSD在VOC2007數(shù)據(jù)集上達(dá)到了80.8%的準(zhǔn)確率。
在SSD的研究基礎(chǔ)上,2017年Fu等人提出了DSSD[33],其將ResNet-101作為主干網(wǎng)絡(luò),有效提高了特征提取能力;同時(shí),反卷積層的使用使得DSSD 可以更好地檢測(cè)小尺寸物體,進(jìn)一步提升了網(wǎng)絡(luò)的檢測(cè)精度,其在VOC2007數(shù)據(jù)集上的準(zhǔn)確率提高到了81.5%。
Shen等人借鑒了DenseNet的思想,提出了DSOD[34],由于改造了一些特征層的輸入,使得DSOD的參數(shù)數(shù)量相比SSD 得到了大幅度降低。而且DSOD 在不需要預(yù)訓(xùn)練模型的情況下可以從零開始訓(xùn)練數(shù)據(jù),其目標(biāo)檢測(cè)效果相比SSD依然得到了提升。
2017年,Li等人吸收了FPN的思想提出了FSSD[35]。不過FSSD融合不同層級(jí)特征的方式與FPN不同,相比SSD,其在提升目標(biāo)檢測(cè)精度的同時(shí),檢測(cè)速度卻沒有下降多少。
2017年,Lin等人提出了RetinaNet[36],作者首次指出樣本類別的不平衡,是造成單階段目標(biāo)檢測(cè)網(wǎng)絡(luò)的檢測(cè)精度普遍低于兩階段目標(biāo)檢測(cè)網(wǎng)絡(luò)的原因。針對(duì)此問題,作者使用focal loss 替代標(biāo)準(zhǔn)交叉熵作為損失函數(shù)對(duì)模型進(jìn)行訓(xùn)練,focal loss 函數(shù)降低了易分類樣本的權(quán)重,使模型在訓(xùn)練時(shí)更專注于難分類的樣本。為了證明focal loss 的有效性,作者設(shè)計(jì)出了RetinaNet。圖11為RetinaNet的網(wǎng)絡(luò)結(jié)構(gòu)圖,該網(wǎng)絡(luò)使用ResNet+FPN的結(jié)構(gòu)作為特征提取網(wǎng)絡(luò),來獲得表達(dá)力更強(qiáng)且包含多尺度目標(biāo)區(qū)域信息的特征圖集合,然后在該集合上使用兩個(gè)結(jié)構(gòu)相同但是不共享參數(shù)的FCN 子網(wǎng)絡(luò),分別完成目標(biāo)框類別分類和位置回歸任務(wù),實(shí)現(xiàn)目標(biāo)檢測(cè)。
RetinaNet 作為單階段目標(biāo)檢測(cè)網(wǎng)絡(luò),達(dá)到了兩階段目標(biāo)檢測(cè)網(wǎng)絡(luò)的準(zhǔn)確率,其在COCO數(shù)據(jù)集上的準(zhǔn)確率提高到了40.8%。但是RetinaNet 檢測(cè)精度的提高是以犧牲檢測(cè)速度為代價(jià)的,其檢測(cè)速度相比之前的單階段檢測(cè)網(wǎng)絡(luò)下降明顯,難以達(dá)到實(shí)時(shí)檢測(cè)。
在Faster R-CNN 和SSD 等算法中,普遍使用了anchor(錨框)來提高檢測(cè)效果,但是anchor的使用也帶來了正、負(fù)樣本不平衡和較多的超參數(shù)等問題。
針對(duì)此問題,2018年,Law等人提出了CornerNet[37],該算法舍棄了傳統(tǒng)的anchor與區(qū)域建議框的檢測(cè)思路,利用關(guān)鍵點(diǎn)的檢測(cè)與匹配,將傳統(tǒng)的預(yù)測(cè)邊框思路轉(zhuǎn)化為了預(yù)測(cè)邊框的左上角和右下角兩個(gè)角點(diǎn)問題,開辟了基于關(guān)鍵點(diǎn)進(jìn)行目標(biāo)檢測(cè)的新思路。圖12為CornerNet的網(wǎng)絡(luò)結(jié)構(gòu),它使用Hourglass作為骨干網(wǎng)絡(luò)提取特征,使用角點(diǎn)池化方式將物體的信息整合到左上角點(diǎn)或者右下角點(diǎn),后接左上角點(diǎn)預(yù)測(cè)分支和右下角點(diǎn)預(yù)測(cè)分支兩個(gè)輸出分支模塊,每個(gè)分支模塊包含了角點(diǎn)出現(xiàn)的位置Heatmaps、角點(diǎn)的配對(duì)Embeddings、角點(diǎn)位置的偏移Offsets 三個(gè)輸出。然后再對(duì)屬于同一個(gè)邊框的角點(diǎn)進(jìn)行組合,從而得到最終的預(yù)測(cè)框,完成物體檢測(cè)。
圖11 RetinaNet網(wǎng)絡(luò)結(jié)構(gòu)
圖12 CornerNet網(wǎng)絡(luò)結(jié)構(gòu)
CornerNet 使用邊框的角點(diǎn)進(jìn)行物體檢測(cè),從而避免了使用錨框帶來的問題,在檢測(cè)精度上相比之前的單階段檢測(cè)器有了一定提升,其在COCO數(shù)據(jù)集上達(dá)到了42.1%的檢測(cè)精度。但是CornerNet 在對(duì)兩個(gè)角點(diǎn)匹配過程中耗時(shí)較長(zhǎng),導(dǎo)致模型的檢測(cè)速度降低了不少,并且該過程容易產(chǎn)生誤檢樣本。
CornerNet 是基于關(guān)鍵點(diǎn)進(jìn)行物體檢測(cè)的,它需要經(jīng)過一個(gè)關(guān)鍵點(diǎn)的分組配對(duì)階段,這會(huì)降低算法整體速度。
針對(duì)此問題,2019年,Duan等人提出了CenterNet[38],它將物體檢測(cè)問題變成了一個(gè)中心點(diǎn)的估計(jì)問題,無需對(duì)關(guān)鍵點(diǎn)進(jìn)行分組配對(duì)或者是后處理。CenterNet通過預(yù)測(cè)物體的中心點(diǎn)位置及對(duì)應(yīng)物體的長(zhǎng)與寬,來實(shí)現(xiàn)物體檢測(cè)。圖13 為CenterNet 的網(wǎng)絡(luò)結(jié)構(gòu),它使用Hourglass作為主干網(wǎng)絡(luò)提取特征,然后分別通過關(guān)聯(lián)角點(diǎn)池化和中心點(diǎn)池化整合信息。通過關(guān)聯(lián)角點(diǎn)池化預(yù)測(cè)角點(diǎn)出現(xiàn)的位置后,使用角點(diǎn)位置的偏移操作,將角點(diǎn)的位置映射到輸入圖片的對(duì)應(yīng)位置,然后通過角點(diǎn)的配對(duì)操作,判斷哪兩個(gè)角點(diǎn)屬于同一個(gè)物體,以便組成一個(gè)檢測(cè)框。同時(shí),CenterNet 通過中心點(diǎn)池化來預(yù)測(cè)目標(biāo)的中心點(diǎn),然后通過偏移操作矯正中心點(diǎn)位置,之后將中心點(diǎn)位置映射到輸入圖片的對(duì)應(yīng)位置,通過判斷每個(gè)檢測(cè)框的中心區(qū)域是否有預(yù)測(cè)的中心點(diǎn),來消除錯(cuò)誤的檢測(cè)框,以提高檢測(cè)精度。
CenterNet 基于中心點(diǎn)做檢測(cè)任務(wù),其在COCO 數(shù)據(jù)集上達(dá)到了47.0%的精確度。雖然CenterNet 的檢測(cè)速度要快于CornerNet,但是由于模型的計(jì)算量依然很大,導(dǎo)致檢測(cè)速度沒有明顯提升。
在目標(biāo)檢測(cè)領(lǐng)域,算法模型的檢測(cè)精度和檢測(cè)速度同等重要,基于回歸的檢測(cè)器雖然檢測(cè)速度較快,但是普遍精度較低?;诖?,2019年,Tan等人提出了一種同時(shí)兼顧模型精度和檢測(cè)速度的目標(biāo)檢測(cè)器EfficientDet[39]。圖14 為EfficientDet 的網(wǎng)絡(luò)結(jié)構(gòu)圖,其采用EfficientNet作為主干網(wǎng)絡(luò),將加權(quán)雙向特征金字塔網(wǎng)絡(luò)BiFPN作為特征網(wǎng)絡(luò),接受來自主干網(wǎng)絡(luò)的P3至P7層的特征,并重復(fù)應(yīng)用自上而下和自下而上的雙向特征融合,然后將融合后的特征輸入到類別/邊界框預(yù)測(cè)網(wǎng)絡(luò),分別輸出目標(biāo)類別和邊界框預(yù)測(cè)結(jié)果。同時(shí),EfficientDet使用了一種混合縮放方法,可以同時(shí)對(duì)所有主干網(wǎng)絡(luò)和特征網(wǎng)絡(luò)以及類別/邊界框預(yù)測(cè)網(wǎng)絡(luò)的分辨率、深度和寬度進(jìn)行均勻縮放,這使得EfficientDet模型規(guī)模只有之前最優(yōu)模型的1/4,檢測(cè)速度是之前最優(yōu)模型的3.2倍。
EfficientDet 以較低的模型規(guī)模達(dá)到了當(dāng)前COCO數(shù)據(jù)集上最高的檢測(cè)精度51.0%,是一個(gè)輕量級(jí)、多尺度且高精度的目標(biāo)檢測(cè)網(wǎng)絡(luò)。在面對(duì)廣泛的模型規(guī)模和資源約束時(shí),例如嵌入式設(shè)備、移動(dòng)終端等實(shí)際應(yīng)用領(lǐng)域,EfficientDet較低的計(jì)算成本使得該模型在這些領(lǐng)域的大規(guī)模部署成為了可能,必將極大地推動(dòng)目標(biāo)檢測(cè)技術(shù)在這些領(lǐng)域的發(fā)展。
5.1~5.6 節(jié)介紹的算法均是基于回歸的目標(biāo)檢測(cè)算法,即均屬于單階段檢測(cè)器??傮w而言,這類算法的檢測(cè)精度在不斷提升,同時(shí)檢測(cè)速度快,實(shí)時(shí)性較好。表5總結(jié)了這些算法分別在VOC2007 測(cè)試集、VOC2012 測(cè)試集、COCO 測(cè)試集上的檢測(cè)準(zhǔn)確率,“—”表示無相關(guān)數(shù)據(jù),各種算法在測(cè)試集下的mAP值括號(hào)中的表示所使用的訓(xùn)練集,且所使用的GPU是Geforce GTX Titan X顯卡。表6 總結(jié)了基于回歸的目標(biāo)檢測(cè)算法的優(yōu)缺點(diǎn)和適用場(chǎng)景。
圖13 CenterNet網(wǎng)絡(luò)結(jié)構(gòu)
圖14 EfficientDet網(wǎng)絡(luò)結(jié)構(gòu)
從表5可以看出,基于回歸的目標(biāo)檢測(cè)算法的檢測(cè)速度要普遍快于基于候選區(qū)域的目標(biāo)檢測(cè)算法,并且在檢測(cè)精度上也逐漸超過后者(單階段的EfficientDet 是當(dāng)前精度最高的模型),但是檢測(cè)精度的提升也帶來了檢測(cè)速度的下降,這是需要解決的問題。從表6可以看出,基于回歸的目標(biāo)檢測(cè)算法在小目標(biāo)、多目標(biāo)上的檢測(cè)效果越來越好,并且逐漸實(shí)現(xiàn)了多尺度、高精度檢測(cè)。未來該類算法的發(fā)展,應(yīng)更多地關(guān)注于檢測(cè)精度和檢測(cè)速度的trade-off,類似YOLOv4這種,并實(shí)現(xiàn)更高的平衡,使得該類模型可以在嵌入式設(shè)備、移動(dòng)終端等硬件平臺(tái)大規(guī)模部署。
在以上基于深度卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)的基礎(chǔ)上,近幾年,一些學(xué)者又提出了一些新的基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法,如表7 所示。從表中可以看出,這些改進(jìn)的目標(biāo)檢測(cè)算法都是在針對(duì)原始算法的缺陷進(jìn)行的改進(jìn),融入了部分其他算法能提高檢測(cè)精度的結(jié)構(gòu),同時(shí)使用了一些優(yōu)化技巧,有效提高了改進(jìn)算法的檢測(cè)效果。
本文在對(duì)目標(biāo)檢測(cè)網(wǎng)絡(luò)廣泛研究的基礎(chǔ)上,系統(tǒng)總結(jié)了基于深度卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)網(wǎng)絡(luò)的發(fā)展情況,詳細(xì)介紹了目前的兩大類目標(biāo)檢測(cè)網(wǎng)絡(luò),即基于候選區(qū)域的目標(biāo)檢測(cè)網(wǎng)絡(luò)和基于回歸的目標(biāo)檢測(cè)網(wǎng)絡(luò)。分析了兩類目標(biāo)檢測(cè)網(wǎng)絡(luò)的結(jié)構(gòu)和優(yōu)勢(shì)缺陷,并對(duì)其性能進(jìn)行了對(duì)比。
總體來看,基于候選區(qū)域的目標(biāo)檢測(cè)網(wǎng)絡(luò)的檢測(cè)流程越來越簡(jiǎn)單,精度也越來越高,但是速度上普遍偏慢,難以滿足實(shí)際應(yīng)用的實(shí)時(shí)性需求,在應(yīng)用推廣上面臨困難。而基于回歸的目標(biāo)檢測(cè)網(wǎng)絡(luò)雖然在精度上普遍不如前者,但是在檢測(cè)速度上更有優(yōu)勢(shì),隨著近幾年的發(fā)展,其檢測(cè)精度也在逐漸提高,在實(shí)際應(yīng)用上更具有潛力。未來的研究方向?qū)⒏鼘W⒂诰群退俣鹊慕Y(jié)合,借鑒基于候選區(qū)域網(wǎng)絡(luò)高精度的優(yōu)勢(shì)和基于回歸的網(wǎng)絡(luò)高速度的優(yōu)勢(shì),同時(shí)提高目標(biāo)檢測(cè)網(wǎng)絡(luò)的精度和速度,實(shí)現(xiàn)精度和速度的trade-off,以滿足實(shí)際需求。
表5 基于回歸的目標(biāo)檢測(cè)算法性能對(duì)比
表6 基于回歸的目標(biāo)檢測(cè)算法的優(yōu)缺點(diǎn)和適用場(chǎng)景對(duì)比
表7 基于深度學(xué)習(xí)的目標(biāo)檢測(cè)相關(guān)文獻(xiàn)
深度卷積神經(jīng)網(wǎng)絡(luò)的快速發(fā)展,以及硬件設(shè)施的不斷完善,為目標(biāo)檢測(cè)領(lǐng)域提供了非常好的發(fā)展機(jī)遇。雖然現(xiàn)有的基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法的性能已經(jīng)遠(yuǎn)遠(yuǎn)超越了傳統(tǒng)的目標(biāo)檢測(cè)算法,但是還有很多改進(jìn)空間。如何實(shí)現(xiàn)在小數(shù)據(jù)集下對(duì)目標(biāo)檢測(cè)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,如何更好地實(shí)現(xiàn)復(fù)雜場(chǎng)景下多目標(biāo)和小目標(biāo)的檢測(cè),如何更好的利用場(chǎng)景信息和語義信息,如何滿足智能交通系統(tǒng)、智能視頻監(jiān)控、自動(dòng)化監(jiān)測(cè)、工業(yè)檢測(cè)等實(shí)際應(yīng)用領(lǐng)域的精確性和實(shí)時(shí)性的需求等,這些將會(huì)是接下來目標(biāo)檢測(cè)領(lǐng)域的重要研究方向。