Нейросети реконструируют трёхмерную структуру объектов, комбинируя алгоритмы компьютерного зрения и архитектуры глубокого обучения. Ключевые технологии — свёрточные нейронные сети (CNN) и методы стереозрения.
1. Свёрточные нейронные сети (CNN): извлечение признаков из 2D‑изображений
CNN анализируют плоские снимки, но способны выделять признаки, косвенно указывающие на 3D‑форму:
- Текстурные градиенты. Изменение плотности и размера текстур сигнализирует о глубине (например, плитка на полу кажется мельче вдали).
- Тени и светотеневые переходы. По направлению и интенсивности теней сеть учится оценивать ориентацию поверхностей и положение источника света.
- Перспективные искажения. Сходящиеся линии (например, рельсы) указывают на удалённость.
- Частичная окклюзия. Если объект перекрывает другой, сеть делает вывод о его близости.
- Форма контуров и кривизны. Изогнутые края и эллиптические проекции подсказывают объём.
Как это работает в CNN:
- Свёрточные слои выявляют локальные признаки (края, углы, узоры).
- Пулинговые слои уменьшают разрешение, сохраняя пространственные отношения.
- Полносвязные слои интегрируют признаки и предсказывают 3D‑параметры (углы поворота, глубину, масштаб).
2. Стереозрение: восстановление глубины по двум изображениям
Стереозрение имитирует бинокулярное зрение человека: две камеры (или два кадра с движущейся камеры) снимают сцену с немного разных позиций. Разница в положении точек на изображениях — диспаратность — позволяет вычислить расстояние.
Этапы стереозрения:
- Калибровка камер. Определение внутренних (фокус, искажения) и взаимного положения камер.
- Поиск соответствий. Для каждой точки на левом изображении находят аналогичную на правом (используют признаки, корреляцию окон, дескрипторы вроде SIFT/ORB).
- Расчёт диспаратности. Горизонтальное смещение точки между изображениями обратно пропорционально глубине:D=Zf⋅B,где D — диспаратность, f — фокусное расстояние, B — база (расстояние между камерами), Z — глубина.
- Построение карты глубины. Каждой точке присваивается значение Z, формируя полутоновое изображение, где яркость кодирует расстояние.
Нейросети в стереозрении:
- PSMNet, GwcNet — CNN, которые напрямую предсказывают карту глубины по паре стереоизображений, минуя явный поиск соответствий.
- End‑to‑end обучение на размеченных датасетах (KITTI, CityScapes) позволяет сети «увидеть» глубину без ручной настройки эпиполярных линий.
3. Монокулярная оценка глубины
Когда доступна лишь одна камера, нейросети используют монокулярные подсказки и обученные модели:
- Предсказание по одному кадру. Сети (например, MiDaS, DenseNet) учатся сопоставлять 2D‑признаки с глубиной на больших датасетах.
- Семантическая сегментация + априорные знания. Если сеть распознаёт «автомобиль» или «дерево», она «знает» их типичный размер и может оценить расстояние.
- Движение камеры (Structure from Motion, SfM). По серии кадров с перемещением камеры нейросеть восстанавливает 3D‑структуру и траекторию (применяется в SLAM‑системах).
4. 3D‑реконструкция: от карт глубины к облакам точек и сеткам
Получив карту глубины, нейросеть может:
- Сгенерировать облако точек (x,y,z) для каждой пиксельной координаты.
- Построить полигональную сетку (mesh) методами Poisson Surface Reconstruction или через нейронные поля (NeRF).
- Использовать воксельные представления. Объём разбивается на кубики (воксели), и сеть предсказывает, занят ли каждый воксел объектом.
Современные подходы:
- NeRF (Neural Radiance Fields). Сеть кодирует 3D‑сцену как непрерывное поле лучевого излучения; по 2D‑кадрам она синтезирует новые виды и восстанавливает геометрию.
- PointNet, PointNet++. Обрабатывают облака точек напрямую, выявляя 3D‑формы без проекций.
- 3D‑CNN. Анализируют воксельные данные, распознавая объёмные паттерны.
5. Обучение и датасеты
Для обучения сетей нужны:
- Размеченные 3D‑данные. Датасеты с картами глубины, облаками точек, CAD‑моделями (ScanNet, ShapeNet, KITTI).
- Синтетические рендеры. Генерация 3D‑сцен с известными параметрами для предварительного обучения.
- Алгоритмы аугментации. Поворот, масштабирование, изменение освещения для увеличения разнообразия обучающих примеров.
6. Ограничения и вызовы
- Однородные текстуры и отсутствие признаков. Гладкие стены или небо затрудняют поиск соответствий.
- Блики и прозрачность. Стекло, вода, зеркальные поверхности нарушают стереосоответствия.
- Малотекстурные области. Белые стены или однотонные поверхности дают мало информации для оценки глубины.
- Вычислительная сложность. Точная 3D‑реконструкция требует мощных GPU и больших датасетов.
- Обобщение на новые сцены. Сети могут плохо работать вне домена обучающих данных.
Вывод
Нейросети «видят» 3D‑объекты через:
- CNN — извлекают 2D‑признаки, намекающие на глубину.
- Стереозрение — вычисляют глубину по парам изображений.
- Монокулярные методы — используют семантику и движение камеры.
- 3D‑архитектуры — строят облака точек, сетки и воксельные модели.
Сочетание этих подходов позволяет машинам реконструировать трёхмерный мир из плоских изображений, открывая пути для робототехники, AR/VR, автономного вождения и 3D‑моделирования.