计算机系统应用  2020, Vol. 29 Issue (3): 261-268   PDF    
深度学习在花卉养护技术中的应用
黄宏梅1, 陆卫忠1,2, 杨茹1, 曹燕1     
1. 苏州科技大学 电子与信息工程学院, 苏州 215009;
2. 江苏省建筑智慧节能重点实验室, 苏州 215009
摘要:针对花卉养护过程中, 由于人们缺乏专业的养护技术, 花卉的养护难度大、成本高的问题, 本文提出了一种基于深度学习的图像分类技术实现花卉的全自动化养护方法. 因花卉的生长状况往往受诸多因素影响, 仅依靠对花卉生长状况图像的分类容易对花卉的生长状况作出错误的判断, 因此该方法设计了一种由花卉图像特征和生长环境参数组成的两个输入通道的卷积神经网络实现花卉生长状态的自动识别. 实验表明, 该方法可以提高花卉生长状况的识别准确率, 从而可提高花卉的自动化养护技术水平.
关键词: 智能花卉    深度学习    卷积神经网络    图像识别    智能控制    
Application of Deep Learning in Automatic Flower Maintenance Technology
HUANG Hong-Mei1, LU Wei-Zhong1,2, YANG Ru1, CAO Yan1     
1. College of Electronic and Information Engineering, Suzhou University of Science and Technology, Suzhou 215009, China;
2. Jiangsu Province Key Laboratory of Intelligent Building Energy Efficiency, Suzhou 215009, China
Foundation item: National Natural Science Foundation of China (61672371); Natural Science Research Project of Education Bureau, Jiangsu Province (08KJD510007)
Abstract: In the process of flower conservation, due to the lack of professional maintenance technology, the difficulty of flower conservation and high cost, this study proposes a method based on deep learning image classification technology to realize the full automatic flower maintenance. Because the growth of flowers is often affected by many factors, it is easy to make a wrong judgment on the growth of flowers by relying on the classification of flower growth status images. Therefore, this method designs two kinds of flower image features and growth environment parameters. The convolutional neural network of the input channel automatically recognizes the state of flower growth. Experiments show that this method can improve the recognition accuracy of flower growth status, and thus improve the level of automatic maintenance technology of flowers.
Key words: intelligent flower     deep learning     convolutional neural network     image recognition     intelligent control    

1 引言

随着城市建设的快速发展, 城市中灰色水泥建筑物越来越多, 绿化面积比例越来越低. 而随着生活水平的提高, 人们开始追求舒适健康的工作、生活环境. 如, 在办公室中放置一些盆栽花卉既可以通过光合作用吸收二氧化碳, 净化室内空气, 也可以陶冶情操. 然而, 由于大多数人缺乏专业的花卉养护技能, 需要聘请专业人员帮助养护, 导致花卉的养护成本很高.

随着信息技术和自动技化术的不断发展, 国内外花卉自动化养护技术也逐步发展起来. 文献[1]中介绍Picent R发明了一种智能花盆, 这种花盆含有可以监控植物温湿度的传感装置, 当有人靠近时, 它会发出声音来表示自己的需求. 文献[2]中介绍Mizuchi I研发了一种叫做“Plantroid”的花盆机器人, 会按照需求自动调节植物的温度和光照, 从而使得植物健康生长. 2011年杨守健等[3]研制了一种简易土壤湿度检测装置对土壤湿度进行定时检测, 根据土壤状况和植物生长所需的湿度的不同决定对植物的浇水量. 张兆朋[4]设计了一种家庭智能浇花器, 实现了花卉的自动浇花, 并可以对不同的花卉实施不同的控制方式. 2017年赵宏才等[5]研究出了对黄瓜种植环境参数的自动监测方法, 实现了黄瓜种植的自动化. 可以看出智能花卉养护技术已经有了很大的进展, 但并未能彻底地解决花卉养护过程中的人工干预, 即无法完全实现花卉的自动化养护.

随着人工智能技术的不断发展, 构建深层网络结构进行多层次特征学习的人工智能方法在大规模图片分类领域取得了很大的成功[6]. 本文尝试将深度学习应用在花卉生长情况的图像识别中, 使其突破只能依靠人工观测判断花卉生长状况的限制, 通过花卉图像实现对花卉生长情况的识别, 从而实现花卉养护过程的自动化. 然而, 花卉的一种简单表象特征往往有可能是由于多种内因导致, 仅根据图像分类得到表象特征不足以准确地判断花卉生长的真实情况.

因此, 本文提出一种花卉生长状况的识别方法, 来解决仅依靠图像分类的判断准确率不高的问题. 该方法采用一个具有两个输入通道的卷积神经网络, 其中第一个输入通道是原始花卉图像中提取的特征图像, 第二个输入通道是传感器采集的各生长环境数据, 两个通道构成分类器的输入, 并对构建的模型进行验证.

2 花卉生长状况的识别方法 2.1 数据采集与特征选取

花卉是有生命的植物体, 它的生长状况总是伴随着生长环境的变化而变化, 要养好花卉就必须营造花卉生长发育所必须的环境条件. 本文以吊兰为例, 研究识别其生长状况的方法. 吊兰喜半阴, 喜湿润, 且冬季容易冻坏, 当室内环境参数发生改变的时候, 它的生长状况也会发生相应的改变. 在办公室测试环境下, 采样数据为花卉的图像, 室内空气温度(单位: ℃)、湿度(单位: RH)、花卉土壤湿度(单位: RH)以及光照度(单位: klx), 采样方法为每天8点以及18点各进行一次采样, 连续两个月, 共1200条记录.

2.1.1 花卉图像样本分析

吊兰的生长状况发生变化的时候, 其叶片也会发生相应的变化. 上述共4种环境参数可对应8种类别:

(1)空气温度过高, 叶片会由绿变黄;

(2)空气温度过低, 叶子开始变软, 从根部向叶尖烂叶, 老叶整体开始由绿变黄再变枯;

(3)空气湿度过高, 由于吊兰喜湿, 所以叶片表象相对比较正常;

(4)空气湿度过低, 叶片表面略泛白, 叶尖出现轻微变枯;

(5)光照过强, 叶子由绿变黄, 叶尖变枯, 表面略泛白;

(6)光照过低, 叶片颜色变淡, 叶子主干纤长且易断;

(7)土壤湿度过高, 叶片会从根部开始发黄;

(8)土壤湿度过低, 叶尖会发黄变窄, 叶片卷曲.

图1是一组花卉的表象图片, 图1(a)图1(b)分别是吊兰环境温度过高和温度过低的图片; 图1(c)图1(d)分别是吊兰空气湿度过高和空气湿度过低的图片; 图1(e)图1(f)分别是吊兰光照强过强和过弱的图1(g)图1(h)分别是吊兰环境土壤湿度过高和湿度过低的图片.

2.1.2 图像样本误差分析

从花卉的图像样本中可以了解当前花卉的表象特征, 然而花卉的一种简单表象特征往往有可能是由于多种内因导致, 比如, 当吊兰的叶子变成黄色时, 可能导致这一表象特征的因素有空气温度过高、光照过强以及土壤湿度过低, 所以, 仅仅根据图像样本中所得到的表象特征不足以准确地分辨出花卉生长的真实情况. 因此, 考虑通过结合花卉环境数据来帮助准确分辨出花卉的生长状况.

2.1.3 环境数据

环境数据是影响花卉生长的重要因素. 可以通过空气温湿度传感器、光照传感器以及土壤湿度传感器检测得到当前花卉的生长环境, 本实验对吊兰的生长环境进行了检测, 检测得到的部分花卉生长环境数据如表1所示, 其中, 表中T代表空气温度, 单位为℃, ${H_1}$ 代表空气湿度, 单位为RH, L代表光照强度, 单位为klx, ${H_2}$ 代表土壤湿度, 单位为RH. 然而, 研究表明, 当空气温度达到15~25 ℃, 空气湿度达到60% RH, 光照度达到65 klx, 以及土壤湿度达到65% RH时, 吊兰才可以到达最佳的生长状态, 我们将这一数据作为判断吊兰生长状况的标准. 将检测到的环境数据与标准值进行比较, 即可对比得出当前吊兰的实时生长状况.

图 1 花卉生长状况图

表 1 检测的花卉环境数据

2.2 算法模型

卷积神经网络(Convolutional Neural Network, CNN)已在图像处理领域得到广泛应用[7,8]. 卷积神经网络的基本结构是由输入层、卷积层、池化层、全连接层以及输出层构成[9]. 卷积层和池化层一般会有若干个, 采用卷积层和池化层交替设置, 即一个卷积层连接一个池化层, 池化层再连接一个卷积层. 卷积神经网络中的一个卷积层, 由卷积操作(convolution)、非线性响应操作(relu)以及池化操作(pooling)组成. 卷积操作中通过不同的滤波器可以得到不同的输出数据, 如颜色、形状等图像的特征信息. 再通过非线性响应操作以及池化操作获得最大化的特征[10].

本文考虑将卷积神经网络应用到花卉生长状况的识别技术中. 然而, 花卉的某些表象特征是由于不同的环境因素造成, 如果仅依靠花卉生长状况图片进行分类, 很有可能出现判别失误的情况. 所以, 本文设计了一种由环境数据来辅助的具有两个输入通道的卷积神经网络进行图像分类, 提高判别的准确率, 从而能更好地判别花卉当前的生长状况. 因此, 我们设计如下的环境数据辅助网络, 模型框架如图2所示, 将图片通过卷积神经网络进行训练, 然后将传感器实时采集到的数据进行评估得到的结果与卷积神经网络分类得到的分类结果结合, 再连接起来进行重新分类, 分类可以得到8种类别, 以及它们的对应输出关系如表2所示, 即, 分别为00, 01, 10, 11, 20, 21, 30, 31这8个类别.

图 2 方法模型框架

表 2 生长类别输出对应关系表

2.3 算法设计

该算法分为两个阶段, 第1个阶段为前向传播过程, 第2个阶段为反向传播过程.

1)正向传播过程

在这个阶段, 输入的信息经过逐层变换, 传输到输出层. 主要是做前向的特征提取. 即, 从花卉样本图片中取出一个样本输入到网络中, 得到经过逐层变化的输出值, 也就是实际值, 并同时获取期望得到的样本输出值, 比较实际输出值与期望输出值, 如果实际输出值符合期望值, 则输出样本的输出结果, 否则, 进入到下一个阶段.

2)反向传播过程

卷积神经网络与传统神经网络一样, 通过反向误差传播更新每层神经元的参数, 通过迭代不断优化神经网络的各个权值, 使得神经网络的预测值能够与实际标签值最接近[1113]. 反向传播网络是最常用的一种误差最小化的优化方法, 通过求解正向输出标签值与是假标签的平方误差作为更新参数的策略. 假设一共有c个类别、N个样本, 其中 $t_k^n$ 表示实际标签值, $y_k^n$ 表示神经网络输出的标签值, 那么可以用式(1)表示平方误差代价函数.

$E = \frac{1}{2}{\sum\limits_{n = 1}^N {\sum\limits_{k = 1}^c {(t_k^n - y_k^n)} } ^2} = \frac{1}{2}{\left\| {{t^n} - {y^n}} \right\|^2}$ (1)

为了更新权值, 根据神经网络的正向传播[14,15]可知, 第1层的神经网络的权值 ${\omega ^t}$ ${b^t}$ 可以通过式(2)计算得出.

${x^t} = f({u^t}),{u^t} = {\omega ^t}{x^{t - 1}} + {b^t}$ (2)

通过误差E的变化来求解参数 ${\omega ^t}$ 和偏置 ${b^t}$ , 采用最常见的随机梯度下降法, 首先对 ${b^t}$ 求解偏导数:

$\frac{{\partial E}}{{\partial b}} = \frac{{\partial E}}{{\partial u}}\frac{{\partial u}}{{\partial b}} = \delta \;$ (3)

然后根据式(2)不断反向传播, 就可以将误差传播到最底层, 根据式(2)和式(3)可以得出第 $l$ 层的误差变化率 ${\delta ^t}$ :

${\delta ^t} = {({\omega ^{t + 1}})^T}{\delta ^{t + 1}} \cdot f({u^t})$ (4)

$l + 1$ 层的误差不断传播到1层, 最终传播到第一个卷积层. 结合上面的即可求出误差E与权重 ${\omega ^t}$ 之间的导数:

$\frac{{\partial E}}{{\partial {\omega ^t}}} = {x^{t - 1}}{({\delta ^t})^T}$ (5)

这样每一层的权值 ${\omega ^t}$ 和偏置 ${b^t}$ 都可以通过误差 $E$ 偏导数不断迭代更新, 直到获得误差最小的权值, 完成卷积神经网络的训练, 该算法流程如图3所示.

图 3 算法训练流程图

2.4 算法实现

首先, 将对花卉图像样本进行初始化, 然后传送到卷积层和池化层, 进行特征提取; 接着将图像特征结合环境数据输入到相应的全连接层, 再通过分类器将其从传输到输出层, 然后将输出值与期望值做比较, 直至两值之间的误差值达到一定的阈值, 则可得到我们想要的输出结果[16,17].

基于深度学习的花卉生长状态识别网络的停止条件为如下两个条件之一:

1)实际输出与期望输出的误差值达到一定值;

2)训练次数达到预先设置好的最大训练次数.

若满足条件则可以得到花卉图片所对应的相应类别, 具体见算法1.

3 实验 3.1 实验设备

本文采用基于CMOS的图像采集设备来, DTH11数字温湿度传感器, TSL2561光强传感器及SM2801BD型土壤湿度传感器搭建形成一个花卉环境监测系统, 如图4所示, 来实现花卉环境数据的采集. 将实时的环境数据经过处理后, 输入到训练好的传感器网络辅助的卷积神经网络中, 即可以获得当前花卉的生长状态, 然后根据输出的花卉生长状态来决定花卉生长环境的控制策略.


图 4 监测系统框架图

3.2 数据预处理 3.2.1 图像数据预处理

(1)数据集扩充

在训练图像识别的深度神经网络时, 需要使用大量的训练数据, 才会使网络得到更好的性能, 如提高网络的分类准确率, 防止过拟合等[18]. 获取更多的训练样本是一种理想的方法, 但这种方法的代价很大, 在实践中常常难以达到. 而另一种方法则也能够获得类似的效果, 那就是人为扩展训练数据[19,20]. 人为扩展图像数据的常用方法有图像旋转、转换、扭曲等. 选取图像旋转的方式时, 太小角度的旋转可能不会对图像造成变化, 角度太大又可能改变图片的性质(脱离数据集), 因此选取了6个“合适”的角度来对图像进行旋转操作, 即采用原图、垂直镜像、逆时针旋转90°、随机裁剪、水平镜像以及顺时针旋转90°这6个角度, 如图5所示. 经过处理以后, 原始数据集扩展成了原来的5倍, 共6000条数据.

(2)图像数据准备

卷积神经网络中含有全连接层的网络输入数据的大小是固定的, 所以必须实现固定输入图像的大小. 然而在图像统一大小的过程中会有缩放, 因此图像会扭曲, 为尽量避免模型受到无关因素的干扰, 所以本文通过边界填充或剪裁的方法来减少扭曲或失真. 因此, 本文将采集到的花卉图片数据统一处理为64×64大小的图片. 同时, 由于花卉的生长状况共有8种情况(空气温度过高或过低、空气湿度过高或过低、光照强度过强或过弱、土壤湿度过高或过低), 本文将统一处理完的图像数据分为8组分别代表8种不同的生长状况.

3.2.2 传感器数据预处理

对应每一个花卉图像, 同时通过空气温湿度传感器、光照传感器及土壤湿度传感器获取一组花卉环境数据, 可以表示为(w, s, g, t), 这组四维的环境数据在空气温湿度、光照度及土壤湿度4个方面对当前花卉的生长状况进行了评价. 采用贝叶斯估计, 多贝叶斯估计将每一个传感器作为一个贝叶斯估计, 将各个单独传感器的关联概率分布合成一个联合的后验的概率分布函数, 通过使用联合分布函数的似然函数为最小, 提供多传感器信息的最终融合值. 本文设置当前最佳环境数据为 $({{{w}}_{\rm best}},{s_{\rm best}},{g_{\rm best}},{t_{\rm best}})$ , 将最终融合值与其做比较从而提供整个环境的一个特征描述, 即可以获取传感器数据对当前花卉生长状况的评价状况.

3.3 传感器辅助网络结构

花卉生长状况的识别方法由一般卷积神经网络和传感器采集数据分支网络组成. 本文尝试了3种不同层次的网络(如图6所示), 它们分别使用6层、12层以及14层的卷积神经网络自动从图像输入中提取特征. 在经过多层卷积层和池化层之后, 图像输入被转换成具有长度为128的图像矢量, 这是从图像中提取的一组特征. 同时, 与图像对应的4维传感器评价情况通过完全连接层, 构成长度为4的环境数据向量, 然后将这两个向量连接成一个长度为132的新向量, 并最终完全连接到一个分类器. 所有权重都是通过反向传播算法进行训练获得的.

图 5 花卉样本预处理图

3.4 结果与分析

对于该模型, 网络在Tensorflow环境中进行训练, 在训练过程中, 随机梯度下降(SGD)算法的批量大小设置为256, 最大迭代次数设置为200, 学习率初始值为0.01, 如果总损失没有下降, 自动下降1/10直到0.000 01. 当前花卉的图像、室内温度、相对湿度、土壤湿度、以及光照度等共5个参数, 对应于示例子网的5个输入, 而当前花卉的生长状况对应每个输出. 数据集中以4800条样本数据作为网络的训练样本, 1200条数据作为测试样本. 样本随机分为5组, 大小为1200, 每个独立应用5次, 并进行5次交叉验证. 每次训练时, 一组尚未被选中的组被选作验证组, 其余组成训练组. 根据表3的结果, 我们得出结论: 网络越深, 性能就越好. 然而, 网络越深相应的时间代价也越大, 我们要根据实际情况选择适合的深度.

同时, 我们从网络中减少了传感器数据通道, 并进行与上述相同的实验. 我们的网络和一般CNN之间的结果显示在表3中. 这表明环境数据确实有助于分类.

3.5 实验测试

在花盆周围部署空气温湿度传感器, 以及在花盆里部署其他传感器、架设摄像头来构建花卉智能养护系统试验平台, 土壤材料选取普通的适合花卉生长的泥土, 花卉采用喜湿的吊兰, 如图7所示. 采样时间为每天上午的8:00以及下午的16:00. 系统工作一段时间后, 可以提取寄存器中存储的花卉的环境数据. 表4为系统工作6天自动养护模式下的花卉环境数据值, 其中, 表中T代表空气温度单位为℃; ${H_1}$ 代表空气湿度, 单位为RH; L代表光照强度, 单位为klx; ${H_2}$ 代表土壤湿度, 单位为RH.

测试结果表明, 自动养护模式能够自动判别出花卉当前的生长状况并能够及时的对花卉的环境进行改善, 实现了自主养花护花的功能, 达到了智能养花的目的.

3.6 误差案例分析

该模型在结合环境数据之后, 能够较好地提高分辨花卉生长状况的准确度, 然而由于花卉样本的复杂性, 花卉生长状况的分辨还不能达到完全的正确. 比如, 在吊兰的叶片图像特征仅呈现为发黄的时候, 且当前的环境数据显示为空气温度为30 ℃, 空气湿度为34% RH, 光照强度为75 klx, 土壤湿度为45% RH, 根据模型分类得出的结果为空气温度过高, 然而根据实际情况却应该分类为土壤湿度过低的情况. 分析可得, 由于此时空气温度过高和土壤湿度过低的特征表现相对比较接近, 且此时图像仅呈现为发黄的特征, 很容易导致错误的判断. 由于花卉的生长状况是复杂的且不断变化的, 其特征是根据环境变化而发生的一个缓慢变化, 在某一时刻点的单一特征是跳跃的, 所以不能完全代表其生长状况的变化. 针对这一问题, 采取将这一时刻点的特征与上一状态的变化相结合, 依据上一状态的情况来对这一时刻点的特征做进一步的判断, 从而提高识别的准确率.

图 6 不同层次网络

4 总结

本文提出的基于深度学习的花卉生长状况自动识别方法, 突破了原始花卉养护中的只能通过人工观测来判别花卉生长状况的局限, 摆脱了花卉养护需要高度专业化的花卉养护知识的限制, 降低了花卉养护的成本. 将该方法应用到花卉养护装置中, 在不需要专人干预的情况下, 能够提高花卉养护的成功率, 减轻花卉养护的工作量, 从而降低花卉养护的成本, 该方法也可应用在农作物的种植环节中, 同样也能帮助农作物很好的生长.

表 3 传感器辅助CNN和一般CNN之间的性能比较

图 7 花卉智能养护系统试验平台

表 4 自动养护模式下的花卉环境数据

参考文献
[1]
杨行. 盆栽花卉移栽机设计及关键机构研究[硕士学位论文]. 北京: 北京工业大学, 2014.
[2]
Zhai Y , Liu Y , Yang M , et al. A survey study of the usefulness and concerns about smart home applications from the human perspective. Open Journal of Social Sciences, 2014, 2(11): 119-126.
[3]
杨守建, 沈一波, 周明旭, 等. 基于土壤定时检测的家庭自动浇花装置. 北方园艺, 2011(8): 119-122.
[4]
张兆朋. 基于AT89S52的家庭智能浇花器的设计. 电子设计工程, 2011(5): 45-47,50.
[5]
赵宏才, 赵晓杰, 张兴波, 等. 基于专家系统的黄瓜园区无线智能监控系统研究. 江苏农业科学, 2017, 45(17): 215-218. DOI:10.15889/j.issn.1002-1302.2017.17.057
[6]
段艳杰, 吕宜生, 张杰, 等. 深度学习在控制领域的研究现状与展望. 自动化学报, 2016, 42(5): 643-654.
[7]
Gerard SE, Patton TJ, Christensen GE, et al. FissureNet: A deep learning approach for pulmonary fissure detection in CT images. IEEE Transactions on Medical Imaging, 2019, 38(1): 155-166.
[8]
常亮, 邓小明, 周明全, 等. 图像理解中的卷积神经网络. 自动化学报, 2016, 42(9): 1300-1312.
[9]
何克磊, 史颖欢, 高阳, 等. 一种基于原型学习的多示例卷积神经网络. 计算机学报, 2017, 40(6): 1265-1274. DOI:10.11897/SP.J.1016.2017.01265
[10]
陈良宵, 王斌. 基于形状特征的叶片图像识别算法比较研究. 计算机工程与应用, 2017, 53(9): 17-25, 56. DOI:10.3778/j.issn.1002-8331.1612-0150
[11]
刘万军, 梁雪剑, 曲海成. 基于双重优化的卷积神经网络图像识别算法. 模式识别与人工智能, 2016, 29(9): 856-864.
[12]
王伟凝, 王励, 赵明权, 等. 基于并行深度卷积神经网络的图像美感分类. 自动化学报, 2016, 42(6): 904-914.
[13]
Ghesu FC, Krubasik E, Georgescu B, et al. Marginal space deep learning: Efficient architecture for volumetric image parsing. IEEE Transactions on Medical Imaging, 2016, 35(5): 1217-1228. DOI:10.1109/TMI.2016.2538802
[14]
胡正平, 何薇, 王蒙, 等. 多层次深度网络融合人脸识别算法. 模式识别与人工智能, 2017, 30(5): 448-455.
[15]
Albarqouni S, Baur C, Achilles F, et al. AggNet: Deep learning from crowds for mitosis detection in breast cancer histology images. IEEE Transactions on Medical Imaging, 2016, 35(5): 1313-1321. DOI:10.1109/TMI.2016.2528120
[16]
白琮, 黄玲, 陈佳楠, 等. 面向大规模图像分类的深度卷积神经网络优化. 软件学报, 2018, 29(4): 1029-1038. DOI:10.13328/j.cnki.jos.005404
[17]
李金龙, 王上飞, 陈恩红, 等. 一种新的个性化的图象分类方法. 中国图象图形学报, 2002, 7(11): 1156-1160. DOI:10.3969/j.issn.1006-8961.2002.11.010
[18]
段建, 翟慧敏. 深度卷积神经网络在Caltech-101图像分类中的相关研究. 计算机应用与软件, 2016, 33(12): 165-168. DOI:10.3969/j.issn.1000-386x.2016.12.040
[19]
郭子琰, 舒心, 刘常燕, 等. 基于ReLU函数的卷积神经网络的花卉识别算法. 计算机技术与发展, 2018, 28(5): 154-157, 163. DOI:10.3969/j.issn.1673-629X.2018.05.035
[20]
Lv YS, Duan YJ, Kang WW, et al. Traffic flow prediction with big data: A deep learning approach. IEEE Transactions on Intelligent Transportation Systems, 2015, 16(2): 865-873.