技术实践丨基于 MindSpore 框架 Yolov3-darknet 模型的篮球动作检测体验
摘要:通过对篮球动作的分类训练及识别检测实例的讲解和体验,使我们了解了 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 。
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/8338aea26bfc4c753995db1c7】。文章转载请联系作者。
评论