袁紅春,王 丹,陳冠奇,張?zhí)祢?,吳若?/p>
(上海海洋大學(xué) 信息學(xué)院,上海 201306)
隨著中國(guó)工業(yè)化進(jìn)程的不斷加快,水污染問(wèn)題日趨嚴(yán)重。據(jù)2017年長(zhǎng)江流域廢污水調(diào)查統(tǒng)計(jì)資料顯示,長(zhǎng)江流域廢污水排放量高達(dá)353.2億t,因此加強(qiáng)水污染監(jiān)測(cè)顯得尤為重要[1]。傳統(tǒng)理化監(jiān)測(cè)存在操作復(fù)雜、分析時(shí)間長(zhǎng)的問(wèn)題,而生物式水質(zhì)監(jiān)測(cè)可以依據(jù)被監(jiān)測(cè)生物在水體環(huán)境中的變化對(duì)水質(zhì)做出評(píng)價(jià),監(jiān)測(cè)操作流程較為簡(jiǎn)單,成本也相對(duì)低廉[2-4]。魚類作為生物式水質(zhì)監(jiān)測(cè)中常用的指示生物,其生理特征、行為特征等可以直觀反映水體情況。如何對(duì)魚類行為進(jìn)行量化,并準(zhǔn)確識(shí)別已經(jīng)成為當(dāng)前的研究熱點(diǎn)。
目前,眾多學(xué)者利用計(jì)算機(jī)視覺(jué)技術(shù)對(duì)魚類行為進(jìn)行識(shí)別和量化研究[5]。如Suzuki等[6]利用計(jì)算機(jī)視覺(jué)技術(shù)和Higuchi方法對(duì)時(shí)間序列數(shù)據(jù)的魚群行為進(jìn)行分析,證明該方法對(duì)定量評(píng)估魚類行為的有效性,但未發(fā)現(xiàn)模型中心結(jié)構(gòu)對(duì)魚群行為有明顯影響。Kato等[7]利用空間矩法計(jì)算魚的重心得到其運(yùn)動(dòng)軌跡,并開發(fā)一套計(jì)算機(jī)圖像系統(tǒng)來(lái)量化斑馬魚游動(dòng)行為,但該系統(tǒng)不能對(duì)魚群進(jìn)行三維跟蹤分析。Liu等[8]利用計(jì)算機(jī)視覺(jué)技術(shù)監(jiān)測(cè)大西洋鮭魚攝食活躍度,但其對(duì)硬件設(shè)備要求較高,實(shí)現(xiàn)難度較大。Zhou等[9]基于卷積神經(jīng)網(wǎng)絡(luò)和計(jì)算機(jī)視覺(jué)方法對(duì)魚類攝食強(qiáng)度進(jìn)行有效分級(jí),但是該深度學(xué)習(xí)方法需要大量樣本數(shù)據(jù)才能取得較好的分類效果。范良忠等[10]利用改進(jìn)的幀間差分法實(shí)現(xiàn)運(yùn)動(dòng)魚群的檢測(cè),雖然較完整保留魚的輪廓信息但存在較多噪聲。在此基礎(chǔ)上,國(guó)內(nèi)外學(xué)者通過(guò)分析魚類的異常行為進(jìn)行水體質(zhì)量的監(jiān)測(cè)研究。Ma等[11]基于神經(jīng)網(wǎng)絡(luò)機(jī)制對(duì)魚群軌跡的變化頻率進(jìn)行分析,并通過(guò)區(qū)分魚類的異常行為實(shí)現(xiàn)水質(zhì)監(jiān)測(cè),但需要提前提供魚群正常游動(dòng)的數(shù)據(jù)。Cazenave等[12]利用計(jì)算機(jī)圖像處理系統(tǒng)實(shí)現(xiàn)青鳉魚異常游動(dòng)速度和活動(dòng)量的量化。盧煥達(dá)等[13]利用壓縮感知分類方法實(shí)現(xiàn)低溶氧脅迫下的魚群異常行為檢測(cè)。程淑紅等[14]提取魚群運(yùn)動(dòng)行為特征參數(shù)構(gòu)建水質(zhì)評(píng)價(jià)因子數(shù)據(jù)庫(kù),并利用XGBoost算法實(shí)現(xiàn)魚類異常行為的檢測(cè)。于欣等[15]借助光流法得到目標(biāo)魚群的運(yùn)動(dòng)矢量,并使用NMI和LDOF方法檢測(cè)魚群異常行為。
雖然現(xiàn)有研究取得了一定的試驗(yàn)效果,但選取的特征參數(shù)較多,復(fù)雜度高,較難投入實(shí)際使用,而且也沒(méi)有考慮異常水質(zhì)中魚類的體色變化。所以,針對(duì)以上問(wèn)題提出一種基于LightGBM模型的魚類異常行為檢測(cè),使用較少的特征得到較高的準(zhǔn)確率。
以紅色斑馬魚(red zebrafish)為試驗(yàn)魚。為保證試驗(yàn)結(jié)果的準(zhǔn)確性,試驗(yàn)前先將10條長(zhǎng)18~23 mm的斑馬魚在養(yǎng)殖環(huán)境中飼養(yǎng)數(shù)日,使其充分適應(yīng)試驗(yàn)環(huán)境。試驗(yàn)所用玻璃魚缸為38 cm×26 cm×27 cm,水位高5 cm,水溫控制在19~22 ℃。
試驗(yàn)所用的視頻采集系統(tǒng)如圖1所示,該系統(tǒng)主要由養(yǎng)殖魚缸、過(guò)濾器、攝像機(jī)、計(jì)算機(jī)和照明裝置組成。試驗(yàn)選用索尼NEX-FS700R攝像機(jī)以25幀/s進(jìn)行視頻拍攝,所采集的圖像分辨率為1 920×1 080像素,格式為jpg。試驗(yàn)中,分正常和異常兩個(gè)階段進(jìn)行斑馬魚行為的數(shù)據(jù)采集,首先對(duì)處于穩(wěn)定狀態(tài)的斑馬魚進(jìn)行拍攝,然后向魚缸中加入質(zhì)量濃度5%的次氯酸鈉(NaClO)溶液對(duì)魚群進(jìn)行刺激。拍攝后期使用Pycharm軟件對(duì)采集的圖像進(jìn)行處理,并選取連續(xù)幀進(jìn)行試驗(yàn)研究。
圖1 視頻采集系統(tǒng)Fig.1 Video acquisition system
斑馬魚異常行為檢測(cè)的試驗(yàn)流程如圖2所示,主要包括圖像采集、圖像預(yù)處理、特征提取、模型搭建和異常行為檢測(cè)等。試驗(yàn)中首先對(duì)采集的視頻以每隔1 s截取一幀的頻率進(jìn)行視頻剪輯,并選用正常和異常行為共3 000張圖像進(jìn)行研究;再使用圖像處理方法對(duì)斑馬魚圖像進(jìn)行灰度二值化、濾波去噪和形態(tài)學(xué)處理;然后基于灰度共生矩陣和LK光流法提取魚群的紋理特征和方向矢量特征,并對(duì)其進(jìn)行歸一化處理;最后通過(guò)搭建算法模型實(shí)現(xiàn)斑馬魚異常行為的檢測(cè)。
圖2 斑馬魚異常行為檢測(cè)流程圖Fig.2 Flow chart of zebrafish abnormal behavior detection
為降低外界環(huán)境對(duì)圖像質(zhì)量造成的影響,試驗(yàn)中使用圖像處理技術(shù)對(duì)采集的斑馬魚圖像進(jìn)行預(yù)處理操作。試驗(yàn)中先對(duì)圖像進(jìn)行灰度二值化處理,采用中值濾波方法去除圖像噪聲,對(duì)采集的圖像進(jìn)行直方圖均衡化處理,通過(guò)背景減法提取目標(biāo)魚群。
就斑馬魚游動(dòng)而言,其在正常情況下游動(dòng)緩慢,且游動(dòng)時(shí)水面較為平靜,而當(dāng)遇到外部刺激時(shí),魚群游動(dòng)速度突變,出現(xiàn)到處亂竄的行為,并會(huì)引起水面較大的波動(dòng),圖像紋理也會(huì)發(fā)生改變。因此,本研究將水面抖動(dòng)和水花也作為魚群紋理特征變化的因素。圖3為斑馬魚異常行為檢測(cè)的彩色圖像和灰度圖像。
灰度共生矩陣(GLCM)[16]是一種基于數(shù)學(xué)統(tǒng)計(jì)理論的特征提取方法,該方法能反映存在一定空間位置關(guān)系的兩像素間的灰度關(guān)系,是描述圖像紋理特征的基礎(chǔ)[17]。根據(jù)斑馬魚異常前后行為的變化情況,選取能量、熵、對(duì)比度、逆差矩和相關(guān)度等5種參數(shù)用于圖像紋理特征的描述。
在計(jì)算灰度共生矩陣時(shí),選取運(yùn)動(dòng)角度θ在0°、45°、90°和135°等4個(gè)方向上的能量(ASM)、熵(Ent)、對(duì)比度(Con)、相關(guān)度(Cor)和逆差距(IDM)共20維特征,對(duì)應(yīng)的特征值見(jiàn)表1。
圖3 斑馬魚異常行為檢測(cè)的彩色圖像和灰度圖像Fig.3 Color image and grayscale image of zebrafish abnormal behavior detection
表1 魚類異常行為檢測(cè)的灰度共生矩陣特征值Tab.1 Characteristic values of GLCM for fish abnormal behavior detection
Lucas-Kanade(LK)光流法[18]是基于亮度恒定、小運(yùn)動(dòng)和空間一致假設(shè)的兩幀差分光流估算法?;贚K光流法計(jì)算運(yùn)動(dòng)矢量場(chǎng),引入信息熵[19]定義魚群混亂指數(shù)。計(jì)算魚群信息熵的步驟如下:
1)首先用等距采樣法[20]選取圖像的特征點(diǎn),再利用LK光流法計(jì)算特征點(diǎn)的光流。光流方程如式(1):
I(x,y,t)=I(x+Δx,y+Δy,t+Δt)
(1)
由泰勒公式展開I(x,y,t)得到式(2):
Ixu+Iyv+It=0
(2)
式中:I(x,y,t)表示一個(gè)像素點(diǎn)(x,y)在t時(shí)刻的亮度值;Ix,Iy,It分別是其x,y,t的偏導(dǎo)數(shù),u(像素/s)、v(像素/s)分別表示X,Y軸方向的光流速度分量。
2)假設(shè)在局部小空間(u,v)內(nèi)亮度是恒定的,可得:
(3)
(4)
3)斑馬魚的運(yùn)動(dòng)角度可以表述為:
(5)
式中:θ表示運(yùn)動(dòng)角度。
4)將運(yùn)動(dòng)角度θ∈(0°,360°)均勻分為8個(gè)區(qū)間,建立運(yùn)動(dòng)角度方向直方圖統(tǒng)計(jì)每一幀圖像的方向分布概率。直方圖h定義為:
h(i)={ki,0
(6)
式中:n代表8個(gè)不同的方向;ki代表每個(gè)方向包含的運(yùn)動(dòng)方向矢量數(shù)。
5)根據(jù)直方圖進(jìn)一步計(jì)算運(yùn)動(dòng)方向分布概率P:
(7)
式中:m代表每幀圖像的運(yùn)動(dòng)方向矢量總數(shù)。
6)最后根據(jù)方向分布概率得到魚群運(yùn)動(dòng)信息熵E:
(8)
式中:ci代表圖像幀數(shù)。
光流法是利用圖像序列中像素隨時(shí)間變化以及相鄰幀之間關(guān)系找到上一幀跟當(dāng)前幀之間的聯(lián)系,得到運(yùn)動(dòng)目標(biāo)的信息。圖4a中黑點(diǎn)是根據(jù)等距采樣法選取的圖像特征點(diǎn),再利用LK光流法計(jì)算特征點(diǎn)運(yùn)動(dòng)矢量;圖4b和圖4c是根據(jù)連續(xù)兩幀視頻圖像分別計(jì)算得到斑馬魚正常和異常游動(dòng)的光流矢量場(chǎng)例子,特征點(diǎn)的運(yùn)動(dòng)速度和方向如圖中黑色箭頭長(zhǎng)短和方向所示,線段越長(zhǎng),則斑馬魚的運(yùn)動(dòng)速度越快;方向變化角度越大,則斑馬魚的運(yùn)動(dòng)方向變化越大。
圖4 魚群運(yùn)動(dòng)特征示意圖Fig.4 Chart of fish school movement characteristics
通過(guò)斑馬魚群的運(yùn)動(dòng)矢量可以得到魚群運(yùn)動(dòng)方向分布概率(圖5)。斑馬魚正常游動(dòng)時(shí)方向趨于一致,在1、2、3、7方向游動(dòng)的魚較少,大部分集中在4、5、6方向游動(dòng);相反,斑馬魚異常游動(dòng)時(shí),各個(gè)方向的魚分布較為均勻。另外,由圖5概率分布計(jì)算得到此時(shí)正常游動(dòng)的魚群信息熵為0.729,異常游動(dòng)的魚群信息熵為0.886,也反映出魚群處于正常游動(dòng)的時(shí)候熵值較小,魚群處于異常的無(wú)序狀態(tài)熵值較大。
為了防止數(shù)據(jù)特征差異過(guò)大,異樣值干擾試驗(yàn)結(jié)果,對(duì)提取的紋理特征和信息熵進(jìn)行歸一化處理,數(shù)據(jù)統(tǒng)一映射到[-1,0]區(qū)間上。min-max標(biāo)準(zhǔn)化公式[22]為:
(9)
式中:x和x*分別為變量歸一化處理前后的值;xmin和xmax分別是樣本數(shù)據(jù)中的最小值和最大值。
圖5 魚群運(yùn)動(dòng)方向概率分布圖Fig. 5 Probability distribution of fish school movement direction
LightGBM是微軟公司在2017年提出的一種基于決策樹的梯度提升框架[23]。LightGBM在傳統(tǒng)的梯度提升樹(GBDT)上優(yōu)化,使用直方圖優(yōu)化(Histogram)算法和更高效的葉子生長(zhǎng)(Leaf-wise)策略。Histogram算法將連續(xù)的浮點(diǎn)特征離散化至N個(gè)整數(shù),并構(gòu)造寬度為N的直方圖。通過(guò)遍歷數(shù)據(jù)形成離散值累計(jì)數(shù)據(jù)的直方圖,再根據(jù)直方圖的離散值找到最優(yōu)分割點(diǎn)。如圖6所示,將原本連續(xù)的#data個(gè)數(shù)據(jù)離散化到N個(gè)直方圖中,由原來(lái)算法的時(shí)間復(fù)雜度0(#data×#features)變成Histogram算法需要的時(shí)間復(fù)雜度0(#bins×features),不僅減少了內(nèi)存開銷而且加快運(yùn)算速度。
圖6 直方圖優(yōu)化算法Fig.6 Histogram optimization algorithm
LightGBM采用的Leaf-wise如圖7所示,其中,黑點(diǎn)代表分裂增益最大的葉子,白點(diǎn)代表非最大葉子。每次在同層葉子中選取最大增益葉子進(jìn)行分裂,如此循環(huán),相比按層生長(zhǎng)(Level-wise)策略[24],不加以區(qū)分同一層的葉子,造成不必要的搜索和分裂。Leaf-wise在精度與誤差方面顯然更具優(yōu)勢(shì),同時(shí)該生長(zhǎng)策略還可以限制最大深度防止過(guò)擬合現(xiàn)象。
圖7 葉子生長(zhǎng)策略Fig.7 Leaf-wise tree growth
試驗(yàn)環(huán)境為Windows10專業(yè)版,64位操作系統(tǒng),16 GB內(nèi)存,CPU為Intel(R) Core(TM) i7-6700,分析平臺(tái)為PyCharm 2019。以8∶2劃分?jǐn)?shù)據(jù)集,即訓(xùn)練集2 400張圖像,測(cè)試集600張圖像。設(shè)置兩類標(biāo)簽,1表示斑馬魚正常游動(dòng)的圖像,0表示斑馬魚異常游動(dòng)的圖像,利用融合后的特征對(duì)LightGBM進(jìn)行訓(xùn)練,并與傳統(tǒng)的SVM算法和DNN算法進(jìn)行對(duì)比。試驗(yàn)中LightGBM模型通過(guò)網(wǎng)格搜索方法(GridSearchCV)對(duì)學(xué)習(xí)率、迭代次數(shù)、葉節(jié)點(diǎn)數(shù)和樹的最大深度4個(gè)參數(shù)進(jìn)行自動(dòng)尋優(yōu)。首先設(shè)置較大的學(xué)習(xí)率(learning rate)=0.1,初始迭代次數(shù)(n estimators)=64,為了防止過(guò)擬合葉子結(jié)點(diǎn)樹(num leaves)不超過(guò)2max_depth(max_depth為樹的最大深度),目標(biāo)函數(shù)(objective)為二分類(binary),其他參數(shù)使用默認(rèn)值;然后利用GridSearchCV函數(shù)尋找最優(yōu)參數(shù);最后得到最優(yōu)學(xué)習(xí)率為0.01,迭代次數(shù)為192,樹的最大深度為7,葉子結(jié)點(diǎn)樹為100。
對(duì)比試驗(yàn)中支持向量機(jī)(SVM)算法選擇sklearn的SVC函數(shù),采用徑向基核函數(shù)。深度神經(jīng)網(wǎng)絡(luò)(DNN)算法采取5層結(jié)構(gòu),在第1層到第4層使用線性修正(ReLu)激活函數(shù),最后一層使用sigmoid函數(shù)。
使用plot _importance函數(shù)展示特征對(duì)模型的重要度,如圖8所示,縱坐標(biāo)為各個(gè)特征,橫坐標(biāo)為特征重要分?jǐn)?shù),結(jié)合特征間的相關(guān)性依次獲得特征(8、10、16、20、6、4、19、0、11、12、5、3、9、15、2、7、13、14、1、18、17 )對(duì)識(shí)別斑馬魚異常行為的重要程度。由此得出特征8代表0°方向的對(duì)比度、特征10代表135°方向的對(duì)比度、特征16代表0°方向的逆差距、特征20代表魚群的運(yùn)動(dòng)信息熵等,對(duì)LightGBM模型有效檢測(cè)魚類異常行為更為重要。
圖8 各個(gè)特征對(duì)模型的重要度Fig.8 The importance of each feature to the model
由于魚群紋理信息在0°、45°、90°和135°這4個(gè)方向的變化趨勢(shì)較為相似,所以選取0°方向的能量、熵、對(duì)比度、逆差距和相關(guān)度進(jìn)行分析。選取斑馬魚從正常游動(dòng)到滴入次氯酸鈉溶液后游動(dòng)整個(gè)過(guò)程的500張圖片,獲得其0°方向魚群紋理特征變化的曲線圖(圖9),可以發(fā)現(xiàn)在0~250幀,魚群處于較為穩(wěn)定的游動(dòng)狀態(tài),能量、熵、對(duì)比度和逆差矩4個(gè)數(shù)值波動(dòng)較小,雖然相關(guān)度的變化相對(duì)不是很明顯,但從滴入次氯酸鈉溶液的第250幀圖像開始,這5個(gè)數(shù)值出現(xiàn)了忽高忽低的情況,整個(gè)曲線呈現(xiàn)較為明顯的上下波動(dòng),說(shuō)明魚群處于混亂的異常狀態(tài)。
由試驗(yàn)結(jié)果(表2)可知,支持向量機(jī)SVM算法的準(zhǔn)確率為73.2%,深度神經(jīng)網(wǎng)絡(luò)DNN算法的準(zhǔn)確率達(dá)到98%,LightGBM模型相比這兩個(gè)模型,分類準(zhǔn)確率最高達(dá)到98.5%,能很好地檢測(cè)魚類異常行為。SVM比較適用于小樣本的分類學(xué)習(xí),當(dāng)樣本容量變大,參數(shù)調(diào)節(jié)和函數(shù)選擇則變得敏感,會(huì)直接影響魚類異常行為識(shí)別效果。DNN算法通過(guò)加深網(wǎng)絡(luò)層數(shù),使用激活函數(shù)增強(qiáng)模型的非線性性,同時(shí)可以容納更多的神經(jīng)元提高模型的擬合能力,但是至少需要迭代50次才能得到較高的準(zhǔn)確率。由于神經(jīng)網(wǎng)絡(luò)為黑盒模型,無(wú)法對(duì)訓(xùn)練權(quán)重和各個(gè)屬性對(duì)分類結(jié)果的影響進(jìn)行有效分析。LightGBM在尋找特征最優(yōu)分裂點(diǎn)、減少樣本數(shù)目上進(jìn)行優(yōu)化提高了分類的準(zhǔn)確度,同時(shí)優(yōu)化了對(duì)類別特征的支持,可以直接輸入類別特征,提高空間和時(shí)間效率;還可以進(jìn)行特征重要度分析。此外,用精確率、召回率、F1值評(píng)估模型性能,可以從預(yù)測(cè)結(jié)果角度體現(xiàn)分類結(jié)果的準(zhǔn)確度;召回率則從原始數(shù)據(jù)角度來(lái)體現(xiàn)分類的完備性;而F1值是精確率和召回率的調(diào)和平均值,綜合反映分類的性能。由表2可知,LightGBM的精確率為98.51%、召回率為98.5%和F1為98.5%,3個(gè)值都高于另外兩個(gè)模型,可以更準(zhǔn)確地識(shí)別魚類異常行為。
基于灰度共生矩陣和稀疏光流法,能夠提取靜態(tài)紋理特征和運(yùn)動(dòng)矢量特征并進(jìn)行融合,能夠滿足對(duì)魚類異常行為檢測(cè)的需要。同時(shí),為了測(cè)試模型的性能,對(duì)各個(gè)算法的訓(xùn)練時(shí)間和在測(cè)試集數(shù)據(jù)的檢測(cè)時(shí)間進(jìn)行對(duì)比(表3),在600幀的數(shù)據(jù)集上,3種算法的檢測(cè)時(shí)間都小于0.5 s,雖然SVM相對(duì)訓(xùn)練時(shí)間最短,但是準(zhǔn)確率不高無(wú)法滿足魚類異常行為檢測(cè)的基本需求。DNN算法為了提高精度而加深網(wǎng)絡(luò)層數(shù),導(dǎo)致權(quán)重向量數(shù)目過(guò)多,網(wǎng)絡(luò)擬合緩慢,訓(xùn)練時(shí)間較長(zhǎng)。LightGBM的直方圖算法將連續(xù)的特征值分散,加快了訓(xùn)練速度,帶深度限制的葉子生長(zhǎng)策略容易進(jìn)行多線程優(yōu)化,控制模型的復(fù)雜度,因此,LightGBM模型訓(xùn)練時(shí)間較短。在3個(gè)算法中,LightGBM的測(cè)試時(shí)間最短、準(zhǔn)確率高、內(nèi)存占用少,為后期能夠?qū)崟r(shí)監(jiān)測(cè)魚類行為、高效處理海量圖片數(shù)據(jù)奠定了基礎(chǔ)。
圖9 0°方向魚群的紋理特征Fig.9 Texture features of fish school in the 0° direction
表2 不同模型的評(píng)價(jià)指標(biāo)Tab.2 Evaluation indexes of each model
注:F1值為調(diào)和平均值,LightGBM為輕量化梯度促進(jìn)機(jī),DNN為深度神經(jīng)網(wǎng)絡(luò),SVM為支持向量機(jī),下同
表3 不同模型的處理時(shí)間對(duì)比Tab.3 Comparison of processing time between different models
提出一種基于LightGBM模型的魚類異常行為的檢測(cè)方法。首先利用灰度共生矩陣提取斑馬魚的紋理特征,然后利用LK光流算法得到斑馬魚的運(yùn)動(dòng)矢量,從實(shí)際問(wèn)題考慮,魚類的異常行為主要表現(xiàn)在運(yùn)動(dòng)速度突變或者運(yùn)動(dòng)方向改變,選取魚類運(yùn)動(dòng)方向建立方向直方圖,并據(jù)此計(jì)算魚群信息熵來(lái)表示圖像中魚群運(yùn)動(dòng)方向的混亂程度;最后將提取的紋理特征和魚群信息熵使用LightGBM模型對(duì)魚類異常行為進(jìn)行檢測(cè)。相比DNN神經(jīng)網(wǎng)絡(luò)和SVM算法,LightGBM不僅精度高,而且占用內(nèi)存少、運(yùn)算速度快。研究表明,有效的特征提取可以提高魚類異常行為檢測(cè)的精確度。雖然對(duì)魚類異常檢測(cè)的精度較好,但自然條件下水質(zhì)環(huán)境較為復(fù)雜,在后續(xù)研究中需要考慮魚類行為的其他特征(如運(yùn)動(dòng)加速度、游動(dòng)軌跡),進(jìn)一步提高模型的魯棒性。