Современные визуально-языковые модели видят картинку как массив пикселей. Но чтобы по-настоящему понимать картинку, им нужно работать не с пикселями, а с символами — как с кодом. Это хорошо работает с распознаванием изображений, но плохо — для использования изображения в контексте при работе с LLM. Также понятно, что пиксели не всегда корректно расскажут нам о связях между объектами и о том, сколько чего находится на картинке.

Исследователи предлагают перевод изображения в SVG-код, который будет более информативен и будет содержать структурированные данные по картинке. SVG-код обычно компактен, легко читается и выполняется, а самое важное — что SVG-код легко проверить, запустив его.

VCode: RGB‑изображение переводится VLM‑кодером в символьный SVG‑код и обратно рендерится в изображение, сохраняя смысл
VCode: RGB‑изображение переводится VLM‑кодером в символьный SVG‑код и обратно рендерится в изображение, сохраняя смысл

Что придумали авторы

Авторы предлагают бенчмарк визуального кодирования под названием VCode. Он оценивает, насколько хорошо модель генерирует SVG-код по изображению, сохраняя при этом символьную структуру исходной сцены (описание объектов и их отношений в виде кода). Тут важно понимать, что задача — не просто скопировать картинку в SVG, а перенести именно символьную структуру, объекты, их сигнатуры и относительное положение, а также порядок в глубине сцены.

Прототип CodeVQA
Прототип CodeVQA

Также авторы предлагают метод CodeVQA для оценки визуального кодирования методом суррогатного выполнения. В этом методе по картинке нужно сгенерировать SVG-код, но уже по отрендеренному SVG-изображению нужно ответить на поставленный вопрос. То есть, если ответ совпал с исходным, значит, модель хорошо перенесла символику сцены.

Авторы используют агента VCoder, который применяет две ключевые стратегии поверх современных визуально-языковых моделей:

  1. Размышление с ревизией: Модель генерирует SVG-код, рендерит его и сравнивает с оригиналом, пошагово правя то, что получилось. Такой метод позволяет избежать некой «слепоты» и с первого раза сгенерировать максимально похожий по структуре код.

  2. Действие с помощью визуальных инструментов: Это использование различных сегментаторов, детекторов и OCR. Например, можно подключить детектор объектов Florence-2, который скажет, где какие объекты и их категории. Сегментатор Sam-2 выдает маску в виде полигона на объекты. Также используется OpenOCR, чтобы детектировать текст на картинке и определить, где он находится. Далее весь полученный контекст превращается в SVG-элементы.

Усиление агентов-кодеров ревизией и визуальными инструментами
Усиление агентов-кодеров ревизией и визуальными инструментами

VCode собирает задачи из трёх доменов: MM-Vet (общий визуальный здравый смысл), MMMU (различные дисциплины на основе изображений) и CV-Bench (способности в области восприятия). В итоге получается 464 задачи, где по картинке нужно ответить на вопрос.

При этом оценки проводятся с помощью CodeVQA, то есть чем больше правильных ответов, тем лучше. Также оценивают SigLip score — косинусное сходство между эмбеддингами оригинального изображения и рендера из SVG.

Распределения VCode
Распределения VCode

Что получилось в итоге

Модели всё ещё плохо генерируют SVG-код, особенно сохраняя в нём символику. Для базовой оценки авторы берут gpt-5. Они получают SigLIP — 72.3 и Overall CodeVQA — 46.8, что ниже, чем если бы оценка шла по оригинальному изображению (61.7). Есть куда расти.

VCoder на базе Claude-4-Opus даёт лучший результат — финальная оценка равна 54. Прирост особенно заметен на MM-Vet (+16.7), а также есть прирост в других доменах, включая MMMU (+6.2) и CV-Bench (+11.4).

В абляции видно, что каждый подключаемый визуальный инструмент даёт прирост. Детекция объектов даёт больше семантики и точного положения, маска хорошо сохраняет пространственное расположение, а OCR важен для задач, завязанных на тексте.

Важна и итеративная ревизия: первая итерация почти всегда улучшает результат, а дальше всё зависит от «терпения» модели.

Влияние итеративных ревизий
Влияние итеративных ревизий

Другая интересная часть — это длина SVG-кода. Замечено, что чем он короче, тем хуже: видимо, он более беден по символьным объектам. Системы, которые переносят больше объектов и их отношения, показывают лучшую производительность. При этом финальный SVG-код может быть больше 2 тыс. токенов.

Показательные примеры

На MM-Vet труднее всего вопросы в области знаний, где нужно подключить больше контекста: культуру, историю — и чтобы это всё не потерялось при переводе в код.

В MMMU всё держится на правильном переносе логики формул, схем, подписей и графиков — тут выручает OCR и правильное сохранение геометрии.

На CV-Bench порой важны 3D-подсказки — глубина и близость. Символьный слой должен отразить порядок по глубине или относительные расстояния.

Пример из MMMU
Пример из MMMU
Пример из CV‑Bench
Пример из CV‑Bench

Выводы

SVG-код — это рабочий формат для рассуждений и действий: код можно править, исполнять, накладывать инструменты, вести диалог с промптом через ревизии.

Итого исследование показывает большую пропасть между текстовым кодом и визуальным кодированием. Исследователи предлагают удобные бенчмарки, чтобы это мерить, а также подтверждают, что комбинация ревизий и подключаемых инструментов (сегментаторов и OCR) улучшает перенос смыслов из пикселей. Следующим шагом будет обучение специализированных моделей для визуального кодирования end-to-end.

Переход от пикселей к коду — это шаг к тому, чтобы ИИ не просто «видел» картинку, а по-настоящему понимал её как систему смыслов и отношений между объектами.

? Полная статья

? Код

***
Если вам интересны ИИ-исследования — подписывайтесь на Telegram-канал Dataism Science Hub. Там я ежедневно простыми словами обозреваю лучшие научные работы из лабораторий со всего мира — так вы будете в курсе последних ИИ-технологий, их возможностей и ограничений.

Комментарии (0)