Free Baby Monitoring System with ML for Safe Activity Transmission
Being a parent to a newborn is always stressful.
There are many questions popping up: will I manage with all the new duties? Should I watch the baby all the time? What if the baby needs me and I am not there?
Besides babysitting, there is also your regular daily routine which makes it impossible to carry a newborn all the time. Now, with BabyGuard new parents can check on their baby while doing daily errands.
We came up with the idea as we found the existing solutions (apps or hardware) to be quite expensive or not user friendly. What is more, standard electronic nannies usually detect high pitched sounds and not necessarily baby cries, which makes them hard to rely on.
Our goal was to build a modern app that would become a parent's best friend. We wanted to keep the app simple and emphasize three competitive advantages:
- Availability - You can just use your old Android device instead of buying an expensive electronic nanny.
- Reliability - Thanks to a machine learning algorithm our solution filters all the sounds around and notifies the parent only when the baby is crying and not when a car passes by.
- Security - The app is fully open-source and does not send any data to third party servers without your consent, meaning you will be the only one to see the video stream of your kid.
Building an electronic nanny with a camera and crying detection - our approach
3566 hours, 7 engineers, 2 designers on board and one vision - make new parents’ lives easier.
We devoted a lot of time to creating a simple, yet fully practical and user-friendly app for monitoring babies. BabyGuard is a free mobile application available for Android built with native programming languages.
The technology (Machine Learning, TensorFlow, WebRTC, WebSockets, Firebase) implemented made the whole development process quite challenging. We’ve focused not only on beautiful design but also on the stability of video streaming and on-device audio processing with the power of Machine Learning.
Our team of ML engineers prepared a solution that detects baby cries and filters them out from all other noises around. In this way, the parents are always notified when the kid needs care.
How does the electronic nanny work?
All you need to do is to install the app on two mobile devices, be it a smartphone or a tablet, and pair them up. Put one device in the baby’s room as a baby monitor and take the second one with you as a receiver.
Your BabyGuard parent device will automatically receive a notification every time your baby wakes up and starts crying. Thanks to the smart crying baby alert based on Machine Learning, the app doesn’t notify you about any random noises, but recognizes actual crying.
With a nanny camera system you can always check on your baby via a real time view. Video and audio of your sleeping baby can be streamed to your parent device any time you like.
What is also crucial for all the parents, BabyGuard protects your and your baby’s privacy. The application works over WiFi, so it uses the local network only. This means your baby’s data isn’t shared with any third-party servers.
Baby Guard can run in the background - your device will be automatically waked from sleep mode if your baby starts crying. Running the app in the background lets you also use your mobile device for other purposes whenever you need.
What was the process of developing BabyGuard?
The beginning was challenging.
Our main goal in the research phase was to find a streaming solution that would work on Android platform. We’ve tested 14 different tools and we’ve ended up using WebRTC.
It was the best option for us because it works with Android out of the box and allowed us to move quickly. There are more light-weight solutions on the market, but they require more customization for our use case, and didn’t fit our goal, which was to quickly build a proof of concept.
After choosing WebRTC as our main tool, we could start working on the Machine Learning part of the project. We began our work on building an ML model that would help us tell crying apart from all other noises. Imagine checking around 3 hours of recordings to be sure that they only contain crying…
If you want to read more about the whole process of learning, check out the case study: How to use Machine Learning models to Detect if a Baby is Crying.
Finally, we’ve started working on making the app useful and user-friendly. We spent a lot of time figuring out how to design the device pairing process and additional features. The whole team did an amazing job delivering an app that looks exactly like the initial design with great attention to detail.
After 7 months of intense work, we want to share what we’ve learned during this really interesting R&D project.Although our team has a lot of experience in implementing Audio/Video streaming in many different scenarios, there are always new problems to solve. With BabyGuard we had to handle video stream freezes and minimise their number. Also, due to security reasons, we decided to use the local network to not pass the data to third parties.
What are the results?
BabyGuard is for sure one of the most interesting initiatives we’ve worked on as a part of our R&D effort. We were able to use really innovative technical solutions like intelligent crying detection or ensuring seamless communication on Android system.
What is more, we could create a product with multiple competitive advantages (compared to standard electronic nanny devices) which ensure secure transmission of the baby’s activity and make parents’ lives easier.
And you can easily try it out yourself - download BabyGuard for free.