汪夢婷,袁飛,程恩
(1.水聲通信與海洋信息技術教育部重點實驗室(廈門大學),福建 廈門 361005;2.山東省計算機網絡重點實驗室,山東 濟南 250014)
魚類水產養(yǎng)殖業(yè)中,從最初的引入苗種、計算養(yǎng)殖密度評估養(yǎng)殖生物量到最后的出售環(huán)節(jié),都涉及到魚類的計數需要。人工作業(yè)在耗費巨大人力物力的同時是接觸型作業(yè),會對魚體造成不同程度的損傷,不利于魚類的生長和出售。為了取代人工作業(yè),有學者結合數字圖像處理技術實現魚的計數這一任務[1-3]。這些方法都是基于目標檢測的方法,即將目標在圖像中檢測出來后以目標檢測結果作為計數結果。此外一些學者采用的是基于回歸分析的方法,即對目標檢測區(qū)域提取區(qū)域特征,根據區(qū)域內的目標數量擬合區(qū)域特征和目標數量之間的關系。如擬合目標區(qū)域的面積與目標數量之間的線性關系[4-8],擬合目標區(qū)域細化后骨架的端點數[9-10],或結合目標區(qū)域的多種特征預測目標數量[11]。同時一些學者嘗試通過設計魚道完成目標計數[12-14]。隨著神經網絡的發(fā)展,在20世紀90年代就有學者利用人工神經網絡達到計數的目的[15]。深度學習網絡在不同計算機視覺任務中取得斐然的成績后,研究人員利用深度學習對魚類進行了分類[16]、識別[17-19]、定位[20]、攝食欲望判斷和測長測重[21-22]等研究。但是利用深度學習對目標識別進行計數仍然是基于目標檢測和回歸分析的方法。這些方法應用條件比較嚴格,實際應用會受到以下幾種挑戰(zhàn):首先目標計數結果受限于檢測結果,而檢測方法對環(huán)境噪聲較敏感;其次目標遮擋重疊時計數精度會大大降低;最后檢測區(qū)域的特征如像素面積等與魚類數量的關系在不同魚類或同一魚類的不同生長階段都不相同,不具有普適性。
近年來深度學習在人群密度估計方面取得了優(yōu)越的發(fā)展并應用于公共安全事業(yè)中。人群密度估計事先獲得人群圖像的密度圖,密度圖表示了場景中人群分布情況,對密度圖積分或求和就能獲得場景中的人群總數。目前人群密度估計在ShanghaiTech[23]、UCSD[24]、UCF_CC_50[25]等開源數據集上都獲得了較高的 估計精度。
雖然人群密度估計取得了較大成功,但是基于深度學習的密度圖估計方法目前并沒有在水產養(yǎng)殖業(yè)中嘗試過?;诖耍疚奶岢鲆粋€用于魚類目標密度估計的網絡結構。鑒于目前并沒有適用魚群密度估計的數據集,本文創(chuàng)建了一個包含近2 000張樣本的魚群圖像數據集并對魚體進行標注獲得了密度圖,以實踐魚群密度估計,同時在魚類數據集和人群數據集上驗證了本文方法的有效性。
Loy等[26]提出,對密集群體的分析可分為3類方法:基于檢測的方法、基于回歸的方法和基于密度估計的方法。而基于深度學習的方法在計數性能上往往優(yōu)于傳統方法[27]?;谏疃葘W習的密度圖估計是指通過訓練神經網絡得到輸入圖像相應的密度分布圖,對密度圖積分得到輸入圖像中目標數目。
深度神經網絡得到迅速發(fā)展后,很多學者對利用深度學習分析人流密度進行了嘗試。本文中魚類密度估計網絡是一個端到端的神經網絡,由前端和后端兩個部分組成。前端網絡由于提取圖像特征,生成特征圖。后端網絡的輸入是前端網絡提取的一系列特征圖,根據特征圖估計輸入圖像的密度圖。魚類密度估計網絡結構如圖1所示。
1.1.1 卷積層
卷積層是卷積神經網絡中最重要的組成部分也是卷積神經網絡名字的由來。神經網絡中,卷積是2個矩陣的點積運算。如圖2所示,卷積層的輸入是5×5大小的二維矩陣,卷積核大小是3×3,卷積核從上到下、從左到右以步長s掃描輸入矩陣與相應區(qū)域的點積和是輸出矩陣中對應位置的元素值:
(1)
式中:N是卷積核大?。籋i是卷積核H的第i個元素值;Ii是輸入圖像中Hi對應位置的像素值;y是卷積的輸出結果。
圖1 魚類密度估計網絡結構Fig.1 The architechture of fish density estimation network
圖2 卷積運算示意Fig.2 Illustration of convolution operation
一般的,輸入圖像邊長為w時,輸出特征圖邊長o的計算方法為:
(2)
式中:s是卷積核每次移動的步長;k是卷積核大小;p是卷積操作前對輸入圖像的補零填充值,目的是使卷積核移動時可以剛好把所有像素遍歷完;?·」是向下取整運算。
1.1.2 空洞卷積
空洞卷積是Yu等[28]提出的一種卷積結構,最初應用在圖像分割領域,目的是為了在不減小圖像尺寸的同時增大圖像感受野??斩淳矸e定義為:
(3)
式中:x(m,n)是長寬分別為M、N的輸入圖像信息,經過卷積核w(i,j)得到空洞卷積的輸出y(m,n)。其中r是空洞率,當r=1時空洞卷積就是普通卷積。邊長為K的卷積核經過空洞率為r的空洞卷積操作后邊長會變?yōu)镵+(K-1)(r-1)。
感受野rf(reception field)是指卷積神經網絡每一層輸出的特征圖上的像素點在原始圖像上映射區(qū)域的大小。例如圖2中輸出結果40是由輸入圖像中一個3×3的區(qū)域映射得到的,因此卷積核的RF是3×3,即輸出結果的每個像素與原始圖像的3×3大小的區(qū)域有關。大小為3×3的卷積核經過空洞率為1、2的空洞卷積操作后分別得到5×5、7×7大小的卷積核,在不增加網絡參數的前提下擴大了卷積層的感受野,如圖3(a)所示。普通卷積增大感受野必須將圖像下采樣,即減小圖像大小,而減小圖像大小必然丟失部分信息??斩淳矸e在保持圖像大小的同時能夠增大感受野。如圖3(b),設置步長s=1,填充p=0,5×5大小的輸入圖像經過2次3×3大小的卷積核操作后輸出結果大小為1×1,即2次3×3卷積操作的感受野是5,即輸出結果是由原始圖像中5×5大小的區(qū)域映射得到的。圖3(b)中,通過增大空洞卷積的空洞率就能改變卷積核的感受野,空洞率越大,感受野越大,即不改變輸入圖像大小也不增加網絡參數。
圖3 3×3卷積核感受野示例Fig.3 Example of receptive field with kernel size 3×3
1.1.3 混合空洞卷積
空洞卷積雖然在改變圖像大小、不增加網絡參數的同時能增大卷積核的感受野,但也存在缺點:“網格效應”??斩淳矸e運算時空洞率越大,像素的利用率越小。例如圖3(b)中,r=2時卷積核感受野為5×5,但是對卷積運算結果有貢獻的只有其中9個像素,像素利用率為36%,r=3時卷積核感受野為7×7,對卷積運算結果有貢獻的仍然只有9個像素,像素利用率約為18%。同時,這9個像素來自原圖像中不同的塊,即空間上的連續(xù)性較差,導致輸出特征圖中相鄰像素間的相關性很差,出現明顯的分區(qū)現象形成“網格效應”。
Wang等[29]發(fā)現,卷積層連續(xù)采用相同的空洞率時原始圖像中部分像素將始終不能參與運算,即部分信息完全丟失。圖4(a)是連續(xù)采用3×3、r=2時每層卷積的感受野,中心淺色網格是每次卷積的運算結果,深色網格是每次卷積的感受野。從圖中看出,連續(xù)采用相同空洞率的卷積時原始圖像中部分像素始終沒有參與運算,造成部分信息丟失。
混合空洞卷積HDC(hybrid dilation convolution)是Wang等[29]提出用于解決空洞卷積“網格效應”的方法。不同于采用不變的空洞率,混合空洞卷積將連續(xù)幾個卷積層設為一組,組內采用不同空洞率的卷積。例如圖4(b),卷積核大小為3×3,空洞率分別為1、2、3時頂層特征圖即最終輸出結果的是由原始圖像中完整連續(xù)的區(qū)域得到的。這樣的設計使圖像感受野沒有空洞或缺失,所有的像素都參與了卷積的運算。例如圖4(b)中組內空洞率為1、2、3時,最后一層卷積結果的感受野覆蓋的是原始圖像中一片連續(xù)區(qū)域,避免了部分像素信息的丟失,卷積結果在空間上具有連續(xù)性,解決了空洞卷積的“網格效應”。
圖4 “網格效應”和混合空洞卷積示例Fig.4 Illustration of “gridding artifact” and HDC
將連續(xù)的幾個卷積層作為一組,為了使組內最后一層卷積的感受野對應原始輸入圖像中一塊完整連續(xù)沒有缺失的區(qū)域,組內卷積層的空洞率選擇需要滿足一定條件:定義組內第2層空洞卷積核非零元素間的距離為M2,則M2不大于原始卷積核大小K:
M2=max[M3-2r2,M3-2(M3-r2),r2]
(4)
式中M3=r3,r2是組內第2層空洞卷積的空洞率。當K=3時,[1,2,5]是有效的空洞率組合,因為M2=2,而[1,2,9]不是有效的空洞率組合,此時M2=5。
1.1.4 網絡結構
魚類密度估計網絡由前端網絡和后端網絡組成。前端網絡采用VGG-16[30]的前10層,用于提取輸入圖像的特征圖,輸出特征圖大小是輸入圖像的1/8。VGG網絡具有很強的特征提取能力,在密度估計中常常被用于構成前端網絡提取圖像特征[31-32]。后端網絡由4個級聯的混合空洞卷積組構成,每組由3個連續(xù)的空洞卷積組成,基于空洞率的組合原則,組內空洞率為[1,2,3]。表1是本文魚類密度估計網絡的配置。
表1 魚類密度估計網絡參數配置Table 1 Configuration of fish density estimation network
基于深度學習的密度估計方法本質上是特征提取器和密度函數的組合。不同于傳統密度函數估計方法,基于深度學習的密度估計不需要人為選擇圖像特征和構造密度函數模型,相比人為構造的密度估計函數,神經網絡對非線性有更強的表達能力。這種將每個像素映射為密度值的方法一定程度上降低了目標遮擋重疊對計數結果的影響。本文將魚的頭部作為檢測區(qū)域標記整個魚體。網絡訓練時,前端網絡學習到的是魚頭部的特征,雖然魚群存在一定程度上的重疊,但是沒有被完全遮擋的部分還是能夠被前端網絡提取到特征,并經后端網絡映射為像素點對應的密度值,這部分像素對魚類計數是有貢獻的。
目前并沒有一個公開的魚群數據集能用以密度估計。為了訓練魚群密度估計網絡,本文首先創(chuàng)建了魚群密度估計數據集。首先本文在YouTube視頻網站上選擇下載了20個魚群視頻并截取視頻幀獲得了大量的魚群圖像。視頻分辨率為1 280×720,幀率為30 f/s。為了減少圖像的重復率提高數據集的多樣性,本文在每個視頻的圖像幀中抽樣選取了適合用于網絡訓練的圖像組成魚群密度估計數據集。最后本文的數據集共包含1 961張圖像,其中1 382張為訓練集,579張為測試集,魚個體總數達到17 442個。
和人群密度估計數據集標注一樣,本文對魚的頭部進行標注。同時采用幾何自適應高斯核函數生成密度真值圖。假設一條的頭部標注點位置為xn,則含有N個標注點的信息表示為:
(5)
基于幾何自適應的高斯核密度圖表示為:
(6)
(7)
對包含一個目標標注點的圖像進行高斯濾波并歸一化后,濾波結果就是該標注點對應的密度圖,所有標注信息濾波結果的加和就是原始圖像的密度圖。以標注點為中心的(6σ+1)×(6σ+1)區(qū)域內的像素都被賦予了相應密度值,越靠近中心點密度值越大,σ近似表示了目標區(qū)域大小。根據幾何距離確定高斯函數的方差是因為幾何距離反映了魚類頭部區(qū)域的大小:當魚群較密集時,魚類之間的遮擋重疊導致圖像中顯示的魚的頭部區(qū)域變小,此時幾何距離相應的也較?。划旚~群分布較稀疏時,魚群之間的遮擋重疊較少,圖像中魚的頭部區(qū)域較大,此時幾何距離也較大。因此文中采用基于幾何自適應的高斯核濾波生成密度真值圖。實驗中本文采用的β值為0.3。魚類數據集樣本如圖5所示。
圖5 魚類數據集樣本Fig.5 Samples of fish dataset
本文在實驗中將每個樣本均等裁剪成4等分,并隨機上下或左右旋轉圖像以此擴充訓練數據集。采用L2范數作為網絡訓練的損失函數:
(8)
為對比本文所提方法的有效性,實驗選取了MCNN[23]、CSRNet[27]、CANNet[33]、DSNet[34]作為對比模型并采用相同的參數設置進行訓練。在魚類數據集上各模型密度估計結果在圖6中展示。從圖中看出本文提出的密度估計網絡結果更接近輸入圖像的真實值,預測結果更可靠。同時,魚類密度估計網絡對不同種類、不同大小的魚類圖像能保持較好的估計結果。在魚類數據集樣本充足的情況下,密度估計網絡能學習到具有很強表達性的特征,對不同種類、不同大小的魚類估計具有更強的魯棒性。
圖6 魚類數據集密度估計結果Fig.6 Density estimation results of fish dataset
為了定量的分析網絡預測結果,本文采用平均絕對誤差MAE(mean absolute error)、均方誤差MSE(mean square error)、峰值信噪比PSNR(peak signal to noise ratio)和結構相似性SSIM(structural sIMilarity)來評價網絡密度估計的結果:
(9)
(10)
各模型指標對比結果如表2所示,表中深色字體表示最優(yōu)結果。由表中數據可得,本文提出的魚類密度估計網絡在各項指標上均取得最優(yōu)結果。在圖像結果和指標量化2方面,本文的密度估計網絡網絡計數結果更準確,估計的密度圖更接近真實的密度圖。
表2 魚類數據集網絡預測結果對比Table 2 Comparison of networks on fish dataset
人群密度估計數據集ShanghaiTech是由上??萍即髮W搜集創(chuàng)建的開源數據集,也是人群密度估計中使用最頻繁、最經典的數據集,共包含1 198張圖像,330 165個注釋頭。該數據集分為A和B 2個部分。
2.4.1 ShanghaiTech Part_A密度估計結果
ShanghaiTech Part_A部分圖像隨機選自Internet,共482張圖像,其中訓練集300張,測試集182張,圖像分辨率不定,人群分布較密集,平均每張圖像人群數量達到501個。為對比本文提出的密度估計網絡在其他數據集上的預測結果,實驗室選擇了CSRNet[27]、MCNN[23]、CMTL[35]3個密度估計網絡作對比試驗,密度估計結果在圖7中展示。實驗中同樣對各模型預測結果進行了定量評價,各指標評價結果如表3所示。表中深色字體表示最優(yōu)結果,斜體表示次優(yōu)結果。本文密度估計網絡ShanghaiTech Part_A上預測時在各項指標上都獲得了最優(yōu)或次優(yōu)的結果。
表3 ShanghaiTech Part_A網絡預測結果對比Table 3 Comparison of networks on ShanghaiTech Part_A
2.4.2 ShanghaiTech Part_B密度估計結果
ShanghaiTech Part_B部分圖像來自上海街道的一些場景,共716張圖像,其中訓練集400張,測試集316張,該部分圖像分辨率固定為768×1 024,人群密度分布相比Part_A較稀疏,平均每張圖像人群數量為123。對比試驗設置和Part_A部分相同,密度估計結果如圖8所示,定量分析結果在表4中展示。表中深色字體表示最優(yōu)結果。本文密度估計網絡ShanghaiTech Part_B上預測時在各項指標上都獲得了最優(yōu)結果。
圖8 ShanghaiTech Part_B密度估計結果Fig.8 Density estimation results of ShanghaiTech Part_B
1)基于密度估計的計數方法能有效提高高密度群體的計數準確性。
2)對比魚群密度估計數據集、ShanghaiTech Part_A和Part_B的密度估計結果,數據集越稀疏時混合空洞卷積預測結果更精準,由此驗證混合空洞卷積解決“網格效應”的有效性。
3)在魚數密度估計數據集上,網絡對魚類分布較稀疏的圖像預測結果更準確,觀察數據集的構成發(fā)現訓練集中目標數量在10以下的圖像占比達到73%,推測可能是數據集的不平衡導致網絡對密集圖像估計效果較差。
4)為提高魚群密度估計網絡的魯棒性,可嘗試擴充魚類數據集使密集圖像、稀疏圖像樣本數均衡。