摘要:通过对篮球动作的分类训练及识别检测实例的讲解和体验,使我们了解了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 。

点击关注,第一时间了解华为云新鲜技术~

技术实践丨基于MindSpore框架Yolov3-darknet模型的篮球动作检测体验的更多相关文章

  1. 基于MIndSpore框架的道路场景语义分割方法研究

    基于MIndSpore框架的道路场景语义分割方法研究 概述 本文以华为最新国产深度学习框架Mindspore为基础,将城市道路下的实况图片解析作为任务背景,以复杂城市道路进行高精度的语义分割为任务目标 ...

  2. 技术实践丨React Native 项目 Web 端同构

    摘要:尽管 React Native 已经进入开源的第 6 个年头,距离发布 1.0 版本依旧是遥遥无期."Learn once, write anywhere",完全不影响 Re ...

  3. MindInsight:一款基于MindSpore框架的训练可视化插件

    技术背景 在深度学习或者其他参数优化领域中,对于结果的可视化以及中间网络结构的可视化,也是一个非常重要的工作.一个好的可视化工具,可以更加直观的展示计算结果,可以帮助人们更快的发掘大量的数据中最有用的 ...

  4. 【公开课】【阿里在线技术峰会】魏鹏:基于Java容器的多应用部署技术实践

    对于公开课,可能目前用不上这些,但是往往能在以后想解决方案的时候帮助到我.以下是阿里对公开课的整理 摘要: 在首届阿里巴巴在线峰会上,阿里巴巴中间件技术部专家魏鹏为大家带来了题为<基于Java容 ...

  5. 王晶:华为云OCR文字识别服务技术实践、底层框架及应用场景 | AI ProCon 2019

    演讲嘉宾 | 王晶(华为云人工智能高级算法工程师王晶) 出品 | AI科技大本营(ID:rgznai100) 近期,由 CSDN 主办的 2019 中国AI 开发者大会(AI ProCon 2019) ...

  6. 从游击队到正规军(三):基于Go的马蜂窝旅游网分布式IM系统技术实践

    本文由马蜂窝技术团队电商交易基础平台研发工程师"Anti Walker"原创分享. 一.引言 即时通讯(IM)功能对于电商平台来说非常重要,特别是旅游电商. 从商品复杂性来看,一个 ...

  7. 快速开发框架,及库存管理系统,基于easyui框架和C#语言MVC、EntityFrameWork、T4模板技术。

    快速开发框架,及库存管理系统,基于easyui框架和C#语言MVC.EntityFrameWork.T4模板技术. 产品界面如下图所示: 源码结构: 开放全部源码,如有需要请联系,QQ:1107141 ...

  8. 一款基于SSM框架技术的全栈Java web项目(已部署可直接体验)

    概述 此项目基于SSM框架技术的Java Web项目,是全栈项目,涉及前端.后端.插件.上线部署等各个板块,项目所有的代码都是自己编码所得,每一步.部分都有清晰的注释,完全不用担心代码混乱,可以轻松. ...

  9. 花椒直播基于golang的中台技术实践

    https://github.com/gopherchina/conference/blob/master/2019/2.7%20花椒直播基于golang的中台技术实践%20-%20周洋.pdf 花椒 ...

  10. 技术干货 | 基于MindSpore更好的理解Focal Loss

    [本期推荐专题]物联网从业人员必读:华为云专家为你详细解读LiteOS各模块开发及其实现原理. 摘要:Focal Loss的两个性质算是核心,其实就是用一个合适的函数去度量难分类和易分类样本对总的损失 ...

随机推荐

  1. 软件开发人员 Kubernetes 入门指南|Part 2

    在第 1 部分中,我们讲解了 Kubernetes 的核心组件,Kubernetes 是一种开源容器编排器,用于在分布式环境中部署和扩展应用程序:我们还讲解了如何在集群中部署一个简单的应用程序,然后更 ...

  2. 浅析 C# 控制台的 Ctrl+C 是怎么玩的

    一:背景 1. 讲故事 上一篇我们聊到了 Console 为什么会卡死,读过那篇文章的朋友相信对 conhost.exe 有了一个大概的了解,这一篇更进一步聊一聊窗口的特殊事件 Ctrl+C 底层流转 ...

  3. CSP 初赛复习

    想要做一些不需要思考也算不得摆烂的事,但发现很难找到符合上述要求的学习内容. 突然想到还剩两天就 CSP 初赛了.虽然在 LN 想过不了初赛纯属搞笑,但为了不让自己的分数太难看还是简单复习一下. 没有 ...

  4. xtrabackup 2.4 的介绍与使用

    抄袭转载的太多,请认准原文链接:xtrabackup的介绍与使用 前言 在网上找到教程都是复制粘贴抄袭的,而且还是陈旧资料,不得不说,当前中文互联网环境真是每况愈下. 如果你在网上找 xtraback ...

  5. git 删除远程分支,重新提交代码

    最近提交代码,分支名出错了,要更正分支名并且重新提交代码,这里记录一下. 说明一下,我之前的分支名是:feature_mobile_duty,更正后的分支名是feature-mobile-duty,是 ...

  6. 手撕Vuex-实现actions方法

    经过上一篇章介绍,完成了实现 mutations 的功能,那么接下来本篇将会实现 actions 的功能. 本篇我先介绍一下 actions 的作用,然后再介绍一下实现的思路,最后再实现代码. act ...

  7. PCA主成分分析的理解

    u     |_matrix1x2_{{-0.70710678118654757};{-0.70710678118654735}} x^(1)    |_matrix1x2_{{-0.51805350 ...

  8. 使用js写一个音乐音谱图

    我们经常看到在听乐音的时候,会有音谱图随着音乐的节奏不断变化给人视觉上的享受,那么我们通过js来实现以下这个效果,下面是简单的效果图 首先我们需要有一个绘制音频的函数 function draw() ...

  9. 自定义springboot-starter 动态数据源

    自定义springboot-starter 动态数据源 如果使用的是spring或springboot框架,spring提供了一个实现动态数据源的一个抽象类AbstractRoutingDataSou ...

  10. .NET生成微信小程序推广二维码

    前言 对于小程序大家可能都非常熟悉了,随着小程序的不断普及越来越多的公司都开始推广使用起来了.今天接到一个需求就是生成小程序码,并且与运营给的推广图片合并在一起做成一张漂亮美观的推广二维码,扫码这种二 ...