Автор этой статьи, Жэнь Сюцянь, публичный аккаунт: участник компьютерного зрения, из-за форматных причин могут возникнуть проблемы с отображением формулы, рекомендуется прочитать исходную ссылку:Обзор Метод обнаружения замыкания петли SLAM
В задаче визуального SLAM оценка позы часто является рекурсивным процессом, то есть поза текущего кадра вычисляется из позы предыдущего кадра, поэтому ошибка в нем передается кадр за кадром, что и мы звоним сказалкумулятивная ошибка. Эффективным способом устранения ошибок является обнаружение замыкания цикла. Обнаружение петли оценивает, вернулся ли робот в предыдущее положение, и, если обнаружена петля, он передает информацию серверной части для обработки оптимизации. Петля является более компактным и точным ограничением, чем бэкэнд, который может формировать топологически непротиворечивую карту траектории. Если замыкание цикла можно обнаружить и оптимизировать, результаты могут быть более точными.
При обнаружении обратной петли, если все предыдущие кадры берутся и сопоставляются с текущим кадром, совпадение достаточно хорошее, чтобы быть обратной связью, но это приведет к слишком большому количеству вычислений, слишком медленной скорости сопоставления, и начальное значение не будет найдено. количество совпадающих матчей огромно. Таким образом, обнаружение петель является трудным моментом проблемы SLAM.Для этой проблемы здесь мы суммируем несколько классических методов для вашей справки.
Мешок слов (Bag Of Words, BOW)
принцип
Введение: более популярным методом обнаружения замыкания цикла в существующей системе SLAM является метод объединения точек признаков с набором слов (таких как ORB-SLAM, VINS-Mono) и так далее. Подход, основанный на наборе слов, заключается в предварительной загрузкемешок слов словарное дерево, который информирует предварительно загруженное дерево словаря о преобразовании дескриптора каждой локальной характерной точки на изображении вслово, словарь содержит все слова, путем подсчета слов всего изображения aмешок слов вектор, расстояние между векторами набора слов представляет разницу между двумя изображениями. В процессе поиска изображения метод инвертированного индекса используется для того, чтобы сначала найти ключевые кадры с тем же словом, что и текущий кадр, и вычислить разницу между ними и текущим кадром в соответствии с их вектором набора слов.сходство, удалить кадры изображения с недостаточным сходством, взять оставшиеся ключевые кадры в качестве ключевых кадров-кандидатов и отсортировать их в соответствии с расстоянием вектора мешка слов от ближнего к дальнему [1].
Связь между словарями, словами и дескрипторами следующая:
Таким образом, метод обнаружения закрытия цикла, основанный на модели мешка слов, можно разделить на следующие три шага [2]:
1. Извлечение функций
2. Создайте словарь (набор всех слов)
3. Определите, какие слова находятся в кадре, и сформируйте вектор набора слов (1 означает наличие слова, 0 означает отсутствие)
4. Сравните разницу между векторами описания двух кадров.
Следующие модули вводятся один за другим:
построить словарь
Эквивалентно описанию процесса субкластеризации, можно использовать алгоритм K-ближайших соседей или модель набора слов можно динамически генерировать в режиме онлайн с использованием функций из уже исследованной среды [3].
(1) алгоритм k-ближайшего соседа
По изображениям, собранным в автономном режиме, извлекается дескриптор признака, и процесс использования алгоритма k-ближайших соседей для формирования словаря выглядит следующим образом:
1. Случайным образом выберите k центральных точек из нескольких дескрипторов в словаре:
2. Для каждого образца рассчитайте расстояние между ним и каждой центральной точкой и возьмите наименьшую центральную точку в качестве ее классификации.
3. Пересчитайте центральную точку каждого класса.
4. Если каждая центральная точка изменяется очень мало, алгоритм сходится и завершает работу, в противном случае продолжается итеративный поиск.
Каждый классифицированный класс представляет собой слово, и каждое слово состоит из дескрипторов с одинаковыми расстояниями после кластеризации.
Другие подобные методы включают иерархическую кластеризацию, K-means++ и т. д.
Алгоритм Kmeans++ улучшен на основе Kmeans.Основное улучшение заключается в инициализации центральных точек.В отличие от случайной генерации исходной версии алгоритма, он использует некоторые стратегии, чтобы сделать k начальных центральных точек как можно дальше от каждого другой, чтобы получить эти центральные точки, Он имеет лучшее представление и полезен для эффекта последующих операций классификации [8].
Процесс инициализации центральной точки в алгоритме Kmeans++ выглядит следующим образом:
1. Случайным образом выбрать точку из n выборок в качестве первой центральной точки;
2. Рассчитайте расстояние между каждой точкой образца и ближайшей к ней центральной точкой., выберите новую центральную точку в соответствии со стратегией
3. Повторяйте 2, пока не будет получено k центральных точек.
(2) Онлайн-модель динамического набора слов:
Традиционная модель BOW создает автономные словари.Более гибкий метод заключается в динамическом создании словаря, чтобы можно было эффективно идентифицировать функции, которые не отображаются в обучающем наборе. Типичными статьями являются [4], [5]. В статье модель мешка слов для распознавания изображений расширена, и для оценки вероятности закрытия цикла используется байесовская фильтрация. Проблема обнаружения замыкания петли связана со сложностью идентификации картируемых областей, а проблема глобальной локализации связана со сложностью определения положения робота на существующей карте. Когда слово найдено в текущем изображении, обновляются оценки tf-idf изображений, которые видели это слово раньше. Этот метод динамически создает словарь на основе признаков, обнаруженных при изучении среды, чтобы можно было эффективно идентифицировать среды с функциями, не представленными в обучающем наборе.
словарное дерево
Поскольку словарь слишком велик, поиск совпадающих слов по одному приведет к большому объему вычислений, поэтому словарь можно представить в виде k-арного дерева Процесс построения словарного дерева выглядит следующим образом [6]:
-
Извлечение локальных дескрипторов (слов) в автономном режиме из большого количества обучающих изображений в сценариях приложений (каждое изображение может иметь несколько дескрипторов)
-
Сгруппируйте эти дескрипторы KNN в k категорий;
-
Для каждого узла первого уровня продолжайте KNN объединять в k категорий, чтобы получить следующий уровень;
-
Согласно этому циклу, пока количество слоев кластера не достигнет порога d, листовой узел представляет собой слово, а промежуточный узел является центром кластера.
(Источник: четырнадцатая лекция Visual SLAM)
Однако основным недостатком создания набора слов является необходимость предварительной загрузки обученного словарного дерева набора слов, которое, как правило, содержит большое количество характерных слов. быть большим бременем для некоторых мобильных приложений. Чтобы решить эту проблему, мы можем динамически построитьk-dtree, чтобы избежать хлопот с предварительной загрузкой словарей. В процессе добавления ключевых кадров поддерживается глобальное дерево k-d, и каждая характерная точка добавляется в это дерево k-d в единицах кадров. В процессе поиска изображения найдите ближайший узел для сопоставления, проголосуйте за каждый ключевой кадр в соответствии с результатом сопоставления, а количество полученных голосов можно использовать в качестве оценки кадра, тем самым сгенерировав набор кандидатов ключевого кадра, аналогичный текущий кадр [1] .
мешок слов вектор
Сходство между ключевыми кадрами и кадрами запроса измеряется расстоянием между векторами наборов слов. Предположим, что локальный набор дескрипторов изображения I равен [6]
каждый дескрипторНайдите ближайшее слово в дереве словарей, предполагая, что его word_id равен, и его соответствующий вес равен. Процесс поиска начинается с корневого узла словарного дерева, и каждый уровень находит ближайший узел, а затем продолжается на следующем уровне, пока не достигнет конечного узла. Размер словарного запаса, определите это сопоставление для поиска в дереве словаря как
Если два дескриптора сопоставляются с одним и тем же словом, веса добавляются для получения вектора фиксированной длины:
в
Таким образом, при поиске ключевого кадра по слову нет необходимости просматривать все ключевые кадры, а можно найти только ключевые кадры индекса слов, отображаемого дескриптором кадра запроса.
расчет сходства
Некоторые слова более полезны, чем другие, для определения того, показывают ли два изображения одно и то же место, в то время как некоторые слова не вносят большого вклада в распознавание. Чтобы различать важность этих слов, каждому слову можно присвоить определенный вес, общую схему. является TF-IDF. Он сочетает в себе важность слов в изображении (TF-Term Frequency) и важность слов в процессе сбора (IDF-Inverse Document Frequency) для оценки важности слова в документе или наборе доменных документов в корпусе. y степень повторения.
Для одного изображения предположим, что общее количество слов в одном изображении равно, слово листового узлаПоявившийсяраз, то TF равно [7]:
TF: Частота появления признака на одном изображении, чем выше степень различения, тем выше степень различения
При построении словаря учитывайте IDF, предполагая, что количество всех признаков равно, листовой узелКоличество, то ИДФ
IDF: Чем ниже частота слова в словаре, тем ниже степень дискриминации
ноВес равен произведению TF и IDF:
После рассмотрения весов для изображения, его характерные точки могут соответствовать многим словам, образующим его словарный мешок:
так что один векторописывает изображение, Этот вектор является разреженным вектором, ненулевая часть представляет, какие слова содержатся, и эти значения являются значениями TF-IDF.
получить,два изображенияиПосле этого можно пройтиНормализованная форма вычисляет несходство:
в,значит только весть слова взначит только весть слова ввыраженный в,слова в .Чем больше, тем больше сходство при оценкеКогда он достаточно велик, можно сделать вывод, что два кадра могут быть петлевыми.
Кроме того, если для представления сходства двух изображений используется только абсолютное значение, это не сильно поможет, когда окружающая среда уже похожа, поэтому можно принять априорное сходство., который представляет собой сходство между изображением ключевого кадра в определенный момент и ключевым кадром в предыдущий момент, а затем остальные части нормализуются относительно этого значения:
Следовательно, можно определить, что если сходство между текущим кадром и предыдущим ключевым кадром в три раза превышает сходство между текущим кадром и предыдущим ключевым кадром, считается, что может существовать петля.
Кроме того, существуют и другие методы, подразделяющиеся на локальные (Квадрат TF, Частотный логарифм, Двоичный,BM25 TFи т. д.) и глобальные (Вероятностный IDF, Squared IDF) и т. д., вы можете продолжить поиск, если вам это интересно.
петлевая проверка
Еще одна проблема с моделью мешка слов заключается в том, что она не совсем точна и будет иметь ложноположительные данные. Другие методы должны быть проверены на более поздних этапах поиска обнаружения закрытия петли. Если текущее отслеживание было полностью потеряно, его необходимо переместить, чтобы настроить позу текущего кадра. При валидации перемещения пространственная информация используется для скрининга, апостериорная коррекция может производиться с помощью PnP или могут использоваться условные случайные поля. Эта проверка удаляет изображения, геометрически не соответствующие эталонному изображению [3]. После получения точного сопоставления изображений положение камеры может быть определено в соответствии с результатом сопоставления.
Если отслеживание системы нормальное и обнаружена ранее посещенная сцена, необходимо выполнить обнаружение петли, чтобы добавить новые ограничения. Метод обнаружения петель на основе набора слов заботится только о наличии или отсутствии слов и не заботится о порядке слов, что легко может привести к искажению восприятия. зависит от внешнего вида и не использует никакой геометрической информации, которая приведет к похожим изображениям. В качестве обратной связи необходимо добавить шаг проверки. Проверка в основном учитывает следующие три пункта [1]:
1) Не замыкайте петлю со слишком близкими кадрами.Если ключевой кадр выбран слишком близко, сходство между двумя ключевыми кадрами будет слишком высоким, а обнаруженная петля не имеет большого значения, поэтому кадр, используемый для петли детектирования являются более редкими, не идентичными друг другу и охватывают всю среду [7]. А во избежание ошибочных закольцовываний оценивается как закольцовывание, если есть закольцовывания возле определенной позы много раз подряд (3 раза в ORB-SLAM) и определенная поза в истории; кадры-кандидаты на закольцовывание все равно должны быть совпало, и совпадающих точек достаточно для обратной связи.
2) Результаты замыкания согласуются для последовательных кадров определенной длины. Если петля успешно обнаружена, скажем, в кадре 1 иРамка. Тогда вполне вероятно, что первыйРамка,Кадры будут возвращаться к кадру 1. Однако убедитесь, что кадр 1 и кадрМежду кадрами есть петли, что полезно для оптимизации траектории, но следующий шагРамка,Каждый кадр будет образовывать цикл с первым кадром, и помощь не так велика, потому что накопленная ошибка была устранена с предыдущей информацией, и повторные циклы не принесут больше информации. Поэтому мы будем группировать «похожие» замыкания циклов в класс, чтобы алгоритм не обнаруживал повторно замыкания циклов одного и того же класса.
3) Результаты замыкания пространственно согласованы. То есть выполнить сопоставление признаков на двух кадрах, обнаруженных замыканием цикла, оценить движение камеры, а затем поместить движение в предыдущую карту поз, чтобы проверить, есть ли большая разница с предыдущей оценкой.
Исходный код классической модели мешка слов
DBOW
Эта библиотека довольно старая, поэтому краткое введение: Библиотека DBow — это библиотека C++ с открытым исходным кодом для индексации и преобразования изображений в представление «мешок слов». Он реализует иерархическое дерево для аппроксимации ближайших соседей в пространстве признаков изображения и создания визуального словаря. DBow также реализует базу данных изображений на основе файловой структуры обратного порядка для индексации изображений и быстрого выполнения запросов. DBow не требует OpenCV (за исключением демонстрационного приложения), но они полностью совместимы.
Адрес источника:GitHub.com/Дориан3/дБ…
DBOW2
DBoW2 — это улучшенная версия библиотеки DBow.DBoW2 реализует базу данных изображений, которая указывает на проиндексированные изображения в положительном и обратном порядке, что позволяет быстро выполнять запросы и сравнивать функции. Основные отличия от предыдущей библиотеки DBow:
- Класс DBoW2 является шаблонным, поэтому его можно использовать с любым типом дескриптора.
- DBoW2 может напрямую использовать ORB или краткий дескриптор.
- DBoW2 добавляет прямые файлы в базу данных изображений для быстрого сравнения характеристик, реализуемого DLoopDetector.
- DBoW2 больше не использует двоичный формат. С другой стороны, он использует систему хранения OpenCV для хранения словаря и базы данных. Это означает, что эти файлы можно хранить в виде обычного текста в формате YAML для большей совместимости или сжимать в формате gunzip (.gz), чтобы уменьшить использование диска.
- Некоторый код был переписан для оптимизации скорости. Интерфейс DBoW2 был упрощен.
- Из соображений производительности DBoW2 не поддерживает стоп-слова.
DBoW2 требует OpenCV иBoost::dynamic_bitset
класс, чтобы использовать краткую версию.
DBoW2 и DLoopDetector были протестированы на нескольких реальных наборах данных, за 3 мс они преобразовывали краткие характеристики изображений в наборы слов и за 5 мс находили совпадения изображений в базе данных из более чем 19 000 изображений.
Адрес источника:GitHub.com/Дориан3/дБ…
DBoW3
DBoW3 — это улучшенная версия библиотеки DBow2, основные отличия от предыдущей библиотеки DBow2:
- DBoW3 требует только OpenCV. Зависимость DBoW2 от DLIB была удалена.
- DBoW3 может работать с двоичными дескрипторами и дескрипторами с плавающей запятой. Нет необходимости переопределять какие-либо классы для любых дескрипторов.
- DBoW3 компилируется в Linux и Windows.
- Некоторый код был переписан для оптимизации скорости. Интерфейс DBoW3 был упрощен.
- Используйте двоичные файлы. Загрузка/сохранение бинарных файлов в 4-5 раз быстрее, чем yml. Кроме того, они могут быть сжаты.
- YML-файл, совместимый с DBoW2
Адрес источника:GitHub.com/peopleSalinas/D…
FBOW
FBOW (Fast Bag of Words) — чрезвычайно оптимизированная версия библиотеки DBow2/DBow3. Библиотека оптимизирована для ускорения создания Bag of Words с использованием инструкций AVX, SSE и MMX. fbow загружает словарь примерно в 80 раз быстрее, чем DBOW2 (см. каталог с тестами и попробуйте). Это примерно в 6,4 раза быстрее при преобразовании изображения в набор слов на машине с инструкциями AVX.
Адрес источника:GitHub.com/peopleSalinas/post…
FAB-MAP
представляет собой вероятностный подход к проблеме идентификации мест по внешнему виду. Предлагаемая нами система не ограничивается локализацией, но может определять, что новые наблюдения происходят из ранее невиданных мест, тем самым дополняя свою карту. По сути, это SLAM-система пространства видимости. Наш вероятностный подход позволяет нам явным образом учитывать наложение изображений в окружающей среде — малую вероятность того, что идентичные, но неочевидные наблюдения происходят из одного и того же места. Мы достигаем этого, изучая генеративную модель внешнего вида места. Разделив задачу обучения на две части, новые модели мест можно изучать в режиме онлайн только на основе одного наблюдения за местом. Сложность алгоритма линейна по количеству позиций на карте, что особенно подходит для онлайн-обнаружения замыкания цикла в мобильных роботах.
Адрес источника:GitHub.com/AR все еще любит…
Реализация модели мешка слов на V-SLAM
С++ версия
Введение в блог:Нико получил OVA на GI.com/gossip-of-word…
Адрес источника:GitHub.com/Нико Ло В/Сима…
версия питона
Loop Closure Detection using Bag of Words
Адрес источника:GitHub.com/прыжок av9056/…
матлаб:
Введение в блог:Джин Айджун Эцзяо.com/blog/2014/1…
Адрес источника:GitHub.com/Джин Айджун Эцзяо/Хе…
ORB-SLAM
Адрес источника:GitHub.com/Рауль грудное молоко/orb…
ORB-SLAM2
Адрес источника:GitHub.com/Рауль грудное молоко/orb…
VINS-Mono
kintinous
GitHub.com/ticket 3 специально/kin t…
ссылка
[1] Бао Хуцзюнь, Чжан Гофэн, Цинь Сюйин Дополненная реальность: принципы, алгоритмы и приложения [M] Science Press: Пекин, 2019: 114-115.
[2] zhuanlan.zhihu.com/p/45573552
[3] Дж. Фуэнтес-Пачеко, Дж. Руис-Асенсио и Дж. М. Рендон-Манча, «Визуальная одновременная локализация и картографирование: обзор».Artif Intell Rev, т. 43, № 1, стр. 55–81, январь 2015 г.
[4] А. Анджели, С. Донсье, Ж.-А. Мейер и Д. Филлиат, «Визуальное обнаружение замыкания петли в реальном времени», в2008 IEEE International Conference on Robotics and Automation, Пасадена, Калифорния, США, 2008 г., стр. 1842–1847.
[5] Т. Боттерилл, С. Миллс, А. Лтд и К. Ст, «Одновременная локализация и картирование одной камеры на основе набора слов», стр. 28.
[6] Ууху. Call.com/question/49…
[7] Гао Сян, Чжан Тао, четырнадцать лекций по визуальному SLAM [M], Electronic Industry Press, 2017: 306-316.
[8] blog.CSDN.net/Ро Му Хён 30902516…
Случайные папоротники
принцип
Этот метод перемещения сжимает и кодирует каждый кадр камеры и эффективно оценивает сходство между разными кадрами. Способ кодирования со сжатием использует метод случайного папоротника. В этом методе перемещения на основе ключевых кадров используется метод кодирования кадров на основе папоротника: вводится изображение RGB-D, простой двоичный тест оценивается в случайных позициях изображения, и весь кадр кодируется для формирования кодированного блока. , каждый папоротник Создается небольшой блок кодов, и коды объединяются, чтобы выразить компактный кадр камеры. Каждый блок кодирования указывает на строку таблицы кодирования, связанную с папоротником с эквивалентной кодировкой, в которой хранится идентификатор ключевого кадра.Таблица кодирования хранится в виде хэш-таблицы.
По мере непрерывного сбора новых изображений, если различие превышает пороговое значение, в строку будет добавлен идентификатор нового входящего кадра. Во время восстановления отслеживания позы извлекаются из хэш-таблицы, чтобы связать наиболее похожие ключевые кадры. Степень несходства между новым кадром и всеми ранее закодированными кадрами измеряется поблочным расстоянием Хэмминга (BlockHD).
Когда возвращаемое значение равно 0, два блока кодирования похожи. Когда возвращаемое значение равно 1, это означает, что по крайней мере один бит отличается. Следовательно, BlockHD представляет количество различных блоков кодирования. Длина блоков разная, что напрямую влияет на свойства точности/отзыва BlockHD при поиске похожих кадров. Чтобы определить, удовлетворяет ли изображение достаточному сходству, необходимо установить минимальное значение BlockHD.Для каждого нового кадра вычислить
Указывает, сколько полезной информации предоставляет новый кадр, если новый кадрОчень низкое значение означает, что кадр очень похож на предыдущий кадр, еслиВысокое значение указывает на то, что поза была взята с новой точки зрения и должна быть сохранена как ключевой кадр. С такими наблюдениями вы можете попытаться захватить кадры отслеживания и автоматически решить, какие из них следует сохранить в качестве ключевых кадров. передать значениеи порог, определяемый реализацией, который может решить, следует ли добавить новый кадр в хеш-таблицу или отбросить. Этот метод поиска ключевых кадров и извлечения поз может эффективно сократить время 3D-реконструкции и подходит для текущего алгоритма SLAM с открытым исходным кодом.
код
Применение Random Fern в VSLAM
kinect fusion
elastic fusion
GitHub.com/ticket 3 специально/Эль как…
PTAM
Метод перемещения в PTAM очень похож на случайные папоротники. PTAM предназначен для уменьшения каждого кадра изображения и размытия по Гауссу для создания миниатюры при построении ключевого кадра, который используется в качестве дескриптора для всего изображения. Во время поиска изображения с помощью этой миниатюры вычисляется сходство между текущим кадром и ключевым кадром. Основным недостатком этого метода является то, что при изменении угла обзора результаты будут иметь большое отклонение, а надежность не так хороша, как у метода, основанного на инвариантных признаках.
ссылка
[1] Б. Глокер, С. Изади, Дж. Шоттон и А. Криминизи, «Перемещение камеры RGB-D в реальном времени», в2013 IEEE International Symposium on Mixed and Augmented Reality (ISMAR), Аделаида, Австралия, 2013 г., стр. 173–179.
[2] Б. Глокер, Дж. Шоттон, А. Криминиси и С. Изади, «Релокализация камеры RGB-D в реальном времени с помощью рандомизированных папоротников для кодирования ключевых кадров»,IEEE Trans. Visual. Comput. Graphics, т. 21, № 5, стр. 571–583, май 2015 г.
методы, основанные на глубоком обучении
Методы поиска изображений, основанные на глубоком обучении, являются глобальными методами поиска, которые требуют большого объема данных для предварительного обучения, но имеют хорошую устойчивость к изменениям сцены. Некоторые комплексные методы оценки положения камеры дали многообещающие результаты. Новаторская работа по объединению глубокого обучения и визуальной локализации, PoseNet, использует нейронные сети для прямого получения позы камеры с 6 степенями свободы из изображений. По сравнению с традиционным методом визуального позиционирования здесь отсутствует сложный процесс сопоставления изображений, и итеративное решение позы камеры не требуется, но входное изображение должно находиться в обучающей сцене. Позже на этой основе они использовали ошибку проекции в функции ошибок для дальнейшего повышения точности оценки позы. Точно так же MapNet использует традиционный метод для определения относительного положения двух изображений, сравнивает его с относительным положением, рассчитанным сетью, чтобы получить относительную ошибку положения камеры, и добавляет относительную ошибку положения к функции потерь сети. , так что решение получено.Положение камеры более плавное, и MapNet также может оптимизировать график положения результатов нескольких последовательных кадров, чтобы окончательная оценка положения камеры была более точной.
контролируемый метод
В основном используйте Places365 Чжоу Болей.
Введение в принцип: Places365 — это последняя часть базы данных Places2. У Places365 есть две версии:Places365-StandardиPlaces365-Challenge. Набор поездов Places365-Standard состоит из примерно 1,8 миллиона изображений в 365 категориях сцен, до 5000 изображений в каждой категории. Мы обучили различные сети на основе CNN на Places365-Standard и выпустили их следующим образом. Между тем, серия поездов Places365-Challenge содержит 6,2 миллиона изображений, а также все изображения Places365-Standard (всего около 8 миллионов изображений), максимум 40 000 изображений в каждой категории. Places365-Challenge проведет совместный семинар ILSVRC и COCO на выставке ECCV 2016 в связи с Places2 Challenge 2016.
Данные Places3-Standard и Places365-Challenge публикуются на веб-сайте Places2.
Предварительно обученные модели CNN на Places365-Standard:
- AlexNet-places365
- GoogLeNet-places365
- VGG16-places365
- VGG16-hybrid1365
- ResNet152-places365
- ResNet152-hybrid1365
Адрес источника:GitHub.com/C парусное видение…
неконтролируемый метод
Принцип РАСЧ
Использование неконтролируемого подхода глубокой нейронной сети для обнаружения замыканий цикла в большом SLAM в реальном времени может улучшить эффект обнаружения. Этот метод создает структуру автоматического кодирования, которая может эффективно устранять ошибки локализации границ. При съемке в одном месте, в разное время, из-за таких факторов, как изменение угла обзора, освещенности, климата, динамических изменений цели и т. д. позиционирование будет неточным. Сверточные нейронные сети могут эффективно выполнять задачи классификации на основе зрения. При распознавании сцен встраивание CNN в систему может эффективно идентифицировать похожие изображения. Однако традиционные методы на основе CNN иногда имеют недостатки, такие как низкое извлечение признаков, слишком медленный запрос и слишком большой объем обучающих данных. В то время как CALC — это легкая архитектура быстрого глубокого обучения в реальном времени, которая требует нескольких параметров и может использоваться для обнаружения закрытия цикла SLAM или любой другой задачи распознавания места, которая может хорошо работать даже в системах с ограниченными ресурсами.
Эта модель отображает многомерные необработанные данные в инвариантное к вращению низкоразмерное подпространство дескриптора. Перед обучением каждое изображение в последовательности изображений подвергается случайному проективному преобразованию и масштабируется до 120 × 160 для создания пар изображений, чтобы зафиксировать экстремальные изменения перспективы во время движения. Затем случайным образом выберите несколько изображений для вычисления оператора HOG.Использование дескриптора HOG фиксированной длины может помочь сети лучше изучить геометрию сцены. Сохраните HOG каждого блока тренировочного изображения в стеке, определяемом какразмерность,вразмер блока,размерность каждого оператора HOG. Сеть имеет два сверточных слоя с объединяющими слоями, один чисто сверточный слой и три полносвязных слоя, а ReLU используется в качестве единицы активации сверточных слоев. В этой архитектуре изображение подвергается проективному преобразованию, операция извлечения дескриптора HOG вычисляется только один раз для всего обучающего набора данных, а результат записывается в базу данных для обучения. Во время обучения размер пакета N устанавливается равным 1, и используются только слои в прямоугольной области.
Связанная литература
[1] Н. Меррилл и Г. Хуанг, «Легкое неконтролируемое закрытие глубокой петли», вRobotics: Science and Systems XIV, 2018.
код
CALC
Принцип введения: сверточный автоэнкодер для обнаружения закрытия цикла. Этот код разделен на два модуля. TrainAndTest используется для обучения и тестирования моделей, а DeepLCD — это библиотека C++ для онлайн-обнаружения замыкания цикла или извлечения изображений.
Адрес источника:github.com/rpng/calcПодпишитесь на официальную учетную запись, нажмите «Круг обучения», «Введение в SLAM», изучите SLAM, основную технологию 3D-видения, с нуля и получите безоговорочное возмещение в течение 3 дней.Это преимущество в течение длительного времени, и обучение не должно проводиться в одиночку.Здесь есть учебные материалы, практические задания, ответы на вопросы и т. д. Качественный учебный кружок поможет вам избежать обходных путей и быстро начать работу!
Рекомендуемое чтение
Как систематически изучать визуальный SLAM с нуля? Изучайте SLAM вместе с нуля | Зачем изучать SLAM? Изучайте SLAM вместе с нуля | Чему нужно научиться, чтобы научиться SLAM? Изучайте SLAM вместе с нуля | Какая польза от SLAM? Изучайте SLAM вместе с нуля | Хотите изучить новые возможности C++? Изучайте SLAM вместе с нуля | Зачем использовать однородные координаты? Изучайте SLAM вместе с нуля | Вращение твердых тел в трехмерном пространстве Изучайте SLAM вместе с нуля | Зачем нужны группы Ли и алгебры Ли? Изучайте SLAM вместе с нуля | Модель изображения камеры Изучайте SLAM вместе с нуля | Как по-настоящему понять эпиполярное ограничение, не используя формулу? Изучайте SLAM вместе с нуля | Волшебная омография Изучайте SLAM вместе с нуля | Привет, Point Cloud Изучайте SLAM вместе с нуля | Добавьте фильтр в облако точек Изучите SLAM вместе с нуля | Гладкая нормальная оценка облака точек Изучайте SLAM вместе с нуля | Эволюция от облака точек к сетке Изучайте SLAM вместе с нуля | Понимание оптимизации графов, шаг за шагом, чтобы понять код g2o Изучите SLAM вместе с нуля | Освойте процедуру программирования вершин g2o Изучите SLAM вместе с нуля | Освойте процедуры кода на стороне g2o Изучайте SLAM вместе с нуля | Использование кватернионной интерполяции для выравнивания IMU и кадров изображения С чего начать работу с компьютерным зрением? Разбор исследовательских достижений крупного рогатого скота, лабораторий крупного рогатого скота и крупного рогатого скота в области SLAM Я использовал MATLAB для создания 2D LiDAR SLAM. Визуально поймите кватернионы, чтобы вы больше не теряли волосы Каковы репрезентативные работы семантического SLAM в прошлом году? Обзор технологии Visual SLAM Резюме | VIO, сборник классификаций статей, связанных с лазерным SLAM Насколько высоки требования к программированию для изучения SLAM? 2018 SLAM, трехмерное видение направления поиска работы, обмен опытом 2018 SLAM, трехмерное видение направления поиска работы, обмен опытом Глубокое обучение встречает SLAM | Как оценить DeepVO, VINet, VidLoc на основе глубокого обучения? Сводка требований к стыковке ресурсов ИИ: этап 1 Сводка требований к стыковке ресурсов ИИ: проблема 2
Компьютерное зрение — это глаз искусственного интеллекта. Официальный аккаунт создал 170 статей, которые являются систематическими, строгими и легкими для чтения.Нажмите «Сводная категория» в строке меню, чтобы просмотреть исходную серию, в том числе: 3D Vision, Visual SLAM, Deep Learning, Machine Learning, Depth Camera. , Введение в популярную науку, Введение в направление CV, двойная камера мобильного телефона, панорамная камера, калибровка камеры, медицинские изображения, передовые конференции, робототехника, ARVR, отраслевые тенденции и т. д. В то же время есть вводные основы, проект реального боя, опыт интервью, учебные материалы и другие галантереи. Следите за звездой одним щелчком мыши, добавляйте группу технического обмена и добивайтесь прогресса вместе.