Skip to content

AI Models for Frigate Enrichments

Frigate uses a handful of AI models — the object detector, plus the “enrichment” features that build on it (semantic search, face recognition, license plates, bird and audio detection, and more). This page lists every model, grouped by feature, and where each runs — the Neural Engine (ANE), the GPU, or the CPU — on Fregata and, for comparison, in Docker.

The short version: object detection — the one thing that runs on every single frame — gets the Neural Engine to itself. For everything else, Fregata uses the GPU for the models Frigate accelerates that Apple’s CoreML can run, and the CPU for the rest. A few models that upstream Frigate accelerates on a GPU use dynamic input shapes the Mac’s CoreML GPU path can’t take yet, so they run on the CPU for now — none of them a hot path (see “A few models run on the CPU for now”).

You don’t configure any of this — Fregata picks the right place automatically. The only related knob is model_size on the features that offer one (for example face recognition’s small vs large).

The full picture — every model, the feature it powers, and where it runs across the three ways you might run Frigate:

FeatureModel (variant)macOS Docker¹Linux / Windows Docker²Fregata (macOS)
Object detection³YOLOv9-t (the detector)CPUGPU / NPUNeural Engine
Semantic searchjina-clip — vision (images)CPUGPUGPU
jina-clip — text (query)CPUGPUCPU †
Face recognitionFaceDet — finding facesCPUGPUGPU
FaceNet — small embedding (default)CPUCPUCPU
ArcFace — large embeddingCPUGPUGPU
License plateYOLOv9-256 — plate detectionCPUGPUGPU
PaddleOCR — orientationCPUGPUGPU
PaddleOCR — recognition_v4 (OCR)CPUGPUCPU †
Bird classificationMobileNetV2 (iNaturalist)CPUCPUCPU
Audio detectionYAMNetCPUCPUCPU
Audio transcriptionsherpa-onnx — small (default)CPUCPUCPU
Whisper — largeCPUGPUCPU †
Custom classificationMobileNetV2 — trainingCPUGPUCPU
trained model (.tflite) — inferenceCPUCPUCPU

¹ Docker Desktop on a Mac runs everything on the CPU. Docker’s Linux VM can’t reach the Mac’s Neural Engine or GPU, so nothing is accelerated — the main reason Fregata exists.

² With a supported GPU or accelerator (NVIDIA/TensorRT, Intel/OpenVINO, a Coral, etc.). Without one, Linux/Windows Docker also runs everything on the CPU — same as the macOS Docker column.

³ The detector model differs by platform: Fregata bundles YOLOv9-t and runs it on the ANE; Docker images default to a CPU SSD/MobileDet model (or an accelerator-specific one).

GPU on a GPU-equipped Frigate, but CPU on Fregata today. These three use dynamic input shapes Apple’s CoreML GPU path can’t take yet. None is a hot path (they run per search query, per plate, and per spoken phrase — not per frame), so the impact is small; GPU support is a planned optimization in a future release. See below.

The takeaway: Fregata is the only way to optimally hardware-accelerate Frigate on a Mac. macOS Docker is CPU-only across the board; Fregata puts object detection on the Neural Engine and most enrichment models on the GPU — matching a GPU-equipped Linux/Windows box except for three dynamic-shape models that fall back to the CPU for now.

Why object detection owns the Neural Engine

Section titled “Why object detection owns the Neural Engine”

The ANE is Apple’s dedicated, extremely power-efficient inference chip — but it works best running one model at a time. Object detection runs multiple times on every frame with motion from every camera, so it’s by far the most demanding and latency-sensitive job Fregata does. Pinning detection to the ANE — and routing everything else to the GPU or CPU — means a burst of face recognition or search indexing can never stall the detector. It’s also why Fregata needs Apple Silicon: Intel Macs have no Neural Engine, and the CPU fallback (~50 ms/frame versus ~2 ms on the ANE) is too slow to be a real NVR.

Why some models use the GPU and others the CPU

Section titled “Why some models use the GPU and others the CPU”

Fregata is a faithful port of Frigate and keeps the same accuracy. Frigate already decides, per model, where it runs; Fregata honors those choices on Apple Silicon wherever the Mac’s GPU path can:

  • GPU (Apple’s CoreML, via ONNX Runtime) — the models Frigate accelerates that have fixed input shapes CoreML can compile: image search (vision), large face recognition, and license-plate detection + orientation.
  • CPU, same as upstream — the models Frigate runs on the CPU everywhere: bird, audio detection, small face recognition, and the small speech-to-text model. These are small / TFLite models with no GPU path upstream either, so they run on the CPU like in all version of Frigate.

Three models that upstream Frigate accelerates on a GPU use dynamic input shapes the Mac’s CoreML GPU path can’t take yet, so today they run on the CPU: the text side of semantic search, license-plate OCR, and the large (Whisper) transcription model. On a GPU-equipped Frigate those steps use the GPU, so they’re slower on Fregata for now — but none is a hot path (they run per search query, per plate, and per spoken phrase, not per frame), so the real-world impact is small. GPU support for them is a planned optimization in a future release.

Object detection and audio detection ship inside the app, so they work offline the moment you install Fregata. The other models download automatically the first time you turn on the feature that needs them, into Fregata’s model cache — a one-time download per model. Custom-model training additionally fetches TensorFlow on first use (a larger, one-time download); the model you train then runs on the CPU like any other.