پلاگین مش

بررسی اجمالی

ابر نقاط و مش ها انواع مهم و قدرتمندی از داده ها برای نمایش اشکال سه بعدی هستند و به طور گسترده در زمینه بینایی کامپیوتر و گرافیک کامپیوتری مورد مطالعه قرار گرفته اند. داده‌های سه‌بعدی در حال فراگیرتر شدن هستند و محققان مشکلات جدیدی مانند بازسازی هندسه سه‌بعدی از داده‌های دوبعدی، تقسیم‌بندی معنایی ابر نقطه سه‌بعدی، هم‌ترازی یا شکل‌بندی اشیاء سه‌بعدی و غیره را به چالش می‌کشند. بنابراین، تجسم نتایج، به ویژه در مرحله آموزش، برای درک بهتر نحوه عملکرد مدل بسیار مهم است.

پلاگین مش در TensorBoard {width="100%"}

این افزونه قصد دارد ابرهای نقطه سه بعدی یا مش (ابرهای نقطه مثلثی) را در TensorBoard نمایش دهد. علاوه بر این، به کاربر اجازه می دهد تا با اشیاء رندر شده تعامل داشته باشد.

خلاصه API

یک شبکه یا یک ابر نقطه ای را می توان با مجموعه ای از تانسورها نشان داد. به عنوان مثال، می توان یک ابر نقطه را به عنوان مجموعه ای از مختصات سه بعدی نقاط و چند رنگ مرتبط با هر نقطه مشاهده کرد.

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)

توجه داشته باشید تانسور colors در این مورد اختیاری است اما می تواند برای نشان دادن معنایی متفاوت نقاط مفید باشد.

این افزونه در حال حاضر فقط از مش های مثلثی پشتیبانی می کند که با وجود چهره ها با ابرهای نقطه ای بالا تفاوت دارند - مجموعه ای از رئوس که مثلث روی مش را نشان می دهد.

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)

فقط تانسور colors برای خلاصه های مش اختیاری است.

پیکربندی صحنه

نحوه نمایش اشیا نیز به پیکربندی صحنه، یعنی شدت و رنگ منابع نور، مواد اشیا، مدل های دوربین و غیره بستگی دارد. همه اینها را می توان از طریق یک پارامتر اضافی config_dict پیکربندی کرد. این فرهنگ لغت ممکن است شامل سه کلید سطح بالا باشد: camera ، lights و material . هر کلید همچنین باید یک فرهنگ لغت با کلیدهای اجباری cls باشد که نشان دهنده نام کلاس معتبر THREE.js باشد.

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

camera_config از قطعه بالا را می توان با توجه به مستندات THREE.js گسترش داد. همه کلیدهای camera_config به کلاسی با نام camera_config.cls منتقل می شوند. به عنوان مثال (بر اساس اسناد PerspectiveCamera ):

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

توجه داشته باشید که پیکربندی صحنه یک متغیر قابل آموزش (یعنی ایستا) نیست و باید فقط در هنگام ایجاد خلاصه ارائه شود.

روش نصب

در حال حاضر این افزونه بخشی از ساخت شبانه TensorBoard است، بنابراین قبل از استفاده از افزونه باید آن را نصب کنید.

کولب

pip install -q -U tb-nightly

سپس افزونه Tensorboard را بارگیری کرده و اجرا کنید، مشابه آنچه در ترمینال انجام می دهید:

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

لطفاً برای جزئیات بیشتر به نمونه نوت بوک Colab مراجعه کنید.

پایانه

اگر می‌خواهید بیلد شبانه TensorBoard را به صورت محلی اجرا کنید، ابتدا باید آن را نصب کنید:

pip install tf-nightly

سپس آن را اجرا کنید:

tensorboard --logdir path/to/logs