[Intensive Lektüre des Papiers] Occupancy Networks: Learning 3D Reconstruction in Function Space

0.Abstrakt

Mit dem Aufkommen tiefer neuronaler Netze haben lernbasierte 3D-Rekonstruktionsmethoden an Popularität gewonnen. Im Gegensatz zu Bildern gibt es in 3D jedoch keine rechen- und speichereffiziente kanonische Darstellung, die die Darstellung hochauflösender Geometrien beliebiger Topologien ermöglicht. Daher können viele moderne lernbasierte 3D-Rekonstruktionsmethoden nur sehr grobe 3D-Geometrien darstellen oder sind auf begrenzte Regionen beschränkt. In diesem Artikel schlagen wir eine neue lernbasierte 3D-Rekonstruktionsmethode vor – ein Platzhalternetzwerk. Platzhalternetzwerke repräsentieren implizit 3D-Oberflächen als kontinuierliche Entscheidungsgrenzen für tiefe neuronale Netzwerkklassifikatoren . Im Gegensatz zu bestehenden Methoden kodiert unsere Darstellung eine 3D-Ausgabebeschreibung mit unendlicher Auflösung ohne übermäßigen Speicherbedarf. Wir überprüfen, ob unsere Darstellung die 3D-Struktur effizient kodieren kann und aus einer Vielzahl von Eingaben abgeleitet werden kann. Unsere Experimente zeigen sowohl qualitativ als auch quantitativ wettbewerbsfähige Ergebnisse bei der anspruchsvollen Aufgabe der 3D-Rekonstruktion aus Einzelbildern, verrauschten Punktwolken und groben diskreten Voxelgittern. Wir glauben, dass Platzhalternetzwerke ein nützliches Werkzeug für eine Vielzahl lernbasierter 3D-Aufgaben werden werden.
Fügen Sie hier eine Bildbeschreibung ein

1. Hauptidee

Es wird ein Netzwerk entworfen: Belegungsnetzwerk. Das Netzwerk passt eine Funktion f durch Lernen an. Tatsächlich entspricht es dem Lernen eines Regressionsnetzwerks, der Eingabe eines Punktes, und das Netzwerk gibt die Belegungswahrscheinlichkeit [0,1] aus.
Fügen Sie hier eine Bildbeschreibung ein
Eingabe: Tensor-Dimension ist (X,3),
Ausgabe: Tensor-Dimension (X,1).

2. Implementierungsdetails

2.1 Netzwerkstruktur

  • Belegungsnetzwerk (Onet): Vollständig verbundene Schicht FCN+5 ResNet-Blöcke+ (Batch-Normalisierung)
  • Unterschiedliche Eingaben, unterschiedliche Encoder (Warum benötigen Sie einen Encoder? Extrahieren Sie zuerst Features aus den Eingabedaten, konvertieren Sie sie in latenten Code und geben Sie dann Onet ein?)
    • 3D-Rekonstruktion: ResNet18-Architektur
    • Punktwolken: PointNet-Encoder
    • Voxelisierte Eingaben: 3D-Faltungs-Neuronales Netzwerk
    • bedingungslose Netzgenerierung: PointNet

Training, Verlustfunktion

  • Zuerst werden die Probenahmepunkte ausgewählt. Die Probenahmemethode wirkt sich auf das Ergebnis aus. Uniform ist das Beste
  • Zu unserer Überraschung stellen wir fest, dass die einheitliche, einfachste Stichprobenstrategie am besten funktioniert. Wir erklären dies durch die Tatsache, dass andere Sampling-Strategien zu einer Verzerrung des Modells führen: Wenn wir beispielsweise eine gleiche Anzahl von Punkten innerhalb und außerhalb des Netzes abtasten, teilen wir dem Modell implizit mit, dass jedes Objekt ein Volumen von 0,5 hat.
  • Darüber hinaus stellen wir fest, dass eine Reduzierung der Anzahl der Abtastpunkte von 2048 auf 64 immer noch zu einer guten Leistung führt

Fügen Sie hier eine Bildbeschreibung ein

  • verlustfunktion
    Fügen Sie hier eine Bildbeschreibung ein
  • Die Verlustfunktion des probabilistischen Modells versteckter Variablen, z ist die versteckte Variable
    Fügen Sie hier eine Bildbeschreibung ein

Argumentation, Netz rekonstruieren

  • 1. Bestimmen Sie zunächst eine Anfangsauflösung, geben Sie die Koordinaten des Gitterpunkts in Onet ein und ermitteln Sie die Belegungswahrscheinlichkeit.
  • 2. Legen Sie einen Schwellenwert T fest und subtrahieren Sie diesen Schwellenwert T von der Belegungswahrscheinlichkeit. (Schwellenwert T bestimmt die Dicke der extrahierten Oberfläche?) Wenn die Belegungswahrscheinlichkeit eines Gitterpunkts und mindestens zweier benachbarter Gitterpunkte unterschiedliche Vorzeichen haben, dann gilt: Gitterpunkte werden durch eine durch die Oberfläche verlaufende Linie verbunden
  • 3. Teilen Sie jedes Gitter weiter und geben Sie die neu generierten Gitterpunkte in Onet ein, um die Belegungswahrscheinlichkeit zu erhalten.
  • 4. Wiederholen Sie Schritt 3, bis die Auflösung den voreingestellten Wert erreicht
  • 5. Sampling-Marching-Cubes-Algorithmus zum Extrahieren des Netzes
  • 6. Verwenden Sie den Fast-Quadric-Mesh-Simplification- Algorithmus zur Feinabstimmung
  • 7. Verwenden Sie Gradienteninformationen erster und zweiter Ordnung zur Feinabstimmung
    Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein

3. Experimentieren

3.1 Ausdrucksfähigkeit

Wir betten jedes Trainingsmuster in einen 512-dimensionalen latenten Raum ein und trainieren unser neuronales Netzwerk, um aus dieser Einbettung die 3D-Form zu rekonstruieren.

  • Details: Ordnen Sie die Eingabe zunächst einem 512-dimensionalen Merkmalsraum zu, geben Sie dann die Belegungswahrscheinlichkeit aus dem Merkmalsraum aus und rekonstruieren Sie dann die 3D-Form.
  • Datensatz: ShapeNet-Stuhl
  • Ergebnis:
    Fügen Sie hier eine Bildbeschreibung ein

3.2 Einzelbild-3D-Rekonstruktion

Wir verwenden einen ResNet-18-Bildencoder, der anhand des ImageNet-Datensatzes vorab trainiert wurde

  • Detail:
  • Datensatz:
    • ShapeNet
    • KITTY
    • Datensätze zu Online-Produkten
  • Ergebnis
    Fügen Sie hier eine Bildbeschreibung ein
    Fügen Sie hier eine Bildbeschreibung ein

3.3 Vervollständigung der Punktwolke

Netzrekonstruktion aus verrauschter Punktwolke China
Fügen Sie hier eine Bildbeschreibung ein

3,4 Voxel-Superauflösung

Fügen Sie hier eine Bildbeschreibung ein

3.5 Bedingungslose Netzgenerierung

Fügen Sie hier eine Bildbeschreibung ein

4. Ablationsexperiment

4.1 Auswirkung der Stichprobenstrategie

Fügen Sie hier eine Bildbeschreibung ein

4.2 Einfluss der Netzwerkstruktur

CBN: bedingte Chargennormalisierung
Fügen Sie hier eine Bildbeschreibung ein

Supongo que te gusta

Origin blog.csdn.net/weixin_43693967/article/details/127428578
Recomendado
Clasificación