一位程序員老哥Caleb最近喜得一子,不過煩惱也隨之而來。剛出生的Baby每隔幾個小時就要喂一次,夜裡餓就會放聲大哭,這時全傢都被吵醒,被折騰一晚上睡不好覺。他咨詢周圍有經驗的人,得到的建議都是:忍著,熬過最初幾個月就好。但Caleb作為程序員可不甘心,開始運用他的工程師思維解決問題。
最終,通過攝像頭+AI算法的組合,他搞出一套嬰兒饑餓自動檢測系統,能在寶寶真正開始哭之前就及時發現。
Caleb讓程序一旦判定寶寶的饑餓可能性達到100%,就給他的手機發送通知。
這樣他就可以自己悄悄起床去喂奶,用技術力守護他老婆的睡眠。
這樣一套系統也不用從頭開發,因為現成的人體姿態檢測算法已經很成熟。
比如Caleb用到Google開源的MediaPipe,包括完整的全身姿態、面部網格和手部動作檢測。
剩下的問題就是——
AI如何判斷嬰兒餓?
在開始動手之前,Caleb先去母嬰論壇查閱大量資料。
根據理論,哭出聲代表嬰兒已經進入饑餓的後期階段。此時要想直接喂奶都不太容易,需要先安撫一下寶寶情緒。
饑餓的早期表現還包括咂麼嘴(Smacking)或舔嘴唇,反復張嘴閉嘴,吸吮嘴唇、手指或其他衣物玩具等。
Caleb根據觀察自傢小孩的經驗,分別編寫代碼給這些行為賦予不同權重。
比如咂麼嘴會+10%置信度,把拳頭伸到嘴邊也要+10%。
而嬰兒來回扭頭代表正在尋找食物來源,他觀察到自傢寶寶會根據饑餓程度扭頭的頻率也不同。
於是他設置在一個短時間段內,扭頭越頻繁增加的置信度越多。
在此期間,還遇到過嬰兒叼著安撫奶嘴會造成遮擋,算法就無法準確識別嘴唇移動的情況。
為此他在開源算法的基礎上還重新訓練自己的定制化模型,分別根據叼奶嘴和不叼奶嘴的情況給出置信度。
這個過程中他還發現,寶寶餓極會把安撫奶嘴吐出去。這個動作會足足增加30%的置信度,代表馬上就要哭出聲。
這套系統投入使用以後,確實給Caleb的傢庭帶來不少好處,他總結道:
寶寶更開心,大人也能睡得更多一些。
不過,這個故事還沒結束……
自動喂奶系統可不可行?
有軟件上的初步成果,並沒有滿足這位老哥的DIY之魂。
接下來他把這套系統和硬件、機械裝置聯動在一起,嘗試圖打造一款全自動喂奶系統。
想法很大膽,不過從結局來看還是有點超綱。
他也知道這玩意容易出意外,所以先找一個大人扮演嬰兒來做實驗。
隻見他叼著奶嘴模仿嬰兒的動作反復扭頭咂麼嘴,讓系統提升置信度,最後把奶嘴吐出去觸發系統警報。
接下來發生的事,隻能說一句“危險動作,請勿模仿”。
Caleb把這段經歷拍成視頻分享到網上,在程序員圈、DIY圈都引起關註。
他透露完成整個開發工作大約隻用50小時,因為MediaPipe開源工具已經非常完善。
有網友評論說:如果是我來開發這套系統,等我做完孩子已經會打醬油。
Caleb能做得這麼快也是有原因的,目標檢測應用的一套開發流程他已經很熟悉,之前還做過在自傢院子裡檢測狗什麼時候拉粑粑。
對於他這種做法,也有人感覺怪怪的。
餓→必須大哭→得到食物,這應該是學會與周圍環境互動、與父母交流的必經階段,如果隻是躺著就能得到食物,是否會影響發育?
另一位網友認為,他從育兒課程上得到的專業建議也是盡力在嬰兒哭之前就喂飽他們,所以問題應該不大。
Caleb自己也表示,他和老婆不會完全依賴算法決定給孩子喂食的世界,隻是有AI幫助,他們可以把養孩子做的更有效率。
當然,還有更多感興趣的網友都在催他:快開源!
視頻地址:
https://www.youtube.com/watch?v=Lda1Sq8HRY4
MediaPipe
https://google.github.io/mediapipe/
參考鏈接:
[1]https://www.reddit.com/r/programming/comments/w58xyn/built_a_hungry_baby_alarm/