Это введение в「ByteTrack」, модель машинного обучения, которую можно использовать с ailia SDK. Вы можете легко использовать эту модель для создания приложений ИИ с помощью ailia SDK, а также многих других готовых к использованию AIlia MODELS.
Обзор
ByteTrack — это модель отслеживания объектов, опубликованная в октябре 2021 года. Применяя ByteTrack к ограничивающей рамке людей, обнаруженных YOLOX, вы можете назначить уникальный идентификатор каждому человеку. ByteTrack в настоящее время является самым современным и превосходит SiamMOT и модели отслеживания на основе трансформаторов.
Архитектура
В Multi-Object Tracking (MOT) обнаружение объектов сначала выполняется с использованием таких моделей, как YOLOX, а алгоритм отслеживания используется для отслеживания объектов между кадрами. Однако в реальных приложениях результат обнаружения объектов иногда бывает неполным, в результате чего объекты игнорируются.
Большинство алгоритмов обнаружения объектов игнорируют ограничивающие рамки с низкими значениями достоверности. Это связано с тем, что существует компромисс, поскольку принятие ограничительных рамок с низкими значениями достоверности улучшит скорость обнаружения (истинно положительный результат), но также вызовет ложный положительный результат.
Однако вопрос о том, следует ли удалять все ограничивающие рамки с низкими значениями достоверности, актуален. Даже при низком значении достоверности объект может все еще существовать, и его игнорирование снизит эффективность модели отслеживания.
Следующий рисунок иллюстрирует эту проблему. В кадре t1
отслеживаются четыре человека со значениями достоверности выше 0,5. Однако на кадрахt2
и t3
оценка человека с красной ограничивающей рамкой падает с 0,8 до 0,4, а затем с 0,4 до 0,1 из-за окклюзии. В результате этого человека игнорируют.
ByteTrack решает эту проблему с помощью модели движения, которая управляет очередью, называемой треклеты, для хранения отслеживаемых объектов и выполняет отслеживание и сопоставление ограничивающих прямоугольников с низкими значениями достоверности.
В процессе сопоставления используется алгоритм под названием BYTE. Сначала позиции в следующем кадре объектов в треклетах предсказываются с помощью фильтра Калмана, затем они сопоставляются с ограничивающими рамками, обнаруженными с высокой оценкой, с помощью движения сходство. При использовании сходства движения оценка рассчитывается по методу «Взаимодействие над союзом» (IoU), который указывает степень перекрытия между объектами (шаг (b) на изображении выше показывает результаты этого первого сопоставления).
Далее алгоритм выполняет второе сопоставление. Объекты в треклетах, которые не удалось сопоставить (например, красные прямоугольники на предыдущем изображении), затем сопоставляются с обнаруженными ограничивающими прямоугольниками с более низкими значениями достоверности (шаг (c) на изображении выше показывает результаты этого второго совпадения).
Детали алгоритма описаны ниже. Это простой алгоритм отслеживания с использованием фильтра Калмана, поэтому он очень быстрый.
Несмотря на простоту метода, ByteTrack обеспечивает отслеживание объектов SoTA.
Вот пример обнаружения в каждом тесте.
И сравнение производительности с обычными методами.
Этап обнаружения объектов основан на YOLOX, обученном на наборах данных MOT19 и MOT20, где разрешение распознавания составляет 1440 x 800 для MOT17. и 1600 x 896 для MOT20. Поэтому ByteTrack сам по себе работает быстро, но время обработки обнаружения объекта довольно велико.
Сравнение с DeepSort
Глубокая сортировкаиспользует модель идентификации ReID для связывания ограничивающих рамок обнаруженных людей между кадрами, а для тех, кого не удалось связать, Сортировка использует предсказание движения ограничивающей рамки, рассчитанное фильтром Калмана, чтобы связать их между кадрами. Однако это делается только для ограничивающих рамок с высокими значениями достоверности.
ByteTrackне использует ReID, а использует только предсказание движения ограничивающих рамок, рассчитанное с помощью фильтра Калмана, для отслеживания людей между кадрами. Таким образом, технически он аналогичен шагу Sort, используемому в DeepSort. Однако производительность была улучшена за счет разделения обработки на два этапа, первый из которых нацелен на ограничивающие рамки с высокими значениями достоверности, а второй — на блоки с низкими значениями достоверности.
Применение
ByteTrack можно использовать с ailia SDK, выполнив следующую команду.
$ python3 bytetrack.py -v 0
Вам нужно будет установить библиотеку lap
в качестве зависимости.
$ pip3 install lap
Чтобы работать быстрее, используйте опцию -m
, чтобы поменять модель обнаружения объектов на более легкую версию YOLOX, например yolox_s
в приведенной ниже команде.
$ python3 bytetrack.py -v 0 -m yolox_s
Топор Инк. разработал ailia SDK, который обеспечивает кросс-платформенный быстрый вывод на основе графического процессора.
ax Inc. предоставляет широкий спектр услуг от консалтинга и создания моделей до разработки приложений и SDK на основе ИИ. Не стесняйтесь связаться с нами для любого запроса.