Doing some quick research, I think I would TF lite and one of their very lightweight single class detectors or classifiers. I haven’t tried to train one yet but this seems to be fine for my application in terms of latency and size. Detection is most important and where the fish is on the screen is less so. Tracking is not needed.
That said, I am making some progress using standard openCV tools – mostly by large kernel (15) blurring, weighted average backgrounds, and thresholding.
Also, I stumbled on the fact that the Otsu thresholding completely masks the “prop wash” which seems to be useful. I almost need two algorithms – one for a fish in the prop wash (upper left) and one for a fish against the deep blue.
Also, I wish all these were not just looking at gray scale color as the fish color is very different than either the prop wash (upper left) or the deep blue. That seems like useful property in trying to isolate the fish or detect the fish.
Here are some progress views showing the various stages in my process: