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?
Antworten:
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.
quelle