基于ModelArts的物体检测YOLOv3实践【玩转华为云】

举报
运气男孩 发表于 2022/07/31 23:56:54 2022/07/31
【摘要】 前言YOLO场景运用: YOLO作为一个one-stage目标检测算法,在速度和准确度上都有杰出的表现。除了在Notebook开发环境中进行算法的定义和运行,通过ModelArts预置算法同样可以进行YOLO算法的训练和推理。接下来的例子就是一个利用Notebook中的YOLO V3物体检测进行的训练和推理过程。另外,想要了解ModelArts预置算法,可以前往华为云GitHub教程链接:M...

前言

YOLO场景运用: YOLO作为一个one-stage目标检测算法,在速度和准确度上都有杰出的表现。

除了在Notebook开发环境中进行算法的定义和运行,通过ModelArts预置算法同样可以进行YOLO算法的训练和推理。接下来的例子就是一个利用Notebook中的YOLO V3物体检测进行的训练和推理过程。

另外,想要了解ModelArts预置算法,可以前往华为云GitHub教程链接:ModelArts物体检测Yolo_V3预置算法案例

或者可以参考以前我的这篇博文:https://bbs.huaweicloud.com/blogs/224006

背景

物体检测是计算机视觉中的一个重要的研究领域,在人流检测,行人跟踪,自动驾驶,医学影像等领域有着广泛的应用。不同于简单的图像分类,物体检测旨在对图像中的目标进行精确识别,包括物体的位置和分类,因此能够应用于更多高层视觉处理的场景。例如在自动驾驶领域,需要辨识摄像头拍摄的图像中的车辆、行人、交通指示牌及其位置,以便进一步根据这些数据决定驾驶策略。这次实践,我将聚焦于YOLO算法,YOLO(You Only Look Once)是一种one-stage物体检测算法。

基础环境准备

在使用 ModelArts 进行 AI 开发前,需先完成以下基础操作哦(如有已完成部分,请忽略),主要分为4步(注册–>实名认证–>服务授权–>领代金券):

  1. 使用手机号注册华为云账号:点击注册

  2. 点此去完成实名认证,账号类型选"个人",个人认证类型推荐使用"扫码认证"。 

    image.png

  3. 点此进入 ModelArts 控制台数据管理页面,上方会提示访问授权,点击【服务授权】按钮,按下图顺序操作: 

    image.png

  4. 进入 ModelArts 控制台首页,如下图,点击页面上的"彩蛋",领取新手福利代金券!后续步骤可能会产生资源消耗费用,请务必领取。 

以上操作,也提供了详细的视频教程,点此查看:ModelArts环境配置

image.png

基于ModelArts的物体检测YOLOv3实践具体步骤

1.点击进入 物体检测YOLOv3实践的案例页面,并完成基础配置。

本次实践使用的是AI框架: TensorFlow-1.13.1,在GPU下面运行;推荐规格: GPU V100

点击 Run in ModelArts,进入 JupyterLab 页面:

稍等30s左右,等待项目初始化完毕......

由于需要GPU下运行,所以我们需要进行规格切换,并选择 [限时免费]GPU: 1*V100|CPU: 8核 64GB ,点击切换规格。

稍等一会就切换完成,如下所示:

2.数据和代码下载

运行下面代码,进行数据和代码的下载和解压

这里使用coco数据,共80个类别。

3准备数据

3.1文件路径定义

3.2读取标注数据

3.3数据读取函数,构建数据生成器。

每次读取一个批次的数据至内存训练,并做数据增强

4.模型训练

这里使用Keras深度学习框架搭建YOLOv3神经网络。

4.1构建神经网络

可以在./yolo3/model.py文件中查看细节

4.2开始训练

4.3保存模型

5.模型测试

5.1打开一张测试图片

5.2图像预处理

5.3构建模型

5.4加载模型权重

5.5定义IOU以及score

  • IOU: 将交并比大于IOU的边界框作为冗余框去除
  • score:将预测分数大于score的边界框筛选出来

5.6构建输出[boxes, scores, classes]

5.7进行预测

5.8将预测结果绘制在图片上

先输出一下原图

物体检测效果图

可以看出,基于ModelArts的物体检测YOLOv3可以检测出伞和人,框选的比较精确,与数据集训练的精度也有关系。

总结

物体检测是计算机视觉中的一个重要的研究领域,在人流检测,行人跟踪,自动驾驶,医学影像等领域有着广泛的应用。不同于简单的图像分类,物体检测旨在对图像中的目标进行精确识别,包括物体的位置和分类,因此能够应用于更多高层视觉处理的场景。本次实操,通过训练好的数据进行检测,较为精确,不难看出,YOLO作为一个one-stage目标检测算法,在速度和准确度上都有杰出的表现。

至此,本文结束。

感恩能与大家在华为云遇见!希望能与大家一起在华为云社区共同成长。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。