YOLOV5 自动瞄准(OpenVino)(附源码)

参考文章:基于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量化的对帧率提升用处不大

注:本源码没有加入自动瞄准的部分,但是已经放入了函数,有需要可以自行开启

YOLO/Auto_Aiming_OV_async.py at main · RedWhiteLuo/YOLO (github.com)

猜你喜欢

转载自blog.csdn.net/m0_74333893/article/details/129619707