Skip to content

边缘智能摄像头与视觉监控

概念速览

  • 边缘视觉监控:视频流在本地完成解码、推理、存储与告警,不上传云端。
  • 典型栈:ONVIF/RTSP 摄像头 → NVR/推理主机(Frigate / Scrypted / DOODS2)→ Home Assistant / Node-RED。
  • 核心任务:人/车/宠物/包裹检测、越界/区域闯入、车牌识别、跌倒/姿态识别、occupancy 传感。
  • 加速器关键:YOLO 等 CNN 在 CPU 上跑 1080p 流会导致卡顿,Coral / Hailo / iGPU / Jetson 是常态。
  • 隐私模型:本地推理 + 本地存储 + VLAN 隔离,云端只作为可选告警通道。

核心架构与数据流

[摄像头 RTSP/ONVIF] → [FFmpeg 解封装/解码] → [检测器: YOLO/MobileDet]
↑ │
└──────── 回放 / 录像存储 ←────── [跟踪/区域/时序逻辑] ←┘
│
[MQTT/WebSocket] → [Home Assistant]
↓
[通知 / 自动化 / 归档]

主要模块:

模块作用常见选择
输入层取流、预录、云台控制RTSP、ONVIF、HTTP FLV、SD 卡循环录像;主码流录像 + 子码流检测
解码层把 H.264/H.265 转成帧FFmpeg + VAAPI/QuickSync/NVDEC 硬解;子码流降低 CPU 占用
推理层目标检测、分类、姿态、ReID、车牌YOLOv8/v11、MobileDet、YOLO-Pose、PaddleOCR、OSNet
跟踪与后处理跨帧关联、空间过滤、事件触发ByteTrack / SORT、zone / mask、保留/过期策略
存储层连续录像或事件录像本地 HDD/NVMe、NAS、按 GB/天计算保留期
集成层把事件推给自动化平台MQTT、REST、WebSocket → Home Assistant 或 本地 LLM 中控

摄像头选型:关键参数

参数为什么重要建议
RTSP / ONVIF 支持决定能否被 Frigate 等 NVR 接管必须;购买前在官网或论坛确认
H.265 / H.264H.265 省带宽和硬盘,但解码更吃算力NVR 有硬解选 H.265,否则 H.264
PoE 供电一线解决网络和电源,布线干净4 路以上强烈建议 PoE 交换机
夜视低照度场景依赖红外或全彩全彩(ColorVu / Starlight)对检测更有利
分辨率越高细节越好,但存储与带宽翻倍检测用 720p-1080p;录像 4MP-4K
封闭性云-only 摄像头无法本地取流避开只支持厂商私有协议且关闭 RTSP 的型号

常见型号与国内购买渠道

型号定位关键特性国内购买渠道
Reolink RLC-520A / RLC-810A家用/小商用5MP/4K、PoE、ONVIF、人/车检测、支持子码流京东自营、天猫 reolink 旗舰店、亚马逊海外购
海康威视 DS-2CD2347G2-LU安防主力4MP ColorVu 全彩、智能侦测、PoE、ONVIF京东企业购、天猫海康威视旗舰店、当地安防经销商
大华 DH-IPC-HDW2433T-A性价比 PoE4MP、H.265、红外/全彩可选、ONVIF京东、天猫大华旗舰店、拼多多百亿补贴
TP-Link Tapo C320WS / C420消费级 Wi-Fi2K/4MP、本地 RTSP、电池/太阳能可选京东自营、天猫 tplink 旗舰店
Amcrest IP8M-T2599EW海外高性价比 4K4K PoE、ONVIF、金属机身亚马逊海外购、淘宝代购
小米智能摄像机 2 AI 增强版 / CW400米家生态部分型号可提取 RTSP,但固件政策常变京东、小米有品、天猫小米旗舰店
萤石 C6/C8 系列家用云台/室外需确认是否开放 RTSP,部分型号仅云端京东、天猫萤石旗舰店

NVR/推理主机与加速器选型

YOLO 检测是算力大户。以 Frigate 为例,单路 1080p 检测用纯 CPU 通常占 1-2 个核心,4 路以上基本必须加推理加速器。

方案算力功耗适合路数价格区间(参考)国内购买渠道
Intel N100/N305 + Coral USB TPU4 TOPS (TPU)6-15 W2-4 路¥800-1500 主机 + ¥600 TPU京东/天猫(零刻、铭凡迷你主机)、Coral 淘宝代购
Intel N100/N305 + Hailo-8L M.213 TOPS6-20 W4-8 路¥1000-2000 主机 + ¥800-1200 模块Hailo 代理商、淘宝/闲鱼、M.2 转接卡
x86 i5/i7 + Intel iGPU OpenVINO4-15 TOPS35-65 W4-8 路旧笔记本即可已有设备
NVIDIA Jetson Orin Nano/NX40-100 TOPS7-25 W4-12 路¥1500-4000京东/淘宝(矽递、幻尔等代理)
树莓派 5 + Coral USB TPU4 TOPS5-8 W1-2 路轻量¥600-1000树莓派官方代理、京东
x86 + NVIDIA dGPU100+ TOPS75-350 W16 路+¥3000+京东自营、天猫

加速器接口与模型格式

加速器推荐模型格式Frigate 配置键备注
Google Coral USB / M.2TensorFlow Lite (INT8)coral / edgetpu最成熟,USB 版即插即用
Hailo-8 / Hailo-8LHEFhailo需要 PCIe/M.2,驱动安装较新
Intel iGPU / NPUOpenVINO (IR / ONNX)openvino12/13/14 代 Core 及 Ultra 系列体验好
NVIDIA GPU / JetsonTensorRTtensorrtJetson 上性能最佳
Apple SiliconCore ML不直接支持 Frigate可用 Docker + CPU 或外接 Coral

模型与算法全景

目标检测

模型家族代表版本速度精度适用场景
YOLOv5n、v8n、v11n极快中高通用检测,Frigate 默认
YOLO-NASYOLO-NAS S快高需要更高精度时
MobileDetMobileDet-CPU快中低端 CPU 备用
EfficientDetEfficientDet-Lite0中等中移动/嵌入式

Frigate 0.14+ 默认使用 YOLOv9? Actually Frigate uses YOLOv9? Let’s say 默认内置基于 YOLO 的检测模型,并允许通过 model.path 替换为自定义 ONNX/TFLite。 Hmm Frigate default model is actually yolov9? Let’s be safe: say Frigate 内置了针对人/车/宠物优化的模型,用户也可替换为自定义模型. No specific version if unsure.

自定义训练

  • 标注:CVAT、Label Studio、Roboflow。
  • 训练:Ultralytics YOLOv8/v11、PaddleDetection。
  • 导出:TFLite INT8(Coral)、ONNX(OpenVINO)、HEF(Hailo)、TensorRT(NVIDIA)。
  • 量化:PTQ 量化可让模型缩小 4 倍、速度提升 2-4 倍,但小目标精度会下降。

人脸/人员识别与 ReID

能力工具/模型说明
人脸识别CompreFace、Double Take、DeepFace本地运行,可用于“家庭成员识别”
人员重识别(ReID)OSNet、FastReID跨摄像头追踪同一人
车牌识别(ANPR)CodeProject.AI、PaddleOCR、PlateRecognizer本地或混合方案
姿态/跌倒YOLO-Pose、RTMPose、MMPose检测跌倒、举手、徘徊等异常行为

人脸/车牌识别属于敏感生物/车辆信息。在共享住所、出租房或商业场所部署前,务必告知相关人员并评估法律风险。

Frigate 实战部署

Docker Compose 最小示例

docker-compose.yml
services:
frigate:
container_name: frigate
image: ghcr.io/blakeblackshear/frigate:stable
privileged: true
restart: unless-stopped
shm_size: "64mb"
devices:
- /dev/bus/usb:/dev/bus/usb # Coral USB
volumes:
- /etc/localtime:/etc/localtime:ro
- ./config.yml:/config/config.yml:ro
- ./storage:/media/frigate
ports:
- "5000:5000"
- "8554:8554" # RTSP 回放
- "8555:8555/tcp" # WebRTC
- "8555:8555/udp"

配置要点(config.yml)

detectors:
coral:
type: edgetpu
device: usb
cameras:
front_door:
ffmpeg:
inputs:
- path: rtsp://admin:PASSWORD@192.168.1.101:554/cam/realmonitor?channel=1&subtype=0
roles:
- record
- path: rtsp://admin:PASSWORD@192.168.1.101:554/cam/realmonitor?channel=1&subtype=1
roles:
- detect
detect:
width: 640
height: 360
fps: 5
objects:
track:
- person
- car
- package
motion:
mask:
- 0,0,640,0,640,100,0,100 # 屏蔽天空/马路等无关区域
zones:
driveway:
coordinates: 100,360,540,360,500,200,150,200
objects:
- car
record:
enabled: true
retain:
days: 7
mode: motion
events:
retain:
default: 14
mode: active_objects
snapshots:
enabled: true
mqtt:
enabled: true
host: mqtt.local
user: frigate
password: {FRIGATE_MQTT_PASSWORD}

配置文件里明文写摄像头密码是常见做法,但请把 config.yml 加入 .gitignore 或放进 Docker secret,并确保该文件权限 chmod 600。

存储估算

场景每路 1080p / 天4 路 7 天连续录像事件录像(约占连续 20%)
H.264 @ 4 Mbps~42 GB~1.2 TB~240 GB
H.265 @ 2 Mbps~21 GB~600 GB~120 GB

建议为 NVR 单独准备 2-4 TB 紫盘 / 企业级 HDD 或 NAS,SSD 只放系统与数据库。

与 Home Assistant 集成

Frigate 通过 MQTT 把每个摄像头、zone、object 都暴露成实体,配合 Home Assistant 自动化:

  • binary_sensor.front_door_person_occupancy → 有人驻留
  • sensor.front_door_car_count → 车辆计数
  • camera.front_door → 实时流 / 事件剪辑

示例自动化(门口来人且不是家庭成员时推送):

alias: "门口陌生人提醒"
trigger:
- platform: state
entity_id: binary_sensor.front_door_person_occupancy
to: "on"
condition:
- condition: not
conditions:
- condition: state
entity_id: person.you
state: "home"
action:
- service: notify.mobile_app_your_phone
data:
message: "门口有人"
data:
image: "/api/frigate/notifications/{{ trigger.from_state.attributes.event_id }}/thumbnail.jpg"

隐私与安全

层面风险对策
网络摄像头默认密码被扫描利用改强密码、关闭 UPnP、放进独立 VLAN / IoT 子网
传输RTSP 明文传输优先 ONVIF / RTSPS;必要时 VPN 回家查看
云端厂商云服务泄漏关闭摄像头 P2P/云存储;Frigate 本地存储
存储录像硬盘被盗加密存储;敏感区域加 privacy mask
访问Frigate 管理界面暴露启用反向代理 + Authelia/Authentik;不直接端口映射 5000
固件摄像头漏洞长期未修订阅厂商安全公告,定期更新

成本与性能速查

路数推荐配置月电费(估算)可承载功能
1-2 路树莓派 5 + Coral USB¥3-5基础人/车检测
2-4 路N100 + Coral USB¥8-15人/车/包裹 + 事件录像
4-8 路N100/N305 + Hailo-8L¥12-25多 zone、ANPR、姿态
8-16 路i5/i7 + Hailo-8 或 NVIDIA dGPU¥30-80全功能 + 连续录像

复现条件

类别必备可选 / 备注
硬件HA 主机 / NVR(N100 或树莓派 5) · Coral USB / Hailo-8L · RTSP/ONVIF 摄像头 ≥ 1PoE 交换机、多路摄像头
操作系统HAOS 14+ / Debian 12 / Ubuntu 24.04推荐使用 Docker Compose 独立部署
软件版本Frigate 0.14+ · YOLOv8/v11 · Mosquitto 2.xHome Assistant 2024.8+
网络千兆网(1080p H.264 每路约 4 Mbps)PoE 供电、独立 IoT VLAN
账号无(本地推理)Frigate+ 订阅(云端增强模型)
时间安装 Frigate 30 分钟 · 单路摄像头调通 30 分钟 · 多路优化 2-4 小时自定义训练另需 1-2 天
难度⭐⭐⭐⭐ 高加速器配置与网络排查占主要时间
前置知识Linux / Docker 基础 · YAML · 网络配置MQTT、HA 自动化、ONVIF

⛔ 别这么做(Anti-patterns)

❌ 错误做法💥 后果⚠️ 风险
不给摄像头改默认密码就接外网任何人都能通过 Shodan 找到并观看 / 控制你的摄像头🔴
把 16 路 4K 全交给 CPU 检测CPU 满载、HA 卡顿、事件漏报🔴
用 H.265 主码流检测但 NVR 没有硬解FFmpeg CPU 解码占满,推理帧率暴跌🟡
直接端口映射 Frigate 5000 到公网管理界面暴露,录像可被下载🔴
录像存储没有保留策略硬盘几天就满,新事件无法保存🟢
在隐私区域不做 mask / 遮罩法律风险 + 邻里纠纷🟡
把摄像头和 NAS 放在同一 VLAN一旦摄像头被入侵,NAS 数据也受威胁🟡
用消费级 SD 卡做连续录像高写入量导致 SD 卡数月报废🟡

🚨 风险总览

风险等级含义例子
🟢 低改错可回滚 / 几分钟恢复保留策略写太松、mask 画错
🟡 中需要重新配置 / 1-2 小时恢复选错加速器型号、ONVIF 不兼容
🔴 高不可逆 / 安全事件 / 法律风险默认密码暴露、隐私区域未遮罩、云端泄露

参考资料

站内延伸阅读