Μοντέλα και πλατφόρμες AI

Πώς Λειτουργεί η Γεννήτρια Text-to-3D AI: Meta 3D Gen, OpenAI Shap-E και άλλα

mm
Προσθέστε το Unite.AI στις προτιμώμενες πηγές σας στο Google

Η ικανότητα να γεννά 3D ψηφιακά περιουσιακά στοιχεία από κείμενα προτύπων αντιπροσωπεύει μια από τις πιο συναρπαστικές πρόσφατες εξελίξεις στην τεχνητή νοημοσύνη και την υπολογιστική γραφική. Καθώς η αγορά 3D ψηφιακών περιουσιακών στοιχείων προβλέπεται να αυξηθεί από $28,3 δισεκατομμύρια το 2024 σε $51,8 δισεκατομμύρια μέχρι το 2029, τα μοντέλα Text-to-3D AI είναι έτοιμα να παίξουν σημαντικό ρόλο στην επανάσταση της δημιουργίας περιεχομένου σε βιομηχανίες όπως τα βιντεοπαιχνίδια, η κινηματογραφική βιομηχανία, ο ηλεκτρονικός εμπορισμός και πολλές άλλες. Αλλά πώς ακριβώς λειτουργούν αυτά τα συστήματα AI; Σε αυτό το άρθρο, θα κάνουμε μια βαθιά εμβάθυνση στις τεχνικές λεπτομέρειες πίσω από τη γεννήτρια Text-to-3D.

Η Πρόκληση της Γεννήτριας 3D

Η γεννήτρια 3D περιουσιακών στοιχείων από κείμενο είναι μια σημαντικά πιο σύνθετη εργασία από τη γεννήτρια 2D εικόνων. Ενώ οι 2D εικόνες είναι ουσιαστικά πλέγματα pixel, τα 3D περιουσιακά στοιχεία απαιτούν την αναπαράσταση γεωμετρίας, υφών, υλικών και συχνά κινήσεων στο τρισδιάστατο χώρο. Αυτή η πρόσθετη διαστατικότητα και σύνθετη εργασία κάνει την εργασία γεννήτριας πολύ πιο δύσκολη.

Ορισμένες βασικές προκλήσεις στη γεννήτρια Text-to-3D περιλαμβάνουν:

  • Αναπαράσταση 3D γεωμετρίας και δομής
  • Γεννήτρια συνεπών υφών και υλικών σε όλη την επιφάνεια 3D
  • Εύρεση φυσικής πιθανοφάνειας και συνεχείας από πολλαπλά σημεία θέασης
  • Σύλληψη λεπτών λεπτομερειών και συνολικής δομής ταυτόχρονα
  • Γεννήτρια περιουσιακών στοιχείων που μπορούν να αποδοθούν εύκολα ή να εκτυπωθούν σε 3D

Για να αντιμετωπίσουμε αυτές τις προκλήσεις, τα μοντέλα Text-to-3D αξιοποιούν διάφορες βασικές τεχνολογίες και τεχνικές.

Κύρια Στοιχεία Συστημάτων Text-to-3D

Τα περισσότερα σύγχρονα συστήματα γεννήτριας Text-to-3D μοιράζονται ορισμένα βασικά στοιχεία:

  1. Κωδικοποίηση κειμένου: Μετατροπή της εισαγωγής κειμένου σε μια αριθμητική αναπαράσταση
  2. Αναπαράσταση 3D: Μια μέθοδος για την αναπαράσταση γεωμετρίας και εμφάνισης 3D
  3. Γεννήτρια μοντέλο: Το βασικό μοντέλο AI για τη γεννήτρια του περιουσιακού στοιχείου 3D
  4. Αποτύπωση: Μετατροπή της αναπαράστασης 3D σε εικόνες 2D για οπτικοποίηση

Ας εξετάσουμε κάθε ένα από αυτά με περισσότερες λεπτομέρειες.

Κωδικοποίηση Κειμένου

Το πρώτο βήμα είναι να μετατρέψουμε την εισαγωγή κειμένου σε μια αριθμητική αναπαράσταση που το μοντέλο AI μπορεί να εργαστεί. Αυτό συνήθως γίνεται χρησιμοποιώντας μεγάλους γλωσσικούς μοντέλους όπως το BERT ή GPT.

Αναπαράσταση 3D

Υπάρχουν διάφορες κοινές μέθοδοι για την αναπαράσταση γεωμετρίας 3D στα μοντέλα AI:

  1. Πλέγματα Voxels: 3D πίνακες τιμών που αντιπροσωπεύουν την κατοχή ή τα χαρακτηριστικά
  2. Συννεφάδες σημείων: Συλλογές 3D σημείων
  3. Ιστών: Κόμβοι και πρόσωπα που ορίζουν μια επιφάνεια
  4. Συνεχείς συναρτήσεις: Συνεχείς συναρτήσεις που ορίζουν μια επιφάνεια (π.χ. υπογεγραμμένες συναρτήσεις απόστασης)
  5. Νευρωνικά πεδία ακτινοβολίας (NeRFs): Νευρωνικά δίκτυα που αντιπροσωπεύουν πυκνότητα και χρώμα στο 3D χώρο

Κάθε μια από αυτές τις μεθόδους έχει ανταλλαγές σε όρους ανάλυσης, χρήσης μνήμης και ευκολίας γεννήτριας. Πολλά πρόσφατα μοντέλα χρησιμοποιούν συνεχείς συναρτήσεις ή NeRFs καθώς επιτρέπουν υψηλής ποιότητας αποτελέσματα με εύλογες απαιτήσεις υπολογισμού.

Για παράδειγμα, μπορούμε να αναπαραστήσουμε μια απλή σφαίρα ως μια συνάρτηση απόστασης:

import numpy as np

<p>def sphere_sdf(x, y, z, radius=1.0):
return np.sqrt(x**2 + y**2 + z**2) - radius</p>

<p># Αξιολόγηση SDF σε ένα 3D σημείο
point = [0.5, 0.5, 0.5]
distance = sphere_sdf(*point)
print(f&quot;Απόσταση στην επιφάνεια της σφαίρας: {distance}&quot;)

Γεννήτρια Μοντέλο

Το κεντρικό σημείο ενός συστήματος Text-to-3D είναι το γεννήτρια μοντέλο που παράγει την αναπαράσταση 3D από την εμφάνιση κειμένου. Τα περισσότερα σύγχρονα μοντέλα χρησιμοποιούν κάποια παραλλαγή ενός μοντέλου διάχυσης, παρόμοια με αυτά που χρησιμοποιούνται στη γεννήτρια εικόνων 2D.

Τα μοντέλα διάχυσης λειτουργούν προσθέτοντας逐渐 τη θόρυβο στα δεδομένα και στη συνέχεια μαθαίνοντας να αντιστρέφουν αυτή τη διαδικασία. Για τη γεννήτρια 3D, αυτή η διαδικασία συμβαίνει στο χώρο της επιλεγμένης αναπαράστασης 3D.

Ένα απλοποιημένο ψευδοκώδικας για ένα βήμα εκπαίδευσης μοντέλου διάχυσης μπορεί να μοιάζει με:

def diffusion_training_step(model, x_0, text_embedding):
# Δειγματίζουμε ένα τυχαίο βήμα
t = torch.randint(0, num_timesteps, (1,))

<p># Προσθέτουμε θόρυβο στην είσοδο
noise = torch.randn_like(x_0)
x_t = add_noise(x_0, noise, t)</p>

<p># Προβλέπουμε τον θόρυβο
predicted_noise = model(x_t, t, text_embedding)</p>

<p># Υπολογίζουμε την απώλεια
loss = F.mse_loss(noise, predicted_noise)</p>

return loss

<p># Βρόχος εκπαίδευσης
for batch in dataloader:
x_0, text = batch
text_embedding = encode_text(text)
loss = diffusion_training_step(model, x_0, text_embedding)
loss.backward()
optimizer.step()

Κατά τη διάρκεια της γεννήτριας, ξεκινάμε από καθαρό θόρυβο και επαναλαμβανόμενα αποθορυβοποιούμε, υπό την προϋπόθεση της εμφάνισης κειμένου.

Αποτύπωση

Για να οπτικοποιήσουμε τα αποτελέσματα και να υπολογίσουμε απώλειες κατά την εκπαίδευση, χρειαζόμαστε να αποτυπώσουμε την αναπαράσταση 3D μας σε εικόνες 2D. Αυτό συνήθως γίνεται χρησιμοποιώντας διαφορικές τεχνικές αποτύπωσης που επιτρέπουν τις παραγώγους να ρέουν πίσω από τη διαδικασία αποτύπωσης.

Για αναπαραστάσεις με βάση τον ιστό, μπορεί να χρησιμοποιηθεί ένας αποτυπωτής με βάση την αποτύπωση:

import torch
import torch.nn.functional as F
import pytorch3d.renderer as pr

<p>def render_mesh(vertices, faces, image_size=256):
# Δημιουργούμε έναν αποτυπωτή
renderer = pr.MeshRenderer(
rasterizer=pr.MeshRasterizer(),
shader=pr.SoftPhongShader()
)</p>

<p># Ρύθμιση κάμερας
cameras = pr.FoVPerspectiveCameras()</p>

<p># Αποτύπωση
images = renderer(vertices, faces, cameras=cameras)</p>

return images

<p># Παράδειγμα χρήσης
vertices = torch.rand(1, 100, 3) # Τυχαίοι κόμβοι
faces = torch.randint(0, 100, (1, 200, 3)) # Τυχαίες πρόσωπα
rendered_images = render_mesh(vertices, faces)

Για αναπαραστάσεις με βάση τις συνεχείς συναρτήσεις, όπως οι NeRFs, συνήθως χρησιμοποιούνται τεχνικές march του ακτινοβολητή για την αποτύπωση.

Συγκεντρώνοντας τα Πάντα: Η Διαδικασία Text-to-3D

Τώρα που καλύψαμε τα βασικά στοιχεία, ας περάσουμε από τη διαδικασία ενός τυπικού συστήματος γεννήτριας Text-to-3D:

  1. Κωδικοποίηση κειμένου: Η εισαγωγή κειμένου κωδικοποιείται σε μια πυκνή αναπαράσταση με ένα γλωσσικό μοντέλο.
  2. Αρχική γεννήτρια: Ένα μοντέλο διάχυσης, υπό την προϋπόθεση της εμφάνισης κειμένου, γεννά μια αρχική αναπαράσταση 3D (π.χ. NeRF ή συνεχής συνάρτηση).
  3. Συνέπεια πολλαπλών προοπτικών: Το μοντέλο αποτυπώνει πολλαπλές προοπτικές του γεννημένου περιουσιακού στοιχείου 3D και διασφαλίζει τη συνέπεια μεταξύ των προοπτικών.
  4. Βελτίωση: Επιπλέον δίκτυα μπορεί να βελτιώσουν τη γεωμετρία, να προσθέσουν υφές ή να ενισχύσουν λεπτομέρειες.
  5. Τελικό αποτέλεσμα: Η αναπαράσταση 3D μετατρέπεται σε μια επιθυμητή μορφή (π.χ. υφασμένο ιστό) για χρήση σε εφαρμογές.

Εδώ είναι ένα απλοποιημένο παράδειγμα πώς αυτό μπορεί να φαίνεται σε κώδικα:

class TextTo3D(nn.Module):
def __init__(self):
super().__init__()
self.text_encoder = BertModel.from_pretrained(&#039;bert-base-uncased&#039;)
self.diffusion_model = DiffusionModel()
self.refiner = RefinerNetwork()
self.renderer = DifferentiableRenderer()

<p>def forward(self, text_prompt):
# Κωδικοποίηση κειμένου
text_embedding = self.text_encoder(text_prompt).last_hidden_state.mean(dim=1)</p>

<p># Αρχική γεννήτρια
initial_3d = self.diffusion_model(text_embedding)</p>

<p># Αποτύπωση πολλαπλών προοπτικών
views = self.renderer(initial_3d, num_views=4)</p>

<p># Βελτίωση με βάση τη συνέπεια πολλαπλών προοπτικών
refined_3d = self.refiner(initial_3d, views)</p>

return refined_3d

<p># Χρήση
model = TextTo3D()
text_prompt = &quot;Ένα κόκκινο σπορ αυτοκίνητο&quot;
generated_3d = model(text_prompt)

Κορυφαία Μοντέλα Περιουσιακών Στοιχείων Text-to-3D Διαθέσιμα

3DGen – Meta

3DGen σχεδιάστηκε για να αντιμετωπίσει το πρόβλημα της γεννήτριας περιεχομένου 3D – όπως χαρακτήρες, αντικείμενα και σκηνές – από περιγραφές κειμένου.

Large Language and Text-to-3D Models - 3d-gen

Large Language and Text-to-3D Models – 3d-gen

3DGen υποστηρίζει rendering με βάση τη φυσική (PBR), απαραίτητο για την ανακατασκευή 3D περιουσιακών στοιχείων σε πραγματικές εφαρμογές. Επίσης, επιτρέπει τη γεννήτρια επαναχρωματισμού προηγουμένως γεννημένων ή από καλλιτέχνη δημιουργημένων 3D σχημάτων χρησιμοποιώντας νέες εισαγωγές κειμένου. Η διαδικασία περιλαμβάνει δύο βασικά στοιχεία: Meta 3D AssetGen και Meta 3D TextureGen, τα οποία χειρίζονται τη γεννήτρια κειμένου-σε-3D και κειμένου-σε-υφή αντίστοιχα.

Meta 3D AssetGen

Meta 3D AssetGen (Siddiqui et al., 2024) είναι υπεύθυνο για την αρχική γεννήτρια περιουσιακών στοιχείων 3D από κείμενο. Αυτό το στοιχείο παράγει ένα 3D ιστό με υφές και χάρτες υλικών PBR σε περίπου 30 δευτερόλεπτα.

Meta 3D TextureGen

Meta 3D TextureGen (Bensadoun et al., 2024) βελτιώνει τις υφές που παράγονται από το AssetGen. Μπορεί επίσης να χρησιμοποιηθεί για τη γεννήτρια νέων υφών για υπάρχοντα 3D ιστών με βάση πρόσθετες περιγραφές κειμένου. Αυτό το στάδιο διαρκεί περίπου 20 δευτερόλεπτα.

Point-E (OpenAI)

Point-E, ανεπτυγμένο από την OpenAI, είναι ένα άλλο αξιοσημείωτο μοντέλο γεννήτριας Text-to-3D. Σε αντίθεση με το DreamFusion, το οποίο παράγει αναπαραστάσεις NeRF, το Point-E γεννά συννεφάδες σημείων 3D.

Κύρια χαρακτηριστικά του Point-E:

α) Διπλό pipeline: Το Point-E πρώτα γεννά μια συνθετική 2D προβολή χρησιμοποιώντας ένα μοντέλο διάχυσης κειμένου-σε-εικόνα, και στη συνέχεια χρησιμοποιεί αυτή την εικόνα για να προϋποθέσει ένα δεύτερο μοντέλο διάχυσης που παράγει τον συννεφάδα σημείων 3D.

β) Αποτελεσματικότητα: Το Point-E σχεδιάστηκε για να είναι υπολογιστικά αποτελεσματικό, ικανό να γεννά συννεφάδες σημείων 3D σε δευτερόλεπτα σε μια seule GPU.

γ) Χρωματική πληροφορία: Το μοντέλο μπορεί να γεννήσει συννεφάδες σημείων με χρώμα, διατηρώντας τόσο γεωμετρική όσο και εμφάνιση πληροφορία.

Περιορισμοί:

  • Χαμηλότερη πιστότητα σε σύγκριση με προσεγγίσεις με βάση τον ιστό ή NeRF
  • Οι συννεφάδες σημείων απαιτούν πρόσθετη επεξεργασία για πολλές εφαρμογές

Shap-E (OpenAI):

Βασισμένο στο Point-E, η OpenAI εισήγαγε το Shap-E, το οποίο γεννά ιστών 3D αντί για συννεφάδες σημείων. Αυτό αντιμετωπίζει ορισμένα από τα περιορισμένα του Point-E ενώ διατηρεί την υπολογιστική αποτελεσματικότητα.

Κύρια χαρακτηριστικά του Shap-E:

α) Συνεχής αναπαράσταση: Το Shap-E μαθαίνει να γεννά συνεχείς αναπαραστάσεις (συναρτήσεις απόστασης) αντικειμένων 3D.

β) Εξαγωγή ιστού: Το μοντέλο χρησιμοποιεί μια διαφορική υλοποίηση του αλγορίθμου marching cubes για να μετατρέψει την συνεχή αναπαράσταση σε einen polygonal ιστό.

γ) Γεννήτρια υφής: Το Shap-E μπορεί επίσης να γεννήσει υφές για τους ιστών 3D, οδηγώντας σε πιο οπτικά ελκυστικά αποτελέσματα.

Πλεονεκτήματα:

  • Γρήγορη γεννήτρια (δευτερόλεπτα έως λεπτά)
  • Απευθείας έξοδος ιστού κατάλληλη για αποτύπωση και εφαρμογές
  • Ικανότητα γεννήτριας γεωμετρίας και υφής

GET3D (NVIDIA):

GET3D, ανεπτυγμένο από ερευνητές της NVIDIA (NVDA ), είναι ένα άλλο ισχυρό μοντέλο γεννήτριας Text-to-3D που επικεντρώνεται στη γεννήτρια υψηλής ποιότητας υφασμένων ιστών 3D.

Κύρια χαρακτηριστικά του GET3D:

α) Εξπlicit αναπαράσταση επιφάνειας: Σε αντίθεση με το DreamFusion ή το Shap-E, το GET3D γεννά απευθείας εξπlicit αναπαραστάσεις επιφάνειας (ιστών) χωρίς μεσολαβικές συνεχείς αναπαραστάσεις.

β) Γεννήτρια υφής: Το μοντέλο περιλαμβάνει μια διαφορική τεχνική αποτύπωσης για να μάθει και να γεννήσει υψηλής ποιότητας υφές για τους ιστών 3D.

γ) Αρχιτεκτονική GAN: Το GET3D χρησιμοποιεί μια αρχιτεκτονική ανταγωνιστικών γεννητικών δικτύων (GAN), η οποία επιτρέπει τη γρήγορη γεννήτρια μετά την εκπαίδευση του μοντέλου.

Πλεονεκτήματα:

  • Υψηλής ποιότητας γεωμετρία και υφές
  • Γρήγορη χρόνος εύρεσης
  • Απευθείας ολοκλήρωση με μηχανές 3D αποτύπωσης

Περιορισμοί:

  • Απαιτεί δεδομένα εκπαίδευσης 3D, τα οποία μπορούν να είναι σπάνια για ορισμένες κατηγορίες αντικειμένων

Συμπέρασμα

Η γεννήτρια Text-to-3D AI αντιπροσωπεύει μια θεμελιώδη αλλαγή στον τρόπο που δημιουργούμε και αλληλεπιδρούμε με περιεχόμενο 3D. Εκμεταλλευόμενοι προηγμένα τεχνικά της βαθιάς μάθησης, αυτά τα μοντέλα μπορούν να παράγουν σύνθετα, υψηλής ποιότητας περιουσιακά στοιχεία 3D από απλές περιγραφές κειμένου. Καθώς η τεχνολογία συνεχίζει να εξελίσσεται, μπορούμε να περιμένουμε να δούμε ολοένα και πιο εξελιγμένα και ικανά συστήματα Text-to-3D που θα επαναφέρουν βιομηχανίες από τα βιντεοπαιχνίδια και τον κινηματογράφο μέχρι το σχεδιασμό προϊόντων και την αρχιτεκτονική.

Έχω περάσει τα τελευταία πέντε χρόνια βυθισμένος στον συναρπαστικό κόσμο της Μηχανικής Μάθησης και του Βαθιάς Μάθησης. Η δέσμευσή μου και η εξειδίκευσή μου με οδήγησαν να συμβάλλω σε πάνω από 50 διαφορετικά projects μηχανικής λογισμικού, με ιδιαίτερη έμφαση στο AI/ML. Η συνεχής περιέργειά μου με έχει οδηγήσει επίσης προς την Επεξεργασία Φυσικής Γλώσσας, ένα πεδίο που είμαι πρόθυμος να εξερευνήσω περαιτέρω.