Farmers often have critters, large and small. They are to varying degrees susceptible to predator attacks.
This software/hardware system aims to automatically alert the farmer to any predators (and only predators) present in the farm animals' living quarters or grazing fields. If the farmer doesn't know when their animals are at risk, they can't very well take action, can they?
I believe this hack can reduce livestock losses to predators, and conflicts spurred from that; worldwide. By reducing the losses, it might also save some resources?
Get your preferred video source out, because we'll be livestock surveillin'
PS: preferably just scare the predators off and contact whatever public service handles predators in your jurisdiction.
I've started on the auto-discovery-&-connect feature leveraging onvif. Because onvif on python is somewhat stale, I couldn't find any libraries that do exactly what I want. The closest thing is pyOnvif, so I forked it here in an effort to update and adapt it to my usecase.
Turns out my cameras aren't exactly compliant to the onvif schema standard, so they were completely invisible to the built-in discovery method of the library. A bit of cross-eyed examination revealed that my cameras have different xml leading characters from standard. Sooo I added some logic to handle such cases to my fork of the pyOnvif.
xml is pretty powerful and it's not like pyOnvif uses much of the power, so I moved it to defusedxml which defends against many exploits.
House keeping
I'm currently on welfare, with required welfare activities. I'm trying to get some time off from those activities/work in order to do more work on this software.
In order to do that, I need to prove that there is an interest and a need for this software.
If you're a farmer, could you comment how a solution like what I'm trying to make here, would help you?
If a finished solution were to be sold as a product (either local, simple install or even easier Software-as-a-Service), what would you pay for it?
You need to figure out yourself how to connect to your camera / video source.
Alerts aren't implemented yet.
The model is bog standard YOLO v8. ---> Predator recognition doesn't work yet.
We need more relevant image datasets, to train the model.
## For developers:
Documentation is lacking
I'm trying to run Labelstudio locally, with auto-annotation. But having issues. Please help out if you know some way to do active learning or some other simple way of gradually improving recognition of ~20 object classes on a growing dataset.
I don't want to make a mobile app, because it seems to be a fairly large and fragmented target. I'd rather make a webapp, and have people "install it" on their device of choice (by placing a shortcut on their desktop/homescreen). I don't know how to make a webapp either, so if anyone can help out with that, great.
Planning to implement ONVIF video source recognition to ease setup. This I can do.
Planning to eventually distribute on Pypi. I don't know how to package, but it seems at least somewhat straightforward.
RE: following established coding guidelines... I am self taught, and coding guidelines with classes and separate subscripts for each major function is a little confusing for me. I'd still like the project to follow guidelines so that most capable people feel comfortable contributing and to ease maintenance. If you can help with that, please do.