Обмен технологиями | Отслеживание целей пода --- Объяснение принципа глубокой сортировки

искусственный интеллект Интернет вещей

file Во-первых, основные этапы многоцелевого отслеживания

  • Получить необработанные видеокадры
  • Обнаружение объектов в видеокадрах с помощью детекторов объектов
  • Извлеките функции в поле обнаруженной цели, которые включают функции внешнего вида (удобны для сравнения функций, чтобы избежать переключения идентификатора) и функции движения (функции движения удобны для фильтрации Калмана, чтобы предсказать его)
  • Рассчитайте степень совпадения перед целью в двух кадрах до и после (используя венгерский алгоритм и каскадное сопоставление) и назначьте идентификатор каждой отслеживаемой цели.

Во-вторых, процесс сортировки.Предшественником Deepsort является алгоритм сортировки, а ядром алгоритма сортировки являются алгоритм фильтра Калмана и венгерский алгоритм.

Функция алгоритма фильтра Калмана: Основная функция этого алгоритма состоит в том, чтобы предсказать следующий момент переменных движения с текущим рядом переменных движения, но первый результат обнаружения используется для инициализации переменных движения фильтра Калмана.

Роль венгерского алгоритма: Проще говоря, это решение проблемы распределения, то есть выделение группы кадров обнаружения и кадров, предсказанных Калманом, так, чтобы кадры, предсказанные Калманом, могли найти кадр обнаружения, который лучше всего соответствует себе для достижения эффекта слежения. Рабочий процесс сортировки показан на следующем рисунке:fileОбнаружения — это ящики, обнаруженные целью. Треки — это информация о треках.

Рабочий процесс всего алгоритма выглядит следующим образом:

(1) Создайте соответствующие треки из результатов, обнаруженных в первом кадре. Инициализируйте переменные движения фильтра Калмана и предскажите его соответствующий кадр через фильтр Калмана.

(2) Выполните сопоставление IOU между кадром обнаружения цели кадра и кадром, предсказанным Tracks в предыдущем кадре, а затем вычислите его матрицу стоимости (1-IOU) по результату сопоставления IOU.

(3) Используйте все матрицы стоимости, полученные в (2), в качестве входных данных венгерского алгоритма для получения результатов линейного сопоставления.На данный момент мы получаем три результата.Первый - несоответствие дорожек (несопоставленные дорожки), мы напрямую удаляем несоответствующие треки; второе — несоответствие детектирования (Unmatched Detections), мы инициализируем такие детектирования как новые треки (new Tracks); третье — что кадр обнаружения и предсказанный кадр успешно спарены, что означает, что мы отследили предыдущий кадр и следующий кадр успешно и обновил соответствующую переменную Tracks с помощью фильтрации Калмана.

(4) Повторяйте шаги (2)-(3), пока видеокадр не закончится.

3. Алгоритм глубокой сортировки

Поскольку алгоритм сортировки по-прежнему является грубым алгоритмом отслеживания, особенно легко потерять его идентификатор, когда объект закрыт. Алгоритм Deepsort добавляет к алгоритму сортировки каскадное сопоставление (Matching Cascade) и подтверждение новой траектории (confirmed). Треки делятся на подтвержденное (подтвержденное) и неподтвержденное (неподтвержденное) состояния. Недавно сгенерированные треки являются неподтвержденными; треки в неподтвержденном состоянии должны соответствовать обнаружениям определенное количество раз (по умолчанию 3), прежде чем их можно будет преобразовать в подтвержденное состояние. Подтвержденные треки должны постоянно не совпадать с обнаружениями определенное количество раз (по умолчанию 30 раз), прежде чем они будут удалены. Рабочий процесс алгоритма Deepsort показан на следующем рисунке:fileРабочий процесс всего алгоритма выглядит следующим образом:

(1) Создайте соответствующие треки из результатов, обнаруженных в первом кадре. Инициализируйте переменные движения фильтра Калмана и предскажите его соответствующий кадр через фильтр Калмана. Треки в это время должны быть неподтвержденными.

(2) Выполните сопоставление IOU между кадром обнаружения цели кадра и кадром, предсказанным Tracks в первом кадре, а затем рассчитайте матрицу стоимости (метод расчета 1-IOU) в соответствии с результатом сопоставления IOU.

(3) Используйте все матрицы стоимости, полученные в (2), в качестве входных данных венгерского алгоритма для получения результатов линейного сопоставления.На данный момент мы получаем три результата.Первый - несоответствие дорожек (несопоставленные дорожки), мы напрямую удаляем несоответствующие Треки (т.к. этот Трек находится в неопределенном состоянии, если он в определенном состоянии, то его можно удалить через определенное количество раз (по умолчанию 30 раз)); второй это Несоответствие Детекций (Unmatched Detections), мы инициализируем такие Обнаружения как новые треки (новые треки); третье — это то, что кадр обнаружения и предсказанный кадр успешно соединены, что означает, что наш предыдущий кадр и следующий кадр успешно отслеживаются, и соответствующие обнаружения проходят через Калмана. Фильтр обновляет соответствующая ему переменная Tracks.

(4) Повторяйте шаги (2)-(3), пока не закончатся подтвержденные дорожки или видеокадр.

(5) Блоки, соответствующие дорожкам в подтвержденном состоянии и дорожкам в неподтвержденном состоянии, прогнозируются фильтрацией Калмана. Сопоставьте кадр Треков в состоянии подтверждения с Обнаружениями (ранее особенности внешнего вида и информация о движении Обнаружений будут сохраняться каждый раз при совпадении Треков, по умолчанию сохраняются первые 100 кадров, а функции внешнего вида и информация о движении используются для каскадного совпадения обнаружений, поскольку подтвержденные следы и обнаружения с большей вероятностью совпадают).

(6) Есть три возможных результата после каскадного сопоставления. Во-первых, это сопоставление треков, такие треки обновляют свои соответствующие переменные треков с помощью фильтрации Калмана. Второй и третий - несоответствия между Обнаружениями и Треками, В это время Треки в предыдущем неподтвержденном состоянии и несоответствующие Треки сопоставляются с Несовпадающими Обнаружениями один за другим для сопоставления IOU, а затем матрица затрат рассчитывается в соответствии с результат сопоставления IOU. , который рассчитывается как 1-IOU).

(7) Используйте все матрицы стоимости, полученные в (6), в качестве входных данных венгерского алгоритма для получения результата линейного сопоставления.На данный момент мы получаем три вида результатов.Первый - несоответствие дорожек (несопоставленные дорожки), мы непосредственно удалить несоответствующие треки (поскольку эти треки находятся в неопределенном состоянии, если они находятся в определенном состоянии, их можно удалить через определенное количество раз (по умолчанию 30 раз)); второе - несоответствие обнаружений (несоответствующие обнаружения), Мы инициализируем такие Detections как новые Tracks (новые Треки); третье — это то, что кадр обнаружения и предсказанный кадр успешно спарены, что означает, что наш предыдущий кадр и следующий кадр успешно отслеживаются, а соответствующие Детекты пропускаются через Калмана. Фильтр обновляет соответствующую переменную Tracks.

(8) Повторяйте шаги (5)-(7), пока видеокадр не закончится.

  • End -

Благодаря быстрому развитию технологий Amu Lab будет идти в ногу с темпами развития технологий и продолжать рекомендовать всем новейшие технологии и оборудование в индустрии робототехники. Наблюдение за тем, как студенты, прошедшие обучение у нас, делают рывки в технологиях, является величайшей ценностью нашего обучения. Если вы работаете в индустрии роботов, обратите внимание на нашу публичную учетную запись, мы продолжим публиковать самую ценную информацию и технологии в индустрии роботов. Amu Lab стремится предоставлять программное и аппаратное обеспечение с открытым исходным кодом, а также услуги курсов для исследований и разработок роботов, делая исследования и разработки более эффективными!