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

如何在 Agent DVR 中使用 CodeProject.AI 服务器设置自定义 AI 模型

starIconstarIconstarIconstarIconstarIcon

5.00/5 (3投票s)

2023 年 1 月 19 日

CPOL

6分钟阅读

viewsIcon

12639

在本文中,我将介绍如何使用 Agent DVR 和 CodeProject.AI Server 来检测送货包裹,并在检测到包裹时进行录制。

到目前为止,我已经在 Windows 上成功设置了 Agent DVR 与 CodeProject.AI Server,并在 Agent DVR 中使用了 面部识别。在本文中,我将介绍如何在 Agent DVR 和 CodeProject.AI Server 中使用自定义 AI 模型。更具体地说,我将介绍如何使用 Agent DVR 和 CodeProject.AI Server 来检测送货包裹,并在检测到包裹时进行录制。

本文假设您已经设置好了一个摄像头,并能正常使用 Agent DVR 和 CodeProject.AI Server。我不会在这里重复讲解,如果您需要先完成这些,请参阅我的文章 如何使用 Wyze Cam 在 Windows 上设置 Agent DVR 和 CodeProject.AI Server

获取自定义模型

首先我们需要一个自定义 AI 模型。在本文中,我们将使用一个可以检测包裹的自定义 AI 模型。CodeProject 社区工程师 Mike Lud 正在训练许多模型,他开发了一个可以检测包裹的模型。因此,第一步是下载包裹模型,并将其放入自定义模型文件夹。前往 Mike Lud 的 GitHub,下载 package.pt。然后,将 package.pt 复制到 CodeProject.AI Server 的自定义模型文件夹中,该文件夹是 C:\Program Files\CodeProject\AI\modules\ObjectDetectionYolo\custom-models

在 Agent DVR 中设置自定义 AI 模型

首先,通过在浏览器中输入 https://:32168 来打开 CodeProject.AI Server。在本文中,我们使用 YOLOv5 6.2 来检测对象,因此请确保对象检测 (YOLOv5 6.2) 已激活。我们不需要其他任何模块,所以我关闭了所有其他模块。

现在,启动 Agent DVR。点击左上角的服务器菜单。

本文假设 CodeProject.AI Server 已设置好,因此在 **Configuration** 下点击 **Settings**。

然后从 **General** 下拉菜单中选择 **AI Settings**。

然后点击 **Configure** 旁边的 **...** 按钮。

然后点击 **Edit** 图标以更新 AI 服务器设置。

这里有两个地方需要更新。首先,默认的 **Endpoint** 是 /v1/vision/detection。当您使用自定义模型时,这需要修改为 /v1/vision/model-name。在我们的例子中,我们使用的是 package.pt,所以这需要修改为 /v1/vision/package

接下来需要更新的是 **Object Classes**。每当添加自定义模型时,都需要更新此对象列表,以包含您要检测的项目。在这种情况下,是“package”。默认列表是

person,bicycle,car,motorcycle,airplane,bus,train,truck,boat,traffic light,
fire hydrant,stop sign,parking meter,bench,bird,cat,dog,horse,sheep,cow,elephant,
bear,zebra,giraffe,backpack,umbrella,handbag,tie,suitcase,frisbee,skis,
snowboard,sports ball,kite,baseball bat,baseball glove,skateboard,surfboard,
tennis racket,bottle,wine glass,cup,fork,knife,spoon,bowl,banana,apple,sandwich,orange,
broccoli,carrot,hot dog,pizza,donot,cake,chair,couch,potted plant,bed,
dining table,toilet,tv,laptop,mouse,remote,keyboard,cell phone,microwave,oven,toaster,sink,
refrigerator,book,clock,vase,scissors,teddy bear,hair dryer,toothbrush

这需要更新为

person,bicycle,car,motorcycle,airplane,bus,train,truck,
boat,traffic light,fire hydrant,stop sign,parking meter,bench,bird,cat,dog,horse,sheep,
cow,elephant,bear,zebra,giraffe,backpack,umbrella,handbag,tie,suitcase,frisbee,
skis,snowboard,sports ball,kite,baseball bat,baseball glove,skateboard,surfboard,
tennis racket,bottle,wine glass,cup,fork,knife,spoon,bowl,banana,apple,sandwich,
orange,broccoli,carrot,hot dog,pizza,donot,cake,chair,couch,potted plant,bed,
dining table,toilet,tv,laptop,mouse,remote,keyboard,cell phone,microwave,oven,toaster,sink,
refrigerator,book,clock,vase,scissors,teddy bear,hair dryer,toothbrush,package

连续点击接下来的四个提示框中的 **OK** 以接受 AI 服务器设置。

现在,在 Live Feed 页面,通过点击左下角的编辑图标进入摄像头设置。

然后从 **General** 下拉菜单中选择 **Object Recognition**。

点击 **Configure** 前面的 **...** 按钮。

现在,“package”已添加到 **Object Classes** 列表中,因此会出现一个对应的按钮。通常包裹是由人送来的,所以最好同时设置“person”和“package”两个对象的检测。您可以输入“person,package”,或者直接从列表中选择 **person** 和 **package** 按钮。点击此菜单和下一个菜单中的 **OK** 以接受这些设置。

在尝试让自定义模型生效的过程中,我遇到了很多问题。我犯的错误是忘记在 AI 服务器设置中配置 **Endpoint**,但在绝望之中,我尝试了所有能做的事情来让 Agent DVR 检测到包裹。我尝试过的一个方法是实现 Mask(遮罩)。所以,转到摄像头设置,从 **General** 下拉菜单中选择 **Alert Filter**。然后,点击 **Configure** 旁边的 **...**。

在这里您可以添加一个遮罩。对于我目前的设置来说不是必需的,但如果您的摄像头是固定的,并且对准门口,您只想在有人走到台阶而不是街道时触发,那么这个功能会很有帮助。左键单击鼠标并拖动它覆盖在摄像头图像上,可以指定要忽略的区域。右键单击鼠标可以擦除您的遮罩选择。

无论您是否添加遮罩,在 **Find** 字段中,请确保列出了“person,package”。点击 **OK** 两次以接受这些设置。

现在我们需要更改 Detector(检测器)设置。转到摄像头设置,然后从下拉菜单中选择 **Detector**。

将 **Detector** 类型更改为“Simple”。Simple 检测器意味着 AI 检测将由运动触发。我希望非常容易地检测到包裹,所以我将此设置改为 Simple,然后点击 **OK** 以接受设置。

最后,我们希望有人将包裹放入摄像头的视野中时触发一个事件。在我写的另一篇文章中,有人问如何根据检测触发录制,所以我在这里演示一下。转到摄像头设置,选择 **Actions**。然后点击 **Add**。从 **If** 下拉菜单中选择 **Object Found**,然后在 **Then** 下拉菜单中选择 **Start Recording On**。相机应该会自动选择,但请确保摄像头(在本例中是 Eye Spy)在 **Device** 部分,然后点击 **OK**。再次点击 **OK** 以接受这些操作。

检测包裹

好了!让我们把一个包裹放到这个强大设备的摄像头视野中看看!为了演示,我的 **Action** 将触发对象检测,以便我能证明包裹已被检测到。

砰!我终于做到了!包裹已检测到。

好了,就是这样!这个过程也应该适用于其他自定义模型。我们现在已经展示了如何在 Agent DVR 中使用自定义 AI 模型,并在检测到包裹时触发录制。

如果您有任何疑问,请随时在下面的文章论坛中提问。

© . All rights reserved.