2016-12-18 4 views
2

Ich wollte den [FCN-Code] [1] für semantische Segmentierung ausführen. Wie auch immer, ich bin Anfänger in Caffe und wusste nicht, ab welchem ​​Punkt ich den Code starten soll.Wie haben Sie die semantische FCN-Segmentierung durchgeführt?

Gibt es eine Schritt für Schritt Anleitung zum Laufen?

+0

Soweit ich sehe, müssen Sie nur das 'solve.py' Skript ausführen, das Sie wollen, und das ist es. – hbaderts

+0

@hbaderts Vielen Dank für Ihre Antwort, wissen Sie, wie kann ich ganze Netzwerk und Schichten lernen? und wie kann ich es auf meine spezifischen Daten anwenden? Ich werde dankbar sein, wenn Sie irgendwelche Ressource für die Feinabstimmung kennen lernen. Noch einmal vielen Dank. –

+0

@hbaders Wie kann ich Caffemodel herunterladen? danke –

Antwort

2

Da ich hier nicht so viel Hilfe bekommen konnte, poste ich die Schritte hier. Es könnte hilfreich sein für diejenigen, die unerfahren sind (wie ich). Es hat lange gedauert, bis ich herausgefunden hatte, wie ich es ausführen und die Ergebnisse erhalten konnte. Sie können es möglicherweise erfolgreich ausführen, aber ähnlich wie in meinem Fall, das Ergebnis war ein leeres Bild für eine lange Zeit und schließlich herausgefunden, dass wie Einstellung sein sollte.

konnte ich erfolgreich FCN8s auf meine Daten durchführen, und ich habe die folgenden Schritte:

  1. Teilen Sie die Daten in zwei Sätzen (Zug, Validierung) und die Etiketten als auch für die entsprechenden Bilder in beide Zug und Validierung (4 Ordner insgesamt: train_img_lmdb, train_label_lmdb, val_img_lmdb und val_label_lmdb)
  2. konvertieren Sie Ihre Daten (jedes von ihnen getrennt) in LMDB Format (wenn es nicht RGB ist, wandeln es cv2 Funktion), werden Sie 4 LMDB Ordner haben einschließlich data.mdb und lock.mdb
  3. Laden Sie die .caffemodel vom url die Autoren zur Verfügung gestellt haben,
  4. Ändern Sie den Pfad zu dem Pfad der LMDB Dateien in der train_val.ptototxt Datei, sollten Sie 4 Datenschicht haben, dass source ist der Weg zum train_img_lmdb, train_label_lmdb, val_img_lmdb und val_label_lmdb, ähnlich wie this link
  5. hinzufügen convolution Schicht nach this line (hier habe ich fünf Klassen haben, dann die num_output ändern basierend auf der Anzahl der Klassen in Grundwahrheits Bilder):

    Schicht { name: "score_5classes" Typ: "Convolution" unten: "Score" oben: "score_5classes" convolution_param { num_output: 5 pad: 0 kernel_size: 1 } }

  6. Änderungsschicht Verlust wie folgt (nur nach, was nennen Sie in der unteren Schicht):

    Schicht { Name: "Verlust" Typ: "SoftmaxWithLoss" botto m: "score_5classes" unten: "label" oben: "Verlust" loss_param { normalisieren: true} }

  7. Führen Sie das Modell Training beginnen in Ihnen pycaffe haben und installiert caffe Umgebung.

    caffe train -solver =/Pfad/zu/solver.prototxt -weights /path/to/pre-trained/model/fcn8s-heavy-pascal.caffemodel 2> & 1 | Abschlag/Pfad/zu/Speichern/Training/Protokoll/Datei/fcn8_exp1.log

Ich hoffe, es ist hilfreich. Danke für @Shais Hilfe

+0

Das ist wirklich hilfreich! Vielen Dank! Wissen Sie, wie Sie den Datensatz überhaupt erstellen können? Ich habe diese Frage zu SO gestellt, aber ich habe noch keine Antworten erhalten. Ich habe einige vorhandene Datensätze durchgesehen und verstehe nicht ganz, was vor sich geht. So habe ich zum Beispiel das Originalbild, das gleiche Bild mit den Pixeln des Objekts von Interesse beleuchtet (auf eine bestimmte Weise beschriftet) und dann eine Textdatei. Aber wie genau ist es formatiert? Hier ist die Frage, die ich gestellt habe: https://stackoverflow.com/questions/47964716/how-to-format-a-data-set-for-fully-convolutional-networks – Jonathan

+0

Auch können Sie bitte, was die Intuition hinter Punkten ist 5 und 6? – Jonathan

Verwandte Themen