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 представления. Детали разных подходов для батчинга подробнее описаны в репозитории библиотеки.