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.若使用“银税转账”方式,

    生活 2021年10月30日
  • 可可粉,如何制作巧克力

    技术可可粉,如何制作巧克力原料:可可粉可可粉、可可脂、砂糖、牛奶工具:微波炉、大碗、模具
    可可粉、可可脂、(买块状的好一些,当然如果买的是粉装的也行。但是如果买了粉状可可,就要买黄油了)。可可脂买代脂,吃多了不会胖。

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

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

    生活 2021年10月24日
  • 岁寒然后知松柏之后凋也的意思,岁寒然后知松柏之后凋也的作文

    技术岁寒然后知松柏之后凋也的意思,岁寒然后知松柏之后凋也的作文《论语》一书中,有这样一句经典语句:子曰,岁寒,然后知松柏之后凋也。这句话出自《论语·子罕》,意思是:只有天气寒冷了,我们才明白松柏是最后凋谢的岁寒然后知松柏

    生活 2021年10月28日
  • in后面加什么,in后面是加形容词还是名词

    技术in后面加什么,in后面是加形容词还是名词in+名词不一定都是形容词in后面加什么。 比如:比如in danger 相当于形容词,可做定语或表语。但是in relief in comfort就相当于副词,做状语。 i

    生活 2021年10月29日
  • 有关mysql的坑有哪些

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

    攻略 2021年10月21日