Frigate+ and Yolov9 (9s, 9t, 320, 640). What Does it Mean? #20442
-
I am currently looking at switching to the Yolov9 models and can't get a good feel for the different options. I tried reading the docs and asking the AI agent but didn't quite get the clarity I need. Can someone help me understand the pros/cons for the 3 following openvino Yolov9 models. I do notice inference speeds with my 15th gen 265k to be about 7ms for the 320 and 14ms for the 640. Not sure what's the trade off would be here but..: yolov9t | 320x320 | onnx,rocm,openvino This doc says use s or t "sizes" but doesn't really specify what the difference means or the significance. I reviewed these docs: Other Docs |
Beta Was this translation helpful? Give feedback.
Replies: 7 comments 6 replies
-
Based on the Frigate+ documentation, YOLOv9 models are available in two sizes: Model SizesYOLOv9s (small): The YOLOv9t (tiny): This is a smaller, faster variant that will have quicker inference times but potentially lower accuracy compared to the Resolution OptionsThe numbers (320x320 vs 640x640) refer to the input resolution of the model (2). Based on your inference speed observations:
Trade-offsHigher resolution (640x640):
Lower resolution (320x320):
Recommendation for OpenVINOFor OpenVINO detector with Intel hardware, YOLOv9 is the recommended model type (1). The documentation suggests that OpenVINO runs best with tiny, small, or medium models (3). Given your inference speeds, you have good performance headroom with either option. The choice depends on whether you prioritize speed (320x320) or detection accuracy for smaller objects (640x640). 📚 Sources: Have another question? Just tag @inkeep. |
Beta Was this translation helpful? Give feedback.
-
14ms is actually quite good for inference speed. For context, the Beelink EQ13 with Google Coral EdgeTPU achieves 5-10ms inference speeds (1). Your 14ms with OpenVINO on a 15th gen Intel processor is well within acceptable ranges. The inference speed metric is measured in milliseconds (2). To put this in perspective, other users report much higher inference times - for example, one user with an Nvidia A2000 GPU running YOLOv9 NAS at 640x640 reported 20ms inference speeds and found this acceptable (3). Another user experienced problematic speeds of 162ms with a Coral TPU that required troubleshooting (4). Your 14ms inference speed means your detector can theoretically handle around 71 detections per second (1000ms ÷ 14ms), which is more than sufficient for most camera setups. The key metric to watch is whether you're experiencing skipped frames - if your system can keep up with the detection load without skipping frames, then 14ms is perfectly fine (3). The documentation shows that OpenVINO runs best with tiny, small, or medium models (1), and your performance suggests the system is working well within its capabilities. 📚 Sources:
Have another question? Just tag @inkeep. |
Beta Was this translation helpful? Give feedback.
-
To use multiple ONNX detectors in Frigate, you can configure them in your detectors section (1). Here's how to set up two ONNX detectors: detectors:
onnx_0:
type: onnx
onnx_1:
type: onnx If you want to specify which GPU each detector should use, you can add the device parameter with the GPU index number (2): detectors:
onnx_0:
type: onnx
device: "0"
onnx_1:
type: onnx
device: "1" When using multiple detectors, they will run in dedicated processes but pull from a common queue of detection requests from across all cameras (1). This allows you to spread the GPU load across multiple GPUs - for example, you could have ffmpeg and semantic search running on cuda:0, while the two detectors use different GPUs (2). Note that multiple detectors cannot be mixed for object detection (for example, OpenVINO and Coral EdgeTPU cannot be used for object detection at the same time), but this doesn't affect using hardware for accelerating other tasks such as semantic search (4). 📚 Sources: Have another question? Just tag @inkeep. |
Beta Was this translation helpful? Give feedback.
-
Yes, there can be benefits to running multiple OpenVINO detectors when using many cameras (1). The documentation specifically mentions this use case:
The benefit comes when one detector may not be enough to keep up with the detection load from multiple cameras (1). Multiple detectors can be defined assuming GPU resources are available (1). However, there are some important considerations: Performance Context: Based on your previous message showing 7ms inference speed for 320x320 and 14ms for 640x640 models, you likely have sufficient performance headroom with a single detector. One user reported that their system can theoretically handle up to 13 cameras at 5fps detection with similar performance (2). Resource Requirements: Running multiple OpenVINO detectors requires sufficient GPU resources to be available (1). Each detector will consume additional GPU memory and processing power. When It's Beneficial: Multiple detectors are most useful when you have many cameras and are experiencing detection bottlenecks - such as skipped frames or delayed detections due to the detection queue backing up. Given your 14ms inference speeds, a single OpenVINO detector should handle multiple cameras efficiently. You'd typically only need multiple detectors if you're running a large number of cameras and notice performance issues with a single detector. 📚 Sources:
Have another question? Just tag @inkeep. |
Beta Was this translation helpful? Give feedback.
-
Yes, you can configure multiple OpenVINO detectors on a single GPU (1). The documentation shows an example configuration where multiple OpenVINO detectors both use the same GPU device:
This configuration allows you to run multiple detector processes on the same GPU when you have many cameras and one detector may not be enough to keep up (1). Multiple detectors can be defined assuming GPU resources are available (1). When using multiple detectors, they will run in dedicated processes but pull from a common queue of detection requests from across all cameras (1). This means both detectors will share the workload from all your cameras while utilizing the same GPU hardware. The key requirement is that your GPU has sufficient resources to handle multiple detector instances running simultaneously (1). Given your previous mention of 7-14ms inference speeds, your GPU should have adequate performance headroom to support multiple detectors if needed. 📚 Sources: Have another question? Just tag @inkeep. |
Beta Was this translation helpful? Give feedback.
-
I'm sorry, but as an AI Assistant knowledgeable about Frigate, I only have the ability to answer questions about Frigate. Have another question? Just tag @inkeep. |
Beta Was this translation helpful? Give feedback.
-
This AI is awesome and so good. |
Beta Was this translation helpful? Give feedback.
I'm sorry, but as an AI Assistant knowledgeable about Frigate, I only have the ability to answer questions about Frigate.
Have another question? Just tag @inkeep.