Основы фотограмметрии

Автор

Денис Ухватов

Дата публикации

16 октября 2026 г.

Что такое фотограмметрия

Фотограмметрия — это способ создания 3D-моделей по серии фотографий объекта, снятых с разных ракурсов.

Нам понадобится:

  • Камера или смартфон.
  • Неподвижный объект.
  • Равномерное, рассеянное освещение.
  • Программа для фотограмметрии.
  • Мощный компьютер для создания и обработки.
Совет

Чем стабильнее условия съёмки и лучше перекрытие между кадрами, выше шанс получить качественную 3D-модель.

Правила удачной съёмки

  • Соседние фотографии должны перекрываться.
  • Объект должен быть неподвижен.
  • Освещение должно быть стабильным.
  • Фотографии должны быть резкими.
  • Избегать сильных бликов!

Этапы работы

  1. Правильная съёмка объекта.

  2. Загрузка фотографий в программу.

  3. Создание облака точек, очистка мусора.

  4. Построение геометрии и текстуры.

  5. Выгрузка модели.

  6. Работа с моделью (оптимизация, ретопология, текстурирование).

Учебный датасет

Секретик
library(tidyverse)

photo_data <- tibble(
  object = c(
    "Керамика 1",
    "Керамика 2",
    "Металл 1",
    "Металл 2",
    "Дерево 1",
    "Дерево 2",
    "Текстиль 1",
    "Текстиль 2",
    "Камень 1",
    "Камень 2",
    "Стекло 1",
    "Стекло 2"
  ),
  material = c(
    "Керамика",
    "Керамика",
    "Металл",
    "Металл",
    "Дерево",
    "Дерево",
    "Текстиль",
    "Текстиль",
    "Камень",
    "Камень",
    "Стекло",
    "Стекло"
  ),
  photos = c(
    90, 105,
    140, 130,
    80, 95,
    110, 100,
    100, 115,
    150, 145
  ),
  processing_min = c(
    35, 40,
    55, 50,
    30, 35,
    45, 40,
    40, 45,
    60, 55
  )
)

photo_data

В учебной таблице 12 объектов.

Уведомление

Данные в таблице демонстрационные и используются в качестве демонстрации.

Пример съёмки

Пример

Сравнение количества кадров разных материалов

Секретик
ggplot(photo_data, aes(x = object, y = photos, fill = material)) +
  geom_col() +
  labs(
    x = NULL,
    y = "Количество фотографий",
    title = "Пример количества фотографий для разных объектов",
    fill = "Материал"
  ) +
  theme_bw() +
  theme(
    axis.text.x = element_text(
      angle = 45,
      hjust = 1
    )
  )

Уведомление

Данные на графике демонстрационные и используются в качестве демонстрации.

Частые ошибки

Предупреждение

Сильные блики, смазанные фотографии и недостаточное перекрытие между кадрами ломают реконструкцию.

  • Слишком мало фотографий.
  • Изменение положения объекта.
  • Плохое перекрытие кадров.
  • Тёмные или пересвеченные снимки.
  • Изменение освещения во время съёмки.