神器|树莓派“防松鼠神器”在Reddit火了,13行代码就能让AI替你护食

明敏 发自 凹非寺
量子位 | 公众号 QbitAI
没想到,有一天树莓派还能用在给鸟护食上!
【 神器|树莓派“防松鼠神器”在Reddit火了,13行代码就能让AI替你护食】看这只松鼠抱着粮吃的正香……
神器|树莓派“防松鼠神器”在Reddit火了,13行代码就能让AI替你护食
文章插图
突然!就来了一股水流把它喷走了:
神器|树莓派“防松鼠神器”在Reddit火了,13行代码就能让AI替你护食
文章插图
再来一次?还是没能幸免,继续被水喷中:
神器|树莓派“防松鼠神器”在Reddit火了,13行代码就能让AI替你护食
文章插图
此时松鼠内心OS:谁这么闲每天没事喷劳资???
神器|树莓派“防松鼠神器”在Reddit火了,13行代码就能让AI替你护食
文章插图
原来,这是一位小哥用树莓派做出的喂鸟器保护器。
因为自己后院鸟儿喂食器的粮被松鼠频频偷走,这位小哥赌上自己机器学习爱好者的尊严,开发了这个新装置。
它能够让摄像头每30秒拍下一张照片,然后由CV算法来检测喂鸟器上是否有松鼠。如果有的话,信号就会发送给花园里的电控水龙头,让它朝着喂鸟器喷水赶走松鼠。
而做出这个设备,小哥用到的AI模型只需13行代码就能搞定,训练甚至只花了45分钟。
效果也是立竿见影的,用了几个星期后,松鼠造访的频率直线下降。
神器|树莓派“防松鼠神器”在Reddit火了,13行代码就能让AI替你护食
文章插图
嗯,此刻可能更多要心疼小哥家附近的松鼠了。
“13行代码+树莓派”赶走松鼠效果这么好的设备,做起来难吗?
非常easy,一共只需3步:
第一,让摄像头每30秒拍下一张照片;
第二,将照片发送到AWS Lambda端点,在端点上使用训练好的AI模型检测照片;
第三,如果检测到照片中有松鼠,设备就会将信号发送给电控水龙头的开关,这时花园中的喷头就会持续喷出几秒钟水流赶走松鼠。
大概效果就是这样:
神器|树莓派“防松鼠神器”在Reddit火了,13行代码就能让AI替你护食
文章插图
判断画面中是否有松鼠,靠的则是小哥自己用fast.ai训练的一个模型。
他首先自己收集了一个数据集——连续几个星期让相机每30秒就拍一次照片,然后手动将照片分类为“有松鼠”和“没有松鼠”两类。
之后用这个数据集来训练模型,小哥是在Google Colab上搞定的。
一共只有13行代码,训练全程花了大约45分钟。
硬件端,这套设备运行的核心是一个带有摄像头的树莓派,在亚马逊商店能直接买到。
神器|树莓派“防松鼠神器”在Reddit火了,13行代码就能让AI替你护食
文章插图
由于在试验过程中弄出了短路、不小心烧坏了自己的Pi 4,所有小哥不得不用Pi 2+AWS Lambda的方式来完成整个推理过程。
在实际使用过程中,如果模型判断照片中有松鼠的置信度超过70%,就会启动装置。同时它还会拍下视频和照片,这样小哥就能从历史记录中看到模型是否判断正确了。
小哥表示,这套装置的准确率为86.6%,赶走大部分来访的松鼠没什么问题,但也有失误的时候。
从总共记录的321次防御中可以看到,其中有43次判断失误。
有时画面中是鸽子在吃东西、有时画面中什么都没有,有时则是小哥本人路过了那一区域,设备也喷出了水流。
针对鸽子的情况,小哥猜测可能是自己做数据集那段时间,很少有鸽子光顾他的喂食器,所以导致模型判断有误。
其中有一天设备则一直在喷水,无论喂食器上站的是鸟还是松鼠,或者什么都没有。
后来小哥发现,这是因为有树枝刚好挡在了松鼠平常会出现的位置上。