Автор: Дмитрий Раков Редактура: Антон Броиловский

Определение плоскости земли

Введение

В статье мы рассмотрим подходы к решению задачи определения плоскости земли с помощью данных лидара. Давайте изучим саму задачу подробнее.

Для начала определим входные данные и ожидаемый результат. Как показано на рисунке ниже, на входе мы получаем облако точек (точки объектов + точки поверхности, по которым перемещается робот, то есть транспортное средство с установленным лидаром). Нам нужно классифицировать данные точек на два класса, отделив точки объектов от точек поверхности.

Рисунок 1. Результат работы алгоритма определения плоскости земли

Рисунок 1. Результат работы алгоритма определения плоскости земли

Получившийся результат поможет нам при решении различных задач. К ним относятся:

  1. Нахождение объектов путем кластеризации облака точек

Рисунок 2. Итерации пайплайна нахождения объектов в лидарном облаке

Рисунок 2. Итерации пайплайна нахождения объектов в лидарном облаке

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

  1. Использование в Lidar SLAM

Рисунок 3. Пример пайплайна Lidar SLAM с применением результатов нахождения плоскости земли

Рисунок 3. Пример пайплайна Lidar SLAM с применением результатов нахождения плоскости земли

На изображении выше этап выделения точек земли отмечен как Ground Segmentation. В рамках SLAM результаты нахождения земли можно использовать для уменьшения количества входных точек (что снижает время исполнения всего пайплайна) или получения наиболее релевантных точек для стадии мэтчинга.

  1. Формирование карты проходимости для робота

    Рисунок 4. Карта проходимости (Ground truth) для области, представленной на изображении (Aerial image)

    Рисунок 4. Карта проходимости (Ground truth) для области, представленной на изображении (Aerial image)

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

  1. Поиск высоты объекта в задаче 3D object detection

                                                                  Рисунок 5. Пайплайн BirdNet

                                                               Рисунок 5. Пайплайн BirdNet
    

В подходе Birdnet для обнаружения объектов используется BEV проекция (подробнее про виды представления данных можно прочитать здесь) ****облака точек, которая не позволяет предсказывать высоту объекта с высокой точностью. Для улучшения метрик по качеству авторы применяют ранее выделенные точки земли с целью вычисления высоты предсказанных bounding box.

Есть много разных подходов для определения плоскости земли. Их примеры представлены на рисунке ниже.

Рисунок 6. Алгоритмы определения плоскости земли

Рисунок 6. Алгоритмы определения плоскости земли

В этой статье мы рассмотрим два классических алгоритма использования нейронных сетей, основанных на подходе Ground modeling: СSF и Patchwork.