grayscale

Wann Sie grayscale als Vorverarbeitungsschritt verwenden sollten

Stefan
4 Min Read
grayscale

Dieser Beitrag ist Teil einer Reihe von Bildern zum Thema Vorverarbeitung und Erweiterung . Alle weiteren finden Sie im ersten Beitrag .

Bilder sind nichts anderes als numerische Werte im Bereich von 0 bis 255, die in übersichtlichen Arrays gespeichert sind, damit unser Computer die Sättigung anzeigen kann. Woher kommt also die Farbe?

Grundsätzlich entsteht Farbe durch die Mischung von Rot, Grün und Blau in unterschiedlichen Proportionen. Wenn es sich bei einem Bild um ein Farbbild handelt, wird es digital als eine Reihe von Rot-, Blau- und Grünwerten gespeichert. Unser Computer „mischt“ diese im laufenden Betrieb, um Farbausgaben zu erzeugen.

Wenn unser neuronales Netzwerk dies sieht, führt es eine Faltung auf jedem der roten, grünen und blauen Kanäle durch:

Wie Sie sehen, wird unsere Berechnung dadurch komplexer. Anstatt eine einzelne Faltung auf nur einem Array durchzuführen, muss PyTorch Faltungen auf drei verschiedenen Arrays durchführen.

grayscalebilder speichern dagegen nur Werte in einem einzigen Array (schwarz und weiß), was bedeutet, dass für die obige Berechnung nur eine einzige Faltung erforderlich ist.

Wenn grayscale also rechnerisch effizienter sind*, lautet die bessere Frage vielleicht: Wann sollten wir sie nicht als Vorverarbeitungsschritt für unsere Modelle des maschinellen Lernens verwenden?

(*setzt voraus, dass Bilder gespeichert und als Einzelkanalbilder in das Modell eingespeist wurden)

Unsere Antwort ist relativ intuitiv, weist jedoch eine Nuance auf: Wenn wir davon ausgehen, dass Farbe einem Modell ein aussagekräftiges Signal liefert und Farben in ihrer Erscheinung relativ ähnlich sind , sollten wir bei der Verwendung von grayscale vorsichtig sein.

Wie sieht das in der Praxis aus?

Stellen Sie sich vor, Sie erstellen in Keras ein Deep-Learning-Modell zum Erkennen und Klassifizieren von Schachfiguren . Hier ist es offensichtlich, dass die Farbe für unser Modell eine Rolle spielt: Ein Spieler hat schwarze Figuren und der andere weiße. Aber wir müssen uns keine allzu großen Gedanken darüber machen, grayscale als Vorverarbeitungsschritt anzuwenden. Auch wenn die Farbe in diesem Fall eine Rolle spielt, enthalten die Farben, die uns interessieren (Schwarz und Weiß…), einen starken Kontrast. Wenn wir unseren Modellen grayscalebilder zeigen, können sie trotzdem problemlos zwischen schwarzen und weißen Spielern unterscheiden.

Erwägen Sie den Aufbau eines Tensorflow -Modells zur Unterstützung eines selbstfahrenden Autos mit Spurerkennung . Auch hier spielt die Farbe eine Rolle: Die Straßenmitte enthält gelbe Linien und die Straßenränder weiße Linien. In diesem Fall sollten wir bei der Anwendung von grayscale vorsichtig sein. Da Weiß und Gelb relativ ähnlich sind (d. h. Farben mit geringem Kontrast), sollten wir bei der grayscaledarstellung unserer Bilder vorsichtig sein.

Zusammenfassend lässt sich sagen, dass grayscale am besten geeignet sind, wenn der Farbkontrast hoch ist.

Zitieren Sie diesen Beitrag

Verwenden Sie den folgenden Eintrag, um diesen Beitrag bei Ihrer Recherche zu zitieren:

Joseph Nelson . (5. Februar 2020). Wann grayscale als Vorverarbeitungsschritt verwendet werden sollten. Roboflow-Blog: https://blog.roboflow.com/when-to-use-grayscale-as-a-preprocessing-step/

Besprechen Sie diesen Beitrag

Wenn Sie Fragen zu diesem Blogbeitrag haben, starten Sie eine Diskussion im Roboflow-Forum .