Руководство о том, где брать исходные данные и как описывать изображения для обучения
В наших двух предыдущих удивительных статьях: Как мы построили фабрику ИИ — часть 1 и Как мы построили фабрику ИИ — части 2 и 3 мы писали о том, как мы создали собственную структуру, используемую всеми командами ИИ в компании.
Чтобы понять полный цикл создания алгоритма, я объясню в этой статье две основные предпосылки:
- Где взять данные простым и автоматизированным способом?
- Как лучше описать изображения для обучения?
Каковы требования к данным для создания детекторов ИИ? — Случай с географическими данными
Глобальное разнообразие данных
Для разработки алгоритма машинного обучения, специализирующегося на географических данных, требуется большая изменчивость данных с точки зрения:
- географические зоны: погодные условия (снег, облака), городские или пустынные районы, широта и время суток (тени)…
- Размеры и формы наблюдаемых объектов для обнаружения (различные модели самолетов, гражданских, военных…)
Локализация данных
Еще одно требование состоит в том, чтобы также иметь большое разнообразие объектов в различных географических контекстах (например, самолеты на стоянках, взлетно-посадочных полосах, зонах обслуживания).
Самолет может иметь различную форму, цвет или положение, но он все равно будет принадлежать к одной и той же категории и, следовательно, должен быть отнесен к одному и тому же классу.
Наша задача: обнаруживать определенные объекты во всех географических областях по всему миру
Цель состоит в том, чтобы иметь возможность быстро настроить алгоритм для обнаружения определенного объекта во всех географических областях земного шара.
Для этого специалисту по данным необходимо иметь доступ к:
- Самая точная географическая база данных
- Разнообразие быстро выбираемых изображений: минимум от 5 000 до 10 000 изображений.
- Конкретное описание изображений, которые можно использовать в качестве обучающей или тестовой базы для групп машинного обучения (ML).
Без этих инструментов и этой расширенной базы данных было бы очень сложно, если не сказать невозможно, найти нужные изображения для построения алгоритма.
Как еще специалист по данным мог бы найти изображения, необходимые для улучшения алгоритмов, которые он работает над?
В этой статье мы берем пример построения базы спутниковых снимков, включающей самые разнородные модели самолетов по всему миру.
Эта учебная база данных будет использоваться командами машинного обучения для создания лучших в своем классе алгоритмов.
Инструменты, которые мы используем:
- Библиотеки, обычно используемые с Python: geopandas, pandas и shapely.
- База данных PostgreSQL (для их расширения PostGIS)
Первый шаг: создание географической базы данных
Где можно найти самолеты?
ПОИСК: Поиск местоположения наблюдаемых объектов может быть утомительной и трудоемкой задачей. Мы решили получить большое количество изображений, содержащих самые разные наблюдаемые объекты.
ВЫБОР: Для выбора изображений, содержащих самолеты, мы полагаемся на данные из открытых источников, например, OurAirport, OSM (OpenStreetMap) и т. д.
ИЗВЛЕЧЕНИЕ: Извлечение данных OSM было облегчено с помощью ImpOSM. Это импортер данных OpenStreetMap. Он читает файлы и импортирует данные в базу данных PostgreSQL/PostGIS.
ОБЪЕДИНЕНИЕ: Мы разработали процесс объединения данных OSINT (Open Source Intelligence) с последующим контролем качества данных, при котором мы удаляем дубликаты сайтов, ошибки ввода данных и т. д.
В результате мы создали базу данных десятков тысяч аэропортов, разбросанных по поверхности планеты. Эти сайты расположены по их широте и долготе.
Создание базы данных сайта
Однако создать такую базу данных недостаточно. С помощью данных из открытых источников мы добавили описательные метаданные для каждого аэропорта: название, гражданский или военный, действующий, размер, функция, страна, количество взлетно-посадочных полос, доступное оборудование и т. д.
С этой информацией выбор сайта будет более точным и качественным.
Используя некоторые базы данных OSINT, мы можем получить точный общий след площадки, а также конкретные подобласти, в пределах которых могут быть расположены наши наблюдаемые объекты: зона хранения самолетов, зона движения самолетов.
Рис.3У нас есть область интереса (AOI) каждого изображения! — Источник: 2022 Copyright Maxar Technologies
Последней задачей является реализация описательной базы данных всех аэропортов, распределенных по земле. Мы можем делать SQL-запросы по типу сайта (военный или гражданский), по его функции, стране происхождения и т.д.
Например, поиск Антонова Ан-124 может стать очень утомительным. Сегодня в летном состоянии находится всего 28 самолетов. С выбором базы данных: страна=Украина и Россия; военный = да ; материал = ан124
Выбрано 4 сайта, этот выбор позволяет значительно улучшить обнаружение необычных наблюдаемых.
Второй шаг: Получение спутниковых изображений
Получение качественного набора данных за минимальное время является настоящей проблемой. Подбор изображений может стать настоящей головоломкой. Проблемы многочисленны: разнообразие изображений, дублирование данных, однородное разделение между тестовой базой данных и базой данных поезда, хранение информации в базе данных, нормализация данных и т. д.
Компания Preligens совместно с основными поставщиками образов разработала автоматизированный процесс восстановления образов.
Доступ к изображениям
С увеличением количества спутников наблюдения Земли можно несколько раз в день получать несколько изображений очень высокого пространственного разрешения. В Preligens мы решили сотрудничать с лучшими компаниями по наблюдению за Землей: Airbus, Maxar и Planet. Использование этих изображений было автоматизировано с помощью нескольких API, разработанных поставщиками изображений:
- Максар: ARD API
- Airbus : API OneAtlas
- Планета : Планета API
Использование API позволяет упростить выбор изображений на основе очень точных критериев:
- Датчики
- Временная частота
- Количество изображений на область
- Угол падения
- Высота солнца
- Облачность
- ДГП
За несколько часов можно восстановить несколько тысяч изображений площадью несколько квадратных километров за последние 15 лет и со всей земли.
Этап нормализации данных
Каждый поставщик изображений использует другой формат изображения, метаданные и структуру файла. Поэтому шаг нормализации является ключевым. Единственная цель — нормализовать данные до того, как они будут использованы алгоритмами машинного обучения.
Например: формат файла, панорамирование, количество спектральных каналов или кодировка изображения.
Третий шаг: описание изображений
Введение. Зачем описывать спутниковый снимок?
Выбор правильного набора данных для обучения и тестирования — сложный процесс. Чтобы помочь инженерам ИИ эффективно выбирать свои наборы данных, мы предоставляем 2 категории информации:
- Метаданные изображения
- Описательные метаданные изображений
Метаданные изображения
Каждое спутниковое изображение имеет метаданные, предоставленные поставщиками изображений: углы обзора, высота солнца, азимут солнца, разрешение в пикселях, UUID, место съемки и т. д. Эти метаданные доступны при вызове API или в файле, связанном во время загрузки с не- стандартизированный формат (xml, json, txt и т. д.). Восстановленная информация сохраняется в базе данных.
Описывающие метаданные изображений
Автоматическое описание области интереса — простое упражнение, если вы знаете, где искать дополнительные данные.
Командам машинного обучения нужны 4 важные детали:
- Снежный покров
- Растительного покрова
- Плотность аэрозоля
- Локализация
Мы решили эту задачу, используя данные из открытых источников в глобальном масштабе:
- Земельный покров: Copernicus Global Land Cover Layers — PROBA-V (источник: Copernicus — ESA)
- Terra/Aqua Snow Cover Daily Global 500 м — MODIS (источник: НАСА)
- Служба мониторинга атмосферы Copernicus (CAMS) — (источник: ЕЦСПП)
- Уровни глобальных административных единиц (источник: ФАО)
Подробнее о восстановлении этой информации полностью рассказано в предыдущей статье: Улучшение описания спутниковых снимков с использованием данных ГИС здесь.
Четвертый шаг: маркировка данных. Без маркировки нет машинного обучения.
Построение онтологии и классификации географических объектов
Чтобы получить однородные наблюдаемые между классами, мы построили описательную онтологию наблюдаемых. Эта онтология была разработана экспертами по разведке. Например, мы описали сто однородных классов самолетов. Каждая наблюдаемая подробно описана (длина, ширина, тип, функция и т. д.).
Эти описания позволяют командам аннотаторов понять, какие наблюдаемые объекты следует классифицировать.
Гибкое внутреннее приложение для маркировки
Есть несколько десятков компаний, которые могут маркировать наблюдаемые для машинного обучения. Однако очень немногие внедрили инструменты ввода географических данных. В Preligens нам повезло работать с экспертами в области разведки. Мы разработали онтологию из нескольких сотен классов наблюдаемых. Каждый объект четко описан с помощью руководства по аннотации, описывающего: наблюдаемые, характеристики конкретных наблюдений и среду, описывающую наблюдаемые.
Более 4 лет мы внедрили гибкое и надежное внутреннее приложение, позволяющее маркировать данные, классифицировать их и настраивать проверку качества.
Проверка качества является обязательной при разработке набора данных для машинного обучения.
Мы давно решили проверить все размеченные данные несколько раз и случайным образом. Мы добавили этап автоматического обнаружения ошибок с помощью геопространственных инструментов и скриптов: ошибка регистрации, неполный полигон, невозможная классификация и т.д.
Заключение
В то время, когда машинное обучение занимает все свое место и значение в наблюдении за землей, мы отмечаем, что географические информационные системы являются одним из многих элементов, которые позволяют создавать эти алгоритмы.
Чтобы продвинуться дальше по построению фабрики ИИ, настоятельно советую прочитать эту поучительную статью: Как мы построили фабрику ИИ — Часть 1 здесь