基于LightGBM模型的鱼类异常行为检测

2020-05-02 08:20袁红春陈冠奇张天蛟吴若有
渔业现代化 2020年1期
关键词:斑马鱼游动鱼群

袁红春,王 丹,陈冠奇,张天蛟,吴若有

(上海海洋大学 信息学院,上海 201306)

随着中国工业化进程的不断加快,水污染问题日趋严重。据2017年长江流域废污水调查统计资料显示,长江流域废污水排放量高达353.2亿t,因此加强水污染监测显得尤为重要[1]。传统理化监测存在操作复杂、分析时间长的问题,而生物式水质监测可以依据被监测生物在水体环境中的变化对水质做出评价,监测操作流程较为简单,成本也相对低廉[2-4]。鱼类作为生物式水质监测中常用的指示生物,其生理特征、行为特征等可以直观反映水体情况。如何对鱼类行为进行量化,并准确识别已经成为当前的研究热点。

目前,众多学者利用计算机视觉技术对鱼类行为进行识别和量化研究[5]。如Suzuki等[6]利用计算机视觉技术和Higuchi方法对时间序列数据的鱼群行为进行分析,证明该方法对定量评估鱼类行为的有效性,但未发现模型中心结构对鱼群行为有明显影响。Kato等[7]利用空间矩法计算鱼的重心得到其运动轨迹,并开发一套计算机图像系统来量化斑马鱼游动行为,但该系统不能对鱼群进行三维跟踪分析。Liu等[8]利用计算机视觉技术监测大西洋鲑鱼摄食活跃度,但其对硬件设备要求较高,实现难度较大。Zhou等[9]基于卷积神经网络和计算机视觉方法对鱼类摄食强度进行有效分级,但是该深度学习方法需要大量样本数据才能取得较好的分类效果。范良忠等[10]利用改进的帧间差分法实现运动鱼群的检测,虽然较完整保留鱼的轮廓信息但存在较多噪声。在此基础上,国内外学者通过分析鱼类的异常行为进行水体质量的监测研究。Ma等[11]基于神经网络机制对鱼群轨迹的变化频率进行分析,并通过区分鱼类的异常行为实现水质监测,但需要提前提供鱼群正常游动的数据。Cazenave等[12]利用计算机图像处理系统实现青鳉鱼异常游动速度和活动量的量化。卢焕达等[13]利用压缩感知分类方法实现低溶氧胁迫下的鱼群异常行为检测。程淑红等[14]提取鱼群运动行为特征参数构建水质评价因子数据库,并利用XGBoost算法实现鱼类异常行为的检测。于欣等[15]借助光流法得到目标鱼群的运动矢量,并使用NMI和LDOF方法检测鱼群异常行为。

虽然现有研究取得了一定的试验效果,但选取的特征参数较多,复杂度高,较难投入实际使用,而且也没有考虑异常水质中鱼类的体色变化。所以,针对以上问题提出一种基于LightGBM模型的鱼类异常行为检测,使用较少的特征得到较高的准确率。

1 材料与方法

1.1 材料

以红色斑马鱼(red zebrafish)为试验鱼。为保证试验结果的准确性,试验前先将10条长18~23 mm的斑马鱼在养殖环境中饲养数日,使其充分适应试验环境。试验所用玻璃鱼缸为38 cm×26 cm×27 cm,水位高5 cm,水温控制在19~22 ℃。

1.2 数据采集系统

试验所用的视频采集系统如图1所示,该系统主要由养殖鱼缸、过滤器、摄像机、计算机和照明装置组成。试验选用索尼NEX-FS700R摄像机以25帧/s进行视频拍摄,所采集的图像分辨率为1 920×1 080像素,格式为jpg。试验中,分正常和异常两个阶段进行斑马鱼行为的数据采集,首先对处于稳定状态的斑马鱼进行拍摄,然后向鱼缸中加入质量浓度5%的次氯酸钠(NaClO)溶液对鱼群进行刺激。拍摄后期使用Pycharm软件对采集的图像进行处理,并选取连续帧进行试验研究。

图1 视频采集系统Fig.1 Video acquisition system

2 数据处理和试验流程

2.1 试验流程

斑马鱼异常行为检测的试验流程如图2所示,主要包括图像采集、图像预处理、特征提取、模型搭建和异常行为检测等。试验中首先对采集的视频以每隔1 s截取一帧的频率进行视频剪辑,并选用正常和异常行为共3 000张图像进行研究;再使用图像处理方法对斑马鱼图像进行灰度二值化、滤波去噪和形态学处理;然后基于灰度共生矩阵和LK光流法提取鱼群的纹理特征和方向矢量特征,并对其进行归一化处理;最后通过搭建算法模型实现斑马鱼异常行为的检测。

图2 斑马鱼异常行为检测流程图Fig.2 Flow chart of zebrafish abnormal behavior detection

2.2 图像预处理

为降低外界环境对图像质量造成的影响,试验中使用图像处理技术对采集的斑马鱼图像进行预处理操作。试验中先对图像进行灰度二值化处理,采用中值滤波方法去除图像噪声,对采集的图像进行直方图均衡化处理,通过背景减法提取目标鱼群。

就斑马鱼游动而言,其在正常情况下游动缓慢,且游动时水面较为平静,而当遇到外部刺激时,鱼群游动速度突变,出现到处乱窜的行为,并会引起水面较大的波动,图像纹理也会发生改变。因此,本研究将水面抖动和水花也作为鱼群纹理特征变化的因素。图3为斑马鱼异常行为检测的彩色图像和灰度图像。

2.3 灰度共生矩阵

灰度共生矩阵(GLCM)[16]是一种基于数学统计理论的特征提取方法,该方法能反映存在一定空间位置关系的两像素间的灰度关系,是描述图像纹理特征的基础[17]。根据斑马鱼异常前后行为的变化情况,选取能量、熵、对比度、逆差矩和相关度等5种参数用于图像纹理特征的描述。

在计算灰度共生矩阵时,选取运动角度θ在0°、45°、90°和135°等4个方向上的能量(ASM)、熵(Ent)、对比度(Con)、相关度(Cor)和逆差距(IDM)共20维特征,对应的特征值见表1。

图3 斑马鱼异常行为检测的彩色图像和灰度图像Fig.3 Color image and grayscale image of zebrafish abnormal behavior detection

表1 鱼类异常行为检测的灰度共生矩阵特征值Tab.1 Characteristic values of GLCM for fish abnormal behavior detection

2.4 LK光流法

Lucas-Kanade(LK)光流法[18]是基于亮度恒定、小运动和空间一致假设的两帧差分光流估算法。基于LK光流法计算运动矢量场,引入信息熵[19]定义鱼群混乱指数。计算鱼群信息熵的步骤如下:

1)首先用等距采样法[20]选取图像的特征点,再利用LK光流法计算特征点的光流。光流方程如式(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)表示一个像素点(x,y)在t时刻的亮度值;Ix,Iy,It分别是其x,y,t的偏导数,u(像素/s)、v(像素/s)分别表示X,Y轴方向的光流速度分量。

2)假设在局部小空间(u,v)内亮度是恒定的,可得:

(3)

(4)

3)斑马鱼的运动角度可以表述为:

(5)

式中:θ表示运动角度。

4)将运动角度θ∈(0°,360°)均匀分为8个区间,建立运动角度方向直方图统计每一帧图像的方向分布概率。直方图h定义为:

h(i)={ki,0

(6)

式中:n代表8个不同的方向;ki代表每个方向包含的运动方向矢量数。

5)根据直方图进一步计算运动方向分布概率P:

(7)

式中:m代表每帧图像的运动方向矢量总数。

6)最后根据方向分布概率得到鱼群运动信息熵E:

(8)

式中:ci代表图像帧数。

光流法是利用图像序列中像素随时间变化以及相邻帧之间关系找到上一帧跟当前帧之间的联系,得到运动目标的信息。图4a中黑点是根据等距采样法选取的图像特征点,再利用LK光流法计算特征点运动矢量;图4b和图4c是根据连续两帧视频图像分别计算得到斑马鱼正常和异常游动的光流矢量场例子,特征点的运动速度和方向如图中黑色箭头长短和方向所示,线段越长,则斑马鱼的运动速度越快;方向变化角度越大,则斑马鱼的运动方向变化越大。

图4 鱼群运动特征示意图Fig.4 Chart of fish school movement characteristics

通过斑马鱼群的运动矢量可以得到鱼群运动方向分布概率(图5)。斑马鱼正常游动时方向趋于一致,在1、2、3、7方向游动的鱼较少,大部分集中在4、5、6方向游动;相反,斑马鱼异常游动时,各个方向的鱼分布较为均匀。另外,由图5概率分布计算得到此时正常游动的鱼群信息熵为0.729,异常游动的鱼群信息熵为0.886,也反映出鱼群处于正常游动的时候熵值较小,鱼群处于异常的无序状态熵值较大。

2.5 特征归一化

为了防止数据特征差异过大,异样值干扰试验结果,对提取的纹理特征和信息熵进行归一化处理,数据统一映射到[-1,0]区间上。min-max标准化公式[22]为:

(9)

式中:x和x*分别为变量归一化处理前后的值;xmin和xmax分别是样本数据中的最小值和最大值。

图5 鱼群运动方向概率分布图Fig. 5 Probability distribution of fish school movement direction

2.6 LightGBM模型

LightGBM是微软公司在2017年提出的一种基于决策树的梯度提升框架[23]。LightGBM在传统的梯度提升树(GBDT)上优化,使用直方图优化(Histogram)算法和更高效的叶子生长(Leaf-wise)策略。Histogram算法将连续的浮点特征离散化至N个整数,并构造宽度为N的直方图。通过遍历数据形成离散值累计数据的直方图,再根据直方图的离散值找到最优分割点。如图6所示,将原本连续的#data个数据离散化到N个直方图中,由原来算法的时间复杂度0(#data×#features)变成Histogram算法需要的时间复杂度0(#bins×features),不仅减少了内存开销而且加快运算速度。

图6 直方图优化算法Fig.6 Histogram optimization algorithm

LightGBM采用的Leaf-wise如图7所示,其中,黑点代表分裂增益最大的叶子,白点代表非最大叶子。每次在同层叶子中选取最大增益叶子进行分裂,如此循环,相比按层生长(Level-wise)策略[24],不加以区分同一层的叶子,造成不必要的搜索和分裂。Leaf-wise在精度与误差方面显然更具优势,同时该生长策略还可以限制最大深度防止过拟合现象。

图7 叶子生长策略Fig.7 Leaf-wise tree growth

3 试验与结果分析

3.1 试验设计

试验环境为Windows10专业版,64位操作系统,16 GB内存,CPU为Intel(R) Core(TM) i7-6700,分析平台为PyCharm 2019。以8∶2划分数据集,即训练集2 400张图像,测试集600张图像。设置两类标签,1表示斑马鱼正常游动的图像,0表示斑马鱼异常游动的图像,利用融合后的特征对LightGBM进行训练,并与传统的SVM算法和DNN算法进行对比。试验中LightGBM模型通过网格搜索方法(GridSearchCV)对学习率、迭代次数、叶节点数和树的最大深度4个参数进行自动寻优。首先设置较大的学习率(learning rate)=0.1,初始迭代次数(n estimators)=64,为了防止过拟合叶子结点树(num leaves)不超过2max_depth(max_depth为树的最大深度),目标函数(objective)为二分类(binary),其他参数使用默认值;然后利用GridSearchCV函数寻找最优参数;最后得到最优学习率为0.01,迭代次数为192,树的最大深度为7,叶子结点树为100。

对比试验中支持向量机(SVM)算法选择sklearn的SVC函数,采用径向基核函数。深度神经网络(DNN)算法采取5层结构,在第1层到第4层使用线性修正(ReLu)激活函数,最后一层使用sigmoid函数。

3.2 结果分析

使用plot _importance函数展示特征对模型的重要度,如图8所示,纵坐标为各个特征,横坐标为特征重要分数,结合特征间的相关性依次获得特征(8、10、16、20、6、4、19、0、11、12、5、3、9、15、2、7、13、14、1、18、17 )对识别斑马鱼异常行为的重要程度。由此得出特征8代表0°方向的对比度、特征10代表135°方向的对比度、特征16代表0°方向的逆差距、特征20代表鱼群的运动信息熵等,对LightGBM模型有效检测鱼类异常行为更为重要。

图8 各个特征对模型的重要度Fig.8 The importance of each feature to the model

由于鱼群纹理信息在0°、45°、90°和135°这4个方向的变化趋势较为相似,所以选取0°方向的能量、熵、对比度、逆差距和相关度进行分析。选取斑马鱼从正常游动到滴入次氯酸钠溶液后游动整个过程的500张图片,获得其0°方向鱼群纹理特征变化的曲线图(图9),可以发现在0~250帧,鱼群处于较为稳定的游动状态,能量、熵、对比度和逆差矩4个数值波动较小,虽然相关度的变化相对不是很明显,但从滴入次氯酸钠溶液的第250帧图像开始,这5个数值出现了忽高忽低的情况,整个曲线呈现较为明显的上下波动,说明鱼群处于混乱的异常状态。

由试验结果(表2)可知,支持向量机SVM算法的准确率为73.2%,深度神经网络DNN算法的准确率达到98%,LightGBM模型相比这两个模型,分类准确率最高达到98.5%,能很好地检测鱼类异常行为。SVM比较适用于小样本的分类学习,当样本容量变大,参数调节和函数选择则变得敏感,会直接影响鱼类异常行为识别效果。DNN算法通过加深网络层数,使用激活函数增强模型的非线性性,同时可以容纳更多的神经元提高模型的拟合能力,但是至少需要迭代50次才能得到较高的准确率。由于神经网络为黑盒模型,无法对训练权重和各个属性对分类结果的影响进行有效分析。LightGBM在寻找特征最优分裂点、减少样本数目上进行优化提高了分类的准确度,同时优化了对类别特征的支持,可以直接输入类别特征,提高空间和时间效率;还可以进行特征重要度分析。此外,用精确率、召回率、F1值评估模型性能,可以从预测结果角度体现分类结果的准确度;召回率则从原始数据角度来体现分类的完备性;而F1值是精确率和召回率的调和平均值,综合反映分类的性能。由表2可知,LightGBM的精确率为98.51%、召回率为98.5%和F1为98.5%,3个值都高于另外两个模型,可以更准确地识别鱼类异常行为。

基于灰度共生矩阵和稀疏光流法,能够提取静态纹理特征和运动矢量特征并进行融合,能够满足对鱼类异常行为检测的需要。同时,为了测试模型的性能,对各个算法的训练时间和在测试集数据的检测时间进行对比(表3),在600帧的数据集上,3种算法的检测时间都小于0.5 s,虽然SVM相对训练时间最短,但是准确率不高无法满足鱼类异常行为检测的基本需求。DNN算法为了提高精度而加深网络层数,导致权重向量数目过多,网络拟合缓慢,训练时间较长。LightGBM的直方图算法将连续的特征值分散,加快了训练速度,带深度限制的叶子生长策略容易进行多线程优化,控制模型的复杂度,因此,LightGBM模型训练时间较短。在3个算法中,LightGBM的测试时间最短、准确率高、内存占用少,为后期能够实时监测鱼类行为、高效处理海量图片数据奠定了基础。

图9 0°方向鱼群的纹理特征Fig.9 Texture features of fish school in the 0° direction

表2 不同模型的评价指标Tab.2 Evaluation indexes of each model

注:F1值为调和平均值,LightGBM为轻量化梯度促进机,DNN为深度神经网络,SVM为支持向量机,下同

表3 不同模型的处理时间对比Tab.3 Comparison of processing time between different models

4 结论

提出一种基于LightGBM模型的鱼类异常行为的检测方法。首先利用灰度共生矩阵提取斑马鱼的纹理特征,然后利用LK光流算法得到斑马鱼的运动矢量,从实际问题考虑,鱼类的异常行为主要表现在运动速度突变或者运动方向改变,选取鱼类运动方向建立方向直方图,并据此计算鱼群信息熵来表示图像中鱼群运动方向的混乱程度;最后将提取的纹理特征和鱼群信息熵使用LightGBM模型对鱼类异常行为进行检测。相比DNN神经网络和SVM算法,LightGBM不仅精度高,而且占用内存少、运算速度快。研究表明,有效的特征提取可以提高鱼类异常行为检测的精确度。虽然对鱼类异常检测的精度较好,但自然条件下水质环境较为复杂,在后续研究中需要考虑鱼类行为的其他特征(如运动加速度、游动轨迹),进一步提高模型的鲁棒性。

猜你喜欢
斑马鱼游动鱼群
持续光照建立斑马鱼失眠模型及评价
小斑马鱼历险记
把手放进袋子里
人工鱼群算法在雷达探测器射频端电路设计中的应用
鱼群漩涡
朱梦琪??《鱼群》
斑马鱼
小斑马鱼的奇遇
具功能反应食饵捕食模型动力学分析
父亲