当前位置:网站首页>程序员奶爸自制AI喂奶检测仪,预判宝宝饿点,不让哭声影响老婆睡眠
程序员奶爸自制AI喂奶检测仪,预判宝宝饿点,不让哭声影响老婆睡眠
2022-07-25 12:34:00 【QbitAl】
梦晨 发自 凹非寺
量子位 | 公众号 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/
边栏推荐
- 零基础学习CANoe Panel(13)—— 滑条(TrackBar )
- Visualize the training process using tensorboard
- 基于Caffe ResNet-50网络实现图片分类(仅推理)的实验复现
- Does MySQL have flush privileges
- 【C语言进阶】动态内存管理
- Make a general cascade dictionary selection control based on jeecg -dictcascadeuniversal
- PyTorch主要模块
- Pytorch advanced training skills
- 【AI4Code】《CodeBERT: A Pre-Trained Model for Programming and Natural Languages》 EMNLP 2020
- Keeping MySQL highly available
猜你喜欢

LeetCode 0133. 克隆图

零基础学习CANoe Panel(13)—— 滑条(TrackBar )

零基础学习CANoe Panel(16)—— Clock Control/Panel Control/Start Stop Control/Tab Control

【问题解决】ibatis.binding.BindingException: Type interface xxDao is not known to the MapperRegistry.
软件测试流程包括哪些内容?测试方法有哪些?

【AI4Code】《CoSQA: 20,000+ Web Queries for Code Search and Question Answering》 ACL 2021

Selenium use -- installation and testing
![[problem solving] org.apache.ibatis.exceptions PersistenceException: Error building SqlSession. 1-byte word of UTF-8 sequence](/img/fd/245306273e464c04f3292132fbfa2f.png)
[problem solving] org.apache.ibatis.exceptions PersistenceException: Error building SqlSession. 1-byte word of UTF-8 sequence

What is ci/cd?

Detailed explanation of flex box
随机推荐
perf 性能调试
软件测试流程包括哪些内容?测试方法有哪些?
微软提出CodeT:代码生成新SOTA,20个点的性能提升
[high concurrency] deeply analyze the execution process of worker threads in the thread pool through the source code
Implementation of recommendation system collaborative filtering in spark
Cmake learning notes (II) generation and use of Library
Azure Devops (XIV) use azure's private nuget warehouse
Use vsftpd service to transfer files (anonymous user authentication, local user authentication, virtual user authentication)
2022 Henan Mengxin League game (3): Henan University I - Travel
Fiddler packet capturing app
shell基础知识(退出控制、输入输出等)
跌荡的人生
mysql实现一张表数据插入另一张表
[shutter -- layout] stacked layout (stack and positioned)
MySQL implements inserting data from one table into another table
Experimental reproduction of image classification (reasoning only) based on caffe resnet-50 network
卷积核越大性能越强?一文解读RepLKNet模型
PyTorch进阶训练技巧
公安部:国际社会普遍认为中国是世界上最安全的国家之一
pytorch环境配置及基础知识