1693| 0
|
[平台测评] 当OpenVINO遇上速8 |
一、OpenVINO简介 OpenVINO工具套件是英特尔于2018年发布的,开源、商用免费、主要应用于计算机视觉、实现神经网络模型优化和推理计算加速软件工具套件。OpenVINO工具套件主要包括用于优化神经网络模型的工具Model Optimizer(模型优化器)和用于加速推理计算的软件包Inference Engine(推理引擎)。 模型训练完毕后,可以导出模型文件(如*.pb文件),使用OpenVINO工具套件中的Model Optimizer工具优化模型,获得模型的中间表示(IR),中间表示包括两个文件,一个是描述神经网络拓扑结构的xml文件,另一个是存储模型权重参数的bin文件。得到IR文件后,可以在用户应用程序中调用Inference Engine来完成推理计算,Inference Engine是一组C++/C/Python API函数,完成初始化AI推理计算硬件,组装模型及执行推理计算,并返回推理计算结果。 二、Model Optimizer 模型优化器 Model Optimizer是一个跨平台的命令行深度神经网络模型优化工具,可以将多种流行的深度学习框架(如Caffe、MXNet、TensorFlow、ONNX等)模型转换为统一的能够被Inference Engine读取、加载、并执行推理计算的中间表达(Intermediate Representaion)-IR文件。 Model Optimizer在转换深度学习模型的时候,主要做三件事情: 1、将深度学习框架格式的模型转换为IR格式模型。 2、优化模型,提升计算速度。 3、转换模型的精度到FP32、FP16、INT8。 三、Inference Engine 推理计算 Inference Engine是OpenVINO工具套件的推理引擎,让开发者方便读入IR文件、设置模型的输入输出、读入数据、在指定的AI计算硬件上执行推理计算并获得结果。 四、Python实现OpenVINO推理计算 这里分享如何通过OpenVINO官网提供demo——行人与车辆检测模型。 先看效果,视频为《速度与***8》中开场托雷托赛车的场景。在视频中可以看出,经过OpenVINO推理计算后的行人与车辆检测模型FPS平均可以达到50左右,并且在不损失精度的条件下,分别用蓝色框和绿色框检测出了视频中的车辆和行人。 1、查看硬件列表 安装配置好环境后,导入OpenCV、openvino.inference_engine模块,使用ie.availabel_device属性可以查看当前硬件列表。 2、推理计算过程 (1)初始化 [mw_shl_code=python,false]ie = IECore()[/mw_shl_code] (2)读取IR文件 [mw_shl_code=python,false]net = IENetwork(model=model_xml, weights=model_bin)[/mw_shl_code] (3)准备输入输出张量 [mw_shl_code=python,false] for blob_name in net.inputs: (4)载入模型 [mw_shl_code=python,false]exec_net = ie.load_network(network=net, num_requests=2, device_name=args.device)[/mw_shl_code] (5)执行推理计算 [mw_shl_code=python,false]exec_net.infer(inputs=feed_dict)[/mw_shl_code] 3、异步模式 在行人与车辆检测模型中,为了提高前向推理的速度,代码中采用了异步模式提高推理计算的性能。在模型执行第一帧的推理计算后,无需等待推理计算结束,直接读取下一帧,检查上一帧推理计算是否完毕,若完毕,处理输出结果。这样并行执行了上一帧和下一帧的图像采集和前向计算,减少了等待时间,提高了硬件利用率,也提高了吞吐量。exec_net.start_async为对应异步处理函数。 [mw_shl_code=python,false]cur_request_id = 0 附官网提供代码(有部分输出调整): |
object_detection_demo_ssd_async.py
10.73 KB, 下载次数: 1596
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed