保姆级教程 - atlas500部署yolov3-tiny检测实时视频流 [2] - yolov3-tiny模型转换到om模型

Atlas500部署YOLOv3-tiny:模型转换与优化
该博客详细介绍了如何在Atlas500上部署YOLOv3-tiny模型,用于实时视频流的目标检测。内容包括权重转换为ckpt,模型固化为pb,ATC模型转换成om模型的过程,以及AIPP和DVPP预处理算子的介绍。博主强调了确定模型输入输出节点的重要性,并提供了相关工具和资源链接。

保姆级教程 - atlas500部署yolov3-tiny检测实时视频流 [2] - yolov3-tiny模型转换到om模型

接上文 ->

内网环境下docker部署atlas500 开发环境 [踩坑记录]


后续开发需要很多华为atlas官方的知识,版本迭代较快,我们应该以官方文档为主:https://support.huaweicloud.com/adevg-atlas500app/atlas500development_01_0001.html

还有对应cann版本的推理、训练文档:昇腾CANN社区版(5.0.4.alpha002)(训练)昇腾CANN社区版(5.0.4.alpha002)(推理)
请添加图片描述

2、yolov3-tiny转换到om模型

本文采用darknet原生的yolov3-tiny进行训练:https://pjreddie.com/darknet/ ,训练过程在此不再介绍

由于训练出的模型是weights,而atlas CANN目前对tensorflow、yolov3支持最好。(yolov5目前暂不支持使用) 详看模型支持列表:https://support.huaweicloud.com/ug-mfac-mindxsdk201/atlasmx_02_0129.html

而CANN的atc模型转换,也主要支持tf和caffe。本文采用weight -> ckpt ->pb -> atc转换为om模型的方案

(1)weight -> ckpt

从weight模型提取出ckpt权重。

借助项目: https://github.com/mystic123/tensorflow-yolo-v3

通过convert_weights.py提取ckpt权重,其中可指定yolov3 或 yolov3-tiny:

其中,本文使用tf1.15,通过浏览一些样例发现tf1.15应该是目前支持最好的

# -*- coding: utf-8 -*-
import tensorflow as tf
import yolo_v3
import yolo_v3_tiny
from utils import load_coco_names, load_weights

FLAGS = tf.app.flags.FLAGS

tf.app.flags.DEFINE_string(
    'class_names', './model/voc.names', 'File with class names')
tf.app.flags.DEFINE_string(
    'weights_file', './model/yolov3-tiny.weights', 'Binary file with detector weights')
tf.app.flags.DEFINE_string(
    'data_format', 'NHWC', 'Data format: NCHW (gpu only) / NHWC')
tf.app.flags.DEFINE_bool(
    'tiny', True, 'Use tiny version of YOLOv3')
tf.app.flags.DEFINE_bool(
    'spp', False, 'Use SPP version of YOLOv3')
tf.app.flags.DEFINE_string
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值