基于Core ML的智能植物健康检测App的设计与实现
作者:吴学谦 李韵 邓晓军
来源:《电脑知识与技术》2021年第30期
app开发者需要更新此app以在此ios上正常使用
        摘要:针对用户在养殖家庭植物因缺乏养殖经验而频频失败等问题,采用平台最新的机器学习技术,设计并实现一款基于平台集植物识别、健康检测、疾病预防多功能一体的App。通过大量植物图片数据集的训练,机器学习训练准确性达到73%,训练有效性达到65%,测试准确性达到72%,总体识别精准率在70%左右。系统能准确并高效地实现植物分类识别、植物相关信息获取以及植物健康检测功能,帮助用户更好地认识身边的植物,成为
公众科学科普的有效手段。
        关键词:Core ML;机器学习;图像分类;植物检测
        中图分类号:TP311 文献标识码:A
        文章编号:1009-3044(2021)30-0013-04
        开放科学(资源服务)标识码(OSID):
        植物与人类的生存环境息息相关。园林植物为城市增添了新的景,具有美化环境的作用。植物叶片的光合作用能净化空气,蒸腾作用增加空气湿度,有效地调节和改善环境小气候。一份由70多个国家250名科学家和专家撰写的联合国报告警告称,地球环境已遭到严重破坏,人类健康正受到越来越大的威胁。需要大力改善环境保护工作,到21世纪中叶,亚洲种植植物、合理利用土地资源都是绿基础设施建设的重要一环。普通居民也可以通过种植植物的方式对人类生活环境做出自己的一份努力。
        在家庭生活中不仅为了践行低碳生活理念,也为提高居室生活环境质量,绿植物家庭
养殖的想法逐渐流行。而大多数家庭没有专业的养殖经验,年轻的工作人也没有充足的时间学习照料植物,植物养殖变成为一个难题。而国内植物智能领域软件市场中并没有到行之有效的解决方案,目前基于人工智能技术植物类App主要存在以下问题:
        1) 解决植物养护管理的应用较少。
        2) 大多数应用仅关注于植物识别。
        3) 绝大多数不能帮助判断植物健康。
        针对上述问题,设计一款能帮助用户关注植物健康状态并提供疾病预防方案的App已经凸显。系统采用Core ML机器学习技术实现植物分类识别和植物健康检查功能,以“简洁、方便”为目标,通过轻松拍照的方式获取植物健康评分并生成健康日记,帮助用户更好地关注植物生长状态及趋势。
        1 系统架构
        系统架构采用MVC架构模式。MVC架构设计模式即模型-视图-控制器(Model-View-Co
ntroller, MVC),是iOS应用程序中最常见的架构,是由模型、视图和控制器三个部分组成[1]。模型即概念,是应用程序的数据表示,通常使用结构体或类来保存业务对象,是与用户界面无关的部分;视图即用户窗口,是应用程序用户可以看到并与之交互的对象,视图对象是重用且灵活的;控制器即通道,是应用模型和视图的桥梁,使用模型中的数据更新视图,在用户与视图交互时更新模型[2]。
        系统架构的详细设计如图1所示,模型包括植物信息、文章信息、植物疾病信息,抽象并封装了相应的数据和操作,以供视图的查询和更新需要。视图包括植物卡片视图、文章卡片视图、瀑布流对象视图等,用于渲染App的各级界面,模型与视图之间是一对多的关系,通过控制器与模型交互,执行查询或是更新指令。控制器包括主页控制器、瀑布流控制器、植物分类识别控制器、健康分类检测控制器,理解用户与视图之间的交互信息,并将之标准化为业务事件提供给模型,促使模型对程序动作进行输出,最终选择某个视图来更新用户数据。
        2 关键技术
        2.1 机器学习
        机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能[3]。自20世纪80年代以来,机器学习作为实现人工智能的途径,相关领域的研究工作发展很快。机器学习不仅在基于知识的系统中得到应用,而且在模式识别、计算机视觉、语言识别、统计学习、自然语言处理等方面大放异彩。
        2.2 Core ML框架
        Core ML可以将众多机器学习模型类别整合到开发者的应用中。Core ML通过利用CPU、GPU和神经网络引擎,同时最大限度地减小内存占用空间和功耗,来优化设备端性能。由于模型严格地在用户设备上,因此无须任何网络连接,这有助于保护用户数据的私密性和App的响应速度。Core ML支持使用计算机视觉框架(Vision)分析图像,使用自然语言框架(Natural Language)处理文本,使用语音框架(Speech)将音频转换为文本,以及使用音频识别框架(Sound Analysis)来识别音频中的声音。系统主要使用Core ML框架和计算机视觉框架(Vision)来实现植物分类识别和植物健康检测功能。开发者通过Python爬虫
工具和手动筛选从百度图库,PPBC 中国植物图像库,植物数据通,中国自然标本馆,花百科网站中合法下载植物数据图片[4]。在植物分类识别中,需要由示例和标签组成的训练数据,涵盖30种常见家庭养殖植物:生石花、冰玉、菊花、玫瑰、薄荷、滴水观音等,示例对应的标签是植物名。
        2.3 迁移学习
        开发者可以使用迁移学习工具来帮助完成机器学习,迁移学习是指采用現有的预训练模型并针对自己的数据对其进行自定义,将现在模型的知识迁移到新模型中[5]。Create ML和TuriCreate是苹果公司提供的迁移学习工具,为了实现植物分类识别,开发者利用Create ML工具选择图像分类(Image Classification)任务,Turi Create选择图像分类器工具包和已准备好的植物图片数据集进行迁移学习。进行10次迭代循环训练得到植物分类的自定义模型,可以得到训练准确性能到达73%,训练有效性能达到65%,测试准确性能到达72%。总体植物识别精准率在70%左右。当运行TuriCreate图像分类器时,会将任务分解成以下步骤: