沈軍宇,李林燕,戴永良,胡伏原+
(1.蘇州科技大學(xué) 電子與信息工程學(xué)院,江蘇 蘇州 215009;2.蘇州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院 信息技術(shù)學(xué)院, 江蘇 蘇州 215009;3.昆山市農(nóng)業(yè)信息中心,江蘇 蘇州 215300)
海洋和湖泊魚類的檢測對于漁業(yè)監(jiān)測管理有極大的應(yīng)用價(jià)值,隨著圖像采集與處理算法的快速發(fā)展,魚群圖像檢測引起了世界范圍內(nèi)組織機(jī)構(gòu)與學(xué)者的關(guān)注與研究[1,2]。然而,由于水下背景較暗、光線分布不均勻?qū)е聢D像對比度較低,并且圖像中魚群目標(biāo)尺寸不一致,雙目圖像拼接容易出現(xiàn)偽影,這導(dǎo)致魚群檢測精度較低。
傳統(tǒng)雙目圖像拼接方法主要依據(jù)改進(jìn)的SIFT算法[3]和Harris算法[4]等特征提取算法獲得雙目圖像的特征點(diǎn),實(shí)現(xiàn)圖像的匹配和拼接。Cheung等[5]結(jié)合像素級匹配誤差與特征級匹配誤差,優(yōu)化圖像匹配與拼接精度。Li等[6]提出評估拼接縫過渡效果的能量最小化方法,分配不同區(qū)域SIFT特征的權(quán)重值,優(yōu)化拼接縫像素過渡更加平滑。然而,上述點(diǎn)特征匹配算法對水下低對比度圖像效果并不理想。同時(shí),水下暗流容易引起雙目相機(jī)設(shè)備之間非剛性擺動(dòng),從而改變雙目圖像的映射關(guān)系。因此,需要實(shí)時(shí)對圖像進(jìn)行配準(zhǔn)和檢測[7]。
卷積神經(jīng)網(wǎng)絡(luò)在雙目圖像特征匹配與拼接[8-10]和目標(biāo)分類與檢測[11-14]方面均取得了較大地進(jìn)展。Han等[8]針對雙目圖像特征突出的區(qū)域提出一種卷積神經(jīng)匹配網(wǎng)絡(luò),利用結(jié)構(gòu)完全相同的兩個(gè)卷積神經(jīng)網(wǎng)絡(luò)模型提取較明顯的特征實(shí)現(xiàn)圖像匹配。Tian等[9]和Herrmann等[10]提出圖像重疊區(qū)域特征匹配應(yīng)占較大比重,增加該比重可以有效地避免目標(biāo)拼接偽影的出現(xiàn)。Zanfir等[15]優(yōu)化卷積神經(jīng)網(wǎng)絡(luò)的特征提取與表達(dá),將每個(gè)重疊區(qū)域的深度特征用關(guān)聯(lián)矩陣表示,并采用冪迭代分解關(guān)聯(lián)矩陣獲取匹配相似度極值,優(yōu)化圖像相似部分特征的匹配。Cheng等[16]利用特征的匹配度降序搜索,獲取每層特征匹配的極大值和極小值,避免特征的錯(cuò)誤匹配,提高特征匹配模型匹配精度。
然而,上述基于卷積神經(jīng)網(wǎng)絡(luò)的特征匹配算法存在兩個(gè)問題:忽視各卷積層級上下文聯(lián)系,容易丟失大量低層級信息,低對比度水下圖像的特征匹配精度低;將雙目圖像特征匹配與目標(biāo)檢測相互獨(dú)立,特征提取需重復(fù)的卷積運(yùn)算,造成極大的空間存儲(chǔ)與計(jì)算開銷,如圖1(a)所示。因此,本文利用相同結(jié)構(gòu)的兩個(gè)SSD[11]模型同時(shí)實(shí)現(xiàn)目標(biāo)檢測與特征匹配,如圖1(b)所示。依據(jù)卷積神經(jīng)網(wǎng)絡(luò)感受野特性,建立匹配特征反向傳播機(jī)制,增強(qiáng)低層特征匹配精度,減少拼接圖像出現(xiàn)的偽影。同時(shí)利用多層特征層構(gòu)建特征金字塔模型,通過特征融合增強(qiáng)低層特征層語義信息,提升小目標(biāo)檢測精度。
圖1 雙目圖像拼接融合與目標(biāo)檢測流程
給定圖像集對Tl={tl1,tl2,…,tlN} 和Tr={tr1,tr2,…,trN}, 圖像tli和tri對應(yīng)的目標(biāo)標(biāo)注為gi={x,y,w,h},gi∈G={g1,g2,…,gN}, N為樣本數(shù)量。x,y,w,h分別代表著圖像中目標(biāo)框的中心坐標(biāo)、寬度和高度,G代表所有標(biāo)注的樣本信息。模型訓(xùn)練包含候選區(qū)域特征提取以及分類預(yù)測兩個(gè)過程,即
C=Pr(Classi|Object)
(1)
其中,C代表目標(biāo)預(yù)測種類。將兩個(gè)同層卷積特征的匹配看成是相關(guān)濾波器w最優(yōu)化求解的過程,即
(2)
其中,特征向量v的每個(gè)樣本vm,n對應(yīng)一個(gè)高斯標(biāo)簽ym,n,λ是正則項(xiàng)系數(shù),且λ≥0。 高斯標(biāo)簽通過式(3)獲取
(3)
其中,σ表示高斯卷積核寬度,M,N分別表示第L層特征層的寬度和高度。
為了增強(qiáng)低層特征層語義信息,在SSD的特征層上構(gòu)建特征金字塔模型,先將同層級卷積特征融合增強(qiáng),再利用自上而下的上采樣實(shí)現(xiàn)高層特征與低層特征的融合。
首先,在網(wǎng)絡(luò)前饋卷積運(yùn)算時(shí),利用相同層級內(nèi)的多個(gè)卷積層增強(qiáng)特征圖。假設(shè)卷積特征層中任意一個(gè)隱藏層表示為ConvN,ConvN-1為該隱藏層級特征輸出層,其經(jīng)過卷積與池化后得到ConvN-2,再將ConvN-1與ConvN-2進(jìn)行卷積融合得到ConvN-3,最后將ConvN-x(x=1,2,3)融合,并經(jīng)過1×1的降維卷積核消除多次融合的堆疊效應(yīng),實(shí)現(xiàn)特征層級內(nèi)的信息增強(qiáng),如圖2所示。
圖2 特征層級內(nèi)的卷積層融合
本文將相同結(jié)構(gòu)的兩個(gè)改進(jìn)SSD網(wǎng)絡(luò)作為主干網(wǎng)絡(luò),因第七層及更高層特征維度低于10×10,無法包含充分的特征信息,反向傳播過程中卷積層插值誤差過大[14],并且第四層以上特征圖輸出目標(biāo)候選框。因此,本文在卷積神經(jīng)網(wǎng)絡(luò)的第四到第七層特征層間增加同層橫向連接與異層殘差處理構(gòu)建特征金字塔,即利用雙線性插值算法將第七層特征兩倍上采樣,然后與第六層特征層進(jìn)行疊加獲得新的第六層特征,最后額外增加一個(gè)1×1的卷積處理降低特征維度。以此類推直到獲取第四層新特征,最后通過3×3的卷積操作消除多次特征混疊效應(yīng),如圖3所示。在新的特征層上采用錨點(diǎn)機(jī)制[11],提取目標(biāo)候選框并輸出到全連接層,根據(jù)式(1)預(yù)測目標(biāo)分類信息,最后通過非極大值抑制(non-maximum suppression,NMS)剔除重疊的目標(biāo)候選框。
圖3 基于SSD的特征融合金字塔
目標(biāo)檢測網(wǎng)絡(luò)的損失函數(shù)計(jì)算參見文獻(xiàn)[11],包含目標(biāo)候選區(qū)域的分類損失 (Lconf) 和邊框回歸損失 (Lloc)
(4)
由于第七層特征圖維度小,特征細(xì)節(jié)信息缺失,不利于特征匹配,故本文在第四到第六層特征層間構(gòu)建特征匹配雙塔模型,在同層級特征圖間進(jìn)行特征匹配操作,然后通過感受野特性,限制匹配特征在低層特征圖上的搜索空間,降低特征圖遍歷的時(shí)間復(fù)雜度,如圖4所示。
圖4 特征匹配雙塔模型
利用相關(guān)濾波匹配特征的方法參見文獻(xiàn)[18] 本文首先計(jì)算第六層特征匹配結(jié)果,尋找特征相關(guān)性最高的區(qū)域,即通過傅里葉變換獲取相關(guān)濾波器w的最優(yōu)解
(5)
(6)
(m,n) 為當(dāng)前層特征點(diǎn)坐標(biāo),r為感受野覆蓋范圍,可根據(jù)上采樣縮放比例獲取。對于第五層搜索區(qū)域內(nèi)的點(diǎn)進(jìn)行遍歷,獲取低層級匹配特征。重復(fù)該搜索過程,可以快速得到第四層匹配特征。
最后,再次利用感受野映射第四層匹配特征到原圖像獲取像素的匹配信息,采用算術(shù)平均值的方式得到圖像中同名點(diǎn)對的融合像素值,從而實(shí)現(xiàn)雙目圖像融合。
本文采用美國國家海洋和大氣管理局公開的深海魚群數(shù)據(jù)集Labeled Fishes in the Wild[1]作為魚群拼接與檢測效果的測試數(shù)據(jù),包含以下內(nèi)容:
(1)訓(xùn)練集:訓(xùn)練數(shù)據(jù)采用混合數(shù)據(jù)集,一部分來自PASCAL VOC2007的訓(xùn)練與測試集,含20個(gè)種類共9963幅圖像;另一部分來自Labeled Fishes in the Wild訓(xùn)練集,含340幅低對比度水下魚群圖像。
(2)測試集:包含3 min左右深海環(huán)境下魚群活動(dòng)的視頻文件,如圖5所示。
圖5 Labeled Fishes in the Wild數(shù)據(jù)集
算法采用層數(shù)較少、速度快的SSD300模型作為基礎(chǔ)模型,基于開源的Tensorflow深度學(xué)習(xí)框架實(shí)現(xiàn)。采用隨機(jī)旋轉(zhuǎn)與裁剪方法對數(shù)據(jù)預(yù)處理,隨機(jī)選取0.1~1的采樣比例對原始圖像進(jìn)行縮放,并隨機(jī)選擇0.5~2的寬高比例對圖像進(jìn)行裁剪。當(dāng)人工標(biāo)注的標(biāo)準(zhǔn)目標(biāo)框中心位于采樣的局部圖像中時(shí),保留重疊部分。最后,縮放所有重疊圖像到指定的大小,并且隨機(jī)選擇0~0.5度進(jìn)行水平翻轉(zhuǎn)(horizontally flipped)。通過上述步驟可以獲取約5倍原始數(shù)據(jù)量的訓(xùn)練樣本,在小樣本數(shù)量的情況下,可較為有效地緩解訓(xùn)練過擬合的情況。
訓(xùn)練在一塊Nvidia GTX1080顯卡上運(yùn)行,采用隨機(jī)梯度下降法優(yōu)化損失函數(shù)。設(shè)mini-batch大小為32。模型下降的動(dòng)量(momentum)設(shè)為0.9,權(quán)重衰減(weight decay) 設(shè)為0.0005。利用預(yù)訓(xùn)練模型以0.001的學(xué)習(xí)率(learning rate)訓(xùn)練改進(jìn)的模型10000個(gè)iteration,隨后在Labeled Fishes in the Wild數(shù)據(jù)集上以學(xué)習(xí)率為0.0001訓(xùn)練2000個(gè)iteration,使得平均損失小于0.5。
2.3.1 雙目圖像拼接效果
VGG16網(wǎng)絡(luò)模型作為SSD300的主干網(wǎng)絡(luò),本文引入該網(wǎng)絡(luò)作為圖像特征匹配的對比實(shí)驗(yàn),利用相關(guān)濾波關(guān)聯(lián)雙目圖像相同層級特征點(diǎn)的匹配度(簡稱VGG-CF),從而完成圖像之間配準(zhǔn)與拼接。由于該方法僅僅用于實(shí)現(xiàn)圖像拼接,因此拼接的結(jié)果需后續(xù)的目標(biāo)檢測處理。本文提出的基于改進(jìn)SSD網(wǎng)絡(luò)模型的拼接方法記為SSD-CF。實(shí)驗(yàn)采用特征點(diǎn)間的均方根誤差(RMSE) 評估拼接效果
(7)
其中, (xl,yl) 表示左圖像特征點(diǎn)坐標(biāo), (xr,yr) 為右圖像通過變換得到的同名特征點(diǎn)坐標(biāo)。在200對測試圖像進(jìn)行特征匹配驗(yàn)證,VGG-CF算法共提取2468對特征點(diǎn)對,誤匹配率為3.2%;SSD-CF算法共提取3012對特征點(diǎn)對,誤匹配率為2.4%,特征點(diǎn)誤配率降低0.8%,特征點(diǎn)的錯(cuò)誤匹配容易造成拼接偽影的產(chǎn)生。如圖6所示,對于特征較為明顯的魚群目標(biāo),基于SSD-CF算法的圖像融合結(jié)果更加清晰。
圖6 雙目圖像拼接效果
剔除錯(cuò)誤匹配點(diǎn)位,根據(jù)式(7)計(jì)算得到圖像平均配準(zhǔn)與拼接精度,見表1。基于多層特征配準(zhǔn)的VGG-CF和SSD-CF算法經(jīng)過多層配準(zhǔn)極大地提高了配準(zhǔn)的精度,相比SIFT算法4.2 mm,降低了10倍左右。由于SSD的anchor機(jī)制,特征提取效果較好,從而錯(cuò)誤匹配點(diǎn)位降低,配準(zhǔn)精度較VGG模型提高了0.14 mm,拼接的精度也提升了0.17 mm。
表1 配準(zhǔn)與拼接精度對比/mm
針對拼接縫和過渡區(qū)域容易出現(xiàn)錯(cuò)位和對比度突變的情況,引入人工觀察的主觀評估法對拼接圖像整體效果進(jìn)行評估,如圖7所示。僅利用卷積神經(jīng)網(wǎng)絡(luò)提取特征檢測,然后再拼接檢測后圖像,結(jié)果表示拼接部分有明顯偽影且拼接縫處亮度過渡不夠平滑。而本文利用多層特征融合與匹配等方法,提高圖像特征匹配精度。實(shí)驗(yàn)結(jié)果表明,在低對比度情況下野外雙目魚群圖像拼接本文方法具有一定程度拼接質(zhì)量的改善。
圖7 拼接縫效果比較
2.3.2 目標(biāo)檢測精度
在實(shí)驗(yàn)過程中,分別采用檢測精度(Precision)和查全率(Recall)作為魚群的定位精度和漏檢的評估標(biāo)準(zhǔn),假設(shè)fp表示錯(cuò)誤識(shí)別出的目標(biāo)個(gè)數(shù),n為識(shí)別出來的目標(biāo)總數(shù),tp表示識(shí)別正確的目標(biāo),fn表示錯(cuò)誤識(shí)別的背景,則
(8)
(9)
雖然YOLO[12]算法可以滿足實(shí)時(shí)檢測的要求,且在魚群測試集上的檢測精度可以達(dá)到88.7%[2]。但是基于YOLO算法的檢測容易造成大量的漏檢情況,Recall最高只有15.9%左右。在SIFT提取特征進(jìn)行圖像匹配融合之后,此時(shí)魚群目標(biāo)檢測建立在融合的新圖像上,YOLO檢測精度只有75.3%,由于圖像融合產(chǎn)生的偽影導(dǎo)致的錯(cuò)檢率達(dá)到13.4%。
SSD算法由于加入了錨點(diǎn)機(jī)制,增加大量的候選檢測窗口,一定程度上提升了目標(biāo)預(yù)測的精度,在保持90.5%以上的檢測精度的同時(shí),小目標(biāo)檢測效果也得到相應(yīng)的提升,查全率比YOLO提升了26.6%,檢測基于SIFT特征提取融合后的圖像,精度較原始SSD算法下降12%左右,見表2。
表2 Labeled Fishes in the Wild上測試結(jié)果
在SSD算法上加入特征融合的金字塔算法,多層特征融合增強(qiáng)小目標(biāo)特征表達(dá)能力,并且在特征層級之間加入卷積層特征融合操作,增強(qiáng)各個(gè)特征層的特征強(qiáng)度,從而大幅提升目標(biāo)檢測精度與查全率。檢測精度較原始SSD算法提高了10%以上,查全率提高了7%。對比其它改進(jìn)的SSD算法,如FSSD[13]與DES[16],檢測精度和查全率也有較好的提升效果。說明基于多層特征融合與匹配的SSD算法可以有效地減少偽影的出現(xiàn),如圖8第三行中對于目標(biāo)尺寸相對較小的魚群檢測效果也非常好。
圖8 拼接圖像檢測效果比較
本文利用SSD網(wǎng)絡(luò)多個(gè)卷積層不同維度和語義的特征信息,構(gòu)造了特征金字塔模型,增強(qiáng)低卷積層語義表達(dá)能力,提高了低對比度下小目標(biāo)的檢測精度;在此基礎(chǔ)上,采用特征匹配雙塔結(jié)構(gòu),提高了卷積特征層的特征匹配精度,減少了水下魚類圖像拼接過程中偽影的產(chǎn)生。在真實(shí)數(shù)據(jù)集上的測試結(jié)果表明,對雙目圖像的檢測與拼接具有良好的效果。但是,本文樣本均不包含遮擋情況,對于這種情況下圖像拼接與目標(biāo)檢測效果未做檢驗(yàn)。并且由于訓(xùn)練與測試數(shù)據(jù)集樣本數(shù)據(jù)較少,模型遷移到其它水下場景,魯棒性無法得到有效的保障。未來將會(huì)圍繞復(fù)雜水下場景目標(biāo)檢測和零樣本學(xué)習(xí)做更深入的研究。