yolov3使用openvino模型优化及推理加速流程

openvino官网写的比较详细,比较建议看官网学习


# 成功运行的环境 #
python3.5
tensorflow1.12


1.将yolov3模型从darknet转化成tensorflow模型

    git clone https://github.com/mystic123/tensorflow-yolo-v3.git

    cd tensorflow-yolo-v3

    下载coco.names文件以及YOLOv3模型(yolov3.weights)  或者  使用适合您任务的标签和模型

    #  运行转换器
    python3 convert_weights_pb.py --class_names coco.names --data_format NHWC --weights_file yolov3.weights
    #  这时候可以看到项目文件夹下有一个pb文件

    #  --output_graph可以指定输出pb文件的名称
    #  python3 convert_weights_pb.py --class_names coco.names --data_format NHWC --weights_file yolov3.weights  --output_graph yolov3.pb

    #  --size可以指定图像的大小(默认为416)
    #  python3 convert_weights_pb.py --class_names coco.names --data_format NHWC --weights_file yolov3_608.weights --size 608

 

2.将YOLOv3 TensorFlow模型转换为IR

    cd /opt/intel/openvino_2019.1.094/deployment_tools/model_optimizer/extensions/front/tf

    vim yolo_v3.json   #修改classes为你类别的数量并保存

    cd /opt/intel/openvino_2019.1.094/deployment_tools/model_optimizer/

    python3 mo_tf.py  --input_model /path/to/yolo_v3.pb  --tensorflow_use_custom_operations_config ./extensions/front/tf/yolo_v3.json  --batch 1
    #此时可以看到当前目录生成的xml和bin文件

yolov3使用openvino模型优化及推理加速流程_第1张图片

ls 查看当前目录文件

3.使用openvino推理加速

官方运行yolov3的demo在这里

yolov3使用openvino模型优化及推理加速流程_第2张图片

在文件的目录里输入命令

python3.5 object_detection_demo_yolov3_async.py -m pf/yolov3.xml -i cam -l /opt/intel/openvino_2019.1.094/inference_engine/lib/intel64/libcpu_extension_avx2.so

即可成功运行

注意:-i cam 是打开摄像头

4.openvino推理问题记录

问题1:


[ ERROR ] Error reading network: in Layer detector/darknet-53/Conv_1/Conv2D: trying to connect an edge to non existing output port: 2.1
是由于tensorflow版本造成的,tensorflow版本应该<=1.12

此时直接运行推理还是报同样的错误,应该在yolov3模型转化成pb这一部重新开始。

 

(ps:还有一些踩到的坑未记录)

 

你可能感兴趣的:(openvino,python,yolov3)