Livelli differenziabili per la grafica.

import numpy as np
import tensorflow as tf
import trimesh

import tensorflow_graphics.geometry.transformation as tfg_transformation
from tensorflow_graphics.notebooks import threejs_visualization

# Download the mesh.
!wget https://storage.googleapis.com/tensorflow-graphics/notebooks/index/cow.obj
# Load the mesh.
mesh = trimesh.load("cow.obj")
mesh = {"vertices": mesh.vertices, "faces": mesh.faces}
# Visualize the original mesh.
threejs_visualization.triangular_mesh_renderer(mesh, width=400, height=400)
# Set the axis and angle parameters.
axis = np.array((0., 1., 0.))  # y axis.
angle = np.array((np.pi / 4.,))  # 45 degree angle.
# Rotate the mesh.
mesh["vertices"] = tfg_transformation.axis_angle.rotate(mesh["vertices"], axis,
                                                        angle).numpy()
# Visualize the rotated mesh.
threejs_visualization.triangular_mesh_renderer(mesh, width=400, height=400)
TensorFlow Graphics mira a rendere le funzioni grafiche utili ampiamente accessibili alla comunità fornendo una serie di livelli grafici differenziabili (ad es. telecamere, modelli di riflettanza, convoluzioni mesh) e funzionalità di visualizzazione 3D (ad es. TensorBoard 3D) che possono essere utilizzati nei modelli di apprendimento automatico di scelta.

Gli ultimi anni hanno visto un aumento di nuovi livelli grafici differenziabili che possono essere inseriti nelle architetture di reti neurali. Dai trasformatori spaziali ai renderer grafici differenziabili, questi nuovi livelli sfruttano le conoscenze acquisite in anni di visione artificiale e ricerca grafica per costruire architetture di rete nuove e più efficienti. La modellazione esplicita di priorità e vincoli geometrici nei modelli di apprendimento automatico apre le porte ad architetture che possono essere addestrate in modo robusto, efficiente e, soprattutto, in modo auto-supervisionato.

Per iniziare, consulta una panoramica più dettagliata, la guida all'installazione e l' API .