摘要:通过对篮球动作的分类训练及识别检测实例的讲解和体验,使我们了解了Yolov3模型的原理、架构等基本知识,为日后的深入学习奠定了基础。
背靠全新的设计理念,华为云推出了 MindSpore深度学习实战营,帮助小白更快的上手高性能深度学习框架,快速训练ResNet-50,实现你的第一个手机App开发,学会智能新闻分类、篮球检测和「猜你喜欢」模型!
MindSpore深度学习实战营,通过 21天的合理课程安排,不仅提供目前大热的移动端部署介绍,还有紧跟时事的趣味实践,更有深度的底层开发讲解,让你从框架到算法到开发,都能一网打尽。
在MindSpore21天实战营的第四堂课,由王老师分享了Yolov3在图像分类、目标检测等方面的实现。通过对篮球动作的分类训练及识别检测实例的讲解和体验,了解了Yolov3模型的原理、架构等基本知识,为日后的深入学习奠定了基础。
本次体验同样基于ModelArts+OBS,基本的操作步骤不复赘述,可以参考之前的文章。作业也同样分为体验作业和进阶作业。
体验作业:输入篮球比赛图片,在ModelArts环境上完成模型推理流程。根据本课提供的代码和操作步骤,是比较容易实现的,在此也不复强调。
进阶作业:输入篮球比赛视频,在ModelArts环境上完成模型推理流程。具体实现步骤如下:
1、下载一段篮球比赛视频,格式最好是mp4、avi等常规格式。用专用播放器下载的特殊格式,还需要转换一下;另外就是考虑到数据量的问题,视频的时间也不宜超过1分钟。本次操作的视频转码mp4后,居然带着水印(试用版),不确定会不会影响后续的识别。
2、对视频进行切分为图片,格式为.jpg。根据本课提供的OpenCV代码,在本地测试成功后,放到ModelArts上调试却不成功,多次调试无果。
2.1本地操作的代码如下图:
2.2 帧率为25,按照10帧取1,共切分出116张图片,图片大小为1920*1080。执行过程如下图所示
2.3 将图片通过OBS-browser-plus上传到OBS桶Yolov3项目数据集路径中;
2.4 修改predit.py代码,使其适应于批量图片的推理,并上传Yolov3代码至OBS桶。
Ps:2.4.1 图片目录中需按名称顺序读取并处理;
2.4.2 要将detection = DetectionEngine(args)语句置于循环中,否则其导致上一张图的Bounding box的累加复用,导致预测结果错误。如下图所示极端状况:
2.5 将Yolov3代码上传OBS桶Yolov3代码目录,并设置启动predict.py;在输出图片遍历的打印信息后,图片的检测工作就完成了,并输出到设置的OBS输出目录中。ModelArts检测日志见下图:
Ps:需注意增加checkpoint_path的配置,做为推理使用的训练模型。具体设置过程参见进阶作业步骤。
2.6、将图片使用OBS-browser-plus下载到本地,使用代码将其合并为视频。同样,ModelArts尝试运行无果。本地运行代码如下:
合成操作打印信息如下图所示:
到此,进阶作业的过程基本完成。
后记:
1、 本次课程训练使用的3000张篮球比赛图片,是在ModelArts上使用图片标记完成的,这可以作为深入了解AI模型拓展的一个起点;
2、 本次课程提供了GPU版本的代码,ModelArts上未实现的可以尝试在GPU环境下自动完成图片的切分、检测及合并;
3、 本节课后老师又补充了Yolov4的代码,可以尝试体验相比Yolov3检测精度是否有所提升。此项目前正在处理报错中,尚未成文,等待后补,谢谢!
本文分享自华为云社区《基于MindSpore框架Yolov3-darknet模型的篮球动作检测体验》,原文作者:Dasming 。