基于密度估计和VGG-Two的大豆籽粒快速计数方法
1.
2.
Fast Counting Method of Soybean Seeds Based on Density Estimation and VGG-Two
1.
2.
通讯作者: 王敏娟(1984-),女,副教授,研究方向为植物表型组技术。电话:
收稿日期: 2021-01-14 修回日期: 2021-09-16
基金资助: |
|
Received: 2021-01-14 Revised: 2021-09-16
作者简介 About authors
王莹(1994-),女,博士研究生,研究方向为大豆表型技术。E-mail:
为快速准确计数大豆籽粒,提高大豆考种速度和育种水平,本研究提出了一种基于密度估计和VGG-Two(VGG-T)的大豆籽粒计数方法。首先针对大豆籽粒计数领域可用图像数据集缺乏的问题,提出了基于数字图像处理技术的预标注和人工修正标注相结合的快速目标点标注方法,加快建立带标注的公开可用大豆籽粒图像数据集。其次构建了适用于籽粒图像数据集的VGG-T网络计数模型,该模型基于VGG16,结合密度估计方法,实现从单一视角大豆籽粒图像中准确计数籽粒。最后采用自制的大豆籽粒数据集对VGG-T模型进行测试,分别对有无数据增强的计数准确性、不同网络的计数性能以及不同测试集的计数准确性进行了对比试验。试验结果表明,快速目标点标注方法标注37,563个大豆籽粒只需花费197 min,比普通人工标注节约了1592 min,减少约
关键词:
In order to count soybean seeds quickly and accurately, improve the speed of seed test and the level of soybean breeding, a method of soybean seed counting based on VGG-Two (VGG-T) was developed in this research. Firstly, in view of the lack of available image dataset in the field of soybean seed counting, a fast target point labeling method of combining pre-annotation based on digital image processing technology with manual correction annotation was proposed to speed up the establishment of publicly available soybean seed image dataset with annotation. Only 197 min were taken to mark 37,563 seeds when using this method, which saved 1592 min than ordinary manual marking and could reduce 96% of manual workload. At the same time, the dataset in this research is the largest annotated data set for soybean seed counting so far. Secondly, a method that combined the density estimation-based and the convolution neural network (CNN) was developed to accurately estimate the seed count from an individual threshed seed image with a single perspective. Thereinto, a CNN architecture consisting of two columns of the same network structure was used to learn the mapping from the original pixel to the density map. Due to the very limited number of training samples and the effect of vanishing gradients on deep neural networks, it is not easy for the network to learn all parameters at the same time. Inspired by the success of pre-training, this research pre-trained the CNN in each column by directly mapping the output of the fourth convolutional layer to the density map. Then these pre-trained CNNs were used to initialize CNNs in these two columns and fine-tune all parameters. Finally, the model was tested, and the effectiveness of the algorithm through three comparative experiments (with and without data enhancement, VGG16 and VGG-T, multiple sets of test set) was verified, which respectively provided 0.6 and 0.2 mean absolute error (MAE) in the original image and patch cases, while mean squared error (MSE) were 0.6 and 0.3. Compared with traditional image morphology operations, ResNet18, ResNet18-T and VGG16, the method proposed improving the accuracy of soybean seed counting. In the testset containing soybean seeds of different densities, the error fluctuation was small, and it still had excellent counting performance. At the same time, compared with manual counting and photoelectric seed counter, it saved about 2.493 h and 0.203 h respectively for counting 11,350 soybean seeds, realizing rapid soybean seeds counting.
Keywords:
本文引用格式
王莹, 李越, 武婷婷, 孙石, 王敏娟.
WANG Ying, LI Yue, WU Tingting, SUN Shi, WANG Minjuan.
1 引 言
在早期阶段,常用的籽粒计数方法是人工籽粒计数,但此操作耗时耗力。同时,肉眼的判断具有很大的偶然性和主观性,长时间计数后不可避免会产生误差,导致计数不准确[4]。相比人工计数,光电种子数粒仪可轻松避免由于偶然性和主观性产生的误差,结构简单、操作方便,对种子无破坏作用;还能起到“一机多用”的功能。随着研究的深入,光电种子数粒计数误差越来越小,但其普遍存在的不足之处在于价格昂贵,计数速度慢,不利于大规模农业生产自动化的发展[5]。随着计算机技术的发展和图像信息的普遍化,机器视觉逐渐被科研人员应用到大豆籽粒计数领域,如利用腐蚀膨胀法、分水岭算法[4,6]、特征点匹配[7]等基于数字图像处理技术的方法实现籽粒识别和计数。荣斐[6]针对多种子相互粘连的情况,对图像处理方法进行研究,运用腐蚀膨胀法、面积分配法和分水岭算法,实现对黑豆的分割和快速计数。周洪垒[4]使用距离变换与分水岭相结合的算法实现粘连区域的分割,提出划线分割算法,并加入多线程以实现算法处理速度的提升。Liu等[8]确定了图像特征点与谷粒数之间的关系,探索了图像特征点的测量方法,并将其与现有的计数方法进行了相似性和差异性的比较,误差率均低于2%。Tan等[9]提出了杂交水稻粘连籽粒的精确分割和计数算法,该算法根据分水岭分割算法、改进的角点算法和BP神经网络(Back Propagation Neural Network)分类算法分离和计算粘连谷粒数,与人工计数结果相比,所提方法平均准确率为94.63%。基于传统数字图像处理的籽粒计数方法与人工计数和光电种子数粒仪相比,其计数速度确实有所提升,计数精度也有一定提高,但该类方法需要专业知识和手动提取图像特征,具有复杂的调参过程,同时每个方法都针对具体应用,其泛化能力及鲁棒性较差[10]。
随着卷积神经网络(Convolutional Neural Networks,CNN)模型[11]在诸多领域取得非常成功的应用[12-14],深度学习技术[15]也得到农业领域研究人员的认可。与传统数字图像处理技术相比,CNN模型的优势是自动学习和提取有用特征,实现自动化和智能化计数。虽然CNN在大豆籽粒计数领域研究和应用相对较少,但在其他目标计数[16]方面有相关研究,如Pound等[17]建立了一个名为ACID(Annotated Crop Image Dataset)的新数据集,提出了一种可以准确定位小麦尖峰和小穗同时准确分类和计数的多任务深度学习方法。Deng等[18]建立并测试了基于具有特征金字塔网络(Feature Pyramid Networks,FPN)的Faster R-CNN高精度谷物检测模型,用于自动检测和计数每穗粒数,与人工计数谷粒的结果相比,该模型的平均准确率达到99.4%且检测性能不受品种和水分条件的影响。Wu等[19]开发了线性回归模型和深度学习模型来计算每穗粒数,其计数准确率分别大于96%和99%。Wu等[20]采用深度学习方法解决传统图像处理算法的局限性,通过构建基于区域的Faster R-CNN模型并运用迁移学习方法,优化了小麦籽粒检测和计数模型,其平均精度为0.91。翟强等[21]利用具有不同尺寸感受野的CNN和特征注意模块自适应提取多尺度人群特征,结合密度估计方法实现人群计数。
基于CNN的目标计数的实现为大豆籽粒计数提供了新思路。基于图像的目标计数方法可归纳为两大类[22]:一是基于检测的方法;二是基于回归的方法,其中包括直接回归和密度图回归。由于大豆籽粒图像密度不一、籽粒小,基于小目标检测的方法需要训练检测器来捕获信息,通过检测器检测目标并计算其数量,但是训练检测器比较复杂,计算量较大[23]。与此同时在深度CNN架构中经过多次下采样后,深层的特征图将会丢失空间信息。而且基于直接回归进行计数的缺点是没有精确的定位,但基于密度回归的方法跳过了艰巨的识别和分类任务,直接生成密度图,学习图像的局部特征和其相应的密度图之间的映射,再根据密度图积分得到目标计数[24]。因此本研究将密度估计和CNN相结合,根据籽粒特征构建VGG-Two(VGG-T)模型,进而实现从单一视觉大豆籽粒图像中快速准确识别大豆籽粒数。
2 数据集构建
大规模标注数据的可用性是深度学习在计算机视觉领域取得成功的原因之一。比较成功的神经网络需要大量参数,参数的正确工作需要大量数据进行训练,然而目前缺少公开可用带标注的大豆籽粒数据集。因此本研究首先采集并建立了适用于CNN的大豆籽粒图像数据集。
2.1 数据采集
图1
将脱粒大豆种子随机平铺在一块黑色吸光背景布上,保证种子不重叠,尽量避免相互接触。在白天、具有漫反射自然照明条件下的植物工厂中,使用相机(SONY ILCE-5000型号,光圈f/4,焦距16
图2
图2
大豆籽粒图像采集装置及预处理后的原始图像
Fig. 2
Soybean seed image acquisition device and the original image after pretreatment
2.2 数据标注
2.2.1 大豆籽粒预标注
图3是大豆籽粒预标注流程图。为方便后续环节的处理,运用图像预处理来调节采集的籽粒图像的对比度、亮度、尺寸。针对籽粒图像特点,利用转灰度、求阈值等一系列图像分析算法进行目标区域提取。为避免错误标注和减少后期人工修正标注的工作量,补充设计了删除大面积粘连籽粒预标注的处理。最后,定位部分籽粒并获取这些籽粒质心坐标。
图3
将预处理后的RGB籽粒图像I转成灰度图GI,使用灰度阈值函数计算出全局阈值
图4
删除小面积操作之后的二值图像中有部分籽粒粘连,如图5(a)红色框显示,若直接对其进行质心预标注,会出现错标和漏标两个问题,如图6(a)。为尽量减少后期人工修正标注的工作量,利用删除粘连籽粒预标注结果的方法来避免错标问题。图6(b)是删除预标注之后的示意图,只出现漏标情况。这里首先进行形态学腐蚀操作,分离粘连籽粒,如图5(b)红框所示,但存在小部分粘连程度较大的籽粒仍无法分离,如图5(b)绿框所示。为减少后续人工修正错误标注的工作量,进行删除大面积的粘连籽粒预标注处理,其中设置了两个面积阈值T2,分别是190和300。通过对比质心标注效果,图7(a)为T2=300时的标注示意图,出现了错标和漏标两个问题;图7(b)为T2=190时的标注示意图,只出现了漏标情况,因此将面积阈值参数T2设置为190。
图 5
图 5
形态学腐蚀操作处理籽粒粘连
(a)籽粒粘连 (b)形态学腐蚀操作
Fig. 5
Morphological corrosion treatment of adhesive seeds
图6
图6
删除粘连籽粒预标注前后的示意图
(a)粘连籽粒的错误预标注 (b)删除错标结果
Fig. 6
Annotation diagram before and after deleting pre-labeling of adhesive seeds
图 7
图 7
删除不同大面积粘连籽粒的标注示意图
(a)大面积阈值T2=300 (b)大面积阈值T2=190
Fig. 7
Annotation diagram after deleting different large area of adhesive seeds
2.2.2 大豆籽粒标注系统
为实现快速、准确、低成本的点标注,利用MATLAB R2017b构建“脱粒种子标注系统V1.0”(简称“标注系统”),其中包括文件管理单元和标注单元两部分。标注系统功能结构如图8所示。文件管理单元用于载入、清空图像,图像中种子所在位置坐标信息的显示和存储等,包括图像载入、参数显示、数据存储以及图像清空功能。标注单元分成两种标注方式:一种是普通的人工标注,即直接在载入的图像上逐一标注种子;另一种是基于传统数字图像处理技术的“预标注+人工修正”的标注方式,首先在MATLAB中调用imerode( )函数通过形态学腐蚀操作处理二值化图像,对原始图像进行初步的籽粒识别和定位,详情见1.2.1,然后在此基础上进行人工补充标注,该方法对37,563个大豆籽粒进行标注时只需要使用197 min,与人工标注相比节约了1592 min,减少了约96%的人工工作量,大大降低标注时间成本和人力成本。
图8
图8
脱粒种子标注系统功能结构图
Fig. 8
Annotation system function structure diagram of threshed seed
图9
图9
脱粒种子标注系统的标注操作界面
Fig. 9
Annotation operation interface of threshed seed labeling system
2.3 数据增强
为在原始图像数量有限的情况下尽可能多的增加输入图像的数量,考虑在每一张原始图像的不同位置裁剪出9个补丁(patch),patch的大小设定为原始图像大小的四分之一。设置用于训练和验证网络的图像数量为239张,则patch数量为2151个,远远大于原始图像的数量。在第4节试验部分,分别用有无数据增强的数据集对模型进行训练,并进行估测性能的对比,验证了使用数据增强的重要性和必要性。
2.4 数据集建立
按照6:1:3的比例,设置训练集、验证集和测试集图像数。大豆籽粒图像的训练集包含206张,共22,582个标记种子;验证集包含33张,共3631个标记种子;测试集包含103张,共11,350个标记种子。经过数据增强,用于训练和验证网络的输入数量扩充为2151个patch。表1为该数据集的详细信息。
表 1 大豆籽粒图像数据集
Table 1
数据集 | 数量/张 | 籽粒数/个 | 最少籽粒数/个 | 最多籽粒数/个 | 平均籽粒数/个 |
---|---|---|---|---|---|
训练集 | 206 | 22,582 | 67 | 201 | 109 |
验证集 | 33 | 3631 | 70 | 200 | 110 |
测试集 | 103 | 11,350 | 70 | 200 | 110 |
总数 | 342 | 37,563 | 67 | 201 | 109 |
3 研究方法
3.1 基于密度图的籽粒计数
与基于检测的方法相比较,基于密度图的方法不用进行分类、预选框的回归训练以及目标分割操作,只需要训练网络,将特征图映射成密度图即可,然后直接根据密度图积分计算输入图像的籽粒数。
3.2 真值密度图
为实现网络模型从输入种子图像中估测其种子密度图,前期需要对VGG-T网络进行训练。训练网络需要提供高质量的训练数据集,基于密度图估计的人群计数通常使用高斯核将标注点生成真值密度图,以真值密度图为监督信号,通过网络生成的密度图计数求和来实现计数,以及计算损失。因此本节所用的数据集除2.4小节描述的种子图像外,还包括每张种子图像对应的真值密度图。
将高斯核与种子中心标注点进行卷积操作,可以生成种子图像对应的真值密度图。
其中,
图10
3.3 VGG-T网络架构
本研究设计的VGG-T网络拥有以下特性:在Conv4_3之后分支了2个特征数据流,第一个数据流直接生成第一个密度图,第二个数据流经过Conv5_3之后,生成第二个密度图,将两个密度图进行融合得到最终的估测密度图。图11给出了VGG-T的架构图。
图11
该网络的主干网络为VGG16。主要特征提取步骤为:(1)用64个3×3、步幅为1的滤波器构建的两个卷积层(Conv1_1, Conv1_2)对输入图像进行卷积,输出特征图的大小保持不变,通道数量为64;然后用2×2、步幅为2的滤波器构建最大池化层(Pool1),池化层将输入特征图进行压缩,输出大小是输入大小的1/2,通道数为64;(2)用128个3×3、步幅为1的滤波器构建两个卷积层(Conv2_1, Conv2_2),输出特征图的大小保持不变,通道数量为128;然后用2×2、步幅为2的滤波器构建最大池化层(Pool2),池化层将输入特征图进行压缩,输出大小是输入大小的1/2,即是原始输入图像的1/4,通道数为128;(3)用256个3×3、步幅为1的滤波器构建的三个卷积层(Conv3_1,Conv3_2,Conv3_3)对输入图像进行卷积,输出特征图的大小保持不变,通道数量为256;然后用2×2、步幅为2的滤波器构建最大池化层(Pool3),池化层将输入特征图进行压缩,输出大小是输入大小的1/2,即是原始输入图像的1/8,通道数为256;(4)用512个3×3、步幅为1的滤波器构建的三个卷积层(Conv4_1,Conv4_2,Conv4_3)对输入图像进行卷积,通道数量为512。之后分支了2个特征数据流。
VGG-T与传统VGG16网络模型的对比如表2所示。相比VGG16,本研究用1×1的卷积核代替全连接层,因为1×1的卷积核一方面大大降低要求解网络参数的个数,同时满足全连接层的作用,另一方面还能够适应不同的输入数据的大小。其中标1的通道直接经滤波器为1×1的Conv回归得到一个密度图(De1);标2的通道则需要再经过Pool4,Conv5_1,Conv5_2,Conv5_3,Conv回归得到另一个密度图(De2),由于比通道1多一次池化操作,其得到的密度图尺寸会再减小一半,为能够完成最后一步密度图的融合,该通道还要经过一次反卷积操作。
使用
其中,
VGG-T输入的是图像,输出的是种子密度图,对密度图积分可得出该图包含的种子总数,用于计算种子数的公式如下:
其中,
3.4 损失函数计算
均方误差损失函数
其中,
由于训练样本的数量有限,以及梯度消失对深度神经网络的影响,网络能够同时学习所有参数并不容易。受到预训练的启发,分别对通道1和通道2单独训练,学习到各层参数作为整体训练时2个分支通道的初始值。
3.5 评估指标
使用平均绝对误差(Mean Absolute Deviation,MAE)和均方误差(Mean-Square Error,MSE)来评估本方法。MAE是一种常见的用于回归模型的损失函数,反映估测值和真实值之间的距离,定义如下:
其中,
MSE是最常用的回归损失函数,表示种子数估测的稳定性,MSE越大,说明估测的结果存在异常值。MSE定义如下:
4 试验与结果分析
试验在操作系统为Ubuntu 18.4 64-bits的PC机上进行,其处理器为Intel® Xeon(R) CPU E5-2630 v4 @ 2.20GHz×20,内存为32 GB。使用PyTorch深度学习框架基于 NVIDIA 1080Ti GPU来实现网络训练和测试。
4.1 有无数据增强计数对比
分别使用239张大豆籽粒图像(无数据增强)和2151个patch(有数据增强)作为训练数据来训练VGG-T网络,在训练网络的过程中,使用验证集来评估和优化模型,然后用分别得到的最优模型来估测测试集中图像的籽粒数。表3为相关结果数据。
表3 VGG-T在有无数据增强下的试验结果
Table 3
模型 | Patch | MAE/(粒·图-1) | MSE/(粒2·图-1) |
---|---|---|---|
VGG-T | 无 | 0.6 | 0.6 |
有 | 0.2 | 0.3 |
从结果数据可以看出,使用数据增强的方法生成的patch作为训练数据,其测试后得出的MAE和MSE数值都较小,由此证明数据增强这一步骤对于提高网络的估测性能非常重要而且必要。这里使用的随即裁剪增加了训练样本的多样性,相当于建立每个因子特征与相应类别的权重关系,减弱背景(或噪声)因子的权重,且使模型面对缺失值不敏感,最终产生更好的学习效果,增加了模型的稳定性,进而提高网络的估测性能。
4.2 不同计数方法对比
使用239张原始大豆籽粒图像和2151个patch作为训练集来分别训练基础VGG16网络、VGG-T网络、ResNet18网络和ResNet18-T网络。其中ResNet18-T采用与VGG-T相同的思想增加一个分支以融合多尺度特征。同时使用传统形态学操作,该过程首先利用最大类间方差法对已进行亮度、大小、对比度调节的图像二值化,之后通过形态学梯度(膨胀-腐蚀)获得大豆籽粒边缘,接着利用原始图像减去边缘来减少籽粒之间的粘连,最终使用OpenCV中的findCoutours函数找到图像中所有大豆籽粒的轮廓并进行计数,但由图5能够看出经形态学腐蚀后粘连籽粒仍然未能分离。表4为5种方法的计数性能比较,根据MAE和MSE的值可以看出,当进行传统形态学操作时,其对应的误差均较大;对于原始图像,VGG-T在估测准确性和稳定性上显著优于基础VGG16、ResNet18和ResNet18-T;对于增强后的patch数据,VGG-T的性能与ResNet18-T相当,同时优于VGG16和ResNet18。综上所述,试验结果显示了所提出的两个分支进行数据特征的融合能够进一步实现模型性能的提升,且VGG-T网络在所有数据中的综合表现最好。
表 4 5种方法的计数性能对比
Table 4
Method | Patch | MAE/(粒·图-1) | MSE/(粒2·图-1) |
---|---|---|---|
传统形态学操作 | 无 | 4.36 | 7.17 |
ResNet18 | 无 | 2.1 | 2.4 |
有 | 0.7 | 0.8 | |
VGG16 | 无 | 2.2 | 2.9 |
有 | 0.4 | 0.6 | |
ResNet18-T | 无 | 0.7 | 0.8 |
有 | 0.2 | 0.3 | |
VGG-T | 无 | 0.6 | 0.6 |
有 | 0.2 | 0.3 |
4.3 不同测试集计数对比
将测试集的所有图像按照每张含有籽粒数的大小进行升序排列,然后将排好的103张测试图像分成7组,组1~组7分别包含15、15、15、15、14、14、15张籽粒图。用VGG-T的最优训练模型分别测试这7组测试集,表5为MAE、MSE、真值种子数以及估测种子数。真值种子数表示各组平均每张图像含有的种子数的真实值,估测种子数表示各组平均每张图像含有的种子数的估测值。由表中数据可以看出,组1的MAE和组4的MSE分别达到最小,为0.46和0.52。同时随着图像中大豆籽粒数量的不断增加,组1~组7的MAE和MSE大致呈升高趋势,但增加幅度均较小,其中真值和估值最多相差2粒,说明训练得到的最优模型在包含70~200个籽粒图像上均具有优良的计数性能。
表5 不同测试集的试验结果
Table 5
组别 | MAE/ (粒·图-1) | MSE/ (粒2·图-1) | 真值种子 数/粒 | 估值种子 数/粒 |
---|---|---|---|---|
组1 | 0.46 | 0.53 | 71 | 71 |
组2 | 0.50 | 0.59 | 80 | 79 |
组3 | 0.61 | 0.57 | 90 | 90 |
组4 | 0.58 | 0.52 | 100 | 101 |
组5 | 0.63 | 0.55 | 110 | 109 |
组6 | 0.68 | 0.65 | 120 | 118 |
组7 | 0.73 | 0.63 | 200 | 199 |
4.4 时间成本
目前人工计数是大豆育种者使用最为普遍的计数方法,同时光电种子数粒仪可轻松避免偶然性和主观性导致的误差,因此将本研究方法与光电种子数粒仪、人工计数方法进行计数时间比较,结果如表6所示。在采集原始图像的同时,调研了三位大豆育种工作者三天内计数种子的情况,经统计得出人工计数效率为100 粒/80 s,即1.25 粒/s;光电种子数粒仪的计数速度大约为1000 粒/
表6 11,350粒大豆籽粒计数时间成本对比
Table 6
指标 | 人工计数 | 光电种子数粒仪 | VGG-T |
---|---|---|---|
效率/(粒·s-1) | 1.25 | 5.56 | 116.690 |
总耗时/h |
本研究建立的数据集中测试集共103张大豆籽粒图,包含11,350粒种子,假设计数效率均不变,不间断人工手动计数需要大约
5 结 论
本研究提出了一种大豆籽粒快速高精度计数方法,构建VGG-T模型并结合籽粒密度图进行回归,所得结论如下:
(1)设计了大豆籽粒标注系统,提出了基于数字图像处理技术的预标注和人工修正标注相结合的快速目标点标注方法。新方法标注37,563个大豆籽粒只需要花费197 min,比普通人工标注节约了1592 min,减少了约
(2)建立了包含342张已标注大豆籽粒图像,共37,563个中心被标注的公开可用大豆籽粒图像数据集。
(3)构建了结合密度估计方法的基于VGG-T的大豆籽粒数估测模型,其评估指标在原图和patch情况下的MAE分别为0.6和0.2,MSE为0.6和0.3,相比传统图像形态学操作、ResNet18、ResNet18-T和VGG16网络,本方法提高了大豆籽粒计数的准确性。同时相比人工计数和数粒仪,以0.027 h 完成测试集中11,350个大豆籽粒的快速计数,分别节省了大约