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

使用 CodeProject.AI 服务器和 Blue Iris 检测包裹递送

starIconstarIconstarIconstarIconstarIcon

5.00/5 (4投票s)

2022年12月9日

CPOL

6分钟阅读

viewsIcon

26552

在本文中,我将下载一个自定义模型来检测包裹,设置 Blue Iris 来检测包裹、触发警报并发送电子邮件通知包裹已送达。

在我之前的几篇文章中,我们一直在进行大量的设置工作。在本文中,我想利用我们到目前为止学到的知识,使用 CodeProject.AI 服务器和 Blue Iris 来做一些实际的事情,比如检测送达的包裹并触发警报以发送电子邮件通知。让我们开始吧。

获取包裹自定义模型

如果您还没有设置 Blue Iris 和 CodeProject.AI 服务器,请参阅我的文章 如何在 Windows 上使用 Wyze 摄像头设置 Blue Iris 和 CodeProject.AI 服务器

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

设置 Blue Iris 警报

现在,启动 Blue Iris。下一步是设置电子邮件服务器。转到 Blue Iris 主设置,然后是 **电子邮件服务器** 选项卡。单击 **+** 符号以输入电子邮件设置。

输入电子邮件配置文件的描述。就我而言,我有一个不常用的 Outlook 邮箱,所以我将 **描述** 设置为“Outlook Stevan”。从 **预设** 下拉菜单中,选择“Windows Live Hotmail”。这里有多种选项,包括 AOL Mail、Gmail、Yahoo 和 Zoho。选择其中一个预设会自动填充 **服务器地址**。您也可以选择 **用户定义**,但那样您需要知道服务器地址。

接下来,输入 **发件人电子邮件**(我使用接收警报的同一封邮件),然后输入 **登录电子邮件**(即您希望接收通知的电子邮件),以及该电子邮件帐户的密码。然后单击 **测试**。

完美!电子邮件通知已成功。单击 **确定** 退出电子邮件配置文件,然后再次单击 **确定** 退出 Blue Iris 设置。

现在是时候设置警报了。转到摄像头设置,然后是 **警报** 选项卡。实际上,我保留了警报菜单中的所有主要设置的默认值。从这里,单击 **警报时**。

然后单击 **+** 图标添加新警报。将加载一个下拉列表。从中选择 **发送电子邮件**。

在 **必需的 AI 对象** 字段中,输入“package”。然后确保 **传出 (SMTP) 服务器** 已选择了配置文件。就我而言,是“Outlook Stevan”。

在 **收件人** 字段中,输入将接收警报的电子邮件地址。然后根据需要设置邮件的主题和正文。单击 **确定** 退出电子邮件配置警报设置,单击 **确定** 退出操作集菜单,然后单击 **确定** 接受摄像头设置。

好了,让我们来检测一些包裹吧!我妻子不希望摄像头设置在门口,所以它只在我的办公室。但幸运的是,我有一些包裹可以测试。

在 Blue Iris 设置的 **AI** 选项卡中,单击 **打开 AI 控制面板** 以启动 CodeProject.AI 服务器。同时请确保选中了 **使用自定义模型文件夹** 复选框,因为 _packages.pt_ 就位于那里。

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

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

检测包裹 - 第一部分

从 CodeProject.AI 服务器,我们实际上只需要对象检测 (YOLO),所以通过单击进程旁边的三个点并从下拉菜单中选择 **停止** 来禁用所有其他功能。

摄像头放在地板上,因为在不安装或倒置摄像头的情况下,我无法将其放到更高的地方。我正在尝试模拟前门,所以这应该足够了。该放一个包裹在摄像头视图中了!

我拿了一个包裹,把它放在摄像头视图中。就这样!包裹已检测到!

现在去查看 Outlook,看看是否发送了电子邮件警报。

测试邮件和警报邮件都在那里!太棒了!

最后一次测试。我们再把一个包裹放进去,看看它能否检测到第二个包裹。

发送电子邮件通知时出错

这就是我遇到一些麻烦的地方。有段时间,将各种包裹放在摄像头前确实会触发警报。但这是间歇性的。问题的一部分在于我的包裹。第一个检测到的包裹是一个盒子。盒子几乎每次都能可靠地检测到。我使用的下一个包裹是一个大信封。信封被检测到的频率较低。此外,即使我能在 Blue Iris 中看到包裹已被检测到,并确认警报已被触发,但电子邮件通知停止工作了。所以我回到 Blue Iris 主设置中的 **电子邮件服务器** 选项卡,然后再次单击 **测试** 按钮。我收到一个错误

Error with sending data - data confirmation; Server says: 554 5.2.0
STOREDRV.Submission.Exception:OutboundSpamException; Failed to process message due to a
permanent exception with message [BeginDiagnosticData]WASCL UserAction verdict is not
None. Actual verdict is RefuseQuota, ShowTierUpgrade. OutboundSpamException: WASCL
UserAction verdict is not None. Actual verdict is RefuseQuota, ShowTierUpgrade.
[EndDiagnosticData] [Hostname=FR1P15201MB2167.LAMP152.PROD.OUTLOOK.COM]

我在 ipcamtalk 论坛上寻求帮助以理解这个错误,Apparently 电子邮件服务提供商有发送邮件的限制。 这篇文章详细介绍了更多具体信息,但很可能在我的情况下是这样的,因为我使用的是一个未经验证、很少使用的临时 Outlook 邮箱,我发送的电子邮件数量达到了限制,因此电子邮件不再发送。

检测包裹 - 第二部分

所以我决定设置一个 Gmail 帐户看看是否有帮助。我通过单击 **+** 符号创建了一个新的电子邮件配置文件,并按照之前的过程进行操作。唯一的区别是 Gmail 需要 OAuth 身份验证而不是密码。

单击 **使用 Google 帐号登录** 按钮,然后按照说明操作。

现在重新开始,将一个包裹放在摄像头前,看看 Gmail 是否能检测到它。

成功!包裹已检测到,警报已触发,Gmail 通知已发送。

最后一次测试(这次是认真的)。让我们再把一个包裹放到摄像头视图中,看看是否能检测到第二个包裹。现在是假期,过度劳累的亚马逊员工会尽一切可能走捷径。

搞定!

Bingo!第二个包裹已被检测到,警报已触发,并且已发送 Gmail 通知。我相信我已经成功设置了 CodeProject.AI 服务器,使用 Blue Iris 来检测递送包裹。

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

© . All rights reserved.