当前位置:网站首页>基于ModelArts的物体检测YOLOv3实践【玩转华为云】
基于ModelArts的物体检测YOLOv3实践【玩转华为云】
2022-08-01 09:50:00 【华为云】
前言
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步(注册–>实名认证–>服务授权–>领代金券):
使用手机号注册华为云账号:点击注册
点此去完成实名认证,账号类型选"个人",个人认证类型推荐使用"扫码认证"。

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

进入 ModelArts 控制台首页,如下图,点击页面上的"彩蛋",领取新手福利代金券!后续步骤可能会产生资源消耗费用,请务必领取。
以上操作,也提供了详细的视频教程,点此查看:ModelArts环境配置

基于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目标检测算法,在速度和准确度上都有杰出的表现。
至此,本文结束。
感恩能与大家在华为云遇见!希望能与大家一起在华为云社区共同成长。
边栏推荐
- 7. SAP ABAP OData 服务如何支持 $orderby (排序)操作
- SkiaSharp 之 WPF 自绘 五环弹动球(案例版)
- Google Earth Engine APP——15行代码搞定一个inspector高程监测APP
- Shell:条件测试操作
- CTFshow,命令执行:web33
- Dataset之mpg:mpg数据集的简介、下载、使用方法之详细攻略
- STM32个人笔记-看门狗
- How does UXDB return the number of records for all tables in the current database?
- 微服务:事务管理
- YOLOv7-Pose尝鲜,基于YOLOv7的关键点模型测评
猜你喜欢

Change Servlet project to SSM project

Comprehensive experiment BGP

How to implement deep copy in js?

三子棋(C语言实现)

Parsing MySQL Databases: "SQL Optimization" vs. "Index Optimization"

Idea common plugins

HoloView——实时数据

shell脚本------条件测试 if语句和case分支语句

rpm and yum

How to ensure the consistency of database and cache data?
随机推荐
Analysis of High Availability Solution Based on MySql, Redis, Mq, ES
rpm and yum
In the background of the GBase 8c database, what command is used to perform the master-slave switchover operation for the gtm and dn nodes
Ogg synchronizes oracle to mysql, there may be characters that need to be escaped in the field, how to configure escape?
ASP.NET Core 6框架揭秘实例演示[30]:利用路由开发REST API
How to ensure the consistency of database and cache data?
企业微信群:机器人定时提醒功能数据库配置化
Is the real database data of TiDB stored in kv and pd?
CTFshow,命令执行:web37
STM32个人笔记-嵌入式C语言优化
18张图,直观理解神经网络、流形和拓扑
redis
笔记。。。。
STM32 Personal Notes - Embedded C Language Optimization
WLAN networking experiment of AC and thin AP
线上问题排查常用命令,总结太全了,建议收藏!!
Taobao commodity details and details on taobao, senior upgrade version of the API
浏览器快捷键大全
The soul asks: How does MySQL solve phantom reads?
Meeting OA (Upcoming Meetings & All Meetings)


