Описание проблемы
В данной статье пойдет речь о том, как можно решить задачу поиска однотипных объектов на аэрофотоснимках, с целью их подсчета. Аналогичные задачи часто возникают в научной сфере при изучении проблем экологического мониторинга (например, миграция диких северных оленей). Исходный образец снимка для анализа представлен ниже.
Постановка задачи
Определить на исходном изображении I множество областей изображения, на которых находится искомый объект, а также количество данных областей.
Обозначим <img src="https://www.pvsm.ru/images/f70d5ada0b769135a17241d2b3a4f903.jpg" alt="image"/> за множество областей, за расстояние областей до искомого объекта.
Решение задачи
Обучение системы и анализ областей будет происходить согласно теории самоорганизующихся нейронных сетей Кохонена. В данном случае будет два класса (область содержит искомый объект или нет). На рис. ниже представлена схематично структура сети.
, расстояниями от входного вектора конкретной области до первого и второго класса соответственно.
Множество областей R формируется следующим образом. Исходное изображение подлежит сканированию окном определенного размера Size x Size. Стартовая позиция окна находится в точке [1, 1] изображения. Сдвиг по вертикали и горизонтали определяется параметром Shift. После этапа сканирования текущим окном, размер его увеличивается в Resize-раз.
На рис. ниже представлен пример сканирующего окна после 3-х итераций, следовательно, создано три области (красный цвет).
Длина входного вектора имеет размер n. Каждая полученная область масштабируется к размеру 50 x 50 пикселей. В таком случае, n = 2500. Каждая область является множеством пикселей P. Необходимо преобразовать исходное изображение в полутоновое с градациями серого цвета. Для этого необходимо применить функцию . Эта функция трансформирует 24-битное трехканальное цветное изображение в одноканальное 8-битное, путем вычисления средневзвешенного количества красного, зеленого и синего цветов. Математическая интерпретация данной функции преобразования яркости имеет следующий вид .
На стадии инициализации необходимо произвести нормализацию входного вектора, которая осуществляется по формуле . Расстояние от входного вектора до классов вычисляется по формуле , где — вес синапса, соединяющий i-й входной вектор и k-й нейрон.
Тогда минимальное расстояние входного вектора до нейрона-победителя вычисляется . Нейроном-победителем является u-й нейрон, у которого .
Обобщенная схема работы алгоритма представлена на рис. ниже. Как видно, прототип формируется путем обучения на множестве M примеров. Примеры образцов для обучения выбираются с возможными вариациями и отклонениями для большей адаптируемости в дальнейшем при анализе изображений.
Множество М формируется, исходя из выборок, где исходный класс присутствует на образце (positive-выборка ), а также где отсутствует (negative-выборка ). На рис. представлена небольшая часть обучающей выборки с positive- и negative- образцами.
Как видно из рисунка, в качестве positive-выборки используются графические изображения исходного класса (в данном случае, дикий северный олень) в разных трансформациях, освещенности, на разных поверхностях. Возможно применение аффинных преобразований для большей гибкости формирования выборки. Аффинное преобразование можно записать в виде .
Допускается использование следующих типов преобразований: отражение, параллельный перенос, поворот, сжатиерастяжение. Целесообразным является использование отражения, а также поворота. Например, при выполнении операции поворота на заданный угол phi, матрица R имеет вид .
Negative-выборка содержит образцы, на которых отсутствует исходный класс. Желательно, чтобы в выборке имелись образцы, на которых присутствуют множество объектов (в таком случае, система будет адаптироваться, чтобы не идентифицировать множество объектов за один).
Обучение нейронной сети Кохонена заключается в минимизации разницы между входными сигналами нейрона, поступающими от рецепторов, и весовыми коэффициентами его синапсов.
Обучение сети Кохонена происходит в 6 шагов:
- Инициализация сети. Весовым коэффициентам сети присваиваются малые случайные значения. Общее число синаптических весов – n. Возможно нормализация весовых коэффициентов
- Предъявление сети нового входного сигнала
- Вычисление расстояния до всех нейронов сети. Расчитать расстояния от входного сигнала до каждого нейрона j
- Выбор нейрона с наименьшим расстоянием
- Настройка весов нейрона u и его соседей. Производится подстройка весов для нейрона u и всех нейронов из его зоны соседства. Новые значения весов вычисляются по формуле , где r(t) — шаг обучения, уменьшающийся с течением времени (положительное число, меньше единицы)
- Прекратить обучение, если веса приняли константу, иначе перейти к шагу 2
Некоторая область из множества R может быть отнесена к искомому объекту, если выполняется два условия
- Входной вектор принадлежит к positive-классу
- , где IT (Identification threshold) – некий порог идентификации.
Анализ результатов
Исходное изображение после анализа представлено на рис. ниже, красные области показывают, где обнаружены искомые объекты. Данный метод реализован в системе Ident Smart Studio. Через палзунок можно менять IT (Identification threshold).
Можно обучать систему исходя из разных условий (погода, покров поверхности, ракурс снимка и т.п.) в отдельные схемы, чтоб при схожих снимках для анализа подавать требуемую обученную сеть.
Автор: sermal