AI (人工智能): 配置

本地对象识别

Agent DVR 支持使用 AI 模型文件 (.onnx) 进行实时实时物体识别。您需要一个许可证(或有效订阅)才能使用此功能。有关配置 Agent 使用外部 AI 服务器的信息,请参见AI 服务器

要开始,请编辑您的摄像头并转到物体识别选项卡。在顶部选择您的 AI 服务器。默认是内部,这是 Agent DVR 内置的 AI。如果您想使用 AI 服务器,请在服务器设置 - AI 设置 - AI 服务器中添加它,然后在此处选择。

以下详细信息用于配置 Agent DVR 及其快速内置 AI。您还可以添加任何其他模型,例如Ultralytics YOLO 模型

  • 模型:选择您想要使用的 AI 模型。Agent 会根据需要自动下载内置模型。Tiny 模型适用于低端硬件或大量摄像头。Medium 模型适用于更好的准确性,但使用更多的处理能力。
  • 模式:选择您希望 AI 处理视频帧的时间。如果您选择间隔,Agent 将使用下面的处理速率字段持续分析您的视频流。
  • 叠加:选中以在实时视频上绘制实时结果。这对于调整置信度限制非常有用。
  • 模糊:选中此项以模糊识别的物体(例如,人)。
  • 使用 GPU:选中此项以使用您的 GPU 而不是 CPU。
  • 处理速率:仅在模式间隔时使用 - 它控制发送到模型的帧速率。输入 1 表示每秒 1 帧,20 表示每秒 20 帧,或 0.1 表示每 10 秒 1 帧。
  • 置信度:这会过滤模型的结果。将其调高以减少误报,但请注意,这也可能会漏掉物体。
  • 检查角落:有关更多详细信息,请参见检查角落
  • 查找:指定 AI 要检测的物体。此处的选项列表来自模型配置。
  • 忽略静态物体:忽略在同一位置重复发现的物体。
  • 容差:这控制物体在被标记为非静态之前可以移动多少。
自定义模型

要将您自己的模型添加到 AI,请将模型文件 (.onnx) 复制到 Agent 的模型文件夹中,并参见添加模型

操作

物体识别生成AI: 找到物体AI: 未找到物体事件,以便在操作中使用。

照片

有关照片的信息,请参见照片

将 Ultralytics YOLO 模型转换为 ONNX

Agent DVR 支持用于物体识别的 ONNX 模型文件。您可以下载预训练模型并通过几个步骤将其转换为 ONNX 格式。

下面的示例使用了通过 Ultralytics 提供的 YOLO26s 模型。YOLO26s 是一个较小的通用模型,具有良好的速度/准确性权衡。

先决条件
  • Python 3.10 或更高版本
  • PATH 中可用 pip
  • 互联网连接
  • 约 1–2 GB 的可用磁盘空间
步骤 1 – 安装 Ultralytics
pip install ultralytics
步骤 2 – 下载 YOLO26s 模型

Ultralytics 在首次使用时会自动下载预训练权重:

yolo detect predict model=yolo26s.pt source=https://ultralytics.com/images/bus.jpg
步骤 3 – 转换为 ONNX

下载完成后,将模型导出为 ONNX 格式:

yolo export model=yolo26s.pt format=onnx opset=12 simplify=True
Python 替代方案
from ultralytics import YOLO

model = YOLO("yolo26s.pt")
model.export(format="onnx", opset=12, simplify=True)
步骤 4 – 找到 ONNX 文件

导出的

yolo26s.onnx
文件将在您的工作目录或
runs/export
文件夹中创建。

步骤 5 – 复制到 Agent DVR

将 ONNX 文件移动到您的 Agent DVR ONNX 模型文件夹(在 Agent 服务器上),例如:

Agent\Media\Models\ONNX\
步骤 6 – 在 Agent DVR 中添加模型
  1. 转到 服务器设置 > AI 设置 > AI 模型
  2. 点击 配置 并添加新模型。
  3. 输入名称(例如
    yolo26s
    ),并在下拉菜单中选择
    .onnx
    文件。
  4. 将其余选项保留为默认值,然后点击 确定
  5. 编辑您的摄像头,打开 物体识别 选项卡,将 服务器 设置为 内部,并选择您的新模型。
注意: 请勿重新分发预训练的 Ultralytics 模型文件(包括从预训练权重派生的转换 ONNX 文件)。请提供用户直接下载它们的说明。

本地人脸识别

Agent DVR 支持使用 AI 进行实时实时人脸识别。您需要一个许可证(或有效订阅)才能使用此功能。有关配置 Agent 使用外部 AI 服务器的信息,请参见AI 服务器

要开始,请编辑您的摄像头并转到人脸识别选项卡。在顶部选择您的 AI 服务器。默认值为内部,这是 Agent DVR 内置的 AI。如果您想使用 AI 服务器,请在服务器设置 - AI 设置 - AI 服务器中添加它,然后在此处选择。

以下详细信息用于配置 Agent DVR 以使用其快速内置 AI。

  • 模式:选择您希望 AI 处理视频帧的时间。如果选择间隔,Agent 将使用下面的处理速率字段持续分析您的视频流。
  • 叠加:勾选以在实时视频上绘制实时结果。这对于调整置信度限制非常有用。
  • 模糊:勾选此项以模糊面孔。
  • 使用 GPU:勾选此项以使用您的 GPU 而不是 CPU。
  • 处理速率:仅在模式间隔时使用 - 它控制发送给模型的帧速率。输入 1 表示每秒 1 帧,20 表示每秒 20 帧,或 0.1 表示每 10 秒 1 帧。
  • 置信度:这会过滤模型的结果。将此值调高以减少误报,但请注意,这也可能会漏掉人。
  • 检查角落:有关更多详细信息,请参阅检查角落
要识别的面孔

点击编辑面孔以上传您想要识别的人的照片。您可以上传同一个人的多张照片以改善结果。您可以从文件系统上传图像或使用内置摄像头捕捉照片(需要 SSL 或 localhost)。

操作

人脸识别会生成AI: 识别到面孔AI: 未识别到面孔事件,以便在操作中使用。

照片

有关照片的信息,请参见照片

本地车牌识别

Agent DVR 支持实时实时车牌识别。您需要一个许可证(或有效订阅)才能使用此功能。有关配置 Agent 使用外部 AI 服务器的信息,请参见AI 服务器

要开始,请编辑您的摄像头并转到LPR选项卡。在顶部选择您的 AI 服务器。默认值是内部,这是 Agent DVR 内置的 AI。如果您想使用 AI 服务器,请在服务器设置 - AI 设置 - AI 服务器中添加它,然后在此处选择。

以下详细信息用于配置 Agent DVR 及其快速内置 AI。

  • 模式:选择您希望 AI 处理视频帧的时间。如果您选择间隔,Agent 将使用下面的处理速率字段持续分析您的视频流。
  • 叠加:勾选以在实时视频上绘制实时结果。这对于调整置信度限制非常有用。
  • 模糊:勾选此项以模糊检测到的车牌。
  • 使用 GPU:勾选此项以使用您的 GPU 而不是 CPU。请注意,这目前仅在 Windows 或 macOS 上有效,因为 GPU 驱动程序和运行时支持。Linux 目前回退到 CPU。
  • 处理速率:仅在模式间隔时使用 - 它控制发送到模型的帧速率。输入 1 表示每秒 1 帧,20 表示每秒 20 帧,或 0.1 表示每 10 秒 1 帧。
  • 置信度:这会过滤模型的结果。将其调高以减少误报,但请注意,这也可能会漏掉物体。
  • 检查角落:有关更多详细信息,请参见检查角落
需要查找的车牌
  • 车牌:输入一个以逗号分隔的车牌列表或包含车牌的 CSV 文件的 URL。Agent DVR 将为这些车牌生成车牌识别车牌未识别事件,这些事件可以触发操作。
  • 重新加载间隔:设置从 URL 重新加载车牌列表的频率。
  • 规范化:调整常被误识别的车牌以改善匹配。
操作

对象识别生成AI: 车牌识别AI: 车牌未识别事件,以供操作使用。

照片

有关照片的信息,请参见照片

AI警报过滤

要在 Agent DVR 中设置警报过滤,请按照以下步骤操作:

  • 配置并启用运动检测器。为了最小化 CPU 使用,使用简单检测器。确保至少定义一个区域以覆盖您想要监控的区域。
  • 警报标签上,将模式设置为仅操作并启用警报。
  • 在录制标签上,将模式设置为警报(如果您想要录制)
  • 对象识别标签上启用对象识别。将模式设置为检测到运动,选择一个模型,然后单击查找以选择要检测的对象,例如人、狗、车等。
  • 在标签菜单中转到操作并为事件AI: 找到对象添加一个操作。

    选择区域以指定检测对象的位置,例如为您的车道和道路选择不同的区域。例如,选择车道区域仅在检测到汽车时触发警报。

    任务下,单击添加以创建一个警报任务。单击确定两次以确认。

Agent DVR将在检测到运动时处理AI对象识别。如果它在选定区域内检测到指定对象,将触发一个动作以发出警报。如果没有选择区域,将对任何区域触发警报。

LPR识别人脸识别音频识别类似地设置警报过滤器。

要在没有运动检测触发的情况下进行持续的AI对象识别,请将对象识别的模式设置为间隔。监控对硬件资源的影响,并根据需要进行调整。

您可以为不同区域中的不同对象配置多个动作。在动作中使用{AI}标签以引用检测到的对象。

如果您的AI服务器无响应,并且您正在使用它来过滤运动检测警报,Agent DVR将把所有事件视为有效警报,直到服务器恢复。此行为可以通过对象识别下的运动直通开关进行切换。
在您的动作中利用过滤器,根据Agent DVR的检测执行不同的响应。例如,您可以为门口的人配置一个口头的“检测到入侵者”警报,或者如果在沙发上检测到猫,则播放吠叫声。

AI过滤器故障排除

如果AI无法有效地过滤您的录像,请考虑以下事项:

  • 确保查找设置与可用选项之一匹配。
  • 验证Agent左上角显示的主警报开关是否有一个关闭的挂锁,表示活动警报。
  • 确认录制模式设置为警报而不是检测。
  • 确保警报模式设置为仅动作
  • 尝试降低对象识别下的置信度级别。
  • 检查/logs.html以查看错误消息,可能指示服务器问题或网络阻塞。
  • 监视AI服务器性能,并确保它不会导致系统超载或超时。
  • 如果AI检测到所有对象类别,则可能表示GPU问题。检查GPU驱动程序或切换到基于CPU的AI模块。

AI物体识别

```html
AI Object Recognition Settings

Agent DVR中的对象识别使用我们的本地AI或AI服务器(推荐使用CodeProject.AI)来识别视频流中的特定对象,并可以生成事件、发出警报或作为运动警报的过滤器

  • 启用: 切换以启用或禁用AI处理。
  • AI服务器: 从您配置的服务器中选择,或使用默认选项。
  • 模式: 选择AI处理的触发器。通过将其设置为无并调用triggerObject仅通过API触发。
  • 运动直通: 如果AI服务器宕机并过滤警报,则允许警报不经过过滤直接通过。
  • 使用快照URI: 使用来自摄像头的高分辨率帧,而不是当前的实时流帧。
  • 调整大小模式: 在将图像发送到AI服务器之前调整图像大小,以减少负载并提高响应时间。
  • 叠加: 在实时视频流上显示AI结果。
  • 颜色: 叠加的颜色。此设置控制所有AI功能的叠加颜色。
  • 最小间隔: 设置服务器请求之间的最小时间。
  • 置信度: 设置识别对象的最小置信度水平。
  • 检查角落: 有关更多详细信息,请参阅检查角落
```
模型
  • 发现: 从您的服务器检索已安装的模型(特定于 CodeProject.AI)。
  • 模型端点: 从可用模型中选择或使用默认端点。
  • 对象类别: 自动填充相关类别或手动输入。
  • 查找: 指定要让 AI 检测的对象。
  • 忽略静态对象: 忽略在同一位置重复出现的对象。
自定义模型

要将自定义模型添加到 CodeProject.AI,请将模型文件复制到指定目录。通过发现按钮访问,但需手动将对象列表添加到 对象类别

通过编辑对象识别模块设置更改模型存储目录。

操作

对象识别生成 AI:找到对象AI:未找到对象 事件以供 操作 使用。

照片

有关照片的信息,请参见 照片

请求人工智能

Agent DVR使用AI服务器(OpenAI/ Claude等)来回答关于摄像头图像的人类可读问题。然后可以生成事件,触发警报,或作为运动警报的过滤器。您需要在服务器设置 - AI服务器 - 询问AI 中完成设置。

使用所选AI提供商的API会有第三方成本,因此请确保您的设置只在需要时发送请求。

您可以在本地服务器的/logs.html中查看日志,以查看何时发送请求。将服务器设置 - 日志记录 - 日志级别设置为Info。

  • 已启用:切换以启用或禁用AI进程。
  • 提供商:选择要用于处理图像的AI提供商。提供商需要在服务器设置 - AI服务器中配置。如果选择默认值,则将使用第一个配置的提供商。
  • 模式:选择AI进程的触发器。通过将其设置为无并调用triggerAskAI来仅通过API触发。
  • 运动穿透:如果AI服务器宕机并且过滤警报,则允许警报通过而不进行过滤。
  • 使用快照URI:使用摄像头的高分辨率帧而不是当前的实时流帧。
  • 调整大小模式:在将图像发送到AI服务器之前调整图像大小,以减少负载并提高响应时间。
  • 叠加:在实时视频流上显示AI结果。
  • 最小间隔:设置服务器请求之间的最小时间。
AI消息
  • 消息:在这里输入您对AI的问题。一些示例:
    • 如果在这张图片中看到火,请回复FIRE。如果看到一只狗坐在沙发上,请回复DOG。如果门是开着的,请回复DOOR。如果满足多个条件,请用逗号分隔。
    • 如果工作台上的机器灯是红色的,请回复ALERT
    • 如果警车停在车道上,请回复POLICE
    • 如果地板上有邮件或包裹,请回复MAIL
    • 如果看起来有人闯入了我的房子,请回复BREAKIN
  • 查找:输入您已指示AI回复的标签。例如FIRE,DOG,DOOR
  • 不重复:忽略上次调用AI返回的标签

如上所述,您可以要求消息中满足多个条件,并设置处理每个结果的操作。

提示!您可以在消息中添加特殊标签[TIME],将当前本地时间传递给AI - 这样您可以根据时间执行检查。例如,“当前时间是[TIME],如果晚于晚上8点并且车库门是开着的,只回复GARAGE”
操作

场景识别生成询问AI:积极结果事件,用于操作

Open AI操作
照片

有关照片的信息,请参见照片。请注意,AI目前尚未返回有关图像中物体位置的空间数据,因此裁剪和静态检测目前无法使用。

AI照片

AI照片配置

AI处理可以在识别到物体时捕获照片,提供保存、裁剪、FTP上传等选项。

要配置此功能,请在编辑摄像头时,转到每个AI配置选项卡底部的照片选项。启用照片并点击进行配置。

  • 标签:Agent在图像上叠加方框并标记检测到的物体。
  • 裁剪:Agent将图像裁剪到每个检测到的区域,并保存多个图像,每个区域一个。
  • FTP:将保存的图像上传到摄像头配置的FTP服务器。
  • 防止重复:Agent避免保存同一物体的多个副本,直到其离开运动区域。
在配置AI照片设置时要谨慎,不正确的配置可能导致保存过多的图像。设置完成后,请监控保存图像的频率。

询问 AI:描述

v5.8.2.0+ 开始,您可以使用人工智能来描述Agent DVR从摄像头捕获的图像在警报事件中。然后,此描述将与UI中的警报一起存储。要设置此功能,请配置 询问AI 以用于您的摄像头,并在 描述 下方查看底部的选项。

Open AI Actions
  • 提示: 输入要与您的图像一起发送到AI服务器的提示。默认为"描述此图像中正在发生的事情的简短句子"。您也可以尝试一些有趣的内容,例如"用海盗语描述正在发生的事情",就像我们在上面的图像中使用的那样。
  • 接下来,请转到 警报 选项卡并勾选 描述 选项。

请注意,您需要启用 询问AI。如果您只希望它描述警报图像,请将 模式 设置为“无”。

一旦您让它注释您的图像,您可以将其与 操作 系统集成,以进行 AI:描述响应已收到。您可以在此操作的任务中使用 {MESSAGE} 和 {AIJSON} 进行其他集成。

LPR或ALPR

更新版本的 Agent DVR 内置了 AI,能够实现更快的处理速度和更少的开销。使用 本地 AI,可以实时响应,而不是依赖较慢的 AI 服务器。
AI LPR 配置

LPR(车牌识别,也称为 ALPR/ANPR)利用 AI 服务器识别和读取视频流中汽车的车牌。它生成事件、发出警报,或作为运动警报的过滤器。

  • 启用: 切换以启用或禁用 AI 处理。
  • AI 服务器: 从您配置的 服务器 中选择或使用默认选项。Agent DVR 支持通过 CodeProject.AI、PlateRecognizer.com、Gemini 或任何兼容 OpenAI 的视觉 LLM(如 vLLM、Ollama 和 LM Studio)进行 LPR。
  • 模式: 选择 AI 处理的触发器。通过将此设置为“无”并调用 triggerLPR 仅通过 API 触发。
  • 使用快照 URI: 选择来自摄像头的高分辨率帧,而不是当前的实时流帧。
  • 叠加: 将 AI 结果叠加到实时视频流上。
  • 最小间隔: 设置服务器请求之间的最小时间以减少负载。
  • 置信度: 定义识别车牌的最低置信度水平。
  • 检查角落: 有关更多详细信息,请参阅 检查角落
  • 车牌: 输入以逗号分隔的车牌列表或包含车牌的 CSV 文件的 URL。Agent DVR 将为这些车牌生成 识别到的车牌未识别到的车牌 事件,这些事件可以触发操作。
  • 重新加载间隔: 设置从 URL 重新加载车牌列表的频率。
  • 标准化: 调整常被误识别的车牌以改善匹配。
  • 品牌、型号和颜色: 仅在使用支持这些功能的 PlateRecognizer.com 付费计划时启用此项。此功能在免费计划中包含。详细信息将包含在 Agent DVR 操作的 {AIJSON} 中。
操作

LPR 生成 AI: 识别到车牌AI: 未识别到车牌 事件,以供在 操作 中使用。

照片

有关照片的信息,请参见 照片

使用 ALPR-Database

您可以与 ALPR-Database.com 设置集成,以存储您的车牌。有关说明,请参见 Agent DVR 与 ALPR-Database

AI人脸识别

较新版本的 Agent DVR 内置了 AI,能够实现更快的处理速度和更少的开销。使用 本地 AI,可以实时响应,而不是依赖较慢的 AI 服务器。
AI 人脸识别设置

人脸识别利用 AI 服务器(推荐:CodeProject.AI)来识别视频流中的特定人脸。它可以生成事件、发出警报,或作为 运动警报的过滤器。可以通过您的摄像头或上传图像来添加、编辑或删除人脸。有关更多信息,请参见本标签中的 编辑人脸

  • 启用: 切换以启用或禁用 AI 处理。
  • AI 服务器: 从您配置的 服务器 中选择,或使用默认选项。
  • 模式: 选择 AI 处理的触发器。仅通过将其设置为无并调用 triggerFace 进行 API 触发。
  • 使用快照 URI: 选择来自摄像头的高分辨率帧,而不是当前的实时流帧。
  • 叠加: 将 AI 结果叠加到实时视频流上。
  • 最小间隔: 设置服务器请求之间的最小时间以减少负载。
  • 置信度: 定义识别一个人脸的最小置信度水平。
  • 检查角落: 有关更多详情,请参阅 检查角落
  • 编辑人脸: 上传图像到服务器数据库以进行识别。确保每张图像中仅可见一个人脸,并且清晰可辨。
操作

人脸识别生成 AI: 人脸识别AI: 人脸未识别 事件以供 操作 使用。

照片

有关照片的信息,请参见 照片

AI音频识别

AI音频识别设置 AI音频识别标签

Agent DVR中基于AI的音频识别可以响应来自麦克风或音频流的已识别声音。从服务器设置 - 数据 - AI音频模型(需要iSpyConnect.com账户)下载模型文件以进行设置。

您需要编辑麦克风设置来设置音频识别。如果您有一台带有音频流的摄像机,您可以通过编辑摄像机并选择音频选项卡,然后点击“配置”来访问音频设置。

  • 启用:切换以启用或禁用AI进程。
  • 模式:选择AI进程的触发器。
  • 置信度:设置声音识别的最低置信水平。
  • 叠加:在实时音频可视化上显示AI结果。
  • 监听:选择AI要检测的特定声音。

点击监听显示可用于检测的声音。根据需要选择声音。

使用操作 AI:声音识别来执行声音被识别时的任务。

音频识别还可以用于过滤警报,类似于摄像机。

AI语言

要更改Agent DVR中标签和标记的显示语言,请转到服务器菜单 - 设置 - 回放 - 默认语言。

将操作添加到AI事件

Agent DVR 通过 AI 进程生成事件,可以触发操作。例如,对象识别生成“找到对象”和“未找到对象”的事件。Agent 中的每个 AI 系统都会产生独特的事件。

这些事件可以触发各种操作,例如触发警报、使用对象标签调用 URL、执行程序或将消息发布到 MQTT 服务器。在操作中使用标签 {AI} 表示标签,或使用标签 {AIJSON} 表示来自 CodeProject.AI 的完整 JSON 响应。