Автор: Алекс Насли

Обнаружение объектов - ключевая задача при автономном вождении. Автономные автомобили обычно оснащены несколькими датчиками, такими как камера, LiDAR. Хотя сверточные нейронные сети представляют собой современные методы обнаружения 2D-объектов, они не работают с трехмерным облаком точек из-за разреженности данных датчиков, поэтому необходимы новые методы. Сети обнаружения трехмерных объектов работают с трехмерным облаком точек, предоставляемым датчиком дальности. В этой диссертации сети на основе LiDAR подробно описаны и реализованы, как и VoxelNet. VoxelNet - это сквозная сеть, которая сочетает в себе извлечение функций и прогнозирование ограничивающих рамок. VoxelNet обучена на тесте KITTI для автомобилей. Основным показателем оценки производительности является средняя средняя точность.

Обзор VoxelNet

VoxelNet - это сквозная сеть, которая сочетает в себе извлечение признаков и прогнозирование ограничивающей рамки. Эта сеть работает непосредственно с данными трехмерного облака точек. Сеть создает трехмерные ограничивающие рамки из облака точек, как показано на рисунке 1.

Во-первых, трехмерное пространство делится на воксели с равным интервалом. Точки сгруппированы по вокселю, которому они принадлежат.
Первый уровень VoxelNet - это уровень кодирования, который преобразует группу точек в каждом вокселе в представление объекта, тензор 4D. Слой называется слоем кодирования функций вокселей.
Затем к входному тензору применяется трехмерная свертка для агрегирования воксельных функций.
Выходные данные сверточного среднего слоя являются входными данными слоя RPN. RPN создает карту оценки вероятности и карту регрессии. RPN показан на рисунке 2. Потеря представляет собой сумму потери классификации и потери регрессии.

Набор данных

Тест KITTI для обнаружения 3D-объектов содержит 7481 обучающую выборку и 7518 тестовых выборок. Названия истинных меток тестового набора недоступны, поэтому для обучения мы разделим 7481 обучающую выборку на обучающий набор и набор проверки. Обучающий набор содержит 3712 данных, а проверочный набор содержит 3769 данных. Каждые данные включают точки LiDAR, изображение левой камеры, соответствующие матрицы проекций и метки.

Обучение

Я реализовал VoxelNet в Керасе. Реализация Keras используется только для обнаружения автомобилей. Более того, гиперпараметры изменены для получения лучших экспериментальных результатов. Сеть была обучена на единственной выборке и на небольшом наборе данных. Якорный ящик считается положительным, если он имеет наивысшую долговую расписку с любой наземной истиной или долговую расписку выше 0,6 с любыми наземными ячейками истинности. Якорный блок оценивается как отрицательный, если долговая расписка со всем наземным блоком истинности меньше 0,45. Эти якорные блоки считаются безразличными,
их долговая расписка составляет от 0,45 до 0,6. В [1] использовался стохастический градиентный спуск со скоростью обучения 0,01 для первых 150 эпох и 0,001 для последних 10 эпох. Вместо использования стохастического градиентного спуска сеть была оптимизирована с помощью оптимизатора Adam со скоростью обучения 0,001, beta1 = 0: 9 и beta2 = 0: 999 для 230 эпох.

Сначала VoxelNet была обучена на одном образце, чтобы показать результат переобучения. С этими настройками были произведены следующие потери в обучении, как показано на рисунке 3, который был нанесен на график в TensorBoard. Затем VoxelNet была обучена на небольшом наборе данных с размером пакета 2. Следующая потеря обучения была произведена на Рисунке 4, который был нанесен на график в TensorBoard.

Прогноз

Сначала сеть обучалась на единственной выборке. Величина потерь при обучении сети была уменьшена почти до нуля. Это можно проверить с помощью прогнозирования на обучающей выборке. Время вывода прогноза составляет около 0,7 сек.

Во-вторых, сеть была обучена на небольшом наборе данных. На рисунке 5 показаны некоторые прогнозы на обучающих выборках. Конечно, сеть предсказывала некоторые ложные срабатывания ограничивающих рамок. На рисунке 5 зеленые прямоугольники представляют собой основную истину, а красные прямоугольники представляют собой предсказанные прямоугольники. На рисунке 5 сцены с правой стороны построены в 3D с помощью библиотеки Mayavi Python. Белые точки - это измерения датчика LiDAR.

Резюме

В этой части моей дипломной работы я познакомился с обнаружением 2D-3D объектов. Хотя сверточные нейронные сети представляют собой современные методы обнаружения 2D-объектов, они не работают с трехмерным облаком точек из-за разреженности данных датчиков. Следовательно, необходимо выполнить некоторую предварительную операцию с облаком трехмерных точек.
VoxelNet делит трехмерное пространство на воксели, преобразует вокселы в матричное представление, которое кодирует взаимодействие точек внутри вокселя. Сверточные нейронные сети извлекают сложные функции и выводят значения достоверности и значения регрессии ограничивающих прямоугольников. Я реализовал VoxelNet в Керасе. Я визуализировал прогноз на изображениях из теста Kitti. Я использовал Mayavi для построения точек 3D-LiDAR с ограничивающими рамками.

Библиография

[1] Инь Чжоу и Онел Тузель. Voxelnet: сквозное обучение для обнаружения 3dobject на основе облака точек. Препринт arXiv arXiv: 1711.06396, 2017.