Motion Detection and Low Light Operation
To me, the most interesting option was the motion detection feature. I don't want to sit and watch my camera all the time, but instead would like it to notify me when someone or something approaches my home. The camera lets you enter an email address and when "motion" is detected in front of the camera, a picture of what caused the motion is emailed to you.
By default this option is turned off, so I configured it, turned it on, and waved my hand in front of the camera. A bit later, I received an email with a picture of a blurry hand. Neat. But when I went back to check the web interface, I found the camera locked up and unresponsive. Oops. I debugged this problem for a while before I emailed a helpful contact at Hawking who eventually got me an updated firmware image that no longer locked up when motion was detected.
But even though it no longer locked up, I still found the feature to be finicky. When I tried to force a motion event by walking in front of the camera, sometimes I'd get nothing, other times I would. When I had it pointing out my front window, most times a car driving up would trigger an event, (Figure 10) but walking up the driveway often wouldn't.
Figure 10: Detection of car arrival
There were no options for sensitivity in motion detection. I could set the number of frames to email and the time to wait between events, but there was nothing to specify how much motion should be considered relevant. Another issue I had with this feature was garbled images (Figure 11). Approximately one out of twenty images would arrive in my mailbox corrupted as if it were sent before it was completely constructed on the camera.
Figure 11: Garbled Image
To take a different approach to the motion detection problem, I tried out another feature of the camera. The HNC290G has the ability to serve up a single JPEG image from the camera using a pre-defined URL. So with a bit of scripting, wget to fetch images and ImageMagick to time-stamp and compare them, I had a poor-man's change detection system.
This cobbled-together solution worked more reliably than the built-in motion detection feature. But it required a PC to do the real work and kept my network busy fetching a new image every second. Figure 12 is an example showing that it was able to detect me walking up the driveway.
Figure 12: Home-Brew motion detection
Note that the quality of the image in 320/240 mode is such that you'd probably not be able to identify an unknown person. I found that the script running under Ubuntu Linux on my 2 GHz Core Duo could easily process fetch and process an image a second. But the same script running on my NSLU2 could only process an image every 25 seconds or so. And even then, it often ran out of memory and failed.
And speaking of failure, I also found that the whole process was moot after 15-20 minutes because the HNC290G would start returning the same image every time until the power was cycled. The web interface would be showing the correct video, but the still-image feature would be stuck in time.
The last test I wanted to run with the camera was usage in low light conditions. The HNC290G isn't designed or advertised to work in low-light, but if it were to meet my home security needs, It would need to work at night with only my outside lighting. In general, I found it worked better than expected when lighting was poor. Figure 13 shows my wife arriving home in the evening, just after sunset. You can see that it was dark enough out that the car headlights are on, but the camera still was able to pick her up.
Figure 13: Twilight motion detection
Figure 14 shows me walking up the driveway much later in the evening when there was little natural light. I was holding a small flashlight to simulate a flame that an arsonist might be carrying. The built-in motion detection feature of the camera captured both of these pictures automatically so when it does work, it handles low-light fairly well.