1. 磐创AI-开放猫官方网站首页
  2. Medium

项目鸟


去年我们有一个从四月份开始的可爱的春天。这段时间我很不走运,我有很多空闲时间。一天早上,我坐在花园里享受天气、早晨的咖啡和鸟鸣。不幸的是,这个田园诗般的早晨被鸽子包围了,或者像我爸爸所说的那样,它们是“飞行的老鼠”。

鸽子知道它们在我的花园里不受欢迎。每当他们看到任何动静或听到我怎么对他们喊叫时,他们就会跑开。然而,如果有另一只鸟,那只鸟就不怕我的动作和我的声音。

我不想整天坐在窗边检查鸽子什么时候进入我的花园(即使我有很多空闲时间)。因此,在我的脑海中,我决定创建一个项目,名为“鸟计划”(代号:我讨厌鸽子)。

想法很简单:当任何鸽子进入花园时,就会发出噪音或发出灯光。

项目设置

我已经有了所有的工具:覆盆子PI,相机和Azure账户,开始准备基本的原型。

创建此项目主要有四个步骤:

第一步很容易准备。我有我的树莓圆周率和USB摄像头。我安装了Windows10IoT Core,并编写了一个简单的项目(用C#)来实现摄像头的输出。

接下来,我使用OpenCV库编写了自定义代码,以便在检测到移动时拍摄照片。我决定将所有这些图片存储在Azure Storage中,以便将它们发送到Custom Vision并轻松地进行分析。

图像准备

在我可以开始分析照片之前,我需要训练我的自定义视觉来区分哪些鸟不是鸽子。

到了最长的阶段-要手动检查每张照片,给它们贴上标签,以识别鸟、鸽子或其他动物(如猫、松鼠或狐狸)。然后训练Custom Vision,并用不在训练中的照片测试模型。

为什么选择自定义视觉?

Azure认知服务提供两种图像分析服务-计算机视觉和自定义视觉。

有了计算机视觉,我仍然可以从标签上分析鸟类,如果这是一只鸽子,我就能够获得信息。然而,计算机视觉对我来说是不够的,因为如果照片是一只鸽子,我需要有正确的信息。Custom Vision为我提供了标记照片并基于它们创建模型的工具。

实时分析

当检测到运动时,相机会拍摄一张照片。这张照片被送到了Azure Storage。当新项目添加到Azure Storage-Microsoft Flow(现在称为Power Automate)拍摄照片,将其发送到Custom Vision Model。Custom Vision分析照片,并用鸟的名字标记它。然后将信息与标签一起发送回Raspberry Pi。如果这是一只鸽子-灯是开着的。在下一次移动之后(当鸽子离开时),对图片进行分析,然后关灯。

潜在的改进

通过这个项目,我可以改进的地方很少:

  • 操作系统-我使用的是Windows IoT Core,而操作系统的问题是你可以有一个USB摄像头。在这种情况下,如果您为Raspberry PI设置了可以在夜间检测运动的特殊摄影机,则无法使用它。
  • 编程语言-因为我想自动将Raspberry PI上的操作系统更改为非Windows,所以我将用Python编写一些代码(即使您可以用.NET Core编写,Python也有更多易于使用的数据科学库)
  • 互联网-每个图像都被发送到Azure Storage,然后分析并发送回Raspberry Pi,这需要一些时间。理想情况下,在这种情况下,最好将模型放在Raspberry PI上并脱机运行。同步和从本地存储中删除映像可以每小时执行一次。
  • 感应器-我会用录音来吓唬鸽子,因为白天光线不是很透彻。

我学到了什么?

这是我的第一个覆盆子PI项目。我学到了很多关于安装这台微型机器的知识,以及它的威力有多大。关于运动检测,我尝试了很多.NET库,但并不是所有的库都能与Windows IoT Core上的Raspberry PI流畅地协同工作。Custom Vision和Azure非常强大且易于设置,在不到几个小时的时间内,我就有了一个通过Power Automate实现自动化的模型。

最后,我对鸽子的感情一点也没有改变!

原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/07/14/%e9%a1%b9%e7%9b%ae%e9%b8%9f/

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息