Primary competition visual

Turtle Recall: Conservation Challenge

Helping Kenya
$10 000 USD
Completed (almost 4 years ago)
Classification
Computer Vision
753 joined
247 active
Starti
Nov 19, 21
Closei
Apr 21, 22
Reveali
Apr 21, 22
Moving away from 'recognition as classification'
Help · 17 Feb 2022, 16:53 · 4

I get that the temptation is to treat 'turtle_id' as a label and approach this as a classification problem but that feels a little weird given the context. Adding new turtles requires re-training, and limited pictures make this quite tricky (although it helps that there are quite a few for some turts making this easier than a 1-image-per-individual task).

I've just tested a (badly implemented) siamese network that tries to learn representations by predicting whether two images are of the same turtle. It doesn't do great (~0.03) but I get the feeling that this is at least a path worth exploring. Is anyone else doing some interesting contrastive learning? Any other different approaches working out? Or are we all just seeing who has the biggest ensemble of classification models :)

Discussion 4 answers

I got my current score (0.047) purely from using tensorflow inage classification models natively(i.e. no tfimm which gives access to torch models as well) though there is a LOT of varience in results among different folds ( I've done a 5 fold split) and I can't find a good way to ensemble them yet to beat my 0.047. i suspect torch will probably give much better performances and that's what I plan to implement next after I'm a bit free

User avatar
alka

When I first saw the problem I also thought of it as a few shot learning task, thus qualified for contrastive learning. But I first tried a classical classification approach because it is simpler. Then tried a Siamese net with triplet loss. Results :

0.049 for (my best) classification approach VS 0.037 for Siamese.

However worth noting that I haven't tuned the Siamese yet.

18 Feb 2022, 06:26
Upvotes 0

Nice! I also tried Siamese but then decided to change tack. I'm about to post a new discussion with notebook and blog post but suffice to say, contrastive learning works well :)

I added 2000 images from extra csv into train and I treated it as a classification problem with EfficientNetV2_bo with autoaugment implemented natively and I got around (0.64 , 56th place ) , I'm trying now to implement arcface and see the results