【植物幼苗识别的Android应用开发设计案例1900字】_第1页
【植物幼苗识别的Android应用开发设计案例1900字】_第2页
【植物幼苗识别的Android应用开发设计案例1900字】_第3页
【植物幼苗识别的Android应用开发设计案例1900字】_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

植物幼苗识别的Android应用开发设计案例本章主要是Android端植物幼苗识别系统的具体实现和测试。利用第三章我们训练并且进行通道剪枝后的模型进行部署,再利用PytorchMobile框架进行前向推理,实现一个简易的植物幼苗识别Android应用程序。最后对本系统进行测试,对比剪枝前和剪枝后幼苗识别的效果、耗时和资源占用,从而得出结论。1.1植物幼苗识别Android应用程序的需求分析本设计中为了能够获取植物图片,加载预训练模型识别图片进行分类,主要解决的问题有:(1)获得系统的摄像头权限,能够拍摄植物幼苗图片。(2)模型的移动端支持,我们训练的模型往往不兼容Android端的使用,如何选择框架并实现兼容是我们应该解决的问题。(3)实时检测出植物类型并展示出识别结果。1.2Android应用程序的开发过程首先,我们需要获取Android相机权限获取。我们使用CameraX框架获取并通过授予Manifest.permission.CAMERA权限来打开相机可以进行拍摄。CameraX是一个基于Camera2框架的相机框架,它提供了使用Preview类来预览我们拍摄到的图片。它还提供了ImageAnalysis等类进行图片的分析与处理。我们要做的就是使用相机拍摄到实时图片,并且能够进行迅速的处理。图10:Android相机拍摄权限的实现然后,我们接下来要将我们在第三章已经获得了通道剪枝后的压缩模型部署到Android手机平台上。Pytorch的模型部署到Android手机上需要借助于Facebook公司开发的的移动端前向推理框架PytorchMobile。我们训练的Pytorch模型不能在ARM等平台上直接运行,可以先将计算图和参数转换成TorchScript模型,使用PytorchMobile框架调用此转换后的模型。PytorchMobile框架对神经网络在移动端等算力资源较为缺乏的设备上运行做出了优化,对多种模型量化算法、快速卷积算法进行了高效实现,是移动嵌入式平台进行AI应用开发的较好选择。通过调用Android操作系统的SDK开发包,通过手机的摄像头获取得到实时拍摄的图像;将原始图像进行随机裁剪,尺寸放缩为成为224×224大小,作为模型的输入,对已经训练好并采用Pytorch框架编译好的模型AAR依赖文件,使用PytorchMobile包进行加载,通过然后使用相应的图形界面进行开发;将模型的识别结果实时的展示于主界面活动中,让使用者能够在低时延的情况下便利地使用此应用进行识别。Android客户端的具体实现主要分为以下几个步骤:首先从调用手机摄像头实时获取图片,然后对输入图片进行转为bitmap格式再调整大小为244×224使之适应模型的输入,之后利用PytorchMobile框架移植好的模型进行预测推理,模型预测推理的输出为一个的float数组,根据float数组的结果得到前3可能性的结果。对于Android界面的设计我主要采用了约束型布局的方式,通过自定义文本框等方式来显示我们识别出来的结果,整个过程并不复杂。图11:Android客户端图11展示了幼苗识别的安卓APP应用实际运行效果。我们使用参数裁剪量约为40%的模型作为系统部署时的模型,系统以安卓本地应用的形式提供交互,我们调用手机摄像头对植物幼苗植株进行拍摄,系统自动地对图片进行识别,实时显示得分最高即可能性最大的三种植物类型。在测试时我们选择了Honor8手机作测试机,硬件配置CPU为麒麟950,运行内存为4G内存,如图11所示以运行时的毫秒数和TPS(每秒帧数)作为指标,我们可以知道剪枝后的模型大约处理时间在300ms,每秒的TPS为3.3左右,平均1s可以处理3张左右的图片,在效率上还比较高。可以看出剪枝后部署在移动设备上具有较好的实时性。1.3运行时性能测试为了测试本文的Resnet50神经网络进行植物幼苗分类识别的算法在使用Android应用程序上的识别性能,我们使用开发的App应用进行测试。测试机型号为荣耀Honor8手机,CPU配置为高通骁龙950,运行内存为4G内存。1.3.1运行时内存情况测试图12:运行时的内存占用我们依然在上述手机上进行测试,我们发现内存占用大概初始在200MB左右,后来随着打开摄像头缓存Bitmap增多,系统的内存会变大逐渐变大。我们可以使用减小分辨率,减小Bitmap的大小等方式进行继续优化。总体上来说对于系统的内存占用不是很高,在合理接受范围内。1.3.2运行时CPU情况测试图13:运行时CPU占用图13展示了Android应用CPU占用情况,由图可知,应用程序在初次启动使用时CPU的占用率为5%左右,随着每次调用图片识别的模型进行图片识别,CPU占用率在5%~50%之间稳定波动,这样可以看出该应用程序可以稳合理地运行在安卓端手机上,一般性能的手机就可以有良好的使用效果。我们同样测试了剪枝前和剪枝后的模型运行在Android端进行图片识别时的内存和CPU占用情况,以及运行时的TPS即每秒的识别图片数目,如表5所示,我们可以看出可以看出性能有了一定的提升。表5:剪枝前后性能对比内存占用CPU占用运行时TPS模型剪枝前460MB5%-50%2.1TPS模型剪枝后320MB5%-65%3.3TPS我们使用AndroidStudio开发环境自带的Profiler工具查看程序运行时的内存和CPU占用情况。Profiler是AndroidStudio自带的一款性能分析器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论