段青玲 陈 鑫 许冠华 樊宇星 张玉玲
(1.中国农业大学信息与电气工程学院, 北京 100083; 2.中国农业大学国家数字渔业创新中心, 北京 100083;3.江苏中农物联网科技有限公司, 宜兴 214200; 4.中国农业大学烟台研究院, 烟台 261400)
大闸蟹,学名中华绒螯蟹,又称河蟹,是我国最重要的养殖蟹类之一,其肉质鲜美、营养丰富,年产量超过80万t,养殖面积达6.67×105hm2以上[1]。在大闸蟹养殖过程中,蟹农需要定期称量其质量以确定投饵量、监测其生长状况。大闸蟹成熟后,蟹体质量也是品质分级重要标准之一。传统的蟹体质量测量方法是人工取样并称量,体重计示数容易因蟹体的应激行为而不准确,而且费工费时。因此实现蟹体质量的无损精确测量对大闸蟹科学高效养殖有重要作用。
计算机视觉技术以其非侵入性、客观、高精度的特点成为无损检测水生生物特征的最重要手段[2-6],目前已在鱼体质量估算中得到应用[7-9]。关于蟹体质量估算的研究较少,主要方法分为简单数据拟合方法和机器学习方法两类。基于简单数据拟合的质量估算方法研究中,王静安等[10]对池塘养殖的大闸蟹质量与甲长、甲宽的关系分别进行研究,发现甲长、甲宽与质量存在很好的线性关系,其中公蟹质量与甲长、甲宽的相关系数分别为0.889 2、0.813 8,母蟹与甲长、甲宽的相关系数分别为0.821 4、0.903 3。张超等[11]采集不同生长阶段的梭子蟹图像并提取其投影面积,利用普通最小二乘法(Ordinary least square,OLS)对蟹体面积和质量分别进行线性拟合、多项式拟合、幂次拟合,其中拟合效果最好的是二次多项式,决定系数为0.922 0,结果表明梭子蟹体质量与投影面积紧密联系。基于机器学习的质量估算方法研究中,唐杨捷等[12]采用分水岭分割技术得到梭子蟹头背甲图像,然后提取了投影面积、甲长、甲宽3个特征,采用遗传算法(Genetic algorithms,GA)优化的支持向量机(Support vector machine, SVM)算法建立梭子蟹质量三因子回归预测模型,估算蟹体质量,模型预测的均方根误差为5.80 g,平均绝对百分比误差为2.23%。唐潮等[13]在养殖背景下采用模板匹配法分割出梭子蟹背甲,提取投影面积、甲长、甲宽3个特征,采用K-means聚类算法和支持向量回归(Support vector regression,SVR)建立双模型回归预测结构,实现梭子蟹质量预测,模型预测的均方根误差为18.90 g,最大相对误差为17.62%,最小相对误差为0.67%。现有研究中,基于机器学习的蟹体质量估算方法主要应用于梭子蟹,且精度有待进一步提高,大闸蟹养殖以池塘养殖为主,实验条件下固定拍摄高度的图像采集方法不适用,需要提供便捷精准的野外质量估算方法。
目前对大闸蟹质量估算的研究主要是从背甲的形状特征着手,但有关生理研究表明大闸蟹质量与其体色密切相关,大闸蟹背甲的色泽体现其发育状况[14-16]。甲壳动物的色泽与其组织内的类胡萝卜素尤其是虾青素含量密切相关[17-19],类胡萝卜素是大闸蟹性腺成熟过程中必需的营养元素,在其性腺发育过程中具有重要作用[20-21],故色泽作为评判大闸蟹肥满和成熟程度的重要依据,被广泛应用到大闸蟹的品质分级中[21-23]。肥满度为大闸蟹的质量与蟹壳面积的比值,蟹壳大小相同的蟹体越肥满蟹体质量越大,背甲颜色为墨绿色的大闸蟹大都肥满,为黄色的大都瘦弱[24],因此,形状特征和颜色特征都是大闸蟹质量估算的重要依据,但是把颜色特征应用到大闸蟹质量估算的研究鲜见报道。
本文结合大闸蟹生理特性,将颜色特征应用于大闸蟹质量估算研究,在大闸蟹质量与背甲形状、背甲色泽形成机理的研究基础上,提出一种基于颜色、形状多维度特征和LightGBM的大闸蟹质量估算方法。首先采集蟹体图像,采用图像处理技术对图像进行分割以获取蟹体背甲图像,然后提取背甲形状特征和颜色特征,并采用标定法[25]计算形状特征值,最后基于LightGBM方法预测大闸蟹质量。
为获得大闸蟹质量数据和图像数据,首先把大闸蟹放置在电子秤上进行称量并记录示数,采样电子秤精度为0.1 g,然后把大闸蟹移至由相机、底板、硬币构成的大闸蟹图像采集装置上拍摄其俯视图像,采样相机为Nikon D7100,拍摄过程中随机调整相机高度[26],以满足大闸蟹养殖过程中蟹农采集图像时无固定高度的要求。
本文于2020年在江苏省宜兴市高腾大闸蟹养殖基地和北京西三旗花鸟鱼虫市场采集个体尺寸不同的大闸蟹151只,质量为58.4~133.9 g,具体样本质量分布区间见表1。大闸蟹背部呈墨绿色或灰黑色[27],实验中采用白色为放置蟹体的底板颜色。图像尺寸为4 032像素×3 024像素,存储格式为JPG,共采集图像1 230幅。
表1 样本质量分布区间Tab.1 Sample quality distribution interval
本文在大闸蟹背甲的形状、色泽研究的基础上提出了基于多维度特征和LightGBM的大闸蟹质量估算方法。将采集到的图像进行预处理,处理后的图像提取投影面积、甲宽、甲长等形态学特征和RGB等颜色特征,通过LightGBM建立大闸蟹质量预测模型,并在智能终端上实现该方法。本研究方法的整体流程如图1所示。
图1 大闸蟹质量估算方法流程图Fig.1 Process of Chinese mitten crab weight estimation
图像预处理是为了消除图像中的无关信息,提高关键信息的可检测性,从而提升特征提取的效率和效果。本实验预处理包含图像缩放、图像分割、图像二值化、孔洞填充及图像去噪。
为节约图像处理的时间成本,把图像尺寸从4 032像素×3 024像素缩放至672像素×504像素,缩放前后图像横宽比、大闸蟹形态相同,对实验精度无影响。为获得大闸蟹背甲图像,采用Grabcut对胸足和背甲进行分割,如图2所示。
图2 缩放、分割结果Fig.2 Results of image scaling and segmentation
接着采用自定义均值阈值法得到背甲的二值图像,如图3a所示,可见二值图像存在孔洞和噪点,这会对中华绒螯蟹形态特征提取结果造成影响,为保证所提取的特征值能准确反映实际情况,用形态学重建的方法填补二值化图像的孔洞。形态学重建是一种基于集合膨胀、求补和交集的算法,填充的核心公式为
(1)
其中
式中H′——孔洞填充结果图
IC——原始二值图像补集
B′——结构元F——标记图像
⊕——膨胀操作
孔洞填充结果如图3b所示。最后,用面积阈值法去噪,提取二值图像中每一个孤立区域轮廓面积信息保存在向量中,设置面积阈值,将面积小于阈值的区域填充背景,结果如图3c所示。
图3 二值化、孔洞填充、阈值去噪结果Fig.3 Results of image binarization, hole filling and threshold denoising
图像特征是指每一幅图像能够区别于其他类图像的本质特点或特性,是能够表示整幅图像的具有代表性的信息。图像特征包括颜色、形状、纹理等[28]。本文主要提取大闸蟹的形状特征和颜色特征。
1.4.1形状特征提取与计算
形状特征分为单一形状特征和不同形状特征比值两部分。投影面积、甲宽、甲长多次用于大闸蟹质量估算研究中,但是蟹螯收缩状态下的河蟹背甲与地面存在一定的角度,俯拍图像不能反映甲长的实际情况,因此选取投影面积(S′)、甲宽(W)两个单一形状特征值为特征变量。
此外,在数据采集过程中随机调整拍摄高度,不同的焦距、物距使得图像的比例尺度不同,数据不具有稳定性,为了减小这一影响,除了S′、W两个特征外,还选取能反映背甲形态的其他9个比例参数:投影面积与外接矩形面积比(R1)、周长平方与投影面积比(R2)、圆形度因子(Hcf)、等效圆直径(Ed)、等效圆直径与甲宽比(R3)、投影面积与外接圆面积比(R4)、投影面积与凸包面积比(R5)、等效椭圆长轴长度与短轴长度比(R6)、等效椭圆焦点间距与长轴长度比(R7)。各特征几何含义如图4所示,图4a中S′表示轮廓投影面积,Sb表示外接矩形面积,W表示甲宽,C表示轮廓周长;图4b中Sc表示凸包面积,Se表示外接圆面积;图4c中aeq表示椭圆的长轴长度,beq表示椭圆的短轴长度,ceq表示椭圆的焦距。
图4 特征变量几何含义图Fig.4 Geometric meaning of characteristic variables
实验图像采集时随机调整相机高度以符合水产养殖中实际采样情况,不同拍摄高度下的同一大闸蟹特征值不同,本文采用标定法解决上述问题,实际特征值计算公式为
(2)
Va=VsNa
(3)
式中Vs——参照物单个像素的值
Nc——参照物像素总数
Vc——参照物实际特征值
Va——大闸蟹实际特征值
Na——原始图像像素个数
1.4.2颜色特征提取与计算
提取蟹壳图像RGB颜色空间和HIS颜色空间各通道分量为颜色特征变量[29]。RGB颜色空间采用物理三基色表示,以R(红)、G(绿)、B(蓝)三基色按不同比例相加混合而成;HIS颜色空间从人类视觉系统出发,H(Hue)表示不同的颜色,I(Intensity)表示颜色的明暗程度,S(Saturation)表示颜色深度。I分量与彩色信息无关,故本文不予考虑,最终提取R、G、B、H、S共5个通道分量为颜色特征变量。
对于特征变量的计算,由于同一大闸蟹背甲的不同区域颜色差距较大,针对单个或者局部像素点进行颜色特征值量化都不具有代表性,本研究以像素为单位,取整个背甲图像颜色信息平均值为特征变量,平均化公式为
(4)
式中Rij——第i行第j列的R值
Gij——第i行第j列的G值
Bij——第i行第j列的B值
由R、G、B计算出特征变量H、S,计算公式为
(5)
(6)
图5 颜色特征值计算流程图Fig.5 Flow chart of color feature value calculation
通过预测算法构建质量估算模型,实现大闸蟹的质量估算。LightGBM引入了基于梯度的单边采样(Gradient-based one-side sampling,GOSS)和互斥特征绑定(Exclusive feature bundling,EFB) 实现对GBDT的优化,取得训练的高效率和高精度[30],在多个预测领域均展示出了良好的效果[31-33],所以本文采用LightGBM算法对大闸蟹的质量进行预测。
初始算法模型为
(7)
式中FM——提升树函数
M——决策树的个数
T——决策树函数
x——大闸蟹各特征变量
Θm——决策树的参数
m——迭代次数
将大闸蟹特征值样本放入弱学习器进行训练,并通过最小化损失函数来确定参数Θm。
(8)
式中yi——大闸蟹质量
xi——与大闸蟹质量相关的特征变量
f——损失函数L——最小化损失函数
N——样本数据集序列长度
其中损失函数初始化为
(9)
式中c——损失函数极小化常数
训练过程中每次迭代所得残差与xi拟合成回归树,最小化当前损失函数求出各个叶子结点的输出值Cm,j为
(10)
式中j——结点区域序号
y——大闸蟹质量
Rm,j——第m棵树的叶结点区域
Cm,j更新回归树后对每个弱学习器加权,得到最终的大闸蟹质量估算模型为
(11)
I′——更新回归树时,参与迭代的参数
J——结点区域个数
将本文方法与其他蟹体质量估算方法(本文提取的11个形状特征和LightGBM(SF-LightGBM)、3因子形状特征和LightGBM(SF3-LightGBM)、area-OLS[11]、MF-SVM[12]、MF-BPNN[26])进行了对比。
在智能终端上实现本文方法,用户可在微信小程序上上传大闸蟹图像,从而获取大闸蟹质量。
实验开发环境为:算法编程语言为Python 3.7(64位),开发环境为Anaconda 3。图像预处理、特征提取与计算基于OpenCV包实现,LightGBM、SVM模型基于sklearn包实现,BPNN基于Keras包实现。本文采用平均绝对误差(Mean absolute error,MAE)、均方根误差(Root mean square error,RMSE)、决定系数R2评估模型的准确性。
图6为5只大小、姿态不同的大闸蟹图像的预处理结果。为了更好呈现预处理效果,背甲图像面积均扩大为原图的1.5倍。
图6 大闸蟹图像预处理结果Fig.6 Results of Chinese mitten crab image preprocessing
采用定标法计算形状特征值,以同一图像在不同拍摄高度下的投影面积为例,由参照物求出单个像素面积,背甲投影面积与单个像素面积的乘积即为实际特征值,实际投影面积如表2所示,不同拍摄高度下的图像经过计算后与实际特征值相近。其他形状特征计算方法同上。
表2 实际投影面积Tab.2 Actual projected area
表3 颜色特征值Tab.3 Color feature value
本实验共有1 230个样本数据,将样本数据按7∶3划分为训练集和验证集,将LightGBM的采样率设置为0.8,学习率设置为0.1,算法输入层的回归树数目设置为200。将回归树叶子结点数设置为70,最大深度设置为7,防止过拟合的同时能够获得较好的精度。通过多次实验结果表明,LightGBM模型使用LGBMRegressor回归器并选取Lasso作为评估函数时,对大闸蟹的质量预测结果误差较小。基于Goss和EFB的LihgtGBM算法在几乎不损失模型精度的同时极大地加速了模型训练速度,最终实验结果MAE为2.751 g,RMSE为3.680 g,R2为0.949,预测效果较好。图7为样本的预测结果散点图。
图7 大闸蟹质量预测结果Fig.7 Results of Chinese mitten crab weight prediction
实验共有369个样本预测结果,随机选取20个样本的预测结果组成误差分析表,如表4所示,所选样本实测质量为73.3~123.9 g,预测质量76.1~122.1 g,表内数据取样具有随机性,质量区间与全体数据集相近,故表4对于实验的整体结果有较好的代表性。大部分预测结果的相对误差小于3%,对于较大的相对误差,如样本编号270为5.910%,原因可能是蟹螯和蟹壳颜色相似。
表4 预测结果误差分析Tab.4 Error analysis of prediction results
为了进一步验证本文方法的性能,将其与本文提取的11个形状特征和LightGBM(SF-LightGBM)、3因子形状特征和LightGBM(SF3-LightGBM)、area-OLS[11]、MF-SVM[12]、MF-BPNN[26]进行对比,SVM的参数设定为惩罚因子C′=0.988 3,核函数参数ρ=2.424 2;BPNN模型的拓扑结构为16×33×1,即输入层节点数为16,隐含层节点数为33,输出层节点数为1,学习率设置为0.01,隐含层激活函数为ReLU函数,输出层激活函数为linear函数,结果如表5所示。
由表5可知,本文方法的性能优于其他模型。与模型SF-LightGBM相比,平均绝对误差降低了49.92%,均方根误差降低了46.33%,决定系数提高了20.89%;与SF3-LightGBM相比,平均绝对误差降低了 59.00%,均方根误差降低了54.91%,决定系数提高了36.35%;与模型area-OLS相比,平均绝对误差降低了61.90%,均方根误差降低了58.22%,决定系数提高了37.74%;与模型MF-BPNN相比,平均绝对误差降低了44.76%,均方根误差降低了42.27%,决定系数提高了16.44%;与模型MF-SVM相比,平均绝对误差降低了51.12%,均方根误差降低了51.65%,决定系数提高了25.70% 。
表5 大闸蟹质量估算方法实验对比结果Tab.5 Experimental comparison results and analysis of weight estimation methods
提取了颜色、形状特征的模型与仅提取形状特征的模型相比,性能得到显著提升,说明大闸蟹背甲色泽是衡量发育状况的重要指标,是估算大闸蟹质量的重要依据。当模型输入特征为面积或面积、甲宽、甲长3个特征时性能最差,可见形状特征提取中选取的反映背甲形态的其他9个比例参数,能在很大程度上解决随机调整相机高度导致的特征值数据不稳定的问题。
综上所述,本文方法具有更好的准确性, MAE、RMSE、R2均优于其他模型,预测值最接近实际测量值。
本文通过开发的小程序在智能终端上实现大闸蟹质量预测,小程序基于Fastapi框架,前端采用WXML、WXSS、JS,后端采用Python 3.7,适用于普通智能手机。上传大闸蟹图像进行测试,大闸蟹实际质量为107.4 g,预测结果为107.8 g,预测绝对误差为0.4 g,相对误差为0.372%,本文方法在智能终端上预测精度较高,可应用于实际养殖。
(1)提出了一种基于多维度特征和LightGBM的大闸蟹质量估算方法。提取背甲轮廓比值作为形状特征,解决了随机调整相机高度导致的特征值数据不稳定的问题,提取大闸蟹背甲颜色特征,把大闸蟹品质分级的重要依据应用到质量估算中,与仅提取形状特征模型对比,平均绝对误差降低49.92%,均方根误差降低46.33%,决定系数提高20.89%,模型准确率有效提高。
(2)将本文方法与SF-LightGBM、SF3-LightGBM 、area-OLS、MF-BPNN和MF-SVM进行对比,结果表明,本文方法可以快速准确地实现大闸蟹的质量估算,MAE为2.751 g,RMSE为3.680 g,R2为0.949,并在智能终端实现了大闸蟹质量的精准预测,对于实现不同生长阶段大闸蟹的精准投喂、生长监测、商品蟹品质分级具有重要意义。