frigate/docs/i18n/zh/docusaurus-plugin-content-docs/current/configuration/zones.md

176 lines
4.9 KiB
Markdown
Raw Normal View History

2025-04-29 16:20:14 +03:00
---
id: zones
title: 监控区
---
监控区允许您定义画面中的特定区域,并为对象类型应用额外的过滤器,从而判断对象是否位于该区内。系统会根据对象边界框的底部中心点来评估是否进入监控区,边界框与区的重叠面积不影响判断。
例如下图中的猫当前位于监控区1但**不在**监控区2。
![底部中心点判断](/img/bottom-center.jpg)
监控区不能与摄像头同名。如需在多摄像头覆盖同一区域时使用相同监控区,可以为每个摄像头配置同名的区。
调试时,请启用摄像头调试视图中的"监控区"选项(设置 --> 调试),以便根据需要调整。当任何对象进入区时,区边界线会变粗。
创建监控区的步骤与[创建"运动遮罩"](masks.md)类似,只需在网页界面使用创建区的功能即可。
### 限定警报和检测到特定区
通常您可能希望仅当对象进入关注区域时才创建警报。这可以通过设置`required_zones`来实现。例如,仅当对象进入整个院子区时才创建警报,配置如下:
```yaml
cameras:
您的摄像头名称:
review:
alerts:
required_zones:
- entire_yard
zones:
entire_yard:
coordinates: ...
```
您可能还想限定检测仅在对象进入次要关注区时创建。例如,当对象进入院子内部区域时触发警报,但进入院子边缘时就创建检测记录:
```yaml
cameras:
您的摄像头名称:
review:
alerts:
required_zones:
- inner_yard
detections:
required_zones:
- edge_yard
zones:
edge_yard:
coordinates: ...
inner_yard:
coordinates: ...
```
### 限定快照到特定区
```yaml
cameras:
您的摄像头名称:
snapshots:
required_zones:
- entire_yard
zones:
entire_yard:
coordinates: ...
```
### 限定区内的对象类型
有时需要限制区只对特定对象类型生效,以便更精细地控制警报、检测和快照的保存。以下示例将限制一个区只对人有效,另一个区只对车辆有效。
```yaml
cameras:
您的摄像头名称:
zones:
entire_yard:
coordinates: ... (您希望检测人的区域)
objects:
- person
front_yard_street:
coordinates: ... (仅街道区域)
objects:
- car
```
只有车辆对象能触发`front_yard_street`区,只有人能触发`entire_yard`区。系统会追踪进入院子任何位置的人,以及进入街道区域的车辆。
### 区内滞留检测
当需要检测对象在区内异常滞留时,可以配置最小滞留时间阈值(单位:秒):
```yaml
cameras:
您的摄像头名称:
zones:
sidewalk:
loitering_time: 4
objects:
- person
```
### 区进入延迟
为防止边界框判断误差导致误报,可以设置对象必须连续多帧位于区内才视为有效进入:
```yaml
cameras:
您的摄像头名称:
zones:
front_yard:
inertia: 3
objects:
- person
```
对于需要快速响应的场景如车辆驶入车道可将延迟设为1
```yaml
cameras:
您的摄像头名称:
zones:
driveway_entrance:
inertia: 1
objects:
- car
```
### 速度估算
Frigate可以估算对象在区内的移动速度。此功能需要将区定义为4个点并测量实际距离。最适合用于监测道路上车辆的速度。
![地面平面4点区](/img/ground-plane.jpg)
速度估算需要对象被追踪足够多帧才能计算因此区应远离对象进出位置。_区不应占据整个画面_。对象速度会在其位于区内时持续计算并存入数据库。
配置中需通过`distances`字段指定各点间的实际距离:
```yaml
cameras:
您的摄像头名称:
zones:
street:
coordinates: 0.033,0.306,0.324,0.138,0.439,0.185,0.042,0.428
distances: 10,12,11,13.5 # 单位米或英尺
```
距离单位由`ui`配置决定:
```yaml
ui:
# 可选"metric"(公制)或"imperial"(英制),默认为公制
unit_system: metric
```
2025-04-29 16:58:32 +03:00
估算速度会显示在调试视图和MQTT事件中详见[MQTT文档](/integrations/mqtt.md#frigateevents)。
2025-04-29 16:20:14 +03:00
#### 最佳实践与注意事项
- 最适合直线道路场景,转弯会导致估算不准
- 确保对象底部中心点直线穿过区且不被遮挡
- 可适当降低`inertia`值提高响应速度
- 实际测量越精确,估算越准确(但需注意透视失真影响)
- 离开区后速度数据可能不准确
- **仅为估算值**,不适用于执法用途
### 速度阈值
可设置区的最小速度要求,只有达到该速度的对象才会被视为进入区:
```yaml
cameras:
您的摄像头名称:
zones:
sidewalk:
coordinates: ...
distances: ...
inertia: 1
speed_threshold: 20 # 单位取决于unit_system设置
```