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)

相关推荐

  • 怎么关闭mysql_history文件

    技术怎么关闭mysql_history文件本篇内容介绍了“怎么关闭mysql_history文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔

    攻略 2021年11月18日
  • 解决texlive化学式转换镜像经常偶发性进程堆积导致卡顿问题

    技术解决texlive化学式转换镜像经常偶发性进程堆积导致卡顿问题 解决texlive化学式转换镜像经常偶发性进程堆积导致卡顿问题前言
    之前在 使用Python定时清理运行超时的pdflatex僵尸进程

    礼包 2021年12月2日
  • 火星距离地球多远,火星距离地球的距离是多少光年

    技术火星距离地球多远,火星距离地球的距离是多少光年火星与地球的最近距离是5565万千米,即约0.00000588光年;最远约4亿千米,即约0.000042光年.火星距地球的距离火星距离地球多远,近距离约为5500万千米,

    生活 2021年10月27日
  • 形容种类多的成语,形容品种多的四字成语有哪些

    技术形容种类多的成语,形容品种多的四字成语有哪些形容种类多的成语   1形容种类多的成语、无穷无尽:穷:完。没有止境,没有限度。   
    2、不可胜举:指无法一一枚举,极言其多。   
    3、眼花缭乱:缭乱:纷乱。看着复杂纷

    生活 2021年10月24日
  • js事件委托的优点有哪些

    技术js事件委托的优点有哪些这篇文章主要介绍“js事件委托的优点有哪些”,在日常操作中,相信很多人在js事件委托的优点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”js事件委托的优点

    攻略 2021年10月20日
  • 「IOI2021」Dungeons

    技术「IOI2021」Dungeons 「IOI2021」Dungeons题目
    点这里看题目。
    分析
    比较考察基础的观察和诡异的优化的题目,值得一试。
    算法 1
    直接模拟,复杂度为 \(O(qs)\)。

    礼包 2021年11月18日