(1.四川大学电子信息学院,成都 610065;2.中储粮成都储藏研究院有限公司,成都 610091)
作为我国第二大农作物,小麦对人民日常饮食、国家的粮食安全,以及推动国民经济发展都有着举足轻重的作用。小麦不完善粒是指受到了损伤但仍有使用价值的小麦籽粒,包括破损粒、虫蚀粒、病斑粒(赤霉病粒以及黑胚粒)、发芽粒、霉变粒等。不完善粒的含量是对小麦完成定级、定等的关键指标。我国目前小麦质量检测工作仍然是由专业质检人员根据经验判断,该方法主观性强、工作量大、可重复性差,并且在检测过程中可能毁坏受检麦粒,如人工对发芽籽粒的判定可能刮伤籽粒。
1984 年的美国农业部最先提出基于图像来对小麦进行分类的思想。1985 年堪萨斯州立大学的Zayas[1]基于图像提取了小麦的长、宽、面积等形态特征进行识别。最先使用机器视觉技术对小麦不完善粒进行检测是在1991 年的美国华盛顿州立大学,Thomson等[2]通过逐麦粒扫描三维图形对生芽粒进行分类,正常粒小麦识别率83%,发芽粒小麦识别率89%。1999年,Majumdar等[3]提取麦粒的纹理特征和颜色特征,对大麦、小麦、燕麦等不同种类的麦粒样品进行分类,准确率达到100%。2007 年,Neethirajan 等[4]提取麦粒55 个特征,使用BP(Back Propagation)人工神经网络进行分类,准确率达到95%。2012 年,我国浙江大学陈丰农[5]提取小麦的形态、颜色、纹理三类共计178 维特征,使用主成分分析(Principal Component Analysis,PCA)+支持向量机(Support Vector Machine,SVM)算法进行分类,对黑胚粒、破损粒和正常粒小麦的识别率分别达到97.2%、98.4%和97.9%,并且开发了一台小麦不完善粒自动检测的样机。
早期的研究主要集中在使用各种方法提取小麦的形态、颜色和纹理三类特征,然后用各种机器学习算法对图像进行分类,其局限在于人工定义特征困难、数据可分性弱,且偏向可行性研究,数据量偏小。近年来,卷积神经网络(Conventional Neural Network,CNN)蓬勃发展,国内相关研究人员对使用CNN 识别小麦不完善粒开展了诸多研究。2017年,曹婷翠[6]提出采用双面图像进行识别的方案,基于LeNet-5构建神经网络,获得了平均90%以上的准确率。2018年,陈文根[7]构建了具有五层卷积的神经网络,对九种不同的小麦进行分类,取得了98.4%的准确率。2019年,张博[8]构建了具有三个残差块的残差神经网络,对正常、破损、虫蚀、病斑、生芽和霉变六类小麦分类,获得了96%的准确率。2020 年,祝诗平等[9]使用近红外光谱图像提取光谱特征,对比了LeNet-5、ResNet-34、VGG-16 和AlexNet 几种经典CNN 与传统分类方法,在AlexNet 上对正常籽粒和破损籽粒二分类获得最高98.02%的准确率。
目前针对小麦不完善粒识别的研究中,基于高光谱图像的研究较多,仅使用普通图像的研究较少。而高光谱成像设备价格昂贵,自动检测设备开发和实验室研究成本都比较高。所以本文使用普通图像展开研究,而当前绝大部分使用普通小麦图像分类的研究只是将其视作一般图像分类任务,着重改进分类算法,而没有利用好小麦图像自身的特点。本文依据实际应用场景下小麦图像的特点,提出对麦粒细节作图像增强(Image Enhancement,IE)以突出不完善特征,并在CNN中加入批正则化(Batch Normalization,BN)层提高泛化性能,之后以突出细节特征的图像作为输入,训练卷积神经网络分类器进行分类检测,取得了较好的实验效果。
实验样本由中储粮成都储藏研究院有限公司相关人员收集,包括完善粒和五类不完善粒样本共六类,即完善粒、破损粒、虫蚀粒、病斑粒、发芽粒、生霉粒,然后由该研究院专业小麦质检人员做数据标注。以抖动式自动上料盘、透明玻璃板和一对工业相机(均为维视相机MV-EM200C搭配远心电耦合器件(Charge Coupled Device,CCD)光学镜头BT-2336)构成自动图像采集设备,模拟实际应用场景采集麦粒双面图像。
所用的工业相机聚焦可以实现背景为纯黑色,然而麦粒本身占整幅图像的比例不大,采集到的图像大部分区域为黑色背景,并且部分区域会有麦粒上料过程中掉落的碎屑。所以先对图像进行预处理工作,删除多余背景,具体为:对图像进行二值化之后查找轮廓,最大轮廓即为麦粒边缘,以麦粒边缘确定的矩形区域为界,向四周扩充两个像素之后裁剪原图。
裁剪后的图像大小各异,为方便神经网络输入,运用图像处理算法将其大小调整至等宽高。具体为:固定图像宽高比将图像缩放至227×n(n≤227),并在较短的边两侧等量补零,将图像调整至227× 227大小。
以前述处理后的图像为基础,共收集完善粒图像12 998张,破损粒图像8 658 张,虫蚀粒图像7 180 张,病斑粒图像6 690张,生芽粒图像6 000张,霉变粒图像6 322张。图1展示了六类小麦的图像。为了评估本文所提方法的性能,避免不平衡分类问题,六类样本每一类各取6 000张图像建立小麦不完善粒识别数据集,其中5 000 张作为训练集,1 000 作为测试集。
图1 六类麦粒图例Fig.1 Samples of six wheat kernel classes
六类小麦图像除部分破损粒轮廓严重不完整或是有较大区域为白块以外,大部分图像仅靠微小的局部差异判断小麦籽粒是否完善或不完善。因此,本文运用图像处理技术从输入端突出不完善粒的特征,以期改善不完善粒的识别率。
突出图像细节的基本思想是将图像拆解为基础层和细节层,突出细节层后与基础层叠加。分解原图的核心是找到图像的基础图层,通过图像平滑即可得到图像的基础层。
关于图像平滑的研究颇多,经典算法有双边滤波、加权最小二乘法、全变分(Total Variation,TV)模型、L0范数最小化算法等。由于预处理后的小麦图像背景为全0 像素,背景部分水平和竖直方向梯度均为0。本文采取Xu 等[10]提出的使用L0 范数约束的方法来平滑图像,相较以往的算法,此算法不依赖局部信息,通过全局定位图像的明显边缘来进行平滑。具体为:
约定I为原图像,S为待求解的平滑图像,∂xSp和∂ySp表示求解出的S沿着水平和竖直方向的偏导数(此偏导采用前向差分求解),于是图像中任一点p处的导数可以记为∇Sp=(∂xSp,∂ySp)T,对二维图像S而言,需要约束水平方向和竖直方向的L0范数,具体的约束项为:
其中,“#{}”表示对大括号内满足条件的像素p计数。假设I为原图像,S为满足约束条件下的基础层,则求解目标函数为:
将其转化为非约束形式:
其中:λ是一个非负参数,控制I被平滑的权重。
由于C(S)非凸非可导,求解此式困难。为此引入辅助变量h和v,求解目标变换为:
其中:β是一个超参数,约束hp和vp与对应原图像梯度∂xSp和∂ySp的相似性。求解此式即可得到图像在参数(λ,β)下的基础层S。使用交替最小化算法来求解此式,当固定S时(h,v)的最优解为:
图2 六类麦粒图像平滑和增强Fig.2 Smoothing and enhancement of images of six wheat kernel classes
图3 完善粒不同增强方法效果Fig.3 Effect of perfect wheat kernel enhanced by different methods
固定(h,v)时S的最优解为:
其中:“F”表示傅里叶变换,“F-1”为傅里叶逆变换,“F*()”表示取取傅里叶变换所得矩阵的伴随。
交替固定S按式(5)求解(h,v)和固定(h,v)按式(6)更新S,即可迭代完成基础层S的求解。求出S后,原图I减去基础层S得到细节层,突出细节层并与基础层S求和,即得到突出细节后的目标图像D,即:
其中:γ是一个大于1 的常数,控制突出细节的程度。整个算法流程如算法1所示。
算法1
1)初始化S=I,设置λ和β的初始值以及β最大值βmax;
2)按式(5)更新(h,v);
3)按式(6)更新S并更新β←β× 2;
4)重复步骤2)和3)直至β>βmax;
5)按式(7)求出增强后的图像D。
当λ和β的初始值为0.02,βmax取105,γ取1.2 时,六类图像原图I、平滑处理求得的基础图层S以及增强后的图像D如图2所示。
经典图像增强(IE)方法众多,总的来说可以分为空域增强和频域增强。其中空域增强直接对像素进行操作,包括直方图均衡化、gamma 变换、拉普拉斯算子卷积、对数变换以及本文采用的分解图层后增强某些层的方法。而频域增强则是通过离散傅里叶变换将图像变换到频率域,选择合适的阈值和增强系数增强高频部分。图3 分别展示了完善粒图像使用上述几种方法增强后的效果图。
由图3 可以看出,就小麦图像而言:频域高通滤波丢失了很多整体信息;因为有很多接近零而非0 的像素点,直方图均衡会引入额外噪声;而gamma 变换和对数变换更多用来解决光照太亮或者太暗时对比度太低的问题,对小麦图像而言反而减少了其纹理信息;拉普拉斯卷积核通过每一个像素点的像素值乘五再减去四邻域的像素和,一定程度上使得纹理信息有所增强,但也不如本文方法的效果显著。
批正则化技术即Batch Normalization(BN)是近年来深度学习发展的重要成果之一。有研究[11]指出,将图像白化(将数据处理为标准正态分布)过后再送入神经网络,可以加速收敛过程。假设有m个数据,计算其均值μB和标准差每一个数据作如此映射:xi=其中:
在深度神经网络各个卷积层之间,每一层都相当于下一层的输入,若将神经网络每一层输出神经元都采取白化操作,则需要对神经网络每一层都使用所有数据,计算全局的均值和标准差,计算量非常大导致训练过程很慢。当今小批量学习已成为训练深度神经网络的主流方法,即每一次训练前向传播和反向传播都只取固定数量的一部分数据(称为一个mini-batch)参与,既减小了硬件开销又能同时学习到各类数据的特征。于是,Loffe 等[12]提出对神经网络每一层输入,以mini-batch 为单位进行白化操作而不用计算全局的均值和方差,让数据以小方差集中在批均值附近;同时,为了更好地学习到非线性特征,对白化之后的正态分布再进行缩放和平移。
其中:γ与β控制缩放和平移的程度,由神经网络学习。
BN 已经被证明可以加速网络收敛和抑制过拟合现象并且被广泛应用于各种分类任务中。在深度学习别的研究领域还衍生出了Layer Normalization、Group Normalization、Weight Normalization、Instance Normalization 等变体[13]。在分类网络中加入BN层,以期获得更好的识别率。通常在神经网络卷积输出之后非线性激活之前加入BN,图4展示了神经网络相邻卷积层之间加入BN层前后结构。
图4 神经网络相邻层加入BN前后的结构Fig.4 Structure of CNN adjacent layers before and after adding BN layer
实际应用场景中,虽然成批的麦子其数量是极大的,基于机器视觉技术逐麦粒进行识别无法用于完善-不完善粒分拣,但是对于国家粮食机构收粮现场小样本快速质检是完全可行的。在快速质检的应用场景下,只需要给出一批样本的不完善率即可,此时结合图像增强和CNN 进行小麦不完善粒识别的流程如图5所示。
图5 本文不完善粒识别流程Fig.5 Flowchart of the proposed imperfect wheat kernel recognition
分别以经典分类网络LeNet-5、VGG-16 以及ResNet-34 作为主干网络,对输入图像进行细节增强后送入含有BN层的神经网络进行分类(CNN+IE+BN)。对比实验包括:1)仅使用原网络(CNN);2)只做图像增强(CNN+IE);3)只添加BN(CNN+BN)。实验环境为:操作系统为Ubuntu 16.04,CPU 为Intel Core i5-7500,内存为8 GB,GPU 为Nvidia GTX1080Ti(显存11 GB)。使用CUDA 8.0+Pytorch-1.0。
所有网络实验均迭代250次,学习率初始值0.01,每迭代100 轮学习率衰减90%。设置Batch Size 为84,由于pytorch 框架不提供LeNet-5 的预训练模型,初始权值均使用pytorch 预设的初始化策略进行初始化。其中细节增强部分参数设置为:λ和β的初始值0.02,βmax=105,γ=1.2。对比训练集准确率和测试集准确率。
实验数据如表1所示。其中图像增强(IE)在表中用IE 表示。由于ResNet 网络本身加入了BN 层,实验时对比原网络去除BN 层(-BN)、原网络去除BN 后使用增强细节的图像(-BN+IE)、原网络(ResNet34),以及原网络使用增强图像(ResNet34+IE)四种情况。
表1 十二组对比实验的训练集准确率、测试集准确率 单位:%Tab.1 Training set accuracies and test set accuracies of 12 groups of comparison experiments unit:%
从表1可以看出:
1)实验的三个分类网络均在本文所提方法上获得最高测试集准确率。
2)ResNet-34在去除BN 层后,相较于原网络,无论是否对输入数据作增强处理,训练集和测试集准确率都远不如原网络。但是增强处理后相较不做此处理有更好的表现。
3)单独对比是否在网络中加BN 层和是否做图像增强可以发现,相较基础网络,二者单独使用均带来一定程度的训练集最高准确率降低和测试集最高准确率升高。并且除ResNet-34 去除BN 层后网络学习困难以外,其他实验均在结合使用BN 和图像增强时达到最大训练集准确率的最小值和最大测试集准确率的最大值。
由以上分析可以得出,ResNet-34 所使用的残差结构对BN 层依赖程度较高,去除BN 层后降低了ResNet 网络的学习能力。而此时使用细节增强的图像作为输入,相较不做细节增强也能获得更好的训练集和测试集准确率;综合十二组对比实验可知,在CNN 中添加BN 层和本文所提的图像增强方法均对提升模型的泛化能力、抑制过拟合现象有积极作用,且对于不同的分类网络均有良好的适应性,其中表现最为优秀的是VGG-16+IE+BN。
本文使用模拟实际应用场景下采集到的小麦图像,分析其有别于普通图像的特点,提出了一种针对小麦籽粒图像的图像增强方法,并在CNN 中添加BN 层。在LeNet-5、ResNet-34、VGG-16 三个不同的经典CNN 上,仅使用该方法增强输入数据,测试集准确率均提升超过1个百分点;仅在CNN中加入BN 层而不做图像增强,在三个不同的网络上测试集准确率均提升超过5 个百分点;二者结合使用时,在三个网络上测试集准确率提升均超过7 个百分点。其中:LeNet-5 参数量最少(约500 万),其总体表现也最差;ResNet-34 参数量约为2 100万,且含有残差结构可以以较小的参数量获取更深层的特征,虽然参数量相较LeNet-5增加不多,但测试集准确率提高非常明显(约9个百分点)。而VGG-16以大量的卷积层堆叠而成,参数量较大(约1.3 亿),其表现是最好的,但是训练和预测阶段比较耗时,且参数量的大量增长带来的识别率提高相对有限(相较ResNet-34 多了5 倍的参数而测试集准确率只提高2.5 个百分点),分类网络的选取和改进对于识别任务也非常重要。
但是本文对于分类网络改进并未做深入研究,实际上,小麦不完善粒识别属于细粒度分类任务。这是深度学习领域一个富有挑战性的任务,目前学术界已提出不少细粒度分类网络,但普遍网络参数量非常大(相当一部分细粒度分类网络就是用VGG-16 来提特征的)。而实际应用场景下对识别时间有较高要求,限制了网络的复杂程度。将细粒度网络轻量化使其可以提取到更深层次的特征的同时又能较快完成识别是一个值得研究的课题,这也是我们今后的研究方向。