Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Визуальный ИИ

8 лучших инструментов и алгоритмов с открытым исходным кодом для отслеживания объектов

Изучи 8 лучших инструментов с открытым исходным кодом для отслеживания объектов и анализа видео в реальном времени. Узнай, как работает каждый из них и как выбрать подходящий для своего проекта.

Абирами ВинаAbirami Vina11 мин. чтения
Инструменты и алгоритмы с открытым исходным кодом для отслеживания объектов

Когда автомобиль проезжает на красный свет и водителю отправляют автоматический штраф или футболист ведёт мяч по полю, а камера плавно следует за игрой, AI незаметно работает в фоновом режиме. В частности, такие системы используют компьютерное зрение — подраздел AI, который позволяет машинам видеть, интерпретировать и понимать визуальную информацию об окружающем мире.

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

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

В частности, проекты с открытым исходным кодом сыграли важную роль в развитии этой области. Поскольку их код доступен всем, разработчики и исследователи могут изучать принципы их работы, совершенствовать существующие методы и адаптировать их для новых приложений. Такая открытость ускорила развитие отслеживания объектов и упростила интеграцию этой технологии в реальные системы.

В этой статье мы рассмотрим восемь популярных инструментов и алгоритмов отслеживания объектов с открытым исходным кодом.

Что такое отслеживание объектов?#

Представь, что охранник просматривает записи с камер видеонаблюдения на парковке. Он решает следить за одной красной машиной. Пока идёт видео, он мысленно помечает эту машину и продолжает следить за ней, куда бы она ни поехала, даже когда мимо проезжают другие машины или перед ней проходят люди.

Отслеживание объектов с помощью AI работает похожим образом, но выполняется автоматически и в больших масштабах. Иными словами, отслеживание объектов — это процесс наблюдения за перемещением объекта по кадрам видео с сохранением его идентификатора от кадра к кадру.

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

Пример отслеживания объектов

Рис. 1. Пример отслеживания объектов (Источник)

Существует два распространённых типа отслеживания: отслеживание одного объекта (SOT), при котором внимание сосредоточено на одном основном объекте (например, на одном мяче в спортивном видео), и отслеживание нескольких объектов (MOT), при котором одновременно отслеживается множество объектов и каждому назначается уникальный идентификатор (например, всем автомобилям на оживлённом перекрёстке).

Независимо от типа отслеживания, большинство систем используют три основных компонента: детектор, который находит объекты в каждом кадре; модель движения, предсказывающую вероятные траектории объектов; и этап сопоставления, связывающий новые обнаружения с ранее отслеживавшимися объектами. Эти компоненты преобразуют исходное видео в полезную информацию о том, как объекты перемещаются и взаимодействуют с течением времени.

Зачем нужны инструменты отслеживания объектов с открытым исходным кодом#

Прежде чем перейти к подробностям, ты, возможно, задаёшься вопросом: чем так примечательны инструменты и алгоритмы отслеживания объектов с открытым исходным кодом?

Инструменты с открытым исходным кодом сделали отслеживание объектов доступнее и упростили его применение. Благодаря открытости кода разработчики и исследователи могут точно разобраться, как работает трекер, изучить его и адаптировать для своих проектов, вместо того чтобы воспринимать его как чёрный ящик.

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

Стоимость — ещё одна важная причина. Поскольку инструменты с открытым исходным кодом бесплатны, студенты, стартапы и небольшие команды могут экспериментировать, создавать прототипы и разрабатывать реальные системы, не беспокоясь о лицензионных сборах или стоимости подписки.

Топ-8 инструментов и алгоритмов с открытым исходным кодом для отслеживания объектов#

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

А теперь рассмотрим восемь популярных инструментов и алгоритмов с открытым исходным кодом для отслеживания объектов.

1. Модели Ultralytics YOLO и пакет Ultralytics Python#

Один из самых простых и практичных способов отслеживать объекты — использовать модели Ultralytics YOLO вместе с пакетом Ultralytics для Python. Модели Ultralytics YOLO, например Ultralytics YOLO11 и более новая Ultralytics YOLO26, предназначены для компьютерного зрения и поддерживают широкий спектр задач, включая обнаружение объектов, сегментацию экземпляров, оценку позы и отслеживание объектов.

Пример обнаружения и отслеживания объектов с помощью Ultralytics YOLO11

Рис. 2. Пример обнаружения и отслеживания объектов с помощью YOLO11. (Источник)

Интересно, что сами модели не отслеживают объекты между кадрами. Эту возможность обеспечивает пакет Ultralytics для Python — библиотека, упрощающая запуск и развёртывание моделей Ultralytics YOLO. Она объединяет покадровые обнаружения YOLO со специализированными алгоритмами отслеживания нескольких объектов, такими как BoT-SORT и ByteTrack.

Благодаря встроенной функции отслеживания пакет Ultralytics и модели Ultralytics YOLO можно использовать для обнаружения объектов в каждом кадре и присвоения им постоянных идентификаторов, чтобы следить за объектами, когда они перемещаются, перекрывают друг друга, покидают кадр и появляются снова. Этот подход всё чаще используют в таких отраслях, как производство и розничная торговля, для проверки на дефекты, отслеживания движения запасов и покупателей в магазинах.

2. Трекеры OpenCV#

OpenCV — обширная библиотека компьютерного зрения, включающая набор алгоритмов отслеживания объектов. С 1999 года библиотеку разрабатывает и поддерживает сообщество OpenCV.

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

При использовании этих алгоритмов обычно сначала выбирают объект для отслеживания, после чего трекер непрерывно ищет в следующих кадрах наиболее похожую визуальную область по мере перемещения объекта.

Отслеживание объектов с помощью OpenCV

Рис. 3. Отслеживание объектов с помощью OpenCV (Источник)

Хотя в сложных или перегруженных сценах эти методы могут уступать современным системам отслеживания на основе глубокого обучения, их по-прежнему широко используют: они компактны, быстры и просты в запуске. Кроме того, такие трекеры эффективно работают на CPU и обычно не требуют GPU, поэтому хорошо подходят для быстрых экспериментов, обучения и любительских проектов.

3. ByteTrack#

ByteTrack — один из самых популярных алгоритмов с открытым исходным кодом для отслеживания нескольких объектов. Он сопоставляет не только обнаружения с высокой уверенностью модели, но и обнаружения с более низкой уверенностью, которые многие системы обычно игнорируют.

Это помогает алгоритму отслеживать объекты, которые ненадолго становятся плохо различимы, например частично перекрываются, находятся далеко или быстро движутся. ByteTrack работает быстро и надёжно, поэтому его часто используют для анализа дорожного движения, отслеживания пешеходов и наблюдения за магазинами — в задачах, где важны обработка в реальном времени и постоянство идентификаторов.

Как упоминалось ранее, если для обнаружения объектов ты используешь модели Ultralytics YOLO, включить ByteTrack можно с помощью пакета Ultralytics Python. Но ByteTrack можно применять и отдельно в пользовательских конвейерах, поэтому он подходит как для исследовательских прототипов, так и для промышленных систем на C++.

4. DeepSORT#

Ещё один широко используемый алгоритм отслеживания нескольких объектов — DeepSORT, сокращение от «глубокое простое отслеживание в режиме онлайн и в реальном времени». Это усовершенствованная версия SORT, сокращение от «простое отслеживание в режиме онлайн и в реальном времени».

Как и ByteTrack, SORT использует подход «отслеживание по обнаружениям». Однако SORT опирается на фильтр Калмана — математическую модель, которая оценивает будущее положение объекта на основе его предыдущего движения, — чтобы предсказать, куда, вероятнее всего, переместится каждый объект.

Затем алгоритм сопоставляет новые обнаружения с существующими траекториями, в основном ориентируясь на положение и степень перекрытия ограничивающих рамок. Благодаря этому SORT работает быстро и требует мало ресурсов, но может испытывать трудности, когда объекты перекрываются, пересекаются или ненадолго исчезают из поля зрения.

DeepSORT улучшает SORT, добавляя в процесс отслеживания информацию о внешнем виде объектов. Помимо движения и положения, он использует основанную на глубоком обучении модель повторной идентификации (re-ID), которая обучается распознавать внешний вид объектов. Благодаря этому трекер может распознавать один и тот же объект в разных кадрах, даже если по движению отличить его от других объектов невозможно.

Поэтому DeepSORT часто используют для видеонаблюдения и мониторинга толпы, где люди часто перекрывают друг друга или ненадолго скрываются из виду. Однако сегодня этот алгоритм считается классическим базовым решением, и в более сложных сценах новые методы отслеживания часто показывают лучшие результаты.

5. Norfair#

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

Отслеживание объектов в реальных условиях с помощью Norfair

Рис. 4. Отслеживание объектов в реальных условиях с помощью Norfair (Источник)

Благодаря такой гибкости Norfair особенно полезен в проектах с нестандартными входными данными или динамическими схемами движения, где стандартные инструменты отслеживания нескольких объектов могут не справиться. В библиотеке также есть встроенные функции расстояния, позволяющие задавать правила сопоставления обнаружений между кадрами.

Эти функции расстояния измеряют сходство двух точек или объектов, предоставляя пользователям полный контроль над логикой отслеживания. Norfair часто используют в робототехнике, для анализа движений в спорте, навигации дронов и в приложениях, активно работающих с ориентирами позы или ключевыми точками.

6. MMTracking#

MMTracking — набор инструментов с открытым исходным кодом для отслеживания от команды OpenMMLab, создавшей также широко используемые библиотеки компьютерного зрения, например MMDetection. MMTracking построен на базе MMDetection и предоставляет гибкий фреймворк для разработки систем отслеживания и экспериментов с ними.

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

7. FairMOT#

FairMOT — фреймворк для отслеживания нескольких объектов, предназначенный для одновременного отслеживания множества объектов. В отличие от традиционных конвейеров отслеживания по обнаружениям, где обнаружение выполняется сначала, а объекты связываются между кадрами отдельным этапом, FairMOT обучается одновременно обнаруживать объекты и повторно идентифицировать их в одной нейросети.

Принцип работы фреймворка FairMOT

Рис. 5. Принцип работы фреймворка FairMOT (Источник)

Такая совместная обработка помогает алгоритму поддерживать более стабильные идентификаторы, особенно в переполненных сценах, где люди часто перекрывают друг друга или быстро перемещаются. FairMOT часто используют для отслеживания пешеходов и мониторинга толпы, а также в розничной аналитике и мониторинге дорожного движения, где важно отслеживать множество объектов в реальном времени.

8. SiamMask#

SiamMask — метод отслеживания одного объекта, который идёт дальше многих трекеров: он строит маску сегментации вместе с ограничивающей рамкой. Проще говоря, он не просто обводит цель прямоугольником, а также очерчивает её форму на уровне пикселей. Это может быть полезно, когда цель меняет форму, поворачивается или частично скрывается.

Отслеживание и сегментация объекта с помощью SiamMask

Рис. 6. Отслеживание и сегментация объекта с помощью SiamMask (Источник)

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

SiamMask развивает эту идею сопоставления. Алгоритм также предсказывает маску цели на уровне пикселей, поэтому по мере воспроизведения видео ты получаешь и положение объекта, и более точный контур.

Ключевые факторы при выборе инструмента для отслеживания объектов#

Сегодня в сфере ИИ доступно множество инструментов с открытым исходным кодом для отслеживания объектов, а лучший вариант для твоего проекта компьютерного зрения зависит от конкретных задач. Вот на что стоит обратить внимание:

  • Точность: Она особенно важна в переполненных или визуально сложных сценах, где системе компьютерного зрения нужно сохранять стабильные идентификаторы даже при перекрытиях, частичном исчезновении объектов из виду или быстром движении.
  • Скорость: В приложениях реального времени, например в робототехнике, мониторинге дорожного движения и спортивной аналитике, отзывчивость может быть важнее идеальной точности.
  • Простота интеграции: Некоторые инструменты для отслеживания объектов можно легко подключить и запустить, используя всего несколько строк кода. Другие требуют дополнительной настройки, конфигурации или доработки конвейера.
  • Ограничения развертывания: Целевая среда — например, серверы с GPU, периферийные устройства или мобильное оборудование — может определить, какой подход к отслеживанию будет практичным.
  • Масштабируемость: Если системе нужно одновременно отслеживать множество объектов или обрабатывать несколько видеопотоков, трекер должен эффективно масштабироваться без существенного снижения производительности.

Каждый инструмент или алгоритм для отслеживания объектов решает свою задачу. В конечном счёте подходящий вариант зависит от твоих конкретных требований, ограничений среды выполнения, показателей производительности и необходимой гибкости настройки отслеживания в проекте.

Главные выводы#

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

Загляни в наше сообщество и репозиторий GitHub, чтобы узнать больше об ИИ. Изучи наши страницы с решениями для ИИ в сельском хозяйстве и компьютерного зрения в производстве. Узнай о наших вариантах лицензирования и начни создавать собственную модель компьютерного зрения.

Автор

Abirami Vina
Abirami Vina

Создатель контента · Ultralytics

Начав карьеру инженером по компьютерному зрению, Абирами Вина заложила прочную основу в области ИИ для компьютерного зрения и машинного обучения. Она создает контент для Ultralytics и является основательницей и главным автором Scribe of AI, где готовит качественные технические материалы для компаний, работающих в сфере ИИ. Стремясь сделать ИИ понятным и увлекательным, она помогает связать передовые технологии с их практическим применением.

Комментарии

Задай вопрос, поделись результатами или помоги кому-нибудь.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения