却在自动喂奶系统上翻了车
梦晨 发自 凹非寺
非常AI | 公众号 QbitAI
一位程序员老哥Caleb最近喜得一子,不过烦恼也随之而来。
刚出生的Baby每隔几个小时就要喂一次,夜里饿了就会放声大哭,这时全家都被吵醒,被折腾一晚上睡不好觉。
他咨询了周围有经验的人,得到的建议都是:
忍着,熬过最初几个月就好了。
但Caleb作为程序员可不甘心,开始运用他的工程师思维解决问题。
最终,通过摄像头+AI算法的组合,他搞出一套婴儿饥饿自动检测系统,能在宝宝真正开始哭之前就及时发现。
Caleb让程序一旦判定宝宝的饥饿可能性达到100%,就给他的手机发送通知。
这样他就可以自己悄悄起床去喂奶,用技术力守护了他老婆的睡眠。
这样一套系统也不用从头开发,因为现成的人体姿态检测算法已经很成熟。
比如Caleb用到了谷歌开源的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/