Wtyczka Mesh

Przegląd

Siatki i chmury punktów to ważne i potężne typy danych reprezentujących kształty 3D, szeroko badane w dziedzinie widzenia komputerowego i grafiki komputerowej. Dane 3D stają się coraz bardziej wszechobecne, a badacze stawiają czoła nowym problemom, takim jak rekonstrukcja geometrii 3D z danych 2D, segmentacja semantyczna chmury punktów 3D, wyrównywanie lub przekształcanie obiektów 3D i tak dalej. Dlatego wizualizacja wyników, zwłaszcza na etapie uczenia, ma kluczowe znaczenie dla lepszego zrozumienia działania modelu.

Wtyczka Mesh w TensorBoard {width="100%"}

Ta wtyczka ma na celu wyświetlanie chmur punktów lub siatek 3D (triangulowanych chmur punktów) w TensorBoard. Dodatkowo umożliwia użytkownikowi interakcję z renderowanymi obiektami.

Podsumowanie interfejsu API

Za pomocą zestawu tensorów można przedstawić siatkę lub chmurę punktów. Na przykład chmurę punktów można zobaczyć jako zbiór współrzędnych 3D punktów i niektórych kolorów powiązanych z każdym punktem.

from tensorboard.plugins.mesh import summary as mesh_summary
...

point_cloud = tf.constant([[[0.19, 0.78, 0.02], ...]], shape=[1, 1064, 3])
point_colors = tf.constant([[[128, 104, 227], ...]], shape=[1, 1064, 3])

summary = mesh_summary.op('point_cloud', vertices=point_cloud, colors=point_colors)

UWAGA tensor colors jest w tym przypadku opcjonalny, ale może być przydatny do pokazania różnej semantyki punktów.

Wtyczka obsługuje obecnie tylko siatki trójkątne, które różnią się od powyższych chmur punktów jedynie obecnością ścian - zbioru wierzchołków reprezentujących trójkąt na siatce.

mesh = tf.constant([[[0.19, 0.78, 0.02], ...]], shape=[1, 1064, 3])
colors = tf.constant([[[128, 104, 227], ...]], shape=[1, 1064, 3])
faces = tf.constant([[[13, 78, 54], ...]], shape=[1, 752, 3])

summary = mesh_summary.op('mesh', vertices=mesh, colors=colors, faces=faces)

W przypadku podsumowań siatki opcjonalny jest tylko tensor colors .

Konfiguracja sceny

Sposób wyświetlania obiektów zależy także od konfiguracji sceny, czyli natężenia i koloru źródeł światła, materiału, z jakiego wykonane są obiekty, modeli kamer itp. Wszystko to można skonfigurować za pomocą dodatkowego parametru config_dict . Słownik ten może zawierać trzy klucze wysokiego poziomu: camera , lights i material . Każdy klucz musi być także słownikiem z obowiązkowym kluczem cls reprezentującym prawidłową nazwę klasy THREE.js .

camera_config = {'cls': 'PerspectiveCamera'}
summary = mesh_summary.op(
    "mesh",
    vertices=mesh,
    colors=colors,
    faces=faces,
    config_dict={"camera": camera_config},
)

camera_config z powyższego fragmentu można rozwinąć zgodnie z dokumentacją THREE.js . Wszystkie klucze z camera_config zostaną przekazane do klasy o nazwie camera_config.cls . Na przykład (na podstawie dokumentacji PerspectiveCamera ):

camera_config = {
  'cls': 'PerspectiveCamera',
  'fov': 75,
  'aspect': 0.9,
}
...

Należy pamiętać, że konfiguracja sceny nie jest zmienną podlegającą szkoleniu (tj. statyczną) i powinna być podawana jedynie podczas tworzenia podsumowań.

Jak zainstalować

Obecnie wtyczka jest częścią nocnej kompilacji TensorBoard, dlatego musisz ją zainstalować przed użyciem wtyczki.

Colab

pip install -q -U tb-nightly

Następnie załaduj rozszerzenie Tensorboard i uruchom je, podobnie jak zrobiłbyś to w terminalu:

%load_ext tensorboard
%tensorboard --logdir=/path/to/logs

Aby uzyskać więcej informacji, zapoznaj się z przykładowym notatnikiem Colab .

Terminal

Jeśli chcesz lokalnie uruchamiać nocną kompilację TensorBoard, najpierw musisz ją zainstalować:

pip install tf-nightly

Następnie po prostu uruchom:

tensorboard --logdir path/to/logs