没想到,有一天树莓派还能用在给鸟护食上!看这只松鼠抱着粮吃的正香…… 突然!就来了一股水流把它喷走了: 再来一次?还是没能幸免,继续被水喷中: 此时松鼠内心 OS:谁这么闲每天没事喷劳资??? 原来,这是一位小哥用树莓派做出的喂鸟器保护器。因为自己后院鸟儿喂食器的粮被松鼠频频偷走,这位小哥赌上自己机器学习爱好者的尊严,开发了这个新装置。 它能够让摄像头每 30 秒拍下一张照片,然后由 CV 算法来检测喂鸟器上是否有松鼠。如果有的话,信号就会发送给花园里的电控水龙头,让它朝着喂鸟器喷水赶走松鼠。而做出这个设备,小哥用到的 AI 模型只需 13 行代码就能搞定,训练甚至只花了 45 分钟。效果也是立竿见影的,用了几个星期后,松鼠造访的频率直线下降。 嗯,此刻可能更多要心疼小哥家附近的松鼠了。"13 行代码 + 树莓派"赶走松鼠 效果这么好的设备,做起来难吗? 非常 easy,一共只需 3 步: 第一,让摄像头每 30 秒拍下一张照片; 第二,将照片发送到 AWS Lambda 端点,在端点上使用训练好的 AI 模型检测照片; 第三,如果检测到照片中有松鼠,设备就会将信号发送给电控水龙头的开关,这时花园中的喷头就会持续喷出几秒钟水流赶走松鼠。 大概效果就是这样: 判断画面中是否有松鼠,靠的则是小哥自己用 fast.ai 训练的一个模型。 他首先自己收集了一个数据集 —— 连续几个星期让相机每 30 秒就拍一次照片,然后手动将照片分类为"有松鼠"和"没有松鼠"两类。之后用这个数据集来训练模型,小哥是在 Google Colab 上搞定的。一共只有 13 行代码,训练全程花了大约 45 分钟。硬件端,这套设备运行的核心是一个带有摄像头的树莓派,在亚马逊商店能直接买到。 由于在试验过程中弄出了短路、不小心烧坏了自己的 Pi 4,所以小哥不得不用 Pi 2+AWS Lambda 的方式来完成整个推理过程。 在实际使用过程中,如果模型判断照片中有松鼠的置信度超过 70%,就会启动装置。同时它还会拍下视频和照片,这样小哥就能从历史记录中看到模型是否判断正确了。 小哥表示,这套装置的准确率为 86.6%,赶走大部分来访的松鼠没什么问题,但也有失误的时候。从总共记录的 321 次防御中可以看到,其中有 43 次判断失误。有时画面中是鸽子在吃东西、有时画面中什么都没有,有时则是小哥本人路过了那一区域,设备也喷出了水流。针对鸽子的情况,小哥猜测可能是自己做数据集那段时间,很少有鸽子光顾他的喂食器,所以导致模型判断有误。其中有一天设备则一直在喷水,无论喂食器上站的是鸟还是松鼠,或者什么都没有。后来小哥发现,这是因为有树枝刚好挡在了松鼠平常会出现的位置上。 整体来看,这套设备一共花费了大约 50 美元,也就是人民币 300 多块。主要用来购买硬件设备,AWS Lambda 则是小哥白嫖的(doge)。小哥本职是位记者 最后来介绍一下这套设备的主人 Jeremy B. Merrill,他是华盛顿邮报的一位记者,平常会用机器学习、数据分析来写一些调查新闻。 他的杰作也吸引了不少网友的关注,Reddit 上热度 300+。不少人受到他的启发,想通过类似的方法搞定后院里乱窜的松鼠、野猫。是时候做出一个猫屎爆破神器阻止野猫来我的花园便便了! 也有人脑洞大开,认为长此以往松鼠会觉得这是个不错的水源地,总之就还是要经常造访了。 看来,各种突然造访的动物们的确有够让歪果人头痛的。 此前 YouTube 上有一位博主在后院做了一套非常复杂的设备,就是为了来恶搞突然来捣乱的松鼠。 相比之下,用 AI 识别然后精准"打击"的方法似乎实用性更强。由于最近已经入冬,小哥暂时停用了这套设备,松鼠也鲜少造访了,他表示之后天气转暖还会继续用下去。不知重新启动后的效果会是如何呢?蹲个后续~ 参考链接: [1]https://jeremybmerrill.com/blog/2022/01/squirrel-soaker-9000-repelling-squirrels-with-ai.html [2]https://www.reddit.com/r/MachineLearning/comments/sctxqh/p_i_built_a_robot_to_protect_my_birdfeeder_from/