用opencv的dnn模块调onnx模型文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用opencv的dnn模块调onnx模型文件相关的知识,希望对你有一定的参考价值。
参考技术A 1.onnx(Open Neural Network Exchange)是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型。用于在各种深度学习训练和推理框架转换的一个中间表示格式。
它定义了一组和环境,平台均无关的标准格式,来增强各种AI模型的可交互性,开放性较强。
2.在对推理速度要求不高的情况下,使用opencv自带的dnn模块可快速部署应用和解决方案,
且能做到轻量化部署,减少对第三方平台的依赖。
它包含两个预处理函数(blobFromImage、blobFromImages),为通过预训练深度学习模型进行分类,做好准备。
这两个函数执行减均值、缩放和通道交换(可选),但是并不是所有的深度学习架构执行减均值和缩放,
在预处理你的图像之前,一定要读你所使用网络的相关文献。
cv2.dnn.blobFromImage函数返回的blob是我们输入图像进行随意从中心裁剪,减均值、缩放和通道交换的结果。
cv2.dnn.blobFromImages和cv2.dnn.blobFromImage不同在于,前者接受多张图像,后者接受一张图像。
多张图像使用cv2.dnn.blobFromImages有更少的函数调用开销,能够更快批处理图像或帧。
以上是关于用opencv的dnn模块调onnx模型文件的主要内容,如果未能解决你的问题,请参考以下文章
Pytorch的pth模型转onnx,再用ONNX Runtime调用推理(附python代码)
如何从 .pb 文件为 opencv 中的 dnn 模块生成 .pbtxt 文件?
OpenCV的dnn模块调用TesorFlow训练的MoblieNet模型