Einführung
- Canva-Nutzer können mit dem neuen Draw-Tool ihrer Kreativität freien Lauf lassen und benutzerdefinierte Zeichnungen zu Designs hinzufügen.
- Einfache Linien oder Formen, die Nutzer mit Maus oder Trackpad zeichnen, können ungenau sein; zur Korrektur wurde daher die Funktion Shape Assist entwickelt.
- Shape Assist nutzt maschinelles Lernen (ML), um unsichere Skizzen in saubere Vektorgrafiken umzuwandeln.
Designüberlegungen
- Bei der Entwicklung der Funktion wurde die Klassifizierungsverzögerung als oberste Priorität behandelt, damit die Nutzererfahrung schnell und zugleich präzise bleibt.
- Die Lösung wird im Browser bereitgestellt und ermöglicht Formenerkennung und Zeichenunterstützung in Echtzeit.
- Es ist keine Internetverbindung erforderlich, wodurch die Zugänglichkeit auch offline gewährleistet ist.
Datenerfassung
- Die Grundlage eines erfolgreichen ML-Modells ist die Datenerfassung; dafür wurden Zeichnungsdaten von vielfältigen Nutzern gesammelt.
- Die von Nutzern gezeichneten Linien wurden als Sequenzen von x- und y-Koordinaten aufgezeichnet, um einen Datensatz mit verschiedenen Stilen und Variationen zu erfassen.
- Durch die Aufzeichnung der Daten über Koordinaten wurde Flexibilität für die Datenvorverarbeitung und die Anwendung verschiedener Data-Augmentation-Techniken geschaffen.
Modelldesign und Training
- Es wurde ein ML-Modell entworfen, das clientseitig ausgeführt werden kann, ohne die Seitenladezeit negativ zu beeinflussen.
- Statt eines CNN wurde mit einem RNN experimentiert, das Koordinaten direkt verwendet, um die Modellgröße zu minimieren.
- Durch das Abstimmen verschiedener Hyperparameter wurden die optimalen Eigenschaften des Modells ermittelt.
- Unter Berücksichtigung unterschiedlicher Zeichengeschwindigkeiten der Nutzer wurde die Anzahl der Punkte, die jede Form darstellen, fixiert.
- Der Ramer-Douglas-Peucker-(RDP)-Algorithmus wurde angepasst, um die Anzahl der Punkte zu reduzieren und dabei wichtige Details zu erhalten.
Überlegungen zur Bereitstellung
- Das Modell ist klein und rechnerisch einfach, sodass die gesamte Verarbeitung innerhalb der Client-Anwendung ausgeführt werden kann.
- Die Funktion arbeitet vollständig offline, ohne dass eine Verbindung zu einem Server erforderlich ist.
Modellarchitektur
- Das Modell besteht aus einer Struktur mit einer LSTM-Schicht und Gemm (einer dichten bzw. vollständig verbundenen Schicht).
- Das Modell ist etwa 250 Kilobyte groß und wurde für die Ausführung auf dem Client direkt in Typescript implementiert.
Formersetzung
- Nachdem die vom Nutzer gezeichnete Form bestimmt wurde, wird ein Template-Matching-Ansatz verwendet, um die Vektorgrafikdarstellung und den Zeichenpfad des Nutzers präzise auszurichten.
Fazit
- Es freut uns sehr, die Funktion Shape Assist mit der ganzen Welt zu teilen, und wir hoffen, dass sowohl professionelle Designer als auch Doodle-Fans daran Freude haben werden.
Meinung von GN⁺
Der wichtigste Punkt dieses Artikels ist, dass Canva die Funktion Shape Assist entwickelt hat, die mit einem im Browser laufenden Machine-Learning-Modell von Nutzern gezeichnete Formen präzise erkennt und in saubere Vektorgrafiken umwandelt. Die Funktion gibt Nutzern sofortiges Feedback und kann auch ohne Internetverbindung verwendet werden, was die Zugänglichkeit erhöht. Interessant an diesem Artikel ist, dass er zeigt, wie technischer Fortschritt kreative Arbeit einfacher und angenehmer machen kann.
1 Kommentare
Hacker-News-Kommentare
Anstelle von RNNs ist der Algorithmus "$1 unistroke recognizer" eine einfache und elegante Lösung für das Problem
Ingenieure bei ASML, TSMC und anderen erzeugen jeden Tag Licht mit extrem kurzen Wellenlängen, indem sie Laser auf flüssiges Blei schießen, um kleinere und leistungsfähigere Chips herzustellen
Selbst beim Zeichnen gerader Linien mit Maus oder Trackpad entstehen leicht unregelmäßige Formen
Interesse an der Bibliothek, die Canva zum Zeichnen von Linien verwendet
Erstaunen über die Funktion in Macromedia Flash vor mehr als 20 Jahren, die beim Zeichnen freihändiger Kurven die Linien glättete
Erwähnung der Entwicklung einer Variante des Ramer-Douglas-Peucker-(RDP)-Algorithmus
Eine handgezeichnet wirkende "zitternde Kritzel"-Version kann ansprechender sein als glatte Vektorgrafiken
Bei der Implementierung solcher Funktionen sollten Nutzer wählen können, und der aktive Zustand sollte klar erkennbar sein
Ein Modell wurde darauf trainiert, neun vordefinierte Formen zu erkennen
Es wäre schön, wenn diese Funktion Open Source wäre