3D Computer Vision [DeepSchool] [Давид Свитов, Ренат Баширов, Дмитрий Раков]

Bot

Администратор
Команда форума
23 Янв 2020
195,633
3,120
113
269049.jpg

1. Введение
Вводная лекция курса 3D Computer Vision. На ней мы обсудим, какие задачи должен решать 3D CV инженер, с какими данными он работает, как их собирает и хранитТемы лекции:
Какие задачи решают в 3D CV
Форматы представления и хранения 3D данных. Воксели, облака точек и меши — чем отличаются и какими инструментами обрабатывать
Какие существуют сенсоры: камеры, лидар, радар, кинект
Административная часть. Знакомим с курсом
2. Модель камеры. Калибровка
Для построения 3D сцены часто используют обычные rgb-камеры. Но перед использованием их обязательно надо откалибровать. На этой лекции вы узнаете, как это происходитТемы лекции:
Проективная геометрия
Модель камеры
Какие параметры есть у камеры и чем внутренние отличаются от внешних
Как откалибровать вашу камеру, чтобы настроить внутренние параметры и коэффициенты дисторсии
Гомография
На практике: научитесь производить калибровку камеры на примере исправления снимков с fisheye эффектом

3. Сопоставление снимков с разных ракурсов
На этом занятии вы научитесь находить общие точки на разных изображениях. Это понадобится для триангуляции 3D точек с разных ракурсовТемы лекции:
Что такое ключевые точки изображения и зачем они нужны
Как сравнить две точки с помощью дескрипторов и какие к ним предъявляются требования
Разбор построения векторов для точек на примере подробного разбора SIFT дескрипторов
Современный DeepLearning подход к сопоставлению ключевых точек (SuperPoint, SiLK, SuperGlue, LoFTR)
На практике: реализуете программу для склейки панорамы из нескольких снимков, используя SuperPoint. Это поможет вам лучше разобраться в работе с ключевыми точками

4. SLAM&SfM. Введение
Вы узнаете, как и зачем ставятся задачи SLAM и SfM. Научитесь, как находить перемещения камеры по снимкам и восстанавливать 3D сцену. Получите необходимый математический аппарат для работы с 3D точками и перемещениямиТемы лекции:
Эпиполярная геометрия, Multiple View Geometry
Описание движения, SO(3) и SE(3) группы
Алгоритмы 5-pt и PnP
Триангуляция
Bundle Adjustment
На практике: попробуете применить алгоритмы PnP и 5-pt для нахождения перемещения камеры и построить простейшую 3D сцену

5. SLAM&SfM. Основные алгоритмы
Вы узнаете, как в реальной жизни ставятся и решаются задачи SLAM и SfM, какие трудности возникают и как работают самые популярные алгоритмыТемы лекции:
Трудности при решении задач в реальных условиях
Как работает ORB-SLAM
Как работает COLMAP
На практике: попробуете запустить ORB-SLAM и COLMAP на собственных данных

6. Глубокое обучение на облаках точек. Детекция
После того, как мы научили наш гипотетический беспилотный автомобиль захватывать 3D пространство вокруг себя, нам нужно научить его отличать деревья от дорожных знаков. На этом занятии мы разберём, как, имея облако точек, решать задачи детектирования в 3DТемы лекции:
Как решать задачу детекции в 3D
Как можно представить входные данные
Архитектуры детекции для различных представлений данных
На практике: обучите свою первую нейронную сеть для работы с детектированием 3D данных

7. Глубокое обучение на облаках точек. Сегментация
Продолжим разбираться в глубоком обучении на облаках точек, в этот раз затронем сегментациюТемы лекции:
Решение сегментации в 3D
Архитектуры нейронных сетей для работы с ними
На практике: обучите нейронную сеть для работы с сегментацией 3D данных

8. Параметрические модели людей
Лекция посвящена параметрическим моделям в общем и людей в частности. На занятии вы научитесь работать с технологией, которая позволяет анимировать реалистичные 3D модели на базе NeRFТемы лекции:
Постановку задачи и область применения
Разбор параметрических моделей на примере человека: SMPL, FLAME, SMPL-X
Получение параметрических моделей
Подстройка параметрической модели под снимок конкретного человека
На практике: научитесь получать параметрическую модель тела по снимку человека на примере своей фотографии

9. Blender как инструмент аугментации 3D данных
Зачастую, сложно получить данные в желаемом объёме и там где в 2D CV их легко можно аугментировать в 3D CV возникают проблемы. На этом занятии мы рассмотрим как изящно выйти из этой ситуации с помощью BlenderТемы лекции:
Базовые основы моделирования и текстурирования в Blender
Аугментация данных с помощью встроенного в Blender интерпретатора Python
На практике: произведёте аугментацию 3D скана человека с различным освещением и положением камеры для обучения аватара для метавёрса

10. Рендеринг: от классического до дифференцируемого
Трёхмерная графика развивалась на протяжение десятилетий пока нейронные сети делали неуверенные первые шаги. Чтобы извлечь максимум из этого развития, мы проведём занятие на стыке классической 3D графики и нейронных сетейТемы лекции:
Вспомним, как работает трёхмерный рендеринг в графике. Разберёмся как накладывается текстура
Мотивация к существованию дифференцируемого рендеринга. Решаемые задачи
Реализация пробрасывания градиентов через рендеринг
Решение наиболее популярных задач с дифференцируемым рендеренгом
На практике: научитесь работать с нейронными текстурами, завтрашним днём реалистичности в компьютерных играх, на примере Deferred Neural Rendering

11. Неявные представления (NeRF)
На этом занятии мы подробно рассмотрим, что такое NeRF и какие задачи он помогает решатьТемы лекции:
Инструменты для работы с NeRF и его обучения. Как восстанавливать 3D по меньшему числу снимков (PixelNeRF, RegNeRF)
Как работать со снимками с разным масштабом и движущимся объектом (Mip-NeRF, NeRF-W)
Как обучать NeRF за секунды и инференсить на телефонах (3D Gaussian Splatting, MobileNeRF)
На практике: разберётесь с fourier features в NeRF и восстановите геометрию с помощью SDF по видео

12. Gaussian Splatting
Несмотря на все преимущества подходов с неявной геометрией, они имеют и ряд проблем над которыми активно бьются лучшие умы в 3D CV. На этом занятии мы рассмотрим, что это за проблемы и какие решения существуют на текущий моментТемы лекции:
Предшествующие статьи и мотивация к созданию
Математика Gaussian splatting’a
Как сплаттинг объединяет явные и неявные представления
На практике: научитесь работать с инструментом Nerfstudio и обучите нейронную сеть для фотореалистичного рендеринга

13. Практические применения рендеринга
На этом занятии вы узнаете, какие ещё задачи помогает решать редерингТемы лекции:
Восстановление геометрии из Gaussian splatting'а: Sugar и 2DGS
Как можно анимировать неявные представления
Как Gaussian Splatting и NeRF применяют в Метавёрс для создания аватаров
На практике: сгенерируете анимированного аватара