配置: 运动检测

关于

动作检测监视您的摄像机源以检测动作,使Agent DVR可以仅在实际发生情况时才录制和警报。这样可以节省磁盘空间,使素材审阅速度快得多,并可以在有人进入您的车道或车辆停在外面时立即通知您。

Agent DVR中的动作检测在启动警报和促进AI处理中起着至关重要的作用。您可以配置Agent DVR在检测到动作或触发警报时进行录制。要设置这些选项,请导航到录制菜单并参考模式设置。另外,动作检测可用于激活各种操作

需要注意的是,由于动作检测无法区分实际物体运动和环境因素(如风、雨或亮度变化),有时可能导致误警。要减少此类误警,您可以通过将Agent DVR与CodeProject.AI集成来提高动作检测的准确性,以实现更复杂的警报过滤。

设置运动检测

运动区域让您能够将检测集中在重要的区域,如门口、车道或花园路径,同时忽略繁忙区域(如道路或摇晃的树木)造成的误报。

Agent DVR中的运动检测器区域控件可通过编辑摄像机并从右上菜单选择检测器来访问。要设置检测器,首先需要定义要监控的区域。Agent DVR支持最多9个区域,每个区域由不同颜色表示,可通过区域下拉菜单选择。要创建区域,点击笔工具并在视频预览上绘制。使用鼠标左键或触摸绘制,在桌面上使用鼠标右键擦除。笔尖工具调整绘制笔尖的大小,橡皮擦工具删除已绘制的区域。重置工具可用于用选定的区域填充整个区域。Agent DVR随后会监控这些彩色区域的运动。

  • 启用:切换检测器的使用。
  • 检测器:选择运动检测器类型并使用按钮配置它。各种运动检测器在各自的部分中有说明。
  • 叠加层:在实时视频上显示或隐藏运动检测叠加层。
  • 颜色:调整运动检测叠加层的颜色(不适用于所有检测器)。
  • 模糊:在实时视频中对检测到的对象进行像素化,对隐私保护很有用。
  • 超时:设置摄像机在停止检测运动后保持运动状态的时间(以秒为单位,1到60之间,默认为3)。这有助于减少快速重复的事件。

使用区域

区域对AI检测器(人脸/车牌识别/物体识别)和物体跟踪检测器(如绊线、速度、物体跟踪)至关重要。您可以在检测器配置中选择哪些区域将触发警报,或为特定区域的警报指定操作

简单检测器在所有区域检测到足够的运动时触发警报。

某些检测器类型不使用区域设置,例如MQTT、ONVIF或通过API调用触发的运动。

使用运动区域

运动区域是可配置的区域组,您可以为其命名并保存以备将来使用。要将当前的运动区域配置保存为新区域,请单击 区域 旁边的编辑图标。这些工具允许您添加、编辑和删除区域。

在将 PTZ 摄像机移动到 PTZ 预置位时应用运动区域(使用 Agent UI):

  • 创建并保存一个具有特定名称的新运动区域配置,例如 "停车场"。
  • 添加一个新的 操作

    如果:"应用 PTZ 预置位"
    选择 PTZ 预置位命令(例如 "转到预置位 1")。注意:您的摄像机必须支持 PTZ 预置位才能正常工作。
    点击添加任务:
    任务:"设置运动检测区域"
    选择您的新区域("停车场")。
    点击两次确定。现在,每当您选择该预置位,或者如果 Agent 通过计划或其他事件设置预置位,该运动区域将自动应用。

您还可以使用 计划程序 修改运动检测器区域。此功能允许根据白天、星期或特定日期的不同来配置不同的运动区域。

简易检测器

Simple

简单检测器识别摄像头视野内的任何移动。它使用极少的CPU(只有ONVIF检测器使用更少,它依赖摄像头本身)。检测到的移动以红色突出显示,便于您轻松辨别场景中的移动来源。这是大多数摄像头的良好默认选择,并与AI服务器配合使用可有效过滤误报。

  • 高级:有关其他设置和选项,请参阅下方的高级部分
  • 灵敏度:调整触发检测所需的运动级别。同时设置最小值和最大值可以细化检测;例如,最大值设为80可以帮助忽略大规模亮度变化。滑块下的数字表示像素变化的百分比。
  • 增益:对变化的像素应用乘数以增加或降低运动检测的灵敏度。

HAAR对象检测器

此方法使用称为HAAR级联的文件来识别视频源中的对象。但是,使用简单检测器与AI Server可能会获得更好的结果。

  • Frame Size: 选择处理的帧大小。较小的帧可以降低CPU使用率,但准确度可能会降低。
  • Detect Interval: 设置帧处理的频率,单位为毫秒。例如,200等于每秒5次,1000等于每秒1次。
  • Width Limits and Height Limits: 定义Agent DVR要检测的对象的大小范围,表示为帧宽度或高度的百分比。调整这些滑块将在视频上显示叠加层,指示目标对象的大小范围。
  • Use GPU: 使用GPU进行处理的选项,仅在您的GPU支持Cuda且已安装必要驱动程序时可用。
  • File: 选择HAAR级联文件以配置对象检测器。提供了用于检测人脸和猫脸的默认文件。
  • Alert Condition and Alert Number: 根据检测到的对象数量配置Agent DVR以生成警报。例如,要在识别到人脸时触发警报,请将条件设置为"More Than",将Alert Number设置为0。
  • Alert Zones: 指定要包含在监控区域中的运动区域。
  • Check Corners: 如需更多详情,请参见Checking Corners

角落检测

Agent使用一种复杂的方法来确定检测到的对象是否应该根据您的区域配置触发警报或动作。它通过检查检测到的对象的中心点和(可选地)扩展到对象边界框的角落的网格来实现这一点。您可以通过设置代表从中心点到边界框角落的距离的百分比来调整此功能,从而调整此功能。实际上,设置为0意味着只检查中心点,100检查所有角落,50检查边界矩形的中心点和每个角落之间的中点。如果您收到许多事件通知,而对象似乎不在指定的区域内,则将“检查角落”设置为0可能会有益。

MQTT

您可以从您的 MQTT 服务器启动运动检测。首先,请确保您已经适当设置了 MQTT。然后,要触发对象检测,只需将检测器配置屏幕中指示的命令传递到 SERVER/commands 通道,其中 SERVER 是您的服务器名称(显示在您可以在设置中编辑的服务器菜单中)。此集成允许更多样化和响应灵敏的运动检测系统,利用您的 MQTT 服务器的功能。

ONVIF

许多ONVIF兼容设备都配备了自己的动作检测功能。选择此模式并将其与支持ONVIF的摄像机配对(在Agent中使用ONVIF连接类型)时,Agent DVR将依赖设备本身提供动作检测事件并基于这些事件触发操作。由于分析在摄像机上进行,这对服务器CPU的负载最轻。如果遇到此功能的任何问题,建议检查日志(在本地服务器的/logs.html处可访问),因为您的摄像机可能不支持ONVIF检测。有关配置这些设置的更多信息,请参阅Server ONVIF settings

  • Event Timeout: 重置动作状态前等待的时间(秒)。设置此值应高于摄像机的事件通知间隔。

人员检测器

该方法采用专门设计的算法来检测行人。但是,您可能会发现使用简单检测器并结合AI警报筛选能够提供更好的结果。

  • 使用GPU:决定是否使用GPU进行处理,仅当您的GPU支持Cuda且已安装必要驱动程序时可用。
  • 帧大小:选择用于处理的帧大小。请注意,较小的帧对CPU的负担较低,但可能产生较不准确的结果。
  • 检测间隔:设置帧处理的频率,单位为毫秒。例如,200等于每秒5次,而1000等于每秒1次。
  • 警报条件和警报数量:根据检测到的人数配置生成警报的条件。例如,要在检测到人员时触发警报,请将条件设置为"大于",并在警报数量字段中输入0。
  • 警报区域:选择应在检测区域内监控的特定运动区域。
  • 检查角落:有关更多详细设置,请参考检查角落
  • 置信度:检测计数所需的最小置信度级别。

Reolink

某些Reolink摄像机提供API端点,Agent DVR可以轮询该端点以接收动作或AI警报状态。如果您的摄像机支持此功能,您可以使用此检测器。要检查您的摄像机是否具有此功能,请尝试访问URL:http://[IP ADDRESS]/api.cgi?cmd=GetMdState&channel=0&rs=Get&user=[USERNAME]&password=[PASSWORD](将[IP ADDRESS]、[USERNAME]和[PASSWORD]替换为您摄像机的IP地址和登录凭据)。成功连接将返回JSON格式的文本而不是错误页面。

  • 间隔:确定Agent DVR轮询摄像机获取警报或动作数据的频率。
  • 通道:要轮询的通道。独立摄像机使用0;NVR上的通道可能不同。
  • 模式:在"动作"和"AI"之间选择。两种模式都会在Agent DVR中触发动作检测器事件,可用于录制(将录制模式设置为检测)。"AI"选项在摄像机识别特定对象类别(如dog_cat、face、people、vehicle)时触发动作检测。
  • 使用SSL:通过HTTPS连接到摄像机。

您可以配置操作以在检测到标记为dog_cat、face、people或vehicle的对象时执行任务。

注意:要启用AI功能,您可能需要在摄像机的Web UI中激活跟踪,并设置最小和最大对象大小参数。Agent DVR随后将使用Reolink识别的对象标记您的录制内容。

海康威视

海康威视摄像头提供ISAPI端点,Agent DVR可以监控该端点以接收动作或AI警报状态。如果您的摄像头支持此功能,可以使用此检测器。请查看您的摄像头文档以了解是否支持此功能。

  • 使用SSL:是否对连接使用SSL。
  • 端口:Agent将根据使用SSL情况选择端口80或443,但您可以在此处覆盖该设置。
  • 通道:您的摄像头使用的通道 - 对于摄像头此值通常为1,但如果您有海康威视NVR则可能不同
  • 灵敏度:动作检测器的灵敏度值,范围在0(最不灵敏)到100(最灵敏)之间。

这些摄像头也可以检测其他事件(如越界、入侵、徘徊或区域进入)。Agent DVR将每个事件映射到一个命名类别,并触发标记有该类别名称的"AI对象检测到"事件,例如:越界检测、入侵检测、区域进入、区域退出、徘徊、停泊、无人行李。在"AI对象检测到"下添加操作并使用这些标签进行过滤。要查看您的摄像头生成的事件,请在服务器设置中将日志记录设置为调试,然后在服务器菜单中查看日志。

速度检测

该方法使用您提供的场景信息来跟踪移动物体、估计其速度,并在物体移动过快或过慢时生成警报。

  • Advanced: 如需更详细的设置,请参阅下方的advanced section
  • Width Limits and Height Limits: 定义场景中物体检测的尺寸范围,值表示为场景宽度或高度的百分比。调整这些滑块将在视频上显示覆盖层,指示物体的目标尺寸范围。
  • Minimum Travel: 设置物体必须移动的最小距离以被视为运动状态,基于场景宽度的百分比。
  • Minimum Time: 指定物体保持运动状态以被跟踪的时间持续时间,单位为十分之一秒(例如,1 = 0.1秒,10 = 1秒)。
  • Speed Measurement: 选择覆盖层的首选速度测量单位。
  • Speed Limits: 确定速度检测的下限和上限。超出此范围的移动将触发动作检测事件。
  • Horizontal and Vertical Distance: 输入场景中的总距离(以米为单位)。Agent DVR使用此测量值来计算移动物体的速度。
  • Alert Zones: 选择哪些动作区域包含在监控区域中。
  • Check Corners: 如需其他设置,请参阅Checking Corners

对象跟踪

该检测器识别并跟踪移动物体,根据物体在场景中的存在时长和移动距离触发动作检测事件。

  • 高级:有关更多详细设置和选项,请参阅下方的高级部分
  • 宽度限制和高度限制:为物体检测指定尺寸范围,数值以场景宽度或高度的百分比形式给出。调整这些滑块将在视频上覆盖目标物体尺寸范围的可视化表示。
  • 最小移动距离:定义物体必须移动的最小距离才能被识别为移动物体,相对于场景的宽度。
  • 最小时间:设置物体需要处于运动中的最小时长才能被考虑用于跟踪,单位为十分之一秒(例如,1 = 0.1 秒,10 = 1 秒)。
  • 显示总数:向实时视频源添加计数器以跟踪移动物体。
  • 热力图:通过向跟踪物体添加线条来可视化一段时间内的移动模式。
  • 警报区域:选择监测区域中应包含的动作区域。
  • 检查角落:如需更多信息,请参阅检查角落

当 Agent DVR 监测并跟踪场景中的移动时,它会在检测到的物体周围显示彩色矩形。这些颜色的含义如下:

  • 白色:物体刚检测到并正在评估中。
  • 黄色:物体已在多个帧中检测到。
  • 橙色:物体移动时间至少达到跟踪设置中指定的最小时间。
  • 红色:物体已满足所有跟踪要求以触发动作检测事件。

行程线

此检测器可识别并跟踪移动物体,当物体穿过场景中预定义的绊线时触发动作检测事件。用于线条穿过检测,例如在有人穿过栅栏线或通过门进入时获得警报。要添加绊线,只需在实时视频上单击并拖动。您可以创建最多 10 条绊线。要删除绊线,单击并拖动其中一个点出场景即可。

  • 高级:有关更多详细设置和选项,请参阅下方的高级部分
  • 宽度限制和高度限制:设置要检测的物体的大小范围,值表示为场景宽度或高度的百分比。调整这些滑块将在视频上叠加目标大小范围的可视化表示。
  • 最小移动距离:指定物体必须移动以被识别为移动物体的最小距离,相对于场景的宽度。
  • 最小时间:定义物体必须在运动中以被跟踪的最小时间持续时间,单位为十分之一秒(例如,1 = 0.1 秒,10 = 1 秒)。
  • 重复触发:启用此选项可允许物体多次触发同一绊线。默认情况下,物体只能触发一次绊线。
  • 计数:显示物体穿过绊线的次数计数,以及穿过的方向。选项包括计数左穿、右穿、双向穿或总穿越次数。
  • 警报:配置系统在绊线被以指定方向或任何方向穿过时生成警报。
  • Alert Zones: 选择哪些动作区域包含在监控区域中。
  • 检查角落:如需更多信息,请参阅检查角落

通过API

要使用API调用为摄像机启动动作检测,必须定义对象类型(ot)和对象ID(oid)。例如,对于摄像机(ot=2)且ID为1(oid=1;编辑设备时此ID显示在编辑控件的顶部),API调用应按如下方式结构化:

http://localhost:8090/command/detect?ot=2&oid=1

高级设置

检测器的默认设置通常适合大多数场景,但如有必要,您可以微调它们以获得更好的性能。

  • 分析器: 当前可用的分析器是CNT背景减除器,以其高精度和低CPU占用率而闻名。
  • 帧大小: 选择用于处理的帧大小。较小的帧可以降低CPU占用率,并且由于降噪可能实际上改善追踪效果。
  • 追踪器: 选择OpenCV追踪器进行目标追踪。选项包括:
  • MOSSE: 此追踪器提供最低的CPU占用率,但精度最低。
  • CSRT: 精度最高的选项,但CPU占用率也较高(默认)。
  • 最大对象数: 设置同时追踪的对象数量限制。对象越多,CPU占用率越高。
  • 检测间隔: 定义帧处理频率以进行动作检测,以毫秒为单位(例如,200表示每秒5次,1000表示每秒1次)。
  • 追踪间隔: 设置追踪器处理频率。更高的间隔可能会丢失快速移动的对象(例如,200表示每秒5次,1000表示每秒1次)。
  • 像素稳定性: 确定像素被认为稳定的样本数量和像素保持相同颜色可获得的最大"信用"。这些设置对于有效的背景减除和运动检测至关重要。 更多信息
  • 使用历史: 启用此选项可学习场景中持续运动的对象。通常建议保持禁用状态,除非必要。
  • 并行处理: 在动作检测算法中激活并行处理。建议保持启用状态。
  • 追踪超时: 指定等待时间(以秒为单位),以便在停止追踪对象之前对象重新出现。
  • 运动超时: 设置等待时长(以秒为单位),以便在停止追踪静止对象之前它再次移动。
提示!图像中的噪点可能会影响追踪结果。将帧大小设置为较小值可以模糊噪点并改善追踪结果。