Удаление слабых теней от облаков в аэрофотосъёмке и фотограмметрии

Автор: Серженко Фёдор
Tags: Аэрофотосъёмка, Фотограмметрия, Удаление теней от облаков, Aerial Clarity, CUDA, GPU

При работе с исходными данными существуют проблемы с тенями облаков на кадрах, полученных в приложениях аэрофотосъёмки и фотограмметрии. Облака отбрасывют тени на ландшафт, затемняя различные объекты и это мешает в работе. Это неизбежно, и мы часто получаем изображения с тенями, поэтому имеет смысл удалить тени, чтобы подготовить данные для картографирования и 3D-визуализации.

Каков стандартный метод удаления облачных теней при обработке изображений? Как правило, нужно создать маску и применить фильтр к определенной области кадра, например, к затенённой области. В качестве альтернативы можно выделить объекты, на которые фильтр не должен воздействовать. Это можно сделать и в разных слоях. Тем не менее, это ручной подход, который работает очень медленно и неточно. Кроме того, тени часто не имеют чётких границ, что затрудняет определение границ маски и последующее ееё плавное нанесение на изображение.

Алгоритм Aerial Clarity основан на классических идеях обработки изображений; мы не используем машинное обучение (ML) или искусственный интеллект (AI). Этот алгоритм хорошо подходит для удаления слабых теней, у которых обычно отсутствует чёткая граница. Предварительные тесты показывают, что реализация этого алгоритма с условием максимального распараллеливания на NVIDIA GeForce RTX 4090 даёт производительность порядка 5-7 ГПикс/с и более для 16-битных RGB-изображений с высоким разрешением. В настоящее время такая скорость работы принципиально невозможна для любой системы на базе искусственного интеллекта.

Важно отметить, что этот алгоритм применим только к мягким теням от облаков. Он не предназначен для подавления глубоких теней. На примеденном ниже изображении показан пример мягких теней и результат обработки.

 

удаление теней от облаков

Слева исходное изображение в формате JPG (150 мегапикселей, камера PhaseOne iXM-RS 150F)
Справа результат обработки с помощью алгоритма Aerial Clarity

Характеристики алгоритма

  • Автоматическое удаление облачных теней на аэрофотоснимках (только мягкие тени)
  • Разрешение изображения не ограничено, одна из самых больших матриц имеет 245,7 мегапикселей (IMX811 с разрешением 19200 × 12800)
  • Высокая производительность благодаря реализации параллельного алгоритма на CUDA

В отличие от подходов ИИ, которые требуют обучающих данных и часто имеют дело с обобщенными типами теней, классический подход к задачам компьютерного зрения основан исключительно на характеристиках изображений на уровне пикселей, статистике и детерминированной фильтрации.

  • Положительные моменты:
    • Программа работает очень быстро на графических процессорах NVIDIA даже при очень высоком разрешении изображений
    • Нет необходимости в сборе данных, аннотировании и обучении, нет зависимости от больших размеченных наборов данных
    • Надёжность при удалении или ослаблении мягких и рассеянных теней, которые характерны для аэрофотосъёмки и фотограмметрии
  • Недостатки:
    • Алгоритм неприменим к глубоким теням
    • Удаление теней может привести к появлению незначительных следов на изображении
    • Алгоритм менее адаптивен к сложным, изменяющимся типам теней по сравнению с методами искусственного интеллекта

Удаление теней с помощью решений на базе ИИ, хотя и является потенциально более гибким методом, часто требует тщательной подготовки и может быть затруднено при работе с новыми сценами или с другими типами теней. Для крупных проектов по аэрофотосъёмке и фотограмметрии, где скорость и надёжность имеют решающее значение, классические методы являются эффективным решением.

Возможности программного обеспечения

  • Входные/выходные форматы: 8 бит JPG или 8/16-бит TIFF
  • Управление силой подавления теней
  • Обработка одиночных кадров и/или серий изображений
  • Возможно сжатие на видеокарте по алгоритмам JPEG или JPEG2000 с очень высокой производительностью
  • OS Windows-10/11, Linux Ubuntu / L4T (Jetson Xavier/Orin)
  • Совместимость со всеми видеокартами NVIDIA GPUs (Jetson, GeForce, Quadro), CUDA-12.6

Предварительные бенчмарки для алгоритма подавления теней

  • Разрешение исходного кадра: 14204 × 10652 (150 МПикс, камера Phase One iXM-RS 150F), формат JPG
  • Условия теста: все данные находятся в памяти видеокарты, измерения времени включают только операции на видеокарте
  • Параметры для удаления теней: по умолчанию
  • Софт: Windows-11, CUDA-12.6
  • Железо: AMD Ryzen9 7950X (16 ядер, 4.5–5.7 ГГц), NVIDIA GeForce RTX 4090
  • Время обработки на цпу: 25 секунд (пока нет оптимизации)
  • Время работы на видеокарте: 20-25 мс

Форма для отправки запроса

Эта форма сохраняет вашу должность и адрес электронной почты.