-
模型获取(Model):寻找合适的深度学习模型执行相应的任务
-
使用OpenVINO提供的模型下载器进行下载
? python downloader.py --name model_name --output path
-
从零开始训练模型,在制作数据集时可采用CVAT进行标注
-
从Model Zoo中下载预训练模型,这些模型均针对推理进行了优化,也可通过个人数据集进行重新训练,模型精度有FP32、FP16、INT8三种
-
推理前准备(Prepare Inference):模型通常是在云环境中训练,采用的是浮点格式,可支持模型格式转换。
- 模型优化器可将各种框架中训练的模型转化成中间表示IR文件,以Caffe模型为例,执行命令
mo_caffe.py --input_model path --output_dir path
,即可将转化后的IR文件输出到指定路径,供推理引擎进行推理。 - IR文件为OpenVINO的中间层表示,由一个包含网络拓扑信息的xml文件和一个包含权重和偏差二进制数据的bin文件组成。
-
性能指标评测(Benchmark):在多平台使用多项优化技术和多种数据格式进行性能指标评测,最终选择符合要求的
-
在准备好用于推理的模型后,Intel提供了用于基准性能测试的试用程序,在输入IR模型后,会输出该模型的各项参数数据。
./benchmark_app -m /model_name.xml
-
DEV Cloud包括多种可用于对工作负载进行性能测试的硬件系统,可免费注册进行测试
-
若要对网络进行深层调试,OpenVINO API中内置了性能计算器,可对网络的每一层数据进行查找
-
WorkBench是为深度学习模型的性能分析与调试提供可视化的web应用,DL WorkBench在生成模型性能报告时可以实现:
-
选择系统(Select System):这是整个流程中最关键的一步,需要选取合适的系统进行任务,尽量选择异构的系统对推理进行支持,如将CPU、GPU、FPGA以及VPU等进行组合。
-
编解码密度(Decode Density):采用Media-SDK进行编解码并处理图像,同时了解设备的编解码能力,选取合适的设备进行支持。AI应用系统通过支持尽可能多的摄像头与视频流,来降低系统的整体成本
-
模拟工作负载(Full Pipeline):为了最大限度发挥系统性能,常采用GStreamer插件模拟整个流程的工作负载,获得相应的模拟结果以选择合适工作环境,以下图为例,其具体流程为:
加载视频→解码→转换解视频输出格式→加载加载脸部检测模型进行检测→加载情绪识别模型进行识别
-
构建AI应用(AI Application):在确认所选系统可胜任工作后,构建软件或采用OpenVINO将视频分析处理流程和推理整合到现有应用中。需要注意的是,在实际AI系统中,解码、编码以及推理工作常常一起进行。