Hello Frigate community,
https://github.com/dbro/frigate-detector-edgetpu-yolo9 is a new and separate repository that adds support for Frigate to run YOLO models (v9, maybe others) on Google Coral EdgeTPU hardware.
It can run a YOLO v9 model at 10ms on a Google Coral mini-PCIe card. The model is the "t" version with dimensions 192x192, trained using only COCO data.
Why a separate repository instead of a pull request? This approach follows the suggestion from a previous issue discussion (#15630, this comment) to avoid modifying Frigate's code base and instead to provide a custom detector plugin in a separate codebase which can have a different license that is compatible with YOLO's license (issue #16335 talks about this).
The code is based on Frigate's existing edgetpu-tfl.py detector, with post-processing steps adapted from code developed about 2 years ago (see #7650) by users such as @lkaino and @harakas (Thank you!).
The audience for this are people who have Google Coral and are getting too many false positive detections from the default EdgeTPU model (MobileDet). This approach is slightly less efficient: its detection speed is about 10ms vs the 7ms from MobileDet, and there is a small amount of CPU used for post-processing that is not necessary with MobileDet. In my testing, these were acceptable tradeoffs for the improvement in detection accuracy.
Comments and suggestions are welcome. In particular, should I create a pull request to mention this in the documentation page about Object Detectors?
Also if anyone has been able to get YOLO-NAS working with Google Coral, or has found a place to download the INT-8 versions of YOLO-NAS, please let me know!
Hello Frigate community,
https://github.com/dbro/frigate-detector-edgetpu-yolo9 is a new and separate repository that adds support for Frigate to run YOLO models (v9, maybe others) on Google Coral EdgeTPU hardware.
It can run a YOLO v9 model at 10ms on a Google Coral mini-PCIe card. The model is the "t" version with dimensions 192x192, trained using only COCO data.
Why a separate repository instead of a pull request? This approach follows the suggestion from a previous issue discussion (#15630, this comment) to avoid modifying Frigate's code base and instead to provide a custom detector plugin in a separate codebase which can have a different license that is compatible with YOLO's license (issue #16335 talks about this).
The code is based on Frigate's existing edgetpu-tfl.py detector, with post-processing steps adapted from code developed about 2 years ago (see #7650) by users such as @lkaino and @harakas (Thank you!).
The audience for this are people who have Google Coral and are getting too many false positive detections from the default EdgeTPU model (MobileDet). This approach is slightly less efficient: its detection speed is about 10ms vs the 7ms from MobileDet, and there is a small amount of CPU used for post-processing that is not necessary with MobileDet. In my testing, these were acceptable tradeoffs for the improvement in detection accuracy.
Comments and suggestions are welcome. In particular, should I create a pull request to mention this in the documentation page about Object Detectors?
Also if anyone has been able to get YOLO-NAS working with Google Coral, or has found a place to download the INT-8 versions of YOLO-NAS, please let me know!