Der Quick Draw-Datensatz ist eine Sammlung von 50 Millionen Zeichnungen in 345 Kategorien, die von Spielern des Spiels Quick, Draw! beigesteuert wurden. Die Zeichnungen wurden als zeitgestempelte Vektoren erfasst und mit Metadaten versehen, darunter auch, was der Spieler zeichnen sollte und in welchem Land sich der Spieler befand. Sie können die erkannten Zeichnungen auf quickdraw.withgoogle.com/data durchsuchen.
Wir stellen sie hier für Entwickler, Forscher und Künstler zur Verfügung, damit sie sie erkunden, studieren und daraus lernen können. Wenn Sie mit diesem Datensatz etwas erstellen, teilen Sie uns dies bitte per E-Mail oder bei AI Experiments mit.
Wir haben außerdem ein Tutorial und ein Modell zum Trainieren Ihres eigenen Zeichnungsklassifikators auf tensorflow.org veröffentlicht.
Bitte beachten Sie, dass diese Sammlung von Zeichnungen zwar individuell moderiert wurde, aber dennoch unangemessene Inhalte enthalten kann.
Der rohe moderierte Datensatz
Vorverarbeiteter Datensatz
Holen Sie sich die Daten
Projekte, die den Datensatz verwenden
Änderungen
Lizenz
Die Rohdaten sind als nach Kategorien getrennte ndjson
Dateien im folgenden Format verfügbar:
Schlüssel | Typ | Beschreibung |
---|---|---|
key_id | 64-Bit-Ganzzahl ohne Vorzeichen | Eine eindeutige Kennung für alle Zeichnungen. |
Wort | Zeichenfolge | Kategorie, zu deren Auswahl der Spieler aufgefordert wurde. |
anerkannt | Boolescher Wert | Ob das Wort vom Spiel erkannt wurde. |
Zeitstempel | Datum/Uhrzeit | Als die Zeichnung erstellt wurde. |
Ländercode | Zeichenfolge | Ein aus zwei Buchstaben bestehender Ländercode (ISO 3166-1 Alpha-2) für den Standort des Players. |
Zeichnung | Zeichenfolge | Ein JSON-Array, das die Vektorzeichnung darstellt |
Jede Zeile enthält eine Zeichnung. Hier ist ein Beispiel einer einzelnen Zeichnung:
{ „key_id“: „5891796615823360“, „word“: „nose“, „countrycode“: „AE“, „timestamp“: „2017-03-01 20:41:36.70725 UTC","recognized":true,"drawing":[[[129,128,129,129,130,130,131,132,132,133,133,133,133,...]]] }
Das Format des Zeichnungsarrays ist wie folgt:
[ [ // Erster Strich [x0, x1, x2, x3, ...],[y0, y1, y2, y3, ...],[t0, t1, t2, t3, ...] ], [ // Zweiter Strich[x0, x1, x2, x3, ...],[y0, y1, y2, y3, ...],[t0, t1, t2, t3, ...] ], ... // Zusätzliche Striche]
Dabei sind x
und y
die Pixelkoordinaten und t
die Zeit in Millisekunden seit dem ersten Punkt. x
und y
sind reelle Werte, während t
eine ganze Zahl ist. Die Rohzeichnungen können aufgrund der unterschiedlichen Anzeige- und Eingabegeräte sehr unterschiedliche Begrenzungsrahmen und Punktzahlen aufweisen.
Wir haben den Datensatz vorverarbeitet und in verschiedene Dateien und Formate aufgeteilt, um ihn schneller und einfacher herunterzuladen und zu erkunden.
.ndjson
) Wir haben die Vektoren vereinfacht, die Timing-Informationen entfernt und die Daten in einem 256x256-Bereich positioniert und skaliert. Die Daten werden im ndjson
-Format mit denselben Metadaten wie das Rohformat exportiert. Der Vereinfachungsprozess war:
Richten Sie die Zeichnung an der oberen linken Ecke aus, damit der Mindestwert 0 beträgt.
Skalieren Sie die Zeichnung gleichmäßig, sodass der Maximalwert 255 beträgt.
Alle Striche mit einem Abstand von 1 Pixel neu abtasten.
Vereinfachen Sie alle Striche mit dem Ramer-Douglas-Peucker-Algorithmus mit einem Epsilon-Wert von 2,0.
In „examples/nodejs/simplified-parser.js“ gibt es ein Beispiel, das zeigt, wie ndjson-Dateien in NodeJS gelesen werden.
Darüber hinaus beschreibt das Dokument „examples/nodejs/ndjson.md“ eine Reihe von Befehlszeilentools, die bei der Untersuchung von Teilmengen dieser recht großen Dateien helfen können.
.bin
)Die vereinfachten Zeichnungen und Metadaten stehen auch in einem benutzerdefinierten Binärformat zur effizienten Komprimierung und zum Laden zur Verfügung.
In „examples/binary_file_parser.py“ gibt es ein Beispiel, das zeigt, wie die Binärdateien in Python geladen werden.
Es gibt auch ein Beispiel in examples/nodejs/binary-parser.js, das zeigt, wie die Binärdateien in NodeJS gelesen werden.
.npy
) Alle vereinfachten Zeichnungen wurden in eine 28x28-Graustufen-Bitmap im Numpy .npy
Format gerendert. Die Dateien können mit np.load()
geladen werden. Diese Bilder wurden aus den vereinfachten Daten generiert, sind jedoch an der Mitte des Begrenzungsrahmens der Zeichnung und nicht an der oberen linken Ecke ausgerichtet. Hier finden Sie den für die Generierung verwendeten Codeausschnitt.
Der Datensatz ist in Google Cloud Storage als nach Kategorien getrennte ndjson
-Dateien verfügbar. Sehen Sie sich die Liste der Dateien in der Cloud an oder lesen Sie mehr über den Zugriff auf öffentliche Datensätze mit anderen Methoden. Um beispielsweise alle vereinfachten Zeichnungen einfach herunterzuladen, können Sie beispielsweise den Befehl gsutil -m cp 'gs://quickdraw_dataset/full/simplified/*.ndjson' .
Rohdateien ( .ndjson
)
Vereinfachte Zeichnungsdateien ( .ndjson
)
Binärdateien ( .bin
)
Numpy-Bitmap-Dateien ( .npy
)
Diese Daten werden auch zum Training des Sketch-RNN-Modells verwendet. Eine Open-Source-TensorFlow-Implementierung dieses Modells ist im Magenta-Projekt verfügbar (Link zum GitHub-Repo). Weitere Informationen zu diesem Modell finden Sie auch in diesem Blogbeitrag von Google Research. Die Daten werden in komprimierten .npz
Dateien in einem Format gespeichert, das für Eingaben in ein wiederkehrendes neuronales Netzwerk geeignet ist.
In diesem Datensatz wurden 75.000 Stichproben (70.000 Training, 2,5.000 Validierung, 2,5.000 Tests) zufällig aus jeder Kategorie ausgewählt und mit RDP-Linienvereinfachung mit einem epsilon
Parameter von 2,0 verarbeitet. Jede Kategorie wird in einer eigenen .npz
Datei gespeichert, zum Beispiel cat.npz
.
Wir haben auch die vollständigen Daten für jede Kategorie bereitgestellt, wenn Sie mehr als 70.000 Trainingsbeispiele verwenden möchten. Diese werden mit den Erweiterungen .full.npz
gespeichert.
Numpy .npz-Dateien
Hinweis: Laden Sie für Python3 die npz
-Dateien mit np.load(data_filepath, encoding='latin1', allow_pickle=True)
Anweisungen zum Konvertieren von Raw ndjson
Dateien in dieses npz
Format finden Sie in diesem Notizbuch.
Hier sind einige Projekte und Experimente, die den Datensatz auf interessante Weise nutzen oder nutzen. Möchten Sie etwas hinzufügen? Lassen Sie es uns wissen!
Kreative und künstlerische Projekte
Briefcollagen von Deborah Schmidt
Face-Tracking-Experiment von Neil Mendoza
Gesichter der Menschheit von Tortue
Unendliches QuickDraw von kynd.info
Misfire.io von Matthew Collyer
„Zeichne das“ von Dan Macnish
Kritzelnde Rede von Xinyue Yang
Illustration von Ling Chen
Träume von elektrischen Schafen von Dr. Ernesto Diaz-Aviles
Datenanalysen
Wie zeichnet man einen Kreis? von Quartz
Forma Fluens von Mauro Martino, Hendrik Strobelt und Owen Cornec
Wie lange dauert es, einen Hund (schnell) zu zeichnen? von Jim Vallandingham
Schlechte Flamingo-Zeichnungen mit wiederkehrenden neuronalen Netzen finden von Colin Morris
Facetten tauchen x schnell, zeichnen! von People + AI Research Initiative (PAIR), Google
Erkundung und Visualisierung eines offenen globalen Datensatzes von Google Research
Maschinelles Lernen zur Visualisierung – Vortrag/Artikel von Ian Johnson
Papiere
Eine neuronale Darstellung von Skizzenzeichnungen von David Ha, Douglas Eck, ICLR 2018. Code
Sketchmate: Deep Hashing für den Abruf menschlicher Skizzen im Millionenmaßstab von Peng Xu et al., CVPR 2018.
Multi-Graph-Transformator für die Freihand-Skizzenerkennung von Peng Xu, Chaitanya K Joshi, Xavier Bresson, ArXiv 2019. Code
Deep Self-Supervised Representation Learning for Free-Hand Sketch von Peng Xu et al., ArXiv 2020. Code
SketchTransfer: Eine herausfordernde neue Aufgabe zur Erforschung der Detailinvarianz und der von Deep Networks gelernten Abstraktionen von Alex Lamb, Sherjil Ozair, Vikas Verma, David Ha, WACV 2020.
Deep Learning für Freihandskizzen: Eine Umfrage von Peng Xu, ArXiv 2020.
Ein neuartiges Skizzenerkennungsmodell basierend auf Faltungs-Neuronalen Netzen von Abdullah Talha Kabakus, 2. Internationaler Kongress für Mensch-Computer-Interaktion, Optimierung und Roboteranwendungen, S. 101-106, 2020.
Anleitungen und Tutorials
TensorFlow-Tutorial zur Zeichnungsklassifizierung
Trainieren Sie ein Modell in tf.keras mit Colab und führen Sie es im Browser mit TensorFlow.js von Zaid Alyafeai aus
Code und Tools
Schnell, zeichne! Polymer Component & Data API von Nick Jonas
Quick, Draw for Processing von Cody Ben Lewis
Schnell, zeichne! Vorhersagemodell von Keisuke Irie
Das Zufallsstichprobentool von Learning Statistics ist großartig
SVG-Rendering in d3.js, Beispiel von Ian Johnson (lesen Sie hier mehr über den Prozess)
Sketch-RNN-Klassifizierung von Payal Bajaj
quickdraw.js von Thomas Wagenaar
~ Doodler ~ von Krishna Sri Somepalli
Quickdraw Python API von Martin O'Hanlon
RealTime QuickDraw von Akshay Bahadur
DataFlow-Verarbeitung von Guillem Xercavins
QuickDrawGH Rhino Plugin von James Dalessandro
QuickDrawBattle von Andri Soone
25. Mai 2017: Aktualisierter Sketch-RNN QuickDraw-Datensatz, erstellte .full.npz
Komplementärsätze.
Diese Daten werden von Google, Inc. unter der Creative Commons Attribution 4.0 International-Lizenz zur Verfügung gestellt.
Die folgende Tabelle ist erforderlich, damit dieser Datensatz von Suchmaschinen wie Google Dataset Search indiziert werden kann.
Eigentum | Wert | ||||||
---|---|---|---|---|---|---|---|
Name | The Quick, Draw! Dataset | ||||||
alternativerName | Quick Draw Dataset | ||||||
alternativerName | quickdraw-dataset | ||||||
URL | https://github.com/googlecreativelab/quickdraw-dataset | ||||||
gleich | https://github.com/googlecreativelab/quickdraw-dataset | ||||||
Beschreibung | The Quick Draw Dataset is a collection of 50 million drawings across 345 categories, contributed by players of the game "Quick, Draw!". The drawings were captured as timestamped vectors, tagged with metadata including what the player was asked to draw and in which country the player was located.n n Example drawings: ![preview](https://raw.githubusercontent.com/googlecreativelab/quickdraw-dataset/master/preview.jpg) | ||||||
Anbieter |
| ||||||
Lizenz |
|