马茵驰,韦 惟,周 超
(1.北京市水产科学研究所,北京 100068; 2.北京市环境保护科学研究院,北京 100037;3.北京农业智能装备技术研究中心,北京 100097)
锦鲤(Cyprinuscarpio)是极具观赏性的养殖品种,体态优美,色彩斑斓。在池塘养殖过程中,相同鱼龄段、规格相似的锦鲤要集中养殖。同时,为便于分级筛选,养殖池塘在一个生产周期只投放一批数量确定且规格基本一致的锦鲤鱼苗。随着养殖进程的推进,由于健康状态的差异及其他不确定因素,同一池塘锦鲤的体型规格和品相会产生一定程度的分化。此时需进行人工分选,将不同体型规格和品相的苗种进行筛分,分池养殖或淘汰部分低品质苗种。此外,正常养殖过程中也会出现少量死亡损耗。因此,锦鲤的最终产量(出塘尾数及平均体质量)需要不断在养殖过程中分阶段进行估算,以便评估养殖锦鲤的营养、健康状况,制定合理的饲料投喂方案,以保障养殖锦鲤的品质以及生产经营安全[1]。目前,池塘养殖锦鲤在水下活动自由,且养殖水体透明度好坏不一,锦鲤养殖人员很难从水面上观察到池塘中锦鲤的整体生长状态[2]。通常,每日向池塘投喂饲料时,锦鲤会全部集中在投料点浮出水面进食。此时,养殖人员才能整体观察到锦鲤的生长状态,并对产量做出大致估算。观测数据依赖养殖人员的判断经验,准确性不高,且需要人工记录和存档[3]。为了得到更准确的锦鲤生长数据,有时还需要人工捕捞样品鱼,进行出水手工测量。这种操作方式费时费力,还容易使高价值的锦鲤受伤,造成经济损失[4]。
随着现代信息技术和图像处理技术的进步,基于光学图像检测技术的产品品质无损检测方法研究已经取得了许多成果,并应用于很多行业[5-10]。养殖到一定规格的锦鲤,体型呈纺锤形,头部色彩鲜艳,轮廓分明,当头部浮出水面摄食时,其头部图像与水体背景具有较高的区分度。在锦鲤集中摄食状态下,获取摄食锦鲤群体的图像,基本上能够反映当时养殖阶段池塘内全部健康锦鲤的数量和体质量规格,且这些锦鲤的体质量规格也基本接近。因此,通过对锦鲤摄食状态图像的计算机自动识别,提取锦鲤头口部特征三角形数量和平均投影面积,使用MATLAB工具分析锦鲤体型、体质量数据,建立锦鲤头口部特征三角形投影面积与体质量的相关性分析模型,实现池塘养殖锦鲤产量的估算,以期有效解决人工观察和测量准确性不高、工作量烦琐和操作风险等问题。
设计一套系统解决方案(图1),包括监测终端硬件系统(图2)和数据建模与分析软件平台:(1)使用高清CCD数字传感器获取锦鲤投喂点水面定时段实时、清晰图像;(2)使用太阳能持续供电系统,为视频采集和转发提供持续供电;(3)GPRS远程图像传输、存储、查看系统,实现养殖人员远程查看、数据存储和备份;(4)通过对摄食锦鲤图像的计算机自动识别技术,提取锦鲤头口部特征三角形数量及其平均投影面积;(5)MATLAB分析锦鲤体型、体质量采样数据,建立锦鲤头口部特征三角形投影面积与体质量的相关性分析模型,实现池塘养殖锦鲤产量的估算。
图像采集终端采用500万像素CCD图像传感器,集成OV5647感光芯片,视场角75.7°,可以实现1 080 p高清图像采集。通过GPRS通讯与服务器进行对时,在系统设定的锦鲤摄食时间自动启动图像采集控制器。设计一个半球形透明塑料防护罩,安装于图像传感器镜头前,可明显降低灰尘、水滴等环境因素对成像质量的影响,同时也能有效降低镜头在安装和使用过程中磕碰、损坏的风险。
根据锦鲤养殖场制定的投喂饲料时间规定,通过远程软件平台配置图像采集终端参数,设定图像采集工作时段,非工作时段图像采集终端进入休眠状态,降低功耗和数据存储压力,有效降低系统使用成本。
设计用于固定和架设图像采集终端的不锈钢机械结构,通过竖直管道与水平管道之间的5个点位螺栓卡索结构,可实现图像采集终端监测高度的5个档位调整,进而实现在不同养殖生产操作时段,锦鲤养殖池塘水位变化后,图像采集终端高度可由操作人员手动调整,以保证视场范围可以覆盖锦鲤集中摄食的整个水面区域。
图像采集终端设计高速MicroSD存储卡插槽,最大支持128 G的存储空间,可实现图像数据的快速存储。存储空间不足时,会报警提示给远程软件平台,根据需要可导出图像备份数据,否则图像数据进行覆盖存储。图像采集终端内置GPRS数据转发模块和天线,配套运营商SIM卡,可使用GPRS流量数据服务,摆脱高速网络接入的束缚,实现无线、全覆盖的数据通信。由于高清图像对高速无线数据通信的依赖,考虑到系统的使用成本和应用需求,锦鲤摄食时段每间隔5 s自动采集图像1次,并将其自动转发至远程软件平台,软件平台对一个摄食时段的图像进行批量自动化处理和分析,将数据计算平均值作为估算结果反馈给养殖人员。
采用100 W单晶太阳能板、充电控制器和40 Ah锂电池组成太阳能供电模块,采用防水盒密封并进行保温处理,以适合在户外池塘边长时间持续工作。该模块足以保障图像采集终端的数据采集、存储和转发工作在设定时间段内持续、稳定进行。在系统休眠状态下,太阳能蓄电池可持续储存电能,保障采集终端定时与远程软件平台数据服务器准确对时以及系统低功耗休眠。无220 V电压供电的工作模式也在最大程度上保障系统运行使用的安全性,摆脱供电电路布设难题,并降低系统运维成本。
1.3.1 特征提取 在饲料集中投喂时段,锦鲤集中浮出水面摄食,其状态大多为头口部位露出或接近水面,争抢饲料。此时,图像采集终端可快速采集高清的锦鲤摄食状态图像,锦鲤的头口部位在二维图像上表现为明显的彩色半纺锤形结构,这为计算机视觉算法的实现提供了基础。算法设计的底层使用OpenCV开源计算机视觉算法库,具体设计方案如下:
(1)将高清数字图像转为灰度图像,首先拾取图像边缘水体背景像素的灰度,由于图像采集过程中,光影会对水体背景像素的灰度造成不均匀的影响,为了尽可能减轻这种影响,便于将水体背景从图像中去除,对其加入5%随机噪声,作为灰度分割阈值。基于OpenCV提供的THRESHOLD函数,选择阈值二值化分割算法,即规定某个阈值,当像素灰度值大于这个阈值的时候为255,当像素灰度值小于这个阈值的时候为0。灰度阈值分割算法将色彩鲜艳的所有锦鲤头口部半纺锤形结构从水体背景中提取出来,然后对结果图像进行黑白二值化[11-12]。
(2)基于黑白二值图提取所有轮廓线,轮廓提取采用Canny算法,其组合低阈值和高阈值2幅边缘图以生成最优的轮廓图,这种使用双阈值得到二值图像的策略称为磁滞阈值化[13-14]。Canny算法是一种性能优异的边缘检测算法,首先要对原始图像进行灰度化,并对灰度图像进行高斯滤波,然后用一阶偏导的有限差分来计算梯度的幅值和方向,并对梯度幅值进行非极大值抑制,最后采用双阈值进行检测和连接边缘。Canny算法不容易受噪声干扰,能够检测到真正的弱边缘。本研究选择该算法进行轮廓提取可以有效检测鱼水交界处容易产生弱边缘的情况。
(3)锦鲤色彩鲜艳,但其眼球在图像中均呈现明显的椭圆形黑色特征。算法在实际设计过程中是按照锦鲤鱼龄来设置眼球间距阈值的,试验用鱼在1~2龄,眼球间距在1.5~2.0 cm,过小的眼球间距认为是2条重叠的鱼相近的两眼,过大的眼球间距认为是分属2条鱼。在实际采集的图像中,对于两侧眼球均能清晰呈现在采集图像上的锦鲤,基于灰度特征就可以实现眼球位置的准确提取。对于由于瞬时摄食姿态原因造成眼球特征未被采集到的情况,此时该锦鲤至少有一侧的眼球会被清晰地采集到。同时,该眼球无法通过眼球间距阈值在已提取出的眼球位置点中找到配对眼球。缺失的眼球特征只能通过特殊方法进行补充。本研究算法中,通过轮廓线跟踪的方式,首先找到已知眼球最近的轮廓点,按照眼球间距阈值范围,沿轮廓线搜索,找到与已知眼球位置点距离在此阈值范围内的第1个轮廓边缘点,作为缺失眼球的替代位置点。如果轮廓中出现2个以上的眼球特征,2个眼球间距在设定阈值外,则判定此处两眼分属2条锦鲤,并进行分割标记,完成图像中所有锦鲤的眼球配对(图3)。
(4)为消除张开的嘴部对几何特征提取的影响,以双眼之间的头部轮廓线进行逐点跟踪,计算每个轮廓点的轮廓切线斜率变化。设定变化量阈值,去掉张开的嘴角两侧斜率陡变的轮廓点及其之间的轮廓点,并重新连线两断点以闭合轮廓曲线。
(5)由于锦鲤头部特征为沿眼球连线中垂线左右对称,以每组两侧眼球及其位置连线中垂线与头口部轮廓的交点为顶点,组成特征三角形,作为统计和数据建模的几何参数(图4)。
1.3.2 图形学统计和计算 统计图像中所有三角形的个数(Nkoi),该数据作为锦鲤尾数的估算数据。在计算平均三角形面积时,针对每个三角形,设
(1)
式中:p—特征三角形半周长(cm);a、b、c—特征三角形的三条边长(cm)。
(2)
式中:S—二维图像中提取的特征三角形面积(cm2);p—特征三角形半周长(cm);a、b、c—特征三角形的三条边长(cm)。
二维图像中提取的三角形面积与拍摄距离、图像成像焦距呈比例关系,即
(3)
式中:Sreal—真实鱼体头口部特征三角形面积(cm2);S—二维图像中提取的特征三角形面积(cm2);L—拍摄距离(cm);f—图像成像焦距(cm)。
在图像采集终端的L和f值可以根据水面和现场条件调整固定为常数,设置到远程软件平台的估算算法中,由程序自动计算真实鱼体头口部特征三角形平均面积:
(4)
1.3.3 数据分析与建模 锦鲤体型整体为纺锤形,健康生长的锦鲤,其头身的比例和体长体宽的比例都比较规则。其头部尺寸规格与整个鱼体的尺寸规格以及体质量具有良好的相关性[15-17]。将特征三角形的尺寸作为头部尺寸的度量标准。1龄以下及体型太小的锦鲤小苗,摄食行为较弱,且眼球特征不明显,不易被识别和提取,影响处理效果。试验选取60尾1龄以上红白、黄金和大正三色等色彩鲜艳的锦鲤品系。这些样本经过1~2次筛选后,体型特征比较规则,且纹理特征明显。将称质量后的盛水白色塑料水槽置于电子秤上,将样本锦鲤逐尾置于水槽中,读取质量数据,电子秤称量精度为0.1 g,减掉盛水塑料水槽质量后,得到样本锦鲤实际体质量[18]。在水槽口边沿粘贴一条毫米刻度的软皮尺,并使用数码相机拍摄每条锦鲤和皮尺刻度在一张图像上的顶视图正射照片,在图像上自动提取特征三角形边长,并根据皮尺1 cm刻度在图像上的长度作为参考[19],计算特征三角形边长的实际值,并计算每条锦鲤特征三角形的面积数据。将60尾锦鲤特征三角形面积数据和体质量数据的采样结果进行MATLAB相关性分析,建立锦鲤平均体质量的估算分析模型(图5)。
通过对比MATLAB对2项数据进行相关性分析的结果,指数拟合模型的决定系数R2达到0.965 1,说明2项数据通过该模型反映的相关性较好,因此,选择该模型作为锦鲤平均体质量的估算分析模型。
(5)
式中:Wtest—实测体质量(g);Stest—实测特征三角形面积(cm2)。
对同一项数据(平均体质量或者数量)计算实测值与估算值之间差值的绝对值,并计算此绝对值与该项数据实测值的比值,作为评价该项数据估算误差的量化指标:
(6)
式中:f—估算误差;ρ1—估算值(平均体质量或者数量);ρ2—实测值(平均体质量或者数量)。
选择3个锦鲤养殖池塘,使用经过2次筛选后1龄以上的商品鱼,其中,1#池塘为57尾红白锦鲤,2#池塘为39尾黄金锦鲤,3#池塘为37尾大正三色锦鲤。分别在2个投喂饲料时段(10:00和15:00)进行摄食图像采集。每次采集的图像传送到远程软件平台,筛选若干效果较好的数字高清图像进行处理和分析,得到每个池塘锦鲤数量和平均体质量的估算结果。同步进行人工拉网逐条称质量,记录每条锦鲤的体质量数据,并计算得到每个池塘养殖锦鲤的平均体质量数据(表1)。
表1 实测结果与估算结果的比较Tab.1 Comparison of the measurement result and the estimation result
对实际出塘锦鲤的测量统计数据与估算结果数据进行估算误差f计算,结果表明,该方法对池塘养殖锦鲤数量的估算误差小于14%,对于平均体质量的估算误差小于12%。在日常锦鲤养殖的实际生产中,可以基本满足应用需求。
由于锦鲤在集中摄食行为发生时,绝大多数只有头口部浮出水面,试验在小型锦鲤养殖池塘开展,养殖管理条件较好,养殖密度适中,鱼体都较为健康,个别锦鲤可以清晰地提取到整体背部轮廓,最大限度保证了采集到的图像数据质量。最终估算结果的误差主要来自以下几个方面:
(1)锦鲤头口部特征三角形与其体质量的相关性分析模型误差,需要通过更准确的实际测量和更大量的采样数据集来不断优化模型参数,提升模型精度[20]。
(2)图像采集数据的误差,包括在一个采集时段内会有少量锦鲤的摄食状态未被有效采集到,以及由于锦鲤在水面摄食瞬时姿态的原因导致个别眼球特征缺失需要算法补充,造成部分锦鲤特征三角形提取的不准确。对于图像中明显出现的眼球特征,通过提取眼球特征轮廓,并以眼球轮廓的最大内切圆圆心作为特征三角形顶点。对于缺失的眼球特征,设计了自动补充缺失眼球位置的算法,通过轮廓跟踪和眼球间距阈值来自动化地在锦鲤头口部轮廓线上找到轮廓点,作为缺失眼球特征中心位置点,并以该点作为特征三角形顶点。用以上2个顶点连接线的中垂线与头口部轮廓线的交点作为特征三角形的第3个顶点。这3个自动化计算得到的点连线组成特征三角形。在数据建模阶段对样本锦鲤进行了人工辅助提取特征三角形操作,人工辅助提取方法不会出现图像中眼球缺失的状况,采用人工在图像上标注特征三角形顶点与操作人的经验和常识有关。本试验将人工辅助提取特征三角形的方法作为数据建模的标准方法,而通过本试验自动提取算法建立的特征三角形与标准特征三角形必然存在一定误差,特别是对于图像中存在眼球缺失的锦鲤,需要算法自动补充进而建立特征三角形的情况,这种误差会尤为明显。通过一个示例简单说明一下双眼球特征完整和单一眼球缺失2种条件下,特征三角形自动提取与人工辅助提取的结果产生误差的情况(图6)。
通过计算,在这个示例中,锦鲤双眼球完整图像状态下提取的特征三角形面积S2与人工辅助提取的特征三角形面积S1的误差约为3%,相对标准特征三角形的准确度较好;锦鲤单一眼球缺失图像状态下,在缺失眼球一侧的轮廓线上自动计算补充的眼球位置定位点与真实的眼球位置定位点存在一定偏差,这就导致提取的特征三角形发生变化,特征三角形面积S3与人工辅助提取的特征三角形面积S1的误差约为7%,相对标准特征三角形的准确度下降。这种误差有一定随机性,但总体而言,当锦鲤双眼球特征均完整呈现在图像中时,自动提取的特征三角形准确度比较好。
对于这种误差,可以通过在一个采集时段内尽可能多地获取高质量的图像数据,进行批量筛选和分析,剔除异常数据,并进行均值处理,以尽量减小误差。
(3)锦鲤浮出水面摄食,图像采集时刻的成像平面并不绝对一致,导致拍摄距离参数并不绝对统一,使得特征三角形面积计算产生一定误差,但该误差在实际生产应用中影响很小。
(4)在OpenCV计算机视觉算法以及数字图像的矢量化运算过程中也会产生一定误差,只能通过算法和软件数据结构的优化来降低计算误差。
此外,比较2项估算指标,平均体质量的估算结果稍好于数量估算结果,主要原因在于:首先,在锦鲤摄食状态图像中提取特征三角形平均面积数据时,该数据并不会受到图像中未被拍摄到的锦鲤数量的影响,只要保证出现在图像中的特征三角形能够被比较准确地提取出来即可,同时,连续多张图像提取出的特征三角形在算法中被均值处理,进一步减小了特征三角形平均面积计算的误差;其次,在指数模型建立时,大量采样数据的标准化处理和相关性分析也在一定程度上减小了平均体质量估算的误差,但锦鲤摄食状态图像中未被拍摄到的锦鲤数量,即使在多张连续图像采集状况下,仍会对最终的数量估算结果产生直接影响。
本研究针对锦鲤生理特征及摄食行为的生物学特性,通过对采样试验数据开展相关性分析,建立了锦鲤头口部几何特征与体质量的指数拟合模型,模型拟合度较高。同时,结合计算机视觉和图像图形学方法,自动化提取锦鲤摄食状态图像中的几何特征并进行数学计算。设计并实现了一套池塘养殖锦鲤非接触式的产量估算方法,可以有效解决在传统锦鲤池塘养殖过程中人工观察或者采样测量带来的不确定性、操作困难及风险。大量自动化采集和存储的锦鲤摄食状态图像可以为养殖或科研人员提供针对池塘养殖锦鲤生理、行为特征分析研究的数据基础。该方法较传统锦鲤产量估算方法更具科学性、客观性和准确性,对锦鲤池塘养殖行业的日常工作和管理具有较高的指导意义。本研究设计的方法对于条件较好的锦鲤养殖池塘效果比较理想,但对于设施化条件较差、养殖环境较复杂的锦鲤养殖池塘,效果会受到一定影响,今后需要继续研究和改进。