average Telegram

Synoplex / DINO

Как обнаруживать микродефекты на макетах без сотен ложных срабатываний?

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

Цель

Автоматизировать визуальный контроль макетов упаковки и обнаруживать даже небольшие, но значимые изменения: потерянные символы, смещения, нарушения контуров и ошибки отдельных элементов дизайна.

Критерий успеха — не максимальный pixel recall. Нужна высокая чувствительность при приемлемом числе ложных замечаний на один макет.

Архитектура

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

Поэтому я построил парный visual change detection pipeline: геометрическое совмещение изображений, извлечение признаков через DINOv3 и обучаемый HR-SiamFPN head для построения карты изменений.

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

Что показали эксперименты

Один из исследовательских запусков достиг region recall около 82%, но одновременно давал примерно 1,01 ложного региона на макет при целевом бюджете не более 0,25. При таком соотношении даже хорошая чувствительность не делает систему удобной для дизайнера.

Выяснилось, что pixel-level оптимизация и итоговая region-level оценка могут расходиться. При уменьшении бинарной GT-маски методом nearest neighbor дефекты размером 1–3 пикселя иногда полностью исчезали из supervision. А один дефект из нескольких раздельных компонентов мог некорректно оцениваться как несколько независимых событий.

Я переработал подготовку supervision и оценку: сохранение позитивных пикселей при downsampling, сопоставление регионов по реальным экземплярам изменений, отдельные показатели для мелких дефектов и контроль false positives per layout.

Для рабочего visual-diff контура в дальнейшем использовал более компактный DINOv3 ConvNeXt Tiny.

Второй контур: Text QC

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

Для растрового текста используются YOLO и Surya OCR 2; PDF с текстовым слоем обрабатываются с сохранением исходной геометрии. LLM анализирует извлечённое содержимое, а backend сопоставляет замечания с реальными текстовыми элементами и их координатами. Модель не назначает произвольные bounding boxes.

Так можно подсветить проблему непосредственно на макете и показать, на каком фрагменте основано замечание.

Результат

Synoplex объединяет два самостоятельных сценария: visual change detection по паре макетов и AI-проверку текста по одному документу.

Самая интересная часть проекта — перевод задачи из «сравнить две картинки» в измеримый контроль реальных дефектов с явным бюджетом ложных срабатываний.

Стек: Python, PyTorch, DINOv3, ConvNeXt Tiny, HR-SiamFPN, OpenCV, YOLO, Surya OCR 2, LLM, Flask, Celery.

Демонстрация ARGUS

ARGUS продолжает выбранный запрос ATLAS: найденная фотография проходит через текстовые области, OCR, смысловое замечание, признаки DINOv3 и сравнение изображений.

Text QC использует сохранённые YOLO/Surya/LLM-результаты. Для трёх случаев подготовлены изменённые версии этикеток; координаты относятся к этим версиям. Карта DINO вычислена по оригиналу через encoder Synoplex, а её цвет — общая трёхкомпонентная проекция признаков четырёх изображений.

Исходные фотографии: Food Packaging OCR Dataset v2, Chia Zi Qi, CC BY 4.0. В демонстрации использованы производные изображения.