参考文章:基于OpenVINOTM2022.2和蝰蛇峡谷优化并部署YOLOv5模型_openvino
前篇文章:基于YOLOV5的自动瞄准(附代码)_yolov5 自瞄_RedWhiteLuo的博客
之前已经通过Pytroch 调用 NVIDIA GPU 进行推理,但是在实际使用中,独显肯定是最好空闲出来的, 因此我们可以利用闲置的硬件——核显, 我是手上的设备的配置是 12700h 3060Laptop 的笔记本。
因此,我们可以用过INTEL 推出的Openvino 工具,将推理的设备设置为核显,让独显空闲出来。
利用推理的流程在之前的帖子里已经谈及过,这里就不多赘述。这里主要记录一下遇到的问题,希望各位够帮我优化代码逻辑,相互交流
值得一提的是,通过openvino官方的benchmark中的测试数据可以得出,其异步推理速度近90fps
并且openvino 有官方的 异步推理的api(multiprocessing)
先说结论: numpy 转 Tensor 的耗时太长,导致帧率只有60fps不到,但是能够放空独显
OpenVino 环境部署:
Download Intel® Distribution of OpenVINO™ Toolkit
pip install openvino-dev==2022.3.0
YOLOV5 模型转换:
python export.py --weights yolov5s.pt --include onnx [将yolov5s.pt 转换为 onnx 格式]
mo --input_model yolov5s.onnx --data_type FP16 [将 onnx 格式文件转换为 xml 和 bin 格式]
OpenVino 性能测试:
benchmark_app -m yolov5s.xml -d AUTO:-CPU -hint cumulative_throughput
benchmark_app -m yolov5s.xml -d AUTO:-CPU -api sync
benchmark_app -m yolov5s.xml -d AUTO:-CPU -api async
运行流程(12700H):
前处理:【win32api 获取图片 5.5ms】,【图片维度转换+ 图片缩放 = 2ms】
【numpy 2 tensor = 9.5ms】合计 17ms
推理: 将数据送进神经网络到输出大概需要 11ms
后处理: 即将神经网络输出的内容进行转换,数据标注等,大概需要4ms
因此,一个完整流程需要32ms,但是通过提供的异步推理接口能压缩到20ms左右
实际上,openvino 推理过程还可以通过pot工具进行int8量化,但是这种np2tensor的耗时太长,int8量化的对帧率提升用处不大
注:本源码没有加入自动瞄准的部分,但是已经放入了函数,有需要可以自行开启文章来源:https://www.toymoban.com/news/detail-480512.html
YOLO/Auto_Aiming_OV_async.py at main · RedWhiteLuo/YOLO (github.com)文章来源地址https://www.toymoban.com/news/detail-480512.html
到了这里,关于YOLOV5 自动瞄准(OpenVino)(附源码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!