周福歡,柴鑫雨
(上海理工大學 健康科學與工程學院,上海 200093)
斑馬魚幼魚作為典型模型動物之一,其視覺引導行為,如:視動反射、視運動反應、逃避反應等;精神疾病引起的行為,如:藥物成癮和戒斷、攻擊性、恐懼和焦慮等得到了廣泛的研究。視頻檢測是研究幼魚行為的基礎步驟。但是,幼魚體積小,身體邊緣透明,與培養皿邊緣對比度低,運動模型處于近似睡眠或爆發狀態,使得識別難度高。傳統的目標檢測算法主要依靠目標物體與背景之間的差異來進行識別,比如:物體的灰度、顏色、光流、邊緣、紋理和梯度等特征。但幼魚姿態變化、不連續運動、遮擋、光照強度等環境的干擾使得檢測精度低。近年來,由于卷積神經網絡對圖像的強大表征能力,也在一定程度上推動了目標檢測算法的較為快速發展。
目前,基于深度學習的檢測算法一般可分為2類。一類是基于候選框的兩階段檢測算法,具有較高的定位和識別精度,如R-CNN、Fast R-CNN、Faster R-CNN,Mask R-CNN;另一類是基于回歸的單階段檢測算法,具有較高的檢測速度,如YOLO 系列算法和SSD 算法。其中,YOLO 算法已經成為多目標檢測領域的研究熱點,現已廣泛應用于各個行業。YOLO 可以將候選框定位、特征提取和物體分類整合到一個骨干網絡中,實現端到端的檢測。以此為基點,YOLOv2、YOLOv3、YOLOv4 和YOLOv5也緊隨其后相繼問世,其中YOLOv5 具有輕量級架構,檢測精度上與YOLOv4 相當,但速度優于YOLOv4。基于此,本文將使用基于YOLOv5 網絡對斑馬魚幼魚進行檢測。
YOLOv5 算法根據網絡寬度與深度分為4 種模型,依次為 YOLOv5s、YOLOv5m、YOLOv5x 和YOLOv5l,精度逐漸提高,但檢測速度逐漸降低。本文選取YOLOv5m 檢測斑馬魚幼魚,在有限的設備條件下獲取最好的檢測精度與檢測速度。
YOLOv5 網絡結構可分為4 個部分,即:輸入(Input)、骨干網絡(Backbone)、頸部(Neck)和預測層(Prediction),如圖1 所示。輸入端對圖片進行預處理,主要有自適應圖片縮放、自適應錨框計算,并使用Mosaic 來擴充數據集;骨干網絡對輸入圖像提取特征信息;頸部的作用是融合從骨干網部分提取的特征信息,發送到預測層部分;預測層由3 個尺度的特征圖組成,分別用于檢測小、中、大目標。例如,當輸入分辨率為608×608 的圖像時,將檢測到分辨率超過8×8 的小目標、分辨率超過16×16 的中等目標、以及分辨率超過32×32 的大目標。故使用K-means++聚類算法獲取數據集的錨框(Anchor boxes),得出幼魚的頭部矩形框大小在8~20 像素之間。因此,本文對YOLOv5 刪除大尺度的預測層部分和其相應的頸部組件,保留小、中尺度預測層部分,得到YOLOv5m-sm 模型,去掉大、中尺度預測層,保留小尺度預測層,得到YOLOv5m-s 模型。

圖1 YOLOv5 結構圖Fig.1 The structure of YOLOv5 model
本文算法的實驗平臺配置,見表1。

表1 實驗平臺配置Tab.1 Experimental platform configuration
將幼魚放在培養皿中,培養皿底部放置一個LED 燈光源,手機以一定高度在室內光線下垂直拍攝,具體信息見表2。拍攝的圖像含有雜質、排泄物、波紋等來提高數據集的多樣性。

表2 幼魚數據集Tab.2 The dataset of larvae
本文使用DarkLabel 標注軟件以1 fps 將視頻進行分幀,選取幼魚眼部進行標記,由此就得到了Zebradata 數據集。每張圖像標記后得到一個.txt 文件,主要包括目標類別、識別難度、矩形框的左上角與右下角坐標信息。
為了增強數據多樣性,提高模型訓練時的泛化能力,使用了數據擴充方法,如:Mosaic、Mixup 和Cutout。其中,Mosaic 是隨機選取4 張圖片,按照隨機縮放、隨機裁剪和隨機排布的方式進行拼接。Mixup 是將多張圖像像素融合形成一張新的圖像。Cutout 是利用一個任意大小的矩形框隨機遮擋原圖像上的任意區域,模擬目標遮擋情況。
基于YOLOv5 的斑馬魚幼魚多目標檢測過程如圖2 所示。這里,將Zebradata 數據集的圖像大小歸一化為640×640,批量大小設為2,初始學習率設為0.003 2,訓練50 世代(epochs),可使損失函數收斂。訓練好的模型可對幼魚自動識別與定位,顯示出目標類別與置信度。

圖2 基于YOLOv5 算法的幼魚多目標檢測過程Fig.2 Multi-target detection process for zebrafish larvae based on YOLOv5
為了評估YOLO 模型對幼魚的檢測能力,本文采用準確率()、召回率()和平均精度()指標對模型進行評估。對此可做研究分述如下。
(1)準確率與召回率。計算公式具體如下:

其中,T表示目標被正確預測出來的數量;F表示目標被誤測出來的數量、即誤檢; F表示目標未被預測出來的數量、即漏檢。
(2)平均精度(Average Precision,):用于評估一個類別訓練的模型,主要是通過計算模型的PR 曲線下的面積,此時需用到的數學公式為:

其中,為精確率,為召回率。
使用160 張含有23 條幼魚的圖像作為測試集,批量大小為4,置信度閾值為0.5,交并比()閾值為0.9,圖像輸入大小歸一化為736×736。為了體現本文算法性能的優越性,對YOLOv3m、YOLOv5s、YOLOv5m-s、YOLOv5m-sm 和YOLOv5m 模型進行精度測試實驗。實驗結果見表3。
從表3 中可以看出,YOLOv3 網絡檢測精度不及YOLOv5 網絡,只含有小尺度預測層的YOLOv5m-s模型性能表現最好,相對于YOLOv5m,準確度提高19.71%,回收率提高了10.34%,平均精度上提高13.29%,推理速度(Inference)提高13.92%。當幼魚處在培養皿邊緣時,與背景對比度很低的情況下,YOLOv5m-s 模型也可以很好地檢測到幼魚。

表3 檢測結果Tab.3 The experimental detection results
對于幼魚單類別小目標檢測,本文通過對YOLOv5m 刪減不同尺度的預測層,得到YOLOv5ms 和YOLOv5-sm 模型。為了驗證模型精度,對YOLOv3m、YOLOv5s、YOLOv5m-s、YOLOv5-sm 和YOLOv5m 網絡進行識別精度評估,結果表明YOLOv5m-s 模型性能最優,準確度為0.923,召回率為0.886,平均精度為0.912,實現了幼魚檢測的高精度和高速度,滿足實時檢測需求。