Share your work here ✅

[Lesson 1, 2] Classifying Screenshots of 485 SNES games with 95.8% accuracy

I was able to use the techniques taught in 2019 lessons 1 and 2 to build a SNES game screenshot classifier.


It distinguishes between all 485 SNES games with remarkable accuracy!

error_rate
The screenshots it has difficulty on are screens with only text displayed (for example, game endings, etc).

To build the dataset, I downloaded LongPlays of the game from youtube, then used ffmpeg to extract ~150 screenshots from each video.

Links:
GitHub repository
Online Demo/Webapp of the model
Short Blogpost

I have not shared the dataset, because I’m not sure how to do so in a cost-effective manner (it’s 3.2 gigs of screenshots).

Edit: Changed 600 games to 485 games. I downloaded 600 videos, but only had 485 games to distinguish between after merging multiple videos for single games, and merging japanese/us/european titles to one per.

7 Likes

Wow, I love this!
600 classes is really a lot. And that method for generating the dataset is genius!

1 Like

Hello everyone,

I have made a responsive webapp to help me provide inputs to the different models that I train with fastai and mostly to have fun with my friends while using it :grinning: .

For the moment you can interract with 4 trained models : image recognition (do not forget to read the discalmer ! ), sound detection, NLP and image reconstruction.

The hard part for the NLP model was to get enough data. Since facebook api needs autorisation to get all the post of a specific page (even a public one), I had to scroll A LOT on John Danaher’s facebook page, copy all the html, find a regexp to extract only the text and then clean it. But i’m pretty satisfied with the results since I only got 82975 words in total.

Image reconstruction is still in progress. Even though Henri.C and myself have made a lot of experimentations, the results are not always great. But the task seems to be a harder than we thought since nvidia is working on this https://www.nvidia.com/research/inpainting/masking :slight_smile:.

Still, I’m pretty amazed with all the complex models that we can create with a formation of only 7 lessons !

Here you can find the git repos :
client side : https://github.com/Polegar22/fastai-feeder-pwa
server side : https://github.com/Polegar22/fastai-models-interactor

And I deployed it on : https://render.com/ which is really convenient !

7 Likes

I would love to see the top losses on this :laughing:

Hi! I have used the template of week 1 and 2 to create a classifier for some famous buildings in the world and also used render to make a web app here: https://famous-buildings.onrender.com.

Here is the gist of the notebook: Gist

I got it down to an error rate of about 5 percent. As I already figured before, it has a hard time to distinguish skyscrapers (one world trade center, empire state building and the shard (LDN)). Another problem is that sometimes when I classified the picture as empire state building, the world trade center is in the background of the image.

As I used Google Colab I couldn’t use the widgets so I cleaned the dataset by hand. If I want to increase the number of classes in the future, I will have to find a more automated solution for this.

Going further with this I want to make this image classifier a bit more “personal”. As I am living in Zurich I would like to create a small (web) app where you can take pictures of the touristic attractions in Zurich and it tells you what it is. Would be cool to link the Wikipedia article to it.

So far, I really enjoy this course (after only one week) a lot. Better than all the other MOOC’s I have done before. I already made one individual project, how cool is that!

Thanks to everyone at fast.ai!

Cheers,
Noé

2 Likes

Hello. I’d like to share my first ever blog post; I have written about implementing MixMatch in fastai.

MixMatch is a recent semi-supervised learning technique from Google research, and has pretty impressive results.

I’d like to thank Rachel Thomas for this very helpful blog on writing better posts.

7 Likes

Hi all,
I finally finished replicate the 2018 lesson 8-9 of SSD model in fastai V1 style.
I hope this can bridge the gap between 2018 SSD and 2019 Retina Net (since in 2019 part-2 we still didn’t get chance to talk about Retina Net).
It follows everything in 2018 lesson 8-9. It was a great time to explore some lower level APIs of fastai
Here is working notebook,

And I also wrote a bit about Object Detection API, construct bounding box in V1 style (-1,1) and interpret Loss function and display prediction.

5 Likes

Trained the stanford car dataset: https://ai.stanford.edu/~jkrause/cars/car_dataset.html and reached 93% with fast.ai. I’m quite pleased with the result! Here’s the code: https://github.com/senecamanu/stanford-car-sm

1 Like

I finally finished my mini-series about solving captchas!

In this final part I improve the solution from the second part by not using 5 single models but instead modelling the whole captcha solving in a single model.
After some failed modelling attempts I found one that works really well.

I’m exited to now tackle the next challenge! (whatever that may be)

3 Likes

Great work! Especially the “multi_cross_entropy” loss approach.

Hey everyone, this work is a continuation of the suggested practice given in Lesson 1 for downloading images and running classifier. I have created a dataset in Kaggle - Martial_Arts_Classification and the kernel link is - https://www.kaggle.com/nanda1331/using-fastai. Please give some reviews for the kernel and the dataset. If you like the kernel and the dataset please upvote them as well.

1 Like

Thanks! Unfortunately that approach wasn’t very effective…

1 Like

Good job :smiley: I’ve run into something interesting. Think your model may also predict based on something else than facial features, because my linkedin photo was rated as 37 years old and my casual photo as 24 years old, me with makeup and dressed mmore partyish 30 years old (the actual truth). Have you tried training it on same people in different setting or possibly same people at different ages?

1 Like

I haven’t had a chance to look at this in a while but yeah you are right there are a lot of ways to improve it.

1 Like

Want to do fancy Data Sciencing with Twitter data?

I created an interactive Google Colab that walks you through an end-to-end analysis of what’s trending on a selected Topic. Colab is an awesome (and very under used) tool and its Form feature lets you create a great UX experience similar to an App while giving the option to dig deeper into the underlying code.

I use Seattle as my example in the notebook but it is setup to be used for any topic. You can scrape twitter data, parse out tags (NER), do sentiment analysis, and visualize all that good stuff with plots and Word Clouds.

Link to notebook: https://lnkd.in/ghKzQV4

What a shame! btw it’s an interesting idea and a good starting point for new experiments.

Hey everyone,

I wanted to share 2 Medium articles I wrote. The first one I created after lecture 1 and attempts to predict whether the stock market will move up or down.

The second article follows from lecture 4 where I use embeddings for the Store Item Demand Forecasting kaggle competition.

4 Likes

So after lesson 3 and some trouble working with the data, I created a landmark detection model for cat facial features using this cat dataset from kaggle. And I am pretty satisfied with my work, guess I could do better, but I think I must move on with the lessons haha

I would like to take this opportunity and point out some things that I came across along the way:

  1. Applying any kind of transform worsened the performance of my model by quite a lot. I guess that makes some sense since when you are taking the picture of cat you are mostly putting its face on the center of the picture, so rotating and mirroring shouldn’t improve.
    I have my doubts about this hypothesis, and is something I might try to understand further later.

  2. Basically running more epochs did a lot of the trick, but not too much. Very few (less than 15) my model ended really bad, but a lot (More than 30) made things worse. There was a lot of trying and error

Anyway, here is the repo with the notebook:

Thanks! :smiley:

2 Likes

92.77!!! Acc on stanford car dataset with resnet152 with
progressive resizing 448 sizes

1 Like

Really enjoyed the image recognition article, an interesting approach to stock prediction