Geeignete Mesh-Bibliotheken für eine differenzierbare ML-PipelinePython

Python-Programme
Guest
 Geeignete Mesh-Bibliotheken für eine differenzierbare ML-Pipeline

Post by Guest »

Ich arbeite an einem Projekt, bei dem es darum geht, ein wasserdichtes Dreiecksnetz aus einer Punktwolke zu konstruieren (möglicherweise unter Verwendung von Alpha-Formen), die Punktpositionen zu optimieren (mit minimaler Neuberechnung des Netzes), das Netz in 2D zu projizieren und Grenzpunkte zu finden. Selbstüberschneidungen verhindern, Netzvolumen berechnen und all dies in eine differenzierbare Pipeline für maschinelles Lernen integrieren. Ich bin auf der Suche nach einer Mesh-Bibliothek, die mir weiterhilft. Ich wähle derzeit zwischen Open3D und PyTorch3D, bin aber offen für die Verwendung beider oder anderer Bibliotheken, die mir noch nicht begegnet sind.
Ich habe mir die Dokumentation für beide und meine Bibliotheken angesehen Die Beobachtungen lauten wie folgt.

Open3D vs. PyTorch3D: Vor- und Nachteile

Open3D bietet Funktionen zum Erstellen eines Netzes aus einem Punktwolke mit Alphaformen (

Code: Select all

create_from_point_cloud_alpha_shape
), prüfen Sie, ob ein Netz wasserdicht ist (

Code: Select all

is_watertight
) und berechnen Sie sein Volumen (

Code: Select all

get_volume
). Es enthält auch ein ML-Add-on, das sich jedoch eher auf die Stapelverarbeitung und die Datensatzverwaltung als auf die Aktivierung der Backpropagation zu konzentrieren scheint. Um eine Backpropagation durchzuführen, müsste ich also eine Backpropagation durch die Punktwolke durchführen, um neue Punkte zu erhalten, und dann ein neues Netz berechnen basierend auf diesen aktualisierten Punkten.
Andererseits lässt sich PyTorch3D gut in PyTorch integrieren, sodass es vollständig mit einer differenzierbaren Pipeline kompatibel ist. Es fehlt jedoch die integrierte Unterstützung für Alpha-Form-basierte Netzkonstruktionen, Wasserdichtigkeitsprüfungen und direkte Volumenberechnung (obwohl das Volumen manuell mithilfe einer 3D-Schnürsenkelformel implementiert werden könnte).

Wichtige Fragen

  • Open3D scheint für die Geometrieverarbeitung funktionsvollständig zu sein, es mangelt ihm jedoch an Differenzierbarkeit. Wie schwierig wäre es, Open3D in eine differenzierbare Pipeline zu integrieren?
  • PyTorch3D beherrscht die Differenzierbarkeit, verfügt jedoch nicht über wesentliche Werkzeuge zur Geometrieverarbeitung. Gibt es Workarounds oder Plugins, um dieses Problem zu beheben?
  • Gibt es bessere Bibliotheken, die die Stärken dieser beiden vereinen, oder unterschätze ich den Aufwand, der erforderlich ist, um eine davon zu erweitern?
Ich würde mich über jeden Rat, alternative Vorschläge oder Erkenntnisse darüber freuen, ob diese Bedenken über- oder unterbewertet werden.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post