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

Современные проекты компьютерного зрения в эпоху глубокого обучения всегда начинаются с одного и того же. МНОГО ДАННЫХ! Практически для любой задачи вы можете найти бесчисленное количество моделей с открытым исходным кодом, готовых для обучения. Единственное, что вам нужно для вашей конкретной задачи, — это достаточно большой размеченный набор данных.

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

Следите за новостями в Colab

Вы можете следить за примерами в этом посте прямо в своем браузере через эту записную книжку Google Colab!

Настраивать

Для начала нужно установить FiftyOne и Labelbox.

pip install fiftyone labelbox

Вам также необходимо настроить Учетную запись Labelbox. FiftyOne поддерживает как стандартные облачные учетные записи Labelbox, так и корпоративные локальные решения Labelbox.

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

export FIFTYONE_LABELBOX_API_KEY=...

В качестве альтернативы, для более постоянного решения, вы можете сохранить свои учетные данные в конфигурации аннотаций FiftyOne, расположенной по адресу ~/.fiftyone/annotation_config.json:

{
    "backends": {
        "labelbox": {
            "api_key": ...,
        }
    }
}

Необработанные данные

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

Другой метод заключается в использовании общедоступных наборов данных, которые могут быть актуальными. Например, набор данных Open Images содержит миллионы изображений, доступных для общего пользования, и к ним можно получить доступ напрямую через FiftyOne Dataset Zoo.

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

FiftyOne предлагает разнообразие методов, которые могут помочь вам понять качество набора данных и выбрать лучшие образцы для аннотирования. Например, метод compute_similarity() можно использовать для поиска как наиболее похожих, так и самых уникальных образцов, гарантируя, что ваш набор данных будет содержать равномерное распределение данных.

Теперь нужно выбрать только тот фрагмент нашего набора данных, который содержит 10 самых уникальных образцов.

Аннотация

Интеграция между FiftyOne и Labelbox позволяет вам начать аннотировать ваши изображения или видеоданные, вызвав единственный метод!

Затем аннотации можно загрузить обратно в FiftyOne еще одной строкой.

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

Следующие шаги

Теперь, когда у вас есть размеченный набор данных, вы можете приступить к обучению модели. FiftyOne позволяет вам экспортировать ваши данные на диск в различных форматах (например, COCO, YOLO и т. д.), ожидаемых большинством конвейеров обучения. Он также предоставляет рабочие процессы для использования популярных библиотек обучения моделей, таких как PyTorch, PyTorch Lightning Flash и Tensorflow.

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

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

В этом образце, по-видимому, отсутствует наземная аннотация лыж. Давайте пометим его в FiftyOne и отправим в Labelbox для повторной аннотации.

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

Дополнительные утилиты

Вы можете выполнять дополнительные операции, специфичные для Labelbox, чтобы отслеживать ход выполнения проекта аннотации, инициированного посредством этой интеграции с FiftyOne.

Например, вы можете просмотреть статус существующего проекта:

Project: FiftyOne_quickstart
        ID: cktixtv70e8zm0yba501v0ltz
        Created at: 2021-09-13 17:46:21+00:00
        Updated at: 2021-09-13 17:46:24+00:00
        Members:

                User: user1
                    Role: Admin
                    ID: ckl137jfiss1c07320dacd81l
                    Nickname: user1
                    Email: [email protected]

                User: user2
                    Role: Labeler
                    Name: FIRSTNAME LASTNAME
                    ID: ckl137jfiss1c07320dacd82y
                    Email: [email protected]

        Reviews:
                Positive: 2
                Zero: 0
                Negative: 1

Вы также можете удалить проекты, связанные с запуском аннотации напрямую через FiftyOne API.

Краткое содержание

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