I made a Penguin Classifier, based on the bears example from lesson 2 of the course.
https://www.patagoniapenguins.org/which-penguin/
It’s deployed as an AWS Lambda function, with a client-side website using knockout.js.
If you’re interested the code is in my github repository:
server side: https://github.com/LauraBromley/penguin-inference-api
client side: https://github.com/LauraBromley/penguin-inference-static-site
I downloaded my images using google image search, and I had about 130-170 in each category. I used a resnet34 and the defaults for training (as per the lesson), and found that my error rate was quite a bit higher than the examples in the lessons - the best I got after running a few cycles was 0.08.
So I was wondering why my accuracy is not so good… these are my initial thoughts:
-
There are 17 species of penguins, but quite a few of the species are very similar and even from a human perspective it’s difficult to tell the difference between them.
-
Penguins hang out in colonies and so it is difficult to find photographs of individuals. I wonder if this is a problem since the images used for inference will probably also contain multiple penguins?
-
The distinguishing features for penguins are normally in the head (beak colour, crest etc), and their bodies are pretty similar (white front, black back) so I thought maybe when the images get cropped, parts of the head are missing? I did try changing some of the image transforms (resize_method etc) but I wasn’t able to improve my error rate.
Does anyone have any thoughts on what I could try?