Обработка изображений / Анализ данных аэрофотосъемки

в 2:39, , рубрики: распознавание изображений, метки:

Описание проблемы

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

Постановка задачи

Определить на исходном изображении I множество областей изображения, на которых находится искомый объект, а также количество данных областей.
Обозначим <img src="https://www.pvsm.ru/images/f70d5ada0b769135a17241d2b3a4f903.jpg" alt="image"/> за множество областей, image за расстояние областей до искомого объекта.

Решение задачи

Обучение системы и анализ областей будет происходить согласно теории самоорганизующихся нейронных сетей Кохонена. В данном случае будет два класса (область содержит искомый объект или нет). На рис. ниже представлена схематично структура сети.
image

image, image расстояниями от входного вектора image конкретной области до первого и второго класса соответственно.

Множество областей R формируется следующим образом. Исходное изображение подлежит сканированию окном определенного размера Size x Size. Стартовая позиция окна находится в точке [1, 1] изображения. Сдвиг по вертикали и горизонтали определяется параметром Shift. После этапа сканирования текущим окном, размер его увеличивается в Resize-раз.
На рис. ниже представлен пример сканирующего окна после 3-х итераций, следовательно, создано три области (красный цвет).
image

Длина входного вектора имеет размер n. Каждая полученная область масштабируется к размеру 50 x 50 пикселей. В таком случае, n = 2500. Каждая область является множеством пикселей P. Необходимо преобразовать исходное изображение в полутоновое image с градациями серого цвета. Для этого необходимо применить функцию image. Эта функция трансформирует 24-битное трехканальное цветное изображение в одноканальное 8-битное, путем вычисления средневзвешенного количества красного, зеленого и синего цветов. Математическая интерпретация данной функции преобразования яркости имеет следующий вид image.

На стадии инициализации необходимо произвести нормализацию входного вектора, которая осуществляется по формуле image. Расстояние от входного вектора до классов вычисляется по формуле image, где image — вес синапса, соединяющий i-й входной вектор и k-й нейрон.
Тогда минимальное расстояние входного вектора до нейрона-победителя вычисляется image. Нейроном-победителем является u-й нейрон, у которого image.

Обобщенная схема работы алгоритма представлена на рис. ниже. Как видно, прототип формируется путем обучения на множестве M примеров. Примеры образцов для обучения выбираются с возможными вариациями и отклонениями для большей адаптируемости в дальнейшем при анализе изображений.
image

Множество М формируется, исходя из выборок, где исходный класс присутствует на образце (positive-выборка image), а также где отсутствует (negative-выборка image). На рис. представлена небольшая часть обучающей выборки с positive- и negative- образцами.
image

Как видно из рисунка, в качестве positive-выборки используются графические изображения исходного класса (в данном случае, дикий северный олень) в разных трансформациях, освещенности, на разных поверхностях. Возможно применение аффинных преобразований для большей гибкости формирования выборки. Аффинное преобразование можно записать в виде image.
Допускается использование следующих типов преобразований: отражение, параллельный перенос, поворот, сжатиерастяжение. Целесообразным является использование отражения, а также поворота. Например, при выполнении операции поворота на заданный угол phi, матрица R имеет вид image.
Negative-выборка содержит образцы, на которых отсутствует исходный класс. Желательно, чтобы в выборке имелись образцы, на которых присутствуют множество объектов (в таком случае, система будет адаптироваться, чтобы не идентифицировать множество объектов за один).

Обучение нейронной сети Кохонена заключается в минимизации разницы между входными сигналами нейрона, поступающими от рецепторов, и весовыми коэффициентами его синапсов.
Обучение сети Кохонена происходит в 6 шагов:

  1. Инициализация сети. Весовым коэффициентам сети присваиваются малые случайные значения. Общее число синаптических весов – n. Возможно нормализация весовых коэффициентов
  2. Предъявление сети нового входного сигнала
  3. Вычисление расстояния до всех нейронов сети. Расчитать расстояния image от входного сигнала до каждого нейрона j
  4. Выбор нейрона с наименьшим расстоянием
  5. Настройка весов нейрона u и его соседей. Производится подстройка весов для нейрона u и всех нейронов из его зоны соседства. Новые значения весов вычисляются по формуле image, где r(t) — шаг обучения, уменьшающийся с течением времени (положительное число, меньше единицы)
  6. Прекратить обучение, если веса приняли константу, иначе перейти к шагу 2

Некоторая область из множества R может быть отнесена к искомому объекту, если выполняется два условия

  1. Входной вектор принадлежит к positive-классу
  2. image, где IT (Identification threshold) – некий порог идентификации.

Анализ результатов

Исходное изображение после анализа представлено на рис. ниже, красные области показывают, где обнаружены искомые объекты. Данный метод реализован в системе Ident Smart Studio. Через палзунок можно менять IT (Identification threshold).
image

Можно обучать систему исходя из разных условий (погода, покров поверхности, ракурс снимка и т.п.) в отдельные схемы, чтоб при схожих снимках для анализа подавать требуемую обученную сеть.

Автор: sermal


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js