Optimal detection resolution and stream-switching strategy for balancing resource efficiency #22128
-
|
Specs: Using preset-vaapi (i5-9900 9th gen) with coral tpu. Amcrest 8MP camera configured for 5MP main and D1 sub stream. Consider the following hypothetical configuration:
|
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
|
Frigate does not currently support the stream-switching strategy you described (using sub stream for motion, then switching to main stream for enrichments like LPR/face recognition). How Frigate Actually Works: Both LPR and face recognition run on the same stream used for the Resource Efficiency: Motion detection operates on a separate, downscaled representation of frames. The The primary resource consideration is your detect stream resolution, which affects:
Detection Resolution Recommendations: For your 70ft driveway scenario: The documentation states that face recognition accuracy "is definitely going to be improved with higher quality cameras / streams"(2) and references the DORI (Detection Observation Recognition Identification) specification, noting "the identification range is the most relevant here, and the distance listed by the camera is the furthest that face recognition will realistically work"(2). For LPR, the documentation emphasizes ensuring "your camera has a clear, human-readable, well-lit view of the plate. If you can't read the plate's characters, Frigate certainly won't be able to"(1). It also notes you may need to adjust "video size, quality, or frame rate settings on your camera, depending on your scene and how fast the vehicles are traveling"(1). The default detect resolution mentioned in the reference config is 1280×720(3), but the documentation doesn't specify exact distance limitations for this resolution with LPR or face recognition. Practical Recommendation: Given your 70ft driveway and 5MP camera capability, I'd suggest:
Your VAAPI hardware acceleration should handle the higher resolution decode efficiently, and the Coral will process detections at the same speed regardless of input resolution. 📚 Sources: Have another question? Just tag @inkeep. |
Beta Was this translation helpful? Give feedback.
-
|
What you're proposing would be less efficient as it would require decoding both the sub and main streams. It is possible the main stream could be momentarily decoded but then it would likely miss the frames where the sub stream detected a person. We looked into using recordings but the sync difference along with extra resolution made it not work well. Realistically if one of the recommended cameras / type of cameras is used which have an adequate sub stream with proper motion compression then it will work without issues just running on that stream. |
Beta Was this translation helpful? Give feedback.
What you're proposing would be less efficient as it would require decoding both the sub and main streams. It is possible the main stream could be momentarily decoded but then it would likely miss the frames where the sub stream detected a person.
We looked into using recordings but the sync difference along with extra resolution made it not work well. Realistically if one of the recommended cameras / type of cameras is used which have an adequate sub stream with proper motion compression then it will work without issues just running on that stream.