Skip to content

Instantly share code, notes, and snippets.

@gavrilov
Last active November 4, 2024 20:19
Show Gist options
  • Save gavrilov/27485dd397833b95630776dbe7100739 to your computer and use it in GitHub Desktop.
Save gavrilov/27485dd397833b95630776dbe7100739 to your computer and use it in GitHub Desktop.
Convert YOLONAS ONNX model to OpenVino for Frigate 0.14+

After updating frigate to version 0.14, the previous model yolov8 stopped working. Because the author removed its support. This script will allow you to create a new YOLO NAS model for OpenVino

https://github.com/blakeblackshear/frigate/releases/tag/v0.14.0

Other breaking changes
OpenVINO has been upgraded, and Intel Neural Compute sticks are no longer supported. Support for YOLO-NAS models has been added. Additionally, AUTO mode now maps to GPU internally to avoid some unresolved issues with AUTO. The existing YOLO-X model will not work in this version.

YOLO_NAS_OpenVino - for https://colab.research.google.com/
config - example of Frigate config

person
bicycle
car
motorcycle
airplane
bus
train
truck
boat
trafficlight
firehydrant
stopsign
parkingmeter
bench
bird
cat
dog
horse
sheep
cow
elephant
bear
zebra
giraffe
backpack
umbrella
handbag
tie
suitcase
frisbee
skis
snowboard
sportsball
kite
baseballbat
baseballglove
skateboard
surfboard
tennisracket
bottle
wineglass
cup
fork
knife
spoon
bowl
banana
apple
sandwich
orange
broccoli
carrot
hotdog
pizza
donut
cake
chair
couch
pottedplant
bed
diningtable
toilet
tv
laptop
mouse
remote
keyboard
cellphone
microwave
oven
toaster
sink
refrigerator
book
clock
vase
scissors
teddybear
hairdrier
toothbrush
####### openvino detector for intel 6th+ #######
detectors:
ov:
type: openvino
device: AUTO
model:
path: /config/model/yolo_nas_s/yolo_nas_s.xml
model:
width: 320
height: 320
model_type: yolonas
input_tensor: nchw
input_pixel_format: bgr
labelmap_path: /config/model/yolo_nas_s/coco_80cl.txt
"""YOLO_NAS_Pretrained_Export.ipynb
Automatically generated by Colab.
"""
! pip install -q super_gradients==3.7.1
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")
# export the model for compatibility with Frigate
model.export("yolo_nas_s.onnx",
output_predictions_format=DetectionOutputFormatMode.FLAT_FORMAT,
max_predictions_per_image=20,
confidence_threshold=0.4,
input_image_shape=(320,320),
)
!pip install --ignore-installed openvino-dev addict
!python3 /usr/local/bin/mo --input_model yolo_nas_s.onnx --model_name yolo_nas_s --reverse_input_channels --compress_to_fp16 --input_shape [1,3,320,320] --output_dir /content/yolo_nas_s
from google.colab import files
files.download('/content/yolo_nas_s/yolo_nas_s.bin')
files.download('/content/yolo_nas_s/yolo_nas_s.xml')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment