Camadas diferenciáveis para gráficos

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)
O objetivo do TensorFlow Graphics é dar um amplo acesso à comunidade a recursos gráficos úteis, fornecendo um conjunto de camadas gráficas diferenciáveis (por exemplo, câmeras, modelos de refletância, convoluções de malha) e recursos do visualizador em 3D que possam ser usados nos seus modelos de machine learning preferidos.

Nos últimos anos, aumentaram as novas camadas gráficas diferenciáveis que podem ser inseridas em arquiteturas de redes neurais. De transformadores espaciais a renderizadores gráficos diferentes, essas novas camadas aproveitam o conhecimento adquirido ao longo de anos de pesquisa gráfica e de visão computacional para criar arquiteturas de rede novas e mais eficientes. Modelar explicitamente restrições e distribuições a priori geométricas em modelos de machine learning abre as portas para arquiteturas que possam ser treinadas de maneira robusta, eficiente e autossupervisionada.

Para começar, consulte uma visão geral mais detalhada, o guia de instalação e a API.