Привет, хабристы. В этой короткой заметке мы хотим рассказать о нашем опыте участия в конкурсе по компьютерному зрению - VOT Challenge 2023, посвященном трекингу объектов на видео. Порефлексируем об ошибках, которые мы допустили и зачем вообще участвовать в этих конкурсах. Это вольный перевод нашей заметки на ACM, если Вам понравится, сходите и на оригинал. Нам будет приятно.

Преамбула

В настоящее время методы машинного обучения переживают взрывное развитие.
Постоянно появляются новые идеи и решения, которые во многих областях уже перевернули правила игры и стали лучше человека. Например, графические нейронные сети если еще и не заменили художников, то, как минимум, забрали на себя часть их рутинной работы, особенно в индустрии создания компьютерных игр. ChatGPT угрожает копирайтерам и еще множеству профессий от юристов до учителей. Значительное влияние на бурный рост области машинного обучения оказывают различные соревнования, которые проводятся в разных областях. Часто победа в соревновании, это возможность получить весомый денежный приз, но не редко они бесплатные. Обычно для команды участие в таких соревнованиях – это просто возможность получить новые знания, показать себя и получить доступ к хорошему датасету в какой-либо области.

Где найти соревнования по машинному обучению?

Все знают про соревнования на мульти-тематической платформе kaggle.com. Но это не единственная платформа. Навскидку можно привести еще: trustii.io, codalab, bitgrit.net, eval.ai. При том, ряд платформ даже имеют свою специализацию. Так, aicrowd.com и drivendata.org – позиционируют себя как соревнования с социальной пользой, xeek.ai – посвящена geoscience, miccai.org – анализ медицинских изображений, CrunchDAO.com – финансовый рынок, zindi.africa – соревнования, связанные с африканским континентом. Некоторые соревнования проходят в рамках научных конференций, как, например, NeurIPS (nips.cc). Существуют даже сайты, вроде mlcontests.com, на которых собраны наиболее интересные соревнования на разных платформах. Из русских платформ популярность набирают all cups, ods.ai, codenrock.

Обзор VOT Challenge

В этом материале мы хотим рассказать об одном не очень известном, но тоже интересном ML соревновании. Ели вы занимаетесь исследованиями в области компьютерного зрения, то вероятно сталкивались с VOTXXXX Benchmarks. Это результаты The Visual Object Tracking Challenge (VOT Challenge). Этот челендж проходит весной-летом и посвящен разработке алгоритмов трекинга объектов на видео. Он хорош тем, что участникам предоставляется универсальный фреймворк для оценки и сравнения алгоритмов трекинга. А еще там всегда предоставляются неплохие аннотированные датасеты с видео для задач трекинга. Также есть готовая библиотека и заготовки тестовых примеров, адаптированных под Python и Matlab. Имеется довольно подробная документация, в открытом доступе также находятся примеры трекеров с предыдущих соревнований. Сами организаторы активно общаются с комьюнити через форум и рассылки, и вообще там, как правило, довольно ламповая атмосфера и дружественное комьюнити. Правда челлендж ориентирован на энтузиастов: нет призового фонда, кроме возможности стать соавтором или быть упомянутым в ежегодной публикации по результатам соревнования. Это тоже довольно важно, особенно если вы из академической среды.

История соревнования

Пара слов про историю соревнования и его фишки.

2013 год: Идеей соревнования послужило отсутствие устоявшегося подхода к оценке визуальных трекеров. Организаторы предложили свою методику и для этого создали небольшой аннотированный датасет и тулкит с методами оценки. Обкатку тулкита провели в рамках соревнования на конференции ICCV2013.

2014 год: Тулкит получил протокол TraX, что дало больше свободы разработчикам для интеграции и быстрого тестирования трекеров. Датасет был расширен.

2015-2019 года: Челендж развивался, организаторы предлагали новые методики оценки трекеров, улучшали методику аннотирования, появились новые суб-челенджи, в том числе посвященные long-term tracking и multi-modal последовательностям. Продолжали развиваться датасеты, среди которых появились датасеты на основе тепловых изображений и RGB+depth изображений.

2020-2021 года: Тулкит был наконец-то реализован на Python, что открыло возможность для участия новых команд. Также организаторы занимались усложнением датасетов.

2022 год: VOT challenge был особенно интересным, потому что состоял из большого количества специализированных суб-челенджей. Упор был сделан на различные вариации short-term трекеров и один long-term. Появилась задача локализации с помощью segmentation mask, а не только bounding box. Т.е. можно было выбрать задачку под себя и пробиться в лидеры.

Vot Challenge 2023

В этом году организаторы резко поменяли правила игры, что сказалось на результатах многих участников. На конкурс предложили только одну задачу, которая, по сути, охватывает все подзадачи, которые были ранее – необходимо было предсказывать long-term треки на RGB видео для произвольно заданных объектов. Объект был помечен маской только на первом кадре из видео.

Датасет также был полностью обновлен. В наборе для валидации были доступны с полной разметкой 4 видео и 9 объектов для отслеживания. А в тестовом наборе содержалось 144 видео и суммарно более 200 тысяч кадров. Видео достаточно разнообразные и отличались следующими особенностями:

  1. Разное разрешение от 180х320 до 1920х1080. Из них 94 видео с разрешением 1280х720.

  2. Несколько объектов для отслеживания на видео: от 1 до 8.

  3. Очень много длинных видео. Среднее количество фреймов на одно видео: 2073, максимальное количество кадров: 10699 (это более 7 минут).

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

  5. Много динамичных сцен с активным движением камеры.

  6. Очень часто есть сценарии, когда объект надолго пропадает из объектива и спустя какое-то время появляется вновь.

  7. Есть несколько видео с очень маленьким объектом для отслеживания.

  8. Судя по валидационным видео, ground truth маски не очень точно описывают объект отслеживания.

Пример первых кадров на 4 валидационных видео с одним из объектов для трекинга (искомый объект отмечен фиолетовым):

В качестве метрики, организаторы предложили использовать специализированную метрику, которая сильно отличается от общепринятых метрик. Она называется Quality и является основой для расчета LeaderBoard. Есть еще несколько дополнительных метрик: accuracy, robustness и т.д. Организаторы челенджа подробно описали метрики в статье.

Наше решение

Мы следим за этим челенджем уже давно. Но он проходит в самое «горячее» для преподавателей время сессии в университете. Поэтому получалось поучаствовать не каждый год. Тем не менее, удачные кейсы и задачи с соревнования очень удобно потом разбирать и использовать для обучения студентов, вплоть до проведения локальных соревнований среди них.

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

Мы взяли новую сеть от Facebook “Segment Anything” - для умной сегментации исходного изображения на части. После получения разбиения для сравнения с исходным объектом для трекинга мы использовали нейронную сеть Open CLIP . Эта сеть хорошо показала себя в конкурсе Google Universal Image Embedding на площадке Kaggle без дообучения. Open CLIP позволяет получить Emebedding для каждой части сегментированного изображения и Emebedding для искомых объектов. Далее, найдя попарно косинусное расстояние между частями изображения, мы выбираем объект с максимальной метрикой и выбираем его как часть трека.

Дополнительно мы проверили другую сеть Dinov2, которая тоже должна давать хорошие Embedding для сравнения объектов. Результат получился похожим на OpenCLIP, но немного хуже.

Все желающие могут посмотреть наше решение по ссылке: https://github.com/ZFTurbo/VOTS2023-Challenge-Tracker

Результаты

В коде от организаторов есть возможность померить метрики локально для валидационных видео. Для проверки метрик тестовых видео результат по ним нужно было загрузить на сервер.

Результаты на валидационных данных

Tracker

Quality

Accuracy

Robustness

NRE

DRE

ADQ

SegmentAnything and CLIP

0.332

0.671

0.510

0.002

0.488

0.000

SegmentAnything and Dinov2

0.326

0.663

0.520

0.002

0.478

0.000

Результаты на тестовых данных

Tracker

Quality

Accuracy

Robustness

NRE

DRE

ADQ

SegmentAnything and CLIP

0.25

0.66

0.37

0.01

0.62

0.00

Что мы не сделали

Главная идея нашего трекера в том, что наше решение является Zero-shot предиктором, поскольку мы используем нейронные сети, не обученные для задачи трекинга. Таким образом, мы сэкономили время и дорогие вычислительные ресурсы на обучение трекера. Это особенно важно при наличии очень серьезных ограничений на используемые датасеты, которые были заявлены организаторами.

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

1) В случае наличия очень похожих объектов на изображении мы будем скакать между ними.

2) В случае, если объект ушел из поля зрения, мы все равно выбираем случайный объект.

Для значительного улучшения результатов нашего трекера требуется дополнительная нейронная сеть на базе рекуррентных LSTM слоев. На вход ей будут поступать данные с N предыдущих кадров (embedding, x, y, area). А для текущего кадра для каждого объекта подаются Embedding, x, y, area. Если объект является продолжением трека, то для него target=1, если не является то target=0. То есть нейронная сеть предсказывает является ли заданный объект элементом трека. В случае если все объекты имеют низкую вероятность, это означает что объект вышел за пределы экрана.

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

Анализ ошибок

По опыту предыдущих соревнований, мы исходили из постулата, что задача состоит в том, чтобы наиболее точно отметить отслеживаемый объект. Мы посчитали, что пропадание из видимости – краткосрочное, и им можно пренебречь. Это оказалось серьезной ошибкой – новая метрика Quality построена так, что учитывает с высоким весом кадры, где нет объекта, и трекер этого не распознал. А сам тестовый датасет содержал значительное количество последовательностей, где длительное время нет объекта для трекинга.

Но мы и не стремились в топ. Понятно, что допиливание старых наработок и учет особенностей метрики, был бы лучшей стратегией (там почти все решения на лидербоарде – небольшие переделки трекеров с предыдущих лет), но на это не было времени. Программой минимум было оказать на лидербоарде. Потому что по опыту прошлых лет, это давало право на место в списке авторов итоговой статьи. Но здесь нас ждало разочарование: организаторы написали, что хоть мы и на лидербоарде, но какой-то их базовый трекер, построенный на баундинг боксах, но при этом учитывающий особенности метрики и тестового датасета, показал результаты лучше наших. Конечно, организаторы заранее не проинформировали комьюнити о пороговом значении Quality, и никто их базовый трекер не видел. Leaderboard так же был полностью закрыт и было трудно ориентироваться, какого порядка результат нам нужно получить. Это особенно странно, на фоне того, что они резко поменяли подход к evaluation и предложили всем делать только long-term tracking, хотя раньше упор был на short-term. Есть, конечно, червячок сомнения, что они просто посмотрели, что команда из России, и решили под благовидным предлогом нас прокатить. Но тут уж ничего не поделаешь.

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

Итого

Для тех, кто интересуется соревнованиями по машинному обучению и компьютерному зрению, строго рекомендуем обратить внимание на VOT Challenge. Там и предыдущие решения очень интересные, и датасеты неплохие, и тулкиты вполне развитые. Победить вы там вряд-ли сможете, но для тренировки и фана – самое то.

Английская версия новости: https://cacm.acm.org/blogs/blog-cacm/274374-vot-challenge-computer-vision-competition/fulltext

Комментарии (1)


  1. AleksandrRomanov
    07.07.2023 11:43

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

    трекинг рыбок
    трекинг рыбок
    трекинг зебр
    трекинг зебр