这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 企业专区 » OpenVINO生态社区 » 【转】OpenVINO学习记录

共2条 1/1 1 跳转至

【转】OpenVINO学习记录

助工
2020-07-28 14:27:33     打赏

OpenVINO介绍

 

 

 

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

相关内容链接

使用OpenVINO ToolKit 实时推断

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

其下载地址如下:

https://software.intel.com/content/www/cn/zh/develop/tools/openvino-toolkit/choose-download.html?cid=diad&source=EEPW&campid=prc_Q3_IOTG-DE_OpenVINO-DA_geo&content=prod-reg_&medium=display

核心组件与功能

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);    }}


浅闻陋见,还望指正

对计算机视觉感兴趣?这个社区推荐给你~

>>点击了解OpenVINO生态开发社区




关键词: OpenVINO     学习     模型    

工程师
2020-08-02 23:08:23     打赏
2楼

支持


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]