系列 | OpenVINO视觉加速库使用一

OpenVINO介绍

OpenVINO是英特尔推出一套基于深度学习的计算机视觉加速优化框架,支持其它机器学习平台模型的压缩优化、加速计算等功能。 自发布以后就得到开发者的青睐,其强大的模型优化与压缩能力与加速计算引擎带来的速度提升让人十分惊喜,前面发布过一篇文章,详细介绍了OpenVINO的架构与其加速引擎(Inference Engine-IE)使用,如何帮助开发者在CPU上对深度学习的模型跑出实时帧率,文章链接如下:

相关内容链接

使用OpenVINO ToolKit 实时推断

OpenCV调用Faster-RCNN对象检测网络

其下载地址如下:

https://software.intel.com/en-us/openvino-toolkit/choose-download/free-download-windows

核心组件与功能

OpenVINO主要包括两个核心组件一个预训练模型库

核心组件-模型优化器

模型优化器Model Optimizer,模型优化器支持的深度学习框架包括

-ONNX -TensorFlow -Caffe -MXNet

核心组件-推断引擎

推断引擎(Inference Engine)支持硬件指令集层面的深度学习模型加速运行,同时对传统的OpenCV图像处理库也进行了指令集优化,有显著的性能与速度提升。支持的硬件平台包括如下:

-GPU -GPU -FPGA -MYRIAD(英特尔加速计算棒第一代与第二代) -HDDL -GAN

公开模型库

Intel发布的大量预训练模型,这些模型包括

这些模型库涵盖了很多视觉应用场景的通用模型,可以快速的搭建项目原型,得到效果,同时还支持把tensorflow/caffe等框架训练出来的模型通过模型优化器,优化处理成为二进制IR模型。

使用预训练模型实现车辆与车牌检测

OpenCV4.0 DNN模块支持直接加载这些模型,API为:

Net cv::dnn::readNetFromModelOptimizer(
    const String &xml,
    const String &bin
)
其中
Xml表示模型配置信息文件
Bin表示二进制的模型文件

在OpenCV DNN中加载车辆与车牌检测模型,代码如下:

// 加载模型
Net net = readNetFromModelOptimizer(xmlInfo, binModel);
net.setPreferableBackend(DNN_BACKEND_INFERENCE_ENGINE);
net.setPreferableTarget(DNN_TARGET_CPU);

使用模型进行预测代码如下:

// 运行网络
Mat blob = blobFromImage(image, 1.0, Size(300, 300), Scalar(), false, false, 5);
net.setInput(blob);
Mat detection = net.forward();

对输出的detection进行解析之后显示:

// 解析输出结果
for (int i = 0; i < detectionMat.rows; i++) {
    float confidence = detectionMat.at<float>(i, 2);
    if (confidence > confidence_threshold) {
        size_t objIndex = (size_t)(detectionMat.at<float>(i, 1));
        float tl_x = detectionMat.at<float>(i, 3) * image.cols;
        float tl_y = detectionMat.at<float>(i, 4) * image.rows;
        float br_x = detectionMat.at<float>(i, 5) * image.cols;
        float br_y = detectionMat.at<float>(i, 6) * image.rows;

        Rect object_box((int)tl_x, (int)tl_y, (int)(br_x - tl_x), (int)(br_y - tl_y));
        rectangle(image, object_box, Scalar(0, 0, 255), 2, 8, 0);
    }
}

运行结果如下所示:

图像大小为1600x1200, i7 CPU笔记本上运行,这速度还用多说吗?

觉得有用,请给个好看!

原文发布于微信公众号 - OpenCV学堂(CVSCHOOL)

原文发表时间:2019-04-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券