黄志涛, 何 佳, 宋协法
(中国海洋大学水产学院, 山东 青岛 266003)
在水产养殖过程中,鱼类投喂量的控制是一个备受关注的问题,鱼群摄食情况会直接影响鱼体生长发育状况[1]。饲料投喂量过少会影响鱼类的正常生长,过多除了会造成浪费还会引起水质恶化及加重系统负荷等问题,不利于鱼类生长[2-3]。目前鱼类投喂方法仍然以人工及机械定量投喂为主,但鱼类摄食欲望会随着水体环境因子的变化而改变,饲料的精确投喂量难以获得[4-5]。因此,如何实现精准投喂是水产养殖中亟需解决的关键问题,也是福利化养殖面临的重要挑战。
计算机视觉技术作为一种非入侵型且稳定性较好的行为观察技术,已经成为精准投喂控制的重要研究手段[6-8]。在水产养殖中,可以利用计算机视觉技术对鱼类摄食行为进行观察和量化,为鱼类的精准投喂提供技术指导。目标跟踪是计算机视觉技术的常用方法,但在对鱼类摄食行为进行量化的过程中,多目标跟踪方法存在一定的局限性,尤其在鱼体数量较多时,鱼体间易发生重叠,这可能会导致目标鱼体的跟踪失败[9]。
在鱼类摄食行为量化中,常根据鱼群群体的行为特征研究鱼群整体摄食行为或利用图像整体特征反映图像在鱼群摄食行为发生前后的变化情况。Zhou等[10]提取图像中的鱼体,以图像中鱼体的形心作为狄罗尼三角形的顶点,以狄罗尼三角形的平均周长作为鱼群的群集指数进行摄食行为量化,但该方法需要去除包含水花和反光的帧,计算量大。Liu等[11]利用帧间差分将相邻帧图像相减,将差分图像像素值的和作为鱼群整体的摄食行为活动强度,但该方法在计算过程中需要人为确定鱼体数目。陈彩文等[12]通过分析图像纹理特征评估鱼群摄食活动强度,无需考虑水面反光及水花问题,但检测精度有待提高。
尽管目前已经开展了利用鱼体运动特征或图像整体特征+对鱼类摄食行为进行量化的研究,但除了大多图像整体特征提取过程较为复杂之外,量化的过程中较多采用单一的鱼体运动特征或图像整体特征,较少利用多种特征综合进行量化。单一特征对于鱼群摄食行为量化存在不足,鱼体的速度、转角等运动特征能为鱼体运动状态提供信息,图像纹理特征也能在一定程度上反映鱼群的活跃程度变化,同时能够减小计算结果受到水花及水面反光的干扰。因此,本文以大西洋鲑(Sadlmosalar)为研究对象,在自然光照条件下提取鱼体的速度、转角等鱼体运动特征及5种图像纹理特征,通过两种特征的结合,能够准确量化鱼群摄食行为,从而对鱼群摄食行为进行检测识别,为解决水产养殖中的精准投喂问题提供基础支撑。
实验系统如图1所示,包括养殖池及水处理用砂滤罐、视频采集用计算机(Dell Inspiron 3670,CPU i5-9400,频率2.80 GHz,内存16 GB)、相机(Basler ace acA2440-35 μm)、镜头(Kowa Lens LM16HC F1.4f16mm 1")。其中投饵装置安装于养殖池(直径1.5 m,水深0.5 m)边缘,投饵速度65 g/min;相机和镜头安装于养殖池上方,距离水面2.3 m,采集的图像分辨率为2 464×2 056,采集速率10帧/s。
(a:计算机 Computer;b:养殖池 Tank;c:砂滤罐 Sand filter;d:摄像机 Camera;e:LED灯 LED light.)
实验所用大西洋鲑购自山东东方海洋科技股份有限公司大西洋鲑繁育场,鱼苗初始体长为(14.22±0.83) cm,初始体质量为(31.74±4.95) g。鱼苗购回后暂养于养殖池(直径1.5 m,水深0.5 m)一周,暂养期间水温(18.0±0.4) ℃,DO>6.5 mg/L,光照周期12L∶12D,所投饲料为山东省青岛市爱乐水产有限公司生产的大西洋鲑专用饲料。暂养期间每天换水2次,每次换水量为总水量的50%。
随机选取30尾大西洋鲑鱼置于圆形养殖池中,温度(15.0±0.5) ℃,DO>6 mg/L。实验期间每天投喂2次(9:00;17:00),每次投喂为定量投喂,投喂时间为1 min,投喂量65 g。每次投喂前10 s开始拍摄,拍摄时间2 min。拍摄所获取的视频均保存于计算机中,后续使用MatLab2018a软件对视频进行背景构建、鱼体提取、图像纹理特征分析等处理。其中,在对视频进行处理并输出整个序列的各帧图像后,通过人为观察,判定投喂开始的图像帧数及鱼群摄食结束时的图像帧数,用于后期的识别和量化准确率评估。
1.3.1 基于鱼体运动特征的处理 首先构建养殖池的背景,并对背景进行实时更新,将采集得到的图像与实时的背景进行差分,并运用Otsu法对差分图像进行分割,去除噪点后得到只包含鱼体的二值化图像;再利用光流法提取鱼体的速度、转角两个特征量,分别计算速度、转角的熵值,得到两者的混合熵。
1.3.1.1 鱼群前景提取 鱼群前景提取是指将鱼群从包含鱼体以及背景中的图像中进行提取的过程,常见的前景提取方法有背景差分法和帧间差分法,前者在背景较稳定时具有较好的提取效果,而后者适合目标运动较为剧烈的情况[13]。
在实验室条件下,稳定的光线为背景差分法的使用提供了可能。因此本实验采用背景差分法提取图像中的鱼体前景,首先计算图像序列中每一像素点在前m帧中的像素均值作为背景,同时建立背景更新机制,使背景随环境光线变化而实时更新。背景建立及更新公式如式(1)所示。
(1)
式中:F(x,y)为当前帧图像中(x,y)点的像素值;Bk(x,y)为背景图像(x,y)点的像素值;α为背景的更新速率,根据预试验中背景更新模型的更新情况,在此实验中,将α设置为1。
对图像序列中每一帧图像进行背景差分,得到包含鱼体前景的灰度图像,之后利用Otsu法[14]对差分后的图像进行分割,得到包含鱼体目标的二值化图像,再利用膨胀腐蚀算法去除残饵、粪便等噪声,得到只包含鱼体的二值化图像。图像处理流程如图2所示。
1.3.1.2 光流法 光流是图像运动速度的表征,当给予图像中每一个像素点一个运动矢量时,整个图像形成一个光流场,其中运动物体的光流与背景光流之间存在差异,因此运动物体能被检测和识别。
本研究利用Lucas-Kanade光流法[15],通过计算前后两帧图像中各像素点的变化,得到每一帧像素点的运动矢量,具有相似运动矢量的像素点即构成同一鱼体。由于算法只对分割后的鱼体二值化图像进行计算,因此检测出的运动矢量均属于鱼体前景的运动情况。
1.3.1.3 速度、转角的统计 利用光流法计算得到的运动矢量为图像中每一像素点的横向及纵向运动速度,通过公式(2)计算得到每一运动矢量的速度及转角,
图2 图像处理流程
之后对图像中所有像素点的速度及转角分别进统计。对统计结果进行归一化,分别得到图像中每一运动矢量在速度及转角上的分布概率。
(2)
Sv(x)=Hv(x), 0
Sθ(y)=Hθ(y), 0
(3)
式中:将速度归一化,分为i个区间;将180°转角分为j个区间;Sv(x)和Hv(x)为速度在x范围内运动矢量的个数;Sθ(y)和Hθ(y)为角度在y范围内运动矢量的个数;Pv(x)和Pθ(y)分别为Sv(x)和Sθ(y)出现的概率。图3是运动矢量中速度的统计直方图,其中横坐标代表运动速度,纵坐标代表运动速度出现的概率。
信息熵在信息论领域一般用于解决信息的度量问题,以及用来描述信息的不确定性[16-17],因此通过计算速度和转角分布概率的信息熵,对速度、转角的离散程度进行衡量。根据熵值的定义,速度和转角两种离散型变量的熵值分别为:
(4)
速度、转角的离散程度能够表现鱼群整体的运动状态,如图3所示,当鱼体处于正常状态时,速度分布较为分散,当处于摄食状态时,速度分布较为集中;同时,鱼群个体的转角在正常游动状态下相差较小,但在摄食过程中个体间的转角差异较大。因此结合速度、转角的熵值,能够对鱼群运动状态进行更好的量化。根据速度和转角的熵值,定义两者的混合熵为[18]:
H=Hv/Hθ。
(5)
1.3.2 基于图像纹理特征的处理
1.3.2.1 图像纹理特征的提取 纹理是图像的内在特征,反映了图像像素间的灰度重复或变化[19]。图像纹理特征可以通过像素及其周围空间邻域的灰度分布来表现图像的局部纹理信息,而灰度图像的纹理特征可以定量描述灰度图像中局部区域像素之间的关系[20]。在鱼群摄食行为实验中,当鱼群处于未摄食状态时,图像显示养殖池水面保持平稳的波动;当鱼群开始摄食时,水面出现较大的波动,图像显示养殖池水面出现水花,图像的灰度信息也出现较大的变化,因此可以利用纹理特征定量描述灰度图像中的信息。
图像纹理特征的分析方法主要有4种:统计方法、基于纹理模型的方法、信号处理方法和结构分析方法[21-22]。其中,统计方法中的灰度共生矩阵(Gray-level co-occurrence matrix, GLCM)应用最为广泛,该算法能够利用二阶度量统计图像中的灰度值在空间上的分布特性,同时具有较强的鲁棒性。
图3 运动矢量速度统计直方图
1.3.2.2 灰度共生矩阵的生成 假设灰度图像G=f(x,y)分辨率为Nx×Ny,为减少计算量,对原始图像进行灰度级压缩,Ng为压缩后的灰度级数。灰度共生矩阵即为从原始灰度图像过渡到灰度压缩图像的灰度变换矩阵。其定义为,以图像中灰度为i的像素点(x1,y1)为起点,统计与其距离为d,方向为θ的像素点(x2,y2)灰度为j的概率。则灰度共生矩阵可定义为:
P=p(i,j,d,θ)。
(6)
其中以X轴正方向为起始角度,逆时针为正方向,θ一般取0°、45°、90°、135°四个方向。则灰度共生矩阵元素在四个方向的具体表达式为:
p(i,j,d,0°)=#{(x1,y1)(x2,y2)∈(Nx×Ny)×(Nx×Ny)|x1-x2=0,|y1-y2|=d;
f(x1,y1)=i,f(x2,y2)=j} ,
p(i,j,d,45°)=#{(x1,y1)(x2,y2)∈(Nx×Ny)×(Nx×Ny)|(x1-x2=d,y1-y2=d)
或(x1-x2=-d,y1-y2=-d);f(x1,y1)=i,
f(x2,y2)=j} ,
p(i,j,d,90°)=#{(x1,y1)(x2,y2)∈(Nx×Ny)×(Nx×Ny)||x1-x2|=d,y1-y2=0;
f(x1,y1)=i,f(x2,y2)=j} ,
p(i,j,d,135°)=#{(x1,y1)(x2,y2)∈(Nx×Ny)×(Nx×Ny)|(x1-x2=d,y1-y2=-d)
或(x1-x2=-d,y1-y2=d);f(x1,y1)=i,
f(x2,y2)=j} 。
(7)
式中#(x)表示集合x中的元素个数。
1.3.2.3 特征量的提取 灰度共生矩阵反映了图像的灰度在相邻间隔、方向及变化幅度上的综合信息,为了能更直观地以灰度共生矩阵分析图像纹理状况,一般不直接应用得到的灰度共生矩阵,而是在其基础上进行二次统计量的计算。本文选取能量、熵、对比度、相关性和逆差距5个二次统计量用于图像的纹理特征描述[23],其中灰度级数被设置为16,距离设置为1。
能量(Energy):灰度共生矩阵元素值的平方和,也称为角二阶距,反映了图像灰度分布的均匀程度和纹理粗细度,计算公式如下:
(8)
熵(Entropy):图像包含信息量的随机性度量,表明图像灰度分布的非均匀程度或复杂程度,计算公式如下:
(9)
对比度(Contrast):反映图像的清晰度和纹理的沟纹深浅,计算公式如下:
(10)
相关性(Correlation):度量灰度共生矩阵在行或列方向上的相似程度,反映局部灰度相关性,计算公式如下:
(11)
式中μ1,μ2,σ1,σ2分别为
(12)
逆差距(Homogeneity):反映图像纹理局部变化的大小,计算公式如下:
(13)
1.3.3 鱼群摄食活动强度分析 在图像序列中,鱼群的运动特征包含了鱼体的运动信息,图像纹理特征则显示了整幅图像的纹理变化。因此,将鱼体运动特征与图像纹理特征进行结合,能更精确地描述鱼群在摄食活动中的行为变化。
式(5)为基于鱼体运动特征的鱼群摄食行为量化。式(8)~(13)为5种图像纹理特征量的计算,5种纹理特征量分别从不同角度对鱼群摄食过程中的图像纹理变化进行描述,因此在式(8)~(13)的基础上,基于图像纹理特征的鱼群摄食行为量化可表示为[24]:
F=α1fENE+α2fENT+α3fCON+α4fCOR+
α5fHOM+α6。
(14)
式中:α1、α2、α3、α4、α5分别为5个图像纹理特征值的系数;α6为综合参数的修正值。
鱼群摄食活动强度是指在摄食前后鱼群的活跃程度,由于饵料应激的出现,鱼群的活跃程度改变,即鱼群摄食活动强度发生变化,而鱼群运动状态和图像纹理的改变能够从鱼群自身和图像整体的角度对鱼群摄食活动强度的变化进行表征。其中,式(5)定义了鱼群的速度、转角混合熵,并将其作为鱼体运动特征来量化鱼群摄食行为,式(14)综合5种图像纹理特征量,通过图像纹理特征表述鱼群的摄食行为变化。因此,根据式(5)和(14),定义鱼群摄食活动强度为:
C=F/H。
(15)
式中:H为鱼群的速度、转角混合熵;F为基于图像纹理特征的鱼群摄食行为参数。
图4为基于鱼体运动特征的鱼群摄食行为量化结果。由图4可以看出,速度、转角混合熵在1~117帧之间保持一定的波动,在117帧处,鱼群开始摄食,此时熵值由非摄食状态下的0.92均值水平迅速下降至接近0.72的水平,并在短时间内回升至0.92处,之后又出现下降并最终在均值为0.85的熵值水平保持波动,直至815帧时,鱼群摄食结束,熵值再次出现波动并逐渐上升到投喂之前的熵值水平,此时熵值在均值为0.91的水平上下波动。
图4 基于鱼体运动特征的摄食行为量化
基于灰度共生矩阵提取的5个特征量在0°、 45°、 90°、 135° 4个方向的分量取平均值,其变化趋势如图5所示。从图5(a)和(e)可以看出,能量和逆差距在趋势上保持一致,均在117帧开始投喂时迅速上升,其中,能量特征值在摄食之前均值保持在0.92的水平,而在117帧开始上升之后直到815帧,仍保持在较高水平,而能量特征值趋势开始下降的时间与鱼群摄食结束的时间一致;同时,逆差距在开始投喂时迅速上升,并在短时间内恢复到投喂前的1.00的均值水平,相比较而言,逆差距在摄食过程中的均值水平为1.00,这与摄食前的水平相同,但逆差距能够识别出鱼群在摄食过程发生时出现的突然变化。在图5(b)和(c)中,熵值和对比度具有相似的趋势,但对比度在迅速下降之后迅速上升到摄食行为发生之前的0.01均值水平,而熵值虽然也出现上升,但仍然保持在较低的0.15均值水平,这个水平相较于摄食行为发生之前的0.25水平仍有较大差距。相比上述4个纹理特征值,相关性的趋势在鱼群摄食前后变化更明显,从117帧开始,相关性在均值为23.98水平上保持波动,并在815帧开始逐渐恢复到鱼群未摄食的5.64均值水平(见图5(d))。
图5 图像纹理特征曲线
基于鱼体运动特征和图像纹理特征的鱼群摄食活动强度量化结果如图6所示,由图6可以看出,在0~117帧处,鱼群处于未摄食状态,此时鱼群的摄食活动强度保持在均值为12.13的水平上波动。在117帧投喂开始时,鱼群迅速进入摄食状态,鱼群的摄食活动强度在短时间内迅速升高至接近70的水平,之后迅速下降并维持在均值为30.85的水平,此水平相较于投饵前的水平明显较高,表明鱼群仍然处于摄食的活动状态。在717帧处,投喂结束,但鱼群仍在摄食残饵,由于鱼群对残饵的摄食为间歇式,此时鱼群摄食活动强度值出现较大的波动,直到815帧鱼群摄食结束后,鱼群摄食活动强度值才出现明显的下降趋势,并逐渐恢复到摄食前的水平。
通过分析图5、6的样本,并结合鱼群摄食行为的人为评定,人为选择经验值作为阈值,得到鱼群摄食行为的检测结果(见表1)。其中开始投喂时间即鱼群摄食开始时间,鱼群实际摄食结束时间由人为观察图像确定,各方法中阈值由各样本中开始投喂和鱼群摄食结束这2个时间点的前后3帧的特征值或鱼群摄食活动强度均值来确定,对于摄食结束的判定标准为持续20帧的量化结果低于阈值可判定为摄食结束,其中利用各量化方法进行量化的结果与人工判定结果相同时视为识别准确,否则为错误。由表1可以看出,在此实验中,单独利用图像纹理特征中的相关性及能量对于鱼群摄食行为具有较好的检测效果,其识别准确率分别达到了87.75%和80.08%。而基于鱼体运动特征和图像纹理特征的鱼群摄食活动强度检测的准确率为94.17%,相较于单一的图像纹理特征参数,识别准确率有一定的提高[12]。
图6 鱼群摄食活动强度变化
表1 鱼群摄食行为检测结果
由于实验条件下的环境光变化较小,本研究选取了背景差分的方法进行鱼体前景提取,并且,为了避免由于环境光变化对前景提取产生的影响,本研究建立自适应背景模型,对背景进行更新。除环境光对前景提取的影响之外,鱼群在摄食状态下由于争抢饵料产生的水花也会对前景提取产生影响。
图7为在自适应背景模型下统计鱼群速度得到的速度熵。摄食阶段,速度熵的均值为4.31,此水平相较于未摄食阶段的4.54均值水平较小,但两个水平之间的差距并不明显。在开始投饵时,速度熵迅速出现下降至3.7的水平,但在很短时间内就恢复到投饵前的水平,恢复的原因可能是在鱼群刚开始摄食时,水花的产生影响了鱼群前景的提取[25]。因此,利用光流法检测出的运动矢量的速度出现误差,从而影响速度的统计结果。当鱼群摄食结束后,水面趋于平缓,水花逐渐消失,鱼群前景提取的误差减小,运动矢量的速度熵在850帧之后恢复到投饵前的4.54均值水平。于欣等[26]在研究鱼群的异常行为时同样也利用光流法对鱼群前景进行提取,并统计了鱼群在正常行为及异常行为的速度及转角分布的差异,结果表明此研究对于鱼群前景提取的效果较好,这是因为实验中光照较为充足,且鱼体规格较小,较难产生水花。在鱼类摄食行为研究中,为了去除水花和水面反光带来的影响,常通过滤波检测并去除水面反光或利用插值替代反射帧[6,11],但这些方法一般计算量较大,并且不太适用于养殖密度较大,水面反光较多的情况。
图7 基于自适应背景差分的速度熵
本实验所用算法在检测鱼群摄食活动方面具有较高的准确率,仍存在进一步提升的空间。本研究选用自然光作为光源,而以速度、转角、形状、面积等特征为基础的算法检测和量化的效果均依赖于鱼体前景的提取效果,尽管可以使用背景更新模型减小环境光线对前景提取产生的影响,但水花和水面反光仍然使前景提取的效果不够理想[27-28]。图像纹理特征通过分析图像在鱼群未摄食与摄食时的纹理差异对鱼群摄食行为进行检测,其中未涉及前景目标的提取,因此鱼群争抢饵料引起的水花及水面反光并未对图像纹理特征的分析产生较大影响。但图像纹理对于光照的敏感性较高,在光线强度发生变化时,图像的纹理特征值也会产生变化[29]。由图5可以看出,相较于鱼群的未摄食状态,鱼群处于摄食状态时5个图像纹理特征值的波动更加频繁,说明在鱼群处于摄食状态时,整个图像更为混乱,其原因可能在于,在鱼群处于摄食状态时,整个图像更为混乱,水面反光和水花使得图像纹理出现变化,但此变化结果对量化结果影响较小。在图5(c)和图5(e)中,在鱼群摄食结束后,对比度和逆差距未恢复到鱼群摄食之前的水平。这一结果产生的原因可能在于,在鱼群开始摄食后,实验环境中的自然光光线减弱,导致图像纹理的沟纹变浅和局部变化增大,从而引起对比度和逆差距的变化。
同时,本研究中选取的自然光条件也较为理想,这为前景提取提供了良好的条件,但在其他实验室及工厂化养殖的自然光条件下,可能会出现光照强度过低导致图像中鱼体不可见的情况出现,此时就需要使用人工光源进行光照补充。
尽管如此,由于速度、转角和图像纹理信息均为鱼类摄食行为量化提供重要信息,本研究将鱼体运动特征和图像纹理特征融合用于鱼群摄食活动强度量化,在对与大西洋鲑具有相似游泳和摄食行为的鱼类如虹鳟等进行摄食行为检测时,本实验算法具有较大的识别潜力。而对于环境光线变化问题,后续的实验在利用鱼体运动特征及图像纹理特征参数进行鱼类行为识别时,可以通过人工光源使环境光照均匀,提高检测的准确率。
本文针对水产养殖中的鱼类摄食行为,利用自适应背景建模和光流法从图像中提取鱼群的速度、转角,通过信息熵研究了鱼群在摄食和非摄食状态下速度和转角的分布情况,提取了灰度图像的5种纹理参数,结合鱼体运动特征和图像纹理特征,提出了一种识别鱼群摄食活动强度的量化方法,利用该量化方法识别鱼群的摄食和非摄食状态的准确率可达到94.17%。由于图像纹理特征值在不同光照以下会发生相应的变化,在实验过程中需要保持均匀的光照,并且由于背景差分的速度、转角统计值在检测的过程中也易受水花因素影响,因此在利用鱼体运动特征或图像纹理特征进行量化时,仍需要结合其他特征进行补充。后续研究将针对人工光照下的鱼群摄食行为检测和识别,以图像纹理特征为基础,在鱼群前景较难完全提取的情况下,对水面反光以及因鱼体活动形成的水花进行量化研究