朱虎明

个人信息:Personal Information

副教授 博士生导师 研究生导师

主要任职:CCF高性能计算专委会委员

性别:男

毕业院校:西安电子科技大学

学历:博士研究生毕业

学位:博士学位

在职信息:在岗

所在单位:人工智能学院

学科:计算机科学与技术

办公地点:西安电子科技大学网安大楼CII  1008

联系方式:陕西省西安市西沣路兴隆段266号

电子邮箱:

扫描关注

教师博客

当前位置: 中文主页 >> 教师博客

基于OpenVINO的人工智能系统实验(教育部产学合作协同育人项目)

发布时间:2018-11-21   点击次数:

基于OpenVINO的人工智能系统实验

(教育部产学合作协同育人项目)

  一、OpenVINO简介

    近年来,深度神经网络已成为机器学习领域的研究热点,并被广泛应用于语音识别、自动驾驶、图像分析等领域。然而随着训练数据集的增大和训练模型的日趋复杂,深度神经网络的训练和推理时间越来越长,因此优化深度神经网络性能成为增强其应用时效性的必要技术手段。

   英特尔宣布开源OpenVINO,全称Open Visual Inference Neural network Optimization,旨在加速开发者在边缘计算设备的模型推理,适用于英特尔的CPUGPUFPGA。它专为计算机视觉神经网络推理而生,使用它可以使得模型在英特尔的芯片上计算更快,通过它可以直接调用超过100个目前公开的和定制化的模型,还可以帮助开发者把已经训练好的网络模型部署到目标平台之上进行推理操作。

     OpenVINO深度学习部署工具套件可以帮助开发者把已经训练好的网络模型部署到目标平台之上进行推理操作。目前深度学习部署工具套件主要包括两个网元,一个网元是模型优化器,另外一个是推理引擎,如图1所示。其工作原理是通过模型优化器把开发者经过深度学习框架所开发的网络模型,针对选用的目标平台进行优化,优化结果转换成中间表示文件,生成IR文件。IR文件中包含优化以后的网络拓扑结构,以及优化之后的模型参数和模型变量。模型优化器是由Python语言编写的,不仅仅能够实现Caffe、Tensor Flow、MxNet上框架之上的模型导入,还可以根据模型进行优化。尤其是在通用处理器上做的训练结果,如果部署到资源受限的嵌入式推理平台之上,必须进行相应的优化。

               

图1 OpenVINO框架

二、openVINO windows版本安装

1.依赖项:Microsoft Visual Studio* with C++ 2017 或者 2015;CMake 3.4 或者更高版本;

Python 3.6.5 以及python库;intel 显卡驱动(如果使用intel GPU

2.硬件要求:

6th-8th Generation Intel® Core;Intel Xeon v5 family;Intel Xeon v6 family;Intel Movidius Neural Compute Stick

Intel Neural Compute Stick 2

3.系统要求:64windows10系统

4.安装

   在满足以上条件之后,从intel网站https://software.intel.com/en-us/openvino-toolkit/choose-download/free-download-windows下载安装包,点击安装,设置好路径,如果满足以上条件,便可安装成功。

5.安装目录结构(windows版)

总目录:<Install_path>\intel/computer_vision_sdk_2018.x.x

        总目录\documentation :保存官方文档链接地址。

        开发者工具目录:总目录\deployment_tools,在开发者目录下,主要有以下几个重要目录:

         model_downloader:模型下载目录,可下载intel提供的已经训练好的优化模型,调用该目录下的downloader.py python程序便可下载相应的模型。

        model_optimizer:模型优化器目录,用于将训练好的模型进行优化,首次使用需要配置转换环境,打开目录下的install_prerequisites目录,按照需求配置所需环境。如果要使用模型优化器,调用目录下的mo.py python程序。

        demo:demo例子目录,其中包括两个官方提供的demo,分别执行该目录下的demo_security_barrier_camera.batdemo_squeezenet_download_convert_run.bat文件,便可执行官方demo

        intel_models:包含一些比较小的网络模型经过模型优化器优化后的中间表示文件。

        inference_engine:推理引擎,包含了intel提供的满足各种功能需求推理引擎,包括图像分类,目标检测,图像分割,人脸识别等强大的功能,供开发者在各种平台上使用。如果要使用这些推理引擎的可执行文件,需要进入C:\Users\usr_name\Documents\Intel\OpenVINO\inference_engine_samples_2015目录下,使用visual studio 2015打开Samples.sln,点击生成ALL_BUILD,等待一段时间,在当前目录下的intel64\Release\目录下会产生所有编译好的intel提供的推理引擎的可执行文件。

OpenVINO应用

     OpenVINO公开了超过100个目前公开的和定制化的模型,可直接使用其提供的推理引擎调用这些模型完成一系列神经网络算法的功能,包括图像分类,车辆检测,行人检测,人脸识别,目标检测,图像分割等功能。还可以自己订制网络模型,将自己已经训练好的模型,通过OpenVINO提供的模型优化器转换为推理引擎所需的中间表示文件,输入到相应的推理引擎,完成相应的功能。

   在配置好openVINO之后,可以使用其提供的推理引擎直接对网络模型做推理。

1  Intel部分推理引擎及功能

推理引擎

功能

Classification sample

图像分类

Crossroad Camera

行人检测、识别和身份验证

Interactive face detection

人脸识别

Object Detection

目标检测

Security Barrier Camera

车辆检测 车牌检测 车辆识别 车牌识别

Image Segmentation

图像分割

Smart Classroom

人脸识别、动作检测

 Super Resolution

高分辨图像重建

 

以下列举一些应用实例:

1.图像分类:

使用classification_sample.exe可执行文件,

输入指令 classification_sample.exe -i <path_to_image>\cat.bmp -m <path_to_model> \alexnet_fp32.xml -nt 5 -d CPU

如果使用自己训练好的网络模型,只需将通过模型优化器优化产生的中间文件替换掉以上指令中-m的参数,输入要分类的图像,选取平台,便可在目标平台上推理得到输出,输出为分类的结果,可以控制输出置信度最高的若干个类别(由-nt参数指定)。      

图2.图像分类结果

2.车辆及车辆种类和车牌检测:

使用security_barrier_camera_demo.exe可执行文件

security_barrier_camera_demo.exe -i <path_to_video>\inputVideo.mp4 -m vehicle-license-plate-detection-barrier-0106.xml -m_va vehicle-attributes-recognition-barrier-0039.xml -m_lpr license-plate-recognition-barrier-0001.xml -d CPU

输入三个网络模型,第一个用于车辆及车牌检测,第二个用于车辆分类,第三个用于车牌识别。其中第一个网络模型是必需要输入的,后续两个网络模型为可选项。使用方法与图像分类相似,输入可以是MP4格式的视频或者直接以摄像头作为输入,OpenVINO会实时显示检测结果。

图2.车辆检测结果

3.目标检测:

使用object_detection_demo.exe可执行文件

输入指令object_detection_demo.exe -i <path_to_image>\inputImage.bmp -m <path_to_model> \faster-rcnn.xml -d CPU

与图像分类相似,如果要使用自己训练好的网络模型,只需替换-m参数。适用于目标检测的网络。输入待检测图像,输出图像存放在当前路径。  

 图3.目标检测结果

4.图像分割:

使用segmentation_sample.exe可执行文件

输入指令segmentation_sample.exe -i <path_to_image>\inputImage.bmp -m <path_to_model> \fcn8.xml –d CPU

与图像分类相似,如果要使用自己训练好的网络模型,只需替换-m参数。适用于目标检测的网络。输入带分割图像,分割后的图像存放在当前路径。

   

 

图4.图像分割结果

   OpenVINO为满足各种需求,提供了很多推理引擎供开发者直接使用,以上只是列举其中的一部分。表2罗列了一些可供上述推理引擎使用的intel提供的网络模型以及支持的硬件。

2 部分Intel网络模型及提供支持的推理引擎和硬件

模型

推理引擎

功能

CPU

GPU

FPGA

VPU

face-detection-adas-0001

Interactive face detection

人脸检测

age-gender-recognition-retail-0013

Interactive face detection

年龄性别识别

head-pose-estimation-adas-0001

Interactive face detection

头部姿态估计


emotions-recognition-retail-0003

Interactive face detection

情感识别

facial-landmarks-35-adas-0001

Interactive face detection

脸部特征点标识



vehicle-license-plate-detection-barrier-0106

Security barrier camera

车辆及车牌检测

vehicle-attributes-recognition-barrier-0039

Security barrier camera

车辆属性识别

license-plate-recognition-barrier-0001

Security barrier camera

车牌识别

person-detection-retail-0001

Object detection

人体检测



person-vehicle-bike-detection-crossroad-0078

Crossroad camera

人体车辆自行车检测

person-attributes-recognition-crossroad-0031

Crossroad camera

行人属性识别

person-reidentification-retail-0076

Crossroad camera

行人重识别

person-reidentification-retail-0079

Crossroad camera

行人重识别

person-reidentification-retail-0031

Crossroad camera/pedestrian tracker

行人重识别

road-segmentation-adas-0001

Image segmentation

道路检测

semantic-segmentation-adas-0001

Image segmentation

语义分割

person-detection-retail-0013

Any SSD-based sample

行人检测

face-detection-retail-0004

Any SSD-based sample

人脸检测

face-detection-retail-0004

Any SSD-based sample

人脸检测

pedestrian-detection-adas-0002

Any SSD-based sample

行人检测


vehicle-detection-adas-0002

Any SSD-based sample

车辆检测

pedestrian-and-vehicle-detector-adas-0001

Any SSD-based sample

行人车辆检测


face-detection-retail-0004

Smart classroom

人脸检测



landmarks-regression-retail-0009

Smart classroom

特征点标识

face-reidentification-retail-0071

Smart classroom

人脸重识别

person-detection-action-recognition-0003

Smart classroom

行人检测动作识别



human-pose-estimation-001

Human pose estimation

人体姿态估计



single-image-super-resolution-0034

Super resolution

高分辨图像重建




 

OpenVINO官方资料连接

所有文档地址:https://software.intel.com/en-us/openvino-toolkit/documentation/featured

Windows系统安装指引:https://software.intel.com/en-us/articles/OpenVINO-Install-Windows

Linux系统安装指引:https://software.intel.com/en-us/articles/OpenVINO-Install-Linux

模型优化器指引:https://software.intel.com/en-us/articles/OpenVINO-ModelOptimizer

推理引擎指引:https://software.intel.com/en-us/articles/OpenVINO-InferEngine






Baidu
map