小Cの已经记不起来的博客

如何导出Frigate可用的yolo-NAS.onnx 顺带提供已导出的onnx文件下载

Frigate升级过后,发现启动不了了,结果看了一眼更新文档,发现从0.16开始,官方文档明确表示 针对 Nvidia GPU,TensorRT 检测器已被移除,请改用 ONNX 检测器。 然后就开始去下载这个onnx文件,结果发现这玩意儿是真的难搞啊,得自己用代码导出,为什么官方不直接提供一个下载地址呢?可能是我瞎没找到吧...

下面是实测可用的导出方式,需要借助docker,不然你就慢慢配置环境吧.

首先把这个docker镜像拉下来 docker pull docker.1ms.run/deciai/super-gradients:3.7.0-runtime, 我这里配了加速域名, 不需要的或者拉的时候报错了,可以把 docker.1ms.run/ 删除,没准儿你用的时候这个加速域名已经不可用了

然后使用 docker run -it --rm -v ~/:/home docker.1ms.run/deciai/super-gradients:3.7.0-runtime /bin/bash 启动并进入这个docker, 由于使用了 --rm, 所以当你退出这个docker过后会自动删除容器

进入容器过后,直接 cd /home 到刚刚映射的目录, 然后执行下面两行命令,替换等下回用到的下载url,不替换会直接提示无法解析域名

sed -i 's/sghub.deci.ai/sg-hub-nv.s3.amazonaws.com/' /usr/local/lib/python3.8/dist-packages/super_gradients/training/pretrained_models.py

sed -i 's/sghub.deci.ai/sg-hub-nv.s3.amazonaws.com/' /usr/local/lib/python3.8/dist-packages/super_gradients/training/utils/checkpoint_utils.py

然后直接运行 python, 输入下面的内容

from super_gradients.common.object_names import Models
from super_gradients.conversion import DetectionOutputFormatMode
from super_gradients.training import models
model = models.get(Models.YOLO_NAS_S, pretrained_weights="coco")
model.export("yolo_nas_s.onnx", output_predictions_format=DetectionOutputFormatMode.FLAT_FORMAT, max_predictions_per_image=20, num_pre_nms_predictions=300, confidence_threshold=0.4, input_image_shape=(320,320), opset_version=11)

不出问题的话就没有问题了, ctrl+c 退出python, 当前目录下就有yolo_nas_s.onnx文件了,再退出docker,到当前用户目录下,应该就能看到 yolo_nas_s.onnx 这个文件了,最后只需要把这个文件复制到Frigate映射的 /config 目录下即可。

对应需要替换的 Frigate 配置文件

detectors:
  onnx:
    type: onnx

model:
  model_type: yolonas
  width: 320 # <--- should match whatever was set in notebook
  height: 320 # <--- should match whatever was set in notebook
  input_pixel_format: bgr
  input_tensor: nchw
  path: /config/yolo_nas_s.onnx
  labelmap_path: /labelmap/coco-80.txt

最后再直接提供一个我能够正常使用的 yolo_nas_s.onnx 文件供大家使用。

通过网盘分享的文件:yolo_nas_s.onnx

链接: https://pan.baidu.com/s/1iseDHpZYTePyHX2Av13LlA?pwd=8dti 提取码: 8dti

评论

还没有评论。

发表评论

提交后评论将经过自动审核,审核通过后公开展示。

未在播放