3,583 papers
arXiv:2610.36582 71 27 окт. 2026 г. FREE

Structured SVG Maps: карта как структурированный текст вместо картинки для выбора ориентиров

КЛЮЧЕВАЯ СУТЬ
Скриншот карты заставляет модель делать два дела сразу: читать мелкие подписи и понимать, кто где стоит. Подписи путаются, расстояния оцениваются на глаз. Метод Structured SVG Maps отдаёт карту текстом: объекты записаны строками с названием, категорией и координатами от 0 до 100, а цель всегда в центре (50, 50). Модель перестаёт разбирать пиксели и просто читает числа. У Gemma3 точность выросла вдвое: с 14% до 27%, у GPT-5.2 с 40% до 55%. Метод позволяет выбрать удобный ориентир для инструкции «как нас найти» и описания маршрута.
Адаптировать под запрос
⚡

TL;DR

Structured SVG Maps — способ подать LLM карту не скриншотом, а текстом в формате SVG. Дороги, объекты и их названия записаны как строки с координатами от 0 до 100, центр карты всегда (50, 50). Модель читает координаты и названия напрямую и не разбирает пиксели.

Если дать модели карту картинкой, ей приходится одновременно читать мелкие подписи и понимать, кто где стоит. Подписи она распознаёт с ошибками, а расстояния оценивает «на глаз». Результат нестабилен. На одной и той же карте с тем же вопросом текстовая версия работала не хуже картинки, а чаще заметно лучше. У открытой модели Gemma3 точность выросла вдвое: с 14% до 27% на выборе ориентира у поворота. У GPT-5.2 на втором задании она выросла с 40% до 55%.

Суть метода в трёх вещах:

  • структура: дороги, точка-цель и объекты лежат в отдельных группах;
  • нормализованные координаты: у каждого объекта есть название, категория и положение относительно центра;
  • строгий вывод: ответ просят в JSON с одним полем name, значение которого обязано совпасть с одним из названий на карте.
🔬

Схема метода

ШАГ 1: Собрать данные карты (дороги + объекты с названиями) → список с координатами
ШАГ 2: Нормализовать координаты: левый верх (0,0), правый низ (100,100),
        цель (перекрёсток/точка назначения) = (50,50) → SVG-текст
ШАГ 3: Разложить по группам: road_network / navigation_vectors / pois
        (у каждого объекта data-name, data-category) → структурированный текст
ШАГ 4: Один промпт: «проанализируй расположение, выбери один ориентир,
        верни JSON {"name": "..."}» → строго одно название из списка

Всё идёт в одном запросе. Подготовка данных (шаги 1–3) делается отдельно, один раз.

🚀

Пример применения

Задача: Владелец кофейни на Рубинштейна в Петербурге пишет раздел «Как нас найти» для сайта и карточки в Яндекс Картах. Хочется не «300 метров от метро», а «рядом с Пятёрочкой». Нужно сначала выбрать, по какому из соседних заведений людям проще ориентироваться.

Промпт:

Ты помогаешь написать инструкцию «как найти нас» для посетителей кофейни.

Ниже локальная карта в формате SVG. Координаты нормализованы:
левый верхний угол = (0,0), правый нижний = (100,100).
Кофейня находится в центре (50,50). Масштаб карты ~124×124 м.


  
    
    
  
  
    
  
  
    
      
    
    
      
    
    
      
    
    
      
    
  


Задача: выбери ОДИН объект, который лучше всего описывает положение
кофейни в формате «рядом с …». Учитывай не только расстояние:
ориентир должен быть известным и заметным для обычного человека.

Верни только JSON: {"name": "<точное название из data-name>"}

Результат: Модель вернёт короткий JSON с одним названием из списка. Название будет совпадать с тем, что записано в data-name. Дальше можно отдельным запросом попросить написать фразу для сайта на основе выбранного ориентира. Помните: модель выбирает ориентир, который вероятнее всего назвал бы человек. Это не гарантия, что выбор верный. Проверьте его на месте.

🧠

Почему это работает

Слабость: картинка заставляет делать две сложные вещи сразу. Модель должна прочитать мелкий текст на карте и тут же определить, где что находится. Ошибки в распознавании названий накладываются на ошибки в оценке расстояний. Подпись «Ригла» может прочитаться иначе, а «слева-сверху от центра» превращается в догадку.

Сильная сторона: LLM хорошо читает структурированный текст. Названия записаны точно, символами. Координаты — это числа, а числа модель сравнивает уверенно: (51, 32) относительно (50, 50) — «чуть правее и выше». Эффект получается за счёт явной структуры: у каждого объекта есть имя, категория и положение, и всё лежит на своём месте.

Как метод использует это. Он убирает распознавание пикселей и оставляет модели одну задачу — выбор. Рычаги управления:

  • Нормализация и центр (50,50) → модель не работает с широтой и долготой, положение «относительно цели» читается сразу. Для своей задачи ставьте в центр то, что важно (вход, точка доставки, ваша точка).
  • Список кандидатов → чем длиннее список, тем выше риск ошибиться. Сузьте его до тех объектов, которые реально могут быть ориентирами.
  • Формат вывода (JSON с одним name) → вы получаете проверяемый ответ. Название можно сверить со списком, и придуманного не окажется.
  • Критерий выбора в промпте → добавьте «заметный, известный, не скрыт зданиями». В статье показано, что ближайший объект не всегда лучший выбор.
📋

Шаблон промпта

Ты помогаешь выбрать ориентир для описания маршрута.

Ниже локальная карта в формате SVG. Координаты нормализованы:
левый верхний угол = (0,0), правый нижний = (100,100).
{что_в_центре} находится в центре (50,50).
Масштаб карты примерно {размер_области} м.


  
    
    ...
  
  
    
    
  
  
    
      
    
    ...
  


Задача: {что_выбрать}.
Учитывай расположение на карте, а также то, насколько объект узнаваем
и полезен человеку для ориентирования.

Верни только JSON: {"name": "<точное название из data-name>"}
  • {что_в_центре} — перекрёсток, вход, адрес, точка выдачи.
  • {что_выбрать} — например, «выбери ориентир для поворота налево» или «выбери ориентир рядом с точкой назначения».
  • Блок navigation_vectors нужен, только если задача про поворот. Для описания «рядом с точкой» его можно убрать.
  • Координаты и названия берите из своих данных. Для карт это OpenStreetMap; для планов помещений — свои измерения.

🚀 Быстрый старт — вставь в чат:

Вот шаблон структурированной SVG-карты для выбора ориентира.
Адаптируй под мою задачу: [твоя задача — кафе, склад, офис, маршрут курьера].
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит, что находится в центре, какие объекты вокруг и где они расположены относительно друг друга, нужен ли поворот и что именно выбирать. Эти вопросы нужны, потому что метод держится на трёх вещах: нормализованных координатах, названиях и категориях объектов, строгом формате вывода. Она соберёт SVG по вашим данным и подставит в шаблон.

⚠️

Ограничения

⚠️ Абсолютная точность невысокая: даже лучшая модель выбрала «человеческий» ориентир чуть больше, чем в половине случаев, а на остальных заданиях точность составляла 25–35%. Выбор модели — это подсказка, а не готовое решение. Результат надо проверять глазами.

⚠️ Не всегда выигрыш: у GPT-5.2 на задаче «ориентир у поворота» картинка и текст дали одинаковый результат. Прирост от текста заметнее на открытых моделях и на задаче «ориентир рядом с точкой».

⚠️ «Верно» = «как выбрал человек»: метрика — совпадение с ориентиром, который назвал автор реального описания. Другой подходящий ориентир засчитан как ошибка, поэтому реальная польза может быть выше. Но и проверить «правильность» без людей нельзя.

⚠️ Нужна подготовка данных: SVG нужно собрать из карты. Для одной-двух точек можно вручную. Для сотен адресов нужен небольшой скрипт, а его можно написать с помощью LLM.

⚠️ Узкая проверка: исследовали только небольшие карты (около 124×124 м) и японские описания ресторанов. Как метод поведёт себя на больших картах и в других языках, статья не показывает.

⚠️ Дообучение — не для читателя: вторая часть статьи про fine-tuning открытых моделей. Для практика в чате и с агентами она неприменима. На одном из заданий результат у Gemma3 даже немного упал.

🔍

Как исследовали

Исследователи взяли описания проезда из каталога ресторанов Hot Pepper (136 тысяч текстов) и оставили те, где человек называет конкретный ориентир: «поверните направо у Starbucks» или «рядом с McDonald's». Затем вручную привязали каждый ориентир к объекту в OpenStreetMap, чтобы знать «правильный» ответ. Получили два набора: 500 примеров для поворотов и 339 для назначения. Для проверки использовали по 100 примеров.

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

Во второй части на трёх открытых моделях проверили дообучение. Оно подняло точность на повороте почти вдвое. На втором задании эффект был слабее, а у одной модели даже отрицательный. Практический вывод для нас: главное в статье — сам формат подачи данных. Выигрыш от формата получается без обучения.

💡

Адаптации и экстраполяции

🔧 Техника: добавить критерий «заметности» → ориентир ближе к человеческому выбору

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

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

Это ваша адаптация, в статье её отдельно не проверяли.

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

Вот план этажа в виде структурированного текста.
Координаты нормализованы: (0,0) — левый верх, (100,100) — правый низ.
Ресепшен — в центре (50,50).


  
  
  


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

В статье это не проверялось. Принцип «данные в структурированном виде с координатами» перенесён по аналогии, результат нужно проверять.

🔗

Ресурсы

  • Работа: Structured Maps for Landmark-Based Route Instructions with LLMs
  • Авторы: Mifu Matsumoto, Yuki Nakanishi, Tomoya Hashiguchi, Hiroaki Ohshima — University of Hyogo, Япония
  • Данные и инструменты из статьи: OpenStreetMap, OSMnx, Hot Pepper Gourmet Search API, Unsloth (для дообучения)
  • Связанное: CartoMapQA — бенчмарк чтения карт мультимодальными моделями

📋 Дайджест исследования

Ключевая суть

Скриншот карты заставляет модель делать два дела сразу: читать мелкие подписи и понимать, кто где стоит. Подписи путаются, расстояния оцениваются на глаз. Метод Structured SVG Maps отдаёт карту текстом: объекты записаны строками с названием, категорией и координатами от 0 до 100, а цель всегда в центре (50, 50). Модель перестаёт разбирать пиксели и просто читает числа. У Gemma3 точность выросла вдвое: с 14% до 27%, у GPT-5.2 с 40% до 55%. Метод позволяет выбрать удобный ориентир для инструкции «как нас найти» и описания маршрута.

Принцип работы

Правило простое. Не показывай карту, а расскажи её структурированным текстом. Дороги лежат в одной группе, цель в другой, объекты в третьей. У каждого объекта своё название и категория. Ответ просишь строго одним JSON: {"name": "..."}. Название должно совпасть с одним из списка. Выдуманное сразу видно. Это как заменить размытое фото таблицей с адресами: в таблице ничего не надо угадывать. Нормализованные координаты делают положение читаемым сразу: точка (51, 32) при центре (50, 50) значит чуть выше и правее.

Почему работает

Картинка заставляет модель совмещать два шага. Первый: прочитать подпись. Второй: понять расстояние. Ошибка первого шага тянет за собой ошибку второго. Подпись «Ригла» читается иначе, а «слева сверху» превращается в догадку. Текст убирает первый шаг целиком. Названия переданы символами, а числа модель сравнивает уверенно, так что ей остаётся одна задача: выбор. Выигрыш неравномерный. У сильной модели на одном из заданий картинка и текст дали одинаковый результат. Зато у открытой Gemma3 точность выросла в два раза. Абсолютные цифры скромные: у лучшей модели ориентир, совпавший с выбором человека, встречается лишь немного чаще, чем в половине случаев. Считай выбор подсказкой и проверяй его глазами.

Когда применять

Описание маршрутов и адресов -> выбор ориентира для поворота или для фразы «рядом с ...», особенно когда у тебя есть данные карты или план помещения, а скриншот даёт сбои. Подходит для карточек организаций, инструкций курьерам, планов склада и офиса. НЕ подходит для больших карт с сотнями объектов и для задач, где нужна точная геометрия в метрах.

Мини-рецепт

1. Собери данные: дороги и объекты вокруг цели с названиями и категориями. Для карт возьми OpenStreetMap, для помещений свои замеры.
2. Пересчитай координаты: левый верх (0,0), правый низ (100,100). Цель поставь в центр (50,50).
3. Разложи по группам: для дорог, для цели, для объектов. У каждого объекта пропиши имя и категорию.
4. Сузь список: оставь только то, что реально может быть ориентиром. Длинный список повышает риск ошибки.
5. Дай критерий: объект должен быть известным и заметным для обычного человека, а не просто ближайшим.
6. Потребуй строгий ответ: только JSON с одним полем name. Сверь значение со списком кодом.
7. Проверь на месте: модель называет вероятный ориентир, а не гарантированный.

Примеры

[ПЛОХО] : Вот скриншот карты вокруг нашей кофейни. Скажи, какой ориентир лучше назвать посетителям?
[ХОРОШО] : Ниже карта в формате SVG. Левый верхний угол (0,0), правый нижний (100,100). Кофейня в центре (50,50). Масштаб около 124 на 124 метра. Объекты: Пятёрочка (54,47), Ригла (47,54), Додо Пицца (30,70), Магнит Косметик (80,20). Выбери ОДИН объект для фразы «рядом с ...». Он должен быть известным и заметным, а не просто ближайшим. Верни только JSON: {"name": "<точное название из data-name>"}
Источник: Structured Maps for Landmark-Based Route Instructions with LLMs
ArXiv ID: 2610.36582 | Сгенерировано: 2026-10-29 13:07

Проблемы LLM

ПроблемаСутьКак обойти
Модель путается, когда пространственную задачу дают картинкойДаёшь модели карту или схему изображением и просишь выбрать объект по расположению. Ей надо сразу две вещи: прочитать мелкие подписи и понять, кто где стоит. Подписи читаются с ошибками. Расстояния оцениваются «на глаз». Ошибки первого шага накладываются на ошибки второго. Результат нестабиленПереведи схему в текст. Запиши объекты строками: название, категория, координаты. Числа модель сравнивает уверенно. Названия переданы точно, их не надо распознавать. Модели остаётся одна задача: выбор
Модель придумывает название, которого нет в спискеПросишь выбрать объект из набора и отвечаешь в свободной форме. Модель перефразирует название, сокращает его или называет что-то похожее. Ответ нельзя сверить со списком автоматическиТребуй строгий вывод: только JSON с одним полем name. Значение должно совпасть с одним из названий в данных. Потом проверь совпадение кодом. Придуманное название сразу видно

Методы

МетодСуть
Карта как структурированный текст — вместо картинкиОпиши карту текстом в формате SVG. Левый верхний угол — (0,0), правый нижний — (100,100). Главную точку (вход, перекрёсток, цель) поставь в центр (50,50). Раздели данные на группы: road_network (дороги), target (цель), pois (объекты). У каждого объекта пропиши data-name и data-category. Потом дай задачу: «выбери один объект, который лучше описывает положение цели». Почему работает: модель не распознаёт пиксели. Названия переданы символами. Положение читается из чисел: точка (51,32) относительно (50,50) — чуть выше и правее. Явная структура помогает: у каждого объекта своё место и свои поля. Когда применять: нужно выбрать ориентир, объект рядом, точку на плане помещения или склада. Когда не работает: карта большая, объектов сотни, нужна точная геометрия. Результат нужно проверять глазами
Центр на главной точке — положение читается сразуПересчитай координаты так, чтобы важная точка стояла в (50,50). Любое положение тогда читается как «правее / левее / выше / ниже центра». Не нужны широта и долгота. Почему работает: модель не тратит усилия на вычисление относительного положения. Оно уже заложено в числах. Когда применять: любая задача «что рядом с X». Когда не работает: нужны абсолютные расстояния в метрах. Тогда добавь в промпт масштаб, например «область около 120 метров»
Строгий JSON на выходе — проверяемый выборПопроси: Верни только JSON: {"name": "<точное название из data-name>"}. Затем сверь значение со списком в коде. Почему работает: у модели нет места для рассуждений в свободной форме. Ответ либо совпадает с названием, либо это ошибка. Когда применять: выбор из заданного набора, который потом идёт в автоматический процесс. Когда не работает: нужно объяснение выбора. Тогда добавь второй запрос после выбора
Критерий выбора в запросе — не только расстояниеДобавь в задачу условие: «объект должен быть известным и заметным для обычного человека». Почему работает: ближайший объект не всегда лучший ориентир. Человек опирается на узнаваемость. Без этой подсказки модель склонна выбирать по близости. Когда применять: описание маршрута, инструкция «как найти». Когда не работает: когда критерий и есть расстояние

Тезисы

ТезисКомментарий
Структурированный текст надёжнее картинки для задач о расположенииКогда схема записана строками с названиями и числами, модель читает её напрямую. С картинкой ей приходится распознавать подписи и оценивать расстояния одновременно. Ошибки складываются. Текстовая форма убирает первую половину проблемы. Применяй: если у тебя есть данные, из которых нарисована схема, давай модели данные, а не рисунок
Явная структура с именем, категорией и положением даёт модели опоруГруппы вроде «дороги», «цель», «объекты» и поля у каждого объекта показывают, что это такое и где оно стоит. Модели не надо угадывать роль каждого элемента. Применяй: при подаче любых данных разделяй их на именованные группы и давай каждому элементу одинаковый набор полей
Выигрыш от текстовой формы сильнее у слабых моделейСильная модель справляется с картинкой почти так же, как с текстом. Слабая модель с картинкой путается, а с текстом заметно выигрывает: точность может вырасти в разы. Применяй: если работаешь с небольшой или открытой моделью, перевод визуальных данных в текст даёт самый большой прирост
Выбор модели «как человек» остаётся неточным даже в хорошем форматеДаже при удачной подаче модель выбирает ориентир, совпадающий с выбором человека, лишь примерно в половине случаев. Часто другие ответы тоже годятся, но проверить это без людей нельзя. Применяй: относись к выбору модели как к подсказке. Проверяй результат на месте или глазами
📖 Простыми словами

Structured Maps for Landmark-Based Route Instructions withLLMs

arXiv: 2610.36582

Пихать скриншоты карт в мультимодальные нейронки — гиблое дело. Модель пытается одновременно разобрать мыльные пиксели букв и на глаз прикинуть расстояния, из-за чего стабильно лажает с маршрутами. Решение простое: скормить карту не картинкой, а текстом через Structured SVG Maps. Векторный код раскладывает местность на строчки данных: улицы, дома и ориентиры сразу идут с точными координатами. Модель читает чистый текст и перестаёт гадать по пиксельной гуще.

Это как пытаться разглядеть вывеску в тумане через мутный бинокль вместо того, чтобы просто глянуть на экран навигатора. Формально ты местность видишь, но вывески плывут, а глазомер врёт на километр. Векторный SVG убирает эту слепоту: вместо размытого скриншота перекрёстка нейросеть получает чёткую шпаргалку, где каждый объект уже оцифрован и подписан.

Метод загоняет город в элементарную сетку: всё пространство масштабируется в координаты от 0 до 100, где точка (50, 50) — это железный центр. Никакой возни с OCR: кофейня, аптека или метро описаны строками с их точным положением на этой плоскости. Модель мгновенно выцепляет яркий ориентир в пяти метрах и строит адекватное описание дороги. В итоге полностью исчезает накопление ошибок распознавания.

Тестировали задачу на пеших маршрутах в духе «сверни за Пятёрочкой», но принцип универсален. Формат спасает везде, где AI должен соображать на плоскости: логистика складов, поэтажные схемы торговых центров, карточки заведений в геосервисах или планировки квартир. Перевод визуала в структурированный текст делает из слепой модели зрячего штурмана. Текстовые координаты бьют компьютерное зрение практически всухую.

Хватит пихать в промпты тяжелые скриншоты в надежде, что нейросеть сама всё поймёт. Если хочешь объяснить модели геометрию без багов и галлюцинаций, переводи данные в векторный код. Забудь про картинки там, где работают точные цифры. Оцифруй пространство в SVG, и получишь рабочий инструмент вместо сказок о том, куда поворачивать.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с