Home

Awesome

Match Steam Banners

Build status with Github Action Code coverage Code Quality

This repository contains Python code to retrieve Steam games with similar store banners.

It is based on the best practices observed in my previous repository download-steam-banners:

Similar vertical banners

Requirements

python -m pip install --upgrade pip
pip install --upgrade cython
pip install -r requirements.txt -f https://download.pytorch.org/whl/torch_stable.html

NB: Tensorflow 2 supports Python 3.5–3.8, not 3.9.

pip install git+https://github.com/openai/CLIP.git
git clone https://github.com/facebookresearch/dino.git
mv dino/vision_transformer.py .
mv dino/utils.py .

Model

MobileNet is a convolutional neural network, trained for classification on ImageNet-1k (1.28M images with 1000 classes).

In this repository, the image encoder is MobileNetV3-Small.

Data

Data is available in download-steam-banners-data/.

The most recent data snapshot was downloaded in August 2020 with this Colab notebook. Open In Colab It consists of 19,049 vertical Steam banners resized from 300x450 to 256x256 resolution.

Usage

NB: a Colab notebook is available in my colab branch. Open In Colab

1. Features

First, compute and store the 1024 features corresponding to each banner:

python build_feature_index.py

2. Similar games

Find the 10 most similar store banners to curated query appIDs:

python retrieve_similar_features.py

NB: by default, query appIDs consist of:

3. Unique games

Find the one most similar store banner to all appIDs available on the store, then display the most unique games:

python find_unique_games.py

NB: unique games are ones which are the most dissimilar (low similarity score) to others to their first neighbor.

4. Export data and results for a web app

Optionally, export data and results for a web app:

python export_data_for_web_app.py

Results

Results obtained with MobileNet v3 are shown on the Wiki.

The linked pages contain a lot of images and might be slow to load depending on your Internet bandwidth.

Similar games

Direct links to similarity results are available below:

For instance: Similar vertical (Call of Duty)

Or: Similar vertical banners (Half-Life)

Unique games

Direct links to similarity results are available below:

Unique games seem to have in common that their banner contains mostly a texture and a title, without any large character, item or shape.

For instance: Unique vertical banners

References

<!-- Definitions -->