Home

Awesome

Steam CLIP: match Steam Banners with OpenAI's CLIP

<!-- [![Build status with Github Action][build-image-action]][build-action] [![Code coverage][codecov-image]][codecov] [![Code Quality][codacy-image]][codacy] -->

This repository contains Python code to retrieve Steam games with similar store banners, using OpenAI's CLIP.

Image similarity is assessed by the cosine similarity between image features encoded by CLIP.

Similar vertical banners

Requirements

python -m pip install --upgrade pip
pip install -r requirements.txt

Model

CLIP is a neural network:

In this repository, the image encoder is ViT-B/32.

Data

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

The most recent data snapshot was downloaded with this Colab notebook on January 9, 2021. Open In Colab

This snapshot is shared as an archive (original_vertical_steam_banners.tar, 1.5 GB) on Google Drive.

It consists of vertical Steam banners (300x450 resolution), available for 29982 out of 48792 games, i.e. 61.4% of games.

Resized images are provided in the same repository for resolutions 256, 224, 128, 64, etc.

The list of appIDs (before any potential filtering) is from steam-store-snapshots.

Filtering out

Information is also provided in .txt logs about a possible filtering out of images based on:

It is up to the reader to filter out the dataset based on these logs. Logs can be reproduced with this Colab notebook. Open In Colab

Usage

Run match_steam_banners_with_CLIP.ipynb. Open In Colab

This will:

NB: by default, query appIDs consist of:

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

Web apps

Results can be interactively explored with web apps:

Results


The CLIP embedding for the ~30k banners is shared on Google Drive.

Results obtained with OpenAI's CLIP are shown on the Wiki.

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

Caveat

[!Note] As noticed on January 16, 2021 in the #1 issue in the official repository of openai/CLIP, image similarity is driven by the text present in the images. This was then officially discussed by OpenAI on March 4, 2021 on the Distill website and in a blog post. This remark also appears in Figure 5 (now 6) of the DALL·E 2 paper published on April 13, 2022.

DALL·E 2

Similar games

Direct links to similarity results are available below:

For instance: Similar vertical banners


Fall Guys


Ring of Elysium


Chivalry


Call of Duty


Day of Defeat


Cities

Dinosaurs

Dinosaurs

Dinosaurs

WWII / Heroes / War / W

War

Logos

The model is able to retrieve games from the same franchise.

Arma / Army / Arms

Arma

Borderlands / Land

Borderlands

Braveland / Capital "B" letter

Braveland

Call of Duty

Call of Duty

Age of Empires / Empire(s) / Emperor

Age of Empires

Fallout

Fallout

Grand Theft Auto

Grand Theft Auto

Guacamelee

Guacamelee

Hitman

Hitman

λ / Half-Life / Hal

λ

NBA / 2K

NBA 2K

Words

The model relies on words present in the images, as shown in the following examples.

Forest

Forest

Legend

Legend

Civilization / Civ / tion

Civilization

Dawn

Dawn

Dead / Light

Dead / Light

Don't / Together

Don't / Together

Heroes

Heroes

Hunt

Hunt

Life / Strange

Life / Strange

Monster / Hunt

Monster / Hunt

Planet

Planet

Portal

Portal

Rain

Rain

Secret / Lab

Secret / Lab

Story

Story

Story (again)

Story (again)

Truck

Truck

Black

Black

Ust

Ust

Dead

Dead

Valley

Dead

The absence of words allows to retrieve similar image content.

Tanks

Unique games

Direct links to similarity results are available below:

For instance: Unique vertical banners

References

<!-- Definitions -->