Нейросеть не видит дефект, если он меньше 8 пикселей

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

Первая статья на эту тему уже подана в журнал «Компьютерная оптика» (перечень ВАК, Scopus) и сейчас на рецензии. Вторую пишу, она про мелкие дефекты.

Проблема, на которую я наткнулся, простая и неприятная. Мелкий дефект на снимке после сжатия до рабочего разрешения превращается в пару пикселей, и модель его просто не видит. На открытых данных при входе 512 px около 41% дефектов оказываются меньше 8 пикселей. Можно неделю перебирать настройки и жечь GPU, а модель всё равно не увидит то, что физически почти исчезло с картинки.

Сейчас проверяю гипотезу: по тому, сколько «эффективных пикселей» объект занимает для нейросети, можно ещё до обучения оценить, какое разрешение или увеличение понадобится. Плюс увеличивать не весь снимок, а только проблемные зоны. В экспериментах такое выборочное увеличение снизило долю «невидимых» дефектов с 41% примерно до 6%, а качество на мелких объектах выросло примерно вдвое. Это пока исследование, не готовый закон, но результаты обнадёживают.

Чтобы считать всё это быстро и честно, я сделал открытую библиотеку tinyeval (pip, Apache-2.0). Она:

оценивает модели сегментации и детекции, и метрики совпадают с эталонным pycocotools (32 теста);

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

Главная идея в том, чтобы понять до долгого обучения, найдёт ли модель мелкие дефекты, а не узнавать это через неделю экспериментов.

Ищу 1–2 команды из контроля качества на производстве или автоинспекции (автосервисы, каршеринг, страхование, trade-in), которым интересно бесплатно протестировать инструмент на своих данных. Если вы ищете мелкие объекты на снимках и знаете эту боль, напишите мне, буду рад обсудить.

И вопрос ко всем, кто работает с CV в проде: как вы сейчас понимаете, что модель в принципе способна увидеть нужные объекты, ещё до обучения?