Раньше я никогда не работал с данными облака точек / LIDAR, но, поскольку никто еще не ответил, я сделаю это наилучшим образом.Я не уверен насчет подходов к окраске, хотя я думаю, что они могут работать не очень хорошо (за исключением, может быть, вариационного метода, который, я полагаю, будет довольно медленным).Но если ваша цель состоит в том, чтобы проецировать показания 3D LIDAR (когда они сопровождаются кольцевыми идентификаторами и показаниями интенсивности лазера) в плотную 2D матрицу (для использования в CNN), следующий справочник может оказаться полезным.Кроме того, в этой статье они ссылаются на предыдущую работу ( Сегменты воротниковой линии для быстрой оценки одометрии из облаков точек Велодина ), которая более подробно описывает метод полярного биннинга, и имеет код C ++ .Ознакомьтесь с документами, но я постараюсь обобщить метод здесь:
Кодирование разреженных 3D-данных с помощью полярного биннинга
CNN для очень быстрой сегментации грунта в велодинных данных LiDAR - Описывает свою методику предварительной обработки в разделе III.A ( Кодирование разреженных 3D-данных в плотную 2D-матрицу ).
- 1) Пусть P представляет ваше исходное облако точек, а M - многоканальную плотную матрицу, которую вы надеетесь вывести.Размер M зависит от количества лазерных лучей, используемых при сканировании, и горизонтального углового разрешения сканера.
- 2) Объедините данные облака точек в полярные бины b (r, c), где r представляетидентификатор кольца и c = floor ((R * atan (x / z) + 180) / 360).
- 3) Используйте следующее отображение для сопоставления бина b (r, c) с соответствующим значением вматрица M, m (r, c), где p ^ i - показание интенсивности лазера:
- 4)В случае пустых контейнеров линейно интерполируйте значение m (r, c) из его окрестности.
Улучшение производительности разреженного отображения
Наконец, взглянув на следующую статью,они вводят некоторые методы для использования редких Велодинных чтений в CNN.Может быть, посмотрите, улучшит ли кто-нибудь из них вашу производительность?
Обнаружение транспортных средств с помощью 3D-лидара с использованием полностью сверточной сети - Описывает методику предварительной обработки в разделе III.A ( Подготовка данных ).
Кодирование данных диапазона в виде 2-канального изображения
- 1) Инициализация 2-канальной матрицы I;Заполните нулями
- 2) Учитывая координаты (x, y, z), пусть theta = atan2 (y, x) и пусть phi = arcsin (z / sqrt (x ^ 2 + y ^ 2 + z ^)2))
- 3) Пусть delta_theta, delta_phi равны среднему горизонтальному и вертикальному разрешению между последовательными излучателями луча соответственно.
- 4) Пусть r = floor (theta / delta_theta);Пусть c = floor (phi / delta_phi)
- 5) Пусть d = sqrt (x ^ 2 + y ^ 2)
- 6) Пусть I (r, c) = (d, z);если две точки проецируются в одну и ту же позицию (редко), держите одну ближе к наблюдателю
Неравная выборка (вверх / вниз)
- В первом сверточном слое авторы сокращают на 4 по горизонтали и 2 по вертикали;Это связано с тем, что для карт точек Velodyne точки плотнее в горизонтальном слое.Этим же фактором они увеличивают в своих окончательных деконволюционных слоях (которые одновременно предсказывают «объектность» транспортного средства и его ограничивающую рамку).
Все методы реализованы в отношении набора данных KITTI / Velodyne LIDAR, поэтомуЯ полагаю, что они могут работать (возможно, с некоторыми изменениями) для вашего конкретного варианта использования.