fbpx
  • PyTorch3D: библиотека для работы с 3D данными от FAIR

    FAIR опубликовали библиотеку для обработки 3D данных. PyTorch3d предоставляет переиспользуемые компоненты для задач компьютерного зрения на 3D данных. Библиотека основывается на нейросетевом фреймворке PyTorch.

    Ключевой функционал библиотеки включает в себя:

    • Специальную структуру данных для хранения и проведения операций над триангуляционными сетями (triangle meshes);
    • Проецирующие трансформации, графовая свертка, семплирование и функции потерь для триангуляционных сетей;
    • Дифференцируемый рендеринг сетей
    Архитектура рендерера

    PyTorch3d разрабатывался, чтобы облегчить процесс работы с 3D данными для последующего использования их при обучении нейросетей. Это обуславливает то, что все операторы в PyTorch3d:

    • Реализованы с помощью PyTorch тензоров;
    • Могут обрабатывать данные в формате мини-батчей;
    • Дифференцируемы;
    • Позволяют использование GPU для ускорения вычислений

    В FAIR PyTorch3d используют в таких исследовательских проектах, как Mesh R-CNN.

    Разбиение сеток на батчи

    В глубоком обучение каждый шаг оптимизации производится на множестве входных примеров, чтобы обучение было устойчивым. Процесс разделения данных на сабсеты называется батчингом. В случае, когда входными данными являются изображения, процесс батчинг определен: N изображений подгоняются под один размер и складываются в четырехмерный тензор размера N x 3 x H x W. H и W отвечают за высоту и ширину изображений. Для сеток процесс батчинга неопределен. 

    Исследователи предложили 3 варианта хранения 3D данных в батчах: в формате листа, padded представления и packed представления. Детали разных подходов для батчинга подробнее описаны в репозитории библиотеки

    batch_modes
    Отличие трех видов батчинга сеток