使用OpenVINO运行YOLO V3模型

OpenVINO是Intel推出的一套基于Intel芯片平台的推理框架,主要包括Model optimizer和Inference Engine两部分组成,其中Model Optimizer是用于模型转换和优化的工具,即从主流的训练框架训练转成OpenVINO模型,而Inference Engine则是将已经转换好的模型进行部署运行。
Yolo是一个非常棒的目标检测模型,相信搞过CNN网络的同学都研究过这个网络,它的最新版本是V3版本,检测效果非常好。今天,我们就以Yolo V3模型使用OpenVINO工具进行推理测试。

  • 第一步: 从Darknet模型转换成Tensorflow模型

这里我们参考了这个开源项目:https://github.com/mystic123/tensorflow-yolo-v3
里面包含了模型下载和转换的命令:

$git clone https://github.com/mystic123/tensorflow-yolo-v3.git
$cd tensorflow-yolo-v3
$wget https://pjreddie.com/media/files/yolov3.weights
$wget https://raw.githubusercontent.com/pjreddie/darknet/master/data/coco.names
$python3 ./convert_weights_pb.py --data_format NHWC

执行完成后,在当前目录下就会产生一个“frozen_darknet_yolov3_model.pb”文件,这个就是对应的YOLO V3的Tensorflow模型。

  • 第二步:使用MO工具将Tensorflow模型转换成OpenVINO模型

$/opt/intel/openvino/deployment_tools/model_optimizer/mo.py --input_model ./frozen_darknet_yolov3_model.pb -b 1 --tensorflow_use_custom_operations_config /opt/intel/openvino/deployment_tools/model_optimizer/extensions/front/tf/yolo_v3.json

执行完成后,在当前目录下就会产生两个OpenVINO模型对应的文件:

hank@hank-desktop:~/tensorflow-yolo-v3$ ls -lh frozen_darknet_yolov3_model.*
-rw-rw-r-- 1 hank hank 237M 8月   4 20:57 frozen_darknet_yolov3_model.bin
-rw-rw-r-- 1 hank hank 102K 8月   4 20:57 frozen_darknet_yolov3_model.xml
  • 第三步:测试OpenVINO模型

OpenVINO Toolkit中包含了一个执行yolov3的测试命令:

hank@hank-desktop:~/tensorflow-yolo-v3$ python3 /home/hank/open_model_zoo/demos/python_demos/object_detection_demo_yolov3_async/object_detection_demo_yolov3_async.py --labels ./coco.names -i /home/hank/sample-videos/head-pose-face-detection-male.mp4 -m frozen_darknet_yolov3_model.xml -d CPU --cpu_extension /opt/intel/openvino/deployment_tools/inference_engine/lib/intel64/libcpu_extension_sse4.so

测试的视频效果图如下:


使用OpenVINO运行YOLO V3模型_第1张图片
微信图片编辑_20190804214141.jpg

你可能感兴趣的:(使用OpenVINO运行YOLO V3模型)