Фотограмметрический 3D-сканер, собранный своими руками, часто даёт на выходе «рваную» модель с дырками и плавающей геометрией — и в большинстве случаев виновата не камера, а недостаточное перекрытие кадров и неравномерное освещение объекта. Прежде чем покупать поворотный стол или менять объектив, проверьте базовое: каждый кадр должен перекрываться с соседним минимум на две трети, а на поверхности объекта не должно быть бликов и глубоких теней.
Метод фотограмметрии строит трёхмерную модель из набора обычных фотографий, снятых с разных ракурсов. Программа находит общие точки на снимках, вычисляет положение камеры для каждого кадра и восстанавливает геометрию объекта в виде облака точек, которое затем превращается в полигональную сетку. В отличие от лазерных и структурированных сканеров, здесь не нужно специального излучателя — вся «магия» происходит на этапе обработки, поэтому качество исходных снимков критично.
Принцип работы фотограмметрического сканера
Суть метода — триангуляция по совпадающим признакам. Алгоритм ищет на фотографиях характерные точки: углы текстур, перепады контраста, мелкие детали поверхности. Если одна и та же точка видна минимум на двух снимках с известным взаимным положением камер, её координаты в пространстве вычисляются геометрически.
Отсюда следуют два практических вывода. Во-первых, однородные глянцевые и прозрачные поверхности сканируются плохо: на них почти нет устойчивых признаков. Во-вторых, объект должен быть неподвижен относительно фона на протяжении всей серии кадров — либо неподвижен сам объект при движении камеры, либо вращается стол при фиксированной камере, но фон при этом должен быть «нейтральным» и не давать ложных совпадений.
Фотограмметрия не «видит» объект — она сопоставляет текстурные признаки на фото. Нет признаков — нет геометрии, поэтому глянец и однотонный пластик требуют матирующего покрытия.
Что понадобится для сборки
Базовый набор для домашнего фотограмметрического сканера удивительно скромен. Главный элемент — камера, причём подойдёт и смартфон с хорошей матрицей, хотя беззеркалка или зеркальный фотоаппарат с ручными настройками дадут более предсказуемый результат.
- 📷 Камера или смартфон с возможностью фиксации экспозиции и фокуса (автофокус «плавающий» между кадрами ухудшает выравнивание)
- 🔄 Поворотный стол — от самодельного на подшипнике до моторизованного с шаговым двигателем и контроллером
- 💡 Два-три источника рассеянного света — лампы с рассеивателями или софтбоксы, без жёстких теней
- 🎨 Матирующее средство для блестящих объектов: тальк, специальный скан-спрей или сухой шампунь
- 🖥️ Компьютер для обработки — чем больше оперативной памяти и мощнее видеокарта, тем быстрее пойдёт расчёт
- 📏 Калибровочные метки или масштабная линейка для задания реального размера модели
Штатив тоже не помешает: если вы снимаете с рук, дрожание и неровные интервалы между ракурсами усложняют автоматическое выравнивание. Для мелких объектов удобнее схема «неподвижная камера + вращающийся стол», для крупных — обход объекта по кругу с камерой в руках.
Сборка поворотного стола своими руками
Простейший вариант — ленивый подставной диск (lazy Susan) с нанесённой разметкой углов. Вы поворачиваете стол на фиксированный угол, делаете кадр, поворачиваете снова. Точности такой разметки достаточно, потому что программе не нужны точные углы — ей нужны перекрывающиеся ракурсы.
Более продвинутая версия — моторизованный стол на шаговом двигателе (например, распространённый NEMA 17) с драйвером и платой типа Arduino. Прошивка задаёт шаг поворота и паузу на снятие кадра; синхронизацию со спуском затвора можно сделать через ИК-пульт для камеры или тросик. Конкретная схема подключения зависит от выбранного драйвера и контроллера, поэтому сверяйтесь с документацией именно ваших компонентов.
☑️ Проверка стола перед съёмкой
⚠️ Внимание: если стол имеет даже небольшой люфт, объект будет «плыть» между кадрами, и на этапе выравнивания появятся дубли поверхностей — характерные двойные контуры на модели. Устраняйте люфт до начала съёмки, а не пытайтесь исправить это в постобработке.
Настройка съёмки: свет, фокус, перекрытие
Свет решает больше, чем камера. Нужно мягкое равномерное освещение со всех сторон: жёсткая тень, перемещающаяся вместе с объектом при вращении стола, воспринимается алгоритмом как часть геометрии. Идеальны пасмурный день у окна или две лампы с рассеивателями под углом примерно 45 градусов к объекту.
Настройки камеры фиксируйте вручную: одинаковые выдержка, диафрагма, ISO и баланс белого для всей серии. Диафрагму стоит прикрыть, чтобы глубина резкости покрывала весь объект — размытые участки кадра не дают устойчивых признаков. Фокус тоже заблокируйте после наводки на первый кадр.
Сколько кадров делать? Универсального числа нет — оно зависит от сложности объекта. Ориентир простой: каждая точка поверхности должна попасть минимум в три разных кадра. Для простых форм хватает одного круга с шагом 10–15 градусов, для объектов с углублениями добавьте второй и третий круг с другой высоты камеры.
Программы для обработки фотограмметрии
Выбор софта определяет и качество результата, и требования к железу. Есть бесплатные решения с открытым кодом и коммерческие пакеты; точные системные требования и набор функций зависят от версии, поэтому проверяйте актуальные данные на сайтах разработчиков.
| Программа | Лицензия | Особенности |
|---|---|---|
| Meshroom | Бесплатная, open source | Построена на AliceVision, нужна видеокарта NVIDIA с CUDA для полного пайплайна |
| COLMAP | Бесплатная, open source | Гибкий инструмент, требует больше ручной настройки |
| 3DF Zephyr Free | Бесплатная с ограничением по числу фото | Дружелюбный интерфейс, подходит новичкам |
| RealityCapture | Условия зависят от тарифа разработчика | Высокая скорость обработки больших наборов |
| Agisoft Metashape | Коммерческая | Отраслевой стандарт, есть пробный период |
Общий пайплайн везде одинаков: загрузка фото → выравнивание (поиск камер и разреженное облако) → построение плотного облака → генерация полигональной сетки → текстурирование. На этапе выравнивания сразу видно, «сошлась» ли съёмка: если часть камер не привязалась, значит, между ракурсами недостаточно перекрытия.
Снимайте в RAW, если камера позволяет: при конвертации можно вытянуть тени и приглушить пересветы без потери деталей, что заметно улучшает поиск признаков на тёмных и глянцевых участках.
Типичные ошибки и их устранение
Самая частая жалоба — модель получилась «половинчатой»: верх и бока есть, а низ и углубления отсутствуют. Причина почти всегда в том, что съёмка велась одним кольцом кадров на одной высоте. Решение — добавить проходы сверху под углом и, если возможно, перевернуть объект и снять вторую серию, а затем объединить облака по общим точкам.
Вторая типичная проблема — «шумная» поверхность на ровных участках. Возможные причины: дрожание камеры, слишком высокое ISO, слабый свет. Проверьте исходники на стопроцентном увеличении: если мелкая текстура смазана, переснимите серию со штатива и с более длинной выдержкой при неподвижном объекте.
⚠️ Внимание: матирующие покрытия вроде талька или скан-спрея наносите тончайшим слоем. Толстый слой искажает реальную геометрию — вы отсканируете покрытие, а не объект. Для ценных или пористых предметов сначала проверьте, отмывается ли состав, на незаметном участке.
Как сканировать прозрачные и зеркальные объекты
Полностью прозрачный объект фотограмметрия напрямую не возьмёт — свет проходит сквозь него, и признаков на поверхности нет. Рабочие обходные пути: матирование поверхности смываемым спреем, сканирование в контейнере с тонированной жидкостью (экзотика с непредсказуемым результатом) или построение модели по силуэту. Чаще всего практичный ответ — равномерный матирующий слой.
Постобработка и подготовка модели к 3D-печати
Сырая сетка из фотограмметрии редко готова к печати: в ней есть дыры, лишняя геометрия фона и неманифолдные рёбра. Базовая чистка делается в бесплатных редакторах — MeshLab или Blender: удаление лишних фрагментов, закрытие отверстий, упрощение сетки до разумного числа полигонов.
Далее модель нужно масштабировать до реальных размеров — для этого на этапе съёмки рядом с объектом кладут линейку или объект с известным размером. После масштабирования проверьте сетку на водонепроницаемость (manifold) в слайсере или редакторе: большинство слайсеров подсвечивают проблемные участки автоматически.
Пайплайн «фото → облако → сетка → чистка → масштаб → печать» одинаков для любого софта. Осваивайте его на простом объекте с выраженной текстурой — например, на камне или статуэтке с матовой поверхностью.
FAQ: частые вопросы о фотограмметрии своими руками
Можно ли обойтись только смартфоном без фотоаппарата?
Да, современный смартфон вполне подходит для начала. Главное — зафиксировать фокус и экспозицию, для чего используйте приложения с ручным (Pro/Manual) режимом камеры. Результат будет хуже, чем с камерой с крупной матрицей, в первую очередь при слабом освещении.
Сколько фотографий нужно для одного объекта?
Точного числа нет — оно зависит от размера и сложности формы. Ориентируйтесь на правило перекрытия: соседние кадры должны совпадать на две трети, а каждая точка поверхности — попадать минимум в три снимка. Для небольшого простого объекта это обычно один-два круга съёмки, для сложного — несколько проходов с разных высот.
Почему программа не выравнивает часть фотографий?
Возможные причины: недостаточное перекрытие между ракурсами, смазанные или слишком тёмные кадры, однородная поверхность без признаков, изменившееся освещение в середине серии. Проверьте проблемные снимки глазами — если на них нет чёткой текстуры, переснимите серию.
Чем матировать блестящий объект?
Используют тальк, сухой шампунь, меловую пудру или специальные исчезающие спреи для 3D-сканирования. Наносите минимально возможный слой и заранее убедитесь, что состав безопасен для материала объекта и смывается без следов.
Подходит ли фотограмметрия для точных технических деталей?
Для деталей, где важны точные размеры и допуски, фотограмметрия — не лучший выбор: метод даёт визуально правдоподобную модель, но точность зависит от множества факторов и не гарантируется. Для обратного инжиниринга точных деталей корректнее использовать контактные измерения или промышленные сканеры, а фотограмметрию — как источник референсной формы.