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

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

Одним из первых наборов видеоданных для распознавания действий человека, еще до того, как началось глубокое обучение, был набор данных KTH от 2004 года. С тех пор наборы данных для распознавания действий прошли долгий путь, некоторые из них были сосредоточены на клипах из голливудских фильмов, а другие упор на спорт.

В 2017 году DeepMind выпустила один из крупнейших и наиболее эффективных наборов данных для распознавания действий человека — Кинетика. На момент написания этого поста было выпущено четыре версии набора данных Kinetics: 400, 600, 700 и 700–2020. Номер версии указывает количество классов действий. Кроме того, в каждой версии добавляются новые видео, заменяющие те, которые со временем были удалены с YouTube.

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

Настраивать

Для запуска примеров в этом посте нужно установить FiftyOne:

pip install fiftyone

Вам также потребуется установить Pytube, который используется FiftyOne для загрузки видео с YouTube:

pip install pytube

Загрузка кинетики

До недавнего времени единственным способом доступа к набору данных Kinetics была загрузка каждого видео непосредственно из их источников на YouTube. Это привело к множеству проблем, включая удаление видео, ограничение загрузки YouTube и неэффективность обрезки видео.

Common Visual Data Foundation (CVDF) сотрудничал с сопровождающими наборов данных Kinetics, чтобы разместить все версии набора данных на AWS для загрузки широкой публикой. Следует отметить, что версия, размещенная на CVDF, включает не все образцы, присутствующие в исходном наборе данных, а только те, которые были доступны на YouTube на момент создания версии CVDF.

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

Именно здесь вступает в действие интеграция Kinetics в FiftyOne Dataset Zoo. С помощью всего одной строки кода Python теперь вы можете указать версию, разбиение и классы, которые вы хотите, а затем визуализировать их в FiftyOne App. » с еще одной строкой кода.

Обучение и оценка модели

После загрузки Kinetics вы можете начать использовать его для обучения моделей распознавания действий. Поскольку набор данных уже находится в FiftyOne, можно легко использовать такие библиотеки, как PyTorch или PyTorch Lightning Flash, для обучения модели непосредственно на наборе данных.

pip install lightning-flash lightning-flash[video] torchvision pytorchvideo

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

Результаты оценки можно использовать для таких вещей, как построение матриц путаницы и кривых точности-отзыва.

pip install ipywidgets

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

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

Ниже показан один из лучших примеров в этом оценочном представлении высоконадежных, но неверно предсказанных выборок.

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

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

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

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