在本文中,将探讨如何利用CodeProject.AI服务器和Blue Iris软件来实现一个实用的功能:检测到快递包裹时触发警报并发送电子邮件通知。让开始吧。
如果还没有设置Blue Iris和CodeProject.AI服务器,请参考文章《如何在Windows上使用Wyze Cam设置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的主设置,然后选择“电子邮件服务器”标签。点击“+”符号以输入电子邮件设置。
输入电子邮件配置文件的描述。在例子中,使用了一个偶尔使用的临时Outlook账户,所以描述是“Outlook Stevan”。从“预设”下拉菜单中选择“Windows Live Hotmail”。这里有多种选择,包括AOL Mail、Gmail、Yahoo和Zoho。选择其中一个预设会自动填写“服务器地址”。也可以选择“用户定义”,但需要知道服务器地址。
接下来,输入“发件人电子邮件”(使用的是相同的电子邮件,用于接收警报),并输入“登录电子邮件”(希望接收通知的电子邮件)及其密码。然后点击“测试”。
完美!电子邮件通知工作正常。点击“确定”退出电子邮件配置文件,然后再次点击“确定”退出Blue Iris设置。
现在,是时候设置警报了。进入相机设置,然后选择“警报”标签。实际上保留了警报菜单中所有主要设置的默认值。从这里,点击“在警报时”。
然后点击“+”图标以添加一个新的警报。一个下拉菜单加载。从那里,选择“发送电子邮件”。
在“所需AI对象”字段中,输入“package”。然后确保“发件人(SMTP)服务器”选择了配置文件。在例子中是“Outlook Stevan”。
在“收件人”字段中,输入将接收警报的电子邮件地址。然后,可以自定义电子邮件的主题和正文。点击“确定”退出电子邮件配置警报设置,“确定”退出操作集菜单,“确定”接受相机设置。
从CodeProject.AI服务器,实际上只需要对象检测(YOLO),所以通过点击进程旁边的三个点,然后从下拉菜单中选择“停止”来禁用所有其他内容。
相机放在地板上,因为无法将其放得更高,除非将其安装或将相机倒置。试图模拟前门,所以这应该足够了。是时候将一个包裹放在相机的视野中了!
拿了一个包裹并将其放在相机的视野中。就是这样!包裹被检测到了!
现在,检查Outlook,看看是否发送了电子邮件警报。
测试电子邮件和电子邮件警报都在那里,太棒了!
最后测试一次。让再扔一个包裹进去,看看它是否能检测到第二个包裹。
这就是遇到麻烦的地方。有一段时间,将各种包裹放在相机前确实触发了警报。但它是间歇性的。部分问题是包裹。第一次检测到的包裹是一个盒子。这个盒子每次都被相当可靠地检测到。使用的下一个包裹是一个大信封。信封检测到的频率较低。此外,即使可以看到包裹在Blue Iris中被检测到,并确认触发了警报,电子邮件通知也停止工作了。所以回到了Blue Iris主设置中的“电子邮件服务器”标签,再次点击“测试”按钮。得到了一个错误:
错误发送数据 - 数据确认;服务器说:554 5.2.0 STOREDRV.Submission.Exception:OutboundSpamException;由于永久性异常,无法处理消息[BeginDiagnosticData]WASCL UserAction裁决不是None。实际裁决是RefuseQuota,ShowTierUpgrade。OutboundSpamException:WASCL UserAction裁决不是None。实际裁决是RefuseQuota,ShowTierUpgrade。[EndDiagnosticData] [Hostname=FR1P15201MB2167.LAMP152.PROD.OUTLOOK.COM]
在ipcamtalk论坛上寻求帮助,以理解这个错误,显然电子邮件服务提供商有发送电子邮件的限制。
这篇文章详细介绍了更多细节,但在情况下,很可能是因为使用了未验证的、几乎不使用的临时Outlook账户,电子邮件不再发送,因为达到了发送电子邮件数量的限制。
所以决定设置一个Gmail账户,看看这是否有帮助。通过点击“+”符号创建了一个新的电子邮件配置文件,并按照之前的相同过程进行。唯一的区别是Gmail需要Oauth认证而不是密码。
点击“使用Google登录”按钮,然后按照说明操作。
现在重新开始,将一个包裹放在相机前,看看Gmail是否检测到了它。