基于帧间光流特征和改进RNN的草鱼摄食状态分类

2022-07-08 09:32刘世晶涂雪滢
水生生物学报 2022年6期
关键词:光流偏振摄食

刘世晶 涂雪滢 钱 程 周 捷 陈 军

(1.中国水产科学研究院渔业机械仪器研究所,上海 200092;2.上海市崇明区水产技术推广站,上海 202150)

近年来,随着智能、绿色、生态农业不断发展,水产养殖面临产业转型升级发展机遇与挑战。饲料作为水产养殖产业重要的生产投入品,占水产养殖总成本50%以上[1],是影响水产养殖整体效益重要因素。此外,由于饲料浪费引起的水质污染,已经成为制约水产养殖绿色健康的发展的重要瓶颈[2]。因此,开展精准投喂技术研究,减少生产过程饲料浪费,对节省养殖成本、降低水体污染和提高养殖效益具有重要意义。

池塘养殖特别是户外池塘养殖,生产工况复杂,导致传统检测手法和分析手段很难准确地量化分类鱼类摄食行为,大大增加了实施精准投喂的难度。近年来,国内外相关研究机构,围绕水产养殖精准鱼类摄食行为分类开展了大量研究工作,主要集中在光学和声学两个方面。其中声学量化方法,主要是利用水听器和声纳等主被动声学技术,测量鱼类摄食声音和摄食行为,并通过回归分析和机器学习等手段对鱼类不同摄食阶段进行分类。例如,Lagardere等[3]利用水听器,发现大比目鱼摄食频率为7—10 kHz,变化幅度为15—20 dB;Juell等[4]利用小型声纳测量固定位置饵料剩余情况,并结合鱼类摄食行为经验分析,判断鱼类当前摄食状态。上述方法在背景噪声较少的工况环境取得了较好的试验效果,但尚无法满足具有全频环境噪声和复杂的池塘底质环境的户外池塘养殖场景应用需要。相比于声学技术,视觉技术由于其非接触、高精度和低成本等特点,目前已经成为该领域研究热点[5]。Liu等[6]和Ye等[7]采用基于单帧图像的特征分类识别方法,量化鱼类摄食行为,在鱼类摄食瞬时行为评价中取得了不错的分类效果,但由于鱼类摄食行为具有明显的强弱波动特征,基于局部特征的分类方法很难有效统计全局特性,导致其预测结果鲁棒性不足。为了解决这个问题,张佳林等[8]提出一种基于变分贝叶斯编码的卷积神经网络分类方法,利用固定长度视频序列特征判断鱼类摄食状态,实现大西洋鲑(Salmo salar)摄食强度粗分类;唐宸等[9]利用神经网络和专家打分法对鱼类摄食的连续图像进行识别分类,实现了的鱼类摄食状态的细粒度分割。上述基于时间特性的鱼类摄食行为分类方法,采用固定光照条件获取鱼类摄食图像,并利用全连接网络实现行为分类,适用于光照稳定、鱼类集群和分散行为较为明显的设施化养殖环境,且由于采样频率固定,模型的泛化能力较弱。

针对上述问题,本文围绕户外池塘草鱼精准投喂技术需求,提出一种基于帧间光流特征和改进递归神经网络(Recurrent neural network,RNN)的草鱼摄食状态分类方法。该方法利用偏振相机获取多张鱼类摄食偏振图片,并通过图像亮度信息选取低反光图像作为训练样本,以期提高系统在户外场景的适应能力;其次,根据投饲机启停状态分割视频序列,并利用光流法计算分割后视频序列内相邻两帧运动状态,以期细分摄食行为时间特性;以相邻两帧运动状态为内参,构建基于帧间运动特征的视频序列特征向量,并以此为基础,构建特征样本集;然后,基于视频序列特征样本,利用改进RNN网络实现摄食状态分类,增强投喂状态识别的时间相关性;最后,通过与不同摄食分类模型比较,验证本文方法的有效性。

1 材料与方法

1.1 平台与硬件环境

试验使用的偏振相机为型号为IMX250MZR,帧率24 fps,采集图像分辨率为2448×2048像素。相机偏振角度为0°、45°、90°、135°,可同时获取4个角度的偏振图像。试验用图像处理器CPU主频4.3 GHz,内存32 G,显存2 G,CUDA并行处理核心256个。集成开发环境为Anaconda3和python3.6,RNN模型由pytorch程序包实现。

1.2 数据获取

鱼类摄食视频数据采集自上海市崇明区瑞钵水产养殖专业合作社户外养殖池塘,采样时间为2020年7月1日至2020年7月30日。试验池塘占地4666.7 m2,养殖品种为草鱼,亩平均养殖当量为500 kg。池塘配有1台增氧机和1台投饲机,投饲机采用传统的间歇式投喂方式,启停时长分别为4s和2s。按照养殖户养殖习惯,试验期间日饵率定为7.2%,每天理论投饲量为252 kg,投饲机每天投喂3次,投饲时间为9:00、13:00和17:00,单次理论投喂量为84 kg,投饲时长约为28min。试验时,为了增加比较样本数量,将每次投喂时长设定为30min,试验期间保持不变。

如图 1所示,采样相机采用三角支架安装在投饲机侧边,采用吊装形式固定,机座中轴近似与水面垂直。系统集成控制装置安装在支架中部,采用Zigbee无线通信方式控制相机和投饲机。手动调整相机角度,使图像中心与投饲机撒料中心尽量一致,且只拍摄水面图像。采用4G无线传输形式获取投喂阶段视频,并同步记录投饲机开关状态。

图1 相机现场安装图Fig.1 Site layout of camera

1.3 数据预处理

户外环境养殖水体镜面反射是影响成像质量的重要影响因素,已经成为制约视觉技术深入应用的关键技术瓶颈。为了降低户外光照的影响,增加技术的实用性,本文利用具备4个偏振角成像偏振相机作为采样装置,同时获取4幅不同偏振角图像图 2。为了选取最优偏振图像构建样本集,提出一种基于图像饱和度和亮度的图像选取方法。

图2 偏振图像选择Fig.2 Polarization image selection

利用文献[10]中方法,将RGB颜色空间转换为HSL(Hue,Saturation,Luminance)颜色空间,其中S(饱和度)和L(亮度)分量取值范围为0—255;采用专家经验法初步确定L上限阈值PL,当亮度高于上限值时认为存在过度曝光现象。水面反射光线偏振角度与太阳高角度值紧密相关,因此在特定时间,当一个偏振角度图像存在过度曝光现象时,肯定存在另一个偏振角度图像无过度曝光现象。以0°偏振角图像作为起始点,按照偏振角度从小到大顺序遍历所有偏振图像,确定所有图像像素点亮度都低于PL时的一个或多个偏振角度;当无过度曝光偏振角度为1个时,以此偏振角度图像为样本构建图像样本集;当存在多个无过度曝光偏振角度时,比较不同偏振角度图像饱和度,选择饱和度最高的偏振角度图像构建样本集。

2 分类模型构建

2.1 光流法

本文采用光流法[11]构建鱼类摄食运动特征。光流法是一种计算帧间运动信息的计算方法,通过光流法在全局图像范围内计算关键像素点的运动场,能够有效描述鱼类摄食图像瞬时变化情况。光流法主要依靠三个假设:(1)亮度恒定,外部光照条件恒定;(2)时间连续,帧间图像运动连续且位移较小;(3)空间一致,相邻像素运动方向一致。基于这三个假设,我们可以得到像素点灰度约束方程:

式中,L(u,v,t)代表图像(u,v)位置初始像素点在t时刻的光强度值,u为横轴方向像素坐标,v为纵轴方向像素坐标。L(u+du,v+dv,t+dt)代表t+dt时刻初始像素点移动到(u+du,v+dv)位置时的光强度值。利用泰勒展开公式,可得光流方程为:

式中,x、y分别为光流沿u、v方向运动矢量,、、表示像素点灰度沿u、v、t三个方向的偏导数。

为了描述鱼类摄食图像时间序列图像运动特性,本文选择速度和转角两个参数表征光流特征,其中速度特征代表像素的运动矢量(式3),转角特征代表像素运动的相位角度(式4)。

式中,Mag(u,v),ang(u,v)分别为(u,v)点运动速度和相对转角。文献[12]比较了不同光流方法的算法性能,指出Lucas-Kanade(LK)光流法[13]在所有测试集都表现良好,因此本文选择LK光流法作为光流特征提取方法,得到的相邻两帧光流特征矢量场图像如图 3所示。

2.2 光流强度评价模型

本文采用速度矢量和相位角度来表征光流矢量,只能定性的评价鱼类摄食图像光流脉动,很难定量的量化光流脉动。鱼类摄食运动具有明显的随机特性,当鱼类开始抢食时,水面波动剧烈,造成的图像特征变化多样,基于视频序列计算出的光流矢量差异较大,仅通过矢量场评价摄食运动强度是极不科学的。此外,在撒料中心区鱼类活动相比与周边区域更为剧烈,导致图像光流场分布不均匀,增加了全局光流矢量量化难度。

针对此种情况,本文提出一种基于光流能量值和分块描述的图像光流脉动量化方法,首先采用等分策略将图像分割成44、88或3232等多个独立单元,计算每个单元的光流运动矢量,并利用文献[14]中的方法计算每个图像块的光流能量值,能量值计算公式如下:

式中,Lk为分块图像第k个像素点的像素大小,n为图像块像素点总数,Magk为速度矢量,angk为相位角度。为了量化图像光流矢量,利用2-范数来代表分块图像中像素点的光流脉动能量,并用所有光流脉动能量的期望来代表分块图像中光流的平均脉动强度,则单帧图像光流脉动强度表征向量X i为:

式中,其中Xi为时间长度索引i处的特征向量,n为分块 数量,为每块的平均光流能量值。

2.3 RNN模型

近年来,基于序列的递归神经网络(Recurrent neural network,RNN),在语音识别和机器翻译等领域取得了良好的应用效果,其良好时间序列追溯能力,为动物行为分析提供了有效的技术手段,且正逐渐应用到相关领域的研究[15—17]。目前常见的RNN改进结构包括LSTM和GRU等,改进结构能够有效避免网络层数增加产生的梯度消失和梯度爆炸问题,但会增加算法运算复杂度[18,19]。受饥饿程度和饱食度影响,鱼类摄食行为虽然具有明显的时间特性,但是一个逐步变化的过程,单个视频样本序列内整体摄食强度变化不剧烈,因此利用经典RNN模型开展鱼类摄食状态分类是可行的。此外,针对实际生产工况,鱼类摄食状态分类结果将为下一步精准投喂提供决策数据,因此对算法实时性要求较高,相比于改进结构传统RNN结构更为简洁,运算速度更快,更符合实时性要求较高的应用场景使用要求图 4。

图4 改进RNN模型结构Fig.4 Improved RNN model structure

由于鱼类的可驯化特性,其对投饲机投饲声音能够产生应激行为,但饱食后抢食行为不明显,因此需结合投饲机暂停投喂后鱼类行为综合判断鱼类抢食状态。因此,本文采用双向RNN(Birectional Recurrent Neural Networks,BiRNN)结构构建分类模型[20],模型结构如图 3所示。其中,RNN输入为时视频序列光流脉动强度特征X={Xi}。双向RNN具有前向和后向两个隐藏状态,在时间索引t处的全局隐藏状态为,隐藏状态更新如下:

式中,g和f均为激励函数,U、W、分别代表输入层到隐藏层权值,为BiRNN隐藏层输出。对于鱼类摄食等群体运动行为分类,由于其运动状态具有明显的时间关联特性,需对时间序列进行整体分析,以判定其全局状态。如图 3所示,为了增强模型对全局数据的利用能力,模型在BiRNN结构的基础上增加了一个具有线性激活函数的全连接层,并采用前馈神经网络实现摄食状态分类,状态分类估计如下:

图3 光流矢量场图像Fig.3 Optical flow vector field image

式中,Linear为线性激活函数,T为隐藏层输出权值,b为偏置量。

2.4 模型评价指标

为了评价摄食状态分类效果,本文选择准确率(Precision)、召回率(Recall)和F1得分(F1·score)作为模型评价指标。其中准确率主要用于评价模型精准识别程度,召回率主要用于评价正确样本的分类效果,而F1得分主要用于评价算法的整体效果,避免出现保守预测和暴力召回的情况[21]。模型评价公式如下所示:

式中,N待分类样本总数,为正确分类样本数,M为样本分类数,为第l个类别正确分类样本数。

3 结果与讨论

3.1 样本集构建

养殖试验共采集正常养殖30d投喂数据,养殖场每天投喂3次,每次投喂时长30min,合计获得视频数据2700min,按照投喂机1次投喂和暂停时间6s计算,共得到样本集数据27000个。在图像采集时,设定采集帧率为24帧,每2帧获取一组光流数据计算,单个样本向量的维度为72。为了找到最适图像分割比例构建光流特征,按照4×4、8×8、16×16和32×32构建4组比较样本。

为了保证样本基础分类的准确性,选择5名科研人员按照弱摄食、中摄食和强摄食3个分类标准对试验样本进行分类,当有3名或超过3名人员同时选择一种状态时将该状态作为该视频片断的摄食状态。当选择的摄食状态有较大分歧时,即产生2:2:1的选择比例时,低比例人员在剩余两组内重新选择,并根据选择结果,将得票较多的状态作为分类状态。按照此种方法,共获得弱摄食状态样本数据6721个,中摄食强度样本数据13467个,强摄食状态数据6812个。按照深度学习经验样本分类办法[22],基于四舍五入原则,将所有摄食状态样本集按照8∶2的比例构建训练集和测试集。

3.2 模型参数选择

改进的RNN模型共包括BiRNN层和全连接层两个主要组成部分。因此,模型的超参数主要包括隐藏层的数量、每层中隐藏的RNN单元的数量、学习率和匹尺寸等。本文采用pytorch神经网络矿建实现和优化改进RNN模型,其中隐含层数量设为2,每层RNN隐藏单元数量设为80。采用Adam优化器更新梯度变量,并设定丢失率为0.3 %,匹尺寸为60。

3.3 试验结果分析

本文提出的基于光流能量值的运动强度特征构建方法,通过将图像分割成多个运动区块,来近似的描述整幅图像的光流脉动强度。区块划分越细,图像脉动强度还原度越高,但算法运算量将成级数增长。此外,针对群体运动的全局性图像描述,随着划分区间数量的增加,区间内图像运动特征随机干扰降低,趋同性增强,进一步划分对算法精准度提升有限。因此选择合适的划分区间,不仅可以提升算法预测精度,更有利于降低算法复杂度,提升运算效率。针对此种情况,本文在前期经验分析的基础上,选择4种图像划分方法分类,并通过比较评价指标,确定最优划分方案。4种图像划分方法分类结果如表 1所示。

从表 1可以看出,随着区域划分数量的增加摄食状态识别准确率和召回率都有明显提升,4×4划分方法识别精度最低,16×16和32×32划分方法识别精准基本一致,32×32划分方法识别平准准确率和平准召回率仅比16×16划分方法高0.03。在所有四组分类方法之中摄食状态识别精度最高,弱摄食和强摄食状态识别精准接近。16×16划分方法中摄食识别准确度和召回率均高于32×32划分方法,而弱摄食和强摄食识别结果略低于32×32划分方法。

表1 不同图像划分方法分类结果Tab.1 Classification results of different image division methods

按照一般性认知,图像分割数量越多,其光流特征对图像整体特征描述越准确,但是由于模型训练时匹尺寸选择和优化器学习率选择具有一定的随机性,导致产生随机误差。当预测精度接近时,出现了32×32划分方法在中摄食识别精度略低于16×16划分方法的情况。综上,根据不同图像划分方法综合比较,本文选择16×16划分方法作为模型图像光流特征构建框架。

3.4 不同分类算法比较分析

本文采用改进RNN结构作为识别模型对鱼类摄食行为进行分类,适用于不同时长视频序列输入,可满足不同投喂频率的视频序列分类学习。但是,为了比较本文方法的有效性,采用固定输入数据维度的方法选择比较算法。首先,本文利用了双向RNN来提升模型对投饲机投喂时产生声音应激行为的适应能力,因此选择单项RNN结合全连接层作为第一个比较算法。其次,本文选择全连接层以充分利用整个时间序列状态,因此选择典型双向RNN作为第二个比较算法。此外,目前常见的鱼类摄食状态分类方法主要利用BP神经网络、SVM和CNN等分类算法,因此本文选用具有代表性的文献[23—25]中的方法作为其他类比算法进行综合比较。为了提高比较效果的有效性,本文不考虑文献原有试验环境,而是直接利用python3.6对文献中的方法进行重现,并应用于户外养殖环境获取的图像,比较结果如表 2所示。

从表 2可以看出,本文方法在分类平均准确率、平均召回率及平均F1得分方面都优于其他方法。其中,基于单向RNN+全连接层的分类方法比双向RNN取得了更好的分类效果,说明鱼类摄食视频序列是一种非稳态的时间变化序列,引入全连接层增加模型对整个时间序列的利用能力,增强了模型对非稳态特征的适应能力。单向RNN的分类精度低于双向RNN,说明鱼类摄食行为在投饲机投喂时和暂停时有较大差异,需利用正向和反向联合判断提升摄食状态分类的准确性。此外,文献[25]中的方法采用CNN网络实现鱼类摄食行为分类,充分利用了时序图像特征,其分类精度略低于本文方法,优于单向RNN+全连接层和双向RNN分类方法。该方法采用全局特征描述,没有考虑局部特征变化对全局的影响,而鱼类摄食图像在投饲机投喂区域纹理变化频率远大于非投喂核心区,单一利用全局特征的评价很容易丢失局部信息,而本文方法通过比较不同图像分块状态分类效果,确定最优分块特征实现了基于局部特征的全局复杂特征描述,有效提升了算法分类效果。

表2 不同分类算法分析结果Tab.2 Analysis results of different classification algorithms

4 结论

提出一种基于帧间光流特征和改进RNN的草鱼摄食状态分类方法,实现了户外池塘养殖草鱼摄食状态的精准分类,主要结论如下:(1)基于图像偏振成像原理,利用偏振相机获取不同偏振角度的摄食图像,并根据图像亮度和饱和度确定最优偏振视角,实现了户外自然光条件鱼类摄食图像的有效获取;(2)提出一种基于光流脉动强度和图像分块的图像全局光流特征构建方法,实现了基于局部特征的全局复杂特征有效描述,有效提升了图像的分类精度;(3)本文方法在强中弱三类鱼类摄食状态分类方面取得了较好的分类精度,模型评价指标达到了平均准确率91%、平均召回率92.2%、平均F1得分91.6,均优于其他分类方法;(4)本文采用基于RNN的模型构建方法,可满足不同投喂时间策略样本训练要求。此外,通过改变样本集,可适用于其他抢食性鱼类摄食状态判定,有效提升了模型广适性。综上,本文方法在草鱼摄食状态分类方面取得了较好的识别效果,但现有样本数量和种类还不满足不同养殖模式、不同养殖周期摄食状态分类需要,仍需继续丰富样本数量,增强模型适应能力,为鱼类精准饲喂控制提供有效数据和算法支撑。

猜你喜欢
光流偏振摄食
利用掩膜和单应矩阵提高LK光流追踪效果
基于傅里叶变换的红外偏振图像分析及融合
两种不同投喂策略对加州鲈摄食量和生长的影响
“川山×蜀水”小蚕人工饲料摄食性改良研究进展
基于微惯性/偏振视觉的组合定向方法
轻则摄食减慢,重则大量死鱼!加州鲈养殖亚硝酸盐超标,预防处理如何做好?
偏振纠缠双光子态的纠缠特性分析
相位-偏振组合控制的相干偏振合成设计研究
一种改进的基于全局最小能量泛函光流算法
融合光流速度场与背景差分的自适应背景更新方法