YOLOv3-tiny怎么在VS2015上使用Openvino部署

技术YOLOv3-tiny怎么在VS2015上使用Openvino部署YOLOv3-tiny怎么在VS2015上使用Openvino部署,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题

YOLOv3-tiny如何在VS2015上使用Openvino部署?针对这个问题,本文详细介绍了相应的分析和解答,希望能帮助更多想要解决这个问题的小伙伴找到更简单易行的方法。

00-1010前几天增加了两个Openvino组,本来想问Openvino是如何量化YOLOv3-tiny的int8的,但是没有得到想要的答案。但是发现这么多人没有好好利用Openvino。他们只是在网上寻找信息。我在百度上搜索了中文目标检测算法的部署信息。其实这并不难。我们可以用官方的例子来改变它。所以我答应几个同学写一个部署流程。希望用Openvino把YOLOv3-tiny(其他目标检测算法之类的)部署到cpu或者英特尔神经棒(1代或者2代)上就可以了。

00-1010,我就不多介绍了。我使用AlexeyAB版本darknet训练的YOLOv3-tiny模型(地址见附录),得到想要的权重文件,调用命令测试图像检测效果是否正确。

00-1010克隆OpenVINO-YoloV3项目,完整地址见附录。将项目下的coco.names修改为与培训时相同。确保要使用的python环境有tensorflow版本,1.8和1.9应该没问题。执行:python3 convert_weights_pb.py

-class _ name VOC . name

-weights _ file yolo v3 _ tiny _ 200000 . weights

-数据格式NHWC

-tiny-output _ graph frozed _ tiny _ yolo _ v3 . Pb

不出所料,冻结的_tiny_yolo_v3.pb文件将在您的OpenVINO-YoloV3文件下生成,这是我们需要的pb文件。00-1010我这里用的是OpenVINO2019.1.087,只要OpenVINO某个版本中的扩展模块包含YOLORegion Layer,应该就可以了。转换步骤如下:

将frozen _ tiny _ yolo _ v3.pb复制到OpenVINO所在的位置。

在文件夹f : \ intelswtools \ OpenVINO _ 2019 . 1 . 087 \ deployment _ tools \ model _ optimizer下,注意这个文件夹是我安装OpenVINO的路径,可以自己修改。创建一个新的yolov3-tiny.json文件并将其放入

在文件夹f : \ intelswtools \ open vino _ 2019 . 1 . 087 \ deployment _ tools \ model _ optimizer下。是的,请注意classes是数据集中目标类别的数量:[

{

id': 'TFYOLOV3 ',

match_kind': 'general ',

custom_attributes': {

类别' : 3,

坐标: 4,

num': 6,

mask': [0,1,2],

锚' :[10,14,23,27,37,58,81,82,135,169,344,319],

entry_points': ['检测器/yolo-v3-tiny/重塑','检测器/yolo-v3-tiny/重塑_4

quot;]
   }
 }
]

 


  •     F:\IntelSWTools\openvino_2019.1.087\deployment_tools\model_optimizer文件夹下,执行下面的命令来完成pb文件到OpenVINO的IR文件转换过程。
python mo_tf.py --input_model frozen_darknet_yolov3_model.pb
--tensorflow_use_custom_operations_config yolo_v3_tiny.json
--input_shape=[1,416,416,3]  --data_type=FP32

 

  • 不出意外的话就可以获得
        frozen_darknet_yolov3_model.bin
        frozen_darknet_yolov3_model.xml了。

 

利用VS2015配合OpenVINO完成YOLOv3-tiny的前向推理

因为yolov3-tiny里面的yoloRegion Layer层是openvino的扩展层,所以在vs2015配置libinclude文件夹的时候需要把cpu_extension.libextension文件夹加进来。最后includelib文件夹分别有的文件如下:

  • include文件夹:
        YOLOv3-tiny怎么在VS2015上使用Openvino部署
  • lib文件夹:

YOLOv3-tiny怎么在VS2015上使用Openvino部署其中cpu_extension.lib在安装了OpenVINO之后可能是没有的,这时候就需要手动编译一下。这个过程很简单,我在后边放了一个链接讲得很清楚了。

includelib配置好之后就可以编写代码进行预测了。代码只需要在OpenVINO-YoloV3工程的cpp目录下提供的main.cpp稍微改改就可以了。因为我这里使用的不是原始的Darknet,而是AlexeyAB版本的darknet,所以图像resize到416的时候是直接resize而不是letter box的方式。具体来说修改部分的代码为:YOLOv3-tiny怎么在VS2015上使用Openvino部署然后除了这个地方,由于使用的YOLOv3-tiny,OpenVINO-YoloV3里面的cpp默认使用的是YOLOv3的Anchor,所以Anchor也对应修改一下:

YOLOv3-tiny怎么在VS2015上使用Openvino部署这两个地方改完之后就可以顺利完成前向推理过程了,经过我的测试,相比于原始的darknet测试结果在小数点后两位开始出现差距,从我在几千张图片的测试结果来看,精度差距在1/1000到1/500,完全是可以接受的。

注意github上面的cpp那些打印信息都是没有必要可以注释掉,然后异步策略在测试时候也可以选择不用,我改好了一个可以直接运行的cpp。

关于YOLOv3-tiny怎么在VS2015上使用Openvino部署问题的解答就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/79839.html

(0)

相关推荐

  • 标准砖一立方多少块,一立方米砖等于多少块砖

    技术标准砖一立方多少块,一立方米砖等于多少块砖首先要知道每个型号1立方是多少块标准砖一立方多少块,举个例子来说明先看砌块的规格,如600*300*200,产品的规格尺寸以毫米为单位,换算成米后为0.6*0.3*0.2如此

    2021年10月25日
  • C++代码怎么优化

    技术C++代码怎么优化这篇文章主要讲解了“C++代码怎么优化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++代码怎么优化”吧!使用模板的特化或者偏特化技术可以指定在使

    攻略 2021年11月30日
  • 分库分表与NewSQL怎么选择

    技术分库分表与NewSQL怎么选择本篇内容主要讲解“分库分表与NewSQL怎么选择”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分库分表与NewSQL怎么选择”吧!NewSQ

    攻略 2021年11月12日
  • 美国云服务器Tiktok直播运营有什么优势

    技术美国云服务器Tiktok直播运营有什么优势做海外tiktok直播带货一般有两种模式,一种是专门利用一台海外服务器做海外直播推流,还有一种就是利用海外服务器做转发,相较于前者后者成本低效果好,因此现在很多用户都会租用美

    礼包 2021年12月14日
  • docker使用常用命令(docker常用的15个命令)

    技术Docker的常用命令是什么这篇文章主要介绍“Docker的常用命令是什么”,在日常操作中,相信很多人在Docker的常用命令是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Doc

    攻略 2021年12月13日
  • Java学习笔记六:Java最基础

    技术Java学习笔记六:Java最基础 Java学习笔记六:Java最基础1. 标志符
    命名注意:只可以字母(A-Z或a-z)、美元符($)、下划线(_)开始;
    首字符之后可以是字母、美元符、下划线或数

    礼包 2021年10月19日