Skip to main content
PromptQuorum
主页/Smart Home/Frigate NVR 搭建指南:检测器、区域与 Home Assistant(2026)
Local AI & LLMs in the Smart Home

Frigate NVR 搭建指南:检测器、区域与 Home Assistant(2026)

·阅读约16分钟·Hans Kuepper 作者 · PromptQuorum创始人,多模型AI调度工具 · PromptQuorum

Frigate 是一款开源 NVR,在本地对摄像头码流运行 AI 目标检测,并把每一次检测结果作为实体暴露给 Home Assistant。 截至 Frigate 0.17.2,新装机的推荐起点是运行 OpenVINO 检测器的 Intel 核显,而不是 Google Coral。

Frigate 是一款开源网络录像机,在你自己的硬件上运行 AI 目标检测,并把每一次检测结果以实体形式交给 Home Assistant。本指南覆盖 2026 年的检测器选择(Google Coral 已不再是默认答案)、摄像头码流设置、一份可直接运行的 config.yml、真正能消除误报的区域配置、Home Assistant 集成,以及 0.16 与 0.17 带来的变化。

Frigate NVR 搭建指南:检测器、区域与 Home Assistant(2026)

关键要点

  • Frigate 0.17.2(2026 年 6 月 28 日)为当前稳定版;0.18.0 自 2026 年 8 月 8 日起处于测试阶段
  • 先定检测器:运行 OpenVINO 的 Intel 核显是最省钱的可行起点,Hailo-8 或 NVIDIA 显卡可继续向上扩展
  • Coral 现在是备选方案而非默认选择——仅在功耗是关键约束时才推荐
  • 每台摄像头两路码流:检测用 1280x720 / 5 fps,录像用全分辨率主码流 15 fps
  • 真正消除误报的是区域配合 required_zones、loitering_time 与 inertia,而不是更好的模型
  • Home Assistant 集成必须先配置 MQTT 集成,否则不会生成任何实体
  • 语义搜索至少需要 8 GB 内存,要用得舒服建议 16 GB 加独立显卡,CPU 需支持 AVX2
  • Frigate+ 每年 $50(美元计费),含最多 12 个微调模型;人脸识别与车牌识别无需订阅即可使用

Frigate 比普通 NVR 多做了什么?

Frigate 采用两级流程:先用低开销的移动侦测找出值得细看的画面区域,再由真正的目标检测模型判断其中是否有人、车、宠物或包裹。 普通 NVR 只按像素变化触发,所以车灯、下雨和摇动的灌木都会报警。

📍 简单一句话

Frigate 用低成本的移动侦测挑选画面区域,只在这些区域上运行目标检测模型,因此单块小型加速器就能同时服务多台摄像头。

  • 先移动、后 AI: 低开销移动侦测决定检测器*在哪里*运行,因此一块小型加速器就能覆盖多台摄像头。
  • 按目标录像: 保留策略基于检测到的内容,而非 24 小时连续缓冲,存储空间因此更耐用。
  • 通过 go2rtc 转发: Frigate 只拉取每台摄像头一次再对外分发,避免五个客户端同时直连摄像头。
  • MQTT 输出: 每个被跟踪目标、区域进入事件和目标计数都会发布出来,这正是 Home Assistant 自动化的基础。
  • 审阅条目: 检测被区分为 *alerts*(你要求被告知的)与 *detections*(记录但不打扰)。

📌: alerts 与 detections 的区分是 Frigate 中最实用的概念。alerts 会唤醒手机,detections 构成可检索的记录。两者应分别配置。

2026 年该为 Frigate 买哪种检测器?

从零开始就买带核显的 Intel 主机并使用 OpenVINO 检测器;追求每瓦最低延迟就上 Hailo-8 模块;机器里已经有 NVIDIA 显卡就用 ONNX 检测器。 Frigate 文档明确指出,除非功耗约束异常严格,否则新装机不再推荐 Coral。

💬 简单来说

检测器就是回答"那是不是一个人"的那块芯片。你可以用 Intel CPU 里自带的显示核心、一块独立 NVIDIA 显卡,或者一个小巧的 M.2 AI 模块。人人推荐的那根 USB 棒(Google Coral)依然能用,但已经不是推荐的起点。

  • 主机是第六代及更新的 Intel CPU,就用 OpenVINO——核显已经买过了,无需再添硬件。
  • 机器里已有 NVIDIA 或 AMD 显卡,就用 ONNX,Frigate 会自动识别平台。
  • 想在 M.2 插槽里以低功耗获得加速器级延迟,就用 Hailo-8 / Hailo-8L
  • NVIDIA Jetson 板卡专用 TensorRT——参见面向智能家居 AI 的 NVIDIA Jetson Orin Nano 评测
  • 只有在功耗是决定性约束、且你接受模型阵容老化时,才使用 edgetpu(Coral)。
  • 完全避开 cpu 检测器——Frigate 说明 OpenVINO 的 CPU 模式比专用 CPU 检测器更高效。
检测器
硬件
推理耗时(官方公布)
openvinoIntel Arc A750约 4 ms MobileNetV2 / 约 8 ms YOLOv9-320
openvinoIntel NPU约 6 ms MobileNetV2 / 约 11 ms YOLOv9-320
openvinoIntel UHD 730 核显约 10 ms MobileNetV2 / 约 14 ms YOLOv9-tiny
hailo8lHailo-8约 6 ms SSD MobileNet / 约 7 ms YOLOv6n
hailo8lHailo-8L约 10 ms SSD MobileNet / 约 11 ms YOLOv6n
onnxNVIDIA RTX 3070约 6–8 ms YOLOv9 tiny→small 320
onnxNVIDIA RTX 3050约 8–10 ms YOLOv9 tiny→small 320
onnxAMD Radeon 780M约 14 ms YOLOv9-tiny-320
zmqApple M3 Pro约 6 ms YOLOv9-tiny-320

以上是 Frigate 官方公布的各检测器数据,并非 PromptQuorum 实测。Frigate 还提供 rknn(瑞芯微 NPU)、memryx、synaptics、deepstack 与 degirum 等检测器类型。

⚠️警告: 多数 Frigate 教程仍然以"先买一块 Coral"开场。这个说法早于 0.16 与 0.17 在 OpenVINO、Hailo 和 ONNX 上的工作,Frigate 自己的硬件页面如今已就新装机明确否定了它。

💡提示: Coral 的摄像头承载能力约等于 1000 / inference_speed 帧每秒,由所有摄像头共享。按检测 5 fps 计算,10 ms 的推理预算理论上可覆盖约 20 路码流——但温度降频和 USB 供电限制会削减这个数字。

Frigate 服务器本身需要什么配置?

一台 Intel N 系列或酷睿 i 系列小主机,8–16 GB 内存,系统盘用 SSD,录像另配机械硬盘,足以覆盖 4 到 8 路摄像头的典型住宅。 瓶颈很少出在 CPU,更多是共享内存、磁盘写入寿命,以及你是否要启用语义搜索。

  • **共享内存(shm):** 默认的 128 MB 只够约两路 720p 摄像头。Frigate 按每路 1280x720 摄像头含日志约 66.63 MB 估算,八路约需 253 MB。
  • **显式设置 --shm-size:** 多数场景下 --shm-size=512mb 是稳妥值;设得过小不会给出明确报错,而是表现为摄像头间歇性掉线。
  • 三个挂载点: /config 存放 YAML 与数据库,/media/frigate 存放片段、录像与导出文件,/tmp/cache 存放处理中的分段。
  • 录像写入机械硬盘: 持续写入会消耗消费级 SSD 的寿命。把 /media/frigate 放到机械硬盘,/tmp/cache 留在高速存储上。
  • AI 功能所需内存: 语义搜索至少需要 8 GB 与支持 AVX、AVX2 的 CPU;推荐配置是 16 GB 加一块独立显卡。
配置
检测器
适用场景
Intel N100/N150 小主机,16 GBopenvino(核显)2–6 路摄像头,不启用语义搜索
Intel 酷睿 i5 小主机,32 GBopenvino(核显)6–12 路摄像头并启用语义搜索
任意主机 + Hailo-8 M.2hailo8l低功耗、多摄像头
RTX 3050 及以上台式机onnx一台机器同时跑 Frigate 与本地 LLM
Raspberry Pi 5edgetpu / hailo8l1–3 路摄像头,功耗预算紧张

Frigate 支持裸机 Debian 上的 Docker、Home Assistant 加载项、通过 Helm 部署的 Kubernetes、Unraid、群晖与威联通 NAS、ESXi 以及 Apple Silicon 版 macOS。在 Proxmox 上请使用 QEMU 虚拟机——LXC 明确不受支持。

⚠️警告: 在 Proxmox LXC 容器中运行 Frigate 不受支持。把 Coral 或核显直通进 LXC 看似可行,随后会以无人能替你排查的方式失败。请使用虚拟机。

🛠️实践: 如果想用一台机器同时承载 Frigate、Home Assistant 和本地 LLM,请先按 LLM 的需求定型号——参见适合 Home Assistant 与本地 AI 的小主机推荐

摄像头该如何为 Frigate 配置?

在摄像头固件里配置两路码流:检测用 1280x720 / 5 fps 子码流,录像用原生分辨率主码流 / 15 fps,两者都用 H.264 且宽高比一致。 Frigate 的检测模型输入是 320x320,因此 4K 检测码流毫无收益,只会大幅推高解码开销。

  • 使用 H.264 而非 H.265——浏览器对 H.265 的支持有限,实时预览会最先出问题。
  • 在摄像头端改帧率,不要在 Frigate 里改:软件降采样只会白白消耗 CPU。
  • 优先有线 PoE 而非 Wi-Fi;子码流掉线的表现是漏检,而不是明显的故障。
  • 关于正确暴露 RTSP 与 ONVIF 的摄像头硬件,参见面向 Frigate 搭建的本地安防摄像头选购指南
  1. 1
    在摄像头固件中把子码流设为 1280x720、5 fps、H.264,I 帧间隔设为 5(每秒一个关键帧)。
  2. 2
    把主码流设为摄像头原生分辨率(常见 4 MP 传感器为 2688x1520)、15 fps、H.264,I 帧间隔 30。
  3. 3
    让两路码流保持相同宽高比(16:9 对 16:9),使检测框能在检测流与录像流之间正确对应。
  4. 4
    在 Frigate 中把 detect 角色指向子码流,把 record 角色指向主码流。
  5. 5
    只有面对真正快速的目标(例如车辆横穿狭窄的车道视野)时,才把检测提高到 10 fps。

💡提示: 如果车道尽头的目标从来检测不到,原因通常是分辨率而非模型:1280x720 缩放到 320x320 输入后,远处的人只剩下寥寥几个像素。应把该视野拆到第二台摄像头或一路变焦码流,而不是整体提高检测分辨率。

📌: Frigate 只拉取每台摄像头一次,其余客户端都从这份副本读取,因此应让 Home Assistant 指向 Frigate 而非直接指向摄像头。

如何安装 Frigate?

想走官方支持的路线,就在裸机 Debian 主机上用 Docker Compose;愿意用控制力换一键安装,就用 Home Assistant 加载项。 两者需要同样的 config.yml 和同一个 MQTT broker。

  1. 1
    在 Debian 系主机上安装 Docker,并创建 /config/media/frigate 目录。
  2. 2
    先写一份只含一台摄像头、不含检测器配置块的最小 config.yml,让 Frigate 以默认值启动并确认码流可用。
  3. 3
    启动容器时显式设置 shm_size,并挂载对应设备:Intel 用 /dev/dri,NVIDIA 用 GPU 运行时,Hailo 用 /dev/hailo0
  4. 4
    打开 Web 界面,确认摄像头画面、检测 FPS 以及系统页面显示的推理耗时。
  5. 5
    加入真正的 detectors 配置块并重启,确认推理耗时降到该硬件的官方公布水平。
  6. 6
    config.yml 中配置 MQTT broker,随后在 Home Assistant 中添加 Frigate 集成。
yaml
services:
  frigate:
    container_name: frigate
    image: ghcr.io/blakeblackshear/frigate:0.17.2
    restart: unless-stopped
    privileged: true
    shm_size: "512mb"
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128   # Intel iGPU (OpenVINO)
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./config:/config
      - /srv/frigate/media:/media/frigate
      - type: tmpfs
        target: /tmp/cache
        tmpfs:
          size: 1000000000
    ports:
      - "8971:8971"   # authenticated web UI
      - "8554:8554"   # RTSP restream
      - "8555:8555/tcp"
      - "8555:8555/udp"

⚠️警告: 把镜像标签固定到具体版本,不要用 stable。Frigate 的配置结构在小版本之间会变化,在 0.17 到 0.18 的分界上执行无人值守的 docker compose pull,可能留下一个拒绝加载现有 YAML 的容器。

🛠️实践: 先跑通一台摄像头再加其余。几乎每一个"Frigate 坏了"的求助帖最后都落在某一台摄像头的子码流 URL 上,而配置里只有一条记录时这要好查得多。

一份可运行的 Frigate config.yml 长什么样?

**可运行的配置由四个块组成:mqttdetectors、包含两个码流角色的 cameras,以及每台摄像头的 zonesreview 过滤条件。** 其余项目的默认值在第一天完全够用。

  • subtype=1subtype=0 是大华/Amcrest 系列区分子码流与主码流的写法;Reolink 使用 h264Preview_01_subh264Preview_01_main
  • retain.mode: motion 只在有移动的时段保留连续录像,是节省存储的最大杠杆。
  • review.alerts.required_zones 可以避免公共道路上的车辆把你的手机吵醒。
  • Frigate 0.17 加入了完整的界面化配置,因此上述大部分内容现在可以在 Web 界面里编辑,无需手写。
yaml
mqtt:
  host: 192.168.1.10
  user: frigate
  password: "{FRIGATE_MQTT_PASSWORD}"

detectors:
  ov:
    type: openvino
    device: GPU

cameras:
  driveway:
    ffmpeg:
      inputs:
        - path: rtsp://user:pass@192.168.1.51:554/cam/realmonitor?channel=1&subtype=1
          roles: [detect]
        - path: rtsp://user:pass@192.168.1.51:554/cam/realmonitor?channel=1&subtype=0
          roles: [record]
    detect:
      width: 1280
      height: 720
      fps: 5
    record:
      enabled: true
      retain:
        days: 3
        mode: motion
      alerts:
        retain:
          days: 30
    snapshots:
      enabled: true
    motion:
      mask:
        - 0,0,0.35,0,0.35,0.12,0,0.12   # timestamp overlay
    zones:
      driveway_apron:
        coordinates: 0.14,0.98,0.62,0.55,0.95,0.72,0.88,1.0
        loitering_time: 4
        inertia: 3
    review:
      alerts:
        labels: [person, car]
        required_zones: [driveway_apron]
      detections:
        labels: [person, car, dog, cat]

💡提示: Frigate 0.17 还引入了 Profiles——具名的配置覆盖,切换时无需重启容器。做一个扩大 required_zones 的"有客来访"配置,比每周手改两次 YAML 实用得多。

区域和遮罩是如何消除误报的?

区域筛选哪些检测值得关注;移动遮罩则让 Frigate 根本不去看某块画面。目标真实但你不关心时用区域,移动本身根本不是目标时用遮罩。 区域内的存在判定基于检测框的底部中心点,因此区域必须覆盖脚或车轮所在的地面,而不是头部所在的高度。

📍 简单一句话

在 Frigate 中,移动遮罩会完全停止某一区域的检测运算,而区域配合 required_zones 则让检测照常运行,只限制哪些检测被允许触发警报。

❌ 错误做法

对所有摄像头、所有人、全天开启警报,然后因为门前人行道每晚产生四十条通知,两天后干脆把通知关掉。

✅ 正确做法

建立仅覆盖地界线以内地面的 driveway_apron 区域,把 review.alerts.required_zones 设为该区域,加上 loitering_time: 4;同时对其他目标保留 detections(不发通知),使可检索的记录保持完整。
  • 移动遮罩: 用于时间戳水印、晃动的树木、旗帜。Frigate 在该区域不会运行检测,适合那些永远不会是关注目标的移动。
  • 目标过滤遮罩: 在特定区域屏蔽特定标签,例如始终被识别为 car 的邻居停放车辆。
  • **区域配合 required_zones:** 目标确实是人,但人行道上的人不构成警报。这才是应对行人流量的正确做法。
  • loitering_time:** 要求目标在区域内停留 N 秒——沿小路走上来的快递员符合条件,路过的行人不符合。
  • inertia:** 要求目标连续 N 帧(默认 3)留在区域内,避免边界处检测框抖动触发警报。
  • 速度估算: 恰好四个贴合地面的顶点加上 distances 列表,即可在界面和 MQTT 中输出速度值。

⚠️警告: 把区域画在画面上半部分毫无作用。存在判定基于检测框的底部中心点——请把区域画在地面上。

🔍洞察: 误报几乎从来不是模型质量问题。在典型住宅安装中,区域与 required_zones 消除的噪声远多于任何一次检测器升级。

如何把 Frigate 接入 Home Assistant?

先在 Home Assistant 中配置 MQTT 集成,把 Frigate 指向同一个 broker,然后再安装 Frigate 集成——它会按摄像头和区域生成 camera、image、sensor、switch 与 binary_sensor 实体。 若未事先配置 MQTT,集成能装上却什么也不会生成。

  1. 1
    部署一个 MQTT broker(通常选 Mosquitto 加载项),并在 Home Assistant 中添加 MQTT 集成。
  2. 2
    把 Frigate config.yml 的 mqtt 块指向同一个 broker,并使用独立的用户名和密码。
  3. 3
    通过 HACS 或作为核心集成安装 Frigate 集成,并指向 Frigate 主机。
  4. 4
    启用 Media Source 集成,使录像与快照出现在媒体浏览器中。
  5. 5
    把自动化建立在按区域的二元传感器上,而不是按摄像头的传感器上。

binary_sensor

你会得到什么:
按摄像头、按区域、按目标标签的移动与目标存在状态
适合用来做什么:
几乎所有自动化的触发源——"某个特定区域内有人"远比"某台摄像头有移动"更好用

camera

你会得到什么:
由 Frigate 8554 端口转发提供的实时码流实体
适合用来做什么:
仪表板卡片与投屏;让 Home Assistant 指向这里而非摄像头,可以避免对摄像头的第二次连接

image

你会得到什么:
每台摄像头最近一次检测目标的快照
适合用来做什么:
给手机通知附上图片,无需手工调用快照 API

sensor

你会得到什么:
按区域与按摄像头的目标计数,以及检测器和进程的性能数据
适合用来做什么:
在室逻辑与系统健康仪表板——这里的推理耗时是检测器回退到 CPU 的早期预警

switch

你会得到什么:
每台摄像头的检测、录像与快照开关
适合用来做什么:
隐私类自动化,例如在到家判定成立时关闭室内检测

该集成还提供 camera.turn_on 与 camera.turn_off 动作,支持使用不同 MQTT 配置的多台 Frigate 服务器,并允许用 Jinja2 覆盖 RTSP URL 模板。

⚠️警告: 如果 Frigate 集成装好了却一个实体也没有,原因几乎总是 MQTT:要么 Home Assistant 从未添加 MQTT 集成,要么 Frigate 与 Home Assistant 连到了两个不同的 broker。

🛠️实践: 用区域二元传感器加上目标标签条件来触发自动化。单纯的摄像头移动传感器会在下雨时误触发,而 binary_sensor.driveway_driveway_apron_person 不会。

语义搜索、人脸识别与车牌识别带来什么?

语义搜索让你直接输入"夜里停在车道上的黑色面包车"就能找到对应片段;人脸识别与车牌识别把匿名检测变成有名有姓的检测——两者都无需 Frigate+ 订阅。 这些功能花的是内存,不是钱。

  • 语义搜索: 至少 8 GB 内存、支持 AVX 与 AVX2 的 CPU,理想配置是 16 GB 加独立显卡。在 Raspberry Pi 上无法可用地运行。
  • 嵌入模型: 默认使用 Jina CLIP V1;small 为量化版本,可在 CPU 上可用地运行,large 在有显卡时会调用显卡。
  • Jina CLIP V2 支持 89 种语言而非仅英语,但 Frigate 记录其提升约 3%,代价是显著更高的内存占用与推理耗时,且不建议用 CPU 推理。
  • 重建索引需手动: 启用语义搜索不会索引已有目标。请使用界面上的"Reindex"按钮或设置 reindex: True,并预期期间 CPU 负载较高。
  • 人脸识别与车牌识别 在本地运行且无需订阅,Frigate+ 模型可以提升效率。
  • GenAI 描述: 0.17 增加了多服务商支持和专门的 llama.cpp 集成,描述可以由你自己硬件上的模型生成——参见在 Home Assistant 中使用本地 LLM 做自动化

💡提示: 在积累满一年的片段之前就把语义搜索打开。在没有显卡的小主机上给 20 万个跟踪目标重建索引,是一个通宵的活。

📌: Frigate 0.16 增加了语义搜索触发器——当被跟踪目标匹配上已保存的图片或描述时即触发动作。这是从"检索录像"迈向"按录像含义做自动化"的桥梁。

Frigate+ 一年 $50 值不值?

当你出现了标准模型解决不了的、具体且反复出现的误判时,Frigate+ 才值得;否则免费模型加上合理的区域配置就够了。 订阅每年 $50(美元计费),包含最多 12 次模型微调,额外微调每次 $5。

Frigate+ 还是标准模型?

以下情况使用本地LLM:

  • 你家场景中某个特定目标被反复错误分类
  • 你的摄像头角度不常见,标准模型表现不佳
  • 你希望获得 AI 建议的标签以加快自己的上传标注
  • 你愿意资助这个开源项目的持续开发

以下情况使用云端模型:

  • 误报来自人行道通行——区域配置可以免费解决
  • 你需要 Frigate 支持列表之外的标签;自定义标签目前还不可用
  • 你只有一两台摄像头,画面构图也很简单

快速决策:

  • 先修区域,两周后再重新评估
  • 如果真实目标上的警报仍然不准,再订阅
  • 训练好的模型在取消订阅后仍可下载
  • Frigate+ 基础模型已更新至 2026.0,基于 YOLOv9,新增了 lawnmowerheron 等候选标签。
  • 目前还不能添加任意自定义标签,训练仅限于 Frigate 支持的标签集合。
  • 人脸识别与车牌识别不需要订阅。

🔍洞察: 在调好区域之前就订阅,是花掉 $50 却看不到改善的最常见方式。微调模型让正确的检测更可靠,但不会让一个被正确识别的行人不再是行人。

与订阅制摄像头相比成本如何?

Frigate 把按摄像头计费的云端月租,换成了一次性、且不随摄像头数量增长的硬件支出。 只要超过两台摄像头,通常在第一年内就能回本。

维度
云端摄像头服务
Frigate
持续费用按月,且常按摄像头计费
前期投入仅摄像头主机 + 检测器 + 存储
AI 检测厂商云端本地(OpenVINO/Hailo/ONNX)
录像存放位置厂商数据中心你自己的硬盘
断网时功能降级或不可用局域网内完全可用
功能被取消的风险厂商可随时改套餐你在用的版本会一直可用

在 Frigate 里加一台摄像头,只花摄像头的钱。在订阅服务里加一台,通常是摄像头的钱再加账单上多一行——差距正是在这里拉开的。另见不依赖订阅的智能家居方案

📌: 电费也要如实计算:一台长期运行的小主机加硬盘约 15–30 W。按五年算是一笔真金白银,但仍然明显低于多数多摄像头云端套餐。

搭建 Frigate 时的常见错误

Frigate 搭建失败的绝大多数情况归结为五个错误,其中只有一个与硬件有关。

  • 在主码流上做检测:detect 角色指向 4K 码流会让解码开销成倍上升,而精度毫无提升,因为模型输入只有 320x320。始终在子码流上检测、在主码流上录像。
  • shm_size 保持默认:** 128 MB 只够约两路 720p 摄像头。多出来的摄像头会间歇性掉线且没有明显报错。设成 --shm-size=512mb 就不用再管了。
  • 在 MQTT 之前安装 Home Assistant 集成: 集成会顺利装上,然后什么也不生成。请先配置好 Home Assistant 的 MQTT 集成和 Frigate 的 mqtt 块,并指向同一个 broker。
  • 靠换检测器来解决误报: 人行道上的行人是正确的检测结果。解决办法是配合 required_zonesloitering_time 的区域,而不是更快的加速器或付费模型。
  • 把录像写到系统 SSD 上: 持续的视频写入会迅速消耗消费级 SSD 的寿命。把 /media/frigate 放到机械硬盘,/tmp/cache 保持高速,并设置 retain.mode: motion
  • 部署在 Proxmox LXC 中: 设备直通看似可行,随后会以不受支持且无法排查的方式失败。请使用 QEMU 虚拟机。

结论:到底该怎么配?

买一台 16 GB 内存的 Intel 小主机,用它的核显跑 OpenVINO 检测器,配 PoE 摄像头并设置 720p / 5 fps 子码流,然后把第一周花在区域配置而不是硬件上。 这套配置足以覆盖一栋普通住宅,日后摄像头增多还能再加一块 Hailo-8。

  • 从零起步就用 Intel 核显上的 OpenVINO——成本最低、无需额外硬件,2–6 路摄像头余量充足。
  • 摄像头超过八台或在意功耗,就用 Hailo-8 M.2 模块
  • 机器里已有 NVIDIA 显卡就用 ONNX,尤其是这台机器还要跑本地 LLM 时。
  • 只有当功耗是硬性约束、且你接受它已不是推荐路线时,才选 Coral
  • 避免 cpu 检测器;作为退路,OpenVINO 的 CPU 模式更好。
  • 拿不定主意就从一台 Intel N150 小主机加两台摄像头起步,把区域调好再扩容。

🛠️实践: 真正行得通的预算顺序是:先摄像头和 PoE 交换机,再主机,再存储,最后在系统页面的数据表明确实需要时才买加速器。先买加速器是最典型的顺序颠倒。

常见问题

Frigate NVR 是什么?

Frigate 是一款开源网络录像机,使用 OpenCV 与 TensorFlow 在本地对 IP 摄像头码流运行 AI 目标检测。它按检测到的内容而非单纯的移动来录制片段,并通过 MQTT 发布每一次检测,使 Home Assistant 能够据此自动化。核心软件没有云服务,也没有订阅费。

2026 年还需要为 Frigate 配 Google Coral TPU 吗?

不需要。Frigate 的硬件文档明确指出,除非功耗要求异常严格,否则新装机不再推荐 Coral。对于新搭建,推荐路径是 Intel 核显上的 OpenVINO 检测器、Hailo-8 模块,或现有 NVIDIA 显卡上的 ONNX 检测器。

应该运行哪个版本的 Frigate?

2026 年 6 月 28 日发布的 Frigate 0.17.2 是当前稳定版。0.18.0 自 2026 年 7 月起处于测试阶段,第三个测试版发布于 2026 年 8 月 8 日,因此只有在你能接受小版本之间的配置变动时才使用 0.18。

Frigate 需要多少内存?

仅做目标检测与录像时,8 GB 可以从容运行。启用语义搜索会抬高门槛:Frigate 记录的最低要求是 8 GB,推荐 16 GB 以上并配独立显卡,同时 CPU 需支持 AVX 与 AVX2 指令集。

为什么路人经过就一直收到 Frigate 警报?

因为那些都是正确的检测。请画一个只覆盖自家地界内地面的区域,把 review.alerts.required_zones 设为该区域,并加上 loitering_time,让路人必须停下来才会触发。存在判定基于检测框底部中心点,所以区域必须覆盖地面。

没有互联网连接时 Frigate 还能用吗?

可以。检测、录像、MQTT 与 Home Assistant 自动化全部在局域网内运行。只有从外部远程查看,以及可选的云端 GenAI 服务商需要联网;0.17 还加入了 llama.cpp 集成,描述也可以在本地生成。

Frigate 里的区域和遮罩有什么区别?

移动遮罩会让 Frigate 在该区域完全不运行检测,适合时间戳水印和持续晃动的枝叶。区域则让检测照常运行,只通过 required_zones 限制哪些检测可以触发警报。非目标用遮罩,你不关心的真实目标用区域。

一台 Frigate 服务器能带多少路摄像头?

这取决于推理耗时而非摄像头数量本身——可用的每秒检测次数约等于 1000 除以推理耗时(毫秒),并由所有摄像头共享。按每台摄像头检测 5 fps、Intel Arc A750 跑 YOLOv9-320 约 8 ms 计算,典型住宅安装仍有相当大的余量。

人脸识别或车牌识别需要 Frigate+ 吗?

不需要。人脸识别与车牌识别在本地运行且无需订阅,Frigate+ 模型可以提升效率。Frigate+ 每年 $50,包含最多 12 次模型微调,额外微调每次 $5——它适合解决反复出现的错误分类,而不是人行道通行问题。

可以在 Proxmox LXC 容器里运行 Frigate 吗?

不可以,Proxmox LXC 明确不受支持。请改用 QEMU 虚拟机。核显、Coral 或 Hailo 模块的直通在 LXC 中可能看似可行,随后会以无法获得支持的方式失败。

参考来源

← 返回 Smart Home