65.9K
CodeProject 正在变化。 阅读更多。
Home

常见问题解答:Blue Iris 和 CodeProject.AI Server

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2投票s)

2023 年 4 月 7 日

CPOL

15分钟阅读

viewsIcon

64870

本文是一篇持续更新的常见问题解答,介绍如何将 Blue Iris 与 CodeProject.AI Server 结合使用。

在过去几周里,我们注意到许多关于使用 CodeProject.AI Server 和 Blue Iris 的问题。我们和 Blue Iris 团队一直在努力使 CodeProject.AI 与 Blue Iris 的整合更加顺畅和简单。尽管如此,有时 Blue Iris 用户手册、我们关于使用 CodeProject.AI Server 和 Blue Iris 的文章可能不足以解决所有问题,因此这里有一份常见问题解答,希望其中包含您在使用 CodeProject.AI Server 和 Blue Iris 时可能遇到的所有问题。如果您有其他问题,请随时在下方的评论区提出,本文将进行更新。另外,如果我们发现有新的问题需要添加到此常见问题解答中,本文也将进行更新。

我们还有一系列关于使用 CodeProject.AI Server 和 Blue Iris 的文章,提供深入的分步指南。如果此处遗漏了某些细节,例如在 Blue Iris 中设置摄像头,那么很可能在这些文章中的一篇中有详细介绍。

在本文中,我使用的是 Blue Iris 5,版本为 v5.7.3.0。您的版本可能略有不同。

如何在 Blue Iris 中设置 CodeProject.AI Server?

在 Blue Iris 主设置中,单击“AI”选项卡。

确保选中“在此 IP/端口上使用 AI 服务器”复选框。IP 地址通常会自动填充。对我而言,这是 _127.0.0.1_。我看到其他人也输入 _localhost_,这同样有效。

如果您有兴趣使用自定义模型进行以下检测,请选中“使用自定义模型”复选框。CodeProject.AI Server 自动附带所有这些自定义模型,并且您不一定需要使用这些模型来检测这些项目,但选中该框可确保您使用以下模型来检测以下内容:

  • actionnetv2 - 此模型可检测人类行为
    • 打电话
    • 鼓掌
    • 骑自行车
    • 跳舞
    • 喝水
    • 吃东西
    • 打架
    • 拥抱
    • 亲吻
    • 大笑
    • 听音乐
    • 跑步
    • 坐着
    • 睡觉
    • 发短信
    • 使用笔记本电脑
  • ipcam-animal - 此模型可检测以下动物:鸟、猫、狗、马、羊、牛、熊、鹿、兔子、浣熊、狐狸、臭鼬、松鼠、猪
  • ipcam-combined - 此模型可检测以下物品:人、自行车、汽车、摩托车、公交车、卡车、鸟、猫、狗、马、羊、牛、熊、鹿、兔子、浣熊、狐狸、臭鼬、松鼠、猪
  • ipcam-dark - 此模型可检测以下物品,并经过训练,可以从较暗的图像(可能是夜间图像)中识别这些物品:自行车、公交车、汽车、猫、狗、摩托车、人
  • ipcam-general - 此模型可检测以下物品,并经过训练,可以从较暗的图像(可能是夜间图像)中识别这些物品:人、车辆
  • license-plate - 此模型可检测车牌并报告车牌号码。此模型适用于白天(DayPlate)和夜晚(NightPlate)的车牌。

选中“默认对象检测”复选框以确定所用模型的复杂度。选择的尺寸越大(中、大),消耗的 CPU(或 GPU)资源就越多。我建议将其保留为默认值,即“”。

如果您打算检测人脸,请选中“人脸识别”复选框;如果您打算检测车牌,请选中“ALPR”复选框;如果您想使用计算机的 GPU 进行所有这些检测,请选中“使用 GPU”。

点击“确定”以接受这些设置。

就是这样!设置 CodeProject.AI Server 与 Blue Iris 所需的全部内容。

如何在 Blue Iris 中检测物体?

使用 CodeProject.AI Server 与 Blue Iris 的主要目的是进行检测。一旦您在 Blue Iris 中设置了 CodeProject.AI Server,您就可以开始检测了。在本节中,我们将介绍如何检测 CodeProject.AI Server 中包含的内容。作为示例,我将演示如何检测一个人。

确保 CodeProject.AI Server 已打开,并且“对象检测 (YOLOv5 6.2)”已启动。您可以通过在 Blue Iris 主设置的“AI”选项卡中点击“打开 AI 仪表板”,或者直接在浏览器中输入 _https://:32168/_ 来实现。

值得注意的是,如果您没有支持 CUDA 的 GPU,那么可以使用“对象检测 (YOLOv5 .NET)”。或者,您可以尝试 .NET 和 YOLOv5 6.2 之间的区别,看看哪种最适合您。如果您使用的是较旧的 GPU,“对象检测 (YOLOv5 3.1)”可能有所帮助。如果您使用的是 Raspberry Pi?可以使用 TFLite 模块(2.1 版新增)。为了使此常见问题解答条目保持简单,我将假定您使用的是“对象检测 (YOLOv5 6.2)”。

如果“对象检测 (YOLOv5 6.2)”因某种原因未运行,请点击其旁边的“...”,然后在下拉菜单中选择“启动”。

第一步是转到“摄像头设置”。

然后点击“触发器”选项卡。

然后,点击“人工智能”。要使用 CodeProject.AI Server 进行对象检测,您需要设置的大部分内容都在这里。

确保已选择 CodeProject.AI 或 DeepStack(应该已选择)。在“确认”框中,键入“person”。在此框中,您需要列出要检测的项目。您可以检测前一节 如何在 Blue Iris 中设置 CodeProject.AI Server 中列出的任何内容,只要您输入了正确的自定义模型名称即可。您还可以列出要检测的多个对象,只要它们用单个逗号分隔,并且没有空格。例如,如果我想检测人、狗和兔子,我会输入:“person,dog,rabbit”。

在我们的示例中,我们要检测人,而最适合此任务的模式是 ipcam-combined。因此,在“自定义模型”字段中,输入“ipcam-combined”。

至于多个复选框设置,最好模仿上图中勾选的以下复选框。特别是“保存 AI 分析详细信息”,这在我们关于如何在 Blue Iris 状态窗口中查看“AI”的另一篇常见问题解答中很有用。

您可以调整“最小置信度”、“**+ 实时图像**”和“一次分析一个”设置,看看哪种适合您。“最小置信度”表示 CodeProject.AI 对所识别的“确认”列表中的物体有多大信心。有些人希望此置信度很高以避免误报,但 50 通常是一个不错的起点。“**+ 实时图像**”是指在“一次分析一个”的间隔内,将有多少额外图像发送到 CodeProject.AI Server 进行分析。无论您为“**+ 实时图像**”设置了多少,一旦检测到目标对象,CodeProject.AI 都会停止分析。这两个设置的默认设置是每 750 毫秒发送 2 个额外的实时图像。这取决于您的 CPU 或 GPU 容量,但我个人建议每 500 毫秒发送 10 个额外的实时图像。

就是这样。您可以保留所有其他默认设置。这足以成功检测到一个人。

如何在 Blue Iris 中设置警报?

Blue Iris 中可以发送多种警报。与 CodeProject.AI Server 相关的警报是基于 AI 检测的。以下是如何设置一个简单的声音通知的快速示例,这是我测试时经常使用的。

转到“摄像头设置”。

然后转到“警报”选项卡。在底部的“操作”标题下,有一个名为“警报时...”的按钮。点击它。

接下来,点击“+ 添加”按钮,然后在下拉菜单中选择“声音”。

从这里开始非常简单。我们真正需要的是“必需的 AI 对象”字段。这允许您输入要触发警报的项目。在上一篇关于 如何在 Blue Iris 中检测物体 的条目中,我检测了一个人。所以在这里,我也将使用“person”。点击“确定”以接受,然后点击两次“确定”以退出摄像头设置。

就是这样!这就是您如何设置警报。

还有许多其他潜在的警报可供选择,例如发送到手机的推送通知、MQTT 消息、SMS 文本、电子邮件。如果您希望这些设置有相应的条目,请在下方的评论区告诉我。

如何设置“使用 AI 分析”?

如果您见过其他人使用 Blue Iris,您可能已经看到过那些围绕被检测到的物体绘制的美丽边界框,它们指示了物体及其置信度百分比。下面是如何设置。

确保 CodeProject.AI Server 已打开,并且“对象检测 (YOLOv5 6.2)”已启动。您可以通过在 Blue Iris 主设置的“AI”选项卡中点击“打开 AI 仪表板”,或者直接在浏览器中输入 _https://:32168/_ 来实现。

值得注意的是,如果您没有支持 CUDA 的 GPU,那么可以使用“对象检测 (YOLOv5 .NET)”。或者,您可以尝试 .NET 和 YOLOv5 6.2 之间的区别,看看哪种最适合您。如果您使用的是较旧的 GPU,“对象检测 (YOLOv5 3.1)”可能有所帮助。如果您使用的是 Raspberry Pi?可以使用 TFLite 模块(2.1 版新增)。为了使此常见问题解答条目保持简单,我将假定您使用的是“对象检测 (YOLOv5 6.2)”。

如果“对象检测 (YOLOv5 6.2)”因某种原因未运行,请点击其旁边的“...”,然后在下拉菜单中选择“启动”。

假设我们已经使用了前两个条目 如何在 Blue Iris 中检测物体如何在 Blue Iris 中设置警报 来设置 Blue Iris 检测人脸,下面是如何使用“使用 AI 分析”来检测人脸。

首先,我们必须确保录制设置正确。点击“**摄像头设置**”。

然后点击“视频”选项卡。确保选中“视频”复选框,并且下拉菜单显示“触发时”。点击“确定”。

现在,请确保摄像头已打开。如果正在测试,请确保有一个人在摄像头前面。我的摄像头只是放在桌子上,所以那是我。

由于检测到了一个人,视频录制已被触发,因此录制按钮自动在右上角启动。

现在双击“剪辑”窗口中的剪辑以打开到目前为止的录制内容。请注意右上角的小人图标。这意味着该剪辑中检测到了一个人。

剪辑视频会自动开始播放。播放时,右键单击视频,然后从“测试与优化”选项中选择“使用 AI 分析”。现在,当您观看此剪辑回放时,如果检测到一个人,边界框将出现并显示“person”和置信度百分比。

就像这样!这就是如何在 Blue Iris 中设置“使用 AI 分析”功能。

如何在 Blue Iris 状态窗口中使用 AI 选项卡?

Blue Iris 中有一个日志窗口,其中包含多个选项卡。您可以查看日志,但在某些情况下,拥有 AI 特定日志会更有帮助。下面是如何设置。

确保 CodeProject.AI Server 已打开,并且“对象检测 (YOLOv5 6.2)”已启动。您可以通过在 Blue Iris 主设置的“AI”选项卡中点击“打开 AI 仪表板”,或者直接在浏览器中输入 _https://:32168/_ 来实现。

值得注意的是,如果您没有支持 CUDA 的 GPU,那么可以使用“对象检测 (YOLOv5 .NET)”。或者,您可以尝试 .NET 和 YOLOv5 6.2 之间的区别,看看哪种最适合您。如果您使用的是较旧的 GPU,“对象检测 (YOLOv5 3.1)”可能有所帮助。如果您使用的是 Raspberry Pi?可以使用 TFLite 模块(2.1 版新增)。为了使此常见问题解答条目保持简单,我将假定您使用的是“对象检测 (YOLOv5 6.2)”。

如果“对象检测 (YOLOv5 6.2)”因某种原因未运行,请点击其旁边的“...”,然后在下拉菜单中选择“启动”。

在 Blue Iris 主窗口的左上方是 Blue Iris 状态窗口。

在 Blue Iris 状态窗口中有多个选项卡:日志摄像头连接存储AI远程。从“日志”中,您可以查看 AI 通知(例如,AI:[ipcam-combined] person 92% [228,86 1036,1063] 341ms),但您也可以使用“AI”选项卡。

如果点击“AI”选项卡,您将看到空白。我们要做的是将 _.dat_ 文件从我们的 _Alerts_ 文件夹拖到此窗口。但是,为了做到这一点,我们需要知道 .dat 文件在哪里。为了找到它们,我们需要转到 Blue Iris 主设置,在以前的“剪辑和归档”,现在是“存储”部分。

您可以为多个项目指定文件路径。我手动创建了 _C:\Blue Iris_,然后是所有子文件夹 _C:\Blue Iris\db_、_C:\Blue Iris\New_ 和 _C:\Blue Iris\Alerts_。放置这些文件的唯一要求是,建议数据库文件夹位于本地,并且存储速度更快,例如 SSD。

在“警报”文件夹下,指定位置并记下它。对我而言,我创建了 _C:\Blue Iris\Alerts_。

现在打开 Windows Explorer,导航到 _Alerts_ 文件夹。然后返回到**Blue Iris 状态**窗口,以及AI选项卡。我碰巧知道 _Spy1.20230405_151332.0.3-1.dat_ 文件是人脸检测,所以我点击并将其拖到 Blue Iris 状态的AI选项卡中。

就是这样!现在,“AI”选项卡显示了一个完全专注于 AI 的报告,其中包含检测到的内容,这对于较大的 _.dat_ 文件更有用。

如何在 Blue Iris 中设置人脸检测?

虽然不是 Blue Iris 使用 CodeProject.AI Server 最流行的用途,但它具备面部识别功能。设置起来很简单,操作如下。

确保 CodeProject.AI Server 已打开,并且“人脸处理”已启动。您可以通过在 Blue Iris 主设置的“AI”选项卡中点击“打开 AI 仪表板”,或者直接在浏览器中输入 _https://:32168/_ 来实现。

如果“人脸处理”因某种原因未运行,请点击其旁边的“...”,然后在下拉菜单中选择“启动”。

转到“摄像头设置”。

现在转到“AI”选项卡,然后选中“人脸识别”复选框。然后点击“人脸...”按钮来创建一个人脸配置文件。在这里,点击“+”符号,然后选择包含您想识别的面孔的图像文件,然后点击“打开”。对我而言,这添加了快照,并将其命名为 _face1_。

选择 _face1_,点击“编辑”按钮(铅笔图标),将该人脸重命名为您想要的任何名称(在本例中为“Sean”),然后点击“确定”退出人脸配置文件窗口,然后再次点击“确定”退出 Blue Iris 设置。

现在转到摄像头设置中的“触发器”选项卡,然后点击“人工智能”以启动摄像头的 AI 设置。在“确认”框中,输入刚刚创建的人脸配置文件的名称。在本例中,是“Sean”。点击“确定”退出 AI 设置,然后点击“确定”退出摄像头设置。

就是这样!这就是如何在 Blue Iris 中设置面部识别。

如何在 Blue Iris 中为自定义模型设置检测?

对某些人来说,CodeProject.AI Server 自带的默认检测模型可能不够。市面上有大量优秀的、训练有素的模型,或者有您正好需要的模型,您可以下载并与 CodeProject.AI Server 一起使用。下面是如何设置 Blue Iris 来使用自定义模型,以检测打包物品的模型为例。

确保 CodeProject.AI Server 已打开,并且“对象检测 (YOLOv5 6.2)”已启动。您可以通过在 Blue Iris 主设置的“AI”选项卡中点击“打开 AI 仪表板”,或者直接在浏览器中输入 _https://:32168/_ 来实现。

另外,请确保选中“使用自定义模型文件夹”复选框,因为我们在那里存放添加的自定义模型。

如果“对象检测 (YOLOv5 6.2)”因某种原因未运行,请点击其旁边的“...”,然后在下拉菜单中选择“启动”。

首先,我们需要获取一个可以检测打包物品的模型。CodeProject 社区工程师 Mike Lud 正在训练许多模型,并且已经开发了一个可以检测打包物品的模型。因此,第一步是下载打包物品模型,并将其放入自定义模型文件夹。前往 Mike Lud 的 GitHub,下载 _package.pt_。然后,将 _package.pt_ 复制到 CodeProject.AI Server 的自定义模型文件夹中,即 _C:\Program Files\CodeProject\AI\modules\ObjectDetectionYolo\custom-models_。

接下来,转到摄像头设置中的“触发器”选项卡,然后点击“人工智能”。

确保“确认”显示“package”,并且“自定义模型”也显示“package”。点击“确定”以接受人工智能设置,然后点击“确定”以接受摄像头设置。

如果您使用自定义模型,指定“自定义模型”字段中的特定模型名称非常重要,否则 Blue Iris 会默认循环使用每个自定义模型,导致不必要的处理。

就是这样!您已成功设置在 Blue Iris 中使用自定义模型,在本例中是检测打包物品。

© . All rights reserved.