Обновить

День 2. 115 тыс параметров вместо 2 млн+ у YOLO

Продолжаю дневник разработки «Суперраспознавалки» для демо/пилота. Начало здесь.

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

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

Например, конкретно сейчас получается даже на более сложных примерах без проблем находить задний фон, используя при этом минимальные ресурсы и методы, которые на пикселях являлись релевантными 20 лет назад.

Разбиение происходит за 100+ кадров в секунду, без оптимизации, с обработкой каждого кадра отдельно (то есть есть также overhead выгрузки изображения на GPU).

Также пришло понимание, что нужно переходить к этапу дополнительных действий, чтобы отбирать интересные места. В целом по результату вышло, что количество ложных срабатываний в разы уменьшилось, но при этом количество правильных ответов тоже немного снизилось (на пару процентов, но заметно в любом случае, тем более у нас цель получить условные 100% на тестовых данных). Это происходит как раз таки из‑за того, что нет правильной последовательности действий (что, впрочем, нами ожидалось, просто не думали, что это так быстро произойдет).

Перешли к более адаптированной под TAPe логике. Пока очень топорным способом (так легче тренировать и проверять работу), но выходят очень хорошие результаты. По поводу данных немного скажу для контекста:

Разбиение следующее:

Classes: 4; labeled: 1256, train: 879, test: 377, miss images: 559

То есть, 4 класса, общее количество изображений объектов — 1256, из них в тренировку уходит 879, в тестирование — 377. Miss images — это изображения просто заднего фона, а также случайных объектов, не являющихся нужными объектами.

Для YOLO необходимо около 1500 изображений на один класс. Мы же успешно используем около 220 на класс + какие‑то изображения фона (которые есть только для травы и снега, например).

Результаты имеют точность определения того, где находится нужный объект (не её вид — это отдельный шаг) с точностью 98.94% (то есть правильно для 373 из 377 изображений). Ложные срабатывания ещё существуют, но их стремительно меньше.

Интересно, что модель «самостоятельно» находит правильно нужные объекты, даже если в тренировочных данных они не были обозначены (то есть тренировочные данные неправильные). Модели всё равно удаётся определить оба объекта, что показывает, что модель обучилась формам объектов успешно.

Чтобы добавить контекста — размер модели 115 тысяч параметров. Самая маленькая из современных YOLO же имеет 2+ млн параметров, и при этом не справляется с задачей.

Теги:
+2
Комментарии0

Публикации