今天介绍一下使用百度AI EasyDL平台训练物体检测的模型,然后将模型的离线SDK部署到Android端,在APP上运行物体检测的功能。
移植Android端后APP运行结果图片
物体检测目标图片:
Android APP 物体检测识别效果:
物体检测目标图片:
Android APP 物体检测识别效果:
物体检测目标图片:
Android APP 物体检测识别效果:
制作流程:
1、环境的搭建;
2、制作数据集;
3、EasyDL标注数据集;
4、EasyDL训练模型;
5、发布离线SDK,部署Android端;
6、运行物体检测APP;
完成上述物体检测效果需要安装一些环境,这里会给出一些开发环境的下载链接,安装教程可以去网上学习,这里不过多赘述。
1>. Android studio使用的是2020.3.1.26版本,jdk包和gradle工具也可在链接中下载。
链接: 提取码:wd4z
链接: 提取码:0xdh
这里我的模型以竞赛中的车型图片为例,数据集我是截取了一段视频,然后使用pycharm编译器用python代码截取视频帧画面,将其保存至本地文件夹,这样基础的数据集就做好了。
这里注意视频格式我使用的是avi的格式,可通过网络一些视频在线转换工具将视频格式转换过来,小米手机MIUI12系统及以上支持重命名修改视频文件格式,在文件系统中重命名修改格式即可。
在线 & 免费地将 MP4 转换成 AVI — Convertio
如果没有安装opencv的需要先去安装opencv,随后编译运行上述代码即可在指定文件夹数据图片的数据集,数据集采集效果:
使用百度AI EasyDL物体检测平台进行数据集的标注,数据集做好之后可将文件夹压缩zip包,然后再导入EasyDL平台进行标注。
首先压缩数据集
登录百度AI平台创建模型,填写好个人信息点击完成创建。
创建数据集
点击导入
上传压缩包数据集
导入完成后点击查看与标注
然后就是对图片进行识别物体的标注,这里的标签一定要记得添加,可以是识别物体的名称,然后拖动鼠标进行框选识别区域,如下图所示:
如果数据集较大的话,可以对每个识别的物体进行标注10张以上即可开启智能标注功能,这个功能简直极大缩短了数据集的标注时间,直接好评,但是智能标注完了之后也一定要记得检查平台自动标注的结果是否正确,偶尔还是会有识别混乱的情况出现的。
数据集制作好了之后就可以进行模型训练了。点击左侧训练模型选项,选择创建的目标模型,选择对应的数据集。
随后选择本地小型设备部署训练,最后点击开始训练你的模型就会在平台进行训练了。
经过一段时间的等待后,模型就训练好了,如果模型的精确率等训练效果达到了你的预期就可以进入下一步了,反之可修改平台模型训练的算法、模式等再次进行训练。
之后我们点击申请发布模型,选择SDK纯离线服务,点击发布。
因为是部署到Android上的所以这里我们选择系统为Android,通用芯片即可,最后点击发布。
等待模型发布成功后点击后面的APP体验,测试模型识别的效果。
将APP安装后即可进行拍照识别和实时识别,效果如文章开头所示。
那么接下来就到了最重要的Android端部署环节了。
部署流程如下:
1、下载模型离线SDK
2、新建Android工程
3、
1、下载模型SDK
解压缩文件
2、首先Android端先新建一个工程。
3、将下载离线SDK中applibs下的文件到自己工程的libs目录下
右击点击Add AS Library为项目添加依赖
4、build gradle中添加模型要用的架构
打开下载的SDK中的build.gradle(记事本打开)
然后同步工程
5、添加assets文件,将离线SDK appsrcmain目录下的assets文件添加到自己的工程
6、Manifest配置添加联网权限手机存储权限等
然后就是调用程序代码导包,这里的调用接口都是参考官网Android部署文档
代码会贴在下面
这里要添加文件存储权限,非常重要!!!(我就是忘记添加权限了,搞了两三个小时)
还有一个特别重要的就是序列号了,需要根据模型的不同选择不同的序列号,选择基础版或者加速版
然后修改代码中的序列号,当项目在手机上运行就会激活序列号
然后就可以运行项目了,输出数据结果
MainActivity.java文件
这里是一个子线程,推荐在子线程中实现功能 vehicleType_thread.java文件
activity_main.xml文件
strings.xml文件
<string name="shibie">识别</string> <string name="tev_result">识别状态:</string> <string name="null_tv" /> <string name="result_ple">识别结果:</string> <string name="result_Zxd">置信度:</string>
好了最后运行成功后就能看得到识别结果等。
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://www.glev.cn/tnews/202.html