Verwenden neuronaler Netze zum Extrahieren mehrerer Parameter aus Bildern

8

Ich möchte mithilfe eines neuronalen Netzwerks Parameter aus einem Bild extrahieren.

Beispiel:

Bei einem Bild einer Mauer sollte der NN die Breite und Höhe der Steine, die Farbe und die Rauheit extrahieren.

Ich kann Bilder für bestimmte Parameter generieren, um das NN zu trainieren, und möchte damit die Parameter aus einem tatsächlichen Bild extrahieren.

Ich habe mir CNNs angesehen. Kann ich diese Aufgabe mit ihnen ausführen? Benötige ich spezielle Lernalgorithmen, um mehrere Parameter anstelle der Klassifizierung zu extrahieren? Gibt es NNs, die für solche Aufgaben ausgelegt sind?

H4kor
quelle
Könnten Sie ein paar Beispielbilder anhängen, die Sie sich vorgestellt haben? CNNs mögen für die Aufgabe übertrieben sein, aber andererseits lohnt es sich zu studieren und zu experimentieren, wenn Ihre oberste Priorität die Verwendung neuronaler Netze im Gegensatz zu "traditionellen" CV-Algorithmen ist.
NikoNyrh
@NikoNyrh könnte Beispielbilder liefern, aber ich möchte die Technik für verschiedene Klassen von Texturen verwenden. Ziel ist es, Shader-Parameter aus Bildern zu extrahieren. Das Brick-Beispiel enthält hauptsächlich intuitive Parameter, aber andere Shader verwenden wahrscheinlich Parameter, die mit einem ausgereiften Algorithmus nicht einfach zu erhalten sind. Ich teste derzeit verschiedene Ansätze und wollte neuronale Netze ausprobieren, da ich "unendliche" Trainingsdaten generieren kann.
H4kor

Antworten:

8

Ein CNN könnte eine gute Wahl für diese Aufgabe sein, wenn Sie Abweichungen im Originalbildmaßstab, in der Rotationsbeleuchtung usw. erwarten und auch über viele Trainingsdaten verfügen .

Die übliche CNN-Architektur besteht darin, Faltungsschichten in der Nähe des Eingangs und vollständig verbundene Schichten im Ausgang zu haben. Bei diesen vollständig verbundenen Ebenen kann die Ausgabe nach Belieben für verschiedene Klassifizierungs- oder Regressionsaufgaben angeordnet werden. Die Vorhersage der Werte von Parametern, die das Bild beschreiben, ist eine Regressionsaufgabe.

Wenn Sie genaue Größenmaße wünschen, müssen Sie möglicherweise die Verwendung von Max-Pooling-Ebenen vermeiden. Leider nicht Pooling Ihr Netzwerk größer und schwerer machen Zug - Sie könnten mit strided Faltung weg statt , wenn das ein Problem für Sie.

Wenn Ihre Eingabebilder sehr einfach und klar sind (weil sie immer computergeneriert sind), sind andere Ansätze möglicherweise zuverlässiger. Möglicherweise können Sie die Bildproduktion rückentwickeln und einfache Regeln ableiten, z. B. Linien, Ecken, Kreise und andere einfach zu filternde Bildkomponenten identifizieren und direkte Messungen durchführen. Es kann auch einen Mittelweg in der Komplexität geben, bei dem das Extrahieren dieser Daten als Merkmale und das Verwenden dieser Daten zum Trainieren eines einfachen NN (oder eines anderen ML-Modells) eine gute Leistung erzielt.

Neil Slater
quelle