Статьи

Плагин для AI-оцифровки растров в QGIS

ГИС Полезные ресурсы
Время прочтения: 5 минут
Во время AI-бума в 2023 году многие геоспециалисты сошлись на том, что лучшее применение машинного обучения в ГИС — это решение монотонных задач, которые отнимают много времени. Оцифровка растров — как раз одна из таких проблем, и в 2024 году для нее появилось еще одно решение.
В январе 2024 года компания Bunting Labs выпустила плагин для QGIS Bunting Labs AI Vectorizer, который помогает оцифровывать растры, продолжая линии, начатые пользователем. Разработчики называют это "автозаполнением", потому что плагин не делает всю работу сразу, а дорисовывает части линий на основе контекста, оставляя пользователю возможность в любой момент перехватить контроль.
Bunting Labs хотели создать не волшебную кнопку, а инструмент, который дает возможность сразу оценить результат оцифровки и отменить последний шаг, если что-то пошло не так. Источник изображения: Bunting Labs, разработчики плагина.

Отличие от других ML-моделей для оцифровки растров

Есть и другие AI-инструменты для определения объектов на растрах, такие как модель Segment Anything, которая тоже работает с геоданными. Она может вам помочь, если у вас есть какой-нибудь более или менее четкий снимок территории, и если вашу задачу легко описать словами, например: "определить границу озера". Но у нее начнутся проблемы, если у вас старая карта в плохом качестве и если вам сложно объяснить модели, какие линии на этом рисунке имеют смысл и почему одну линию надо оцифровать, а другую – нет.
У линий на изображениях много значений, которые легко понять человеку, но с которыми машине справиться непросто. Разработчики Bunting Labs поняли: чтобы сделать инструмент, который работает с любыми линиями, надо либо научить машину понимать элементы на карте, либо подойти к проблеме иначе и оставить понимание пользователю. В результате плагин AI Vectorizer работает так: когда пользователь начинает отрисовывать векторный объект, модель "смотрит" на его действия и продолжает эту линию, независимо от ее значения.

Вот как работает автозаполнение:

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

Как пользоваться плагином

  1. В форме по ссылке введите свой e-mail, проверьте почту, кликните ссылку в письме и посмотрите на секретный код (там же есть мини-инструкция по работе с плагином).
  2. После этого установите плагин "Bunting Labs AI Vectorizer" в QGIS.
  3. Подгрузите растр и векторный слой для новых оцифрованных объектов, подключите режим редактирования и кликните иконку плагина на панели. В окне введите тот же e-mail и код.
  4. Начните отрисовывать линию или полигон: сделайте два клика, один в начале линии, а другой дальше по направлению, чтобы дать AI контекст. После второй созданной точки плагин продолжит следующие 50 вершин на основе растрового слоя.
  5. Если автозаполнение отклоняется от верной линии, зажмите Shift и кликните на последней верной вершине, чтобы отменить линию и продолжить векторизацию.
В базовом бесплатном доступе плагин может отрисовать только 7000 сегментов линий в день, но для повседневных задач этого вполне достаточно.
На странице профиля есть количество оставшихся сегментов.
AI работает удаленно на веб-сервере, поэтому плагин не использует дополнительных ресурсов компьютера. Данные пользователя не используются, трафик шифруется.

Тестируем AI Vectorizer на практике

После установки нужно некоторое время на то, чтобы освоиться и привыкнуть, но после этого плагином пользоваться легко. Однако процесс не всегда гладкий: иногда появляются ошибки соединения, и часто плагин выдает странные линии, ведущие в сторону от нужной. К таким ошибкам легко привыкнуть, потому что отрисовка проходит быстро. Если результат плохой и линия ушла не туда, легко отменить последнее действие, зато когда результат хороший, это похоже на магию: перед вашими глазами появляются 50 новых вершин линии. Очень приятное ощущение :)
Пунктирное кольцо плагин отрисовал мне в два клика.
А вот с этим снимком получилось что-то странное. Можно поправить руками, но здесь я специально не перерисовывала линию, чтобы показать, какой бывает результат с первого запуска.
Потом я пробовала все, что оказалось под рукой – даже базовые тайлы OpenStreetMap. С ним не было никаких проблем, отличное качество.
Здесь у модели тоже было непопадание в оригинальную линию, хотя в целом результат ок.
Здесь тоже получился хороший результат, волнистые линии отрисовались нормально после 1-2 кликов. Источник: https://geoportal.rgo.ru/record/1125
Точность модели местами приятно удивляет, а где-то вызывает вопросы. Пока что заметно, что она ниже точности человека, но разработчики продолжают улучшать алгоритмы.
Универсальное ли это решение? Нет, потому что где-то вам придется подправить вершины руками.
Сокращает ли плагин время? Да, определенно. Отдельные вершины можно поправить после оцифровки, но даже с учетом этого плагин ощутимо сокращает время.

Что дальше делать с AI в QGIS

Хотя результат векторизации с плагином часто не идеальный, для многих задач этот инструмент может в разы сократить время на оцифровку растров. Как пишут в комментариях на LinkedIN — это могло бы сэкономить годы оцифровки. К тому же это хороший пример того, как интегрировать машинное обучения в рабочие процессы ГИС, не отнимая контроль пользователя.
Разработчики смотрят на этот плагин не как на конечную точку, а как на один из шагов на пути постоянного развития ГИС-технологий. Сейчас они продолжают улучшать точность векторизации AI Vectorizer, а в будущем планируют продолжать в этом же направлении и создавать AI-инструменты для автоматической геопривязки и извлечения дополнительных данных из растра.
Источники:
  • Introducing our QGIS AI Map Tracing Plugin (January 2024), Michael Egan, 31.01.2024 — статья о том, как Bunting Labs создавали плагин, как его использовать и какие еще применения AI ждать от ГИС.
  • AI Autocomplete for QGIS — подкаст Mapscaping от 12.04.2024, где разработчик плагина Брендан Эшворт более подробно рассказывает о его создании. Моя любимая часть выпуска: рассказ о том, как любитель опенсорса Брендан вдохновился открытостью QGIS и, посмотрев на другие плагины, собрал первую версию своего плагина за две недели. А про то, что было дальше, слушайте в подкасте :)
Материал подготовила Юлия Федорова