基于卷积神经网络的植物图像识别APP 开发
——“植鉴”*
2020-03-12董博华宋毅洲安宁宁刘韵婷
董博华,韩 笑,宋毅洲,安宁宁,刘韵婷
(沈阳理工大学,辽宁 沈阳110168)
1 研究背景
随着时代的进步,人们已经习惯用手机解决生活中的大多数问题,而当人们遇到一种感兴趣的植物时,一定想知道它的种类和特性等信息,如果能通过一款手机APP 立即获得该植物的信息会相当方便。对于植物识别这类图像分类任务,使用深度卷积神经网络模型,即用深度学习算法来解决,与传统机器学习算法相比具有不可比拟的优势。目前人们做图像分类很少自己改通用模型结构,基本都是根据具体的图像分类问题选择一个合适的模型,然后做数据增广、计算训练、调整参数,再将训练好的模型去做模型压缩,提高执行性能。
2 项目介绍
本项目采用卷积神经网络算法对“植鉴”APP 使用者所提供的植物图片进行识别。当人们外出游玩遇到感兴趣的植物时,可以用来查找其资料,方便人们认知这个世界,了解到更多有趣的事物,让人们意识到植物对世界的重要性,提高人们对植物和环境的保护意识。除此之外,它对于植物园分类学也可以起到极大的作用,传统的植物分类学主要采用形态学方法对植物进行分类鉴定,但其存在着工作效率低、工作量大并且数据客观性难以保证等缺点,会影响分类的客观性和精确性。随着20 世纪40 年代计算机的出现以及近年来人工智能技术的兴起与发展,利用图像识别技术来进行植物分类已是大势所趋。并且“植鉴”APP 还给植物爱好者提供了交流分享的平台,方便进行植物种植和养护的经验交流。“植鉴”APP 适合园艺工作者、植物爱好者、大中小学生及学生家长,无论在街头、公园或者郊外游览,可以随时认识植物,了解身边的植物和花卉。
3 APP 主要功能介绍
3.1 植物照片的获取、识别和分析及植物信息科普
通过实时照相或调用相册内的照片,调用训练好的模型对植物照片进行识别,使用相应的算法,调用对应的数据库,确定植物所属类别,向使用者展示植物基本百科信息。
3.2 卷积神经网络算法的应用
输入已有的植物图像,定义权重矩阵,通过卷积层从图像中提取特征而无需损失其有关空间安排的信息,使用迁移学习重新训练Inception-v3 模型,训练得到好模型后再去做模型压缩,提高执行性能。
3.3 植物知识问答分享平台的建立
如果用户对查询结果有异议或遇到很难通过照片识别的植物,可利用内置分享平台咨询互动。为植物爱好者提供一个交流的平台,分享自己的养护及种植经验等。
3.4 展示每日最佳植物识别和美图生成分享功能
通过用户投票评选出每日最佳植物识别的图片,可供用户查看每日投票数量最多的一些作品。当用户进行植物识别时,也会为用户生成植物美图,可供用户分享自己的作品。
3.5 共建植物图库功能
通过用户上传自己喜欢的植物图片来扩充植物图库数据,方便后期进行扩充植物种类和模型的训练。
3.6 旅游景点推荐功能
为用户提供景点相关信息,方便用户规划旅游路线。
4 系统设计和实验设计
4.1 使用算法描述和应用
基于卷积神经网络的植物图像识别方法流程如图1所示。
图1 基于卷积神经网络的植物图像识别方法流程图
本系统采用TensorFlow 框架进行开发。TensorFlow 是Google 的一个开源深度学习框架,其基本思路是使用有向图来表示计算任务,并且所有操作都必须在会话中执行,灵活性很强,再使用GPU 提高模型训练速度。深度学习是包含多级非线性变换的层级机器学习方法,而卷积神经网络则是其中一种经典而广泛应用的结构,它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量,图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。使用卷积神经网络进行更加深入的分析从而得到抽象度更高的特征,经过其中的池化层可以有效地减少整个神经网络参数。经过处理之后提取到了图像信息含量更高的特征,最后经过全连接层得到不同种类的概率分布情况,由此再得出最后的分类结果。Inception-v3 模型架构如图2 所示。
图2 Inception-v3 模型架构图
本项目使用的Inception-v3 模型总共有46 层,将全连接层之前的网络结构训练作为图像特征提取的过程,再将提取的特征传入全连接层之后的网络结构进行迁移学习。这样不仅可以加快整个模型训练的速度,也可以在迁移学习过程中设计更适合该问题的网络结构,再经过反复迭代训练,从而加强模型的识别准确度。
4.2 植物图像数据的获取和预处理
通过使用手机以日常人们对植物观赏的距离和多个角度进行拍摄,对各种植物图像至少拍摄150 张照片,为后期保证训练模型以及测试模型提供充足的数据,对拍摄后的照片还采用了多种扩充方法进行处理,包括顺时针旋转逆时针旋转、水平镜像翻转、垂直镜像翻转随机剪载等,然后将处理好的图片再随机分为训练集与测试集,训练过程只在训练模型时使用,在训练结束后,用测试集来估计模型准确度。
4.3 神经网络结构参数优化
本项目采用指数衰减法优化学习率,通过这个函数可以先使用一个较大的学习率快速得到一个比较优的解,然后随着迭代逐步减小学习率,使得模型在训练后更加稳定,最终确定了0.003 的学习率,20 万次的选代次数。在设置初始学习率每一次反向传播时,观察对参数优化的调整幅度,根据特定任务确定合适的学习率,若幅度过大则有可能错过最优的学习率,反而产生更差的结果。若幅度过小则可能导致每次进步很小,从而加大迭代次数和耗时过长。
5 结果与应用
最后将训练好的神经网络模型,利用测试集图片进行检验,最终得到平均91%的准确性。将训练好模型进行封装,可实际应用到移动APP,最终实现实时在线识别植物品种的APP——“植鉴”。