树莓派3上安装使用NCS2之三:自己模型成功转换并识别

书接上回https://blog.csdn.net/weixin_44345862/article/details/99960398树莓派3上安装使用NCS2之二:intel OPENVINO转化tensorflow模型,一句话死活过不去,惹不起我还躲不起啊,这么垃圾的官网教程,我在自己的干净的windows10系统上装了openVINO专门用于tensorflow模型转神经计算棒NCS2能识别的bin和xml文件对儿。最简单的安装就是在win10上了,官网安装指导连接:https://docs.openvinotoolkit.org/2019_R1/_docs_install_guides_installing_openvino_windows.html 简单说几句:
下载的w_openvino_toolkit_p_2019.1.087版本,为了跟树莓派上的版本差不多但又不超过他,以确保这里转化的模型能在树莓派上运行啊!
Visual Studio 2017 Community版本(注册后永久免费,官网的只有2019版本了,找这个费了一些功夫)
cmake-3.14.6-win64-x64
python-3.6.5-amd64
一路很顺畅,唯一令我担忧的是运行install_prerequisites.bat的时候,它装了所有的平台依赖,并且过程中看到安得tensorflow是1.14.0,可我的树莓派上装的是tensorflow1.13.1,一顿各种下载安装条滚完之后,最后竟然还出了红色的错误部分,不知道是哪个平台的依赖出了问题,所以其实不如运行option2因我只在乎tensorflow, 单独的配置语句为:install_prerequisites_tf.bat,于是又跑了一遍这句单独安装tensorflow,
树莓派3上安装使用NCS2之三:自己模型成功转换并识别_第1张图片同样出了前面的红色错误提示,
树莓派3上安装使用NCS2之三:自己模型成功转换并识别_第2张图片
看来问题出现在tensorflow这里,干脆正好我想装1.13.1,于是就自己pip安装tensorflow1.13.1,语句为:
pip3 install tensorflow==1.13.1
树莓派3上安装使用NCS2之三:自己模型成功转换并识别_第3张图片
安装结尾样的:
树莓派3上安装使用NCS2之三:自己模型成功转换并识别_第4张图片
然后开始转化模型,东西不能放在c盘,因创建文件有管理员权限要求,所以在d盘新建文件夹mytest,操作在此目录下进行。
首先是参考别人的输入:python “C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\model_optimizer\mo_tf.py” --input_model frozen_inference_graph.pb --output_dir uban --data_type FP16 --batch 1
树莓派3上安装使用NCS2之三:自己模型成功转换并识别_第5张图片
最后是错误
树莓派3上安装使用NCS2之三:自己模型成功转换并识别_第6张图片 加入shap,语句如下:python “C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\model_optimizer\mo_tf.py” --input_model frozen_inference_graph_demo.pb --input_shape [1,224,224,3] --output_dir demo --data_type FP16
还是错误:
树莓派3上安装使用NCS2之三:自己模型成功转换并识别_第7张图片
最后参考官网的输入指令模式https://docs.openvinotoolkit.org/2019_R1/_docs_MO_DG_prepare_model_convert_model_tf_specific_Convert_Object_Detection_API_Models.html 得到了正确结果。输入:
python “C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\model_optimizer\mo_tf.py” --input_model frozen_inference_graph.pb --tensorflow_use_custom_operations_config ssd_v2_support.json --tensorflow_object_detection_api_pipeline_config pipeline.config --data_type FP16 --reverse_input_channels

树莓派3上安装使用NCS2之三:自己模型成功转换并识别_第8张图片
后面是
树莓派3上安装使用NCS2之三:自己模型成功转换并识别_第9张图片
成功后,在mytest文件夹多了三个文件:frozen_inference_graph.bin,frozen_inference_graph.xml和frozen_inference_graph.mapping,只需要把frozen_inference_graph.bin,frozen_inference_graph.xml两个放到树莓派就可以了。其它三个文件是运行转化语句前需要准备好的。
树莓派3上安装使用NCS2之三:自己模型成功转换并识别_第10张图片
需要的三个文件:frozen_inference_graph.pb,pipeline.config和ssd_v2_support.json,不用指出输出路径和文件名,自动输出到mytest文件夹里。frozen_inference_graph.pb是我训练的固化好的模型,pipeline.config是我训练时自动生成的,我打开看了一下,跟训练需要使用的config文件是一样的,如下:
树莓派3上安装使用NCS2之三:自己模型成功转换并识别_第11张图片

ssd_v2_support.json是从openvino安装目录下拷贝过来的,C:\Program Files (x86)\IntelSWTools\openvino_2019.1.087\deployment_tools\model_optimizer\extensions\front\tf文件夹下:
树莓派3上安装使用NCS2之三:自己模型成功转换并识别_第12张图片
官网说ssd_v2_support.json — for frozen SSD topologies from the models zoo,虽然我的模型训练用的是ssd_mobilenet_v1_coco_2017_11_17可官网都这么说了,那我就省点事,直接用吧,可能上面的那个ssd_support.json更好,但谁让我这个成功了呢,留给后来人验证吧。
把frozen_inference_graph.bin,frozen_inference_graph.xml两个放到树莓派与之一同样的路径和代码,输入:
./armv7l/Release/object_detection_sample_ssd -m frozen_inference_graph.xml -d MYRIAD -i /home/pi/Downloads/build/example.jpg
树莓派3上安装使用NCS2之三:自己模型成功转换并识别_第13张图片
使用同样的图片(上次是人脸,这次是我手中的目标物,识别到人脸是不可能的,除非造假,因训练模型的时候,config中我设置的识别类为1),看到我手中的粉色方框了吧,那就是我的目标物。识别出来了!哈哈哈哈。

树莓派3上安装使用NCS2之三:自己模型成功转换并识别_第14张图片
过程和性能如下:
树莓派3上安装使用NCS2之三:自己模型成功转换并识别_第15张图片
树莓派3上安装使用NCS2之三:自己模型成功转换并识别_第16张图片
接近21帧每秒的速度,太惊人了。没用此棒之前是延迟5-10s,是不是此棒性能输出造假?我还需要下一步自己写摄像头程序,实测一下!
用opencv测试图片的代码如下(摄像头的见之四https://blog.csdn.net/weixin_44345862/article/details/100035834):
树莓派3上安装使用NCS2之三:自己模型成功转换并识别_第17张图片
—经过自己写python程序,调用摄像头实测,可以实现实时跟随,毫无卡顿,太厉害了!哈哈,打假失败,原来是真的!

你可能感兴趣的:(树莓派)