APP下载

基于深层卷积神经网络的肉兔图像分割与体质量估测

2021-06-29段恩泽王红英

农业机械学报 2021年6期
关键词:日龄姿态像素

段恩泽 方 鹏 王红英 金 楠

(中国农业大学工学院, 北京 100083)

0 引言

在养殖福利化和精细农业的背景下,规范化养殖成为提高养殖效率的重要保证[1]。减少人力劳动对养殖过程的直接干涉、使用智能机械进行标准化生产管理是目前养殖业的主要发展趋势。在肉兔养殖过程中,掌握种兔生长过程中的体质量变化趋势有利于在生产中及时淘汰产肉低的肉兔,从而提高育种过程中的选种效率[2]。肉兔养殖规模较大,传统称量方式主要依靠电子秤进行人工称量,不仅费时、费力,还容易使肉兔应激,造成流产、发病等不良影响[3]。

国内外研究表明,动物体质量不仅与表面积有关,还与体积和投影面积有较大的相关性,利用图像信息估算动物体质量具有可行性[4-6]。目前,利用图像技术对养殖动物进行无损检测的研究主要集中于猪、鸡等养殖动物,有关肉兔的图像识别检测技术未见报道。

劳凤丹等[7]利用传统的图像分割与滤波处理得到蛋鸡特征图像轮廓,计算相关系数,并探究蛋鸡行为对相关系数的影响,从而对蛋鸡的6种形态状况进行分析。毕敏娜等[8]以鸡舍散养黄羽肉鸡为分割目标,利用色差信息实现了快速分割,其正确率达到了86.3%,优于传统的色彩聚类模型。张弛等[9]采集了猪分娩的视频信息,在提取猪分娩连续的图像信息后,利用团序列检测算法识别大猪和仔猪,实现了仔猪的识别。上述研究基于图像颜色、图像特征对目标进行识别,具有较高的分割精确度,但对所采集的图像质量要求较高,并依赖人工对图像进行后处理,在实际应用中,分割粘连目标和多数量目标时的适用性较差。

随着人工神经网络研究的不断深入,基于卷积神经网络图像识别技术的精确性和检测速度也不断提高。沈明霞等[10]采用YOLO v3网络模型,通过卷积算法以整幅图像为兴趣域,利用特征金字塔网络算法定位识别仔猪目标。高云等[11]建立了PigNet网络模型,通过神经网络训练,实现了粘连群猪的图像分割。卷积神经网络快速、准确地进行目标识别的优势为大规模识别和读取个体养殖动物信息提供了可能性。

目前,关于肉兔图像识别和图像信息处理的研究鲜见报道。为了快速准确估算肉兔体质量信息,并降低肉兔的应激反应,本文以兔舍内不同年龄段的肉兔为研究对象,提出一种基于深层卷积神经网络算法的肉兔体质量估测方法。该方法不用约束肉兔的姿态,仅依赖于2D图像特征和养殖参数即可对肉兔体质量进行估测。基于Mask R-CNN图像识别技术构建肉兔体尺特征提取模型,得到3种基于图像的特征参数,随后构建4输入、1输出的BP神经网络,并进行训练,从而实现对目标体质量的估测。

1 材料与方法

1.1 图像数据采集

于2019年12月20—25日对河南省济源市阳光兔业科技有限公司的祖代母兔进行体质量和图像采集。肉兔品种为伊普吕兔,按日龄和批次分别饲养在不同阶梯式兔舍中。将不同日龄组的肉兔利用电子秤依次进行称量,并记录体质量数据,随后将肉兔放置在宽40 cm、长80 cm的标准周转箱中,使用三脚架和摄像头采集肉兔的俯视图,每拍摄一次后等待10~30 s,在肉兔自然变换姿势后再次采集图像,每只肉兔共采集3幅不同姿势的图像。其中,15日龄的肉兔共30只,30日龄的肉兔共35只,60日龄的肉兔共35只,90日龄的肉兔共35只,180日龄的肉兔共35只,300日龄的肉兔共33只,360日龄的肉兔共30只。采样摄像头为海康威视MV-CA020-10GC型,分辨率为1 624像素×1 240像素,俯测高度为150 cm,图像尺寸为1 920像素×1 200像素,存储为JPG格式。

1.2 基于Mask R-CNN的兔体分割网络设计

相比于利用颜色空间差异[7]和传统机器学习算法进行图像识别和目标分割,卷积神经网络由数据本身特征驱动,能够简化训练流程、提高识别速度与精度。在已有的卷积神经网络研究的基础上[12-13],Mask R-CNN在BBOX识别分支上增加了并行全卷积网络(Fully convolutional network, FCN)层,在FCN层内引入了用于预测目标掩膜(Object mask)的分支,实现高质量的语义分割和实例分割[14]。本研究基于Mask R-CNN,设计了依据面积与体质量之间关系估测肉兔体质量的预测模型。

基于Mask R-CNN的肉兔图像分割模型包括特征提取网络、特征组合网络、区域提取网络、RoIAlign和功能性网络5部分,如图1所示。

特征金字塔网络(Feature pyramid network, FPN)将不同深度的特征图重新组合[15],使新的特征图包含不同深度的特征信息。本文使用ResNet101[16]作为骨架网络,根据特征图的尺寸分为5个阶段。取后4个阶段的最后一层输出4个特征图,分别记为C2、C3、C4、C5。FPN的横向连接将这4个特征图组合成新特征图P2、P3、P4、P5、P6,其中P6由P5通过池化得到。特征组合处理过程为

(1)

式中 conv——卷积函数

sum——逐元素对位求和函数

upsample——特征图长宽乘2的上采样函数

pooling——步长为2的池化函数

Ci——每个阶段输出的第i幅特征图

Pi——第i幅新特征图

P′i——横向连接组合特征图

Ui——上采样结果特征图

P5——第5幅新特征图

P6——第6幅新特征图

区域提取网络(Region proposal network, RPN)利用FPN得到的特征图表达分割物体位置的候选框。通过回归计算,将特征图P2、P3、P4、P5、P6中的每个特征向量计算得出一个5n维的向量,以描述n个锚的修正值。每个锚的修正值为Δx、Δy、Δh、Δw、p。p为前后景置信度。对于特征图P2、P3、P4、P5、P6中的每个点,均预设了不同宽、高的锚,然后利用RPN网络回归得到的修正值修正每个锚的中心坐标值、宽和高。RPN的作用是帮助更快地选出感兴趣区域(RoI)。

Mask R-CNN使用RoIAlign算法对RoI进行分割。相比于RoIPooling算法[17],RoIAlign算法取消了整数化操作,利用双线性插值法获得坐标为浮点数的像素点上的像素值,然后对每个单元格内的采样点进行maxpooling操作,从而得到最终的RoIAlign结果,解决了RoIPooling两次量化造成的区域不匹配问题,提高了检测模型的准确性。

该兔体分割网络的多任务损失值主要包括3部分,计算公式为

L=Lcls+Lbox+Lmask

(2)

(3)

(4)

(5)

式中L——损失值

Lcls——分类损失值

Lbox——回归损失值

Lmask——分割损失值

Ncls——训练RPN中选择锚的数量

pi——锚预测为目标的概率

λ——权重平衡参数

Nreg——参与回归的正负样本总数

ti——锚在RPN训练阶段的预测偏移量

Sm——掩膜尺寸

Mask R-CNN中的class分支、box分支和mask分支共同参与卷积计算得到RoI,其中,分类损失值Lcls预测目标的类别,如检测出RoI为定义的肉兔类,则在分割RoI类时只使用肉兔类的交叉熵损失值作为误差进行计算,其他类别的交叉熵损失值不参与该RoI的损失计算,从而避免了类别间的竞争。

回归损失值Lbox控制目标的回归框的位置信息,用于返回预测锚的偏移量与实际锚的偏移量之间的关系。

分割损失值Lmask对每个RoI的目标进行分割,并生成对应的掩膜。

对于每个RoI,mask分支对K个类别中每个类别都生成一个m×m尺寸的掩膜。在得到预测掩膜后,对掩膜上的每个像素点求Sigmoid函数值,得到的结果作为Lmask的输入之一。

本文建立的肉兔图像分割模型通过卷积计算得到包含兔体的感兴趣区域,Lcls通过对图像的卷积计算将RoI的类别定义为肉兔,Lbox计算得肉兔区域的回归框的位置坐标,Lmask计算得平均二值交叉熵损失值,通过对掩膜中每个像素点求Sigmoid函数值来对回归框进行掩膜预测,将预测出的掩膜轮廓信息存储在不同层深度,组合后使用颜色填充来表示预测出的肉兔类目标。

2 肉兔体质量估算模型构建

2.1 肉兔图像分割网络训练与分析

2.1.1图像预处理

预处理主要包括图像的剪裁、数据增广和降噪。将原图剪裁至512像素×512 像素以简化运算量,采用旋转90°、180°和镜像等方式,将采集到的700幅肉兔图像扩增至1 400幅,作为肉兔图像分割网络的数据集,并利用高斯模糊对全部图像进行降噪处理。将肉兔图像分割网络数据集的70%作为训练集,30%作为验证集,验证集用于检验训练出的网络精度。

2.1.2兔体分割网络权重文件训练

将预处理后的肉兔图像导入开源标注软件Labelme中制作训练集。标注肉兔的轮廓为独立连通域,标签命名为rabbit。解析标注好的.json文件,获得深度为8的图像文件,由此得到肉兔图像分割网络的训练集。

使用COCO数据集(Common objects in context)上已经训练好的Mask R-CNN模型权重对肉兔图像分割网络进行迁移学习。COCO数据集是微软提供的开源、大型、丰富的物体检测、分割和字幕数据集,其中包含了大象、猫、狗、马等动物的大量常见特征,在此基础上对肉兔的特征进行迁移训练,能够减少训练时间,并提高训练效果,使训练效率大大提升。最后得到包含肉兔图像特征参数的兔体预测权重文件。

2.1.3兔体轮廓提取

使用2.1.2节得到的权重文件对验证集进行实例分割。采用准确率和精确率指标评价该模型的分割结果,并根据结果调整RPN的锚尺寸和学习率等参数重新训练,直到分割网络性能达理想程度。

得到理想准确率和精确率模型后,对1 400幅肉兔图像分割网络数据集进行旋转和镜像,得到与该数据集不同的新数据集共1 400幅图像。新数据集用于获取基于肉兔图像分割网络的图像特征,为下一步体质量估测提供数据支撑。对新数据集进行实例分割,分割出的文件包含了背景、兔体信息、识别框体和准确率等信息,去除上述信息后,将背景和掩膜轮廓填充为不同颜色,提取到单只肉兔的掩膜图像,并以此处得到的掩膜图像作为后续处理对象。兔体掩膜提取过程如图2所示。

2.2 肉兔体尺特征提取

2.2.1投影面积提取

图像中的肉兔在耳朵、腿和尾巴等部位具有不同的姿态,在2维层面上产生的形状对投影面积的影响很大,例如收起耳朵和展开耳朵得到的投影面积完全不同。而尾巴、耳朵和兔腿的体质量远小于身体和头部的体质量,因此在提取肉兔投影面积时必须去除耳朵、腿和尾巴的干扰。

开运算能够去除图像的突起部分,使用尺寸为s×s的圆形核(Kernel)对肉兔掩膜图像中凸出的腿、耳朵、尾巴等部位进行去除,s值越大,去除掉的突出区域的像素就越多。圆形核如图3所示。

需要分割的兔体具有不同的形状和尺寸,难以选择出适用于所有情况的s值。因此针对不同尺寸的肉兔,应当选择不同大小的核。由于腿、耳朵和尾巴的大小与肉兔整体的大小有关,可以将s与兔体原轮廓的像素值相关联。首先设定s的初始值以去除干扰,再根据产生的结果调整初始值。结果表明,当s为兔体面积的1/350时,使用核对不同形状、不同尺寸的肉兔轮廓进行开运算均能产生良好的去除干扰。图4b、4c为利用核去除肉兔轮廓中耳朵、腿和尾巴的过程。

去除干扰后的特征图中,非零像素表示肉兔的相对面积[18-19]。图像采集条件相同时,由于周转箱的尺寸和像素点数已知,通过参考周转箱可以计算肉兔特征图的实际面积为

(6)

式中SR——肉兔特征图实际面积

NR——肉兔特征图像素点数量

SB——周转箱实际面积

NB——周转箱像素点数量

2.2.2弯曲度计算

在去除干扰的肉兔掩膜基础上,提取兔体弯曲度C,作为反映肉兔头部与身体弯曲或扭曲程度的指标。本文采集的肉兔姿势为趴卧或四肢着地行走,头部几乎不会上下摆动。弯曲度计算过程如下:

(1)通过连续多次开运算不断缩小轮廓突起部分,根据返回结果调整开运算的核,最终在不明显改变面积的同时平滑兔体轮廓曲线,减少后续提取骨架的分支干扰。

(2)提取所得轮廓的生态骨架(Morphological skeleton),骨架能够表示这个形状的结构,删除多余的像素点[20],兔体骨架能直接反映兔体的弯曲程度。

(3)计算骨架的凸包,凸包是包含骨架图散点的最小凸边形[20],凸包的面积记为Sc。凸包求取过程如图4c~4f所示,其中骨架图是宽度为1像素的曲线,为便于展示进行了膨胀处理。

求取凸包的过程表明,骨架的弯曲程度能够表示兔体的弯曲程度,由骨架得到的凸包面积能够反映骨架的弯曲程度。不同姿态下的肉兔,身体扭曲程度越大,骨架越弯,形成的凸包面积越大。

同等弯曲程度的肉兔,体型越大,得到的凸包面积越大。为平衡体型差异,将肉兔投影面积记为S,则Sc与S的比值C可以认为与兔体弯曲程度线性相关。C越小,则肉兔弯曲度越小。

2.2.3体长计算

在去除干扰的兔体基础上,提取肉兔体长Lr表示肉兔的长度。由于同一只肉兔的不同姿势会造成投影面积的像素值有差异,因此计算体长Lr和弯曲度C能够帮助后续体质量预测时修正投影面积,提高体质量估测的精度。

兔体可以近似看成一个矩形,矩形长边的长度可以用来表示体长。在去除耳朵、兔腿和尾巴等干扰因素后,将特征图进行二值化并绘制最小外接矩形,则最小外接矩形的长边边长即兔体体长,如图5所示。

2.3 体质量预测神经网络构建

2.3.1BPNN学习方法和网络结构

反向传播神经网络(Back-propagation neural network, BPNN)的传播过程主要分为输入信号的正向传播和误差信号的反向传播[21]。BPNN的运行核心为将期望输出与网络输出进行对比,以对比结果即误差为依据,按梯度下降算法迭代更新网络,其网络结构主要包括输入层、隐含层和输出层[22]。本文为探究肉兔投影面积与体质量之间的关系,构建了以直接投影面积S、弯曲度C、体长Lr、日龄M为输入,对应体质量W为输出的BP神经网络。

模型训练前对输入输出指标的数量级进行调整。由于本模型主要利用投影面积S与体质量W的相关性进行体质量预测,而弯曲度C和体长Lr用于调整同一只肉兔姿态不同所造成的像素差异,日龄M用于消除日龄组内的体质量特异性差异,因此投影面积与体质量的直接关联性强,弯曲度、体长和日龄与体质量的直接关联性较弱。因此通过单位换算将面积S、体质量W的数量级维持在1~10,弯曲度C、体长Lr和日龄M的数量级维持在0~1,由此建立了输入输出指标。

该模型的输入层节点数为4,输出层节点数为1。根据Kolmogorov定理[23],隐含层神经元数量l应为

(7)

式中x——输入层神经元数量

y——输出层神经元数量

a——1~10之间的常数

因此BPNN的隐含层神经元数量为3~12。本文构建的BPNN拓扑结构示意图如图6所示。图中,φ(·)、τ(·)表示隐含层、输出层的激活函数,ωij、ωjk及θj、θk分别表示各层权值、阈值。

2.3.2BPNN模型建立

基于Matlab R2016a中的Neural Network Toolbox工具箱构建BPNN。将全部样本集进行分组,设置训练集、验证集和测试集的数据比例分别为8∶1∶1、7∶1.5∶1.5、6∶2∶2。隐含层神经元的数量会直接影响神经网络对复杂系统的映射能力,目前对于神经网络隐含层神经元的确定主要根据经验公式通过试凑法[24]确定,本文选定隐含层神经元参数为4、5、6。训练算法分别选择了列文伯格-马夸尔特法、贝叶斯正则化法和量化共轭梯度法。其余参数设置根据文献经验值参考,设置最大迭代次数为200次,学习率为0.1,目标误差为0.001[25]。

2.3.3模型评价

采用均方误差(Mean squared error, MSE)和相关系数(R)评价建立的模型性能。

2.4 算法编写软件与运行平台

本文处理平台为便携式计算机,处理器为Intel Core i5-8300H,主频为2.3 GHz,8 GB内存,1 TB硬盘,显卡型号为NVIDA GeForce GTX1060,6 GB显存。编写环境为Windows 10 家庭版64位系统,编程语言为Python,采用 TensorFlow 深度学习开源框架。BP神经网络的编程平台为Matlab R2016a。

3 结果与分析

3.1 肉兔图像分割网络性能分析

3.1.1肉兔图像分割网络性能评价方法

评价肉兔图像分割网络性能,主要考察图像分割准确率、图像分割完整性和算法运行速度。分割准确率考察模型分类的准确度,分割完整性考察模型分割的实例与实际目标的匹配程度,算法运行速度考察预测速度。

采用平均查准率(Average precision, AP)评价图像分类准确度。P为查准率,表示分类为正样本的数量中分类正确的比例。

采用平均像素精度(Mean pixel accuracy, MPA) 评价图像分割完整性。MPA是图像分割评估中常用的测量指标,反映正确分割的像素数量在图像像素数量中的占比。

3.1.2对验证集的分割性能

计算验证集的平均查准率和平均像素精度,结果表明,当交并比(IoU)为0.5∶0.95时,平均查准率为94.5%,这表明,兔体分割网络对图像目标检测分类的准确度较高。计算得到的平均像素精度为95.1%,这表明对于分割出的目标,掩膜与实际目标的像素点对应程度较高,即分割出的肉兔目标能够代表实际肉兔。

3.1.3对不同日龄肉兔的分割性能

日龄影响肉兔的体型和生理性状,为探究分割模型对不同日龄肉兔的分割性能,将验证集按日龄分为7组。分别计算不同日龄肉兔的平均查准率和平均像素精度,结果如表1所示。

表1 肉兔图像分割网络对不同日龄肉兔分割性能

由表1可知,肉兔分割网络对于兔体实例分割的平均速度为1.53 s/f,原因主要是硬件配置低,以及采用的ResNet101网络结构较为复杂。由表1可知,7个日龄组的平均查准率均不小于96%,表明肉兔图像分割网络能准确识别不同体型的肉兔。

平均像素精度随日龄增长而增长,在15日龄时最低,为91.4%,而60日龄之后肉兔的平均像素精度稳定在94.9%~96.1%之间。原因是15日龄的肉兔体型过小,相同相机视距下,15日龄肉兔图像更为模糊难以分割。但总体来看,肉兔图像分割网络对不同日龄肉兔均有较好的分割效果。

3.1.4不同姿态肉兔的分割性能

本文提出的肉兔图像分割算法对肉兔的姿态不限制,在采样图像中表现为肉兔的弯曲度和身体姿态各不相同。图7为肉兔不同姿态分类。图7a~7d分别为姿态组A~D。

分别计算4个姿态组的肉兔图像平均查准率和平均像素精度,结果如表2所示。

表2 肉兔图像分割网络对不同姿态肉兔的分割性能

由表2可知,随着弯曲程度变大,干扰部分越多,AP和MPA有所降低,D组姿态的MPA最低,为93.5%,这是因为形状过于不规则,轮廓难以精确描述目标。但从整体来看,4个姿态组的分割性能相差较小,均能保持良好的分割效果,因此,兔体分割网络在分割实例时受姿态的影响较小,对不同姿态的肉兔均有良好的适应性。

3.2 肉兔体质量估测结果与分析

3.2.1BP神经网络预测结果

分析BP神经网络对图像提取的特征参数和体质量之间的拟合性能,主要参考神经网络的均方误差。将训练集、验证集和测试集的数据比例设为8∶1∶1、7∶1.5∶1.5、6∶2∶2,隐含层神经元的数量设定为4、5、6,训练算法设为列文伯格-马夸尔特法、贝叶斯正则化法和量化共轭梯度法,使用肉兔图像分割网络的980个训练集的样本数据对BP神经网络进行训练,结果表明,当数据集比例为7∶1.5∶1.5时效果最佳。在7∶1.5∶1.5的数据集比例下,使用不同隐含层神经元数量和不同算法的最终预测结果如表3所示。

表3 不同神经元数量和算法配置的BPNN预测性能

由表3可知,在测试集中,当隐含层神经元数量为6个,训练算法为列文伯格-马夸尔特法时,BPNN对数据的拟合程度最高,相关系数R为0.993 91,这表明预测数据与实际数据接近。因此该BPNN能够正确反映图像所提取的特征参数与体质量之间的关系。在该BPNN下,验证集的均方误差为0.033 6。

保存BPNN模型,使用验证集数据预测体质量,图8为本文模型预测值与真实值之间的关系。

由图8可知,本文模型可以较为准确地预测肉兔体质量,实际体质量与预测体质量的拟合直线的R2为0.985 3,直线斜率为1.004 9,表明本文模型预测的肉兔体质量接近实际值。验证集中预测体质量与实际体质量平均相差123 g。

3.2.2不同日龄肉兔体质量估测结果

由3.2.1节可知,网络预测肉兔体质量时,肉兔实际体质量越小,数据点越密集,这表明该网络的估测精度受肉兔体质量的影响较大。因此,将肉兔按日龄分组,本文模型对不同日龄肉兔的体质量预测结果如表4所示。

表4 不同日龄肉兔的体质量预测结果

其中,平均相对误差为每个样本预测体质量和实际体质量之差的绝对值与实际体质量比值的均值,平均相对误差反映了该日龄组内,体质量预测的误差。

由表4可知,在不同日龄组内,平均实际体质量和平均预测体质量较为接近,表明本文模型预测体质量的整体效果良好。而日龄越大,平均相对误差越小,表明本文模型预测成年兔体质量的效果优于幼兔。分析原因,一方面是幼兔体质量增长速度快导致个体之间的差异明显,而成年兔个体之间的体质量差异小,造成预测不准确。另一方面是由于相同视距下,幼兔图像的分割效果低于成年兔图像的分割效果。此外,增加训练集的样本数量能够减小估测误差。

3.2.3不同姿态肉兔体质量估测结果

为探究不同姿态对体质量预测效果的影响,将肉兔按3.1.4节所述方法分为4个姿态组。本文模型对不同姿态肉兔的体质量预测结果如表5所示。

表5 不同姿态肉兔的体质量预测结果

由表5可知,肉兔的姿态越规则、干扰因素越少,体质量预测的精度越高,而姿态组D的平均误差最大,一方面原因是姿态组D的肉兔图像分割性能最差,另一方面,由于姿态组D干扰因素多,所获得的BP神经网络输入值与真实值之间有所差异,降低了预测准确度。但从最终结果看,各姿态组的预测体质量和真实体质量相差较小,能够在实际养殖中为体质量估测提供帮助。

4 结论

(1)通过构建面向实际的输入输出指标,建立了一种基于Mask R-CNN的肉兔图像分割方法,并以BPNN算法为预测手段构建了肉兔体质量估测模型。

(2)构建了基于Mask R-CNN的肉兔图像分割网络,并对网络进行了训练和测试。测试结果表明,当交并比为0.5∶0.95时,肉兔图像分割网络对肉兔目标分类准确率为94.5%,对像素分割的精确率为95.1%。对不同日龄肉兔,网络的分类准确率不小于96%,对像素的分割精确度不小于91.4%。对不同姿态的肉兔,网络的分类准确率不小于96%,对像素分割的精确率不小于93.5%。网络对不同日龄和不同姿态的肉兔均具有良好的分割性能。

(3)以肉兔图像分割网络的预测结果和采集的对应体质量为数据集,构建了基于BP神经网络的肉兔体质量估测模型,并对模型进行训练和测试。结果表明,肉兔体质量估测模型的预测值与真实值具有显著相关性,拟合相关系数R为0.993 91,均方误差为0.033 6,预测体质量与实际体质量平均相差123 g。对于不同日龄的肉兔,网络预测成年兔体质量的效果优于幼兔,平均相对误差最小为4.29%。对于不同姿态的肉兔,网络对姿态规则、干扰因素少的肉兔体质量估测效果最佳,平均相对误差最小为3.37%。本文构建的体质量估测模型对实际生产具有指导意义。

猜你喜欢

日龄姿态像素
初配日龄对杜洛克母猪繁殖性能的影响
像素前线之“幻影”2000
初配日龄对丹系母猪产仔性能的影响
攀爬的姿态
“像素”仙人掌
全新一代宋的新姿态
不同去势日龄对保育猪生长性能的影响
高像素不是全部
另一种姿态
蛋鸡合理投料量