My sense has been that accuracy that I need is only possible with the pretty advanced AI models and that OpenCV type approach wouldn't be good enough. Birds are pretty small in the image of the overall pool that I am working with and discerning them accurately is hard. I think it would be possible for other use cases and basically depends on the image source you are working with and the difficulty of detection within that image.
If you had, say, a camera on the inside of a birdhouse and the whole scene was either empty of taken up by a bird, then that would be easy for an on-device model.