- BrainTools - https://www.braintools.ru -
В этой статье продолжаем онлайн‑дневник экспериментов с TAPe‑подходом к компьютерному зрению [1] на COCO. Кратко: подняли точность до ~98% на двухпроцентной выборке, уменьшили количество ложных срабатываний и начали переход от поиска центроидов к детекции прямоугольников вокруг объектов.
Если вы тут впервые, сначала можно посмотреть:
базовую статью про TAPe+ML — TAPe + ML: универсальная архитектура компьютерного зрения [2]
Как наш домашний НИИ обошёл DINOv2, ViT и десятки ML‑моделей в видео‑разметке [3]
предыдущие части дневника — “день” 1 [4], 2 [5], 3 [6], 4 [7]
TAPe (Theory of Active Perception) — это математическая теория и технология, которая описывает (и моделирует) механизм активного восприятия [9]: она разбивает изображение на устойчивые признаки (TAPe‑элементы/фильтры) и задаёт структуру связей между ними. В TAPe+ML мы используем эти элементы как фиксированные по размеру “патчи” и далее работаем уже с ними, а не с сырыми пикселями.
В рамках TAPe+ML TAPe выступает отдельным слоем обработки данных: TAPe‑алгоритмы превращают изображение в элементы TAPe — структурированные “строительные блоки” с известными связями между ними, давая компактное векторное представление вместо сырых пикселей. На этих представлениях мы уже строим эксперименты: от self‑supervised задач в духе DINO/iBOT до классических ML‑методов (кластеризация, поиск, классификация) и детекции объектов на COCO, за которыми как раз следим в этом дневнике.
Продолжили работу с полным датасетом COCO (используя 2% из него для быстрых тестов – это около 2400 изображений).
Провели эксперименты с наведением и сбором данных используя инверсные пирамиды (точный TAPe-патч в середине, а дальше рост масштаба при удалении в стороны). Это привело к улучшению результатов до 98% точности в двухпроцентном датасете. По традиции дальше занимались удалением ложных срабатываний.
В рамках этих экспериментов мы:
работали с наведением и сбором TAPe-данных с использованием инверсных пирамид;
экспериментировали с количеством прототипов для каждого класса;
подбирали, сколько TAPe-патчей заднего фона и сколько объектов модель должна видеть во время тренировки.
В самой модели провели много экспериментов со стороны количества прототипов для каждого класса (на данный момент времени лучшее число – 2).
Также провели эксперименты, сколько модель должна увидеть TAPe-патчей заднего фона, а сколько конкретно объектов во время тренировки.
Пока лучший результат при использовании в два раза большего количества фона, чем объектов – что логично [10], потому как фон невыразительный и модели нужно больше его примеров для конкретного ответа. Но в тоже самое время слишкое большое количество фона в датасете приводит к тому, что модель определяет всё и вся как фон.
Оба эти этапа могут быть заменены на этап тренировки с использованием подготовленных нами по логике TAPe объектов.
Также эта первичная тренировка может нам позволить тренировать операции по логике TAPe^ которые мы просто не знаем в форме записи в эмбеддинг, если так можно выразиться. Что означает, что мы можем попросту найти её выражение в форме для эмбеддингов и таким образом решить различные задачи взаимосвязи TAPe и ML.
Сейчас тренировка происходит в два этапа:
один этап для разделения эмбеддингов, чтобы в них не было большого пересечения данных и направление было относительно разное;
второй этап уже играет в сторону точности — то есть эмбеддинги сводятся к тому, чтобы один и тот же объект описывался похожими эмбеддингами.
Проводили работу с переходом из нахождения центра объекта, как это было раньше, к нахождению прямоугольника, закрывающий объект. На первых стадиях сложно было судить о проценте правильности, но визуально выглядит хорошо.
Тогда же получилось в том числе снизить количество ложных срабатываний конкретно на объектах (их мы тоже прогоняем для тестов, без тренировки на датасете объектов) до всего 30 на всём датасете из ~1500 изображений.
Провели несколько экспериментов с архитектурами, проверяя, сколько “взглядов” модели вообще нужно для детекции (для которой не нужна классификация как таковая). Просмотра только по углам, а также в центр изображения хватило для детекции на COCO (опять таки, это без учета классификации, классификация твердо зависит от эмбедингов).
Что интересно – поле решения очень ассиметричное – средний процент нахождения центроида ~72% (ещё рано хвастаться – это центроид, а не бокс), но при этом для самых текстурных классов он за 90%, приближаясь к 93-94% для таких классов как “клавиши пианино”, “зебра”, “лодка” – то есть, для классов, где разница в очень богатой текстуре (пианино и зебры черно белые, лодки на море).
Худшее определение у вилок из-за их размера, а также у людей из-за количества вариаций в людях в датасете. Это достаточно частая проблема: иногда человек это всего лишь его лицо, иногда это кто-то со спины, иногда сидящий человек, и т.д. Это самый вариативный класс в датасете, но задача решается “стандартными” подходами – в нашем понимании стандарта.
Кстати, стандартные способы работы с пикселями в CV борются с тем, чтобы получать описательные вектора одного и того же размера для любой пиксельной области. В нашем же случае мы получаем такую возможность с самого начала, из самой концепции того, как находятся TAPe-данные.
Если рассматривать каждый патч TAPe-данных как токен, то изображение – это просто последовательность этих патчей, с которой можно очень удобно работать в рамках, например, iBOT-задач – мы уже знаем, что их мы можем решать с чрезмерным успехом.
Единственная проблема в том, что такие подходы зависят от Global Attention – что в свою очередь зависит от градиентного спуска. Эту вещь мы исследовали позже, но пока из изначального просмотра в TAPe данных уже присутствует структура, позволяющая проводить attention в намного более логичном виде.
Оба эти этапа могут быть заменены на этап тренировки с использованием подготовленных нами по логике TAPe объектов.
Также эта первичная тренировка может нам позволить тренировать операции по логике TAPe, которые мы просто не знаем в форме записи в эмбеддинг, если так можно выразиться. Что означает, что мы можем попросту найти её выражение в форме для эмбеддингов и таким образом решить различные задачи взаимосвязи TAPe и ML.
Автор: oopatow
Источник [11]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/27721
URLs in this post:
[1] зрению: http://www.braintools.ru/article/6238
[2] TAPe + ML: универсальная архитектура компьютерного зрения: https://habr.com/ru/articles/1004788/
[3] Как наш домашний НИИ обошёл DINOv2, ViT и десятки ML‑моделей в видео‑разметке: https://habr.com/ru/articles/1007128/
[4] 1: https://habr.com/ru/posts/1009926/
[5] 2: https://habr.com/ru/posts/1010182/
[6] 3: https://habr.com/ru/posts/1010464/
[7] 4: https://habr.com/ru/posts/1010644/
[8] FAQ по TAPe‑детекции объектов (как мы учимся детектить объекты одномоментно и в десятки раз эффективней/дешевле ML) : https://habr.com/ru/articles/1011406/
[9] восприятия: http://www.braintools.ru/article/7534
[10] логично: http://www.braintools.ru/article/7640
[11] Источник: https://habr.com/ru/articles/1014966/?utm_campaign=1014966&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.