覃學標 黃冬梅,2 宋 巍 賀 琪 杜艷玲 徐慧芳
(1.上海海洋大學信息學院, 上海 201306; 2.上海電力大學電子與信息工程學院, 上海 200090)
機器學習方法對水下圖像中的魚類檢測成本較低且容易操作,因此被廣泛應用于魚種類的檢測[1-5]、魚類監測[6-7]、魚類分選[8]、魚類行為研究[9]、魚類棲息地調查[10]、魚群分析[11-12]和魚類數量統計[13]等方面。
當前基于機器學習方法的魚類檢測研究主要有QIN等[14]提出的DeepFish模型,在Fish4 Knowledge數據集上檢測精度為98.64%;YANG等[15]使用YOLO v3和Faster R-CNN模型對海參、扇貝、海膽的圖像進行檢測,其結果表明YOLO v3速度較快而Faster R-CNN精度較高;RAZA等[16]在自建數據集上使用YOLO v3模型開展檢測試驗,通過增加候選錨框、遷移學習和調整loss函數等方式對模型進行改進,與未改進前的模型對比,精度提高了4.13%。GRAY等[17]使用Mask R-CNN模型對無人機采集的鯨魚圖像進行檢測,并對其體長進行了測量,測量結果與人工測量對比誤差為5%。基于機器學習方法的魚類檢測獲得了較高的檢測精度和較快的檢測速度,廣泛應用于各種檢測任務中。
養殖池、河道和入海口的水下圖像,受水體渾濁度和水中光衰減的影響,普遍具有模糊、對比度低等特點。針對這類圖像,一般使用圖像增強方法進行處理。經過增強的模糊水下圖像變得清晰[18-19],理想情況下可以提高魚類檢測的精度。但文獻[20]發現圖像增強帶來的這種清晰,并不能直接提高魚類檢測模型的檢測能力,甚至模型的檢測精度出現了退化。導致這一問題的主要原因是增強方法的局限性,會帶來明顯的人為噪聲[20]。因此,如何更好地利用水下圖像增強方法實現高精度的魚類檢測是值得關注的問題。
本文重點關注在魚類檢測過程中模糊水下圖像的前處理和后處理步驟,提出模糊水下圖像多增強與輸出混合的魚類檢測方法。首先利用多種圖像增強方法對模糊水下圖像進行增強,然后將增強后的圖像分別輸入魚類檢測模型得到多個輸出,并對多個輸出進行混合,最后利用非極大抑制方法(Non-maximum suppression,NMS)[21]對混合的結果進行后處理,獲得最終檢測結果。
使用GoPro RX0型水下攝像機在室外水深1 m的養殖池中采集數據。采集時間為2020年5—6月13:00—16:00,圖像分辨率為1 920像素×1 080像素,幀速率為50 f/s。受水體渾濁的影響,采集的圖像均較模糊。視頻每10幀選出一幅圖像,從中取出具有一條或多條完整輪廓的魚類圖像,得到3 595幅魚類圖像。使用LabelImg軟件將圖像中的魚類目標標注為fish,按比例7∶3隨機劃分為訓練集和測試集,即訓練集2 517幅,測試集1 078幅。后續試驗對比均以測試集上的結果為準。為保證測試集數據的準確性,由3人分別對測試集中魚的總數量進行計數,取平均數作為人工計數的結果。經過計算,測試集中人工計數魚的總數為3 546條。
本文利用5種圖像增強方法對模糊水下圖像進行增強,將增強后的圖像分別輸入魚類檢測模型得到多個輸出。對多個輸出進行混合,然后利用非極大抑制方法對混合的結果進行后處理。圖1為本文方法的框架。
1.2.1水下圖像增強
水下圖像增強方法分為增強和復原兩類[18]。圖像增強方法通常以水下成像簡化模型為基礎,可表示為
I(x)=J(x)t(x)+A(1-t(x))
(1)
其中
t(x)=e-βd(x)
式中I(x)——水下圖像
J(x)——清晰圖像
A——背景光強
t(x)——透射率
β——衰減系數
d(x)——景深
圖像增強的原理主要是通過估計成像模型中的參數,即透射率t(x)和背景光強A,然后再代入式(1)推導出清晰圖像J(x)。
為了避免單一增強方法增強后出現精度退化的問題,本文選取兩種增強效果較好的方法:對比度受限的自適應直方圖均衡化方法(Contrast limited adaptive histogram equalization,CLAHE)[22]和相對全局直方圖拉伸方法(Relative global histogram stretching,RGSH)[19],以及3種復原效果較好的方法:暗通道先驗(Dark channel prior,DCP)[23]、無監督色彩校正(Unsupervised colour correction method,UCM)[24]和基于圖像模糊和光吸收的水下圖像復原(Image blurriness and light absorption,IBLA)[25],分別運用上述5種方法對模糊水下圖像進行預處理,得到多個輸入。
CLAHE是常用的圖像增強方法,其基本思想是將圖像像素直方圖分布在全動態范圍內,同時限制直方圖的幅值來控制圖像整體的對比度。RGSH同樣是改變原圖像的直方圖分布,但該方法根據原圖具體情況對紅藍綠各通道動態范圍的取值進行動態限定,從而避免過度增強等情況。DCP是通過暗通道先驗值和透射率對干擾像素進行校正達到圖像還原的目的。UCM是基于顏色平衡對水下圖像進行處理,通過平衡紅藍綠顏色和色相飽和度的分布對圖像進行還原。IBLA是通過水下圖像的模糊度和背景光估算圖像的透視率,然后依據透視率對圖像進行還原。
對于同一輸入圖像IInput,分別使用DCP、CLAHE、IBLA、RGSH和UCM這5種方法增強,增強后的圖像分別記為IDCP、ICLAHE、IIBLA、IRGSH和IUCM。
1.2.2魚類檢測模型
文獻[15-16]表明,YOLO模型在魚類檢測方面取得了較好的檢測結果,故本文選擇YOLO作為魚類檢測模型。YOLO由REDMON等[26]提出,廣泛應用于各類目標檢測任務中,其框架由輸入、主干網絡、頸部、頭部4部分組成,圖2為YOLO v4[27]的框架圖。
將圖像IInput、IDCP、ICLAHE、IIBLA、IRGSH和IUCM分別輸入YOLO v4模型,記各自輸出的檢測框為BInput、BDCP、BCLAHE、BIBLA、BRGSH和BUCM,記對應的檢測概率為SInput、SDCP、SCLAHE、SIBLA、SRGSH和SUCM,分別得到檢測框和檢測概率的混合結果集合為
B={BInput,BDCP,BCLAHE,BIBLA,BRGSH,BUCM}
(2)
S={SInput,SDCP,SCLAHE,SIBLA,SRGSH,SUCM}
(3)
1.2.3混合結果的后處理
設定閾值N,使用非極大抑制方法對混合結果B進行處理。N取0.3,與檢測模型YOLO v4的取值一致。
首先,確定S中最大的檢測概率Sm,從B中選出該概率對應的檢測框Bm,予以保留;然后分別計算Bm與B中剩余檢測框Bi的交并比IOU(Bm,Bi),計算公式為
(4)
當IOU(Bm,Bi) 為驗證本文方法的有效性,使用采集的3 595幅圖像分別在YOLO v3、YOLO v4和YOLO v4 tiny上開展試驗,并對試驗結果進行分析。試驗環境為處理器AMD 1950X 3.4 GHz,內存32 GB,顯卡GTX-1080Ti,操作系統Ubuntu 16.04。 分別使用DCP、CLAHE、IBLA、RGSH和UCM方法對測試集進行增強,代碼來源于WANG等[18]公布的網站,所有參數均使用默認值。選擇3幅圖像作為樣例展示增強后的效果,如圖3所示。可以觀察到,模糊的水下圖像經過不同增強方法增強后呈現不同的效果,清晰度得到不同程度的提高。但同時也導致一些問題,例如,IBLA造成局部過度曝光,DCP結果整體偏暗等。 圖3 不同圖像增強方法處理后的增強效果Fig.3 Results of different image enhancements 為了更客觀地檢驗圖像增強后的效果,引入峰值信噪比(Peak signal to noise ratio,PSNR)對增強后圖像相對于原始圖像的失真程度進行評價。 表1為圖3中3幅樣例圖像分別使用DCP、CLAHE、IBLA、RGSH和UCM方法增強后的PSNR,其值越大增強效果越好。可以看出,CLAHE方法增強效果最好,IBLA最差,與觀察結果基本一致。 表1 樣例圖像增強后峰值信噪比Tab.1 Results of PSNR 選擇平均精度(AP)[28]、檢測數量和檢測時間作為本文方法的評價指標。選擇AP50作為檢測精度衡量依據,其定義為預測框與真實框交并比大于0.5時視為正確。檢測數量為檢測概率大于0.3目 標個數。測試集中魚類數量的真實值以人工計數為準。檢測時間為單幀圖像的檢測時間。應用δ來衡量本文方法的提升幅度,其計算公式為 (5) 式中Δ——增量 C——基準值 δ——提升幅度 的將訓練集分別輸入YOLO v3、YOLO v4 tiny和YOLO v4模型進行訓練,輸入圖像為原始圖像,訓練參數使用默認值,均訓練到模型收斂。訓練結束后,在測試集上開展檢測試驗,原始圖像的檢測結果和本文方法的檢測結果對比如表2所示。 從表2中可以看出,對比原始圖像的檢測結果,本文方法在YOLO v3模型上檢測精度提高了2.15個百分點,檢測數量提高了15.5%;在YOLO v4 tiny模型上檢測精度提高了8.35個百分點,檢測數量提高了49.8%;在YOLO v4模型上檢測精度提高了1.37個百分點,檢測數量提高了12.7%。說明針對 表2 本文方法試驗結果Tab.2 Experimental results of the proposed method 模糊水下圖像,無論以何種目標檢測模型為基礎網絡,本文方法都能提高模型檢測能力。在檢測時間上,由于增加增強后圖像檢測,檢測時間出現了較大幅度的增大,YOLO v4-mix的幀速率為6 f/s,YOLO v4 tiny-mix的幀速率為74 f/s,但仍可以滿足魚類檢測的實時性需求。 對比各目標檢測模型可以看出,YOLO v4的目標檢測能力明顯優于YOLO v3,精度提升了5.63個百分點,檢測數量增加了113條。為實現快速目標檢測,YOLO v4 tiny對模型進行了壓縮,導致其目標檢測的能力下降,與YOLO v4相比,AP50下降9.84個百分點,與YOLO v3相比下降4.21個百分點。但是,在本文提出的增強混合框架下,YOLO v4 tiny-mix的檢測能力顯著提升,AP50達到91.75%,且魚類檢測數量達到3 461條,與人工計數結果最為接近。由于本文方法的多個圖像增強和檢測模型可以并行計算,通過與快速目標檢測模型相結合,本文方法在實時魚類目標檢測上具有實用性。 對不同模糊水下圖像增強方法對魚類檢測結果產生的影響進行分析,并使用樣例圖像對本文方法的檢測結果進行可視化分析。由于YOLO v4模型的檢測精度最高,因此在該模型上開展試驗。 表3為原始圖像和分別經過DCP、CLAHE、IBLA、RGSH、UCM方法增強后的圖像與本文方法檢測結果的對比。從表3中可以看出,經過CLAHE方法增強后圖像的檢測精度與原始圖像的檢測精度相近,而經過DCP、IBLA、RGSH和UCM方法增強后圖像的檢測精度和檢測數量都出現了不同程度的下降。說明單一圖像增強方法處理圖像不能直接提高模型的檢測能力,這一結論與KONOVALOV等[20]使用CLAHE增強圖像后的檢測精度一致。除CLAHE外,另外4種圖像增強方法也得到類似結果。 表3 單一圖像增強后檢測結果對比Tab.3 Detection result of single image enhancement 結合表1中對圖像增強效果的評價結果可以得出,檢測精度退化與水下圖像增強方法的效果有一 定的相關性。IBLA方法增強后的水下圖像的失真最大,增強圖像中的魚類目標檢測結果也最差。CLAHE方法增強后的水下圖像的失真最小,增強圖像中的魚類目標檢測結果也最好。 本文方法的檢測精度和檢測數量均優于原始圖像的檢測結果及單一圖像增強方法增強后的檢測結果。說明本文方法避免了圖像增強后模型精度下降的問題,模型的檢測能力得到了提升。 圖4為原始圖像和分別經過DCP、CLAHE、IBLA、RGSH、UCM方法增強后的圖像以及本文方法可視化檢測結果對比。從圖中可以看出,原始圖像中未被檢出的目標經過增強后被檢出。不同圖像增強方法的檢測結果不同。原始圖像中被檢出的目標經過增強后未被檢出,說明經過不同圖像增強方法增強后的檢測結果與原始圖像的檢測結果存在互補性。本文方法保留了增強后圖像和原始圖像之間漏檢的目標,避免了模型精度下降,提高了模型檢測能力。 圖4 原始圖像和增強后圖像檢測結果對比Fig.4 Comparison of detection results before and after image enhancement 選取實時數據對本文方法進行應用驗證。截取10 min的視頻,以1 s為單位對視頻中魚類數量進行檢測。由于YOLO v4 tiny-mix檢測到的數量最高,因此在該模型上開展試驗。圖5為實時檢測結果對比。 圖5 實時檢測結果對比Fig.5 Comparison of real-time detection results 從圖5中可以看出,本文方法檢測魚類數量為9條,而YOLO v4 tiny檢測最大值僅為6條。本文方法檢測結果中3~5條占多數,而YOLO v4 tiny檢測結果中1~3條占多數,兩者相差較大。說明本文方法有效提高了模型的檢測能力,并可以應用于魚群實時計數的漁業生產中。 (1)試驗表明針對模糊水下圖像采用單一水下圖像增強方法進行清晰化處理后,不能直接提高魚類檢測模型的檢測能力,模型的檢測精度下降。 (2)提出了模糊水下圖像多增強與輸出混合的魚類檢測方法,在YOLO v3、YOLO v4 tiny、YOLO v4模型上的檢測精度分別提高了2.15、8.35、1.37個百分點,檢測數量分別提高了15.5%、49.8%、12.7%,有效避免了單一水下圖像增強造成的精度下降問題,提高了模型檢測能力。 (3)本文提出的多增強與輸出混合框架與輕量化快速目標檢測模型YOLO v4 tiny相結合,能夠實現高精度的實時魚類目標檢測,對于魚群計數和魚類類別檢測等漁業生產具有實際價值。2 試驗
2.1 圖像增強峰值信噪比


2.2 試驗結果

2.3 結果分析


2.4 應用驗證

3 結論