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

    题目描述 Vasya has recently developed a new algorithm to optimize the reception of customer flow and he ...

  2. 14.9 Socket 高效文件传输

    网络上的文件传输功能也是很有必要实现一下的,网络传输文件的过程通常分为客户端和服务器端两部分.客户端可以选择上传或下载文件,将文件分块并逐块发送到服务器,或者从服务器分块地接收文件.服务器端接收来自客 ...

  3. Interesting Array 题解

    Interesting Array 题目大意 构造一个序列 \(a\),使其满足若干限制条件,每个限制条件是形如 l r q 的式子,其意义是:\(\&_{i=l}^ra_i=q\). 题意分 ...

  4. 使用 Ant Design Vue 你可能会遇到的14个问题

    公司有一个新需求,在原来项目基础上开发,项目中使用 Ant Design Vue,版本是 1.X ,在此记录下遇到的问题:对于没有使用过或者使用程度不深的同学来说,希望可以帮助你在开发中遇到问题时有个 ...

  5. HanLP — Aho-Corasick DoubleArrayTire 算法 ACDAT - 基于双数组字典树的AC自动机

    双数组字典树能在O(1)(1是模式串长度)时间内高速完成单串匹配,并且内存消耗可控,然而软肋在于多模式匹配.如果要匹配多个模式串,必须先实现前缀查询,然后频繁截取文本后缀才可多匹配.比如 ushers ...

  6. 2007年对Youtube小视频的分析文章

    Understanding the Characteristics of Internet Short Video Sharing: YouTube as a Case Study 视频的种类 该研究 ...

  7. 分享一个有趣的WBO在线创作画板并且可以远程访问

    WBO在线协作白板是一个自由和开源的在线协作白板,允许多个用户同时在一个虚拟的大型白板上画图.该白板对所有线上用户实时更新,并且状态始终保持.它可以用于许多不同的目的,包括艺术.娱乐.设计和教学,使用 ...

  8. 基于uQRCode封装的Vue3二维码生成插件

    标题:基于uQRCode封装的Vue3二维码生成插件 摘要:本文介绍了一种基于uQRCode封装的Vue3二维码生成插件,可以在Javascript运行环境下生成二维码并返回图片地址.该插件适用于所有 ...

  9. Java的四种内部类(成员内部变量,静态内部变量,局部内部类,匿名内部类)

    内部类 内部类就是在一个内的内部再定义一个内 内部类的分类:成员内部类,静态内部类,局部内部类,匿名内部类 (1)成员内部类 指类中的一个普通成员,可以定义成员属性,成员方法 内部类是可以访问外部类的 ...

  10. 2023-12-09:用go语言,给你两个整数数组 arr1 和 arr2, 返回使 arr1 严格递增所需要的最小「操作」数(可能为 0)。 每一步「操作」中,你可以分别从 arr1 和 arr2

    2023-12-09:用go语言,给你两个整数数组 arr1 和 arr2, 返回使 arr1 严格递增所需要的最小「操作」数(可能为 0). 每一步「操作」中,你可以分别从 arr1 和 arr2 ...