3D ML. Часть 3: извлечение признаков, датасеты, инструменты
Это третья публикация из серии заметок про основы современного направления машинного обучения Geometrical Deep Learning (GDL), так же называемого 3D Machine Learning (3D ML).
Часть 1 \ Часть 2 \ Часть 3 \ Часть 4
В этой заметке мы поговорим о том, какие существуют датасеты с трехмерными моделями, какие есть фреймворки для работы в области 3D ML, но начнем с обсуждения более фундаментальной темы — обучения представлениям, которая поможет лучше понимать то, как могут быть устроены современные архитектуры глубокого обучения в целом.
Виды обучения представлениям
Архитектуры глубоких нейронных сетей чаще всего принадлежат к определенному классу архитектур (порождающие состязательные сети (GAN), сверточные сети (CNN)и пр.). При описании конкретной нейронной сети, с помощью которой решается задача, например задача 2D-to-3D, важно понимать, к какому классу архитектур принадлежит эта сеть, ведь у разных классов архитектур есть свои характерные особенности, связанные с процессом обучения, настраиванием гиперпараметров или применения. Один из способов классификации архитектур глубокого обучения — классификация по типу обучения представлениям.
До расцвета эпохи глубокого обучения, в классических алгоритмах машинного обучения данные приходилось предварительно обрабатывать — извлекать из них признаки (feature extraction), понятные алгоритмам. Понять, как и какие признаки извлекать — большая и сложная задача. Например, в классическом машинном зрении, такими признаками были SIFT признаки. Здесь можно найти практическое введение в извлечение признаков для различных типов данных. Одним из главных достоинств архитектур глубокого обучения является то, что они могут самостоятельно извлекать признаки из данных.
Современная область машинного обучения, называемая обучением представлений (representation learning), направлена на автоматическое выявление скрытых (latent) признаков, которые в компактной форме, и при этом полноценно описывали бы данные. Развернутое описание об обучении представлениям в глубоком обучении содержится в [17], а здесь можно ознакомиться с различными скрытыми представлениями в области обработки естественных языков (NLP). В области 3D ML, в задачах 2D-to-3D, в основном используются следующие три подхода обучения представлениям [16].
- Порождающие состязательные сети (Generative Adversarial Networks/ GAN).
GAN архитектуры [18] и их различные модификации [19,20] “выучивают” скрытые представления объектов с помощью процесса состязания сети дискриминатора и сети генератора. Данные архитектуры относятся к классу порождающих моделей машинного обучения с неявно выраженной плотностью. Сегодня GAN архитектуры получили широкое распространение в самых разных областях машинного обучения: от генерации реалистичных человеческих (и не только) изображений до генерации текстов. Основным минусом такого подхода является неустойчивость процесса обучения. Про фундаментальные причины неустойчивости GAN архитектур можно прочитать здесь. В области 3D ML наиболее представительными работами, использующими данный подход, являются [31,32].
2. Автокодировщики (Autoencoders / AE).
Архитектура автокодировщиков предполагает точное восстановление входных данных на выходе, при наложении ограничения на размерность скрытого слоя (constraint of informational bottleneck). Архитектура состоит из двух частей: кодировщика, преобразующего входные данные в вектора скрытого представления, и декодировщика, восстанавливающего данные из скрытого представления. Возможности автокодировщиков в области обучения представления на трехмерных данных подтверждены многочисленными примерами [3,34,35,36].
Помимо классической архитектуры автокодировщиков, сегодня активно используются вариационные автокодировщики (variational autoencoders / VAE), в которых вектора скрытого представления возмущены нормально распределенным шумом, что позволяет улучшить характеристики пространства скрытых представлений. Примерами работ, в которых используется данная архитектура, для работы с трехмерными данными являются [37–39].
3. Оптимизация векторов скрытого представления (Latent Vectors Optimizing).
Вместо использования всей архитектуры автокодировщиков целиком, можно использовать только часть с декодировщиком. Эта идея по видимому впервые в явном виде сформулирована в [40], в которой для данных находили скрытое представление, которое после декодирование было бы ближе всего к данными из обучающей выборки. Таким образом, последовательно оптимизируя веса декодировщика и производя поиск наилучших приближений в пространстве скрытых представлений, можно получить архитектуру, позволяющую решать множество различных задач. О применении такого подхода в глубоком обучении в целом можно прочитать в [41,42], а в области 3D ML данный подход применяется, например, в [16].
Datasets
Как уже было сказано выше — очень многое в машинном обучении зависит от количества и качества данных. В связи с этим важно понимать особенности датасета, который будет использован при обучении модели. Существуют датасеты для разных форм представления отдельных трехмерных объектов и целых сцен.
С момента появления в сети первых трехмерных моделей, которые исследователи по всему миру стали использовать для своих экспериментов (Стэнфордский кролик, Чайник из Юты), датасеты трехмерных моделей претерпели значительное развитие. Во-первых, это касается размеров датасетов: если в первых датасетах количество моделей исчислялось сотнями, то сейчас речь идет о миллионах моделей (как в ShapeNet). Во-вторых, в современных датасетах помимо самих моделей, хранящихся в какой либо форме представления данных, находится различная дополнительная информация, позволяющая решать более сложные типы задач. Например, для каждой модели можно дополнительно хранить ее текстовое описание, фотографию реального объекта, соответствующего данной модели, текстуры, координаты размещения объекта в сцене и многое другое.
Здесь содержится представительная выборка датасетов с описанием и ссылками для задач 3D ML, также в данном репозитории можно найти много другой полезной информации, например, ссылки на материалы для изучения, примеры архитектур и всевозможных проектов.
Ниже опишем три наиболее распространенных датасета, которые используются при обучении архитектур, нацеленных на решение задач 2D-to-3D.
- ShapeNet (2015) [45]
Датасет содержит более 3 миллионов моделей (.obj формат), в более чем 4 тысячах категорий. На странице проекта есть удобный браузер для предпросмотра моделей. Датасет хорошо организован и содержит много дополнительной информации о моделях: текстуры, описания, снимки моделей. Используется для проведения соревнований (SHREC, ICCV) по задачам 3D ML.
Имеется более компактные версии датасета:
- ShapeNetCore: содержит 51300 моделей в 55 категориях.
- ShapeNetSem: содержит 12000 более аннотированных моделей в 270 категориях.
Недостатком данного датасета в контексте задачи 2D-to-3D является отсутствие фотографий реальных объектов, соответствующих 3D моделям.
2. ModelNet (2015) [47]
Датасет содержит 127915 3D моделей в 662 категориях (в основном файлы в формате .off). Имеются более компактные версии датасета:
- ModelNet10: 4899 моделей в 10 категориях.
- ModelNet40: 12311 моделей в 40 категориях, все модели одинаково ориентированы.
На странице проекта можно ознакомиться с таксономией моделей в датасете, найти всю сопутствующую документацию и ознакомиться с результатами соревнования “ModelNet Benchmark”. В датасете так же как и в ShapeNet есть изображения только отрендеренных моделей, но нет изображений реальных объектов, соответствующих этим моделям.
3. Pix3D (2018) [46]
Датасет содержит 395 3D моделей в .obj формате и вокселизованные версии моделей в .mat формате (.mat является Matlab форматом, но его можно свободно прочитать с помощью scipy.io). Модели представлены в 9 категориях и для каждой модели имеется набор реальных изображений в высоком качестве, с различным контекстом окружающего пространства. Помимо изображений и меток классов, в датасете присутствует информация о ключевых точках объектов как для изображений, так и для 3D моделей.
Данный датасет создавался специально для обучения моделей, нацеленных на решение задачи 2D-to-3D. На странице проекта можно скачать датасет и ознакомиться с результатами работы оригинальной архитектуры авторов датасета.
4. ABC dataset (2019) [49]
Датасет содержит порядка миллиона CAD моделей в параметрическом виде. Каждая модель состоит из набора аналитических примитивов, таких как плоскость, эллипс, цилиндр, тор и пр. Несмотря на отсутствие семантической информации и разбиения на категории, данный датасет можно использовать для задач 3D ML, в которых не требуется категориальная информация. Например, на странице проекта содержится бенчмарк по восстановлению нормалей к 3D объектам.
Tools
После того, как исследователь определился с задачей, архитектурой, метриками и функциями потерь, датасетом, ему необходимо выстроить удобный и эффективный процесс обучения и тестирования (pipeline). Удобнее всего пользоваться готовыми фреймворками, приспособленными для работы в конкретной предметной области. Для работы в области глубокого обучения в общем, сегодня наиболее распространены два фреймворка:
- Tensor Flow [51] от Google brain.
- PyTorch [52] от Facebook research.
У каждого из них есть свои преимущества и недостатки, и выбор фреймворка зависит от задачи, возможности фреймворков и личного предпочтения. Здесь, например, можно прочитать про динамику развития фреймворков глубокого обучения. На основе данных общих фреймворков глубокого обучения существуют специализированные библиотеки работы в области 3D ML.
Рассмотрим кратко основные существующие на данный момент библиотеки в области 3D ML:
- Kornia (2019) [50]
Область 3D ML можно назвать развитием классического машинного зрения, поэтому неудивительно, что некоторый функционал для решения задач geometrical deep learning можно найти уже в библиотеке компьютерного зрения Kornia для PyTorch.
В целом, несмотря на то, что среди библиотек классического компьютерного зрения, Kornia является наиболее проработанной и функциональной, ее возможности как библиотеки 3D ML весьма скудны, и из поддерживаемых трехмерных типов данных имеются только RGBD изображения.
2. GVNN (2016) [53]
GVNN (Geometric Vision on Neural Networks) — библиотека, написанная на языке Lua и базирующаяся на фреймворке глубокого обучения Torch. Данный фреймворк был реализован группой независимых исследователей для того, чтобы иметь удобный pipeline работы с RGBD снимками с помощью предложенной ими архитектуры [53]. Несмотря на то, что в данной библиотеке реализованы весьма нетривиальные операции для работы с многообразиями, ее трудно назвать полноценным фреймворком: в ней предусмотрена обработка только одного типа данных — RGBD снимков, и из моделей присутствует только одна, ради которой данный фреймворк и был написан.
3. PyTorch Geometric (2019) [55]
Данная библиотека для PyTorch приспособлена для работы с неевклидовыми структурами данных, такими как пространственные графы. В библиотеке реализованы различные операторы сверток на графах и ряд архитектур глубокого обучения, основанных на этих операторах. Присутствуют загрузчики датасетов и конструктор по созданию собственного датасета.
Несмотря на то, что PyTorch Geometric создавалась как библиотека для 3D ML, присутствующие в ней модели не охватывают весь спектр задач данной области машинного обучения. В библиотеке рассмотрена только одна форма представления трехмерных данных — полигональный меш. Отсутствует модуль для графического представления данных (differentiable rendering module).
4. Tensor Flow Graphics (2019) [54]
Так же как и PyTorch Graphics, TensorFlow Graphics создавалась для работы с пространственными графами. Из отличий от предыдущий библиотеки можно выделить возможность использовать TensorBoard 3D для визуализации данных, использование иного набора базовых операций над графами и отсутствие загрузчика датасетов.
5. NVidia Kaolin (2019) [48]
Данный фреймворк является самым новым из всех рассматриваемых (вышел в 4-ом квартале 2019 года) и, по видимости, является наиболее содержательным, удобным и функциональным инструментом на сегодняшний день. На его примере рассмотрим основные модули, которые должен в себе содержать современный фреймворк для работы с трехмерными данными в машинном обучении.
Во-первых, в Kaolin присутствует модуль, отвечающий за загрузку датасетов (Data loaders), с помощью которого, в зависимости от типа решаемой задачи, исследователь может выбрать тот набор данных, который лучше подходит.
Продемонстрируем простоту работы с библиотекой, приведя пример кода, отвечающего за загрузку моделей самолетов из датасета ShapeNet:
>>> from kaolin.datasets import shapenet
>>> from torch.utils.data import DataLoader
>>> meshes = shapenet.ShapeNet_Meshes(root=shapenet_dir, categories=['plane'])
Во-вторых, присутствует модуль для отрисовки данных (differentiable rendering), для лучшего понимания, как устроены данные, использующиеся для обучения и для того, чтобы визуально оценивать качество работы сконструированной модели.
Напишем код, визуализирующий часть датасета:
>>> kal.visualize.show(meshes)
В-третьих, Kaolin позволяет работать со всеми основными формами представления трехмерных данных, и конвертировать их друг в друга.
Код, загружающий тестовую модель сферы из директории с тестовыми примерами, и конвертирующий ее в воксельную модель:
>>> import kaolin as kal
>>> mesh = kal.rep.TriangleMesh.from_obj(‘model.obj’) # inside test dir
>>> mesh.vertices.shape
torch.Size([482, 3])
>>> mesh.faces.shape
torch.Size([482, 3])
>>> kal.visualize.show(mesh)
>>> voxels = kal.conversions.trianglemesh_to_voxelgrid(mesh, 32)
>>> kal.visualize.show(voxels, mode=’voxels’)
В-четвертых, в библиотеке содержатся множество метрик качества и функций потерь, подходящих для различных архитектур и разных форм представления трехмерных объектов.
В-пятых, в Kaolin содержится множество предобученных моделей (model zoo), являющихся лучшими архитектурами в своей категории задач (State of the art models / SOTA).
Авторы библиотеки выделяют следующие категории задач 3D ML:
- Differentiable rendering (see Neural Mesh Renderer, its PyTorch port, Soft Rasterizer, Differentiable Interpolation-based Renderer, and a modular and extensible abstract DifferentiableRenderer specification).
- Single-image based mesh reconstruction (Pixel2Mesh, GEOMetrics, OccupancyNets, and more…)
- Pointcloud classification and segmentation (PointNet, PoinNet++, DGCNN, …)
- Mesh classification and segmentation (MeshCNN, GCN)
- 3D superresolution on voxel grids (ODM, VoxelUNet, and more…)
Выводы
Понять, какие данных использовать для обучения своей архитектуры, каким инструментом пользоваться для экспериментов, какой выбрать фреймворк для обучения — важные задачи, которые нужно решить, чтобы приступить к практике написания собственных архитектур. Понимание же того, как глубокие архитектуры могут извлекать скрытые признаки из данных, может помочь сконструировать собственную архитектуру, и, определенно, поможет лучше понимать конструкции существующих SOTA архитектур.
О том, как устроены лучшие архитектуры глубокого обучения, которые позволяют решать задачу 2D-to-3D, мы поговорим в следующей заметке.
Ниже приведен список источников, в котором, помимо непосредственно упомянутых в тексте статей и книг, присутствует много других источников на тематику 3D ML, полезных для всех, интересующихся задачами 3D ML в общем, и 2D-to-3D в частности.
Автор
Вадим Кондаратцев
vadim@phygitalism.com
Источники
[1] Рассел С. Искусственный интеллект: современный подход, С. Рассел, П. Норвиг / Вильямс, Москва, 2018 г., 1408 с.
[2] Novotni, Marcin and Reinhard Klein. “Shape retrieval using 3D Zernike descriptors.” Computer-Aided Design 36 (2004): 1047–1062. [project page]
[3] Fisher, Matthew & Savva, Manolis & Hanrahan, Pat. (2011). Characterizing Structural Relationships in Scenes Using Graph Kernels. ACM Trans. Graph.. 30. 34. 10.1145/2010324.1964929.
[4] Berjón, Daniel & Morán, Francisco. (2012). Fast human pose estimation using 3D Zernike descriptors. Proceedings of SPIE — The International Society for Optical Engineering. 8290. 19-. 10.1117/12.908963.
[5] Mescheder, Lars & Oechsle, Michael & Niemeyer, Michael & Nowozin, Sebastian & Geiger, Andreas. (2018). Occupancy Networks: Learning 3D Reconstruction in Function Space. [code]
[6] Tatarchenko, Maxim & Dosovitskiy, Alexey & Brox, Thomas. (2017). Octree Generating Networks: Efficient Convolutional Architectures for High-resolution 3D Outputs. [code]
[7] Bao, Fan & Sun, Yankui & Tian, Xiaolin & Tang, Zesheng. (2007). Multiresolution Isosurface Extraction with View-Dependent and Topology Preserving. 2007 IEEE/ICME International Conference on Complex Medical Engineering, CME 2007. 521–524. 10.1109/ICCME.2007.4381790.
[8] Facil, Jose & Ummenhofer, Benjamin & Zhou, Huizhong & Montesano, Luis & Brox, Thomas & Civera, Javier. (2019). CAM-Convs: Camera-Aware Multi-Scale Convolutions for Single-View Depth. [code]
[9] Firman, Michael and Mac Aodha, Oisin and Julier, Simon and Brostow, Gabriel J. (2016). Structured Prediction of Unobserved Voxels From a Single Depth Image / Firman CVPR 2016 [code]
[10] Richter, Stephan & Roth, Stefan. (2018). Matryoshka Networks: Predicting 3D Geometry via Nested Shape Layers.
[11] Xie, Haozhe & Yao, Hongxun & Sun, Xiaoshuai & Zhou, Shangchen & Zhang, Shengping. (2019). Pix2Vox: Context-aware 3D Reconstruction from Single and Multi-view Images. [code]
[12] Gkioxari, G., Malik, J., & Johnson, J. (2019). Mesh R-CNN. ArXiv, abs/1906.02739.
[13] Tatarchenko, Maxim & Richter, Stephan & Ranftl, Rene & Li, Zhuwen & Koltun, Vladlen & Brox, Thomas. (2019). What Do Single-view 3D Reconstruction Networks Learn?. [code]
[14] D. P. Bertsekas. A distributed asynchronous relaxation algorithm for the assignment problem. In Decision and Control, 1985 24th IEEE Conference on, pages 1703–1704. IEEE, 1985
[15] H. Fan, H. Su, and L. J. Guibas. A point set generation network for 3D object reconstruction from a single image. In Proc. IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), 2017. [code]
[16] J. J. Park, P. Florence, J. Straub, R. Newcombe, and S. Lovegrove. DeepSDF: Learning continuous signed distance functions for shape representation. arXiv.org, 2019. [code]
[17] Bengio, Y. & Courville, Aaron & Vincent, Pascal. (2013). Representation Learning: A Review and New Perspectives. IEEE transactions on pattern analysis and machine intelligence. 35. 1798–1828. 10.1109/TPAMI.2013.50.
[18] I. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu, D. Warde-Farley, S. Ozair, A. Courville, and Y. Bengio. Generative adversarial nets. In NIPS, pages 2672–2680, 2014.
[19] X. Chen, Y. Duan, R. Houthooft, J. Schulman, I. Sutskever, and P. Abbeel. Infogan: Interpretable representation learning by information maximizing generative adversarial nets. In NIPS, pages 2172–2180, 2016.
[20] A. Radford, L. Metz, and S. Chintala. Unsupervised representation learning with deep convolutional generative adversarial networks. arXiv preprint arXiv:1511.06434, 2015.
[21] Rezatofighi, Hamid & Tsoi, Nathan & Gwak, JunYoung & Sadeghian, Amir & Reid, Ian & Savarese, Silvio. (2019). Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression.
[22] Hiroharu Kato, Yoshitaka Ushiku, and Tatsuya Harada. Neural 3d mesh renderer. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018.
[23] Nanyang Wang, Yinda Zhang, Zhuwen Li, Yanwei Fu, Wei Liu, and Yu-Gang Jiang. Pixel2mesh: Generating 3d mesh models from single rgb images. In ECCV, 2018.
[24] M. Desbrun, M. Meyer, P. Schroder, and A. H. Barr. Implicit fairing of irregular meshes using diffusion and curvature flow. In SIGGRAPH, 1999.
[25] P. Cignoni, C. Rocchini, and R. Scopigno, “Metro : measuring error on simplified surfaces,” Computer Graphics Forum, vol. 17, no. 2, pp. 167–174, June 1998.
[26] Aspert, Nicolas & Santa-cruz, Diego & Ebrahimi, Touradj. (2002). MESH: Measuring Errors between Surfaces Using the Hausdorff Distance. Proceedings of the IEEE International Conference in Multimedia and Expo (ICME). 1. 705–708 vol.1. 10.1109/ICME.2002.1035879.
[27] Leif Kobbelt, Swen Campagna, Jens Vorsatz, and Hans-Peter Seidel. Interactive Multi-Resolution Modeling on Arbitrary Meshes. In SIGGRAPH 98 Conference Proceedings, pages 105–114, July 1998.
[28] KOBBELT, L. Iterative Erzeugung glatter Interpolanten. Shaker Verlag, ISBN 3–8265–0540–9, 1995.
[29] O. Sorkine, Y. Lipman, D. Cohen-Or, M. Alexa, C. R¨ossl and H.P. Seidel: “Laplacian surface editing,” In Symposium on Geometry Processing, Vol. 71(2004), p. 175
[30] Edward Smith, Scott Fujimoto, Adriana Romero, and David Meger. GEOMetrics: Exploiting geometric structure for graph-encoded objects. In Kamalika Chaudhuri and Ruslan Salakhutdinov, editors, Proceedings of the 36th International Conference on Machine Learning, volume 97 of Proceedings of Machine Learning Research, pages 5866–5876, Long Beach, California, USA, 09–15 Jun 2019. PMLR.
[31] Ben-Hamu, Heli & Maron, Haggai & Kezurer, Itay & Avineri, Gal & Lipman, Yaron. (2018). Multi-chart generative surface modeling. ACM Transactions on Graphics. 37. 1–15. 10.1145/3272127.3275052.
[32] J. Wu, C. Zhang, T. Xue, B. Freeman, and J. Tenenbaum. Learning a probabilistic latent space of object shapes via 3d generative-adversarial modeling. In NIPS, pages 82–90, 2016.
[33] С. Николенко, А. Кадурин, Е. Архангельская “Глубокое обучение. Погружение в мир нейронных сетей”, 2018. ISBN 978–5–496–02536–2
[34] A. Dai, C. Ruizhongtai Qi, and M. Niessner. Shape completion using 3d-encoder-predictor cnns and shape synthesis. In CVPR, pages 5868–5877, 2017.
[35] D. Stutz and A. Geiger. Learning 3d shape completion from laser scan data with weak supervision. In CVPR, pages 1955–1964, 2018.
[36] Wu, Jiajun & Zhang, Chengkai & Zhang, Xiuming & Zhang, Zhoutong & Freeman, William & Tenenbaum, Joshua. (2018). Learning Shape Priors for Single-View 3D Completion and Reconstruction.
[37] Bagautdinov, Timur & Wu, Chenglei & Saragih, Jason & Fua, Pascal & Sheikh, Yaser. (2018). Modeling Facial Geometry Using Compositional VAEs. 3877–3886. 10.1109/CVPR.2018.00408.
[38] Bloesch, Michael & Czarnowski, Jan & Clark, Ronald & Leutenegger, Stefan & Davison, Andrew. (2018). CodeSLAM — Learning a Compact, Optimisable Representation for Dense Visual SLAM. 2560–2568. 10.1109/CVPR.2018.00271.
[39] O. Litany, A. Bronstein, M. Bronstein, and A. Makadia. Deformable shape completion with graph convolutional autoencoders. CVPR, 2017.
[40] S. Tan and M. L. Mayrovouniotis. Reducing data dimensionality through optimizing neural network inputs. AIChE Journal, 41(6):1471–1480, 1995.
[41] P. Bojanowski, A. Joulin, D. Lopez-Pas, and A. Szlam. Optimizing the latent space of generative networks. In J. Dy and A. Krause, editors, Proceedings of the 35th International Conference on Machine Learning, volume 80 of Proceedings of Machine Learning Research, pages 600–609. PMLR, 10–15 Jul 2018.
[42] J. Fan and J. Cheng. Matrix completion by deep matrix factorization. Neural Networks, 98:34–41, 2018.
[43] J. C. Carr, R. K. Beatson, J. B. Cherrie, T. J. Mitchell, W. R. Fright, B. C. McCallum, and T. R. Evans. Reconstruction and representation of 3d objects with radial basis functions. In SIGGRAPH, pages 67–76. ACM, 2001
[44] M. Kazhdan and H. Hoppe. Screened poisson surface reconstruction. ACM TOG, 32(3):29, 2013.
[45] Angel X Chang, Thomas Funkhouser, Leonidas Guibas, Pat Hanrahan, Qixing Huang, Zimo Li, Silvio Savarese, Manolis Savva, Shuran Song, Hao Su, et al. Shapenet: An information-rich 3d model repository. arXiv preprint arXiv:1512.03012, 2015 [project page]
[46] X. Sun, J. Wu, X. Zhang, Z. Zhang, C. Zhang, T. Xue, J. B. Tenenbaum, and W. T. Freeman. Pix3d: Dataset and methods for single-image 3d shape modeling. In CVPR, 2018 [project page]
[47] Z. Wu, S. Song, A. Khosla, F. Yu, L. Zhang, X. Tang and J. Xiao 3D ShapeNets: A Deep Representation for Volumetric Shapes Proceedings of 28th IEEE Conference on Computer Vision and Pattern Recognition (CVPR 2015) [project page]
[48] Jatavallabhula, Krishna Murthy, Edward Smith, Jean-Francois Lafleche, Clement Fuji Tsang, Artem Rozantsev, Wenzheng Chen, Tommy Xiang, Rev Lebaredian and Sanja Fidler. “Kaolin: A PyTorch Library for Accelerating 3D Deep Learning Research.” ArXivabs/1911.05063 (2019): n. pag. [project page]
[49] Koch, S., Matveev, A., Jiang, Z., Williams, F., Artemov, A., Burnaev, E., Alexa, M., Zorin, D. and Panozzo, D., 2019. ABC: A Big CAD Model Dataset For Geometric Deep Learning. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (pp. 9601–9611). [project page]
[50] Riba, E., Mishkin, D., Ponsa, D., Rublee, E. and Bradski, G., 2019. Kornia: an open source differentiable computer vision library for pytorch. arXiv preprint arXiv:1910.02190. [project page]
[51] Abadi, M., Barham, P., Chen, J., Chen, Z., Davis, A., Dean, J., Devin, M., Ghemawat, S., Irving, G., Isard, M. and Kudlur, M., 2016. Tensorflow: A system for large-scale machine learning. In 12th {USENIX} Symposium on Operating Systems Design and Implementation ({OSDI} 16) (pp. 265–283). [project page]
[52] Paszke, A., Gross, S., Massa, F., Lerer, A., Bradbury, J., Chanan, G., Killeen, T., Lin, Z., Gimelshein, N., Antiga, L. and Desmaison, A., 2019. PyTorch: An imperative style, high-performance deep learning library. In Advances in Neural Information Processing Systems (pp. 8024–8035). [project page]
[53] Handa, A., Bloesch, M., Pătrăucean, V., Stent, S., McCormac, J. and Davison, A., 2016, October. gvnn: Neural network library for geometric computer vision. In European Conference on Computer Vision (pp. 67–82). Springer, Cham. [project page]
[54] Valentin, J., Keskin, C., Pidlypenskyi, P., Makadia, A., Sud, A. and Bouaziz, S., 2019. Tensorflow graphics: Computer graphics meets deep learning. [project page]
[55] Fey, M. and Lenssen, J.E., 2019. Fast graph representation learning with PyTorch Geometric. arXiv preprint arXiv:1903.02428. [project page]
[56] Qi, C.R., Yi, L., Su, H. and Guibas, L.J., 2017. Pointnet++: Deep hierarchical feature learning on point sets in a metric space. In Advances in neural information processing systems(pp. 5099–5108). [project page]