В этой статье продолжаем онлайн‑дневник экспериментов с TAPe‑подходом к компьютерному зрению на COCO. Кратко: подняли точность до ~98% на двухпроцентной выборке, уменьшили количество ложных срабатываний и начали переход от поиска центроидов к детекции прямоугольников вокруг объектов.
Если вы тут впервые, сначала можно посмотреть:
-
базовую статью про TAPe+ML — TAPe + ML: универсальная архитектура компьютерного зрения
-
Как наш домашний НИИ обошёл DINOv2, ViT и десятки ML‑моделей в видео‑разметке
Небольшое напоминание: что такое TAPe и зачем он нам
TAPe (Theory of Active Perception) — это математическая теория и технология, которая описывает (и моделирует) механизм активного восприятия: она разбивает изображение на устойчивые признаки (TAPe‑элементы/фильтры) и задаёт структуру связей между ними. В TAPe+ML мы используем эти элементы как фиксированные по размеру “патчи” и далее работаем уже с ними, а не с сырыми пикселями.
В рамках TAPe+ML TAPe выступает отдельным слоем обработки данных: TAPe‑алгоритмы превращают изображение в элементы TAPe — структурированные “строительные блоки” с известными связями между ними, давая компактное векторное представление вместо сырых пикселей. На этих представлениях мы уже строим эксперименты: от self‑supervised задач в духе DINO/iBOT до классических ML‑методов (кластеризация, поиск, классификация) и детекции объектов на COCO, за которыми как раз следим в этом дневнике.
Эксперименты с COCO: 2% данных и 98% точности
Продолжили работу с полным датасетом COCO (используя 2% из него для быстрых тестов – это около 2400 изображений).
Провели эксперименты с наведением и сбором данных используя инверсные пирамиды (точный TAPe-патч в середине, а дальше рост масштаба при удалении в стороны). Это привело к улучшению результатов до 98% точности в двухпроцентном датасете. По традиции дальше занимались удалением ложных срабатываний.
В рамках этих экспериментов мы:
-
работали с наведением и сбором TAPe-данных с использованием инверсных пирамид;
-
экспериментировали с количеством прототипов для каждого класса;
-
подбирали, сколько TAPe-патчей заднего фона и сколько объектов модель должна видеть во время тренировки.
Сколько прототипов и фоновых TAPe‑патчей нужно модели
Прототипы на класс
В самой модели провели много экспериментов со стороны количества прототипов для каждого класса (на данный момент времени лучшее число – 2).
Баланс фон / объекты
Также провели эксперименты, сколько модель должна увидеть TAPe-патчей заднего фона, а сколько конкретно объектов во время тренировки.
Пока лучший результат при использовании в два раза большего количества фона, чем объектов – что логично, потому как фон невыразительный и модели нужно больше его примеров для конкретного ответа. Но в тоже самое время слишкое большое количество фона в датасете приводит к тому, что модель определяет всё и вся как фон.
Как TAPe может заменить два этапа обучения эмбеддингов
Оба эти этапа могут быть заменены на этап тренировки с использованием подготовленных нами по логике TAPe объектов.
Также эта первичная тренировка может нам позволить тренировать операции по логике TAPe^ которые мы просто не знаем в форме записи в эмбеддинг, если так можно выразиться. Что означает, что мы можем попросту найти её выражение в форме для эмбеддингов и таким образом решить различные задачи взаимосвязи TAPe и ML.
Сейчас тренировка происходит в два этапа:
-
один этап для разделения эмбеддингов, чтобы в них не было большого пересечения данных и направление было относительно разное;
-
второй этап уже играет в сторону точности — то есть эмбеддинги сводятся к тому, чтобы один и тот же объект описывался похожими эмбеддингами.
От центроидов к боксам и ложные срабатывания
Переход к боксам
Проводили работу с переходом из нахождения центра объекта, как это было раньше, к нахождению прямоугольника, закрывающий объект. На первых стадиях сложно было судить о проценте правильности, но визуально выглядит хорошо.
Ложные срабатывания
Тогда же получилось в том числе снизить количество ложных срабатываний конкретно на объектах (их мы тоже прогоняем для тестов, без тренировки на датасете объектов) до всего 30 на всём датасете из ~1500 изображений.
Сколько “взглядов” нужно для детекции без классификации
Провели несколько экспериментов с архитектурами, проверяя, сколько “взглядов” модели вообще нужно для детекции (для которой не нужна классификация как таковая). Просмотра только по углам, а также в центр изображения хватило для детекции на COCO (опять таки, это без учета классификации, классификация твердо зависит от эмбедингов).
Что интересно – поле решения очень ассиметричное – средний процент нахождения центроида ~72% (ещё рано хвастаться – это центроид, а не бокс), но при этом для самых текстурных классов он за 90%, приближаясь к 93-94% для таких классов как “клавиши пианино”, “зебра”, “лодка” – то есть, для классов, где разница в очень богатой текстуре (пианино и зебры черно белые, лодки на море).
Худшее определение у вилок из-за их размера, а также у людей из-за количества вариаций в людях в датасете. Это достаточно частая проблема: иногда человек это всего лишь его лицо, иногда это кто-то со спины, иногда сидящий человек, и т.д. Это самый вариативный класс в датасете, но задача решается “стандартными” подходами – в нашем понимании стандарта.
TAPe‑патчи, эмбеддинги и “операции по логике TAPe”
Кстати, стандартные способы работы с пикселями в CV борются с тем, чтобы получать описательные вектора одного и того же размера для любой пиксельной области. В нашем же случае мы получаем такую возможность с самого начала, из самой концепции того, как находятся TAPe-данные.
Если рассматривать каждый патч TAPe-данных как токен, то изображение – это просто последовательность этих патчей, с которой можно очень удобно работать в рамках, например, iBOT-задач – мы уже знаем, что их мы можем решать с чрезмерным успехом.
Единственная проблема в том, что такие подходы зависят от Global Attention – что в свою очередь зависит от градиентного спуска. Эту вещь мы исследовали позже, но пока из изначального просмотра в TAPe данных уже присутствует структура, позволяющая проводить attention в намного более логичном виде.
Оба эти этапа могут быть заменены на этап тренировки с использованием подготовленных нами по логике TAPe объектов.
Также эта первичная тренировка может нам позволить тренировать операции по логике TAPe, которые мы просто не знаем в форме записи в эмбеддинг, если так можно выразиться. Что означает, что мы можем попросту найти её выражение в форме для эмбеддингов и таким образом решить различные задачи взаимосвязи TAPe и ML.
Автор: oopatow
- Запись добавлена: 25.03.2026 в 15:15
- Оставлено в
Советуем прочесть:
- FAQ по TAPe‑детекции объектов (как мы учимся детектить объекты одномоментно и в десятки раз эффективней-дешевле ML)
- Книга
- TAPe + ML: универсальная архитектура компьютерного зрения вместо патчей и «сырых» пикселей
- Какими должны быть промежутки времени между повторениями?
- Запишите эту дату!
- Стартап Normal Computing представил первый в мире термодинамический вычислительный чип
- Этот ИИ ведёт дневник, заводит баг-репорты, избегает сложных задач, а существует всего 5 дней
- Кастомные loss-функции в TensorFlow-Keras и PyTorch
- Илон Маск снова почти закончил ИИ-процессор Tesla AI5
- Когда YOLO не спасает: как один параметр может испортить всё


