模型推理 : YOLOv5 目标检测

模型推理 : YOLOv5 目标检测

本实验主要介绍基于寒武纪推理引擎 MagicMind 的 YOLOv5m (PyTorch, Python, FP32) 目标检测推理应用的开发方法
难易程度: 初级|实验人次:5465

一、内容及目标

 

1. 实验内容

  • 本实验主要介绍基于寒武纪推理引擎 MagicMind 的 YOLOv5m (PyTorch, Python, FP32) 目标检测推理应用的开发方法。
  • 基于 YOLOv5m 检测网络和寒武纪推理引擎 MagicMind,您可以读取本地图像数据作为输入,对图像数据中的目标物体进行时识别,得到物体的在图像中的坐标、置信度以及类别。

 

2. 实验目标

  • 掌握使用寒武纪推理引擎 MagicMind 进行模型推理的基本方法。
  • 理解 YOLOv5m 模型的整体网络结构及其开发调试细节。

 

二、前置知识

 

1. 寒武纪软硬件平台介绍

  • 硬件:寒武纪 MLU370 系列 AI 加速卡
  • 框架:PyTorch 1.6MagicMind 0.14.0

 

2. MagicMind介绍

MagicMind 是⾯向寒武纪 MLU370 (寒武纪处理器,简称MLU) 的推理加速引擎。 MagicMind 能将人工智能框架(Tensorflow,PyTorch 等)训练好的算法模型转换成 MagicMind 统⼀计算图表⽰,并提供端到端的模型优化、代码⽣成以及推理业务部署能⼒。用户无需过多关注底层硬件细节,只需专注于推理业务开发。

获取更多有关 MagicMind 资料,请参考 [寒武纪官网文档]  MagicMind 相关内容。

 

三、网络结构

针对不同大小(n,s,m,l,x)的网络,YOLOv5的整体架构不变,但会根据yaml文件中定义的depth_mutiplewidth_mutiple参数,对每个子模块进行不同深度和宽度的缩放。

[YOLOv5m] 为例,其网络结构主要由以下几部分组成:

  • Backbone: Conv(CBS), C3, SPPF
  • Head: Conv(CBS), C3, Upsample, Concat
  • Detect: Decode, nms, topk (CPU端运行,不参与训练)

网络结构如下图所示: 

 其中:

  • CBS: 由 Conv + BN2d + SiLU 三者组成
  • C3: [CSP Bottleneck] with 3 convolutions,结构图上图所示
  • SPPF: Spatial Pyramid Pooling (Fast),空间金字塔池化结构,功能不变前提下提升运行速度

 

四、模型推理

模型推理整体流程如下图所示,主要包含模型工程准备,模型生成和模型推理三部分:

 

1. 工程准备

  1. 原生工程下载:下载原始 YOLOv5 工程,本实验已经提供工程环境,yolov5 源代码在src/models/目录下。
  2. 预训练模型下载:下载 yolov5m 预训练权重,并将其放置于yolov5_model目录下。
  3. 搭建环境:安装本实验所需要的额外环境。

 

2. 模型生成

  1. 构建融合图:用 PyTorch 框架构建 yolov5m 模型,使用 jit.trace 工具把网络编译为融合图并保存,方便 MagicMind 后期 parser 操作。
  2. Network 和 BuildConfig 配置: MagicMind ⽀持直接导⼊框架训练好的模型,并表⽰成 Network 对象。模型导⼊⼯作由 Parser 来完成。MagicMind 还提供了BuilderConfig 来配置 Builder 的行为,通过 BuilderConfig 设置,用户可配置硬件平台,输入摆数,归一化参数等信息。
  3. 生成 MagicMind 模型:调用 MagicMind 的 build_model 接口生成模型,build_model ⽣成的模型中包含MLU指令、权值、图结构等静态数据。⽣成的模型可以序列化到⽂件或内存,或从⽂件或内存反序列化,从⽽满⾜跨平台部署需求。

 

3. 模型推理

  1. 前处理:通过缩放比例,padding 处理返回处理后的图像数据。
  2. 利用 MagicMind 进行推理的具体过程如下图所示:

iii. 后处理:MagicMind 处理完后,还需要在 CPU 上进行 NMS ,坐标映射回原图等操作。

 

五、相关链接

实验代码仓库:https://gitee.com/cambricon/practices

ModelZoo仓库:https://gitee.com/cambricon/modelzoo

申 请 试 用