So I have been working on the vervet monkey detector idea for a little while now. So far I have had some success with the back end. Here is an update on how it works so far. (tldr I used Google Cloud Vision api and some bash scripts)
- 1. I take a photo of the monkey (I still need to automate this, with motion detection)
- 2. Upload to my server using scp
- 3. Some moving around on the server to make the image public for Google Cloud Vision to see it – using inotifywait and mv
- 4. Google cloud vision api call with image url using curl
- 5. To do: parse json response from google to check if a monkey is actually there.
- 6. Send a signal to wireless valve (switches on the sprinkler and hopefully gives the monkeys a fright) – I have built one already, just need to modify the code slightly for wireless. Thinking of using esp8266 for this, since I have so many lying around, and a 12v battery since the tap valve solenoid runs off of 12v. I have a nice circuit board I built for my wireless poi which incorporates an ESP-01 and a voltage regulator. Add in a relay to switch 12v and it’s done.
So there is much to do. There is also the question of accuracy, obviously I don’t want any false positives wetting any unwary visitors, so I need to test this a lot before using it. The first version will trigger an alarm only, which in itself could be useful as a phone app, for example. We might be able to leave the windows open on occasion, with a monkey detector to alert us when one tries to get in and steal our food (this happened twice in the last week)
At some point I will have to make my own machine learning classifier for monkey images, as Google charges $1.50 currently per 1000 images classified. The first 1000 are free, but they have a habit of changing the pricing on their products without notice.