亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于深度學習的目標檢測算法綜述

        2022-07-14 13:10:42李柯泉陳燕劉佳晨牟向偉
        計算機工程 2022年7期
        關(guān)鍵詞:特征檢測

        李柯泉,陳燕,劉佳晨,牟向偉

        (1.大連海事大學 航運經(jīng)濟與管理學院,遼寧 大連 116026;2.河北金融學院 信息工程與計算機學院,河北 保定 071051)

        0 概述

        目標檢測是對圖像中的感興趣目標進行識別和定位的技術(shù),解決了圖像中的物體在哪里以及是什么的問題[1]。已有的研究表明,可靠的目標檢測算法是實現(xiàn)對復雜場景進行自動分析與理解的基礎(chǔ)。因此,圖像目標檢測是計算機視覺領(lǐng)域的基礎(chǔ)任務,其性能好壞將直接影響后續(xù)的目標跟蹤、動作識別以及行為理解等中高層任務的性能,進而也影響了人臉檢測、行為描述、交通場景物體識別、基于內(nèi)容的互聯(lián)網(wǎng)圖像檢索等后續(xù)人工智能(Artificial Intelligence,AI)應用的性能[2-3]。隨著這些AI 應用滲透到人們生產(chǎn)和生活的各個方面,目標檢測技術(shù)在一定程度上減輕了人們的負擔,改變了人類的生活方式。

        目標檢測領(lǐng)域的研究最早可以追溯到1991年由TURK[4]等提出的人臉檢測算法。近年來,隨著計算機硬件水平的提升、深度學習技術(shù)的發(fā)展以及各種高質(zhì)量目標檢測數(shù)據(jù)集的提出,涌現(xiàn)出越來越多優(yōu)秀的目標檢測算法。目標檢測算法的發(fā)展大致分為兩個階段:第一階段集中在2000 年前后,這期間所提出的方法大多基于滑動窗口和人工特征提取,普遍存在計算復雜度高和在復雜場景下魯棒性差的缺陷[5],為使算法能夠滿足實際需要,研究人員通過研究更加精巧的計算方法對模型進行加速,同時設計更加多元化的檢測算法,以彌補手工特征表達能力上的缺陷,代表性的成果包括Viola-Jones 檢測器[6]、HOG 行人檢測器[7]等;第二階段是2014 年至今,以文獻[8]提出的R-CNN 算法作為開端,這類算法利用深度學習技術(shù)自動地抽取輸入圖像中的隱藏特征,從而對樣本進行更高精度的分類和預測。隨著深度學習和計算機視覺的不斷突破,在R-CNN之后又涌現(xiàn)出了Fast R-CNN[9]、Faster R-CNN[10]、SPPNet[11]、YOLO[12]等基于深度學習的圖像目標檢測算法。相比傳統(tǒng)的目標檢測算法,基于深度學習的目標檢測算法具有速度快、準確性強、在復雜條件下魯棒性強等優(yōu)勢[13]。

        近年來,基于深度學習的目標檢測已經(jīng)成為計算機視覺領(lǐng)域的一個熱門研究方向,研究人員提出了許多新的目標檢測算法。本文對基于深度學習的目標檢測算法進行綜述,闡述目標檢測,包括圖像目標檢測任務、數(shù)據(jù)集、評價標準、傳統(tǒng)目標檢測算法的基本框架和存在的問題等。按照是否包含顯式的區(qū)域建議及是否顯式地定義先驗錨框兩種標準對已有的目標檢測算法分類,介紹各類目標檢測算法中的代表算法并總結(jié)算法機制、優(yōu)勢、局限性和適用場景。基于VOC 2007 和COCO 2018 數(shù)據(jù)集展示各類算法的性能表現(xiàn)并對各類目標檢測算法進行比較。在此基礎(chǔ)上,分析目前基于深度學習的目標檢測算法面臨的挑戰(zhàn)和解決方案,展望該領(lǐng)域的未來研究方向。

        1 目標檢測算法

        1.1 目標檢測任務、評價指標及公開數(shù)據(jù)集

        圖像目標檢測是計算機視覺領(lǐng)域最基本也是最具有挑戰(zhàn)性的任務之一,主要對輸入圖像中的目標進行識別和定位。圖1 所示為目標檢測的一個示例。其中,目標檢測的結(jié)果由兩部分組成:方形邊界框的顏色代表了目標的所屬類別(識別);方形邊界框的尺寸和位置代表了目標在輸入圖像中的位置(定位)(彩色效果見《計算機工程》官網(wǎng)HTML 版)。

        圖1 目標檢測示例Fig.1 Example of object detection

        在目標檢測任務中,bgt、bpred分別表示物體的真實邊界框和檢測到的邊界框。bgt、bpred的交并比(Intersection-over-Union,IoU)被用來評價所預測的邊界框的準確程度:

        交并比閾值是一個預定義的常數(shù),表示為Ω。當IIoU(bpred,bgt)>Ω時,認為bpred中的圖像為正樣本(包含物體),否則為負樣本(背景)。基于交并比和交并比閾值可以計算目標檢測的精確率(P)和召回率(R):

        其中:TTP、FFP、FFN分別是真陽率、假陽率和假陰率,分別表示正樣本被預測正確的數(shù)量、負樣本被預測為正樣本的數(shù)量和背景被錯誤檢測為正樣本的數(shù)量。計算精確率和召回率時,一般取交并比閾值Ω=0.5。

        平均精確率(Average Precision,AP)也是目標檢測中常用的指標,其計算公式為:

        其中:P(t)表示交并比閾值Ω=t時的精確率。對于多類別的目標檢測任務,由于待檢測物體可能存在不同的所屬類別,通常用平均精確率均值(mean Average Precision,mAP)作為評價指標,其計算公式如下:

        本文將以上評價指標統(tǒng)稱為精度,這些指標反映了目標檢測算法檢測到的物體邊界框的準確程度。除精度外,速度也是目標檢測算法重要的評價指標。最常用的描述目標檢測算法速度的評價指標是每秒檢測幀數(shù)(Frames Per Second,F(xiàn)PS),即算法平均每秒能夠檢測的圖像數(shù)量。

        目標檢測算法的訓練和評價一般在特定的數(shù)據(jù)集上進行。目標檢測領(lǐng)域最重要的數(shù)據(jù)集有Pascal VOC[14-15]、ILSVRC[16]和Microsoft COCO[17]等。

        Pascal VOC(Pascal Visual Object Classes)是2005 年—2012 年舉辦的一項計算機視覺領(lǐng)域的競賽,其中包含了目標檢測任務。VOC 2007 數(shù)據(jù)集是該競賽于2005年—2007年使用的數(shù)據(jù)的集合,VOC 2012則包含了該競賽2008 年—2012 年使用的全部數(shù)據(jù)。該數(shù)據(jù)集中的物體包含了人類、動物、車輛和室內(nèi)物品4 個大類以及包括背景在內(nèi)的21 個小類的物體。由于該數(shù)據(jù)集中的檢測任務相對簡單,近年來提出的目標檢測算法逐漸不再采用VOC 數(shù)據(jù)集對算法的性能進行評估。ILSVRC(ImageNet Large-Scale Visual Recognition Challenge)也是一項包含了目標檢測任務的競賽。相比VOC 數(shù)據(jù)集,LISVRC 中物體的所屬類目被擴充到200 種,且圖像數(shù)量和標注物體數(shù)量均明顯高于VOC 數(shù)據(jù)集。常用的LISVRC數(shù)據(jù)集有LISVRC 2014 和LISVRC 2017。Microsoft COCO 數(shù)據(jù)集是目前最有挑戰(zhàn)性的目標檢測數(shù)據(jù)集。雖然該數(shù)據(jù)集僅包含80 個類目,但該數(shù)據(jù)集將標注的物體按照尺度劃分為小、中、大三類。尤其是引入了大量的小目標物體,這使得該數(shù)據(jù)集中的前景物體更加密集,增加了任務的難度。Microsoft COCO 數(shù)據(jù)集包括COCO 2005 和COCO 2018 兩個常用版本。表1 列出了不同數(shù)據(jù)集的訓練集、驗證集和測試集中圖像數(shù)量和標注的物體數(shù)量,其中,括號內(nèi)的數(shù)字表示數(shù)據(jù)集中經(jīng)過標注的物體數(shù)量,括號外的數(shù)字是數(shù)據(jù)集中的圖像數(shù)量。

        表1 目標檢測數(shù)據(jù)集圖像數(shù)量和標注過的物體數(shù)量Table 1 Number of images in the target detection dataset and the number of labeled objects

        1.2 傳統(tǒng)目標檢測算法

        如圖2 所示,傳統(tǒng)的目標檢測框架中包含了3 個階段。區(qū)域建議的目的是找出輸入圖像中可能存在目標的區(qū)域,這些區(qū)域被稱為候選區(qū)域或感興趣區(qū)域(Regions of Interest,RoI)。由于目標可能有不同的尺寸且可能出現(xiàn)在任何位置,傳統(tǒng)方法大多使用不同尺度的滑動窗口對輸入圖像進行多次遍歷得到大量的候選區(qū)域[6,18-19]。特征抽取是第二個階段,該階段常用尺度不變特征(Scale Invariant Feature Transform,SIFT)[20]、局部二值模式特征(Local Binary Pattern,LBP)[21]、梯度直方圖特征(Histogram of Oriented Gradient,HOG)[22]等人工特征抽取方法將感興趣區(qū)域中的圖像轉(zhuǎn)換為特征向量。抽取到的特征向量作為第三階段的輸入。在該階段中,預訓練的分類器預測感興趣區(qū)域中物體的所屬類別并輸出目標檢測的結(jié)果。級聯(lián)學習、集成學習等機器學習方法常被應用于這一階段以提升目標檢測的精度。

        圖2 傳統(tǒng)的目標檢測算法框架Fig.2 Framework of traditional target detection algorithms

        傳統(tǒng)的目標檢測算法主要存在以下3 點缺陷:1)在區(qū)域建議階段,不同尺度的滑動窗口對輸入圖像進行多次遍歷產(chǎn)生大量的感興趣區(qū)域,在后續(xù)步驟中,算法對這些區(qū)域進行特征抽取和分類的過程存在大量冗余計算開銷,影響算法的運行速度,另外滑動窗口只有幾種固定的尺寸,通常不能與目標完美匹配;2)特征抽取階段僅能獲取圖像的低級特征,這些特征表達能力不足而且特征的有效性高度依賴具體任務,一旦檢測目標有重大變動就要重新設計算法;3)整個目標檢測過程被割裂為獨立的3 個階段,無法找到算法的全局最優(yōu)解,算法的設計依賴設計者對檢測目標和具體任務的先驗知識。為了彌補這些缺陷,研究人員尋找更加精巧的計算方法對算法進行加速,使算法能夠滿足實時性的要求,同時設計更多元化的檢測算法以彌補人工特征表達能力不足的缺陷。

        2 基于深度學習的目標檢測算法

        深度學習是能夠通過監(jiān)督、半監(jiān)督或無監(jiān)督的訓練方法自動學習訓練數(shù)據(jù)中隱藏的數(shù)據(jù)內(nèi)部結(jié)構(gòu)的一類多層神經(jīng)網(wǎng)絡算法。相比人工抽取低級特征,深度學習能夠?qū)⑤斎雸D像中的像素數(shù)據(jù)轉(zhuǎn)化為更高階、更抽象化的層級特征[23]。因此,深度學習抽取到的特征比傳統(tǒng)方法具有更強的表征能力和魯棒性,這一優(yōu)勢使深度學習在計算機視覺領(lǐng)域的研究和應用中體現(xiàn)出不可替代的優(yōu)越性,尤其是在目標檢測領(lǐng)域涌現(xiàn)出大量基于深度學習的研究成果。已有的目標檢測算法存在兩種分類標準:1)是否存在顯式的區(qū)域建議[24-25];2)是否顯式定義先驗錨框[26]。

        2.1 按是否存在顯式區(qū)域建議的算法分類

        按照算法是否存在顯式的區(qū)域建議,可將目標檢測算法分為兩階段目標檢測算法和一階段目標檢測算法。其中,兩階段目標檢測算法又稱為基于區(qū)域建議的目標檢測算法或基于感興趣區(qū)域的目標檢測算法。這類算法通過顯式的區(qū)域建議將檢測問題轉(zhuǎn)化為對生成的建議區(qū)域內(nèi)局部圖片的分類問題。代表性的兩階段目標檢測算法有R-CNN、Fast R-CNN等。一階段目標檢測算法又稱為基于回歸的目標檢測算法。這類算法不直接生成感興趣區(qū)域,而將目標檢測任務視為對整幅圖像的回歸任務。代表性的一階段目標檢測算法有YOLO、SSD 等。圖3 所示為這兩類目標檢測算法的一般框架。

        圖3 目標檢測算法框架Fig.3 Framework of target detection algorithms

        2.1.1 兩階段目標檢測算法

        文獻[8]提出的R-CNN 算法最早將深度學習技術(shù)成功應用在目標檢測領(lǐng)域,該算法是一種典型的兩階段目標檢測算法。相較于傳統(tǒng)的目標檢測算法,R-CNN 算法主要有以下3 點改進:1)在區(qū)域建議階段使用了選擇性搜索[27],解決了使用滑動窗口生成候選框?qū)е掠嬎懔窟^大的問題;2)使用卷積神經(jīng)網(wǎng)絡對感興趣區(qū)域進行特征提取,解決了傳統(tǒng)方法特征表達能力不足的問題;3)在使用SVM 分類器進行分類的同時,借助回歸算法對目標邊界進行補償和修正,以減小感興趣區(qū)域與實際目標的偏差。這些改進使R-CNN 算法相較傳統(tǒng)的目標檢測算法性能顯著提升。R-CNN 算法在Pascal VOC 2007 數(shù)據(jù)集上的mAP 達到了58.5%,遠高于此前傳統(tǒng)方法在該數(shù)據(jù)集上獲得的最好結(jié)果(如SegDPM[28]為40.4%)。

        R-CNN 算法存在以下缺點:1)選擇性搜索依賴低級的視覺信息,在背景復雜時很難生成有效的候選框,另外,該過程無法通過GPU 等并行計算設備進行加速;2)在特征抽取時將圖像縮放或裁切至固定尺寸,造成信息丟失;3)深度學習方法分別提取每個感興趣區(qū)域中圖像的特征,該過程產(chǎn)生大量重復計算;4)R-CNN 中各個部分依舊是割裂的,訓練步驟繁瑣、耗時,且很難找到全局最優(yōu)解。

        文獻[11]提出了SPP-Net 目標檢測算法,它是R-CNN 的一種改進,該算法借鑒了金字塔空間匹配(Spatial Pyramid Matching,SPM)算法,在第二階段引入了金字塔空間池化層(Spatial Pyramid Pooling,SPP)[29]。與R-CNN 相比,SPP-Net 首先通過骨干網(wǎng)絡直接得到整個輸入圖像的特征圖,而非分別抽取每個感興趣區(qū)域的特征,減少了計算冗余。然后SPP-Net 引入金字塔空間池化層將特征圖中與感興趣區(qū)域?qū)牟糠洲D(zhuǎn)化為固定尺寸的特征。由于避免了對感興趣區(qū)域中的圖像進行縮放和裁切等操作造成的信息丟失,SPP-Net 的精度相對R-CNN 得到了進一步的提升,它在VOC 2007 數(shù)據(jù)集上的mAP達到了60.9%。另外,由于SPP-Net 僅需要進行一次卷積操作,其運行速度相對R-CNN 得到了明顯的提升。在達到與R-CNN 近似甚至更高精度的前提下,SPP-Net的運行速度是R-CNN的24倍~102倍。SPP-Net的缺點在于:雖然優(yōu)化了R-CNN 時間開銷的問題,其感興趣區(qū)域中圖像的特征仍然需要單獨保存,存在較大空間開銷。此外,與R-CNN 類似,SPP-Net 中的特征提取、分類、回歸依舊是割裂的。

        針對SPP-Net 算法的不足,文獻[9,30]提出了Fast R-CNN算法。相對SPP-Net算法,F(xiàn)ast R-CNN算法主要有兩點改進:1)使用感興趣池化層(RoI Pooling layer)代替了SPP-Net 的金字塔空間池化層,感興趣池化層與金字塔空間池化層具有類似的功能,能夠?qū)⒉煌叽绲母信d趣區(qū)域?qū)奶卣鲃澐譃橄嗤叽绲奶卣飨蛄?,但感興趣池化層更為簡潔;2)提出了新的多任務損失函數(shù),該函數(shù)將分類任務與邊框回歸任務整合到主干卷積神經(jīng)網(wǎng)絡中,使這兩個任務能夠共享主干卷積神經(jīng)網(wǎng)絡的參數(shù),從而進一步降低了目標檢測所需的計算資源。這兩點改進使得Fast R-CNN 的檢測速度明顯提升,并初步實現(xiàn)了端到端的目標檢測。該算法在VOC2007 數(shù)據(jù)集上的檢測率分別達到了70.0%。

        Fast R-CNN 在區(qū)域建議階段依舊使用選擇性搜索生成感興趣區(qū)域。由于選擇性搜索無法使用GPU進行加速,制約了目標檢測的訓練和運行速度。文獻[10]提出的Faster R-CNN 算法用區(qū)域預測網(wǎng)絡(Region Proposal Network,RPN)代替?zhèn)鹘y(tǒng)的感興趣區(qū)域預測方法。由于提取候選區(qū)域網(wǎng)絡是基于深度學習的方法,因此可以借助GPU 加速,提升Faster R-CNN 算法訓練和運行的速度。

        Faster R-CNN 算法使用骨干網(wǎng)絡獲取輸入圖像的特征。骨干網(wǎng)絡通常是多個卷積層的堆疊,雖然能夠獲取圖像的高級特征,但這些特征具有平移不變性[31-32],不利于對目標框的檢測。為了解決這一問題,該算法在第二階段使用全連接層消除所抽取到特征的平移不變性,但這造成了該算法的兩點缺陷:1)第二階段無法實現(xiàn)對多個感興趣區(qū)域進行計算時的參數(shù)共享,產(chǎn)生額外的計算開銷,影響算法速度;2)全連接層的加入消除了特征的平移不變性的同時,也造成了信息的丟失,影響算法的精度。

        針對Faster R-CNN 算法這兩點缺陷,文獻[33]提出了R-FCN 算法。該算法主要有兩點創(chuàng)新:1)將全卷積網(wǎng)絡(Fully Convolutional Network,F(xiàn)CN)應用于Faster R-CNN,使算法第二階段的計算也實現(xiàn)了參數(shù)共享,提升了檢測速度;2)提出了位敏得分圖和位敏池化層對目標檢測任務中的平移不變性和平移可變性進行權(quán)衡,使R-FCN 在提升了檢測速度的基礎(chǔ)上達到和Faster R-CNN 接近的精度。

        圖4 對有代表性的兩階段目標檢測算法進行總結(jié)。這些算法的演化主要存在2 個趨勢:1)實現(xiàn)參數(shù)共享以提升算法運行速度;2)提出新的訓練策略使算法從多個割裂的步驟逐步向端到端演化。

        圖4 兩階段目標檢測算法Fig.4 Two-stage target detection algorithms

        2.1.2 一階段目標檢測算法

        兩階段目標檢測算法在第一階段生成區(qū)域建議,在第二階段僅針對感興趣區(qū)域中的內(nèi)容進行分類和回歸,丟失了局部目標在整幅圖像中的空間信息。為此,研究人員提出了一階段目標檢測算法來解決這一缺陷。

        文獻[34]提出的基于二進制掩膜的目標檢測算法是一種早期的一階段目標檢測算法。該算法采用AlexNet[35]作為骨干網(wǎng)絡,但將網(wǎng)絡的最后一層替換成回歸層。通過回歸預測目標的二進制掩膜并以此為依據(jù)提取目標邊界框。由于單一掩膜難以區(qū)分識別的目標是單一的物體還是多個相鄰的物體,算法需要輸出多個掩膜。這使網(wǎng)絡訓練變得困難,也導致該算法很難應用于對多個類別目標的檢測。文獻[36]提出的Overfeat 算法也是一種一階段目標檢測算法的早期嘗試。該算法針對分類、定位、檢測3 個不同的任務將骨干網(wǎng)絡的最后一層替換成不同的分類或回歸層,這些任務共享骨干網(wǎng)絡的參數(shù)。骨干網(wǎng)絡由AlexNet 實現(xiàn),但該算法用偏置池化代替了原本的最大池化以消除特征粒度不足的問題。該算法借助卷積層代替了滑動窗口的操作,大幅提升了目標檢測的速度,但是該算法難以實現(xiàn)對小尺寸目標的檢測。

        文獻[12]提出的YOLO 算法是最早具有實際應用價值的一階段目標檢測算法。該算法的骨干網(wǎng)絡采用了類似GoogLeNet[37]的結(jié)構(gòu),直接基于整幅輸入圖像預測圖像中物體的類別和邊界框的位置、尺寸等信息。該算法將輸入圖像劃分為S×S個網(wǎng)格,并對每個網(wǎng)格預測B個邊界框,對每個網(wǎng)格中的物體分別進行預測。因此,對于具有C個類別的目標檢測任務,YOLO 算法的輸出y是一個尺寸為S×S×(B×5+C)的矩陣,其中,yi,j表示對第i行第j列網(wǎng)格的預測結(jié)果。每個預測的結(jié)果包括邊界框的位置、尺寸、置信度以及邊界框中的物體屬于各個類別的概率。這種劃分網(wǎng)格的方法避免了大量的重復計算,使YOLO 算法達到了較快的檢測速度。在VOC 2007數(shù)據(jù)集中達到了45 frame/s 的檢測速度。另外,由于YOLO 算法基于整個輸入圖像進行檢測,而非基于局部進行推斷,這使其背景誤檢率只有13.6%,遠小于已有的兩階段目標檢測算法。然而,該算法仍存在以下不足:1)精度相對較差,在VOC 2007 上的精確性只有63.4%,低于Faster R-CNN 等同時期的兩階段目標檢測算法;2)對于成群的小目標、多個相鄰的目標或具有異常尺寸的目標檢測效果較差。

        YOLO 算法取得的成功引起了眾多研究者的關(guān)注,YOLOv2[38]、YOLOv3[39]、YOLOv4[40]等YOLO 算法的改進型算法被陸續(xù)提出。其中,YOLOv2 應用了批量正則化、高分辨率分類器、基于聚類的邊界框預測、新的骨干網(wǎng)絡和聯(lián)合訓練方法等技術(shù)來獲得更高的精確度。在此基礎(chǔ)上,作者訓練了名為YOLO9000 的目標檢測算法,使YOLO9000 可以檢測目標類別的種類達到了9 000 種。YOLOv3 使用了更加復雜的骨干網(wǎng)絡,該網(wǎng)絡參考了Resnet101[41]使運行速度更快。YOLOv3 還使用了多尺度的特征融合以獲取更多小目標的有用信息,從而提升算法對小目標檢測的精確度。YOLOv4 應用了新的骨干網(wǎng)絡并結(jié)合空間金字塔池化和路徑聚合網(wǎng)絡(Path Aggregation Network,PAN)[42]進行特征融合,從而獲得更高的性能。這些方法都為新的一階段目標檢測算法的設計提供了借鑒,也證明了骨干網(wǎng)絡設計、高效特征融合等技術(shù)對提升目標檢測性能具有重要意義。

        針對YOLO 算法在小目標檢測中的不足,文獻[43]提出了SSD 算法,該算法采用了與YOLO 算法類似的網(wǎng)格劃分的方法。與YOLO 算法相比,該算法主要有以下4 點改進:1)使用了多尺度特征進行檢測;2)舍棄了YOLO 算法中的全連接層,改用全卷積網(wǎng)絡;3)為每個網(wǎng)格設定多個具有不同長寬比的先驗邊界框;4)使用了數(shù)據(jù)擴增[44]技術(shù)。這些改進可使SSD 算法在運行速度上媲美YOLO 算法,同時在性能上不遜于Faster R-CNN,其在VOC 2007 數(shù)據(jù)集中的mAP 達到了74.3%。但該算法仍存在以下2 點不足:1)先驗邊界框的尺度需要人工設置而非從數(shù)據(jù)中學習而來,導致該算法的訓練非常依賴經(jīng)驗;2)對小目標的檢測效果依舊弱于兩階段目標檢測算法。

        針對SSD 算法在小目標檢測中存在的不足,文獻[45]提出了DSSD 算法。該算法將SSD 算法的骨干網(wǎng)絡替換為Resnet101 以增強算法的特征提取能力,并引入了反卷積層將抽取到的低級特征轉(zhuǎn)化為較高層次的語義信息。在此基礎(chǔ)上,作者又提出一種特征融合方法,將反卷積得到的語義信息與卷積獲得的低級特征融合,從而提升了算法的檢測精度,尤其是對小目標的檢測精度。該算法在VOC 2007數(shù)據(jù)集中的mAP 達到了81.5%,高于SSD 算法。其在COCO 2018 數(shù)據(jù)集中對小目標檢測的AP 值也達到了13.0%,高于YOLO 算法的10.2%。此外,SSD 的改進算法還有FSSD[46]、RefineDet[47]、M2Det[48]等,這些改進均為SSD 算法的性能帶來了提升。

        生成的候選框中的內(nèi)容存在類別不均衡是已有的一階段目標檢測算法精確度普遍低于兩階段目標檢測算法的一個重要原因[49]。針對這一問題,文獻[50]提出了RetinaNet 算法,基于標準交叉熵損失改進得到焦點損失函數(shù)。焦點損失的應用可以使算法根據(jù)候選框中的內(nèi)容自動地調(diào)節(jié)正負樣本對損失的貢獻度,使算法更關(guān)注于低置信度的樣本,從而減小類別不均衡對算法精確度的影響。該算法在多個數(shù)據(jù)集上達到了接近兩階段目標檢測算法的精確度,但是該算法的運行速度明顯低于YOLO、SSD 等一階段目標檢測算法。

        圖5 所示為一階段目標檢測算法。一階段目標算法的演化存在以下2 個趨勢:1)構(gòu)建具有更強表征能力的骨干網(wǎng)絡以提升算法的精度;2)提出新的損失函數(shù)以解決目標檢測過程中遇到的樣本不均衡等問題。

        圖5 一階段目標檢測算法Fig.5 One-stage target detection algorithms

        2.2 按是否定義先驗錨框的算法分類

        按照是否定義先驗錨框可以將已有的目標檢測算法分為基于錨框的目標檢測算法和無錨框目標檢測算法。

        2.2.1 基于錨框的目標檢測算法

        基于錨框的目標檢測算法通過顯式或隱式的方式創(chuàng)建一系列具有不同尺寸、長寬比的檢測框(錨框),然后對錨框中的內(nèi)容進行分類或回歸。前文介紹的大部分目標檢測算法,如R-CNN、Faster R-CNN、SSD 均是基于錨框的目標檢測算法。其中,基于錨框的兩階段目標檢測算法利用選擇性搜索等方法顯式地創(chuàng)建一系列錨框,基于錨框的一階段目標檢測算法在骨干網(wǎng)絡提取輸入圖像特征的同時,按照預定義的錨框?qū)傩噪[式地獲取檢測框中圖像的特征。

        基于錨框的目標檢測算法需要根據(jù)物體的尺寸、長寬比在訓練數(shù)據(jù)中的分布確定錨框的尺度、長寬比、生成錨框數(shù)量、交并比閾值等超參數(shù)。這些超參數(shù)的值的選取會影響算法精度。其中的一個示例是錨框超參數(shù)的選取對RetinaNet 算法在COCO 數(shù)據(jù)集中的精確度造成至少4%的改變[50]。這種影響使基于錨框的算法在更換應用場景后往往無法達到令人滿意的性能。因此,在目標檢測算法中應用錨框不但依賴先驗知識,也使算法缺乏泛化能力。

        在算法的訓練過程中,基于錨框的目標檢測算法分別計算每個錨框與物體的真實邊界框的交并比。該過程增加了算法的計算量且無法借助GPU等并行計算設備提升速度。因此,錨框的應用提升了算法的計算復雜度,降低了目標檢測算法的訓練速度。

        算法基于錨框獲得檢測結(jié)果:首先兩階段目標檢測算法對錨框內(nèi)的圖像分類,然后通過回歸等方式調(diào)整錨框邊界得到物體邊界框;一階段目標檢測算法直接基于生成的錨框預測目標的邊界框。生成錨框的過程忽略了錨框中前景(物體)與背景的比例,導致訓練樣本中負樣本(只包含背景的錨框)的數(shù)目明顯多于正樣本(包含物體的錨框),存在嚴重的類別不平衡問題,這是限制目標檢測算法精度的一個主要原因。此外,錨框難以檢測到異常物體,這導致基于錨框的算法在檢測尺度、長寬比異常的物體時召回率過低。因此,錨框的應用限制了目標檢測算法的精度。

        綜上所述,雖然基于錨框的目標檢測算法取得了成功,但同時存在以下4 點缺陷:1)錨框的設計依賴先驗知識,缺乏泛化能力;2)訓練過程大量計算錨框與真實邊界框的交并比,造成冗余計算;3)基于錨框生成的訓練樣本中正負樣本失衡,影響檢測精度;4)對異常物體檢測精度較差。

        2.2.2 無錨框目標檢測算法

        針對基于錨框的目標檢測算法的缺陷,研究人員提出了無錨框目標檢測算法,這類算法移除了預設錨框的過程,直接預測物體的邊界框。因此,這種方法存在3 個優(yōu)點:1)錨框的參數(shù)從數(shù)據(jù)中學習而來,魯棒性強;2)訓練過程中無需大量重復計算錨框與真實邊界框的交并比,節(jié)省了訓練時間;3)可以避免訓練過程中樣本失衡的問題。

        無錨框目標檢測算法可以分為基于中心域的目標檢測算法和基于關(guān)鍵點的目標檢測算法。

        基于中心域的目標檢測算法直接預測物體的中心區(qū)域坐標和邊界框的尺度信息。文獻[51]提出的DenseBox 算法是一種早期的基于中心域的算法。它將每一個像素作為中心點,分別預測該點到其所在的物體上下左右邊界的距離以及物體屬于不同類別的概率,即對輸入圖像的每一個像素預測一個邊界框。然后通過非極大值抑制(Non-Maximum Suppression,NMS)對這些邊界框進行篩選。該方法在人臉檢測等小目標檢測任務的精度明顯高于基于錨框的算法,但該算法也被證實不適用于通用目標檢測,且對重疊物體檢測效果較差。YOLO 算法也是一種早期的基于中心域的目標檢測算法,該算法將輸入圖像劃分為S×S個網(wǎng)格,對每個網(wǎng)格,算法預測網(wǎng)格中物體的中心點橫、縱坐標(中心點)、物體邊界框的長度和寬度(邊界框的尺度信息)以及物體屬于各類別的概率。由于YOLO 算法只檢測離中心點距離最近的物體,導致其召回率偏低,算法的精度低于同時期基于錨框的一階段目標檢測算法,因此無錨框方法在其后續(xù)版本的YOLOv2 和YOLOv3 沒有被繼續(xù)采用。盡管其在性能上存在局限性,但DenseBox 算法和YOLO 算法的思想為后續(xù)的無錨框目標檢測算法提供了借鑒。

        文獻[52-53]提出的FCOS 算法采用了與DenseBox 算法類似的逐像素預測邊界框的思想,并給出一種基于多尺度特征的重疊物體檢測方法。在該方法中,骨干網(wǎng)絡可以提取輸入圖像的多尺度特征:淺層特征包含更多細節(jié),對小目標檢測有利;深層特征包含更多語義信息,偏向大目標檢測。假設重疊的物體具有較大尺度差異,使用不同層次的特征預測不同尺度的物體邊界框從而實現(xiàn)對同一區(qū)域重疊物體的檢測。FCOS 算法的不足主要體現(xiàn)在當所預測的像素與物體實際的中心點存在較遠距離時檢測結(jié)果容易受到重疊物體語義交疊的影響。

        文獻[54]提出的FoveaBox 算法解決了FCOS 算法的不足。該算法使用了與FCOS 算法相同的思路解決物體重疊的問題,但是引入了可調(diào)節(jié)的正負樣本衰減機制增強了訓練過程中正負樣本之間的判別度,從而避免重疊區(qū)域語義交疊的影響。此外,該算法并非直接預測中心點與邊界框各邊的距離而是從數(shù)據(jù)中學習所預測中心點與邊界框各邊的映射關(guān)系從而實現(xiàn)了更強的魯棒性。

        另一類無錨框算法是基于關(guān)鍵點的目標檢測算法,一般以熱力圖的方式預測輸入圖像中各個點是邊界框中的關(guān)鍵點的概率,然后將多組熱力圖組合得到物體邊界框。

        文獻[55]提出的CornerNet 算法是一種代表性的基于關(guān)鍵點的算法。它首先使用骨干網(wǎng)絡抽取輸入圖像的特征,然后基于這些特征生成兩組不同的熱力圖分別預測圖像中各個像素是錨框的左上角點和右下角點的概率、角點對應物體的所屬類別信息以及錨框的誤差信息,最后根據(jù)這些信息配對預測的角點得到物體邊界框。該算法完全擺脫了錨框的約束,僅依靠關(guān)鍵點預測物體的邊界框且取得了較高的精度。該算法的缺點是僅關(guān)注物體的邊界信息,忽略了待檢測物體本身的特征,對物體的分類不夠準確。

        文獻[56]提出的CenterNet算法改進了CornerNet算法的缺陷。該算法在CornerNet 基礎(chǔ)上加入了對物體中心點的預測,這項改進使算法在預測邊界框時考慮到邊界框內(nèi)部物體的特征從而提升算法的精度。

        以上算法都需要在算法的最后使用非極大值抑制去除冗余的邊界框,影響算法速度。文獻[57]提出CenterNe(tObject as Point)算法,不再需要去除冗余邊框。首先,該算法采用了基于關(guān)鍵點的思想,使用熱力圖預測物體的中心點。然后,采用基于中心預測的思想,利用所預測中心點處獲取的特征預測邊界框的長度和寬度從而得到檢測結(jié)果。這種混合方法的應用使算法不需要借助非極大值抑制去除冗余結(jié)構(gòu),因此計算比已有的目標檢測算法更加簡潔。

        無錨框目標檢測算法的提出是為了彌補基于錨框的目標檢測算法在小目標檢測的缺陷,在特定場景的小目標檢測中的表現(xiàn)優(yōu)于基于錨框的目標檢測算法,但許多無錨框算法也被指出不適合應用于通用目標檢測。由于這類算法出現(xiàn)較晚,因此仍有較大潛力實現(xiàn)進一步提升。

        表2 對各類目標檢測算法的機制、優(yōu)勢、局限性和適用場景進行了總結(jié)。

        表2 各類目標檢測算法的機制、優(yōu)勢、局限性及適用場景Table 2 Mechanism,advantages,limitations and application scenarios of each category of target detection algorithms

        3 算法性能比較與分析

        本節(jié)對一些代表性的基于深度學習的目標檢測算法的性能進行比較。

        表3 和表4 分別展示了不同目標檢測算法在VOC 2007 和COCO 2018 數(shù)據(jù)集中的性能。其中,注釋為“*”的算法為兩階段目標檢測算法,未使用“*”注釋的算法為一階段目標檢測算法,注釋為“?”的算法為無錨框目標檢測算法,未使用“?”注釋的算法為基于錨框的目標檢測算法,在表4 中,APS、APM 和APL 分別表示算法對小尺寸物體、中等尺寸物體和大尺寸物體檢測的AP 值。這些算法具有不同的骨干網(wǎng)絡、輸入圖像的分辨率、超參數(shù)以及硬件條件,這些因素可能影響算法的最終性能。為了保證所列出數(shù)據(jù)的參考價值,表中給出的結(jié)果盡量選擇了已有文獻中算法在近似條件下的性能。

        表3 目標檢測算法在VOC 2007 數(shù)據(jù)集中的性能Table 3 Performance of target detection algorithms on VOC 2007 dataset

        表4 目標檢測算法在COCO 2018 數(shù)據(jù)集中的性能Table 4 Performance of target detection algorithms on COCO 2018 dataset %

        從表3、表4 可以得出5 點結(jié)論:1)盡管兩階段目標檢測算法的運行速度在不斷演化中得到提升,依舊明顯慢于一階段目標檢測算法;2)借助更復雜的骨干網(wǎng)絡以及一些高級深度學習技術(shù),一階段目標檢測算法的精度能夠接近甚至超過兩階段目標檢測算法,說明骨干網(wǎng)絡的設計對一階段目標檢測算法精度的提升具有重要意義;3)在一階段目標檢測算法中,DSSD 和ASSD 的精度明顯高于其他算法,但速度也明顯慢于其他算法,類似地,YOLO 及其衍生算法速度較快,但精度低于其他一階段目標檢測算法,說明算法的速度和精度依舊難以兼得;4)由于引入了大量小目標物體,增大了目標檢測的難度,所有算法在COCO 2018 數(shù)據(jù)集中的精度均有所降低,說明小目標檢測是目前目標檢測的一個重要挑戰(zhàn);5)無錨框目標檢測算法在COCO 2018 數(shù)據(jù)集中的精度,尤其是對小物體檢測的精度要高于基于錨框的算法,這證明了無錨框目標檢測算法是未來重要的發(fā)展方向。

        4 未來研究方向

        目前,基于深度學習的目標檢測算法處于快速發(fā)展階段,產(chǎn)生了許多新的理論、方法和應用。本文將未來的研究方向歸納如下:

        1)如何獲取高質(zhì)量的目標檢測數(shù)據(jù)集?;谏疃葘W習的目標檢測算法是一類數(shù)據(jù)驅(qū)動的算法,算法的精度和魯棒性依賴于數(shù)據(jù)集的規(guī)模和質(zhì)量[58]。目標檢測數(shù)據(jù)集的構(gòu)建依賴于人工標注,工作量極大而且成本高昂。目前這一問題主要有兩種解決方法:一種方法是提升對已有數(shù)據(jù)集的利用效率,如同時使用多個數(shù)據(jù)集中的數(shù)據(jù)訓練算法[59]或借助數(shù)據(jù)增強[60]、遷移學習[61]等技術(shù)對算法進行訓練;另一種方法是借助半自動標注技術(shù)[62-63]降低數(shù)據(jù)標注的成本,但這些方法都不能從根本上解決缺乏大規(guī)模目標檢測訓練數(shù)據(jù)的問題。隨著深度學習技術(shù)的發(fā)展,半監(jiān)督和無監(jiān)督的深度學習方法在目標檢測領(lǐng)域的應用能夠大幅降低目標檢測數(shù)據(jù)集的標注成本。

        2)如何提升骨干網(wǎng)絡的性能。深度學習強大的特征提取能力是基于深度學習的目標檢測算法取得成功的關(guān)鍵。骨干網(wǎng)絡對目標檢測算法性能的影響主要體現(xiàn)在精度和性能兩個方面:一方面,更加復雜的骨干網(wǎng)絡通常具有更強的特征抽取能力,使目標檢測算法具有更高的精度,文獻[64]通過實驗證明了骨干網(wǎng)絡的深度、寬度和輸入圖像的分辨率都會對算法的精度產(chǎn)生影響,另外卷積、反卷積、殘差網(wǎng)絡等深度學習基本模塊和Transformer[65]、圖神經(jīng)網(wǎng)絡(Graph Neural Network,GNN)[66-67]等新的神經(jīng)網(wǎng)絡架構(gòu)在目標檢測領(lǐng)域的應用都能提升算法的精度;另一方面,骨干網(wǎng)絡的速度決定了目標檢測算法的檢測速度,SqueezeNet[68]、MobileNet[69]、ShuffleNet[70]等輕量化骨干網(wǎng)絡在目標檢測領(lǐng)域的應用提升了算法的速度,這些骨干網(wǎng)絡存在的共同點是它們都是研究者手工設計的,設計的過程非常耗時且設計的結(jié)果并非全局最優(yōu)?;谏窠?jīng)架構(gòu)搜索(Neural Architecture Search,NAS)[71]的自動化網(wǎng)絡設計和基于AutoML[72]的自動網(wǎng)絡壓縮能夠在較少人工干預下自動求解最優(yōu)的網(wǎng)絡結(jié)構(gòu)。這些技術(shù)在目標檢測領(lǐng)域的應用有助于構(gòu)建出具有更高性能的骨干網(wǎng)絡。

        3)如何提升算法對異常尺度目標的檢測精度。已有的目標檢測算法在檢測異常尺度目標尤其是成群的小目標時存在檢測精度偏低的問題。多數(shù)算法采用特征金字塔等多尺度的特征抽取方法和構(gòu)造的損失函數(shù)提升算法對異常尺度目標的檢測精度[73]。這些方法均缺乏對圖像中內(nèi)容的理解,雖然在一定程度上使問題得到了改善,但都沒有從根本上解決這一問題。上下文學習是一種通過算法學習輸入圖像中“目標與場景”、“目標與目標”之間存在的共存關(guān)系的機器學習技術(shù)。未來將借助基于類別語義池的上下文記憶模型[74]、圖推理[75]和知識圖譜[76]等技術(shù),能使算法根據(jù)抽取到的特征推斷目標的存在,從而提升檢測精度。

        4)如何實現(xiàn)面向開放世界的目標檢測。已有的目標檢測算法大多基于封閉的數(shù)據(jù)集進行訓練,僅能實現(xiàn)對數(shù)據(jù)集中所包含的特定類別的目標檢測。在現(xiàn)實應用中,目標檢測算法需要檢測的目標的類別往往是動態(tài)化和多樣化的,如在自動駕駛、植物表型分析、醫(yī)療保健和視頻監(jiān)控的場景下,算法在訓練時無法全面了解推理時預期的類別,只能在部署后學習新的類別,大部分已有的算法無法解決這些需求。面向開放世界的目標檢測能夠在沒有明確監(jiān)督的前提下,將未知的目標識別為“未知”類別,并且能夠在獲得這些“未知”類別的標簽后逐步對新的類別進行學習而不遺忘舊的類別。這類方法的研究將使基于深度學習的目標檢測算法在現(xiàn)實中得到更多的應用。

        5)如何基于深度學習進行其他形式的目標檢測。目前對目標檢測的研究主要集中在圖像目標檢測,對于其他形式的目標檢測,如3D 目標檢測、視頻目標檢測涉及較少。這些目標檢測任務對自動駕駛、工業(yè)機器人等領(lǐng)域具有重要意義。由于安全性、實時性的要求,導致對目標檢測算法的精度和速度有更高的要求,因此難度較高。這些領(lǐng)域背后蘊含著巨大的市場和經(jīng)濟效益,使這些形式的目標檢測算法的研究具有較好的發(fā)展前景。

        5 結(jié)束語

        深度學習技術(shù)可有效提升目標檢測算法的性能并使其適用于復雜環(huán)境。本文以是否存在顯式的區(qū)域建議與是否定義先驗錨框兩種分類標準對已有基于深度學習的目標檢測算法進行分類,總結(jié)各類算法的機制、演進路線、優(yōu)勢、局限性及適用場景,并對各類目標檢測算法在VOC 2007 和COCO 2018 數(shù)據(jù)集中的性能進行對比和分析。在此基礎(chǔ)上,對基于深度學習的目標檢測未來研究方向進行展望。

        猜你喜歡
        特征檢測
        抓住特征巧觀察
        “不等式”檢測題
        “一元一次不等式”檢測題
        “一元一次不等式組”檢測題
        “幾何圖形”檢測題
        “角”檢測題
        新型冠狀病毒及其流行病學特征認識
        如何表達“特征”
        不忠誠的四個特征
        當代陜西(2019年10期)2019-06-03 10:12:04
        抓住特征巧觀察
        熟妇人妻无乱码中文字幕av| 92精品国产自产在线观看48页| 国产成人啪精品视频免费软件| 免费一区在线观看| 久久亚洲一级av一片| 手机在线观看av资源| 麻豆免费观看高清完整视频| 久久国产精品二国产精品| 丰满少妇又紧又爽视频| 免费av一区男人的天堂 | 亚洲成人色黄网站久久| 风韵丰满熟妇啪啪区99杏| 亚洲国产精品无码专区影院| 国产精品视频牛仔裤一区| 国产大陆av一区二区三区| 开心久久婷婷综合中文字幕| 精品免费久久久久久久| 99久久婷婷国产综合亚洲91| 日本经典中文字幕人妻| 中国老熟女露脸老女人| 69sex久久精品国产麻豆| 国产精品23p| 天堂av一区二区麻豆| 激情综合五月| 亚洲熟女综合一区二区三区| 欧美日韩中文字幕日韩欧美| 日韩精品人妻视频一区二区三区| 美女内射毛片在线看免费人动物| 精品欧美乱码久久久久久1区2区| 好看午夜一鲁一鲁一鲁| 国产在线视频91九色| 久久无码av中文出轨人妻| 亚洲乱码一区二区三区成人小说| 亚洲av中文字字幕乱码软件 | av无码小缝喷白浆在线观看| 精品国产一区二区三区久久狼| 久久99久久99精品观看| 日本一区二区视频高清| 一本无码av中文出轨人妻| 欧洲亚洲第一区久久久| 开心五月激情五月天天五月五月天|