Wildpark-MV, a German wild nature park near the town of Güstrow installed a dozen webcams so that anyone could watch animals in the wild. Most of the cameras are hanging in a natural forest, through which wild animals pass from time to time. And although the places for cameras were chosen meaningfully (the lake, near which bears like to wallow during the day, the place where they leave food for lynx, and so on), it is quite difficult to catch animals. So, in order not to spend a lot of time waiting, I assembled a simple script over the weekend, which every X minutes downloads pictures, passes them through a neural network detector and, if something interesting was found, throws them into a telegram channel WebCamWatcher.
Last time I used Facebook Detectron to measure the queue length, so now I decided to try a pretrained Tensorflow Object Detection out of the box as a detection model. The quality turned out to be so-so: a lot of false positives, and the model regularly recognizes the lynx and wolves as sheep and dogs:
Perhaps, next time I’ll give a try to the YOLO detector.
In short, I tuned some simple heuristics on top of the model in favor of the detection accuracy, so now a couple of times per day a photo of some animal comes to the channel together with a link to the webcam stream, so you can continue watching it real time.
Here is a gist of my script: