Примите участие в новой эре спутникового дистанционного зондирования

Мотивация

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

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

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

Данные

Данные значения пикселя для каждого RGB-изображения 80x80 сохраняются в виде списка из 19 200 целых чисел в списке данных. Первые 6400 записей содержат значения красного канала, следующие 6400 — зеленые и т. д.

Каждое имя файла изображения соответствует определенному формату: {метка} __ {идентификатор сцены} __ {долгота} _ {широта}.png

  • метка: принимает значение 1 или 0, представляя класс «корабль» и класс «не-корабль» соответственно.
  • идентификатор сцены: какой сцене он соответствует (не только SF Bay в наборе данных).

Класс «корабль» включает 1000 изображений. Изображения в этом классе почти центрированы на корпусе одного корабля:

Класс «без доставки» включает 3000 изображений.

  • 1/3 изображения различных элементов ландшафта (река, растительность, здания, дороги и т. д.)
  • 1/3 изображений частичных кораблей, не дающих уверенности в принадлежности к 1 классу.
  • 1/3 изображений класса с неправильной маркировкой, вызванного шумом во время съемки.

Миссия

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

Вы можете найти мой полный сценарий в моем профиле Kaggle, здесь

Импортируйте данные и библиотеки:

Разработайте модель NN:

Последний слой — это функция активации Softmax.

Затем мы подгоняем модель к обучающим данным.

Свертка для поиска кораблей в SF Bay Image

Для каждого шага по осям x и y мы помещаем ядро ​​​​в качестве входных данных в нашу нейронную сеть, чтобы предсказать, принадлежит ли изображение к классу 0 или 1.

Код поиска:

ef cutting(x, y):
    area_study = np.arange(3*80*80).reshape(3, 80, 80)
    for i in range(80):
        for j in range(80):
            area_study[0][i][j] = picture_tensor[0][y+i][x+j]
            area_study[1][i][j] = picture_tensor[1][y+i][x+j]
            area_study[2][i][j] = picture_tensor[2][y+i][x+j]
    area_study = area_study.reshape([-1, 3, 80, 80])
    area_study = area_study.transpose([0,2,3,1])
    area_study = area_study / 255
    sys.stdout.write('\rX:{0} Y:{1}  '.format(x, y))
    return area_study

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

Результат

Мы можем наблюдать точность и точность модели. Наша модель смогла успешно обнаружить корабли на спутниковом изображении.

Вывод

Хотя этот проект был успешным (почти все корабли были обнаружены и локализованы лишь с несколькими ложными срабатываниями), у него есть огромный недостаток. Одной из основных целей была точность, а также скорость обнаружения. Понятно, что последняя цель не была достигнута. Действительно, алгоритму поиска требуется много времени, чтобы пройтись по каждому шагу изображения и найти лодки. Чтобы создать ценность для бизнеса и реальные приложения для спутникового мониторинга, это решение AI должно работать почти в реальном времени.

В двух словах, этот набор данных — хорошее упражнение для практики глубокого обучения на спутниковых снимках, но он не готов к обнаружению в реальном времени.

Контакт:



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