酿酒葡萄作为一种经济作物, 其产区广泛分布在华北地区、新疆、甘肃等地。目前, 酿酒葡萄的种植规模越来越大, 依靠人工方式对酿酒葡萄生长状态的监测已经很难满足需求。随着机器视觉技术的不断进步, 利用机器视觉技术对葡萄生长状态进行在线自动监测, 可以节约人力成本。在线监测时, 拍摄的图像中通常有很多葡萄叶片, 需要利用视觉检测技术将单个叶片从图像中检测出来, 以便进行后续处理。
现有的叶片识别与分割算法[1-3]需要在特定光照条件下进行, 在变化的自然条件下无法应用。文献[4]利用HOG特征和支持向量机对葡萄叶片进行识别, 利用多尺度检测和Mean Shift[5]算法定位图像中的葡萄叶片, 但在复杂背景下, 受到图像中叶片遮挡、阴影、形变等因素的影响, 使得检测精度不高。为了解决以上传统机器视觉方法存在的问题, 本文提出了一种复杂背景下基于深度学习卷积神经网络的葡萄叶片检测方法。
卷积神经网络是一种深度学习架构, 受生物自然视觉认知启发而来, 在图像分类[6]、物体检测[7]、文本检测识别[8]、视觉显著性检测[9]等方面都有广泛应用。Girshick等[10-13]提出的卷积神经网络结合选择性搜索方法SelectiveSearch[14]来进行目标检测, 首先用SeleciveSearch方法将一幅图像生成1 000到2 000个候选区域, 对每个候选区域使用深度网络提取特征, 然后将特征放入每一类SVM分类器, 判断是否属于该类, 最后进行边框回归。在PASCAL[15]数据测试中,平均精度值达到53.3%。鉴于卷积神经网络在图像检测领域的突出能力, 本文采用卷积神经网络实现对复杂背景下葡萄叶片的自动检测, 训练过程中选用不同尺度、光照、形状以及不同程度遮挡的葡萄叶片进行学习, 以保证对自然条件下葡萄叶片进行精准检测, 弥补传统检测方法在叶片有遮挡、阴影、形变等情况下的不足。试验结果表明, 该方法对各种情形图像中的叶片具有很高的检测精度。
1 卷积神经网络卷积神经网络作为一种深度学习模型, 能够从数据中自动学习并提取特征, 其泛化能力显著优于传统算法, 已成功应用于图像识别与语音识别等方面。卷积神经网络是一种多层的学习网络, 由输入层、隐含层(包括卷积层和下采样层)和输出层组成, 每一层都是一种变换(映射), 常用变换有卷积变换与池化变换。每经过一次变换, 就对输入的数据进行一次处理, 将输出的特征转换为另一种特征表达。此外, 卷积神经网络通过两种方式来降低参数数目。第一种方法为局部感知野, 受人对外界认知是从局部到全部的启发, 一幅图像中, 局部相邻的像素具有强的相关性, 而距离远的像素相关性较弱。因此, 神经元没有必要对图像中全局的像素进行认知, 只需要对局部的像素进行学习, 然后在更高层进行信息综合, 这样无疑会减少很多的计算量。第二种方法为参数共享,在每一个神经元所对应的参数相等的情况下, 无论有多少神经元, 所对应参数的数量等同于一个神经元所对应的数量, 这也就意味着图像中一部分的统计特性等同于其他部分, 对一幅图像中所有的位置都采用同一学习特征, 有效地减少了计算量。但若采用同一学习特征, 会使神经网络特征对图像提取不充分而降低对图像的认知性能, 故卷积神经网络中通过采用多卷积核(神经元)对图像学习多种特征来增加对图像的学习性能, 每个卷积核对图像进行卷积操作后, 生成特征图像, 特征图像可看作是一副图像的另一通道。卷积神经网络结构图如图 1所示, 它由输入层、若干个串联的卷积层和池化层(下采样层)以及输出层组成。
|
图 1 卷积神经网络结构图 Fig. 1 Convolution neural network structure |
首先, 对输入图像进行卷积操作, 用一个滤波器在图像矩阵上游走, 对应的元素进行相乘, 然后将相乘的结果进行累加, 将最后的结果形成新的图像矩阵, 即完成对图像的卷积处理, 得到特征提取层, 通过卷积运算, 使原图像特征增强并降低图像噪声, 卷积层的计算式为
|
(1) |
其中, X表示输出的特征图像, f表示激活函数, n表示层数, k表示卷积核, Mj为输入特征映射的集合, b表示偏置。
在下采样层中, 对输入的特征图池化操作, 池化的主要作用是对不同位置的特征进行聚合, 减少特征图的分辨率并降低特征维数, 同时会减少过拟合的情况, 在一定程度上增加网络对图像扭曲以及位移缩放的鲁棒性。下采样层计算式为
|
(2) |
其中, X表示下采样结果, d为下采样函数, f表示激活函数, β为乘性偏置, b为加性偏置, n表示层数。
2 叶片检测 2.1 检测网络结构本文将目标检测分为以下4个基本步骤:①建议区域生成; ②特征提取; ③叶片识别分类; ④边框回归。将这4个步骤结合到一个深度学习框架之内, 所以没有重复计算, 提高了运行速度。基于卷积神经网络的葡萄叶片检测算法结构如图 2所示。
|
图 2 检测算法结构图 Fig. 2 Detection algorithm structure |
本文方法的基本过程如下:输入层为原始葡萄叶片图像(224×224的3通道RGB图像), 在卷积操作中进行原始特征提取, 选用ImageNet[16]上常见的卷积神经分类网络, 即5层的ZF(Zeiler M D, Fergus R)[17]网络结构, 第一层中含有96个卷积核, 每个卷积核大小为7×7, x和y的方向跨度为2。获得特征图的步骤为:①使用卷积核对图像进行卷积操作后,对每个卷积结果进行矫正运算, 通过激活函数relu(x)=max(x, 0), 使得卷积值均不小于0, 得到卷积操作后的图像; ②对卷积操作后的图像进行最大池化操作; ③对比度归一化, 使得输出特征平稳, 得到特征图。最终产生96个不同特征图, 尺寸为55×55。在往后4层中采用同样的操作, 在第5层输出特征图。在ZF网络最后一层卷积层上提取特征图后, 使用区域建议网络(RPN)生成建议区域, 将生成的建议区域与ROI(Regions of interest)池化层中特征图进行定位, 最后经过两个全连接层得到特征向量, 两个特征向量分别经由各自的全连接层, 得到两个输出结果:①使用softmax[18]函数作叶片识别(分类); ②叶片的边框回归(包围叶片的方框的坐标)。
鉴于篇幅所限, 本文在后面只介绍ZF输出特征图之后的检测部分。
2.2 区域建议网络区域建议(Region proposal)是一种目标检测方法[10-13], 其思路是在图像上找到多个(一幅图像通常为1 000~2 000个)有目标意义的区域作为“建议”, 对每个建议提取特征, 用分类器判断该建议是否为目标。与在整幅图像上用滑动窗口检测目标的传统方法[13]相比, 该方法需要判断的区域数量大大减少, 有计算速度的优势。通常建议的生成方法是提取图像的超像素(superpixel), 对相邻的超像素进行聚合, 生成更大的区域作为建议。
本文中卷积神经网络和建议区域生成结合在了一起, 建议区域生成也由卷积网络生成, 该网络称为区域建议网络(Region proposal network, RPN)。由于ZF网络输出的特征图对原图做了压缩映射, 在网络最后一层卷积层中, 卷积操作后输出256维向量, 每一维向量表示一类特征图, 每一类特征图上有2 400个网格(W×H=2 400, W与H分别表示一类特征图的宽与高), 数量较少, 故本文在网络模型(ZF)最后一个共享卷积特征映射层上仍然采用滑动方式生成建议区域, 即采用一个滑动网络作为RPN, 这个网络全连接到上述卷积特征层的3×3的空间窗口上。每个滑动窗口的输出通过卷积运算映射到一个低维向量上, 最后将低维向量输入两个全连接层。两个全连接层分别为叶片分类层和边框回归层, 每个全连接层中输入共有4 096个神经元。叶片分类层输出为2个神经元(叶片目标与非目标); 边框回归层输出为8个神经元(叶片目标与非目标的4个坐标)。全连接层中也采用卷积的操作实现, 将学习到的每一类特征(叶片特征)映射到样本标记空间。采用这样的处理方式保证了边框回归层与分类层与之前的卷积特征空间全部关联。区域建议网络(RPN)如图 3所示。
|
图 3 区域建议网络(RPN) Fig. 3 Region proposal network |
在每一个滑动窗口位置之上, 同时产生k个候选区, 在边框回归层有4k个输出(x,y,w,h, 分别代表包围边框的中心坐标和宽与高), 分类层输出2k个得分(即对每个建议区域是目标或非目标的概率)。k个建议区域被相应的k个anchor进行参数化, anchor表示以当前滑动窗口中心点为中心, 并对应不同的尺度(对应不同大小叶片)与不同的长宽比例(对应不同姿态的叶片)得到不同包围边框。本文分别使用3种不同尺度和长宽比, 这样每一个滑动窗口的位置有k=9个anchor, 对于大小为W×H(约2 400)的卷积特征图, 共有W×H×k个anchor, anchor具有平移不变的特性[11]。
为训练RPN, 为每一个anchor分配一个二进制的标签(是否目标), 正标签分配:①与目标真实位置的IOU(Intersection over union)重叠最高的anchor; ②anchor与任意包围边框有大于0.7的交叠。负标签分配:与所有包围边框IOU小于0.3的anchor。图像的损失函数如式(3)所示,
|
(3) |
式(3)中, i表示anchor的索引, pi表示第i个anchor是叶片的概率。如果anchor为正, 真实目标包围边框(Ground truth, GT)标签pi*为1, 反之为0, ti是一个向量, 表示预测包围边框的4个参数化坐标, ti*是与正anchor对应的GT包围边框的坐标向量。分类损失Lcls是两个类别(叶片与非叶片)的对数损失, 计算公式为
|
(4) |
对回归损失的计算公式为
|
(5) |
其中, R表示Fast-RCNN中定义的鲁棒性损失函数smoothL1[12], 如式(6)所示:
|
(6) |
标签pi*为1的anchor有回归损失, pi*=0时, 无回归损失,即
空间金字塔池化网络(SPPNet)[19]将图像从精细空间划分到粗糙空间, 之后将局部特征聚集, 有以下优点:①任意尺寸输入, 输出固定大小; ②可实现多层结构; ③可对任意尺度提取特征进行池化。当输入图像大小为(w, h), 输出层为21个神经元, 即对任意大小的特征图提取出21种特征。上示意图中, 利用3种不同大小的刻度, 将图像划分为16,4,1个区域, 共21个区域, 从每个区域中提取出一个特征, 就可以得到21维的特征向量, 空间金字塔最大池化过程, 就是从21个图像区域中, 分别计算每个区域的最大值, 从而得到一个输出神经元, 这样,从任意大小的图像中提取出固定维数的特征, 以上3种不同刻度的划分, 每种刻度表示金字塔其中的一层。空间金字塔通过对特征图进行响应尺度的池化操作, 与下一层全连接层相连, 有效消除了输入尺度不一致的影响。本文采用了这种池化方法。
在图 2的ROI池化层中, 采用“一级”的空间金字塔池化网络, 输入为N个特征映射与RPN产生的建议区域, N个特征映射来自于最后一个卷积层, ROI池化层主要作用有两个:①将RPN区域建议网络产生的建议区域定位到特征图对应的位置; ②将特征图所对应的位置下采样为固定大小的特征再传入全连接层。
对于边框回归, 采用如下几组公式来对anchor边框到周围真实目标包围边框(GT)进行回归:
|
(7) |
x, y表示包围边框中心点的横纵坐标,w, h表示包围边框的宽、高。变量x, xa, x*分别表示预测的包围边框、anchor的包围边框与GT的包围边框的x坐标,y,w,h含义与之类似。
3 实验结果为测试葡萄叶片检测结果, 对不同背景下葡萄叶片图像进行检测。试验图像于甘肃农业大学实验教学农田酿酒葡萄种植区拍摄得到, 相机型号为Canon 1200D, 对葡萄叶片拍摄取景。分别对4种情况下的葡萄叶片进行检测:①简单背景下的正常叶片; ②叶片之间相互遮挡; ③天气光照变化影响; ④病斑叶片。对叶片的检测标准采用检测率(Detection rate, DR)和误检率(False positive rate, FPR)作为评价准则[20],DR和FDR分别定义为
|
其中, TP表示人工标注的同时检测器也检测到的叶片数量; FN表示人工标注的但检测器未能检测到的叶片数量; FP表示人工未标注的但检测器检测到的叶片数量。4种情况下葡萄叶片检测结果如表 1所示。
|
|
表 1 本文算法的葡萄叶片检测结果 Tab. 1 The result of grape leaf detection use the algorithm of this paper |
图 4为葡萄叶片的检测结果, 根据PASCAL协议[15], IOU > 0.5时, 表示检测到目标。表 1统计了5种情况下葡萄叶片的检测结果, 在简单背景下检测率达到92.5%, 在叶片遮挡, 光照阴影、阴天以及病斑叶片情形下检测率分别为82.0%, 89.1%, 88.4%, 86.3%。5种情况下误检率分别为5.1%, 7.6%, 8.1%, 7.0%, 8.6%。在简单背景下, 检测器在检测率与误检率方面表现最优; 在阴影情况下也有较优的检测效果。在叶片有互相遮挡的情形下, 如果被遮挡的叶片只有部分露出, 叶片特征发生改变, 这种情况下, 叶片将无法被检测, 故检测率为5种情况中最低, 统计检测率只有82.0%;在病斑叶片的检测中, 对基本完整的病斑叶片可以准确检测出, 但如果叶片残缺严重, 改变了叶片的轮廓, 则也会影响检测效果, 降低检测率。
|
图 4 不同情况下葡萄叶片检测的例子 Fig. 4 The examples of grape leaf detection under different conditions |
图 5为检测失败的3个例子, 图中叶片部分处于阴影中, 且葡萄叶片泛黄, 前景部分(叶片部分)与背景部分差异不显著, 而阴影中和非阴影中叶面灰度对比强烈, 此种情景下不能准确检测到叶片目标, 图 5(a)和5(b)不能检测到完整叶片, 而图 5(c)则完全没有检测到叶片。
|
图 5 检测失败的例子 Fig. 5 The examples of false detection |
为比较本算法相对传统检测算法性能差异, 用相同测试样本, 分别对文献[21]的葡萄叶片检测算法, 以及Detection Proposal[20]中评价较高的EdgeBoxes[22]算法进行叶片检测, 得到的两种算法检测数据统计结果分别如表 2和表 3所示。可以看出文献[21]中的检测算法与EdgeBoxes算法在简单背景下, 检测率分别为87.5%和85%, 而本文算法的检测率为92.5%, 其略高于两种对比检测算法。在叶片遮挡、阴影、阴天和病斑4种情形下, 本文检测算法的平均检测率为86.45%,是表 1中叶片遮挡、阴影、阴天和病斑叶片4种情况下检测率DR的平均值,而对比算法的平均检测率为72.75%,是表 2和表 3中叶片遮挡、阴影、阴天和病斑叶片4种情形下检测率DR的平均值。数据表明, 本文检测算法更适用于复杂背景下叶片检测。
|
|
表 3 使用EdgeBoxes算法的葡萄叶片检测结果 Tab. 3 The result of grape leaf detection using EdgeBoxes algorithm |
图 6、图 7分别为给出了文献[21]与EdgeBoxes算法的葡萄叶片检测结果的例子。对比图 4(本算法)可以看出, 当图像中叶片较多、有遮挡或叶片大小不一时, 两种算法均容易出现漏检, 而对病斑叶片, 由于叶片表面形态与正常叶片有较大差异, 两种算法检测效果也不好。特别是EdgeBoxes算法, 得到的检测区域不够紧凑。图 7中, 实线框是人工标定结果, 虚线框为EdgeBoxes算法检测结果。
|
图 7 不同情况下EdgeBoxes算法检测例子 Fig. 7 The examples of detection use EdgeBoxes algorithm under different conditions |
深度学习已成为机器视觉领域的应用热点, 本文以葡萄叶片图像作为研究对象, 通过卷积神经网络区域检测算法对叶片进行检测, 使用卷积的方式提取特征,对于平移、比例缩放、角度变化有高度的不变性, 对叶片遮挡具有比较好的鲁棒性。实验结果表明, 该检测算法对复杂背景下的葡萄叶片有良好的检测效果,能有效地区分背景干扰区域, 实现自然条件下葡萄叶片的准确检测定位, 为农作物生长状态的在线自动监测奠定基础。
| [1] |
邹秋霞, 杨林楠, 彭琳, 等. 基于Lab空间和K-Means聚类的叶片分割算法研究[J]. 农机化研究, 2015(9): 222-226. DOI:10.3969/j.issn.1003-188X.2015.09.051 |
| [2] |
赵斌, 周厚奎, 冯海林. 基于分块阈值和边缘检测的叶片分割算法[J]. 农机化研究, 2014(6): 41-44. DOI:10.3969/j.issn.1003-188X.2014.06.010 |
| [3] |
任玉刚, 张建, 李淼, 等. 基于分水岭算法的作物病害叶片图像分割方法[J]. 计算机应用, 2012, 32(3): 752-755. |
| [4] |
马媛, 冯全, 杨梅, 等. 基于HOG的酿酒葡萄叶检测[J]. 计算机工程与应用, 2016, 52(15): 158-161. DOI:10.3778/j.issn.1002-8331.1409-0324 |
| [5] |
COMANICIU D, MEER P. Mean shift: A robust approach toward feature space analysis[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2002, 24(5): 603-619. |
| [6] |
杨莹, 张海仙. 基于卷积神经网络的图像分类研究[J]. 现代计算机, 2016(5): 67-71. DOI:10.3969/j.issn.1007-1423.2016.05.015 |
| [7] |
芮挺, 费建超, 周遊, 等. 基于深度卷积神经网络的行人检测[J]. 计算机工程与应用, 2016, 52(13): 162-166. DOI:10.3778/j.issn.1002-8331.1502-0122 |
| [8] |
赵志宏, 杨绍普, 马增强. 基于卷积神经网络LeNet-5的车牌字符识别研究[J]. 系统仿真学报, 2010, 22(3): 638-641. |
| [9] |
李岳云, 许悦雷, 马时平, 等. 深度卷积神经网络的显著性检测[J]. 中国图象图形学报, 2016, 21(1): 53-59. |
| [10] |
GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[J]. Computer Science, 2014, 580-587. |
| [11] |
REN S, HE K, GIRSHICK R, et al. Faster R-CNN: Towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2016, 38(6): 1137. |
| [12] |
GIRSHICK R. Fast R-CNN[J]. Computer Science, 2015, 1140-1148. |
| [13] |
FELZENSZWALB P F, GIRSHICK R B, MCALLESTER D, et al. Object detection with discriminatively trained part-based models[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2010, 32(9): 1627-1645. |
| [14] |
UIJLINGS J R, SANDE K E, GEVERS T, et al. Selective search for object recognition[J]. International Journal of Computer Vision, 2013, 104(2): 154-171. DOI:10.1007/s11263-013-0620-5 |
| [15] |
EVERINGHAM M, GOOL L V, WILLIAMS C K I, et al. The Pascal, visual object classes (VOC) challenge[J]. International Journal of Computer Vision, 2010, 101(2): 303-338. |
| [16] |
DENG J, DONG W, SOCHER R, et al. ImageNet: A large-scale hierarchical image database[C]//IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2009: 248-255.
|
| [17] |
ZEILER M D, FERGUS R. Visualizing and Understanding Convolutional Networks[M]//Computer Vision-ECCV 2014.Heidelberg:Springer International Publishing, 2014:818-833.
|
| [18] |
FRIEDMAN J, HASTIE T, TIBSHIRANI R. Additive logistic regression: A statistical view of boosting[J]. Annals of Statistics, 2000, 28(2): 337-374. |
| [19] |
He K, Zhang X, Ren S, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2015, 37(9): 1904-16. |
| [20] |
HOSANG J, BENENSON R, DOLLÁR P, et al. What makes for effective detection proposals?[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2016, 38(4): 814-830. |
| [21] |
杨森, 冯全, 王书志, 等. 基于改进可变形部件模型与判别模型的葡萄叶片检测与跟踪[J]. 农业工程学报, 2017, 33(6): 140-147. |
| [22] |
ZITNICK C L, DOLLÁR P. Edge boxes: locating object proposals from edges[C]//European Conference on Computer Vision. Springer, 2014: 391-405.
|
2017, Vol. 47