江志鵬,王自全,張永生,于 英,程彬彬,趙龍海,張夢(mèng)唯
(1.戰(zhàn)略支援部隊(duì)信息工程大學(xué)地理空間信息學(xué)院,河南 鄭州 450001;2.32016部隊(duì),甘肅 蘭州 730000)
近年來(lái),隨著算法的不斷優(yōu)化以及算力和數(shù)據(jù)量的快速增長(zhǎng),基于深度學(xué)習(xí)的計(jì)算機(jī)視覺(jué)技術(shù)研究進(jìn)入了新的發(fā)展時(shí)期。其中,目標(biāo)檢測(cè)作為計(jì)算機(jī)視覺(jué)技術(shù)研究的重要分支,是根據(jù)神經(jīng)網(wǎng)絡(luò)模型的輸出將圖像中的目標(biāo)以邊界框的形式提取出來(lái),并且賦予目標(biāo)類(lèi)別與置信度信息,可認(rèn)為是圖像分類(lèi)技術(shù)向“對(duì)象級(jí)”應(yīng)用的延伸。當(dāng)前,目標(biāo)檢測(cè)已經(jīng)廣泛應(yīng)用于自動(dòng)駕駛[1]、遙感圖像解譯[2]、智能交通[3]、人臉識(shí)別[4]和場(chǎng)景行為對(duì)象追蹤[5]等領(lǐng)域,對(duì)于推進(jìn)智慧城市的智能化和信息化有著重要作用。
早期的目標(biāo)檢測(cè)算法主要依托人工設(shè)計(jì)的特征,采用支持向量機(jī)[6]、HOG(Histogram of Oriented Gradient)[7]等策略對(duì)預(yù)先設(shè)定好的目標(biāo)候選區(qū)域進(jìn)行分類(lèi)。在卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Network)技術(shù)興起后[8],循環(huán)卷積神經(jīng)網(wǎng)絡(luò)RCNN(Region-CNN)系列算法[9-11]開(kāi)啟了雙階段目標(biāo)檢測(cè)算法的研究,其基本思想是:首先使用一個(gè)網(wǎng)絡(luò)模型RPN(Region Proposal Network)生成若干候選框,然后在檢測(cè)頭部對(duì)RPN產(chǎn)生的候選框進(jìn)行邊框回歸和分類(lèi),最后經(jīng)過(guò)非極大值抑制NMS(Non-Maximum Suppression)計(jì)算得到預(yù)測(cè)結(jié)果。在經(jīng)典的Faster R-CNN算法[11]中,引入了錨框機(jī)制,即預(yù)設(shè)一定數(shù)量和大小的候選框位置、尺寸,后續(xù)預(yù)測(cè)真實(shí)物體和錨框之間的偏移,有效提升了目標(biāo)檢測(cè)的可靠性與收斂性。
由于神經(jīng)網(wǎng)絡(luò)模型只能接受固定格式的張量輸入,而RPN提取出的感興趣區(qū)域形狀大小不一,Fast R-CNN[10]為了解決這一問(wèn)題提出了感興趣區(qū)域池化(Region of Interest Pooling)技術(shù),將所有的感興趣區(qū)域池化到同樣的大小后再輸入后續(xù)的檢測(cè)頭中。然而,這樣勢(shì)必會(huì)導(dǎo)致物體變形。Purkait等人[12,13]先后提出了SPP-Net(Spatial Pyramid Pooling Net)和新的感興趣區(qū)域空間對(duì)齊方式ROI-Align。SPP-Net根據(jù)輸入圖像大小不同,采用空間金字塔池化結(jié)構(gòu)(Spatial Pyramid Pooling Layer),將不同尺度的信息池化為固定長(zhǎng)度的特征向量后再組合。采用這種方式獲取圖像對(duì)應(yīng)的特征時(shí),不僅允許在訓(xùn)練時(shí)輸入不同尺寸的圖像,也允許測(cè)試時(shí)輸入不同大小的圖像,整體邏輯更為清晰簡(jiǎn)明。ROI-Align[13]采用雙線(xiàn)性插值法,對(duì)感興趣區(qū)域映射到的空間進(jìn)行更加精細(xì)的采樣,有效提升了中小目標(biāo)的分割與檢測(cè)精度。
為了提高目標(biāo)檢測(cè)的效率,有研究人員開(kāi)始嘗試不在中途提取候選區(qū)域,而是直接預(yù)測(cè)目標(biāo)所在的位置和類(lèi)別,這種做法被稱(chēng)為單階段目標(biāo)檢測(cè)技術(shù),如YOLO(You Only Look Once)系列[14-17]。其中,YOLOv1[14]將圖像劃分為固定大小的網(wǎng)格組合并對(duì)網(wǎng)格進(jìn)行回歸操作,檢測(cè)出的結(jié)果較為粗糙且容易漏檢;YOLOv2[15]引入了錨框機(jī)制,并進(jìn)行了維度聚類(lèi),提升了模型的準(zhǔn)確率;YOLOv3[16]采用了多尺度特征融合的做法,提升了小目標(biāo)檢測(cè)的有效性,并且保持了原有的計(jì)算速度;YOLOv4[17]則采用了大量模型構(gòu)建技巧,并將目標(biāo)檢測(cè)網(wǎng)絡(luò)劃分為特征提取網(wǎng)絡(luò)(Backbone)、特征聚合網(wǎng)絡(luò)(Neck)及目標(biāo)檢測(cè)頭(Head)。在后續(xù)非官方的YOLO系列(v5~v7)[18,19]中,大量新的特征融合方式被引入進(jìn)來(lái)。同時(shí)期的單階段目標(biāo)檢測(cè)網(wǎng)絡(luò)還有SSD(Single Shot multibox Detector)[20]等。
單階段目標(biāo)檢測(cè)算法是“密集預(yù)測(cè)”思想的典型代表。由于沒(méi)有RPN網(wǎng)絡(luò)生成有限數(shù)量的候選區(qū)域,單階段目標(biāo)檢測(cè)網(wǎng)絡(luò)將錨框設(shè)置到了原始圖像的每一個(gè)像素上,并且為了考慮多尺度的特征融合模塊,特征圖也被設(shè)置了錨框[21]。在訓(xùn)練過(guò)程中,網(wǎng)絡(luò)同時(shí)對(duì)數(shù)十萬(wàn)個(gè)錨框進(jìn)行偏移量的預(yù)測(cè)與回歸,而其中真正含有目標(biāo)的錨框只占很少一部分(稱(chēng)為“正樣本”,對(duì)應(yīng)不含目標(biāo)的錨框稱(chēng)為“負(fù)樣本”)。正負(fù)樣本數(shù)量的極大不平衡是單階段目標(biāo)檢測(cè)網(wǎng)絡(luò)始終面臨的問(wèn)題。對(duì)此,RetinaNet[22]提出了FocalLoss,側(cè)重以損失函數(shù)的形式調(diào)節(jié)模型訓(xùn)練的關(guān)注度,從而增加對(duì)正樣本的學(xué)習(xí)有效性。有些研究人員還開(kāi)發(fā)了無(wú)需錨框(Anchor-free)的算法,典型的有CornerNet[23]和CenterNet[24]等。
可以看出,目標(biāo)檢測(cè)技術(shù)存在大量人工設(shè)計(jì)的步驟,例如人工設(shè)計(jì)的錨框、非極大值抑制的后處理等,其中超參數(shù)的設(shè)置對(duì)提高模型性能起到了關(guān)鍵作用。單階段目標(biāo)檢測(cè)算法中,密集預(yù)測(cè)的方式并不符合智慧生物對(duì)場(chǎng)景中目標(biāo)的認(rèn)知方式,這導(dǎo)致基于CNN的目標(biāo)檢測(cè)結(jié)構(gòu)難以做到“簡(jiǎn)潔”的端到端訓(xùn)練與測(cè)試。將Transformer[25]技術(shù)應(yīng)用到計(jì)算機(jī)視覺(jué)后,這一問(wèn)題有了新的解決思路。Carion等人[26]開(kāi)發(fā)了基于Transformer的端到端目標(biāo)檢測(cè)模型DETR(DEtection TRansformer)。DETR將經(jīng)過(guò)ResNet[27]骨干網(wǎng)絡(luò)的圖像特征進(jìn)行序列化,然后經(jīng)過(guò)編碼器(Transformer Encoder)得到圖像上各部分的關(guān)聯(lián)特征,而后設(shè)計(jì)指定數(shù)量的物體查詢(xún)向量object_query,連同編碼器Transformer Encoder輸出的特征進(jìn)入解碼器(Transformer Decoder),最后經(jīng)過(guò)前饋網(wǎng)絡(luò)FFN(Feed Forward Network)進(jìn)行維度變換,得到不多于指定object_query數(shù)量的目標(biāo)分類(lèi)和定位結(jié)果。檢測(cè)出的目標(biāo)根據(jù)其位置和真值標(biāo)簽進(jìn)行匈牙利匹配,最后利用損失值構(gòu)建矩陣,選其中最小的損失作為模型的損失驅(qū)動(dòng)訓(xùn)練。因此,DETR無(wú)需錨框、無(wú)需NMS后處理,并且將密集預(yù)測(cè)方式轉(zhuǎn)換為依托固定數(shù)量object_query的預(yù)測(cè),無(wú)需考慮正負(fù)樣本失衡問(wèn)題,是目標(biāo)檢測(cè)領(lǐng)域里程碑式的創(chuàng)新。
然而,DETR的缺點(diǎn)也很明顯:首先,基于Transformer的目標(biāo)模型收斂速度過(guò)慢,DETR在COCO目標(biāo)檢測(cè)數(shù)據(jù)集[28]上訓(xùn)練了500個(gè)epoch才達(dá)到較好的精度,這是因?yàn)樽⒁饬D過(guò)大,加之Transformer模型和CNN模型相比,沒(méi)有良好的歸納偏置[29],導(dǎo)致在訓(xùn)練過(guò)程中注意力圖從稠密轉(zhuǎn)至稀疏需要很長(zhǎng)的時(shí)間,而一般的目標(biāo)檢測(cè)算法只需要約36個(gè)epoch;其次,DETR受限于自注意機(jī)制(Self-Attention)所需要的龐大計(jì)算量,只能使用骨干提取網(wǎng)絡(luò)的最后一層輸出作為序列化輸入,也沒(méi)有多尺度的操作策略,這些原因?qū)е缕鋵?duì)于小目標(biāo)的檢測(cè)效果較差。針對(duì)這2個(gè)問(wèn)題,Zhu等人[30]提出了基于多尺度可形變注意力MDA(Multi-scale Deformable Attention)的Deformable DETR。該方法在特征提取部分引入了多尺度的特征融合模塊,并且接受多尺度特征的輸入。在計(jì)算注意力的核心模塊中,不再使用逐點(diǎn)對(duì)齊的密集注意力,而只根據(jù)當(dāng)前點(diǎn)的特征,仿照可形變卷積[31],選擇性地在多個(gè)尺度的特征圖上計(jì)算偏移量,找到K個(gè)關(guān)聯(lián)點(diǎn),然后只使用這K個(gè)點(diǎn)計(jì)算注意力圖,極大地減小了注意力圖的尺寸,從而加速了模型的收斂,并且由于使用了跨尺度的表示方法,Deformable DETR的小目標(biāo)檢測(cè)性能也得到了改善。
視頻流目標(biāo)檢測(cè)算法的基本思想是利用視頻連續(xù)幀之間的相似度,對(duì)特征進(jìn)行聚合補(bǔ)充,從而提升目標(biāo)檢測(cè)性能。Zhu等人[32]提出了面向視頻識(shí)別的深度特征流(Deep Feature Flow)。若將一個(gè)典型的目標(biāo)檢測(cè)網(wǎng)絡(luò)劃分為特征提取網(wǎng)絡(luò)Nfeat和特征解碼網(wǎng)絡(luò)Ndet,則Ndet的運(yùn)行開(kāi)銷(xiāo)遠(yuǎn)小于Nfeat的。因此,該方法以固定的間隔獲取關(guān)鍵幀,只在關(guān)鍵幀上運(yùn)行特征提取網(wǎng)絡(luò)Nfeat,然后利用光流網(wǎng)絡(luò)FlowNet[33]計(jì)算各參考幀與關(guān)鍵幀之間的光流,將關(guān)鍵幀上提取好的特征傳播到參考幀上,最后運(yùn)行Ndet,從而加速了視頻目標(biāo)檢測(cè)的速度。在后續(xù)的工作中,Zhu等人[34]提出了由光流引導(dǎo)的特征聚合方法FGFA(Flow-Guided Feature Aggregation)。該方法利用時(shí)間信息聚合相鄰幀的特征,從而提升了每幀的特征質(zhì)量。
2019年,Wu等人[35]提出了序列層級(jí)語(yǔ)義聚合的視頻目標(biāo)檢測(cè)方法SELSA(SEquence Level Semantics Aggregation),該方法認(rèn)為特征的融合應(yīng)當(dāng)由語(yǔ)義的相近程度引導(dǎo),而不是時(shí)間的接近程度。因此,SELSA中完全隨機(jī)采樣參考幀進(jìn)行融合,沒(méi)有過(guò)多地考慮時(shí)序信息和局部語(yǔ)義信息,只利用全局信息,對(duì)雙階段目標(biāo)檢測(cè)器提取的候選區(qū)域進(jìn)行融合,實(shí)現(xiàn)了魯棒性更強(qiáng)的相似度引導(dǎo)。在此基礎(chǔ)上,Chen等人[36]提出了基于記憶信息增強(qiáng)的全局-局部特征聚合方法MEGA(Memory Enhanced Global-local Aggregation)。他們認(rèn)為只聚合相鄰的特征并不足以持續(xù)地對(duì)視頻整體進(jìn)行理解和建模,因此提出了新型的長(zhǎng)距離記憶LRM(Long Range Memory)機(jī)制,當(dāng)檢測(cè)器抽取當(dāng)前幀時(shí),MEGA會(huì)從LRM中抽取之前的幾幀進(jìn)行信息交互,從而有效提升了MEGA對(duì)視頻的全局建模能力,取得了視頻流目標(biāo)檢測(cè)領(lǐng)域的最好表現(xiàn)。
然而,基于光流和基于語(yǔ)義引導(dǎo)的目標(biāo)檢測(cè)方法均不適用于無(wú)人機(jī)視頻檢測(cè)任務(wù)。首先,在標(biāo)準(zhǔn)光流訓(xùn)練數(shù)據(jù)集(如Flying Chair)[33]上預(yù)訓(xùn)練好的FlowNet網(wǎng)絡(luò),在無(wú)人機(jī)目標(biāo)檢測(cè)下沒(méi)有對(duì)應(yīng)的損失函數(shù)計(jì)算方法,即利用無(wú)人機(jī)視頻數(shù)據(jù)集進(jìn)行模型訓(xùn)練時(shí),對(duì)基于光流網(wǎng)絡(luò)構(gòu)建的特征融合模塊起作用的是依托于目標(biāo)框損失的“間接監(jiān)督”;而近景數(shù)據(jù)集和無(wú)人機(jī)視頻數(shù)據(jù)集在視角、目標(biāo)變換上的差異十分顯著,導(dǎo)致光流網(wǎng)絡(luò)計(jì)算出的結(jié)果十分模糊,難以體現(xiàn)目標(biāo)層級(jí)的空間變換,在聚合特征時(shí)反而容易引起錯(cuò)誤和缺漏導(dǎo)致精度下降。采用視頻流目標(biāo)檢測(cè)算法得到的檢測(cè)熱力圖和特征傳播光流圖如圖1所示。
Figure 1 采用視頻流目標(biāo)檢測(cè)算法得到的檢測(cè)熱力圖 和特征傳播光流圖(數(shù)據(jù)集為UAVDT)圖1 Detection heat map and optical flow map of feature propagation obtained by video stream target detection algorithm (Dataset is UAVDT)
其次,使用特征融合和語(yǔ)義引導(dǎo)的方法,時(shí)間和運(yùn)算資源消耗較大。FGFA聚合前后15幀特征時(shí),運(yùn)算速度FPS下降為2。SELSA、MEGA等方法的運(yùn)算處理速度FPS也不超過(guò)5,遠(yuǎn)不如單幀目標(biāo)檢測(cè)算法的。且特征融合模塊占用了大量計(jì)算資源,Batchsize=1時(shí),顯存消耗約為8 GB,不利于后續(xù)的輕量化處理。最后,經(jīng)過(guò)實(shí)驗(yàn)表明,視頻流目標(biāo)檢測(cè)算法所能達(dá)到的最終性能,是在其基準(zhǔn)模型上有一定的提升。因此,使用性能更好的基準(zhǔn)模型能使視頻流目標(biāo)檢測(cè)算法獲得更好的性能。
綜上,本文以當(dāng)前較為優(yōu)秀的單幀目標(biāo)檢測(cè)算法Deformable DETR為基線(xiàn)算法進(jìn)行改進(jìn),用于無(wú)人機(jī)視頻流車(chē)輛目標(biāo)檢測(cè)任務(wù)中。在編碼器部分,融入跨尺度特征融合模塊,拓展編碼時(shí)每個(gè)像素級(jí)處理單元(token)的感受野,并提升每個(gè)token的上下文信息交互能力;在解碼器部分,融入面向object_query的擠壓-激勵(lì)模塊,提升關(guān)鍵目標(biāo)的響應(yīng)值;在數(shù)據(jù)處理方面,使用在線(xiàn)難樣本挖掘方法OHEM(Online Hard Example Mining)[37],改善數(shù)據(jù)集中大多為car而bus和truck類(lèi)別較少的不平衡情況。實(shí)驗(yàn)結(jié)果表明,本文算法能夠較好地完成無(wú)人機(jī)視頻流車(chē)輛目標(biāo)檢測(cè)任務(wù),相較基線(xiàn)算法提升了性能并保持了較高檢測(cè)速率,可滿(mǎn)足實(shí)時(shí)檢測(cè)需求。
Figure 2 DETR流程圖2 Workflow of DETR
DETR使用Transformer結(jié)構(gòu)完成了端到端的簡(jiǎn)潔目標(biāo)檢測(cè)框架,也是將Transformer較早應(yīng)用到計(jì)算機(jī)視覺(jué)細(xì)分任務(wù)中的工作。其算法流程如圖2所示。
首先,輸入的圖像在經(jīng)過(guò)以ResNet為骨干網(wǎng)絡(luò)的特征提取器后,得到輸出特征,經(jīng)過(guò)序列化與位置編碼后,投入Transformer模塊。Transformer模塊由編碼器Encoder和解碼器Decoder構(gòu)成。組成二者的部件為標(biāo)準(zhǔn)Transformer Layer,每個(gè)Layer由自注意力計(jì)算層和前饋網(wǎng)絡(luò)FFN(Feed Forward Network)組成。從骨干網(wǎng)絡(luò)輸出的特征先進(jìn)入Encoder,編碼每個(gè)像素級(jí)處理單元token之間的自注意力關(guān)系,重復(fù)上述操作N次(N為Encoder中Transformer Layer的數(shù)量)。然后,編碼的特征被緩存進(jìn)系統(tǒng),和預(yù)先設(shè)置的object_query一起投入到Decoder中。在這一步,object_query將反復(fù)和自身作Self-Attention計(jì)算,這是為了盡量學(xué)習(xí)到物體之間的關(guān)聯(lián),使其均勻地分布在圖像之中。在所有計(jì)算過(guò)程中,涉及自注意力機(jī)制的計(jì)算參數(shù)有查詢(xún)向量q、關(guān)鍵字向量k和值向量v。q和k是帶有位置編碼的,而隨著模型結(jié)構(gòu)的固定,v也隨之固定,也具備位置信息,且因結(jié)果生成需要從v上取值,故無(wú)需添加位置編碼。Transformer Encoder與Decoder部分的數(shù)據(jù)流如圖3所示。其中object_query表示目標(biāo)查詢(xún)向量,MHSA(Multi-Head Self-Attention)表示多頭注意力機(jī)制層,FFN表示以多層感知機(jī)為主體的前饋網(wǎng)絡(luò)層。
Figure 3 Transformer 編碼器和解碼器數(shù)據(jù)流圖3 Data flow of transformer encoder and decoder
Decoder的輸出向量包含所有object_query的編碼信息,經(jīng)過(guò)分類(lèi)分支和回歸框分支,得到對(duì)應(yīng)每一個(gè)目標(biāo)框的分類(lèi)信息和坐標(biāo)框信息。然后,在得到的object_query與真值框之間進(jìn)行二分圖匹配,構(gòu)建損失矩陣,驅(qū)動(dòng)模型訓(xùn)練。
如前文所述,DETR使用的是標(biāo)準(zhǔn)的多頭自注意力模塊MHSA,其核心的自注意力圖計(jì)算方式如式(1)所示:
(1)
其中,dk為注意力頭的個(gè)數(shù);Q代表用于計(jì)算注意力權(quán)重的向量,它通過(guò)與K進(jìn)行點(diǎn)積來(lái)得到注意力分?jǐn)?shù);K是用來(lái)衡量Q與其他向量的相關(guān)性的向量;V則是包含了輸入序列信息的向量??梢钥闯?MHSA的計(jì)算復(fù)雜度與Q和K的大小密切相關(guān),而Q和K的維度由token的數(shù)量確定。例如,一個(gè)14×14的特征圖,經(jīng)過(guò)塊嵌入(Patch Embedding)后的序列化特征維度為196,即token數(shù)量為196,即會(huì)產(chǎn)生一個(gè)由196個(gè)查詢(xún)向量q組成的Q矩陣,關(guān)鍵詞向量k和對(duì)應(yīng)的K矩陣亦然。從而注意力圖的大小為196×196。隨著圖像尺寸的增長(zhǎng),MHSA的計(jì)算量會(huì)以O(shè)(n2)的復(fù)雜度增加。這對(duì)于模型在下游任務(wù)上的應(yīng)用十分不利,也限制了DETR只能使用骨干網(wǎng)絡(luò)提取出的最小尺寸的特征圖,從而難以對(duì)較小的目標(biāo)進(jìn)行識(shí)別和檢測(cè),且難以運(yùn)用多尺度特征。
注意力圖過(guò)大造成的另一個(gè)問(wèn)題是模型收斂速度慢。式(1)中,Q和K矩陣乘法本質(zhì)上是每個(gè)token彼此之間利用查詢(xún)向量q和關(guān)鍵字向量k進(jìn)行的相似度計(jì)算。在模型開(kāi)始訓(xùn)練時(shí),注意力圖被隨機(jī)初始化,是“稠密”的矩陣;在模型最終收斂時(shí),token之間的相似度關(guān)系也被學(xué)習(xí)到,那么注意力圖應(yīng)該只有少部分接近1,大部分接近于0,表示網(wǎng)絡(luò)已經(jīng)學(xué)習(xí)到了特定token之間的相似度關(guān)系,即注意力圖應(yīng)當(dāng)是“稀疏”的。注意力圖很大時(shí),從稠密到稀疏的收斂過(guò)程非常緩慢,也導(dǎo)致了DETR模型訓(xùn)練時(shí)間過(guò)長(zhǎng)的問(wèn)題。
Deformable DETR對(duì)DETR的改進(jìn)主要集中在使用多尺度可形變注意力MDA替換了原有的自注意力機(jī)制,前向傳播的流程與DETR的基本相同,仍是Transformer Encoder和Transformer Decoder的組合。
如圖4所示,多尺度可形變注意力MDA的做法為:對(duì)多尺度特征圖上的每一個(gè)token,采用線(xiàn)性全連接層計(jì)算n個(gè)偏移量,表征其“應(yīng)該注意到”的點(diǎn),在計(jì)算注意力時(shí),聚焦在這有限個(gè)token上,從而極大地減少了注意力計(jì)算的成本。在Encoder部分,MDA模塊將輸入的多尺度特征圖上每一個(gè)token都進(jìn)行了編碼,并存儲(chǔ)進(jìn)緩存中備用。在Decoder部分,MDA則將object_query表示為可學(xué)習(xí)的錨框,只對(duì)固定數(shù)量的目標(biāo)查詢(xún)向量編碼query_embedding進(jìn)行操作,經(jīng)過(guò)位置編碼后,和Transformer Encoder上下文信息進(jìn)行注意力交互計(jì)算,從而查詢(xún)出所需要的目標(biāo)信息。
Figure 4 Data flow of multi-scale deformable attention圖4 多尺度可形變注意力機(jī)制計(jì)算流
本文使用Deformable DETR作為基線(xiàn)網(wǎng)絡(luò),在Encoder的基礎(chǔ)層中嵌入跨尺度特征融合模塊,在Decoder的基礎(chǔ)層中嵌入object_query擠壓-激勵(lì)模塊。在進(jìn)行編碼時(shí),數(shù)據(jù)先經(jīng)過(guò)其自有的MDA模塊,而后投入跨尺度特征融合模塊中進(jìn)行整合,旨在進(jìn)一步增強(qiáng)其空間感知能力。在進(jìn)行解碼時(shí),query_embedding向量和Encoder編碼向量進(jìn)行多尺度交叉注意力機(jī)制計(jì)算,然后投入object_query擠壓-激勵(lì)模塊,旨在賦予每個(gè)目標(biāo)不同的權(quán)重,以突出關(guān)鍵目標(biāo)的重要性。在訓(xùn)練時(shí),采用在線(xiàn)難樣本挖掘策略,以緩解數(shù)據(jù)集類(lèi)別樣本不平衡的問(wèn)題。算法整體框架如圖5所示。
Figure 5 Algorithm framework圖5 算法框架
在卷積神經(jīng)網(wǎng)絡(luò)中,卷積核大小決定了當(dāng)前卷積后特征圖感受野的尺寸。對(duì)于不同尺寸的目標(biāo)而言,使用不同尺寸感受野的特征圖能夠更好地接近真實(shí)物體的輪廓。對(duì)于在視頻流中不斷變化的車(chē)輛而言,目標(biāo)變化過(guò)程具有多尺度、多角度的特性,故設(shè)計(jì)能夠融合多個(gè)感受野的跨尺度特征融合模塊CRF(CRoss scale feature Fusion)對(duì)提升目標(biāo)分類(lèi)和定位精度有著重要作用。受語(yǔ)義分割算法Deeplab[38]啟發(fā),考慮到Deformable DETR在單個(gè)MDA模塊中融入了4個(gè)尺度的信息,所以設(shè)計(jì)了4條并行的跨尺度特征融合模塊。
如圖6所示,設(shè)定輸入圖像高度為H,寬度為W,則第i個(gè)尺度的高度和寬度如式(2)所示:
(Hi,Wi)=(H/2i,W/2i),i=0,1,2,3
(2)
所有待編碼的token數(shù)量如式(3)所示:
(3)
每個(gè)尺度的起算點(diǎn)如式(4)所示:
(4)
Figure 6 Cross scale feature fusion module圖6 跨尺度特征融合模塊
設(shè)模型的通用編碼維度為D,批處理大小為B,則圖6中輸入的維度為[B,N,D]。然后,經(jīng)過(guò)一個(gè)線(xiàn)性層將其映射為具備較低描述維度d的向量,再按照每個(gè)尺度的起算點(diǎn)對(duì)映射后的輸入進(jìn)行切分并重新排列成4個(gè)二維特征圖t,其尺寸如式(5)所示:
Size(ti)=[B,d,Hi,Wi],i=1,2,3,4
(5)
設(shè)置卷積核大小為klist,分別作用在輸出的特征圖上,如式(6)所示:
Xi=Convklist[i](ti)
i=0,1,2,3,klist=[7,3,5,1]
(6)
多尺度卷積步驟完成后,重新排列成序列輸入格式,按照通道維度進(jìn)行拼接,再使用一個(gè)線(xiàn)性層,將拼接后的現(xiàn)有維度特征d映射回原有的維度D。這樣,不同尺度的信息就通過(guò)拼接和線(xiàn)性層映射操作得到了強(qiáng)處理。借鑒殘差網(wǎng)絡(luò)思想,該部分的輸出經(jīng)過(guò)Sigmoid激活函數(shù)之后,和原有輸入相加得到最終結(jié)果。
object_query是模型查詢(xún)圖像上某一位置是否存在目標(biāo)的向量,而模型根據(jù)Encoder提供的特征圖來(lái)提供答案。在訓(xùn)練結(jié)束時(shí),object_query的關(guān)注點(diǎn)和物體的位置將十分貼合。設(shè)object_query的維度為n_query,通常設(shè)置為100或300。在本文數(shù)據(jù)集中,單個(gè)圖像上的目標(biāo)數(shù)量一般在50個(gè)左右,因此設(shè)置的object_query數(shù)量存在冗余。原有的object_query經(jīng)過(guò)編碼后的query_embedding向量在重要程度上是均勻的,基于此,本文借鑒SENet[39]思路,設(shè)計(jì)了面向object_query的擠壓-激勵(lì)模塊OqSE(Object_query Squeeze-and-Excitation),如圖7所示。
Figure 7 Decoder layer with object_query squeeze and excitation module圖7 帶有object_query擠壓-激勵(lì)模塊的解碼器層
對(duì)于具備D維描述特征的query_embedding向量,對(duì)其包含的信息進(jìn)行逐層降維(Reduction)操作。本部分即Transformer Decoder采用一個(gè)漸進(jìn)式降維多層感知機(jī)MLP(MultiLayer Perceptron)逐漸將query_embedding的維度降為1,對(duì)每個(gè)特征賦予權(quán)重。該部分的數(shù)據(jù)流可描述為式(7):
s=z(1+σ(z·MLP(z)))
(7)
其中,OqSE模塊的輸入為z,MLP(·)為采用的多層感知機(jī)結(jié)構(gòu),s為模塊的輸出,σ(·)為Sigmoid激活函數(shù)。
在線(xiàn)難樣本挖掘OHEM[37]是一種緩解數(shù)據(jù)集中樣本類(lèi)別不均衡以及識(shí)別難度大等問(wèn)題的方法。其基本假設(shè)為:數(shù)據(jù)集中某一類(lèi)的數(shù)量很少時(shí),網(wǎng)絡(luò)模型學(xué)習(xí)到該類(lèi)樣本特征的次數(shù)少于其他類(lèi)樣本的,導(dǎo)致難以對(duì)該類(lèi)樣本進(jìn)行正確分類(lèi)和定位,稱(chēng)這類(lèi)樣本為“難樣本”。
本文所使用的UAVDT(UAV Detection and Tracking benchmark)數(shù)據(jù)集中,類(lèi)別car的樣本數(shù)遠(yuǎn)多于bus和truck的(如表1所示)。且存在不同角度、不同時(shí)間和不同天氣狀況下拍攝的大量小目標(biāo)?;诖?本文采用OHEM算法來(lái)加強(qiáng)對(duì)難樣本的訓(xùn)練,對(duì)訓(xùn)練過(guò)程中各個(gè)樣本的損失進(jìn)行排序,選擇損失較大的樣本投入負(fù)樣本池,增加其被學(xué)習(xí)到的次數(shù);而對(duì)于損失較小的樣本則認(rèn)為已經(jīng)學(xué)習(xí)到其正確的檢測(cè)知識(shí),賦予較小的權(quán)重。此方法能有效提高對(duì)bus、truck這類(lèi)小樣本以及小目標(biāo)的檢測(cè)性能。
Table 1 Statistical table of dataset annotation information表1 數(shù)據(jù)集標(biāo)注信息統(tǒng)計(jì)表
數(shù)據(jù)集采用無(wú)人機(jī)視頻流目標(biāo)檢測(cè)數(shù)據(jù)集UAVDT[40]中的多目標(biāo)檢測(cè)以及追蹤子集UAV-benchmark-M。該子集包含50個(gè)視頻序列,共40 409幅圖像,依據(jù)視頻序列的個(gè)數(shù)按照3∶2的比例劃分出訓(xùn)練集和測(cè)試集。其中訓(xùn)練集包括30個(gè)視頻序列(含23 829幅圖像),測(cè)試集包括20個(gè)視頻序列(含16 580幅圖像)。部分標(biāo)注圖像如圖8所示。
Figure 8 Examples of UAV-benchmark-M圖8 數(shù)據(jù)集標(biāo)注實(shí)例
數(shù)據(jù)集的類(lèi)別不均衡,car的數(shù)量遠(yuǎn)高于另外2類(lèi)的。如表1所示。除了類(lèi)別不均勻,數(shù)據(jù)集中也包含了大量的小目標(biāo),如圖9所示。絕大多數(shù)目標(biāo)的面積均小于50 × 50像素,其中有2/3的目標(biāo)面積小于32×32像素,符合MS COCO(MirocSoft COmmon objects in COntext)數(shù)據(jù)集對(duì)“小目標(biāo)”的定義。寬高比分布相對(duì)較為均勻,但仍存在一部分較為狹長(zhǎng)的目標(biāo),這些因素的存在均對(duì)檢測(cè)性能提出了一定挑戰(zhàn)。
Figure 9 Area and statistical data of annotations圖9 標(biāo)簽標(biāo)注的面積和寬高比情況
算法依托深度學(xué)習(xí)框架PyTorch[41],版本為1.6.0,使用NVIDIA的Tesla v100進(jìn)行訓(xùn)練。使用OpenMMLab(Open MultiMedia Lab)中的MMDetection(open MMLab Detection toolbox and benchmark)[42]和MMTracking(open MMLab multiple object Tracking toolbox and benchmark)框架完成相關(guān)對(duì)比實(shí)驗(yàn),具體見(jiàn)表2。
Table 2 Experimental environment表2 實(shí)驗(yàn)環(huán)境
在目標(biāo)檢測(cè)研究中,常用MS COCO[28]中的評(píng)價(jià)指標(biāo)來(lái)衡量性能。主要指標(biāo)是平均精度AP(Average Precision),表征了對(duì)某一類(lèi)目標(biāo)的檢測(cè)性能。AP由交并比IoU(Intersection-over Union)確定,即預(yù)測(cè)目標(biāo)框與真值目標(biāo)框的重疊程度。其他評(píng)價(jià)指標(biāo)還包括參數(shù)量Param以及每秒可檢測(cè)的幀數(shù)FPS(Frames Per Second)。本文所使用的評(píng)價(jià)指標(biāo)如表3所示。
將本文算法在UAV-benchmark-M上進(jìn)行訓(xùn)練,得到改進(jìn)的網(wǎng)絡(luò)模型和權(quán)重文件。驗(yàn)證算法性能時(shí),選擇了11個(gè)經(jīng)典的目標(biāo)檢測(cè)算法進(jìn)行性能對(duì)比。
Table 3 Evaluation indexes表3 評(píng)價(jià)指標(biāo)
實(shí)驗(yàn)采取原始Deformable DETR的結(jié)構(gòu),用原有的Channel-Mapper進(jìn)行特征融合,將不采用在線(xiàn)難樣本挖掘的算法作為基線(xiàn)算法。實(shí)驗(yàn)結(jié)果如表4所示。從表4可以看出,本文算法與基線(xiàn)算法相比,在沒(méi)有顯著增加模型大小的情況下,檢測(cè)精度得到了提升,其中在mAP、AP50和AP75等指標(biāo)值分別提升了1.5%,1.6%和0.8%,表明本文的改進(jìn)工作能夠提升Deformable DETR的性能;本文算法在APs、APm、APl上也均有提高,小目標(biāo)檢測(cè)平均精度相較于基線(xiàn)算法的提升了1.8%,中等目標(biāo)的平均精度提升了1.2%,大目標(biāo)的平均精度提升了2.2%。相比于其他算法,本文算法在精度上也達(dá)到了最好的性能,說(shuō)明本文的創(chuàng)新點(diǎn)可以有效提升模型的檢測(cè)能力。此外,本文算法相較于基線(xiàn)算法僅增長(zhǎng)了0.4×106的參數(shù)量,FPS僅減少了0.2,計(jì)算消耗并不大。在視頻流目標(biāo)檢測(cè)算法中,采用了DFF、FGFA和SELSA共3種不同的視頻流目標(biāo)檢測(cè)算法。可以看到,無(wú)論是僅有特征傳播的DFF,依托光流特征融合的FGFA,還是基于語(yǔ)義融合的SELSA,在采用相同檢測(cè)器Grid-RCNN+FPN的情況下,這些算法的性能均較單幀檢測(cè)器的有所損失,這是特征傳播不準(zhǔn)確導(dǎo)致的。除DFF在算法運(yùn)行速度上大幅提升之外,FGFA和SELSA的檢測(cè)速度也因光流融合而被拖慢,難以滿(mǎn)足無(wú)人機(jī)視頻流實(shí)時(shí)與近實(shí)時(shí)的目標(biāo)檢測(cè)需求。
Table 4 Results comparison of different algorithms表4 不同算法結(jié)果對(duì)比
本文算法和基線(xiàn)算法的檢測(cè)結(jié)果對(duì)比如圖10所示。圖10a中本文算法能準(zhǔn)確檢測(cè)出公交車(chē),然而基線(xiàn)算法將卡車(chē)視作數(shù)段普通車(chē)輛,說(shuō)明本文算法相較于基線(xiàn)算法更注重整體性且突出了關(guān)鍵目標(biāo)。圖10b中基線(xiàn)算法出現(xiàn)了誤檢測(cè),將收費(fèi)站的柱子判斷成了車(chē)輛,本文算法誤檢測(cè)較少。圖10c中基線(xiàn)算法將公交車(chē)識(shí)別錯(cuò)誤,但本文算法能夠識(shí)別正確。圖10d中基線(xiàn)算法在小目標(biāo)和查全率上均不如本文算法。同時(shí)發(fā)現(xiàn),雖然圖10a和圖10b中改進(jìn)算法相對(duì)于基線(xiàn)算法存在漏檢現(xiàn)象,但由于數(shù)據(jù)集中該類(lèi)目標(biāo)(目標(biāo)區(qū)域只有部分在圖內(nèi))未進(jìn)行標(biāo)注,從側(cè)面證明了該檢測(cè)算法對(duì)于目標(biāo)全局檢測(cè)能力的提升。
Figure 10 Experimental results comparison圖10 對(duì)比實(shí)驗(yàn)結(jié)果示例
為了驗(yàn)證本文工作對(duì)于目標(biāo)檢測(cè)算法的影響,設(shè)計(jì)了消融實(shí)驗(yàn)。消融實(shí)驗(yàn)依然以原始Deformable DETR且無(wú)OHEM輔助的算法作為基線(xiàn)算法進(jìn)行對(duì)比。6組消融實(shí)驗(yàn)是單一或者兩兩模塊的組合,最后一組是本文的完整算法,即Deformable DETR+CRF+OqSE+OHEM,具體實(shí)驗(yàn)結(jié)果如表5所示。
Table 5 Results of ablation experiments表5 消融實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果表明,單一以及組合模塊的改進(jìn)在檢測(cè)準(zhǔn)確度和處理速度上大多可以產(chǎn)生較好的優(yōu)化效果,表明對(duì)原始基線(xiàn)算法的改進(jìn)是有效的。其中,加入CRF模塊可將模型的檢測(cè)性能提升0.4%,加入OqSE模塊可將模型性能提升0.8%,說(shuō)明OqSE模塊可有效提升重要目標(biāo)的檢測(cè)效果。在基線(xiàn)算法上單獨(dú)應(yīng)用OHEM對(duì)檢測(cè)精度也有一定程度的提升。
本文提出了一種基于改進(jìn)Deformable DETR的無(wú)人機(jī)視頻流車(chē)輛目標(biāo)檢測(cè)算法。該算法在整體檢測(cè)精度、小目標(biāo)檢測(cè)精度上均優(yōu)于基線(xiàn)算法的,結(jié)合消融實(shí)驗(yàn),論證了算法核心模塊的有效性。本文的工作主要包括以下3個(gè)方面:
(1)針對(duì)原有Deformable DETR在多尺度上感受能力相同的特點(diǎn),提出了適用于Transformer目標(biāo)檢測(cè)框架的跨尺度特征融合模塊,并將其使用在Transformer編碼器層中,提升了特征融合的效能和表現(xiàn)能力;
(2)針對(duì)原有Deformable DETR在object_query重要程度上均衡導(dǎo)致重點(diǎn)不突出的問(wèn)題,提出了基于object_query的擠壓-激勵(lì)模塊,并將其使用在Transformer解碼器層中,使目標(biāo)之間的關(guān)系得到了更深刻的表達(dá);
(3)針對(duì)數(shù)據(jù)集中類(lèi)別樣本不均衡導(dǎo)致的訓(xùn)練效果不佳的問(wèn)題,使用OHEM方法對(duì)損失函數(shù)進(jìn)行改進(jìn),提升了基于UAVDT數(shù)據(jù)集的訓(xùn)練效果。
下一階段的研究重點(diǎn)是進(jìn)一步研究目標(biāo)檢測(cè)模型的特征提取能力,并嘗試在更多的數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),以及采用知識(shí)蒸餾等策略將算法遷移至移動(dòng)端平臺(tái),測(cè)試其實(shí)際檢測(cè)效果。