王旭 羅鐵堅(jiān) 楊林
1.北京信息科技大學(xué),北京 100096;2.中國科學(xué)院大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,北京 100854;3.北京計(jì)算機(jī)技術(shù)及應(yīng)用研究所,北京 100039
野生動(dòng)物是生態(tài)系統(tǒng)的重要組成部分,不能很好地保護(hù)瀕危野生動(dòng)物會(huì)導(dǎo)致生態(tài)系統(tǒng)不平衡,并影響環(huán)境[1]。對野生動(dòng)物進(jìn)行保護(hù)這一任務(wù)依賴于對野生動(dòng)物的地理空間分布和健康狀況的準(zhǔn)確監(jiān)測,特別是在野生動(dòng)物棲息地逐漸減少的情況下。傳統(tǒng)的將發(fā)射器連接到野生動(dòng)物身上的方法容易出現(xiàn)傳感器故障并且很難擴(kuò)展到大型種群中。傳統(tǒng)的野生動(dòng)物監(jiān)測方法需要進(jìn)行“足跡判定、花紋判別、DNA 鑒定”[2]等操作,這需要對大量數(shù)據(jù)進(jìn)行統(tǒng)計(jì)與分析。計(jì)算機(jī)技術(shù)迅猛發(fā)展,同時(shí)無人機(jī)或相機(jī)[3]可以大量收集視覺數(shù)據(jù),使得計(jì)算機(jī)視覺技術(shù)成為一種很有前途的野生動(dòng)物監(jiān)測方法。因此,近些年研究人員逐漸把計(jì)算機(jī)視覺技術(shù)應(yīng)用在對野生動(dòng)物的保護(hù)和監(jiān)測上,例如拉毛措等人[4]提出了高原野生動(dòng)物物種檢測算法。K?RSCHENS M 等人[5]設(shè)計(jì)了一種野生大象的重識別方法。LI SHUYUAN 等人[6]制作了一個(gè)東北虎的關(guān)鍵點(diǎn)檢測和重識別任務(wù)的數(shù)據(jù)集ATRW。于慧伶等人[7]基于ATRW 數(shù)據(jù)集設(shè)計(jì)一個(gè)了對東北虎的重識別方法。
關(guān)鍵點(diǎn)檢測任務(wù)的目標(biāo)是根據(jù)圖像預(yù)測人的關(guān)鍵點(diǎn)位置,進(jìn)而重建人體的關(guān)節(jié),在人機(jī)交互、行人重識別等方向有著重要作用。關(guān)鍵點(diǎn)檢測是一種基于目標(biāo)檢測算法并應(yīng)用在關(guān)鍵點(diǎn)的信息捕捉上的智能算法,具有能將空間中的信息通過攝像頭轉(zhuǎn)化為可量化處理的數(shù)據(jù)信息的功能。隨著深度卷積神經(jīng)網(wǎng)絡(luò)在關(guān)鍵點(diǎn)檢測任務(wù)中的應(yīng)用,檢測精確度也在逐步提升。
本文在關(guān)鍵點(diǎn)檢測算法研究的基礎(chǔ)上進(jìn)一步研究野生動(dòng)物的關(guān)鍵點(diǎn)檢測問題,使野生動(dòng)物關(guān)鍵點(diǎn)檢測具有更高的準(zhǔn)確度。本文的貢獻(xiàn)如下:
(1)首次在野生動(dòng)物關(guān)鍵點(diǎn)檢測任務(wù)中使用Transformer 模型捕捉野生動(dòng)物各個(gè)關(guān)鍵點(diǎn)的依賴關(guān)系,充分利用全局信息和局部信息進(jìn)行關(guān)鍵點(diǎn)預(yù)測;
(2)引入SGE 注意力模塊,設(shè)計(jì)新的BasicBlock,改善提取特征的空間分布;
(3)提出一種多分辨率融合方法,在特征融合前通過空間注意力對特征進(jìn)行權(quán)重分配,從而獲得更豐富的融合特征。
經(jīng)過實(shí)驗(yàn)驗(yàn)證,所提方法在ATRW 數(shù)據(jù)集上的平均準(zhǔn)確率與基線方法相比提高了1 個(gè)百分點(diǎn)。
2D 人體關(guān)鍵點(diǎn)檢測也稱為人體姿態(tài)估計(jì)。作為計(jì)算機(jī)視覺的一個(gè)基礎(chǔ)任務(wù),人體關(guān)鍵點(diǎn)檢測可應(yīng)用在動(dòng)作識別、行為分析等任務(wù)中。單人姿態(tài)估計(jì)和多人姿態(tài)估計(jì)是人體關(guān)鍵點(diǎn)檢測的兩大主要任務(wù)。
單人姿態(tài)估計(jì)[8]針對圖像中只有一個(gè)人的情形。文獻(xiàn)[9]首先將CNN 應(yīng)用到人體關(guān)鍵點(diǎn)檢測任務(wù)中,文獻(xiàn)[10]在CNN 的基礎(chǔ)上引入了馬爾科夫隨機(jī)場來進(jìn)行關(guān)鍵點(diǎn)檢測,并把關(guān)鍵點(diǎn)以熱圖的形式顯示出來。TOMPSON J 等人[11]在文獻(xiàn)[10]的模型中引入了多分辨率輸入,使模型的檢測準(zhǔn)確度得到提高。SUN K 等人[12]設(shè)計(jì)了高分辨率網(wǎng)絡(luò)(High-Resolution Network,HRNet)在關(guān)鍵點(diǎn)檢測任務(wù)中達(dá)到了當(dāng)時(shí)最好的效果。
多人姿態(tài)估計(jì)的模型也可以應(yīng)用到單人姿態(tài)估計(jì)任務(wù)中,其姿態(tài)估計(jì)方法主要有兩種:一種是先檢測出圖中的每一個(gè)人,再對其中每個(gè)人進(jìn)行關(guān)鍵點(diǎn)檢測(自頂向下的方法);另一種是先把圖片中所有的關(guān)鍵點(diǎn)檢測出來,再判斷檢測出的關(guān)鍵點(diǎn)具體屬于哪一個(gè)人(自底向上的方法)。
ASHISH VASWANI 等人[13]設(shè)計(jì)的Transformer 模型在自然語言處理方向得到廣泛應(yīng)用。近幾年,Transformer 模型在視覺任務(wù)中展現(xiàn)出很強(qiáng)的活力,DETR[14](Detection Transformer)、ViT[15](Vision Transformer)、SETR[16](Segmentation Trans-former)分別將Transformer 模型應(yīng)用到目標(biāo)檢測、圖像分類和語義分割任務(wù)中。YANG S 等人[17]將Transformer 引入到人體關(guān)鍵點(diǎn)檢測任務(wù)中,使用Transformer 的自注意力機(jī)制來捕捉各個(gè)關(guān)鍵點(diǎn)的依賴關(guān)系。本文對文獻(xiàn)[17]的網(wǎng)絡(luò)進(jìn)行了改進(jìn),將其應(yīng)用在野生動(dòng)物關(guān)鍵點(diǎn)檢測的任務(wù)中。
注意力機(jī)制已經(jīng)成熟應(yīng)用在自然語言處理和計(jì)算機(jī)視覺領(lǐng)域。注意力機(jī)制可以通過分配權(quán)重來提高對高效信息的關(guān)注度,如通道注意力[18]通過對不同通道進(jìn)行權(quán)重賦值來實(shí)現(xiàn)通道的注意力分配,空間注意力[18]通過對不同特征的權(quán)重賦值來提高對目標(biāo)區(qū)域的關(guān)注度。
網(wǎng)絡(luò)整體結(jié)構(gòu)如圖1 所示,本文用CNN 網(wǎng)絡(luò)來提取野生動(dòng)物的特征,將提取的特征進(jìn)行序列化和位置嵌入,輸入到Transformer 模型中得到關(guān)鍵點(diǎn)的依賴關(guān)系,最后通過一個(gè)MLP(Multi-Layer Perceptron)層預(yù)測關(guān)鍵點(diǎn)的熱圖。在訓(xùn)練時(shí)使用均方差函數(shù)作為損失函數(shù)。
2.1.1 數(shù)據(jù)處理
與傳統(tǒng)Transformer 模型不同,在本文的模型中并未使用解碼結(jié)構(gòu)。研究的目的是得到野生動(dòng)物各個(gè)關(guān)鍵點(diǎn)之間的依賴關(guān)系,因此不需要進(jìn)行解碼輸出。網(wǎng)絡(luò)的輸入圖像為I∈R3×HI×WI,經(jīng)過CNN 網(wǎng)絡(luò)的處理得到維度為d的Xf∈Rd×H×W特征圖,然后將特征圖展平為一個(gè)序列X∈RL×d(L=H×W),把X中的向量xi∈Rd(i=1,2,3,…,L)命名為Token。
2.1.2 位置嵌入PE(Positional Encoding)
Transformer 需要對輸入序列X進(jìn)行位置嵌入,從而獲得序列的相對位置和絕對位置(相對位置指Token 之間的距離,絕對位置指Token 在序列中的位置),采用正余弦函數(shù)公式(1)~(4)得到位置嵌入向量。由于sin 和cos 函數(shù)在不同維度上(i表示維度)函數(shù)周期不同,在同一方向上(如x方向),根據(jù)pos和i的變化可以產(chǎn)生唯一的函數(shù)取值組合,從而產(chǎn)生唯一的位置信息,并且,sin 和cos 函數(shù)的值域?yàn)閇-1,1],能夠很好限定嵌入向量中值的大小,使訓(xùn)練過程更加穩(wěn)定。
其中,i=0,1,2,…,d/2-1——維度;
posx、posy——x和y方向上的位置,然后將其轉(zhuǎn)換成RL×d的形式后加入到輸入序列X中,得到Xp。
2.1.3 自注意力機(jī)制
自注意力計(jì)算過程如圖2 所示,由Xp∈RL×d經(jīng)過投影得到Q、K,由X∈RL×d經(jīng)過投影得到V,如公式(5)~(7)所示:
其中,Q——Query 矩陣;
K——Key 矩陣;
V——Value 矩陣;
WQ、WK、WV∈Rd×d——隨機(jī)初始化的權(quán)重矩陣。
如公式(8)所示,將Q和K進(jìn)行內(nèi)積運(yùn)算后除以,經(jīng)過Softmax 函數(shù)處理得到自注意力權(quán)重矩陣,權(quán)重矩陣乘以V得到自注意力計(jì)算結(jié)果Z∈RL×d。
2.1.4 預(yù)測熱圖
輸入序列X與Z經(jīng)過殘差網(wǎng)絡(luò)求和,LN(Layer Normalization)模塊對數(shù)據(jù)進(jìn)行歸一化處理后將結(jié)果傳遞到前饋神經(jīng)網(wǎng)絡(luò)(Feed-Forward Network,F(xiàn)FN),再經(jīng)過殘差塊和LN 模塊的處理得到當(dāng)前Transformer 編碼層的輸出。整體過程可用公式(9)、(10)表示:
其中,LN 表示進(jìn)行層歸一化處理,即對層中所有神經(jīng)元進(jìn)行歸一化(設(shè)層中有m個(gè)神經(jīng)元,輸入為B={x1,x2,...,xm},則歸一化過程可用公式(11)、(12)表示,先求出均值μ和方差σ2,然后根據(jù)均值和方差求出最后以γ和β為縮放參數(shù)和平移參數(shù)進(jìn)行縮放和平移,得到歸一化結(jié)果);FFN 由一個(gè)以ReLU 函數(shù)為激活函數(shù)全連接層和一個(gè)以線性函數(shù)為激活函數(shù)的全連接層組成,F(xiàn)FN 對應(yīng)圖2 中的前饋網(wǎng)絡(luò)(Feed-Forward);X是未經(jīng)過位置嵌入的輸入;Xt表示當(dāng)前編碼層的輸出。將Xt作為下一層的輸入,經(jīng)過N層的編碼層處理,最后經(jīng)過一個(gè)MLP 層獲得關(guān)鍵點(diǎn)的預(yù)測熱圖。
其中,ε——極小值,防止分母為0。
本文以HRNet 作為Backbone 網(wǎng)絡(luò),在HRNet 網(wǎng)絡(luò)的BasicBlock 中引入SGE 注意力機(jī)制,如圖3 所示,改進(jìn)的BasicBlock 包含兩個(gè)具有相同輸出通道的3×3 卷積層,一個(gè)SGE 注意力模塊和一個(gè)殘差連接。
SGE 注意力模塊[19]按照通道維度C將特征圖分為G個(gè)Group(本文將G設(shè)置為64),每個(gè)Group 表示為X={x1,…,m},其中,xi∈RC/G(i=1,2,3,…,m)為子特征,m=H×W,完整的特征由以Group 形式分布的子特征組成。SGE 注意力機(jī)制通過在每個(gè)Group 里生成注意力因子來得到子特征的重要性,具體操作如圖4 所示。
(1)對X進(jìn)行平均池化操作,經(jīng)過函數(shù)Fgp(·)處理得到向量g;
(2)g與xi點(diǎn)乘得到ci,對ci進(jìn)行標(biāo)準(zhǔn)化得到結(jié)果ai;
(3)ai經(jīng)過 sigmoid 函數(shù)后,得到的結(jié)果與xi進(jìn)行點(diǎn)乘得到。
其中,ε——極小值,防止分母為0。
使用HRNet 對圖像進(jìn)行特征提取,不同分辨率表征關(guān)注的信息不同,高分辨率表征更關(guān)注局部信息,低分辨率表征更多地保留全局信息。HRNet 的融合模塊可以進(jìn)行多尺度特征融合,使表征保持高分辨率的同時(shí),擁有更豐富的特征信息。融合模塊如圖5 所示,將空間注意力模塊加在表征融合之前,使其在融合之前能夠提取更值得關(guān)注的特征信息以提高融合效果。輸入的特征經(jīng)過平均池化和最大池化操作生成兩個(gè)2D圖,把兩圖拼接在一起(通道拼接),使用尺寸為7×7 的卷積核進(jìn)行卷積和降維處理(降為1 維),最后經(jīng)過Sigmoid 函數(shù)后生成空間注意力矩陣Ms,Ms與輸入特征點(diǎn)乘得到新的融合特征??臻g注意力計(jì)算方式如公式(19)所示:
其中,f7×7——卷積核尺寸為7×7 的卷積操作。
ATRW 數(shù)據(jù)集是針對野生動(dòng)物東北虎的關(guān)鍵點(diǎn)檢測和重識別任務(wù)的數(shù)據(jù)集,東北虎的關(guān)鍵點(diǎn)定義如表1 所示。相較于其他野生動(dòng)物關(guān)鍵點(diǎn)檢測數(shù)據(jù)集,ATRW數(shù)據(jù)集規(guī)模更大,注釋更詳細(xì)。在本文的實(shí)驗(yàn)中,訓(xùn)練集有3,609 張圖片,測試集有1,032 張圖片,驗(yàn)證集有515張圖片。圖6為東北虎關(guān)鍵點(diǎn)的可視化分布圖。
表1 關(guān)鍵點(diǎn)的定義
由公式(20)計(jì)算模型準(zhǔn)確度:
其中,TP(True Positives)——檢測正確的目標(biāo)數(shù);
FP(False Positives)——檢測錯(cuò)誤的目標(biāo)數(shù)。
關(guān)鍵點(diǎn)相似性指標(biāo)OKS(Object Keypoint Similarity)定義如公式(21)所示:
其中,di——真實(shí)的關(guān)鍵點(diǎn)與估計(jì)的野生動(dòng)物關(guān)鍵點(diǎn)的歐氏距離;
vi——該關(guān)鍵點(diǎn)是否遮擋;
s——目標(biāo)尺寸;
ki——每個(gè)關(guān)鍵點(diǎn)的乘積常數(shù)。
使用mAP(mean Average Precision)表示檢測結(jié)果,mAP為OKS分別取(0.55,0.6,…,0.9,0.95)時(shí)所有準(zhǔn)確度(Precision)的平均值。
本文在版本為Ubuntu18.04 的Linux 服務(wù)器上進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)所用的CUDA 版本為11.2,Python 版本為3.6.6,Pytorch 版本為1.10。實(shí)驗(yàn)參數(shù)設(shè)置:初始學(xué)習(xí)率設(shè)置為0.0005,學(xué)習(xí)率衰減系數(shù)為0.1,訓(xùn)練周期為260。
分 別 使 用AlphaPose、ResNet 和HRNet 等 網(wǎng) 絡(luò)在ATRW 數(shù)據(jù)集上進(jìn)行野生動(dòng)物關(guān)鍵點(diǎn)檢測,從表2 各網(wǎng)絡(luò)的實(shí)驗(yàn)結(jié)果可以看出,本文方法的mAP 比AlphaPose、ResNet 和HRNet 的結(jié)果分別高了30.5 個(gè)百分點(diǎn)、14.7 個(gè)百分點(diǎn)和1 個(gè)百分點(diǎn)。實(shí)驗(yàn)結(jié)果表明,本文所提出的方法有效地提升了野生動(dòng)物關(guān)鍵點(diǎn)檢測的準(zhǔn)確度。
表2 各網(wǎng)絡(luò)的實(shí)驗(yàn)結(jié)果
為測試本文方法中設(shè)計(jì)的模塊對模型性能的貢獻(xiàn),進(jìn)行了消融實(shí)驗(yàn),表3 顯示了在ATRW 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果。從結(jié)果可以看出,本文整體網(wǎng)絡(luò)相較于HRNet 有1 個(gè)百分點(diǎn)的性能提升。進(jìn)行消融實(shí)驗(yàn),加入 Trans-former 模型后,mAP 相對于HRNet 提高了0.5個(gè)百分點(diǎn),在此基礎(chǔ)上,分別使用改進(jìn)的BasicBlock和具有空間注意力的融合模塊,mAP 分別又得到0.3個(gè)百分點(diǎn)的提高。實(shí)驗(yàn)結(jié)果證明了所提方法的有效性。
表3 消融實(shí)驗(yàn)結(jié)果
在ATRW 數(shù)據(jù)集中選取了4 張圖片的測試結(jié)果進(jìn)行可視化展示,如圖7 所示,圖中不同顏色的點(diǎn)和連線分別表示東北虎的關(guān)鍵點(diǎn)和關(guān)鍵點(diǎn)連線。從圖中可以看出,本文方法在野生動(dòng)物的關(guān)鍵點(diǎn)檢測任務(wù)中有較好的表現(xiàn),對于某些有遮擋的關(guān)鍵點(diǎn)也能正確識別。
本文以CNN 作為基礎(chǔ)框架,首次把Transformer模型應(yīng)用在野生動(dòng)物關(guān)鍵點(diǎn)檢測的任務(wù)中,同時(shí)設(shè)計(jì)了引入SGE 注意力機(jī)制的BasicBlock 和引入空間注意力機(jī)制的特征融合模塊。在ATRW 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,改進(jìn)的BasicBlock 在提取特征時(shí)能夠改善所提特征的空間分布,提取到更有效的特征;設(shè)計(jì)的多分辨率表征融合模塊在不同分辨率表征融合之前,能夠提取更值得關(guān)注的特征信息,獲得更好的融合效果;Transformer 模型能夠捕捉關(guān)鍵點(diǎn)之間的長距離依賴關(guān)系,能夠充分地利用全局信息和局部信息,從而使預(yù)測結(jié)果更準(zhǔn)確。