Is it possible to recognize thousands of individual fish?

Hi all! I usually work with web application development, but I’ve been asked by a potential customer if it’s possible to create a CNN which is able to recognize thousands of individual fish. I know that e.g. Google Photos does the same for faces and even individual pets, so I know that it’s possible. What I don’t know is if its possible to do so without Google’s resources?

All examples I’ve read/watched so far in regards to face recognition is about how the CNN can recognize the faces of persons it already knows (i.e. you teach it from 20 labeled images that George W. Bush looks like this, and then it can identify him on any photo after that.) But how does Google do it when they don’t know the names of the persons (images are not labeled), and they still manage to group the images of each individual person/pet so that the user can label them afterwards?

My guess is that they’ve trained their CNN on millions of images, and if the image at hand doesn’t match any of the pre-trained individuals, they put it in a new group called “Unknown person nr xxx”. If they later come across a second image of the same face, it will be placed in that same group. Is this a correct assumption? If yes, does this mean that to be able to identify thousands of individual fish, you need to train a model with xxx images of yyy individual fish before the model is ready for use? If we assume that individual fish are as diverse as human faces, how many training images would one need per fish, and how many individual fish, if you wanted an accuracy > 80%?

Hi Anders,

Do you want to recognize an individual fish or a type of fish (salmon vs shark?)??

in any of the cases, you’d need many many images of fish to train the model.
On the faces feature you mentioned, what I think they are doing is, they know how to find a face on a picture. That’s kind of easy as faces are usually all similar (eyes, nose, mouth). After that, you can calculate an embedding and use something like nearest neighbors to find similar faces and create groups of faces that are from the same person.

This same algorithm can be used for a lot of things, not only faces.

I hope it helped


Hi Luiz, and thanks for your reply!

I want to recognize thousands of individuals in one single species (salmon, to be precise). Do you have any idea about approximately how many images would be needed? I think that number is the most important thing when deciding if this project is at all feasible.

Are your needs for fish farming?

E.g. Do you have already seen:


@Bhack, no, I had not seen that. Very interesting, thanks!!