Loading...
Wildlife Tech

Community Fish Detector (CFD) for binary fish detection

Learn about what a binary fish detector can be used for while exploring some pros/cons of the new Community Fish Detector

Hugo Markoff
Hugo Markoff
Community Fish Detector (CFD) for binary fish detection

What is Community Fish Detector (CFD)

Similarly to the terrestrial animal counterpart - MegaDetector, it’s a “binary” detector which in essence provides a tool for people to spot animals. Before the existence of CFD, I would ask people to test the MegaFishDetector which I wrote about nearly a year ago: https://www.animaldetect.com/blog/megafishdetector-binary-fish-detector but there is a new sheriff in town!

There is no better way to describe CFD than to quote the description from the GitHub page (https://github.com/WildHackers/community-fish-detector)

“Detector for generic "fish" trained on publicly available datasets, currently supporting YOLO-style bounding boxes prediction and training. Can also be used as pre-trained networks for further fine-tuning.”

Automate your camera trap image analysis with Animal Detect

Animal Detect
Animal Detect

“The model was trained on the Community Fish Detection Dataset, a collaboratively built, large-scale dataset that unifies >1.9 million images and >935,000 fish bounding boxes from 17 open datasets spanning freshwater, marine, and lab environments."


Use-cases

So what exactly can CFD be used for?

1. Filter empty images. While empty images seem like a large problem for camera traps on land, where the motion sensor (PIR) sensor may be triggered due to branches moving etc. Under water cameras are something completely different… they often don’t rely on any motion sensors, and instead records periodically, or even 24/7. Here, the CFD becomes a hero, where it can be used to analyze the videos or images to filter all the ones without any fishes away.

2. Used in a classification pipeline. Seen from MegaDetector and the article “To crop or not to crop” https://ietresearch.onlinelibrary.wiley.com/doi/10.1049/cvi2.12318 and from many terrestrial classification pipelines, such as SpeciesNet and DeepFauna

And probably more ways to use the detector, and I would love it if you can think of more use cases and tell me😊


Potentional limitations

When does CFD not work well?

Murky waters remain somewhat a challenge. Also, large non-fish floating objects such as algae drifting in the water can be recognized as fish. I also noticed that there were a few instances where there were fish in the top of image, partially not included, which have problems being detected. I also noticed that it had a bit of issues with some flatfish.

Also, this model is for Fish, so other underwater creatures, such as crabs, sea stars and alike are not included.


Tests and test data

My tests used data from Luderick Seagrass - https://www.kaggle.com/datasets/ricardfos/luderick-seagrass

CFD detector running on videos from - Luderick Seagrass data (x2 speed)

Ditria, E. M., Connolly, R. M., Jinks, E. L., & Lopez-Marcano, S. (2021). Annotated video footage for automated identification and counting of fish in unconstrained marine environments (Version 1.0.0) [Computer software]. https://doi.org/10.1594/PANGAEA.926930

And a bunch of images which from the Danish sea side which I can frankly not share.


Conclusion:

To date (3-11-2025) Community Fish Detector (CFD) is the SOTA open-source binary fish detector. If you are looking for species recognition, jump into the AI for conservation slack channel, or wildlabs forum https://wildlabs.net/ and poke around 😊

For commercial use, I can recommend Anemo Robotics https://anemorobotics.com/#technology which both develop their own camera hardware and AI algorithms for fish species recognition.

Hugo Markoff

About Hugo Markoff

Co-founder of Animal Detect, the dog man.

Want to try Animal Detect?

Start now