王禹涵,張凱兵,蔣睿濤,蘇文濤
(1.西安工程大學(xué) 電子信息學(xué)院,陜西 西安 710048;2.西安工程大學(xué) 計算機(jī)科學(xué)學(xué)院,陜西 西安 710048)
隨著電力需求的不斷增加,變電站的數(shù)量也在不斷增多,這為人們的日常生活和生產(chǎn)提供了有力的電力保障。然而在實(shí)際生活中,變電站的正常運(yùn)行容易受到鳥類影響而產(chǎn)生故障,嚴(yán)重威脅用電安全。例如,在惡劣天氣下,鳥巢被吹落到導(dǎo)線上,會引發(fā)線路短路故障;在機(jī)場飛機(jī)與飛鳥在空中相撞,直接導(dǎo)致嚴(yán)重的空難事故[1];在農(nóng)田和果園環(huán)境,鳥類啄食農(nóng)作物和水果,影響農(nóng)作物和水果的產(chǎn)量和質(zhì)量,造成嚴(yán)重的經(jīng)濟(jì)損失。因此,研究有效的鳥害防治措施對人們的生產(chǎn)生活非常重要。
為了預(yù)防鳥害發(fā)生,許多科研工作者提出了不同的檢測飛鳥的方法。例如,劉建平[2]提出了一種基于探鳥雷達(dá)的機(jī)場鳥類檢測方法,該方法通過雷達(dá)信息獲得飛鳥位置信息。張恩惠等[3]采用航模攜帶音頻設(shè)備、頻閃燈及攝像機(jī)等設(shè)備搭建空中復(fù)合驅(qū)鳥系統(tǒng)實(shí)現(xiàn)機(jī)場驅(qū)鳥。張磊等[4]設(shè)計了一種由太陽能電池板供電,對紅外探測到的飛鳥發(fā)射超聲波,并根據(jù)反饋改變超聲工作頻率實(shí)現(xiàn)智能變頻超聲驅(qū)鳥。盡管上述方法對驅(qū)趕飛鳥具有一定的效果,但雷達(dá)和超聲波等設(shè)備部署成本大,而且在動態(tài)場景下的不能完成小目標(biāo)鳥類的檢測和跟蹤,其性能還達(dá)不到實(shí)際應(yīng)用的要求。
如今在計算機(jī)視覺技術(shù)蓬勃發(fā)展的大背景下,基于深度學(xué)習(xí)的目標(biāo)檢測在實(shí)際應(yīng)用中具有明朗的應(yīng)用前景。有代表性有R-CNN[5]、Fast R-CNN[6]、SSD[7]、YOLOv2[8]、YOLOv3[9]和YOLOv4[10 ]等深度網(wǎng)絡(luò)。相對于傳統(tǒng)目標(biāo)檢測算法,基于深度學(xué)習(xí)的目標(biāo)檢測方法在檢測精度方面表現(xiàn)出明顯的優(yōu)勢。而且,隨著計算能力的提升,將深度學(xué)習(xí)方法應(yīng)用于實(shí)際場景變得更加可行。例如,鄒聰?shù)萚11]改進(jìn)了YOLOv3算法,將網(wǎng)絡(luò)中的特征圖上采樣后與第二個殘差塊拼接建立特征融合檢測層,有效提高了算法對小目標(biāo)的檢測精確率。陳詠秋等[12]提出了一種基于YOLOv3算法的輸電線路鳥類檢測方法,該方法根據(jù)檢測結(jié)果判斷是否啟動超聲波驅(qū)鳥器,飛鳥目標(biāo)識別具有較好的性能。盡管上述方法對飛鳥目標(biāo)的檢測表現(xiàn)出較好的性能,但不能同時進(jìn)行飛鳥目標(biāo)的檢測與跟蹤,達(dá)不到檢測與驅(qū)趕一體化驅(qū)鳥的應(yīng)用要求。
為了解決在傳統(tǒng)機(jī)器學(xué)習(xí)方法中存在的容易遭受光線、背景以及復(fù)雜環(huán)境等一系列噪聲的干擾,目標(biāo)識別效率低下且泛化能力差等問題,實(shí)現(xiàn)飛鳥目標(biāo)檢測與跟蹤一體化驅(qū)鳥,本文將YOLOv5深度網(wǎng)絡(luò)模型與DeepSORT[10-11]目標(biāo)跟蹤算法相結(jié)合運(yùn)用到飛鳥驅(qū)趕任務(wù)中,首先通過YOLOv5檢測出飛鳥目標(biāo),然后使用DeepSORT算法實(shí)現(xiàn)跟蹤檢測到的飛鳥目標(biāo)。該方法可適用于多種自然場景,包括農(nóng)田、變電站和機(jī)場等地,用于多類型飛鳥目標(biāo)的檢測與跟蹤。這一技術(shù)在自然環(huán)境下的飛鳥驅(qū)趕方面具有重要的應(yīng)用價值。
1.1.1 YOLO網(wǎng)絡(luò)結(jié)構(gòu)
YOLO全稱You Only Look Once,指僅通過瀏覽一次圖像就可以識別的感興趣對象在圖像中的類別和位置。作為一種非常流行的目標(biāo)檢測算法,該算法有許多不同的版本[7-9]。相比于YOLO網(wǎng)絡(luò),YOLOv2在結(jié)構(gòu)上由卷積層和池化層構(gòu)成,并且每個卷積層后都添加一個批處理歸一化層對數(shù)據(jù)進(jìn)行歸一化,提高了算法的計算效率。YOLOv3在主干網(wǎng)上采用Darknet-53,在YOLOv2的基礎(chǔ)上每隔兩層增加一組殘差模塊,在增加網(wǎng)絡(luò)深度的同時也抑制了梯度消失或梯度爆炸問題。YOLOv4在YOLOv3的基礎(chǔ)上使用Mish激活函數(shù)替換Leaky激活函數(shù),使用卷積層和殘差網(wǎng)絡(luò)構(gòu)成CSPDarknet-53代替YOLOv3中的殘差網(wǎng)絡(luò),增加一個由池化層和Concat構(gòu)成的SPP模塊。YOLOv4和YOLOv5均采用CSPDarknet-53網(wǎng)絡(luò)架構(gòu)作為主干網(wǎng)絡(luò),使用PANET(路徑聚合網(wǎng)絡(luò))和SPP(空間金字塔池化)作為Neck,使用YOLOv3的Head。不同之處在于YOLOv5中在隱含層中使用了Leaky ReLU激活函數(shù),并且在最后的檢測層使用Sigmoid激活函數(shù),而YOLOv4使用的是Mish激活函數(shù)。YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)圖
1.1.2 損失函數(shù)和檢測框回歸預(yù)測
本文使用YOLOv5網(wǎng)絡(luò)對自然場景中的飛鳥目標(biāo)進(jìn)行檢測。在網(wǎng)絡(luò)訓(xùn)練過程中,使用分類損失Lcls、定位損失Lloc和目標(biāo)檢測的置信度損失Lobj進(jìn)行模型參數(shù)的優(yōu)化,總體損失Loss表示為:
Loss=λ1Lcls+λ2Lloc+λ3Lobj
(1)
式中:λ1、λ2、λ3為平衡損失函數(shù)中各個項(xiàng)的系數(shù)。
分類損失和置信度損失采用BCE loss,定位損失采用CIoU loss,其中obj是指網(wǎng)絡(luò)預(yù)測的目標(biāo)邊界框與GT Box的CIoU,計算所有樣本的obj損失,而分類損失和定位損失只計算正樣本的損失。分類損失和定位損失函數(shù)的計算公式如下:
(2)
(3)
(4)
(5)
(6)
(7)
式中:λ4、λ5、λ6為三個尺度上目標(biāo)檢測置信度損失的權(quán)重系數(shù)。
本文使用K-means聚類算法對已標(biāo)注的數(shù)據(jù)集進(jìn)行了處理,以獲得9個先驗(yàn)框。在每個輸出層中,有3個先驗(yàn)框。在計算檢測框的長度、寬度和中心點(diǎn)坐標(biāo)位置時,采用了以下(8)~(13)的公式:
bx=(2.σ(tx)-0.5)+cx
(8)
by=(2.σ(ty)-0.5)+cy
(9)
bw=pw.(2.σ(tw))2
(10)
bh=ph.(2.σ(th))2
(11)
bx=σ(tx)+cx
(12)
by=σ(ty)+cy
(13)
式中:σ(tx)和σ(ty)是基于矩形框中心點(diǎn)左上角格點(diǎn)坐標(biāo)的偏移量,σ是Sigmoid激活函數(shù),pw和ph是先驗(yàn)框的寬和高,cx和cy表示中心點(diǎn)在x軸或y軸方向的整數(shù)單元格,檢測框BoundingBox在輸出網(wǎng)格中表示如圖2所示。
圖2 檢測框BoundingBox預(yù)測示意圖
圖3 部分鳥類圖像和標(biāo)注圖像
根據(jù)圖像變換前后的尺寸比,對計算結(jié)果進(jìn)行變換,以獲得原始圖像中鳥類目標(biāo)區(qū)域的中心點(diǎn)的坐標(biāo)以及檢測框的長度和寬度。設(shè)一個cx或cy包含m個像素,并設(shè)原始圖像尺寸與變換圖像尺寸的比率為k。根據(jù)公式(14) ~ (21),可以獲得原始圖像鳥目標(biāo)區(qū)域的中心點(diǎn)(x,y)的坐標(biāo)以及檢測框的長度w和寬度h,計算公式如下:
x=k·m·bx
(14)
y=k·m·by
(15)
w=k·m·bw
(16)
h=k·m·bh
(17)
x1=x-w/2
(18)
y1=y-h/2
(19)
x2=x+w/2
(20)
y2=y+h/2
(21)
根據(jù)公式(18)~(19)和(20)~(21)計算得到飛鳥目標(biāo)區(qū)域左上角和右下角坐標(biāo),實(shí)現(xiàn)飛鳥圖像區(qū)域的定位來進(jìn)行進(jìn)一步的飛鳥目標(biāo)跟蹤。
2.2.1 算法描述
本文采用DeepSORT算法實(shí)現(xiàn)飛鳥目標(biāo)的跟蹤,DeepSORT是經(jīng)典的多目標(biāo)跟蹤算法SORT[12]的優(yōu)化。
SORT算法是由昆士蘭科技大學(xué)的Alex Bewley發(fā)表在ICIP會議的一種目標(biāo)跟蹤算法。具體流程是通過目標(biāo)檢測算法得到Detection,然后通過卡爾曼濾波[13]預(yù)測、計算代價矩陣、匈牙利算法將預(yù)測后的軌跡和當(dāng)前幀中的Detection進(jìn)行IOU匹配再通過卡爾曼濾波進(jìn)行更新。而在DeepSORT中引入了級聯(lián)匹配,它不僅考慮框之間的位置關(guān)系,而且考慮了軌跡和檢測的目標(biāo)兩者之間的特征相似性,不僅能顯著減少ID切換的次數(shù),而且在實(shí)時目標(biāo)追蹤過程中能有效提高存在遮擋情況下的目標(biāo)追蹤效果。
2.2.2 級聯(lián)匹配
(22)
(23)
式中:dj代表第j個飛鳥目標(biāo)檢測框的位置,yi表示第i個跟蹤器對飛鳥目標(biāo)的預(yù)測位置,而Sj表示飛鳥目標(biāo)位置與平均跟蹤位置之間的協(xié)方差矩陣。我們通過計算當(dāng)前幀中第i個飛鳥檢測對象的特征向量與第j個歷史跟蹤飛鳥對象之間的余弦距離來評估它們之間的外觀相關(guān)性。如果余弦距離小于指定的閾值,則表明成功關(guān)聯(lián)了外觀信息,計算公式如下:
(24)
(25)
為了構(gòu)建關(guān)聯(lián)性,將兩個距離進(jìn)行加權(quán)表示如下:
(26)
式中:λ為超參數(shù),默認(rèn)為0。如果所構(gòu)建的加權(quán)指標(biāo)在門控矩陣范圍內(nèi),則進(jìn)行下一步的運(yùn)算,反之淘汰,表示為:
(27)
式中:bi,j為指示器,當(dāng)bi,j=1時,認(rèn)為跟蹤成功,當(dāng)bi,j=0時,認(rèn)為跟蹤失敗。
2.2.3 飛鳥跟蹤算法總結(jié)
本文中飛鳥跟蹤算法采用 DeepSORT 跟蹤算法實(shí)現(xiàn)對飛鳥的跟蹤檢測,其主要跟蹤過程為:
1) 提取原始幀,將由YOLOv5檢測的結(jié)果作為跟蹤算法的輸入;
2) 獲取,預(yù)測并更新飛鳥目標(biāo)位置,采用卡爾曼濾波預(yù)測當(dāng)前時刻的位置,涉及目標(biāo)位置發(fā)生變化后的關(guān)聯(lián)匹配[14]問題,再采用匈牙利匹配算法[15]可以判定當(dāng)前幀的飛鳥目標(biāo)是否與前一幀的目標(biāo)相同以此實(shí)現(xiàn)跟蹤的效果。
飛鳥部分?jǐn)?shù)據(jù)采集于西安工程大學(xué)臨潼校區(qū)和驪山鳥語林。采集時間為中午12:00—14:00,此時鳥類較為活躍,可以拍攝到不同姿態(tài)和不同種類的鳥類;另一部分?jǐn)?shù)據(jù)來源于網(wǎng)絡(luò),通過爬蟲爬取11000張鳥類圖片作為數(shù)據(jù)集的補(bǔ)充。在本文的研究中,我們從采集到的11684張飛鳥圖片中隨機(jī)選擇了2000張作為測試集,其余的圖片被用于接下來的模型訓(xùn)練。我們進(jìn)行了人工標(biāo)注,確保每個標(biāo)注矩形框內(nèi)只包含一個飛鳥目標(biāo)圖像。
首先加載預(yù)先訓(xùn)練好的網(wǎng)絡(luò)模型和權(quán)重,然后將輸入圖像的大小調(diào)整為608×608像素大小,經(jīng)過數(shù)據(jù)歸一化后送入網(wǎng)絡(luò)模型中進(jìn)行預(yù)測。為評估訓(xùn)練的網(wǎng)絡(luò)模型對飛鳥目標(biāo)的檢測效果,本文采用精確度與召回率兩項(xiàng)指標(biāo)評價飛鳥檢測算法的性能,準(zhǔn)確率P和召回率R的計算表達(dá)式為:
(28)
(29)
式中:TP表示識別結(jié)果正確的飛鳥目標(biāo)的數(shù)目,FP表示識別結(jié)果錯誤的飛鳥目標(biāo)的數(shù)目,FN表示未能識別的飛鳥目標(biāo)的數(shù)目。根據(jù)式(28) ~ (29),我們計算了YOLOv5網(wǎng)絡(luò)模型的準(zhǔn)確率和召回率,并利用P-R曲線對召回率進(jìn)行積分,得到了平均精度AP。接著,我們對5種不同的目標(biāo)檢測算法的檢測性能指標(biāo)進(jìn)行了比較,結(jié)果如表1所示。最后,我們對所有鳥類檢測的平均正確率進(jìn)行求和取并平均以得出mAP指標(biāo)值。
表1 5種不同目標(biāo)檢測算法的檢測性能對比
通過比較發(fā)現(xiàn),在幾乎相同的檢測時間條件下,YOLOv3、YOLOv4、Faster-RCNN以及本文采用的YOLOv5深度網(wǎng)絡(luò)模型都表現(xiàn)出了出色的性能。特別是YOLOv5網(wǎng)絡(luò)模型在鳥類識別方面取得了卓越的結(jié)果,其準(zhǔn)確率達(dá)到了97.6%,召回率達(dá)到了99.3%。這一性能明顯優(yōu)于其他4種目標(biāo)檢測網(wǎng)絡(luò)。
為了展示本文飛鳥目標(biāo)跟蹤方法的有效性,本文選擇4種不同場景不同類型的飛鳥目標(biāo)進(jìn)行檢測和跟蹤實(shí)驗(yàn),檢測跟蹤結(jié)果如圖4所示,每組視頻的第1幀,第5幀和第9幀通過疊加得出軌跡圖。通過跟蹤結(jié)果可以看出,本文方法對飛鳥的檢測跟蹤具有較好的結(jié)果,盡管視頻中的飛鳥在不同幀上存在明顯的姿態(tài)、尺度上變化,本文方法均能對其進(jìn)行有效地跟蹤。
圖4 鳥類檢測跟蹤結(jié)果
本文提出了一種基于YOLOv5深度網(wǎng)絡(luò)和DeepSORT算法的針對飛鳥目標(biāo)的檢測與跟蹤的方法。相比較于傳統(tǒng)的目標(biāo)檢測方法和YOLO的其他系列方法以及Faster-RCNN深度網(wǎng)絡(luò),本文所采用的YOLOv5深度網(wǎng)絡(luò)對飛鳥目標(biāo)具有更加敏感的精度。利用YOLOv5深度網(wǎng)絡(luò)實(shí)現(xiàn)目標(biāo)的檢測再使用DeepSORT目標(biāo)跟蹤算法實(shí)現(xiàn)快速的飛鳥目標(biāo)跟蹤。本文方法可以用于構(gòu)建變電站、機(jī)場、農(nóng)田等自然環(huán)境下的驅(qū)鳥裝置,為預(yù)防鳥害提供有效的技術(shù)支撐。