27 OPENVINO advanced course1

OPENVINO示例

  • 1 人体动作姿势识别示例
  • 2 图像着色示例
  • 3 音频检测示例
  • 4 公式识别
  • 5 环境深度识别
  • 6 目标识别示例
  • 7自然语言处理示例(NLP)——自动回答问题

1 人体动作姿势识别示例

1.1设定实验路径
设定OpenVINO的路径:

export OV=/opt/intel/openvino_2021/

设定当前实验的路径:

export WD=~/OV-300/01/3D_Human_pose/

注:实验文件夹名为OV-300,位于主目录下。本环境下,文件的上传与下载方法,参考右上角帮助手册。

1.2 运行初始化OpenVINO的脚本
source $OV/bin/setupvars.sh

当你看到:[setupvars.sh] OpenVINO environment initialized 表示OpenVINO环境已经成功初始化。
运行OpenVINO依赖脚本的安装
进入脚本目录:

cd $OV/deployment_tools/model_optimizer/install_prerequisites/

1.3 安装OpenVINO需要的依赖:

sudo ./install_prerequisites.sh

PS:此步骤为模拟开发机本地进行OpenVINO使用的步骤,所以 之后你在本地使用OpenVINO之前需要遵循此步骤。

1.4 安装OpenVINO模型下载器的依赖文件
进入到模型下载器的文件夹:

cd $OV/deployment_tools/tools/model_downloader/

安装模型下载器的依赖:

python3 -mpip install --user -r ./requirements.in

安装下载转换pytorch模型的依赖:

sudo python3 -mpip install --user -r ./requirements-pytorch.in

安装下载转换caffe2模型的依赖:

sudo python3 -mpip install --user -r ./requirements-caffe2.in

PS:此步骤为模拟开发机本地进行OpenVINO使用的步骤,所以 之后你在本地使用OpenVINO之前需要遵循此步骤。

1.5 通过模型下载器下载人体姿势识别模型
正式进入实验目录:

cd $WD

查看human_pose_estimation_3d_demo需要的模型列表:

cat /opt/intel/openvino_2021//deployment_tools/inference_engine/demos/human_pose_estimation_3d_demo/python/models.lst

通过模型下载器下载模型:

python3 $OV/deployment_tools/tools/model_downloader/downloader.py --list $OV/deployment_tools/inference_engine/demos/human_pose_estimation_3d_demo/python/models.lst -o $WD

1.6 使用模型转换器把模型转换成IR格式
OpenVINO支持把市面上主流的框架比如TensorFlow/Pytorch->ONNX/CAFFE等框架构建好的模型转换为IR格式:

python3 $OV/deployment_tools/tools/model_downloader/converter.py --list $OV/deployment_tools/inference_engine/demos/human_pose_estimation_3d_demo/python/models.lst

PS:目前OpenVINO的推理引擎只能够推理经过转换完成的IR文件,无法直接推理.pb/.caffemode/.pt等文件。

1.7 编译OpenVINO的Python API
只需要编译一次:

source $OV/inference_engine/demos/build_demos.sh -DENABLE_PYTHON=ON

若你需要使用OpenVINO的PythonAPI,请加入如下编译出来的库地址(否则会找不到库):

export PYTHONPATH="$PYTHONPATH:/home/dc2-user/omz_demos_build/intel64/Release/lib/"

1.8 播放待识别的实验视频
由于网页播放器限制,请手动输入如下命令来播放视频:

show 3d_dancing.mp4

PS:请务必使用键盘逐字母进行输入

播放待识别的实验视频
由于网页播放器限制,请手动输入如下命令来播放视频:

show 3d_dancing.mp4

PS:请务必使用键盘逐字母进行输入

1.9 转换并播放识别结果视频
由于平台限制,我们必须先将输出结果视频转换为MP4格式,使用如下命令:

ffmpeg -i output.avi output.mp4

手动输入如下命令进行推理结果视频播放:

show output.mp4

2 图像着色示例

2.1设置实验路径
初始化OpenVINO
source $OV/bin/setupvars.sh

2.2 初始化OpenVINO
source $OV/bin/setupvars.sh

2.3开始实验
正式进入工作目录:

cd $WD

查看该demo的所需模型:

cat $OV/deployment_tools/inference_engine/demos/colorization_demo/python/models.lst

由于该实验模型较大,模型已经提前下载好了,请继续下一步。

2.4查看原始视频
所有show命令都请手动输入:

show butterfly.mp4

2.5运行着色Demo
python3 $OV/inference_engine/demos/colorization_demo/python/colorization_demo.py -m $WD/public/colorization-siggraph/colorization-siggraph.onnx -i butterfly.mp4 --no_show -o output.avi

PS:细心的同学会发现,这个实验中可以直接使用onnx格式进行实验,这说明推理引擎是支持简单的onnx进行推理(当然你转换为IR也可以)。请耐心等待程序运行完成,你将会看到“Inference Completed”的字样。输出avi将保存于当前文件夹,使用小写“LL”命令查看当前文件夹。

2.6查看着色实验的输出结果视频
请先使用ffmpeg将.avi转换为.mp4格式:

ffmpeg -i output.avi output.mp4

手动输入播放视频的指令:

show output.mp4

PS:若转换完成使用show命令无法显示,请稍后30s再试。

3 音频检测示例

3.1初始化环境
#初始化工作目录

export OV=/opt/intel/openvino_2021/

export WD=~/OV-300/01/Audio-Detection/

#初始OpenVINO

source $OV/bin/setupvars.sh

3.2进入音频检测目录
#进入OpenVINO中自带的音频检测示例:

cd $OV/data_processing/dl_streamer/samples/gst_launch/audio_detect

#你可以查看检测的标签文件

vi ./model_proc/aclnet.json

#你也可以播放待会待检测的音频文件

show how_are_you_doing.mp3

3.3运行音频检测
#运行示例

bash audio_event_detection.sh

3.4分析音频检测结果
#结果并不是很适合观察,你可以运行如下命令

bash audio_event_detection.sh | grep “label”:" |sed ‘s/.*label"//’ | sed ‘s/"label_id.start_timestamp"/’ | sed 's/}].//’

#现在你可以看到在时间戳600000000的时候,我们检测到语音了,但并不知道内容是什么,因为它知识一个检测示例,并不是一个识别示例:“Speech”,600000000

4 公式识别

4.1初始化环境
#初始化环境

export OV=/opt/intel/openvino_2021/

export WD=~/OV-300/01/Formula_recognition/

#初始化OpenVINO

source $OV/bin/setupvars.sh

4.2查看可识别的字符
cd $WD

#手写字符:

vi hand.json

#打印字符:

vi latex.json

4.3查看待识别的公式
#进入材料目录

cd $WD/…/Materials/

#查看打印公式

show Latex-formula.png

#查看手写公式

show Hand-formula.png

4.4运行公式识别
cd $WD

#识别打印公式

python3 $OV/inference_engine/demos/formula_recognition_demo/python/formula_recognition_demo.py -m_encoder $WD/intel/formula-recognition-medium-scan-0001/formula-recognition-medium-scan-0001-im2latex-encoder/FP16/formula-recognition-medium-scan-0001-im2latex-encoder.xml -m_decoder $WD/intel/formula-recognition-medium-scan-0001/formula-recognition-medium-scan-0001-im2latex-decoder/FP16/formula-recognition-medium-scan-0001-im2latex-decoder.xml --vocab_path latex.json -i $WD/…/Materials/Latex-formula.png -no_show

4.5识别手写公式
#识别手写公式

python3 $OV/inference_engine/demos/formula_recognition_demo/python/formula_recognition_demo.py -m_encoder $WD/intel/formula-recognition-polynomials-handwritten-0001/formula-recognition-polynomials-handwritten-0001-encoder/FP16/formula-recognition-polynomials-handwritten-0001-encoder.xml -m_decoder $WD/intel/formula-recognition-polynomials-handwritten-0001/formula-recognition-polynomials-handwritten-0001-decoder/FP16/formula-recognition-polynomials-handwritten-0001-decoder.xml --vocab_path hand.json -i $WD/…/Materials/Hand-formula.png -no_show

#对比原始图片,检查识别是否正确。

5 环境深度识别

5.1初始化环境
#环境目录

export OV=/opt/intel/openvino_2021/

export WD=~/OV-300/01/MonoDepth_Python/

#初始化OpenVINO

source $OV/bin/setupvars.sh

5.2转换原始模型文件为IR文件
进入工作目录

cd $WD

#下载好的模型为TensorFlow格式,使用converter准换为IR格式:

python3 $OV/deployment_tools/tools/model_downloader/converter.py --list $OV/deployment_tools/inference_engine/demos/monodepth_demo/python/models.lst

5.3查看需要被识别的原始图片
#查看原始文件

show tree.jpeg

5.4运行深度识别示例
#进入工作目录

cd $WD

#运行示例,该示例的作用是自动分离图片中景深不同的地方:

python3 $OV/inference_engine/demos/monodepth_demo/python/monodepth_demo.py -m $WD/public/midasnet/FP32/midasnet.xml -i tree.jpeg

#查看显示结果

show disp.png

6 目标识别示例

6.1初始化环境
#定义OpenVINO 目录

export OV=/opt/intel/openvino_2021/

#定义工作目录

export WD=~/OV-300/01/Object_Detection/

#初始化OpenVINO

source $OV/bin/setupvars.sh

#进入工作目录

cd $WD

6.2选择适合你的模型
#由于支持目标检测的模型较多,你可以在不同拓扑网络下选择适合模型:

vi $OV/inference_engine/demos/object_detection_demo/python/models.lst

注:关于SSD, Yolo, centernet, faceboxes or Retina拓扑网络的区别,本课程不会继续深入,有兴趣的同学可以自行上网了解。在OpenVINO中的deployment_tools/inference_engine/demos/的各个demo文件夹中都有model.lst列出了该demo支持的可直接通过downloader下载使用的模型

6.3转换模型至IR格式
#本实验已经事先下完成:pedestrian-and-vehicle-detector-adas 与 yolo-v3-tf

#使用Converter进行IR转换,由于pedestrian-and-vehicle-detector-adas 为英特尔预训练模型,已经转换IR完成,只需要对yolo-v3进行转换:

python3 $OV/deployment_tools/tools/model_downloader/converter.py --name yolo-v3-tf

6.4查看待检测的视频
cd $WD/…/Materials/

#播放视频:

show Road.mp4

6.5使用SSD模型运行目标检测示例
cd $WD

#运行 OMZ (ssd) model

python3 $OV/inference_engine/demos/object_detection_demo/python/object_detection_demo.py -m $WD/intel/pedestrian-and-vehicle-detector-adas-0001/FP16/pedestrian-and-vehicle-detector-adas-0001.xml --architecture_type ssd -i $WD/…/Materials/Road.mp4 --no_show -o $WD/output_ssd.avi

#转换为mp4格式进行播放

ffmpeg -i output_ssd.avi output_ssd.mp4

show output_ssd.mp4

6.5运行Yolo-V3下的目标检测示例
#运行 the Yolo V3 model

python3 $OV/inference_engine/demos/object_detection_demo/python/object_detection_demo.py -m $WD/public/yolo-v3-tf/FP16/yolo-v3-tf.xml -i $WD/…/Materials/Road.mp4 --architecture_type yolo --no_show -o $WD/output_yolo.avi

#转换为mp4格式进行播放

ffmpeg -i output_yolo.avi output_yolo.mp4

show output_yolo.mp4

!请对比两个模型在相同代码下的检测性能

7自然语言处理示例(NLP)——自动回答问题

7.1初始化环境
#定义工作目录

export OV=/opt/intel/openvino_2021/

export WD=~/OV-300/01/NLP-Bert/

#初始化OpenVINO

source $OV/bin/setupvars.sh

#进入目录

cd $WD

7.2查看支持的模型列表
#可用列表:

cat $OV/deployment_tools/inference_engine/demos/bert_question_answering_demo/python/models.lst

注:在OpenVINO中的deployment_tools/inference_engine/demos/的各个demo文件夹中都有model.lst列出了该demo支持的可直接通过downloader下载使用的模型,且我们已经事先下载好全部模型为IR格式。

7.3打开待识别的网址
#使用浏览器打开一个英文网址进行浏览,例如Intel官网:https://www.intel.com/content/www/us/en/homepage.html

7.4运行NLP示例
python3 $OV/inference_engine/demos/bert_question_answering_demo/python/bert_question_answering_demo.py -m $WD/intel/bert-small-uncased-whole-word-masking-squad-0001/FP16/bert-small-uncased-whole-word-masking-squad-0001.xml -v $OV/deployment_tools/open_model_zoo/models/intel/bert-small-uncased-whole-word-masking-squad-0001/vocab.txt --input=https://www.intel.com/content/www/us/en/homepage.html --input_names=input_ids,attention_mask,token_type_ids --output_names=output_s,output_e

#在Type question (empty string to exit): 输入core。即可查看当前对于core(酷睿)的可知信息,例如: Intel® Core™ processors provide a range of performance from entry-level to the highest level 。当然你也可以输入别的问题。对比网站上的相关描述

注:–input=https://www.intel.com/content/www/us/en/homepage.html 为我们需要访问的英文网站

7.5挑战任务
#在上一个步骤的实验基础上,尝试使用不同的网址作为–input 的输入,并尝试提出一些别的关键词问题。并思考如何能够提升这个示例的准确性。

#在上一个步骤的实验基础上,尝试使用不同的模型作为-m/-v 的输入(模型位于$WD/INTEL/目录下),并尝试提出一些别的关键词问题。并思考如何能够提升这个示例的准确性。

注:该示例只支持英文网站,且该网站可正常访问。

你可能感兴趣的:(OPEN,VINO,神经网络,机器视觉,机器学习,数据分析,深度学习)