22. März 2023

Wie kann man Bilder f√ľr Computer-Vision-Projekte effektiv beschriften?

Mitwirkende
Thomas Janssens
Senior Ingenieur f√ľr maschinelles Lernen | Gruppenleiter
Keine Artikel gefunden.
Newsletter abonnieren
Diesen Beitrag teilen

ML6 wird oft von Kunden kontaktiert, die ein Problem haben, das mit ein paar Kameras und einer cleveren maschinellen Lernlösung gelöst werden könnte. Großartig, also wo fangen wir an? Es gibt noch etwas, das wir brauchen: markierte Daten. Derzeit besteht die praktischste und robusteste Methode zur Implementierung eines realen Bildverarbeitungsalgorithmus darin, ihm beizubringen, welche Muster er erkennen können muss. Das bedeutet, dass ein Trainingsdatensatz erstellt werden muss, eine Sammlung von gekennzeichneten Beispieldaten, auf die die Modellparameter abgestimmt werden können, damit sie lernen, das Problem zu lösen.

Unsere Erfahrung mit Projekten, die mit markierten Daten arbeiten, zeigt, dass ein gut kommentierter Trainingssatz entscheidend f√ľr den Erfolg ist. Wie das Sprichwort schon sagt: Garbage in, garbage out. In diesem Beitrag konzentrieren wir uns auf die h√§ufigsten Probleme bei Computer-Vision-Anwendungen. Die meisten Probleme, die wir f√ľr unsere Kunden l√∂sen, fallen in eine der folgenden Kategorien: Bildklassifizierung, Objekterkennung oder Instanzensegmentierung.

‚Äć

Illustration der hier behandelten Bildverarbeitungsaufgaben.
Illustration der hier behandelten Bildverarbeitungsaufgaben.

‚Äć

Wie man einen Trainingsdatensatz sammelt

Um herauszufinden, wie Ihr Trainingssatz aussehen muss, m√ľssen Sie sich √ľberlegen, welches Problem Sie eigentlich l√∂sen wollen. Wie unterschiedlich sind die verschiedenen Dinge, die Sie erkennen wollen? Gibt es gro√üe Unterschiede in Bezug auf ihr Aussehen, die Beleuchtung oder den Aufnahmewinkel? Wird nur ein Kameratyp oder mehrere verschiedene Modelle verwendet?

Es gibt zwar verschiedene Techniken, um mit einem begrenzten Zeitbudget das Beste aus den Anmerkungen herauszuholen, aber es ist immer noch eine gute Praxis, einen Trainingssatz zusammenzustellen, der Bilder umfasst, die die gesamte oben genannte Vielfalt abdecken, die auf Ihr Problem zutrifft. Ein Modell f√ľr maschinelles Lernen wird es leichter haben, das, was es wei√ü, auf ein neues Beispiel zu verallgemeinern, das dem, auf das es trainiert wurde, sehr √§hnlich ist, als auf etwas v√∂llig Neues. Wenn Sie beispielsweise ein Trainingsset f√ľr ein Autoerkennungsmodell zusammenstellen, m√∂chten Sie Beispiele beschriften, die so viele verschiedene Farben, Marken, Winkel und Lichtverh√§ltnisse aufweisen, wie Sie erwarten, dass das Modell sie sieht. Wenn Sie nur kompakte Stadtautos beschriften, ist nicht gew√§hrleistet, dass das Modell einen Monstertruck erkennt. Nat√ľrlich muss nicht jede m√∂gliche Kombination von Attributen im Datensatz enthalten sein, sondern nur eine gesunde Mischung aus der realen Welt.

Gehen Sie vor der Beschriftung den Datensatz durch, um Muster zu erkennen, die bei der Beschriftung zu schwierigen Entscheidungen f√ľhren k√∂nnten. Haben Sie an alle relevanten Kategorien gedacht? Gibt es einen bestimmten Objekttyp, der sich zwischen zwei Kategorien befindet? Gibt es in einigen Bildern teilweise sichtbare Objekte? Ist es tats√§chlich unm√∂glich, einige Objekte unter bestimmten Bedingungen zu erkennen (z. B. dunkle Objekte in dunklen Bildern)? Denken Sie √ľber diese Fragen nach und entscheiden Sie sich im Vorfeld f√ľr einen geeigneten Plan. Wenn Ihre Beschriftung inkonsistent ist, wird die Qualit√§t des auf Ihren Daten trainierten Modells negativ beeinflusst. M√∂glicherweise m√ľssen Sie Bilder auslassen, die nicht klar genug sind. Eine gute Faustregel ist die Verwendung Ihres eigenen Auges: Wenn Sie bei einer visuellen Aufgabe eine Entscheidung in Sekundenbruchteilen treffen k√∂nnen, kann ein maschinelles Lernmodell in der Regel lernen, diese zu replizieren. Wenn jedoch nicht gen√ľgend visuelle Informationen in einem Bild vorhanden sind, kann das Modell diese nicht aus dem Nichts herausholen.

Unserer Erfahrung nach ist es wichtig, sowohl die Experten f√ľr maschinelles Lernen als auch die Fachexperten von Anfang an in das Projekt einzubeziehen und gemeinsam einen Ansatz zu entwickeln. Am besten ist es, mit der Annotation einer kleinen Menge von Bildern zu beginnen und diese in einem iterativen Prozess zu √ľberpr√ľfen. So lassen sich Missverst√§ndnisse vermeiden und Sie k√∂nnen gemeinsam daran arbeiten, den gr√∂√üten Nutzen aus Ihrer Zeit f√ľr die Annotation zu ziehen.

In der Welt des maschinellen Lernens gibt es viele √∂ffentlich verf√ľgbare Datens√§tze. Diese enthalten oft Millionen von Bildern und Dutzende oder sogar Hunderte von Klassen aller Art. Beispiele hierf√ľr sind ImageNet und COCO. Ebenso sind viele Modelle zur Wiederverwendung verf√ľgbar. Auch wenn sich Ihr Problem nicht genau mit diesen Datens√§tzen √ľberschneidet, so gibt es doch auf einer grundlegenden Ebene √§hnliches visuelles Wissen in Bezug auf das "Erkennen von Dingen", das in beiden Aufgaben ben√∂tigt wird. Wir k√∂nnen dies zu unserem Vorteil nutzen, indem wir ein solches leistungsf√§higes Modell an unsere Aufgabe anpassen, anstatt bei Null anzufangen.

‚Äć

Bild-Klassifizierung

Bei der Bildklassifizierung besteht das Ziel darin, dem gesamten Bild eine einzige Bezeichnung zuzuweisen. Dies ist interessant, wenn Sie eine Sammlung von Bildern haben, die zu einer von mehreren Kategorien gehören, oder wenn Sie eine Ja/Nein-Entscheidung auf der Grundlage eines auffälligen Merkmals im Bild treffen wollen. Diese Art von Modell könnte verwendet werden, um zu erkennen, welche Art von Teil an einer Werkskamera vorbeigeht, oder vielleicht eine Artikelkategorie aus dem hochgeladenen Bild eines Verkäufers auf einem Second-Hand-Marktplatz vorschlagen.

Jedem Bild wird ein Klassenlabel zugewiesen

Dies ist in der Regel auch die einfachste Aufgabe f√ľr die Kennzeichnung. Achten Sie darauf, dass Sie klar abgegrenzte und gut definierte Kategorien erstellen. Wenn Sie z. B. fehlerhafte Teile in einer Produktionslinie kennzeichnen, denken Sie sorgf√§ltig √ľber die verschiedenen Defekte nach, die auftreten k√∂nnen, und √ľberlegen Sie, wie viele Kategorien definiert werden k√∂nnen, die visuell klar unterscheidbar sind. Es ist auch eine gute Praxis, Ihren Datensatz durchzugehen und zu √ľberlegen, welche F√§lle schwierig sein k√∂nnten, und eine konsistente Strategie f√ľr den Umgang mit ihnen zu entwickeln.

Objekt-Erkennung

Wenn wir uns f√ľr die Anzahl der Objekte, ihre allgemeine Position in den Bildern interessieren oder nach etwas relativ Kleinem in einem gr√∂√üeren Bild suchen, ist Objekterkennung das A und O.

Zu diesem Zweck trainieren wir einen Algorithmus zur Erkennung von rechteckigen Regionen, die die Objekte oder Regionen von Interesse enthalten. Genau wie zuvor kann ein Modell lernen, viele verschiedene Objektkategorien zu unterscheiden. Dies könnte zur Erkennung von Fußgängern, Radfahrern und Autos in einer Straßenszene (z. B. selbstfahrende Autos oder CCTV), zur Lokalisierung und Identifizierung von Mängeln an Produkten in einer Fabrikstraße oder zur Verfolgung eines Balls und von Spielern in einem Sportspiel eingesetzt werden.

Die Beschriftung Ihrer Trainingsdaten besteht aus dem Zeichnen von K√§stchen √ľber interessante Objekte in Ihren Bildern. Jedem K√§stchen wird au√üerdem eine Klassenbezeichnung zugewiesen. Die K√§stchen d√ľrfen sich √ľberschneiden.

‚Äć

Rechteckige Annotationen in einer Straßenszene. Beachten Sie die allgemein enge Passform und die Überlappung zwischen nahen Objekten

Im Allgemeinen ist es eine gute Idee, die Begrenzungen der Boxen einigerma√üen eng um das Objekt herum zu ziehen. Inkonsistente und lockere Beschriftungen machen den Lernprozess des Modells unn√∂tig schwer. Au√üerdem bedeutet dies, dass Ihre Bewertungsmetriken weniger informativ sind, da das Modell f√ľr das Zeichnen von Grenzen an einer anderen Stelle bestraft wird.

‚Äć

Instanz-Segmentierung

Wenn es bei Ihrem Problem wirklich darum geht, ein Objekt im Bild bis auf die exakten Pixel genau zu lokalisieren, sollten Sie sich f√ľr die Instanzsegmentierung entscheiden. Dies k√∂nnte erforderlich sein, um Ma√üe wie die Fl√§che oder den Querschnitt eines Objekts zu berechnen oder um die Informationen f√ľr nachgelagerte Aufgaben wie die automatische Bildbearbeitung zu verwenden. Dies kann manchmal bei komplizierten Objekten hilfreich sein, die nicht einfach durch ein Rechteck angen√§hert werden k√∂nnen, z. B. lassen d√ľnne Objekte oft zu viel irrelevanten Raum in der Box, damit die einfache Objekterkennung gut funktioniert. Die Segmentierung von Instanzen ist auch hilfreich, um eng gepackte Objekte in einzelne Elemente zu unterteilen.

Grob gesagt gibt es zwei Ans√§tze f√ľr diese Aufgabe: die polygonale Beschriftung und die pixelbasierte Beschriftung. Der erste Ansatz besteht im Wesentlichen darin, eine Reihe von Punkten um den Objektumriss herum zu zeichnen, die durch Liniensegmente verbunden sind. Die zweite Methode besteht aus Bitmap-Ans√§tzen, √§hnlich wie ein Pinselwerkzeug in einer Bildbearbeitungssoftware. Welcher Ansatz einfacher ist, h√§ngt von Ihrem Problem, der Form der zu erkennenden Objekte und den von Ihrer Anmerkungssoftware angebotenen Werkzeugen ab. (Einige bieten Photoshop-√§hnliche Werkzeuge wie z. B. F√ľllung, magisches Lasso usw.) Diese Formkommentare werden auch von einer Klassenbezeichnung begleitet.

Viele fortschrittlichere Beschriftungssoftware bietet auch problemunabh√§ngige halbautomatische Ans√§tze, wie DEXTR, mit dem Sie eine detaillierte Maske aus nur vier Schl√ľsselpunkten extrahieren k√∂nnen. Diese sind auch sehr praktisch, um gro√üe Mengen von Objekten schnell zu beschriften.

Wie bei der Beschriftung von Rechtecken m√ľssen Sie eine gute Balance finden zwischen der Beschriftung eines einzelnen Objekts, die eng genug ist, um ein konsistentes Trainingssignal f√ľr den Algorithmus zu liefern, und einer ausreichenden Geschwindigkeit, um in der f√ľr die Beschriftung zur Verf√ľgung stehenden Zeit viele Beispiele beschriften zu k√∂nnen.

Manuelle polygonbasierte Instanzbeschriftung (links) und halbmanuelle DEXTR-Beschriftung, generiert aus vier Extrempunkten (rechts).

Andere Aufgaben

Die oben genannten Kategorien sind keine ersch√∂pfende Liste aller m√∂glichen Beschriftungstypen. F√ľr einige Probleme ist die semantische Segmentierung, bei der Sie einzelne Bildpixel beschriften, ohne separate Objekte zu erkennen, besser geeignet. Es gibt auch die Beschriftung von Schl√ľsselpunkten, d. h. die Beschriftung von Schl√ľsselpunkten eines Objekts, z. B. die Gelenke einer tanzenden Person oder eines sich bewegenden Ger√§ts.

Au√üerdem l√§sst sich nicht jedes Problem mit diskreten Klassenbezeichnungen modellieren. In manchen F√§llen ist ein kontinuierliches oder nummeriertes Label besser geeignet. Sie k√∂nnten ein Haus auf einem Satellitenbild mit einem gesch√§tzten Verkaufswert beschriften, ein Biopsie-Mikroskopie-Bild mit einem Krankheitsgrad bewerten oder das Alter einer Person anhand eines Bildes sch√§tzen. Die Eingabe von fortlaufenden Beschriftungen in freier Form wird im Allgemeinen von den Anmerkungswerkzeugen weniger unterst√ľtzt, so dass Sie sich vergewissern m√ľssen, dass das Werkzeug Ihrer Wahl dies unterst√ľtzt.

Semantische Segmentierung: Pixel haben Klassen, sind aber nicht in einzelne Objekte gruppiert
Keypoint-Anmerkungen f√ľr die Pose-Sch√§tzung

Etikettierungssoftware und Etikettierungsdienste von Dritten

Die Wahl der richtigen Beschriftungssoftware ist entscheidend f√ľr die Steigerung der Effizienz Ihrer Beschriftungsarbeit. Vergewissern Sie sich, dass Ihre Software eine einfache Beschriftung f√ľr Ihre spezielle Aufgabe erm√∂glicht, mit m√∂glichst wenigen manuellen Eingriffen pro Anmerkung. Achten Sie darauf, alle relevanten Abk√ľrzungen zu erlernen: Kleine Zeiteinsparungen bei jeder einzelnen Beschriftung summieren sich zu erheblichen Zeiteinsparungen f√ľr den gesamten Datensatz.

Wenn Sie an einem gr√∂√üeren Projekt arbeiten, sollten Sie pr√ľfen, ob die Software eine intelligente M√∂glichkeit zum Hochladen und Verwalten von Datens√§tzen bietet. Wenn Sie mehrere Personen mit der Beschriftung beauftragen, kann die M√∂glichkeit, einzelnen Benutzern Rollen, Berechtigungen und Beschriftungsaufgaben zuzuweisen, ebenfalls notwendig sein, um alles √ľbersichtlich zu halten. Einige Tools erm√∂glichen es Ihnen, eine komplexere Beschriftungspipeline zu definieren, die Effizienzgewinne erm√∂glicht, indem ein Problem in mehrere kleinere, schnellere Schritte aufgeteilt wird, oder indem ein zuvor trainierter Algorithmus f√ľr maschinelles Lernen verwendet wird, um eine erste Ann√§herung an die Objektkonturen zu generieren.

Es gibt mehrere kostenlose Open-Source-Tools, die viele dieser Funktionen bieten, z. B. CVAT, Label Studio oder LOST. Es gibt auch kommerzielle Lösungen mit proprietären Implementierungen dieser Funktionen und anderen Extras.

√úberlegen Sie auch, wie diese Software eingesetzt werden soll. Einige √§ltere oder kleinere Software l√§uft als normale Anwendung, andere k√∂nnen als Dienst bereitgestellt werden. F√ľr einige, wie die beiden vorgenannten, stehen Docker-Container f√ľr eine schnelle Bereitstellung zur Verf√ľgung.

‚Äć

Eine typische Etikettierschnittstelle (CVAT), mit Werkzeugen (links), Datennavigation (oben) und Etikettenverwaltung (rechts)

‚Äć

Wenn Sie einen besonders gro√üen Datensatz haben, der etikettiert werden muss, kann es sich lohnen, mit Drittanbietern von Etikettierungsdiensten in Kontakt zu treten. Alternativ dazu k√∂nnen Sie auch Ihre eigene Crowdsourcing-Aufgabe √ľber eine Crowdsourcing-Plattform einrichten. Dieser Ansatz kann den Durchsatz bei der Beschriftung massiv erh√∂hen, bringt aber auch einen gewissen Overhead und Einrichtungszeit mit sich und erfordert eine zus√§tzliche Partei, die den Problembereich vollst√§ndig versteht. Es ist besonders wichtig, die Qualit√§t der Beschriftungen im Auge zu behalten, sowohl zwischen den einzelnen Personen als auch im Zeitverlauf.

Damit haben wir die wichtigsten Aspekte der Bew√§ltigung eines Computer-Vision-Problems durch Beschriftung Ihrer eigenen Daten behandelt. Wenn Sie ein Problem haben, das mit einer der oben genannten Techniken automatisiert werden k√∂nnte, sollten Sie sich mit uns bei ML6 in Verbindung setzen. Wir k√∂nnen Ihnen helfen, den optimalen Arbeitsablauf f√ľr Ihr Computer-Vision-Projekt zu finden.

‚Äć

Verwandte Beiträge

Alle anzeigen
Keine Ergebnisse gefunden.
Es gibt keine Ergebnisse mit diesen Kriterien. Versuchen Sie, Ihre Suche zu ändern.
Großes Sprachmodell
Stiftung Modelle
Unternehmen
Unser Team
Strukturierte Daten
Chat GPT
Nachhaltigkeit
Stimme und Ton
Front-End-Entwicklung
Schutz und Sicherheit von Daten
Verantwortungsvolle/ethische KI
Infrastruktur
Hardware und Sensoren
MLOps
Generative KI
Verarbeitung nat√ľrlicher Sprache
Computer Vision