采用机器视觉和傅里叶频谱特征的循环水养殖鱼类摄食状态判别
2021-10-12陈雨琦冯德军桂福坤曲晓玉
陈雨琦,冯德军,桂福坤,曲晓玉
(1.浙江海洋大学国家海洋设施养殖工程技术研究中心,舟山 316022;2.浙江海洋大学水产学院,舟山 316022)
0 引 言
世界粮农组织(FAO)于2020年的统计报告中指出,2018年全球鱼类产量达到1.79亿t,其中8 200 万t来自水产养殖,价值 2 500亿美元;占水产品总量的46%,占人类鱼类食用量的 52%[1]。工厂化养殖模式作为一种高效养殖模式,近年来得到了越来越多的重视[2]。截止2019年底,中国工厂化水产养殖面积达到3 515 万m3,工厂化水产养殖产量达226 405 t[3]。而在鱼类的养殖中,饵料支出约占总成本的 50%~80%[4],是最主要的可变成本,因此饵料的精准投喂在经济方面具有重大意义。此外,过量饲料投喂不仅会影响鱼类的正常生长,还会造成水体污染,引起鱼类的疾病[5]。而现阶段饵料的投喂基本依据养殖人员的经验判断鱼类摄食的饵料需求量,主观性强,一致性差[6-7]。
为实现工厂化养殖环境中的精准投喂,需要对鱼类摄食行为进行更精确的分析与判断。关于鱼类摄食行为的研究方法主要有高频声呐、声学标签[8-9]及计算机视觉技术等,其中计算机视觉技术(Computer View,CV)为一种非入侵式且稳定性较好的观察技术,在水产养殖领域有广泛的应用[10]。王文静等[11]通过图像处理技术测量鱼面积,建立拟合模型实现对水下鲆鲽鱼类的质量估计;穆春华等[12]通过计算机视觉技术结合机器学习的方法,对分割所得残饵分辨前景进行6种不同特征提取并分类,实现对循环水养殖系统的残饵、粪便的识别;杨杰超等[13]基于计算机视觉提出了在复杂背景下针对大黄鱼个体信息提取的方法。在鱼类摄食行为的判断研究方面,计算机视觉技术也扮演了重要的角色,其大致分为2种不同的方法:间接评估方法(通过对非鱼体如残饵或水面反光区域的分析以间接分析鱼体的摄食行为)以及直接评估方法(直接观察鱼体本身进行摄食行为分析)。其中,直接评估方法较间接评估方法应用广泛,技术成熟。其主流方法是通过提取摄食图像的纹理信息实现分类,陈彩文等[14]利用灰度共生矩阵对纹理特征分析,得到鱼类的摄食活动强度;Zhou等[15]利用近红外图像,提出了一种基于支持向量机和灰度梯度共生矩阵的反射帧分类去除方法来量化鱼类行为;陈彩文等[16]利用灰度差分统计法、灰度共生矩阵和马尔科夫随机场模型提取鱼群的13个纹理特征作为特征向量,以此实现对鱼类摄食行为的分类识别。此外,直接评估方法中的光流法也经常应用于摄食行为判断,例如,赵建[17]借助于Lucas-Kanade光流和信息熵,利用鱼群自身摄食行为特征、水体流场变化对鱼群整体摄食活跃程度进行量化;陈志鹏等[18]同样利用 LK光流法计算鱼群的运动方向矢量,并采用方向熵表征鱼群运动的混乱程度,成功区分了鱼群正常状态与摄食状态。除上述 2种方法以外,还有许多属于直接评估方法的鱼类摄食行为研究,例如,张佳林等[19]利用变分自动编码器求出每帧对应高斯均值和方差向量,形成特征矩阵来训练CNN对鱼类摄食行为分类;Atoum等[20]通过对最优选择区域滤波,对鱼类水面上的残饵进行识别来判断鱼类摄食行为,实现养殖的自动投喂;张重阳等[21]提出了一种基于鱼群摄食图像的颜色、形状和纹理 3种特征融合与机器学习的鱼类摄食行为的检测方法,并构建3层BP神经网络进行检测,精度可达97.1%。
以上方法主要集中于其对鱼群本体的分析,虽然能够准确地对鱼类摄食行为进行判断,但会受到水面反光、鱼群拥挤、光线重叠等因素的严重干扰,对其准确率造成严重影响。而间接评估方法虽然应用较少,但该方法能够将会对正常的鱼群前景提取造成严重影响、增大结果的误差的水面反光波纹等大多情况下作为需过滤或剔除的强干扰因素作为一种判断依据[22-23],例如,赵建等[24]提出了一种基于Lucas-Kanade光流、统计学方法以及信息熵对反光区域变化不规律程度来评估鱼群摄食活动强度。通过对由鱼类摄食行为引起的水面反光区域变化特征的分析,可以有效避免复杂鱼类目标的前景提取和鱼群个体跟踪,计算冗余度低,效率较高。故提取水面波纹作为前景特征对鱼类摄食行为进行判断研究。
该研究采用快速傅里叶变换获得水面波纹的频谱图,以此量化鱼类摄食行为。傅里叶变换就是将时域信号分解成众多不同频率的正弦信号或余弦函数并叠加之后的和[25-26]。而快速傅里叶变换(Fast Fourier Transform,FFT)是在保留了傅里叶变换的奇偶性、虚实性等特性的基础上,通过离散傅里叶变换得到的[27],快速傅里叶变换的出现简化了傅里叶变换的算法,使得运算更加方便快捷[28],且图像处理方面已经有了较为广泛的应用,例如,温芝元等[29]通过提取傅里叶变换幅度谱并对其进行多重分形分析及多重分形谱的二次拟合来进行病虫害的识别;周游等[30]提出一种基于图像傅里叶频谱径角变换的纹理特征提取方法,对藤茎类植物的显微图像进行了相似性度量测试并取得更好效果;石康君等[31]在通过傅里叶变换分割频域信息构造特征向量,实现了对织物褶皱程度的评级等。目前,该方法尚未应用到鱼类摄食行为的识别中。
由于在图像中,图像的空间频率[32]表征了图像相位变化的快慢程度。图像中突变(如边缘和线条)、剧烈起伏变化(如噪声)的区域,空间频率较高。通过对大量样本数据分析结果显示,鱼群在摄食时,水面波纹变化剧烈,从而使反光区域图像的突变、起伏变化区域数量大大增加,因此高频信息也会随之增强,同时影响频域中的幅值信息。针对上述现象,本文提出一种基于傅里叶频谱特征的鱼类摄食行为判断方法。利用水面波纹前景的提取图像对其进行频域分析,并通过对频谱滤波分析,择除幅值变化不明显的频率范围。在该范围内以不同步长分割幅值,以此作为判断鱼类摄食行为的特征值,若幅值之和较大,说明水花波动剧烈,鱼类摄食行为强;若幅值之和较小,说明水花波动不剧烈,鱼类摄食行为弱。以上述结论构建特征向量集后通过支持向量机(Support Vector Machine,SVM)实现对图像样本的分类。该研究可对全自动的精准投喂控制提供理论支持和技术参考。
1 材料与方法
1.1 试验材料
本试验采用罗非鱼(Tilapia)作为试验对象,试验鱼均购于广州市添发鱼苗发展有限公司。试验时罗非鱼数目为50条,质量为(57±10)g,养殖环境水温控制在(29±2)℃[33],溶氧量为(4.5±0.5)mg/L,pH值为(7.8±0.3),投喂饲料浮性饲料。
1.2 视频采集
该研究采用如图1所示的视频采集装置,主要包括摄像机(尼康D90摄像机)、支架及圆形养殖池。养殖池半径90 cm,池高80 cm,水位高度(40±2) cm,视频采集系统中,光源采用普通室内光源,摄像机安装在养殖池的正上方,摄像头距离水面70 cm,其采集图像为24-bit RGB真彩图像,分辨率为1 280×720像素,采集帧率为24帧/s。
1.3 试验方法
该研究通过量化水面波纹反光的剧烈程度对鱼类摄食行为进行判别,因此对鱼群摄食活动前后10 min的视频进行分析。首先提取所采集视频中的水面波纹二值化图像,并通过二维傅里叶变换将图片从空间域转化到频率域。在频率域中对可视化傅里叶图像的各位置进行幅值提取,并构建环形滤波器确定幅值变化差异较明显的频谱范围。在该范围内,通过最佳递增步长将频谱图分割为若干特征子区间,统计每一区间内频谱幅值之和,并将其作为特征向量,以此量化鱼类摄食行为并训练支持向量机,实现对鱼类摄食行为的精准判断。本具体算法如图2所示。
2 图像处理
2.1 前景提取
对鱼类本体进行分析是传统的判别鱼类摄食行为的主要方法,但是其容易受到水花、水体质量、阴影等因素的干扰。然而,相关研究表明,由鱼群摄食活动引起的水面反光区域的变化特征能够在一定程度上表征鱼类摄食活动的激烈程度[24]。因此,该研究对水面反光波纹所提取的频率信息进行分析。首先,对水面波纹进行前景提取,去除图片中的背景干扰。由于在RGB色彩空间中,鱼本体及水中杂质干扰较多,该研究将图像从RGB空间(图3a)转化到HSV空间(图3b);其次,提取S分量(饱和度,图3c)和V分量(亮度,图3d)。
通过对比图3c和3d可以看出,反光区域的对比度很低但亮度很高,因此该研究分割公式如下
式中Is(x,y)和Iv(x,y)分别表示图像在(x,y)处的饱和度值和亮度值,Ts和Tv分别为饱和度阈值和亮度,f(x,y)表示经二值化处理后像素点(x,y)的取值(图3e),f(x,y)值为 1的区域为反光区域[17]。该研究中,经过提取反光区域与原图进行多次效果比对,最终分别确定Ts值为 0.25,Tv值为0.75。
2.2 傅里叶变换
水面反光区域变化的剧烈程度可以明显反应鱼群运动的不规律程度,并能够在频域中用幅值对其进行量化。该研究利用傅里叶变换提取原始图片中的频谱幅值,从而分析原始图片中波纹(水花)图像变化的剧烈程度,以此量化鱼类摄食欲望程度。傅里叶变换能够将预处理所得的图像波纹信息由空间域变换至频率域,而快速傅里叶变换能够提高傅里叶变换的计算效率。因此,该研究采用快速傅里叶变换对原始图像进行处理。
傅里叶变换可以看作是数学上的棱镜,将函数基于频率分解为不同的成分。图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。从物理上来看,傅里叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。具体原理可参见相关文献[31]。
令f(x,y)代表一幅尺寸为M×N的数字图像,由f(u,v)表示f(x,y)的二维傅里叶变换,见公式(2)
式中u=0,1,2,…,M-1;v=0,1,2,…,N-1。其逆变换为
式中x=0,1,2,…,M-1;y=0,1,2,…,N-1;j为虚数。
由于傅里叶变换后所得空域矩阵f(u,v)内值通常为复数,无法实现可视化,因此在本试验中,通过计算图像的频谱,即f(u,v)的幅度,从而将其转化为可视化傅里叶频谱图,该方法见公式(4)
式中R(u,v)与I(u,v)分别表示f(u,v)的实部和虚部。为增强频谱图的可观察性,将所得频谱图进行居中变换及log增强,再对其以10.5为灰度阈值二值化[34],摄食状态(图4a)和非摄食状态(图4b)可视化频谱图与原图比较如图4所示。
已知在进行居中变换的可视化频谱图中,中心区域与边缘四角区域所代表的频率高低不同,中心区域代表高频信息,边缘四角区域代表低频信息。在相同范围的频谱区域内,频率越高,周期越短,幅值之和相对较大,说明水花波动剧烈,鱼类大概率处于摄食状态;频率较低,周期较长,幅值之和相对较小,说明水花波动不剧烈,鱼类大概率处于非摄食状态。由图4可知,在鱼类摄食状态下波纹频谱图具有更多的高频信息,代表摄食行为更为剧烈。而相同频率范围内频率越高,其范围内的幅值总和也会相应增大。此外,傅里叶变换后所得频谱图中的频率信息较原图像的空间域信息更易提取,表征性也更强。因此,根据频谱图的这一特征,将相同频率区间内 2种摄食状态的幅度值作为判断鱼类摄食行为的特征值。不同环境条件下,虽然鱼类摄食状态与非摄食状态下的幅值对比均较为明显,但划分不同摄食状态的幅值存在较大的差异,较难取得一个具体的阈值,因此不能通过设定简单的阈值来判断摄食状态。该研究通过对频谱幅值提取,作为支持向量机的特征向量进行训练,实现对摄食状态更精确的判断。
2.3 特征向量提取
上文所述方法提取的幅度值之和为傅里叶频谱图中的所有幅值之和,仅有一组数据,缺乏数据多样性,无法为支持向量机提供充足的特征向量。为增加样本数量,缩小实验误差,该研究通过不同环形滤波器对频谱图像进行滤波,通过不同内径的环形滤波器将原始频谱图分为不同区块,并统计每个区块内的幅值之和,以此作为特征向量。环形滤波器的构建如公式(5)所示
式中D(u,v)为选定点距滤波器中点距离,D0为滤波器内径,D1为滤波器外径。
为进一步提高该研究的成功率,在对每段区间提取幅值之和后,需要对摄食行为和非摄食行为幅值数据中相同小区间的幅值之和进行对比,最终舍弃在摄食状态变化时幅值变化不明显的频谱范围,并将剩余区分度较好的频率范围内的幅值之和作为构建特征向量的数据集。
2.4 构建支持向量机
本试验摄食行为分类通过训练支持向量机分类,主要包括训练样本和测试样本特征数据的提取,数据的预处理和支持向量机的参数优化。
支持向量机是20世纪90年代中期发展起来的基于统计学习理论的一种机器学习方法,其通过寻求结构化风险最小来提高学习机泛化能力,实现经验风险和置信的最小化。其主要思想是建立一个最优决策超平面,使该平面两侧距离该平面最近的两类样本之间的函数间隔最大化,实现对样本的最优分类。最优超平面示意图如图5所示。
由图5可知,所有在上间隔边界上方的样本属于正类,在下间隔边界下方的样本属于负类,2个间隔边界的距离被定义为边距,位于间隔边界上的正类和负类样本为支持向量。
本试验由拍摄视频所得的2 197张波纹图片中,选取投喂前及摄食完成后的图片集作为非摄食状态图片集,将投喂后直至摄食完成前的整个摄食过程的图片集作为摄食状态图片集。除此之外,舍去2种摄食行为分界时间节点附近的、无代表性的模糊图片。随机选取摄食行为和非摄食行为状态图片各150张作为训练图片集。分别将非摄食状态和摄食状态的前90张图片作为训练集,将后60张图片作为测试集,即训练集共有180张图片,测试集共有120张图片。对图片集进行幅值提取并转化为特征向量来训练SVM模型,并通过交叉验证法对c/g值进行优化,提高模型识别准确率。训练平台为MATLAB 2016b和libsmv 3.24工具箱。
3 结果与分析
3.1 特征向量提取范围的确定
本文以50为步长的滤波器对频谱图进行滤波,滤波完成后对所得的频谱图进行傅里叶逆变换,并对相同频率区间摄食行为和非摄食行为滤波结果图片进行对比,结果如图6所示。
图6中,在D(u,v)>50时,2种状态在图中的区别较为明显,摄食行为图像中反光区域的离散程度和噪声明显高于非摄食行为,而在D(u,v)<50时,波纹位置的细节较为丰富,而二者差异却不够明显。因此,推测在选择频谱幅值之和作为判断鱼类摄食行为的特征值时,要舍去影响判断的模糊范围,即选择D(u,v)>50的频率范围。
以上述例子为样本,为增强该试验结果的普适性,本文以20张随机同种状态图片为一组,每种状态5组图片,统计每组图片的幅值并求其均值。本文选取50为步长的滤波器将两种状态频谱图分为各个不同区间,并提取各区间内幅值之和,取均值结果如图7所示。
由图7可知,在半径为0~550的频率范围内,除0~50子区间外,所有特征子区间频谱幅值均有很好的区分度,即摄食行为水面反光区域频谱图的幅值之和明显大于非摄食行为水面反光区域频谱图的幅值之和,与上文论证结果相同,因此由该方法得出的特征向量提取范围具有普适性,能够更好地对摄食行为进行区分,减少干扰,提高成功率。
3.2 特征向量提取
该研究频率区间内幅值之和作为特征向量,且幅值之和随环形滤波器内外径增大而逐级递减。为确定不同分割步长对实验结果准确率的影响,本文分别以不同宽度的环形滤波器在频率区域内进行频谱滤波,并对其分类准确率分别进行了统计。
由表1可知,步长位于70~90之间时,可以获得较好的分类效果且产生的特征子区间数较少,训练时间相应也较少。因此在本文中,选择90为步长对特征向量提取范围进行分割,所得到的子区间从小到大依次为[50,140]、(140,230]、(230,320]、(320,410]、(410,500]、(500,550]。通过提取特征子区间内的幅值之和,在 300个样本中,构建训练集和测试集的数据样本,并以此构建训练集和测试集,训练支持向量机。
表1 不同分割步长的分类准确率及平均训练时间Table 1 Classification accuracy and mean training time of different split steps
3.3 数据预处理和参数选择
本文采用支持向量机对测试样本进行分类预测。其对没有归一化前的数据进行训练,需要较长时间才能达到KKT(Karush-Kuhn-Tucker conditions)条件,即满足最优解的必要条件,导致运算时间过长,归一化能够方便后期数据的处理,并保证程序运行时收敛加快,但是并不是所有数据都进行规范化。在该研究中,将数据归一化至[-1,1]与未归一化后分类准确率进行了研究比对,结果显示,在进行数据归一化后,摄食行为的分类准确率能够达到 98.3%,较归一化前的42.5%有大幅提高。
在支持向量机中,数据归一化后,还需要对参数进行选择。支持向量机中,核函数宽度g与惩罚系数c对支持向量机分类准确率影响较为明显。核函数能够将特征向量映射到更高维空间中,使原本线性不可分的数据变为可分;而惩罚系数权衡了经验风险和结构风险,即惩罚系数越大,经验风险越小,风险结构越大,则越容易出现过拟合;惩罚系数越小,经验风险越大,风险结构越小,则容易出现欠拟合。为提取到较好的参数,本文采用交叉验证法提取参数,从数据集中按一定比例选取若干数据集作为训练集,并将模型输出的预测值与对应数据的因变量进行比较,提取出分类准确率最高的系数组合。本文进行了多次交叉验证,并对每一组的分类准确率(accuracy=标签正确数/总数)进行统计,选取准确率最高的5组系数如下表2所示。
表2 多次交叉验证结果对比Table 2 Comparative results of multiple cross-validation results
由表2结果可知,交叉验证法所得c/g参数分类成功率均能达到预期标准。由于惩罚系数c越高将会造成过学习状态,使验证数据的准确率虚高,而由于本文数据集充足,不必考虑欠拟合状态,因此本文选择惩罚系数 c最小、准确率最高的一组数据作为最佳c和g,即c为1.56×10-2,g为 0.29。
3.4 检测结果对比分析
将本文方法与其他基于机器视觉的鱼类摄食行为判断方法进行训练测试后,结果对比如表3所示。
表3 各方法检测结果对比Table 3 Comparison of detection results of each method
基于形状和纹理特征的鱼类摄食状态检测方法的准确率最低,其原因是该方法仅考虑鱼群图像的静态特征变化信息,容易将非摄食状态下的鱼类聚集现象误判断为摄食行为。并且,前2种方法均对鱼群本体进行分析,容易受到浑浊水质、水面反光等因素的影响,因此成功率较本文方法较低。由于该研究需要对首先对数据集进行采集训练,以成功搭建支持向量机模型,因此测试运行时间大部分集中在对数据集的训练上,而实际检验样本所耗时间在1 s内;此外,在相同养殖池环境中,该模型可重复使用,无需多次训练,因此在实际工厂化养殖环境中,综合效率将明显高于其余方法。
该研究在工厂化养殖水质环境下,通过对鱼群摄食行为所造成的水面反光区域,并通过对傅里叶频谱图的分析来量化其区域变化的剧烈程度,从而实现对鱼类摄食状态的判断。该研究不需要对鱼群本体进行任何提取和分析,因此能够有效地避免水质浑浊、水面反光、鱼影重叠等复杂问题,对鱼群的摄食行为判断具有较高的准确率和普适性。因此该研究可以应用于工厂化养殖鱼类的摄食行为判断与精准投喂研究。
4 结 论
本文提出了一种基于傅里叶频谱特征的鱼类摄食行为判断方法。通过傅里叶变换及频域滤波确定特征向量提取范围,统计该范围内频谱幅值之和作为判断鱼类摄食行为的特征值,并通过支持向量机进行分类预测,取得了较好的分类效果。研究结果如下:
1)将鱼类摄食过程的图像从空间域转换为频率域可以方便特征向量的提取。在50~150的频率范围内,通过步长为 50的环形滤波器提取频谱幅值,以此量化鱼类摄食过程水面波纹的离散程度,进而判别鱼类的摄食行为。
2)对支持向量机模型的特征向量提取进行了优化,结合交叉验证法的测试结果筛选出核函数宽度和惩罚系数2个评价系数,当2个系数分别取1.56×10-2和0.29时效果最好,识别结果准确率为99.24%。
在实际工厂化循环水养殖中,可以对鱼群摄食行为的视频数据样本进行提前训练,并对比选定合适的阈值,得到判断鱼类摄食行为的分类器,并将其置于养殖的投喂控制系统中,实现对鱼类的精准投喂。
然而,实际养殖过程中,当养殖对象的大小和体长等不足以对水面造成反光区域明显变化时,该研究所提出的对鱼类摄食判断方法的可实施性将会明显降低。并且该方法也需通过对鱼类的定时投喂(即鱼类的摄食规律)为基础,而鱼类的摄食规律将会受到各种客观因素如养殖环境、个体大小等影响。因此探索不完全依赖于养殖对象的摄食习性和规律的精准投喂方法将是下一步研究的目标和重点。