2016-07-18 3 views
2

Ich bin vertraut mit, wie (C) NNs im Allgemeinen für Klassifizierung Probleme arbeiten (2D-Bild -> 1 Klasse), aber ich weiß nicht, wie ein Netzwerk zu strukturieren, die ein 2D-Bild und Ausgabe einer 2D-Matrix von Klassifikationswerten.NN Modell Architektur Per-Pixel Klassifizierung

Effektiv habe ich eine Reihe von NxN Bilder (1 Kanal), die ich auf einer "pro-Pixel" -Basis klassifizieren möchte. Ich möchte, dass die Ausgabe ein NxN-Satz von Klassen ist, so dass für ein Pixel an der Stelle (a, b) das Ergebnis das Klassifizierungsergebnis für Pixel (a, b) in dem Eingabebild sein wird.

Irgendwelche Hilfe von Modellarchitektur?

P.S. Ich habe von Patch-basierten Methoden gehört, um dies zu tun, aber ich möchte das gesamte NxN-Bild in das Netzwerk einspeisen, ohne "patchen" zu müssen.

Danke! Joe

+0

ist ein Pixel abhängig von anderen Pixel? – malioboro

+0

Was ist das Problem für dich? Ich meine, Sie könnten eindeutig versuchen, eine NxN-Eingabeschicht und eine NxN-Ausgabeschicht zu haben. Stellen Sie nur sicher, dass Sie keine softmax-Funktion über die gesamte Ausgabeschicht anwenden (wie wir es normalerweise beim Klassifizierungsproblem tun). Versuchen Sie es, wenn es funktioniert. Oder hast du es schon versucht? –

+0

Diese Bilder sind Schnitte aus einem medizinischen CT-Scan. @malioboro: Ein Pixel ist nicht explizit abhängig von anderen Pixeln, aber wie ein Bild sind sie untrennbar miteinander verbunden. @ Maxim: Ist das nicht effektiv ein Autoencoder? Irgendwelche Tipps zum Aufbau eines solchen Netzwerkes zum Zwecke der Klassifizierung? –

Antwort

2

Im Allgemeinen gibt es nichts Besonderes an dieser Aufgabe. DNNs können mehrere Klassifizierungs- oder Regressionsaufgaben gleichzeitig ausführen. Und da die Gewichte geteilt sind, können Sie sicherstellen, dass bei der Klassifizierung jedes Ihrer Pixel eine Verbindung zwischen einem Pixel und allen anderen Pixeln besteht.

So lange Geschichte kurz, möglich Algorithmus dieses Problem zu lösen:

1) Stellen Sie sicher, dass Sie einen Trainingssatz haben, wo als Eingabe Sie NxN Bilder haben, als Ausgabe haben Sie NxN Matrix von Zielklasse Etiketten (Klasse Label für jedes Pixel)

2) Erstellen Sie einige DNN mit einer Architektur, die Sie normalerweise für die Bildklassifizierung verwenden würden. Wie einige Faltungsschichten mit Max-Pooling, gefolgt von 2-3 vollständig verbundenen ReLU-Schichten.

3) Stellen Sie sicher, dass Ihre Ausgangsschicht Größe NxN haben und keine softmax Schicht (Verwendung relu wieder)

4) Trainieren Sie es!

Das sollte absolut gut funktionieren. Ich kann Ihnen auch versichern, dass es nicht ungewöhnlich ist, mehrere halb-unabhängige Ausgaben von DNN zu erhalten. Zum Beispiel here das gleiche Netzwerk wird verwendet, um alle Gesichts-Schlüsselpunkte gleichzeitig zu lokalisieren (Augen, Mund, Nase usw.).