Tuesday, November 10, 2009

sensr.net live

About a year ago I started playing around with the idea of monitoring various things around the house. We travel a lot and I wanted to be able to check on the house while I was out of town. I started playing with network cameras and found that it was cool to have remote access to a camera back home, but setting it up and monitoring it was a pain. I tried Linux, PC, and Mac software but I didn't like the idea of having a dedicated computer inside my house to do the monitoring. My PhD is in distributed computing, so it's only fitting that my home to be monitored in the cloud.

I started building a website for monitoring my cameras and realized that this could be a useful service for others and might even be a nice business. In the course of the last year I've been lucky enough to hook up with some incredibly talented folks who have joined me in this effort. We're now ready to start opening up the site for others to try. It's not perfect and it's not for everyone, but sensr.net is at least ready for the hacker class to try.

How does it work?

Basically we'll provision an FTP account for each of your cameras and process all the images it sends to us. We keep images where we've detected motion and organize them by time and date. Want to know what time the plumber left? Check the front door camera, archived on sensr.net.

We'll also send you alerts (email or text) if you want. This works great on indoor cameras when you're away from home. Of course you may get notified about motion that you don't care about. Here's one alert I got a while back that would have been annoying had it come at 3 am.

Moth caught mid-flight.

Why the cloud?

Nobody runs their own email server anymore, why should you run a home server?

  1. Infinite disk space: You don't have to worry that the PC in your basement is going to run out of disk just before your house gets robbed.
  2. Elastic compute infrastructure: We can build all kinds of interesting computer vision algorithms to process your images. Right now we're starting with simple motion detection, but once the pipeline is setup, we can add other kinds of processing. Face detection should be easy. Face recognition is doable. Tagging your images with text could be next. Having our infrastructure in the cloud allows us to be creative and try new kinds of processing without requiring you to install anything.
  3. Nothing to manage: Our users don't have to worry about the care and feeding of a PC. We'll deal with all those hassles for them.
  4. Disaster recovery: If your house is robbed, we'll still have pictures of the thieves, even if they steal the camera. If your house burns down, all the images we've stored for you will still be there.
Sure, there are drawbacks. If your network goes down, we can't monitor your cameras. In most cases broadband connections are very reliable these days. Especially if you compare them with something like Windows Vista. Eventually we may support multiple tiers, so you can have an agent inside the home for caching until your network comes back. Some network cameras will do that already.

Why FTP?

FTP may seem like an anachronism, but in this case I think it makes a lot of sense. The issue is the home firewall. These days everyone has a firewall, so our servers can't reach into your network and pull images from your cameras. With FTP your camera will push images to our servers. Users don't need to configure confusing port forwarding options on their firewall.

Why Facebook Connect?

Do your really want another user name and password to remember? I didn't think so. That's one reason we use Facebook Connect for authentication. Besides, this makes it easy for you to share access to your cameras with your friends. BTW, you don't have to share whole cameras. You can mark a camera as private, then only share interesting images by uploading them to Facebook in a single click.

Not on Facebook yet? (Really?) Well, you can still peruse the public cameras. If you want to add your own camera or see cameras that your friends have added, you'll have to sign up for a Facebook account. Facebook accounts are free you know.

Give it a try!

So if you have a network camera that supports FTP, head over to sensr.net and give it a try. If you want to use the camera built into your PC or a USB camera you can make that work too. See the sensr.net FAQ for details.