Сегментация изображения играет решающую роль в точной идентификации и определении границ интересующих объектов на изображении. В автономном вождении для решения задачи сегментации дорожного покрытия применяются алгоритмы компьютерного зрения. Эта задача сложна, поскольку нельзя полагаться только на один тип изображений — и камеры, и лидары имеют свои сильные и слабые стороны. Например, LiDAR предоставляют точную информацию о глубине, но обычно они генерируют разреженные облака точек, поэтому не могут точно сегментировать объекты внутри сцены. И они могут создавать искаженные облака, когда сталкиваются с прозрачными или отражающими поверхностями. Камеры не фиксируют глубину, но предоставляют полную информацию о форме, текстуре и цвете объектов. Это приводит нас к простой идее, что эффективное объединение облаков точек и изображений при обучении сегментации 2D-дорог может использовать преимущества каждой области данных. Проблема в том, что такое объединение требует трудоемкой аннотации обоих наборов данных. Итак, можем ли мы сделать аннотацию данных более эффективной, чтобы воспользоваться преимуществами мультисенсорной установки для сегментации дорог?
В настоящее время я работаю в
В этом посте я шаг за шагом опишу наш подход и покажу некоторые результаты тестов. Если вы хотите глубже погрузиться в нашу работу, исследования других методов и результаты наших испытаний, обратитесь к нашей статье.
Общий конвейер нашего подхода состоит из четырех основных частей: аннотации дорог в виде облака точек, подготовка данных, маскированные потери и сама модель сегментации.
Во-первых, мы получаем данные с дорожными аннотациями в области облака точек. После этого мы проецируем точки, используя однородные преобразования и параметры камеры. Затем, используя проецируемые точки, мы получаем маску истинности дорожного покрытия для расчета потерь с добавленным случайным шумом. Изображения с камеры обрабатываются моделью сегментации. Прогнозы и маски из предыдущего шага используются в маскированной потере, что позволяет обучать модель, используя разреженные наземные данные. Наконец, после обучения модели мы получаем изображение с сегментированной дорогой. Процедура обучения, а также маскированные потери позволяют смешивать прогнозируемые наземные данные с традиционными 2D-масками, что делает подход гибким с точки зрения данных.
Теперь давайте внимательно рассмотрим каждую из частей.
1 Аннотация к данным облака точек
Чтобы использовать данные лидара во время обучения, нам нужны аннотации семантической сегментации для облаков точек. Это можно сделать либо вручную, используя инструмент аннотации облака точек с открытым исходным кодом, например
2 Подготовка данных
Полученное облако точек проецируется на плоскость изображения с помощью однородных преобразований, чтобы получить маску сегментации изображения с необходимой нам меткой класса, в нашем случае это дорога. Для такой проекции мы используем синхронизированные кадры камеры и лидара, сопровождаемые параметрами камеры, а также матрицу преобразования лидара в кадр камеры. Чтобы спроецировать однородную точку x = (x, y, z, 1)ᵀ
в координатах кадра лидара в точку y = (u, v, 1)ᵀ
на плоскости изображения, мы используем уравнение:
После преобразования мы получаем точки на изображении в виде маски пикселей, как для класса дороги, так и для всех остальных точек лидарного сканирования. Нам нужны другие точки лидарного сканирования, поскольку точки лидара в основном расположены внизу изображения, а верхняя часть изображения вообще не имеет точек, что потенциально может привести к неточным прогнозам в этой области. Чтобы устранить этот эффект, мы добавляем случайные точки в верхнюю половину маски (отрицательный класс), чтобы сбалансировать распределение точек, по которым мы будем рассчитывать потери.
3 Маскированная потеря
Важнейшим компонентом нашего метода является применение функции маскированных потерь во время обучения модели. Этот подход устраняет присущую лидарным маскам наземную истинность разреженность. В отличие от обычных функций потерь, которые учитывают все маски изображения для расчета ошибок, маскированные потери фокусируются исключительно на областях, где присутствуют точки лидара. Такой целенаправленный расчет потерь гарантирует, что обучение модели сосредоточено на соответствующих регионах, используя информацию, предоставляемую лидаром, для повышения точности сегментации дорог. Другими словами, мы заставляем модель обучаться сегментации дорог, измеряя ошибку прогнозов на сетке точек. Это можно сравнить с рассматриванием изображения в очках с затвором (жалюзи).
Маскированные потери для каждого изображения можно сформулировать следующим образом:
Маскированная потеря выполняется путем применения двоичной маски к обучающим изображениям. Эта маска очерчивает области, где расположены точки лидара и проецируются на плоскость изображения. На этапе обучения потери рассчитываются только для тех пикселей, которые находятся под маской, эффективно игнорируя большие неаннотированные части изображения. Этот метод не только повышает эффективность процесса обучения, но и смягчает проблемы, связанные с разреженным характером лидарных данных.
4 Обучение модели
Последний шаг включает в себя обучение модели сегментации на созданном наборе данных. Процесс обучения может подойти для любой модели сегментации, и в нашем исследовании мы использовали PSPNet. На этом этапе все зависит от качества ваших данных, их количества и доступных вычислительных мощностей.
Мы протестировали наш подход на различных наборах данных, включая наборы с открытым исходным кодом, такие как открытый набор данных Perception Waymo и набор данных KITTI-360. Каждый раз мы проводили серию из трех экспериментов: используя только 2D-наземные данные, только проецируемые точки в качестве наземных данных и смесь этих типов наземных данных. Результаты сегментации дорог (% от IoU) выглядят многообещающе:
Эксперимент | Обучение на наборе данных KITTI-360. | Обучение на наборе данных Waymo |
---|---|---|
Только 2D (базовый уровень) | 92,3 | 96,1 |
Только проецируемое 3D | 89,6 | 94,7 |
сочетание 2D + проецируемого 3D | 92,7 | 96,3 |
Эти цифры означают, что если у вас есть только лидарная сегментация и вы не хотите тратить дополнительные ресурсы на аннотации 2D-изображений, все в порядке. Падение качества по сравнению с обучением только на масках 2D-изображений может быть незначительным. Если у вас есть ресурсы для аннотирования данных с обоих датчиков, то просто объедините эти два типа аннотаций в процессе обучения и получите прирост показателей.
В целом преимущества подхода , которые мы наблюдали в ходе исследования, заключаются в следующем: