Добро пожаловать в последний выпуск нашей продолжающейся серии блогов, в которой мы освещаем наборы данных из Зоопарка наборов данных FiftyOne! FiftyOne предоставляет зоопарк наборов данных, который содержит коллекцию общих наборов данных, которые вы можете скачать и загрузить в FiftyOne с помощью нескольких простых команд. В этом посте мы исследуем набор данных Cityscapes.

Подождите, что такое FiftyOne?

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

Зоопарк наборов данных FiftyOne содержит более 30 наборов данных, причем новые наборы данных постоянно добавляются! Они охватывают различные варианты использования компьютерного зрения, включая:

О наборе данных Cityscapes

Набор данных Cityscapes представляет собой крупномасштабный набор данных, который содержит разнообразный набор стереовидеопоследовательностей, записанных на улицах 50 различных городов, с высококачественными аннотациями на уровне пикселей из 5000 кадров в дополнение к большому набору из 20 000 слабо аннотированных кадров. На момент выпуска он был на порядок больше, чем аналогичные предыдущие попытки.

Его основной вариант использования - оценка производительности алгоритмов зрения для основных задач семантического понимания городской сцены: на уровне пикселей, на уровне экземпляров и паноптической семантической маркировке; поддержка исследований, направленных на использование больших объемов (слабо) аннотированных данных, например. для обучения глубоких нейронных сетей.

Что такое визуальное понимание сцены?

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

Выбор дизайна

Вот обзор вариантов дизайна, которые были сделаны в отношении фокуса набора данных.

Многоугольные аннотации

  • Плотная семантическая сегментация
  • Сегментация экземпляров для транспортных средств и людей

Сложность

  • 30 занятий
  • См. «Определения классов» для получения списка всех классов и ознакомьтесь с применяемой политикой маркировки.

Разнообразие

  • 50 городов
  • Несколько месяцев (весна, лето, осень)
  • Дневное время
  • Хорошие/средние погодные условия
  • Кадры, выбранные вручную
    – Большое количество динамических объектов
    – Различное расположение сцен
    – Меняющийся фон

Объем

  • 5 000 аннотированных изображений с мелкими аннотациями (примеры)
  • 20 000 аннотированных изображений с грубыми аннотациями (примеры)

Метаданные

  • Предшествующие и завершающие видеокадры. Каждое аннотированное изображение представляет собой 20-е изображение из 30-кадрового видеофрагмента (1,8 с).
  • Соответствующие правые стереоизображения
  • GPS-координаты
  • Данные эго-движения из одометрии автомобиля
  • Наружная температура от датчика автомобиля

Расширения других исследователей

  • Аннотации людей в ограничивающей рамке
  • Изображения дополнены туманом и дождем

Набор эталонных тестов и оценочный сервер

  • Семантическая маркировка на уровне пикселей
  • Семантическая маркировка на уровне экземпляра
  • Паноптическая семантическая маркировка

Политика маркировки

Помеченные объекты переднего плана никогда не должны иметь отверстий. Например, если какой-то фон виден «сквозь» какой-либо объект переднего плана, он считается частью переднего плана. Это также относится к областям, которые сильно смешаны с двумя или более классами: они помечены классом переднего плана. Вот некоторые примеры:

  • листья деревьев перед домом или небом (все дерево)
  • прозрачные автомобильные окна (все машины)

Определения классов

* Доступны аннотации одного экземпляра. Однако, если граница между такими экземплярами не может быть четко видна, вся толпа/группа помечается вместе и аннотируется как группа, например. автомобильная группа.

+ Эта этикетка не включена ни в какую оценку и считается недействительной (или, в случае номерного знака, как автомобиль, установленный на нем).

Краткие сведения о наборе данных

Шаг 1. Загрузите набор данных

Чтобы загрузить набор данных Cityscape в FiftyOne, вы должны загрузить исходные данные вручную с вашим source_dir, организованным следующим образом:

Обратите внимание, что gtFine_trainvaltest, gtCoarse и gtBbox_cityPersons_trainval являются необязательными каталогами.

Шаг 2: Установите FiftyOne

Если на вашем ноутбуке еще не установлена ​​программа FiftyOne, это займет всего несколько минут! Например, на macOS:

Узнайте больше о том, как начать работу с FiftyOne в Документах.

Шаг 3: Импорт набора данных

Теперь, когда вы загрузили набор данных и установили FiftyOne, давайте импортируем набор данных в FiftyOne и запустим Приложение FiftyOne. Это займет всего несколько минут и еще несколько строк кода.

import fiftyone as fo
import fiftyone.zoo as foz
# The path to the source files that you manually downloaded
source_dir = "/path/to/dir-with-cityscapes-files"
dataset = foz.load_zoo_dataset(
    "cityscapes",
    split="validation",
    source_dir=source_dir,
)
session = fo.launch_app(dataset)

Последняя строка фрагмента кода запустит приложение FiftyOne в браузере по умолчанию. Вы должны увидеть следующее начальное представление набора данных cityscapes-validation в приложении FiftyOne:

Совет. Если вы хотите сохранить набор данных, добавьте в исходную команду загрузки следующее:

dataset.persistent = True

Хорошо, давайте быстро изучим набор данных Cityscape!

Детали образца

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

Фильтрация по идентификатору

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

Фильтрация по ярлыку

В этом примере мы фильтруем образцы по метке gt_person, выбирая только те, у которых есть pedestrian:

В этом примере мы фильтруем образцы по метке gt_coarse:

Начните работать с набором данных Cityscapes

Теперь, когда у вас есть общее представление о том, что содержит набор данных, вы можете начать использовать FiftyOne для выполнения различных задач, включая:

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

Что дальше?

Первоначально опубликовано на https://voxel51.com 14 марта 2023 г.