Semantic Mapping
Семантическое картирование создаёт карту с указанием расположения объектов, например дорог, стен, дверей или людей, объединяя данные сегментации, глубины и позы во времени.
Семантическое картирование — это построение пространственной карты окружения, где каждому местоположению наряду с геометрией соответствует значение, то есть метка класса: дорога, тротуар, стена, дверь, стул, человек и так далее. Геометрическая карта показывает роботу расположение поверхностей, а семантическая также сообщает, что это за поверхности, поэтому робот может выполнить команду «подъедь к кухонному столу», не выезжать на газон или ожидать пешеходов у перехода. Семантические карты объединяют семантическую сегментацию или обнаружение объектов с измерением глубины и локализацией. Они составляют важную часть восприятия в робототехнике, автономных транспортных средствах и пространственных вычислениях.
Как работает семантическое картирование#
Каждый новый кадр камеры проходит три этапа. Модель сегментации присваивает каждому пикселю метку класса. Данные о глубине от LiDAR, стереокамеры, камеры RGB-D или монокулярной оценки глубины преобразуют размеченные пиксели в трёхмерные точки, а положение робота, определённое с помощью визуальной SLAM или одометрии, размещает точки в ячейках общей карты. Наконец, объединение данных с датчиков со временем объединяет новые метки со всем, что уже накоплено в каждой ячейке. Движущиеся объекты обрабатываются отдельно, чтобы проходящий человек не превратился в постоянную стену.
Модели семантической сегментации Ultralytics YOLO26, предварительно обученные на наборе данных Cityscapes, присваивают каждому пикселю один из 19 классов городской среды, включая дорогу, тротуар, здание, растительность, человека и автомобиль. Эти данные по каждому кадру объединяются в семантической карте улицы.
Именно объединение данных превращает зашумлённые предсказания отдельных кадров в надёжную карту. В 2017 году Семантический Fusion — SemanticFusion, разработанный Джоном Маккормаком и его коллегами из Имперского колледжа Лондона, — хранил распределение вероятностей по классам для каждого элемента поверхности и перемножал его с каждым новым предсказанием сети, выполняя рекурсивное байесовское обновление. В этой симуляции такое же обновление применяется к карте из 1 000 ячеек, наблюдаемой моделью сегментации с точностью 70%:
import numpy as np
rng = np.random.default_rng(0)
num_cells, num_classes = 1000, 4 # map cells; classes such as road, sidewalk, building, vegetation
truth = rng.integers(0, num_classes, num_cells)
# Sensor model: segmentation labels a cell correctly 70% of the time, otherwise picks another class
likelihood = np.full((num_classes, num_classes), 0.1)
np.fill_diagonal(likelihood, 0.7)
log_belief = np.zeros((num_cells, num_classes)) # uniform prior in every cell
for frame in range(1, 11):
# A new frame observes every cell from a new viewpoint, with independent errors
wrong = rng.random(num_cells) > 0.7
labels = np.where(wrong, (truth + rng.integers(1, num_classes, num_cells)) % num_classes, truth)
# Recursive Bayesian update: add the log-likelihood of this observation to each cell's belief
log_belief += np.log(likelihood[labels])
if frame in (1, 3, 10):
print(f"Frame {frame:>2}: {(log_belief.argmax(axis=1) == truth).mean():.1%} of cells correct")После одного кадра точность карты составляет 69,6%, после трёх — 80,6%, а после десяти — 98,2%. Улучшение зависит от того, меняются ли ошибки между наблюдениями. Поэтому объединение данных наиболее эффективно, когда робот видит каждое место с разных точек обзора, тогда как ошибка, повторяемая моделью с любого ракурса, остаётся на карте. В SemanticFusion наблюдалась та же закономерность: преимущество перед разметкой отдельных кадров было больше на наборе данных с большим разнообразием точек обзора.
Представления карт и связанные понятия#
Семантические карты бывают разными: от двумерных сеток, где каждой ячейке карты занятости присваивается класс, до размеченных трёхмерных облаков точек, вокселей и сеток. Система Kimera из MIT в реальном времени строит метрическую семантическую трёхмерную сетку, а графы трёхмерных сцен организуют те же сведения в виде объектов, комнат и зданий, связанных отношениями. Карты с открытым словарём хранят не фиксированные классы, а эмбеддинги CLIP, позволяя роботу искать на карте любые текстовые запросы, например «огнетушитель».
Семантическое картирование опирается на несколько смежных задач. Визуальная SLAM предоставляет положения камеры и геометрическую карту. Картирование занятости фиксирует только, свободно ли пространство, занято оно или неизвестно. Сегментация экземпляров и паноптическая сегментация разделяют отдельные объекты, что нужно картам на уровне объектов, чтобы считать стулья или отслеживать припаркованные автомобили. Семантический поиск — не связанная с этим технология поиска, совпадает лишь слово «семантический».
Примеры применения в реальных условиях#
- Автономное вождение: Карты высокого разрешения фиксируют полосы движения, пешеходные переходы, светофоры и бордюры с точностью до сантиметров; онлайн-семантическое картирование строит карту тех же объектов в виде вида сверху, используя датчики самого автомобиля.
- Мобильные роботы: Навигационный стек ROS 2, Nav2, предоставляет слой семантической сегментации карты стоимости, который назначает каждому классу стоимость перемещения, позволяя роботу планировать маршруты по предпочтительным поверхностям.
- Сельское хозяйство: Полевые роботы и дроны по рядам картируют посевы и сорняки для точечного опрыскивания и оценки урожайности.
- Дополненная реальность: ARKit от Apple классифицирует каждую грань восстановленной сетки помещения как стену, пол, потолок, стол, место для сидения, окно, дверь или объект без класса.










