1 | initial version |
I think this is possible, but your question is rather vague and knowing more about your specific problem would help us give a better answer. A large object from several hundred meters away can still be quite small and may not even be seen from a camera. That said, my approach would be to apply a motion detecting algorithm, such as Optical Flow to detect if an object is falling. You can also filter results by motions that are moving in the 'down' direction of your camera. Another approach is that if the environment is very static, you could use a background subtraction algorithm to watch the scene and pick out moving objects. Both of the above mentioned algorithms are supported in OpenCV.
For hardware solutions, two popular solutions for low cost/power boards would be the Raspberry Pi or the Beaglebone. There's a good comparison of these two boards [here](http://blog.makezine.com/2013/04/15/arduino-uno-vs-beaglebone-vs-raspberry-pi/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+makezineonline+(MAKE), which also includes the Arduino Uno, but OpenCV's processing requirements would crush the AtMega. A quick google search shows some results for OpenCV+Arduino, but as far as I can tell, they're just using Arduino as a platform for controlling camera servos. Personally, I've gotten OpenCV to run on the Raspberry Pi, but it was also early in its development, so there were still issues with the USB driver which would cause the webcam to fail due to inconsistent power. This was a few months ago, so as far as I know, those problems have been fixed. I have yet to actually run OpenCV on the BeagleBone, but I don't see any reason why it wouldn't work.