当前位置:   article > 正文

用树莓派4b构建深度学习应用(九)Yolo篇_yolov5s input shape

yolov5s input shape

前言

上一篇我们在树莓派上安装了OpenVINO的环境,并跑了几个官方demo,作为关键点的模型转换工作,以各个版本的yolo实现为例,在这篇做一下实现。

目标检测是人工智能应用比较成熟的领域,不仅要能够识别出图片的目标,还要定位其位置,在自动驾驶方面会是一个基础的场景。一般分为两大类别,一类是two-stage的,基于R-CNN,Fast R-CNN, Faster R-CNN等等,先生成待选框(Region Proposal),再进行分类获取类别,回归获取位置;另一类就是Yolo,SSD这种one-stage算法,直接用CNN网络获取目标和位置。

相对来说,R-CNN系的精度更高,但速度慢,Yolo系的则速度快,准确率低些。在很多CV领域里,只要保证分类的准确率,检测速度比定位精度重要的多,而one-stage的模型部署有着天然的优势,极大的减轻算力有限的边缘设备的计算压力。

Yolo则是目标检测类优化速度的代表,而转换为Openvino后,速度还能更进一步。这篇主要介绍两种主流框架 Tensorflow 和 Pytorch 的模型转换到 Openvino的方法。

首先,Tensorflow 模型的转化流程是,先换将权重文件.weight 转换成静态图 .pb文件,再转化成 IR 模型的 .bin 和 .xml,最后部署到神经棒运行。我们先来跑一个yolov4-tiny的应用来体验一下。

Yolov4 应用

 1   下载源码

  1. git clone https://github.com/TNTWEN/OpenVINO-YOLOV4.git
  2. cd OpenVINO-YOLOV4

 2   将 weight --> pb

下载 yolov4.weight 和  yolov4-tiny.weight 放入该目录下

python convert_weights_pb.py --class_names cfg/coco.names --weights_file yolov4-tiny.weights --data_format NHWC --tiny

目录下有输出 frozen_darknet_yolov4_model.pb 就转化成功了。

✎ Tip 

其中必须指定数据格式为NHWC,以匹配 intel NCS2 上对应的格式。

✎ Tip 

如遇到有 ‘cloud’ 导入错误的信息,那是由于编译 TF 时开启了  --nogcp 标志,导致 tensorflow/contrib/cloud 没有被加入 pip 的安装包。这里只要将 __init__ 里的两行代码注释掉即可修复这个bug了。其中必须指定数据格式为NHWC,所以这里需要 reverse_input_channels 翻转一下对应的输入通道。

/home/pi/my_envs/tensorflow/lib/python3.7/site-packages/tensorflow/contrib/__init__.py

 3   初始化openvino环境

要在Windows 或

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/140374
推荐阅读
相关标签
  

闽ICP备14008679号