OpenVINO是Intel推出的一套基于Intel芯片平臺(tái)的推理框架旁涤,主要包括Model optimizer和Inference Engine兩部分組成四敞,其中Model Optimizer是用于模型轉(zhuǎn)換和優(yōu)化的工具挺物,即從主流的訓(xùn)練框架訓(xùn)練轉(zhuǎn)成OpenVINO模型裹匙,而Inference Engine則是將已經(jīng)轉(zhuǎn)換好的模型進(jìn)行部署運(yùn)行锚国。
Yolo是一個(gè)非常棒的目標(biāo)檢測(cè)模型托享,相信搞過CNN網(wǎng)絡(luò)的同學(xué)都研究過這個(gè)網(wǎng)絡(luò),它的最新版本是V3版本顶瞒,檢測(cè)效果非常好夸政。今天,我們就以Yolo V3模型使用OpenVINO工具進(jìn)行推理測(cè)試榴徐。
-
第一步: 從Darknet模型轉(zhuǎn)換成Tensorflow模型
這里我們參考了這個(gè)開源項(xiàng)目:https://github.com/mystic123/tensorflow-yolo-v3
里面包含了模型下載和轉(zhuǎn)換的命令:
$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
執(zhí)行完成后守问,在當(dāng)前目錄下就會(huì)產(chǎn)生一個(gè)“frozen_darknet_yolov3_model.pb”文件匀归,這個(gè)就是對(duì)應(yīng)的YOLO V3的Tensorflow模型。
-
第二步:使用MO工具將Tensorflow模型轉(zhuǎn)換成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
執(zhí)行完成后耗帕,在當(dāng)前目錄下就會(huì)產(chǎn)生兩個(gè)OpenVINO模型對(duì)應(yīng)的文件:
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
-
第三步:測(cè)試OpenVINO模型
OpenVINO Toolkit中包含了一個(gè)執(zhí)行yolov3的測(cè)試命令:
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
測(cè)試的視頻效果圖如下: