Comments 16
А почему облако точек такое рыхлое, туда только фичи попадают?
"Рыхлое" облако получается из-за искажений камер. Rolling Shutter очень сильно влияет на качество. Сейчас мы править это умеем, но все демки были сделаны без учета Rolling Shutter.
А насчет фич и да и нет. Во всех демках используется Direct подход. Облака строятся из точек, которые мы отследили между кадрами. Ничего дополнительного не используем.
Вероятно из-за проблем, упомянутых в статье - https://habr.com/ru/post/584616/
Видов айфонов меньше, мы можем откалибровать камеру для каждого существующего устройства.
Также из плюсов намного проще выжать всю мощь устройства. Тут и нейросети, и частичная обработка на GPU. Возможно сейчас андройд ни в чем не уступает, мы уже больше исторически ведем разработку на iOS.
Ну и в прошлом я iOS разработчик) Это тоже повлияло отчасти на выбор платформы для разработки
Спасибо, интересно! На каком железе происходит вычисление карты? Сколько времени это сейчас занимает? Сколько времени требуется для релокализации по этой карте?
Вопрос хороший, скорость работы много из чего составляется.
При "стандартных" настройках она держится порядка 15 FPS и в основной своей части зависит только от желаемого количества точек, но выбор этого количества точек и остальной image processing завиист от площади изображения. Обычно мы используем HD разрешение для полученя проездов с не особо большим количеством точек т.к. нам важна траектория, а точки на знаках хоть какие-то будут (да, облако не такое плотное, как в статье, но оно и не нужно)
Работет в один поток, FPS представлен для Intel Core i7-8550U @ 8x 4GHz. На iPhone 8 отрабатывает 10 FPS. Потенциал намного выше, мы как раз сейчас занимаемся оптимизацией и переносом части обработки на GPU.
Скорость релокализации сложно назвать. Она зависит от того, насколько проезды пересекаются (т.е. сколько там реально точек пересечения траектории). Она практически не зависит от количества точек в облаке, т.к. большую часть занимают нейросети для обрабтки изображений. Релокализация, кстати, тоже по своей сути является неким direct подходом в нашем случае.
А сколько примерно точек на кадр по-дефолту у вас установлено? 15FPS это весь пайплайн, или только слам?
"На iPhone 8 отрабатывает 10 FPS. Потенциал намного выше, мы как раз сейчас занимаемся оптимизацией и переносом части обработки на GPU." Но насколько я помню, на айфоне ведь нет куды, будете гнать данные по воздуху?
Как понимаю, у вас также формируются кейфреймы и релокализация происходит относительно них? Или какая-то иная схема? А как обстоят дела с sensor fusion, ваш оптимизатор поддерживает его (я правильно понял, что у вас не g2o)?
Прошу прощения, что так много вопросов, просто мало кто пишет про слам на русском))
1500 точек на кадр. 15 fps отрабатывает только SLAM.
На айфоне есть Metal для процесинга данных и изображений. Мы уже использовали его для ускорения DSO. На сколько ускорилось мы только не замерили.
Точки есть только на кейфреймах, релокализация работает на них. Верно.
Sensor Fusion работает только с GPS. IMU почти не используется. Оптимизатор не g2o, используем собственные наработки.
большую часть занимают нейросети для обработки изображенийА какой размер сетей, на сколько они больше или меньше 2Мб?
ps: i7-8550U — слабый мобильный процессор, тем более если в 1 поток.
Отношение производительности один поток+векторизаця 1.8GHz*8 / (2.39GHz*4) = 1.51 на базовых частотах и 3 в booste. И по памяти 35Gb/s / 23Gb/s = 1.52 тоже как раз отличие в 1.5 раза.
deleted
Визуальный SLAM: делаем HD-карты при помощи смартфона