ubuntu openVINO安装&配置

ubuntu openVINO安装&配置

    • 安装ubuntu16.04版openVINO
    • 注意的点:
    • 模型转换指令
    • 模型转换成功后,vpu不能使用转换后的模型
    • 验证
    • 编译

安装ubuntu16.04版openVINO

参考官网安装教程:
https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_linux.html#install-openvino

注意的点:

1 配置tensorflow等模型优化器的时候,官网使用的是sudo pip命令安装依赖包,但是由于我们有虚拟环境,所以我需要在虚拟环境中安装
首先,激活虚拟环境
然后,由于我的虚拟环境存在tensorflow和numpy,所以不需要安装这两个,
制作去掉这两个安装包的requirements_tf_tzlmodify.txt,然后使用pip install -r 进行安装。
2 修改/opt/intel/的权限为tongzhlin
sudo chown -R tongzhilin:tongzhilin /opt/intel
sudo chown -R tongzhilin:tongzhilin ~/intel
3 执行Demo文件夹下的脚本的时候,报错找不到‘yaml’
由于我们使用的是virtualenv虚拟环境,所以正确的安装是:
激活虚拟环境后
pip install PyYAML
4 demo/下的两个脚本,不用sudo执行也可以成功,如果需要打开图片,则需要sudo执行。
5
demo_squeezenet_download_convert_run.sh:脚本会自动下载和安装依赖包,并且下载测试Caffe模型将其转成OpenVINO的xml/bin文件,测试图片是一张轿车照片。

依赖包安装在:~/inference_engine_samples_build
源码在:/opt/intel/openvino/deployment_tools/inference_engine/samples
Caffe模型下载到 ~/openvino_models
demo_security_barrier_camera.sh:物体识别,车牌识别.同上面的命令也会自动下载安装依赖包,自动下载openvino的模型
6 linux下识别VPU需要更新usb驱动规则
source /opt/intel/openvino/bin/setupvars.sh
cd /opt/intel/openvino/install_dependencies
./install_NCS_udev_rules.sh

模型转换指令

参考官网:
https://docs.openvinotoolkit.org/latest/_docs_MO_DG_prepare_model_convert_model_tf_specific_Convert_FaceNet_From_Tensorflow.html

通过meta转换,这个命令总是转换失败,还没有解决
./mo_tf.py --input_meta_graph ~/facenet/models/20180402-114759/model-20180402-114759.meta --output_dir ~/openvino_models/ --freeze_placeholder_with_value “phase_train->False” --reverse_input_channels
通过pb文件转换
facenet提供了模型转换工具,把checkpoint模型转换成pb模型
python src/freeze_graph.py ./models_cslead/20190528-141841/ ./models_cslead/20190528-141841/20190528-141841.pb
pb转换:
./mo_tf.py --input_model ~/facenet/models_cslead/20190528-141841/20190528-141841.pb --output_dir ~/openvino_models/facenet/20190528-141841/ --freeze_placeholder_with_value “phase_train->False” --reverse_input_channels
参数:
–input_shape “[1,160,160,3]”
–data_type=FP16 #vpu支持的浮点格式

模型转换成功后,vpu不能使用转换后的模型

1 我们的facenet模型,是通过Inception Resnet v1网络训练,而Movidius Neural compute stick 2支持Inception Resnet v2网络不支持v1网络,1代计算棒支持v1和v2网络。同时,需要注意的是,虽然1代计算棒支持V1网络,但是,openVINO不支持v1网络,所以,要想使用v1网络训练的facenet,只能通过ncsdk。经过验证,ncsdk支持Inception Resnet v1,但是v2网络我没有验证。
问题详见帖子:https://software.intel.com/zh-cn/node/802451

这种说法被验证是错误的,正确见2
2 在openVINO环境下,很长一段时间我转换的facenet模型在第一代和第二代计算棒上的返回结果都是1和-1,不能使用,非常苦恼,我以为是1所描述的问题,但是并不是,openVINO完美支持Inception Resnet v1和Inception Resnet v2,而且计算棒1代和计算棒2代也完美支持Inception Resnet v1和Inception Resnet v2网络,最终的解决方法是:
(1)cpp文件的FP32改成FP16
(2)由于cpp没有float16精度,所以需要我们自定义这个精度,预白化后的图像,转换成float16精度,传给计算棒。
(3)同理,输出结果也要由float16精度转换成float32精度
(4)满足以上条件后,你会发现,结果依然是1,-1…,这就要修改最为关键的一步,打开转换后的模型,找到最后的“Normalize”项,across_spatial=“0” 改成 across_spatial=“1”,这就OK拉,兴奋。

验证

cd /home/tongzhilin/inference_engine_samples_build/intel64/Release

cpu
./classification_sample -i ~/facenet/data/lfw_data/lfw_160/Rose_Linkins/Rose_Linkins_0001.png ~/facenet/data/lfw_data/lfw_160/Rose_Marie/Rose_Marie_0001.png -m ~/openvino_models/facenet/20190528-141841/20190528-141841.xml

./classification_sample -i ~/facenet/data/lfw_data/lfw_160/Alberto_Fujimori/ -m ~/openvino_models/facenet/20190528-141841/20190528-141841.xml

vpu
./classification_sample -i ~/facenet/data/lfw_data/lfw_160/Rose_Linkins/Rose_Linkins_0001.png ~/facenet/data/lfw_data/lfw_160/Rose_Marie/Rose_Marie_0001.png -m ~/openvino_models/facenet_fp16/20190528-141841/20190528-141841.xml -d MYRIAD

./classification_sample -i ~/facenet/data/lfw_data/lfw_160/Rose_Linkins/ -m ~/openvino_models/facenet_fp16/20190528-141841/20190528-141841.xml -d MYRIAD

python 指令
python classification_sample.py -i ~/facenet/data/lfw_data/lfw_160/Rose_Linkins/Rose_Linkins_0001.png ~/facenet/data/lfw_data/lfw_160/Rose_Marie/Rose_Marie_0001.png -m ~/openvino_models/facenet_fp16/20190528-141841/20190528-141841.xml -d MYRIAD

python classification_sample.py -i ~/facenet/data/lfw_data/lfw_160/Rose_Linkins/Rose_Linkins_0001.png ~/facenet/data/lfw_data/lfw_160/Rose_Marie/Rose_Marie_0001.png -m ~/openvino_models/facenet/20190528-141841/20190528-141841.xml

编译

cd /home/tongzhilin/inference_engine_samples_build/classification_sample

cp ~/inference_engine/samples/classification_sample/main.cpp /opt/intel/openvino/inference_engine/samples/classification_sample/

你可能感兴趣的:(深度学习)