唐小敏,舒遠(yuǎn)仲,劉文祥,劉金梅
(南昌航空大學(xué) 信息工程學(xué)院,江西 南昌 330100)
隨著Hinton領(lǐng)導(dǎo)的小組采用深度學(xué)習(xí)模型AlexNet[1]在ImageNet圖像識(shí)別大賽中一舉奪冠,人工智能技術(shù)在目標(biāo)檢測(cè)中得到了廣泛使用,例如車輛目標(biāo)檢測(cè)[2]、人臉識(shí)別[3]、智能安防[4]、智能醫(yī)院等。近年來,很多學(xué)者針對(duì)自然環(huán)境為河道漂浮物識(shí)別帶來的負(fù)面影響提出了自己的研究成果。
左建軍等[5]采用背景減除分割出圖像中漂浮物區(qū)域,再利用BP算法進(jìn)行漂浮物特征訓(xùn)練并構(gòu)建漂浮物分類器對(duì)分割區(qū)域進(jìn)行漂浮物識(shí)別。祝典等[6]設(shè)計(jì)了一種水域漂浮物收集監(jiān)測(cè)系統(tǒng)。許靜波等[7]成功搭建了一套水面漂浮物檢測(cè)及估算系統(tǒng)。雷李義等[8]提出了一套基于深度學(xué)習(xí)的水面漂浮物目標(biāo)檢測(cè)方案。朱賀等[9]結(jié)合使用灰度閾值分割和河道輪廓識(shí)別方法實(shí)現(xiàn)對(duì)河道區(qū)域的準(zhǔn)確提取。利用河道輪廓形態(tài)進(jìn)行河道分割可以減少河岸上垃圾對(duì)檢測(cè)結(jié)果的影響,但是不能排除相似形態(tài)水體上的漂浮物對(duì)檢測(cè)結(jié)果造成影響。
文中首先對(duì)河道進(jìn)行分割提取,然后對(duì)已分割出的河道區(qū)域進(jìn)行漂浮物檢測(cè)?;?種特征提取網(wǎng)絡(luò)分別進(jìn)行Faster R-CNN[10]網(wǎng)絡(luò)模型和SSD[11]網(wǎng)絡(luò)模型的訓(xùn)練,對(duì)比分析這三種特征提取網(wǎng)絡(luò)的性能,選擇性能最優(yōu)的特征提取網(wǎng)絡(luò)進(jìn)行兩種模型的對(duì)比,經(jīng)過實(shí)驗(yàn)分析,選擇SSD網(wǎng)絡(luò)模型進(jìn)行漂浮物檢測(cè)效果最佳。
實(shí)驗(yàn)所需數(shù)據(jù)是利用無人機(jī)對(duì)3條河流分別進(jìn)行正射視頻采集而得,其中河流總長(zhǎng)5.6公里。為減小河岸垃圾對(duì)檢測(cè)結(jié)果的影響,利用傳統(tǒng)圖像處理技術(shù)先進(jìn)行河道檢測(cè)。
對(duì)影像進(jìn)行濾波處理提升河道整體灰度值并增強(qiáng)河道連通性,采用自適應(yīng)閾值化操作將濾波圖像二值化,使算法具有更好的魯棒性;為使河道區(qū)域與非河道區(qū)域分離,先對(duì)影像進(jìn)行形態(tài)學(xué)處理去除小的干擾塊和加大河道的連通性,最后對(duì)圖像進(jìn)行輪廓提取。經(jīng)過以上步驟,發(fā)現(xiàn)在河道旁出現(xiàn)水體或水域等客觀條件下,河流檢測(cè)不準(zhǔn)確。為解決此問題,根據(jù)視頻中相鄰幀之間河道相似且河道在影像中間的特點(diǎn),提出當(dāng)檢測(cè)區(qū)域中心線偏離圖像中心線一定閾值時(shí),取圖像寬的0.1倍,使用上次河道中心點(diǎn)對(duì)影像進(jìn)行糾正的方法最終獲得河流區(qū)域圖像準(zhǔn)確率為91.4%。
對(duì)以上獲取的河流區(qū)域數(shù)據(jù)進(jìn)行漂浮物識(shí)別檢測(cè)。由于沒有漂浮物檢測(cè)公共數(shù)據(jù)集,則需制作漂浮物數(shù)據(jù)集,其制作技術(shù)路線如圖1所示。河流視頻幀率為50 fps,無人機(jī)飛行速率保持在15 m/s,飛行高度保持在55 m,對(duì)河流視頻每隔90幀保存圖像,共計(jì)7 800張。去除無人機(jī)起飛、降落、某些河流區(qū)域被遮擋以及錯(cuò)誤識(shí)別等原因?qū)е卤4鎴D像中不包含河流圖像,最終可用于標(biāo)注影像2 400張,利用labelImage對(duì)影像進(jìn)行漂浮物標(biāo)識(shí)并保存標(biāo)注xml數(shù)據(jù)集,將標(biāo)注完成圖像按8∶2進(jìn)行訓(xùn)練集與驗(yàn)證集劃分,數(shù)量分別為1 920和480張。
圖1 河流漂浮物數(shù)據(jù)集制作技術(shù)路線圖
由于數(shù)據(jù)量過小,同時(shí)為了不增加數(shù)據(jù)標(biāo)注時(shí)的工作量以及訓(xùn)練時(shí)對(duì)機(jī)器的內(nèi)存消耗,對(duì)數(shù)據(jù)集使用軟數(shù)據(jù)增強(qiáng)技術(shù)。該方法是一種在數(shù)據(jù)訓(xùn)練過程中對(duì)每批次的數(shù)據(jù)進(jìn)行數(shù)據(jù)增強(qiáng),再進(jìn)行數(shù)據(jù)訓(xùn)練的方法。之后將對(duì)每批次訓(xùn)練數(shù)據(jù)進(jìn)行隨機(jī)翻轉(zhuǎn)、隨機(jī)顏色抖動(dòng)和隨機(jī)裁剪,使每次訓(xùn)練的數(shù)據(jù)不相同從而達(dá)到數(shù)據(jù)軟擴(kuò)增效果,該方法在一定程度上提高了模型泛化性和魯棒性。網(wǎng)絡(luò)訓(xùn)練圖像大小為512*512分辨率,并將影像R,G和B波段分別減去123.68,116.78和103.9進(jìn)行歸一化[12],使模型訓(xùn)練更容易。
以河流影像漂浮物檢測(cè)為研究目標(biāo),考慮到實(shí)時(shí)性,將使用單步檢測(cè)SSD算法作為漂浮物檢測(cè)核心算法。SSD算法繼承了Faster RCNN和YOLO[13-14]的不同優(yōu)點(diǎn),一方面,SSD采用不同尺寸和長(zhǎng)寬比的先驗(yàn)框(Faster RCNN稱為Anchor),在一定程度上克服了目標(biāo)檢測(cè)尺寸多變問題,同時(shí)使算法訓(xùn)練簡(jiǎn)易化,另一方面,SSD采用YOLO一步檢測(cè)思想,其對(duì)特征圖直接利用CNN進(jìn)行回歸預(yù)測(cè),這與YOLO將特征圖進(jìn)行向量化再全連接后進(jìn)行回歸預(yù)測(cè)不同,此方法可以充分利用特征圖的空間結(jié)構(gòu)信息來確保預(yù)測(cè)分類準(zhǔn)確性。
SSD深度網(wǎng)絡(luò)由前端特征提取網(wǎng)絡(luò)和后端多尺度特征檢測(cè)網(wǎng)絡(luò)組成,前端特征提取網(wǎng)絡(luò)以VGG16卷積神經(jīng)網(wǎng)絡(luò)為例生成特征圖,并與多尺度特征檢測(cè)網(wǎng)絡(luò)共享卷積特征。該特征提取網(wǎng)絡(luò)包括13個(gè)3×3卷積層和5個(gè)最大池化層(Max pooling),每次卷積后均使用ReLU激活函數(shù)進(jìn)行激活,每層組成形式均為卷積層(convolution)+激活函數(shù)(ReLU)+池化層(Max pooling)的組合方式,此沿用VGG16卷積網(wǎng)絡(luò),但該特征提取網(wǎng)絡(luò)與VGG16網(wǎng)絡(luò)略微有所差異,其將VGG16網(wǎng)絡(luò)的全連接層fc6和fc7分別替換成擴(kuò)張率為6的3×3空洞卷積層conv6和1×1的卷積層conv7。為了不減小特征圖維度,將原來池化層pool5的卷積核由2×2、步數(shù)2變?yōu)?×3、步數(shù)1,同時(shí)為了配合后端多尺度特征檢測(cè)網(wǎng)絡(luò),其移除了VGG16的dropout層和fc8層。
后端多尺度特征檢測(cè)網(wǎng)絡(luò)共提取了6個(gè)網(wǎng)絡(luò)特征圖用于漂浮物的檢測(cè),第一個(gè)特征圖取自Conv4_3層,其大小為38×38,由于第一特征圖靠前,為減小與后面檢測(cè)層的差異,第一特征圖后增加L2 Normalization層,其僅對(duì)每個(gè)像素點(diǎn)在通道維度上進(jìn)行歸一化,將歸一化特征圖與一個(gè)可訓(xùn)練縮放變量gamma相乘。后面5個(gè)特征圖由于靠后無需做過多變換,其分別取自Conv7層、Conv8_2層、Conv9_2層、Conv10_2層、Conv11_2層,大小分別為19×19、10×10、5×5、3×3、1×1。
對(duì)于不同特征圖設(shè)置先驗(yàn)框數(shù)目不同,先驗(yàn)框的設(shè)置主要體現(xiàn)在尺寸和長(zhǎng)寬比上,先驗(yàn)框尺寸遵循線性遞增規(guī)則,遞增公式為:
(1)
其中,m為特征圖個(gè)數(shù),文中為5(除第一特征圖外,其單獨(dú)處理),sk表示先驗(yàn)框大小與圖片大小的尺度比例,smax和smin分別表示該比例的最大值和最小值,文中取0.9和0.2。第一特征圖先驗(yàn)框尺度比例為smin/2,對(duì)于后面5個(gè)特征圖按照式(1)線性增加,然后將這些比例與圖片大小相乘得各個(gè)尺度的特征圖先驗(yàn)框。先驗(yàn)框長(zhǎng)寬比一般為αr∈{1,2,3,1/2,1/3,1},在實(shí)際中Conv4_3、Conv10_2和Conv11_2特征圖不使用長(zhǎng)寬比為{3,1/3}的先驗(yàn)框,因此總共得到8 732個(gè)先驗(yàn)邊界框。
網(wǎng)絡(luò)損失函數(shù)計(jì)算公式如下:
(2)
式(2)中位置誤差Lloc定義如下:
(3)
其中,d表示默認(rèn)邊界框,中心為(cx,cy),寬度為w,高度為h。
式(2)置信度誤差Lconf定義如下:
(4)
為評(píng)估模型對(duì)河流漂浮物識(shí)別的有效性,采用recall(召回率)、precision(精確率)以及引入F1值[15]為調(diào)和平均值對(duì)模型進(jìn)行評(píng)估。假設(shè)模型正確識(shí)別漂浮物的數(shù)量為TP(真正例),模型錯(cuò)將其他類識(shí)別為漂浮物的數(shù)量為FP(假正例);模型識(shí)別非漂浮物的正確數(shù)量為TN(真反例),模型錯(cuò)將漂浮物識(shí)別成其他類別數(shù)量為FN(假反例)。
P是在識(shí)別漂浮物中真正例所占的比例,則它表示為:
(5)
R表示正確識(shí)別出的漂浮物與存在的漂浮物數(shù)量的比值,其表示為:
(6)
F1分?jǐn)?shù)認(rèn)為召回率和精確率同等重要,可表示為:
(7)
實(shí)驗(yàn)是在Ubuntu16.04LTS操作系統(tǒng),處理器是Intel? CoreTM i7-6800k CPU @ 3.4 GHz×12(64 GB運(yùn)行內(nèi)存)和顯卡是NVIDIA GeForce GTX 1080 Ti GPU(11 GB 運(yùn)行顯存)的電腦設(shè)備上進(jìn)行,深度學(xué)習(xí)框架為Tensorflow1.8。
文中采用的是端到端識(shí)別,并使用coco的預(yù)訓(xùn)練模型進(jìn)行參數(shù)遷移初始化設(shè)置。模型優(yōu)化器使用Momentum算法,初始學(xué)習(xí)率為3e-4,動(dòng)量因子為0.9,最大迭代步數(shù)為100 000步。
為加速網(wǎng)絡(luò)迭代速度,當(dāng)模型迭代達(dá)40 000步時(shí),學(xué)習(xí)率調(diào)整為3e-5,迭代到80 000步時(shí),學(xué)習(xí)率進(jìn)一步調(diào)整為3e-6。訓(xùn)練結(jié)束后保存好訓(xùn)練模型,并使用測(cè)試河流視頻對(duì)模型進(jìn)一步測(cè)試,測(cè)試保留類別置信度大于0.7的河流漂浮物,最后在測(cè)試河流視頻上保存輸出結(jié)果。
實(shí)驗(yàn)將在Faster R-CNN深度網(wǎng)絡(luò)模型和SSD網(wǎng)絡(luò)模型上,分別使用深度網(wǎng)絡(luò)ResNet-50、ResNet-101和Inception-v1作為骨干網(wǎng)。隨著訓(xùn)練過程中網(wǎng)絡(luò)迭代次數(shù)的增加,網(wǎng)絡(luò)損失都趨于穩(wěn)定,隨后分別比較了兩種深度學(xué)習(xí)目標(biāo)檢測(cè)模型各自基于不同特征提取網(wǎng)絡(luò)時(shí)整體損失的下降情況,具體對(duì)比情況如圖2和圖3所示。
圖2 SSD模型整體損失對(duì)比
圖3 Faster-RCNN模型整體損失對(duì)比
圖2顯示了3種特征提取網(wǎng)絡(luò)在SSD模型上的損失情況,顯然基于ResNet-101特征提取網(wǎng)絡(luò)的SSD模型損失下降最快且網(wǎng)絡(luò)收斂最為穩(wěn)定,圖中可以明顯看出隨著特征提取網(wǎng)絡(luò)深度增加,SSD模型的整體損失下降越大,模型收斂越穩(wěn)定。圖3顯示了3種特征提取網(wǎng)絡(luò)在Faster R-CNN模型上的損失情況,基于ResNet-101特征提取網(wǎng)絡(luò)的Faster R-CNN收斂速度較快,明顯優(yōu)于其他2種模型,而基于ResNet-50和Inception-v1特征提取網(wǎng)絡(luò)的Faster R-CNN模型都出現(xiàn)了不同程度的震蕩,且基于Inception-v1特征提取網(wǎng)絡(luò)的Faster R-CNN模型收斂情況相較于其他兩種模型收斂程度較差。
為了選出優(yōu)秀的深度網(wǎng)絡(luò)模型與特征提取網(wǎng)絡(luò),根據(jù)各模型總體損失下降函數(shù)對(duì)比結(jié)果為2種模型都選擇了ResNet-101作為模型特征提取網(wǎng)絡(luò)并做了進(jìn)一步對(duì)比。2種模型隨迭代次數(shù)增加模型整體損失下降情況對(duì)比如圖4所示。圖4表明以ResNet-101為特征提取網(wǎng)絡(luò)的SSD模型,隨著迭代次數(shù)增加整體損失要優(yōu)于基于ResNet-101特征提取網(wǎng)絡(luò)的Faster R-CNN模型,雖然Faster R-CNN最后趨于穩(wěn)定,但SSD模型最終損失趨于更小的數(shù)值,這表明基于ResNet-101特征提取網(wǎng)絡(luò)的SSD模型能夠更好地?cái)M合河流漂浮物數(shù)據(jù)。
圖4 SSD與Faster R-CNN模型整體損失對(duì)比
根據(jù)模型評(píng)價(jià)指標(biāo),文中對(duì)以上不同特征提取網(wǎng)絡(luò)的SSD和Faster R-CNN模型針對(duì)精確率和召回率兩項(xiàng)指標(biāo)以及F1值和單張圖像的檢測(cè)時(shí)間做出了詳細(xì)對(duì)比,對(duì)比結(jié)果如表1所示。表1統(tǒng)計(jì)結(jié)果為訓(xùn)練好的不同特征提取網(wǎng)絡(luò)的SSD模型和Faster R-CNN模型分別對(duì)河流漂浮物驗(yàn)證集進(jìn)行漂浮物識(shí)別并計(jì)算各指標(biāo)值。由表1對(duì)比可得,隨著特征提取網(wǎng)絡(luò)深度增加,基于2種模型的河流漂浮物識(shí)別精確率在不斷增加,模型性能不斷提升。通過對(duì)比可知,基于ResNet-101特征提取網(wǎng)絡(luò)的SSD和Faster R-CNN深度網(wǎng)絡(luò)模型都表現(xiàn)出優(yōu)良的性能,F(xiàn)aster R-CNN深度網(wǎng)絡(luò)模型河流漂浮物識(shí)別精確率達(dá)85.05%,SSD深度網(wǎng)絡(luò)模型河流漂浮物識(shí)別精確率達(dá)84.47%略低于前者,但SSD模型整體性能上明顯優(yōu)于Faster R-CNN模型,SSD模型召回率達(dá)到61.67%,高出Faster R-CNN模型2.84%,且SSD模型F1值達(dá)到71.29%,高于Faster R-CNN模型F1值69.55%,同時(shí)SSD模型在單張圖像的檢測(cè)時(shí)間上表現(xiàn)出明顯優(yōu)勢(shì)。綜上,基于ResNet-101特征提取網(wǎng)絡(luò)的SSD深度網(wǎng)絡(luò)模型在漂浮物識(shí)別上更具優(yōu)勢(shì),符合文中對(duì)視頻中河流漂浮識(shí)別的目標(biāo)。
表1 不同特征提取網(wǎng)絡(luò)的SSD和
根據(jù)訓(xùn)練結(jié)果分析,實(shí)驗(yàn)使用基于ResNet-101特征提取網(wǎng)絡(luò)的SSD深度網(wǎng)絡(luò)模型,進(jìn)行漂浮物多尺度預(yù)測(cè)及位置回歸,此方法有效提高了網(wǎng)絡(luò)對(duì)不同尺度漂浮物的識(shí)別精度,具體漂浮物識(shí)別如圖5所示。
圖5 河流漂浮物識(shí)別結(jié)果
根據(jù)上述網(wǎng)絡(luò)模型分析可知, Faster R-CNN網(wǎng)絡(luò)模型在河流漂浮物識(shí)別精度上相較于SSD深度網(wǎng)絡(luò)模型提高了0.58%,但Faster R-CNN召回率減少了2.84%,F(xiàn)1值減少了1.74%。導(dǎo)致以上差距的原因如下:第一,F(xiàn)aster R-CNN深度網(wǎng)絡(luò)模型將特征提取網(wǎng)絡(luò)提取的特征經(jīng)過區(qū)域建議網(wǎng)絡(luò),生成k個(gè)區(qū)域建議框后送入RoI子網(wǎng)以準(zhǔn)確提取漂浮物的感興趣區(qū)域,此過程與SSD深度網(wǎng)絡(luò)模型采用將整個(gè)檢測(cè)網(wǎng)絡(luò)作為單個(gè)神經(jīng)網(wǎng)絡(luò)進(jìn)行漂浮物識(shí)別相比非常耗時(shí),所以Faster R-CNN模型檢測(cè)速度較慢。第二,由于無人機(jī)對(duì)河流進(jìn)行拍攝時(shí)飛行高度較高,這將導(dǎo)致河流漂浮物可視尺度非常小,而SSD深度網(wǎng)絡(luò)模型采用多尺度特征提取,分辨率較大的特征圖將被用于漂浮物尺度較小的目標(biāo)識(shí)別,與Faster R-CNN只使用單一尺度特征圖提取特征進(jìn)行目標(biāo)識(shí)別相比,F(xiàn)aster R-CNN很難將所有較小漂浮物識(shí)別出,進(jìn)而導(dǎo)致Faster R-CNN整體性能低于SSD深度網(wǎng)絡(luò)模型。
提出了一種基于SSD深度學(xué)習(xí)網(wǎng)絡(luò)的漂浮物檢測(cè)研究方法。首先根據(jù)河道水面反光及水體顏色相近等特性,采用OpenCV圖像處理技術(shù)對(duì)河流區(qū)域進(jìn)行分割提取。然后在此基礎(chǔ)上進(jìn)行漂浮物檢測(cè)研究,漂浮物識(shí)別算法在Tensorflow框架的基礎(chǔ)上,搭建了基于ResNet-101特征提取網(wǎng)絡(luò)的深度神經(jīng)網(wǎng)絡(luò)SSD模型,通過利用COCO數(shù)據(jù)集預(yù)訓(xùn)練模型進(jìn)行網(wǎng)絡(luò)遷移訓(xùn)練。同時(shí)介紹了從原始視頻數(shù)據(jù)到漂浮物數(shù)據(jù)集的制作全過程,并對(duì)數(shù)據(jù)集進(jìn)行軟數(shù)據(jù)增強(qiáng),有效緩解了數(shù)據(jù)量不足的問題。實(shí)驗(yàn)分析表明,隨著特征提取網(wǎng)絡(luò)的加深,兩種深度網(wǎng)絡(luò)模型在性能上都有不同程度的提升,而基于ResNet-101特征提取網(wǎng)絡(luò)的SSD模型相較于其他三種特征提取網(wǎng)絡(luò)具有明顯優(yōu)勢(shì),并能夠高效地對(duì)漂浮物進(jìn)行識(shí)別,這體現(xiàn)出深度學(xué)習(xí)方法在目標(biāo)識(shí)別領(lǐng)域的強(qiáng)大之處。目前,該算法已應(yīng)用于無人機(jī)機(jī)載端的河流巡查中,通過無人機(jī)實(shí)時(shí)拍攝河流視頻,已做到對(duì)實(shí)時(shí)視頻進(jìn)行邊緣計(jì)算分析河流中漂浮物數(shù)目,然后實(shí)時(shí)發(fā)送至服務(wù)器進(jìn)行河流污染度評(píng)分。