自制樹莓派“防松鼠神器”在Reddit火了,13行代碼就能讓AI替你護食,成本300+元
明敏發(fā)自凹非寺
量子位公眾號 QbitAI
沒想到,有一天樹莓派還能用在給鳥護食上!
看這只松鼠抱著糧吃的正香……
突然!就來了一股水流把它噴走了:
再來一次?還是沒能幸免,繼續(xù)被水噴中:
此時松鼠內(nèi)心 OS:誰這么閑每天沒事噴勞資???
原來,這是一位小哥用樹莓派做出的喂鳥器保護器。
因為自己后院鳥兒喂食器的糧被松鼠頻頻偷走,這位小哥賭上自己機器學(xué)習(xí)愛好者的尊嚴(yán),開發(fā)了這個新裝置。
它能夠讓攝像頭每 30 秒拍下一張照片,然后由 CV 算法來檢測喂鳥器上是否有松鼠。如果有的話,信號就會發(fā)送給花園里的電控水龍頭,讓它朝著喂鳥器噴水趕走松鼠。
而做出這個設(shè)備,小哥用到的 AI 模型只需 13 行代碼就能搞定,訓(xùn)練甚至只花了 45 分鐘。
效果也是立竿見影的,用了幾個星期后,松鼠造訪的頻率直線下降。
嗯,此刻可能更多要心疼小哥家附近的松鼠了。
“13 行代碼+樹莓派”趕走松鼠
效果這么好的設(shè)備,做起來難嗎?
非常 easy,一共只需 3 步:
第一,讓攝像頭每 30 秒拍下一張照片;
第二,將照片發(fā)送到 AWS Lambda 端點,在端點上使用訓(xùn)練好的 AI 模型檢測照片;
第三,如果檢測到照片中有松鼠,設(shè)備就會將信號發(fā)送給電控水龍頭的開關(guān),這時花園中的噴頭就會持續(xù)噴出幾秒鐘水流趕走松鼠。
大概效果就是這樣:
判斷畫面中是否有松鼠,靠的則是小哥自己用 fast.ai 訓(xùn)練的一個模型。
他首先自己收集了一個數(shù)據(jù)集——連續(xù)幾個星期讓相機每 30 秒就拍一次照片,然后手動將照片分類為“有松鼠”和“沒有松鼠”兩類。
之后用這個數(shù)據(jù)集來訓(xùn)練模型,小哥是在 Google Colab 上搞定的。
一共只有 13 行代碼,訓(xùn)練全程花了大約 45 分鐘。
硬件端,這套設(shè)備運行的核心是一個帶有攝像頭的樹莓派,在亞馬遜商店能直接買到。
由于在試驗過程中弄出了短路、不小心燒壞了自己的 Pi 4,所有小哥不得不用 Pi 2+AWS Lambda 的方式來完成整個推理過程。
在實際使用過程中,如果模型判斷照片中有松鼠的置信度超過 70%,就會啟動裝置。同時它還會拍下視頻和照片,這樣小哥就能從歷史記錄中看到模型是否判斷正確了。
小哥表示,這套裝置的準(zhǔn)確率為 86.6%,趕走大部分來訪的松鼠沒什么問題,但也有失誤的時候。
從總共記錄的 321 次防御中可以看到,其中有 43 次判斷失誤。
有時畫面中是鴿子在吃東西、有時畫面中什么都沒有,有時則是小哥本人路過了那一區(qū)域,設(shè)備也噴出了水流。
針對鴿子的情況,小哥猜測可能是自己做數(shù)據(jù)集那段時間,很少有鴿子光顧他的喂食器,所以導(dǎo)致模型判斷有誤。
其中有一天設(shè)備則一直在噴水,無論喂食器上站的是鳥還是松鼠,或者什么都沒有。
后來小哥發(fā)現(xiàn),這是因為有樹枝剛好擋在了松鼠平常會出現(xiàn)的位置上。
整體來看,這套設(shè)備一共花費了大約 50 美元,也就是人民幣 300 多塊。主要用來購買硬件設(shè)備,AWS Lambda 則是小哥白嫖的(doge)。
小哥本職是位記者
最后來介紹一下這套設(shè)備的主人 Jeremy B. Merrill,他是華盛頓郵報的一位記者,平常會用機器學(xué)習(xí)、數(shù)據(jù)分析來寫一些調(diào)查新聞。
他的杰作也吸引了不少網(wǎng)友的關(guān)注,Reddit 上熱度 300+。
不少人受到他的啟發(fā),想通過類似的方法搞定后院里亂竄的松鼠、野貓。
是時候做出一個貓屎爆破神器阻止野貓來我的花園便便了!
也有人腦洞大開,認(rèn)為長此以往松鼠會覺得這是個不錯的水源地,總之就還是要經(jīng)常造訪了。
看來,各種突然造訪的動物們的確有夠讓歪果人頭痛的。
此前 YouTube 上有一位博主在后院做了一套非常復(fù)雜的設(shè)備,就是為了來惡搞突然來搗亂的松鼠。
相比之下,用 AI 識別然后精準(zhǔn)“打擊”的方法似乎實用性更強。
由于最近已經(jīng)入冬,小哥暫時停用了這套設(shè)備,松鼠也鮮少造訪了,他表示之后天氣轉(zhuǎn)暖還會繼續(xù)用下去。
不知重新啟動后的效果會是如何呢?蹲個后續(xù)~
參考鏈接:
[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