Offizielle Referenz

Googles QuickDraw Component auf GitHub

Google Creative Lab hat nicht nur den Quick-Draw-Datensatz dokumentiert, sondern auch ein Beispielprojekt veroeffentlicht: quickdraw-component. Es ist heute archiviert, bleibt aber als technische Referenz interessant.

Was das Repository ist

Das Projekt ist eine Polymer/Lit-Web-Component, mit der sich einzelne Quick-Draw-Doodles in Webseiten einbetten lassen. Die Nutzungsidee ist bewusst klein: Eine Komponente wie <quick-draw category="apple"> laedt eine Zeichnung aus einer Kategorie und zeichnet sie auf ein Canvas.

Das ist keine vollstaendige Open-Source-Version des Spiels und auch kein Trainingscode fuer den neuronalen Klassifikator. Der Fokus liegt auf Datennutzung, Rendering und API-Zugriff auf bereits vorhandene Zeichnungen.

Quelle: googlecreativelab/quickdraw-component.

Component: Doodles im Browser rendern

Die Component besitzt Properties wie Kategorie, Index, Strichfarbe, Strichbreite, Breite, Hoehe und Animationsmodus. Intern wird ein canvas verwendet. Die Strichdaten bestehen aus separaten X- und Y-Punktlisten je Stroke; optional kommen Zeitwerte hinzu, damit eine Zeichnung in ihrer urspruenglichen Bewegung abgespielt werden kann.

<quick-draw
  category="apple"
  key="API_KEY"
  animate>
</quick-draw>

Technisch ist das interessant, weil es die Struktur des Datensatzes sichtbar macht: Die Zeichnung ist nicht nur ein Pixelbild, sondern eine Folge von Liniensegmenten. Genau diese Eigenschaft ist auch fuer RNN-Modelle und Sketch-RNN relevant.

API: Kategorie, Count und einzelnes Drawing

Zum Component-Repo gehoert eine Express-basierte API-Schicht. Sie stellt unter anderem Endpunkte bereit, um die Anzahl der Doodles in einer Kategorie abzufragen oder eine bestimmte beziehungsweise zufaellige Zeichnung zu laden.

GET /drawing/:category/count
GET /drawing/:category?id=random&isAnimated=false

Die API unterscheidet zwischen vereinfachten und rohen zeitbasierten Zeichnungen. Fuer Animationen wird die rohe Variante genutzt; fuer statische Darstellung reicht die vereinfachte Form.

Self-Hosting statt Demo-Abhaengigkeit

Die README weist deutlich darauf hin, dass groessere Projekte nicht auf den Demo-Endpunkt bauen sollten. Stattdessen kann man die Doodle-Dateien in ein eigenes Google-Cloud-Storage-Bucket kopieren und die API selbst betreiben. Die API-README beschreibt dafuer Bucket-Kopie, lokale Konfiguration und App-Engine-Deployment.

Fuer DrawLa.app ist daran vor allem die Architektur interessant: Doodle-Daten liegen als Dateien im Storage, die API liefert gezielt einzelne Beispiele aus, und das Frontend rendert die Stroke-Daten im Browser.

Abgrenzung zu PyTorch und DrawLa/DrawClash

Das Google-Component-Repo beantwortet die Frage: Wie kann ich echte Quick-Draw-Doodles abrufen und anzeigen? Die PyTorch-Seite beantwortet dagegen: Wie trainiert man aus gerasterten Quick-Draw-Bildern einen CNN- Klassifikator?

DrawLa/DrawClash nutzt praktisch die zweite Richtung: Striche werden in ein Bild normalisiert und klassifiziert. Googles Component ist trotzdem eine gute Referenz, weil sie zeigt, wie der Datensatz als Webprodukt gedacht wurde: einzelne Kategorien, einzelne Zeichnungen, Canvas- Darstellung und optional zeitliche Animation.