我训练完自己的口罩检测模型,得到了一个best.pt文件,在detect.py里运行无误后,尝试把模型导出。
yolov5官方代码的训练出来模型的权重是保存在best.pt文件里的。这个.pt后缀的模型文件并不常规,如果想要脱离训练环境部署模型,需要对原始的.pt文件进行导出操作,这里我把模型导出为onnx文件,想要用opencv的dnn模块读取该onnx模型文件进行推理,这样操作之后,整个检测过程就只需要import cv2这一个第三方库了。
yolov5官方代码已经提供了export.py函数,修改一下运行参数就支持导出为onnx。
进入这个网站Netron 查看一下网络结构。
在里面选择自己的best.pt,这里以我的口罩检测模型为例,看到网络结构如下
查看.pt文件时,每一层网络并未做展开,看着很难受。
下面执行export.py将自己的模型文件导出为onnx文件。
吹爆这位大佬的博客: