保姆级教程 - 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
Atlas500部署YOLOv3-tiny:模型转换与优化

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

被折叠的 条评论
为什么被折叠?



