Нажимая “Принять все файлы cookie”, вы соглашаетесь на сохранение файлов cookie на вашем устройстве с целью улучшения навигации по сайту, анализа использования сайта и помощи в наших маркетинговых усилиях. Подробнее
Настройки cookie
Нажимая “Принять все файлы cookie”, вы соглашаетесь на сохранение файлов cookie на вашем устройстве с целью улучшения навигации по сайту, анализа использования сайта и помощи в наших маркетинговых усилиях. Подробнее
Изучите 8 лучших инструментов с открытым исходным кодом для отслеживания объектов в режиме реального времени. Узнайте, как работает каждый из них и как выбрать подходящий для вашего проекта.
Когда автомобиль проезжает на красный свет и водителю высылается автоматический штраф, или футболист ведет мяч по полю, а камера плавно следует за игрой, искусственный интеллект тихо работает в фоновом режиме. В частности, эти системы полагаются на компьютерное зрение, подраздел искусственного интеллекта, который позволяет машинам видеть, интерпретировать и понимать визуальную информацию из окружающего мира.
В области компьютерного зрения одной из ключевых задач, лежащих в основе этих приложений, является отслеживание объектов. Оно используется для идентификации объектов в каждом кадре видео, а затем для отслеживания этих объектов по мере их перемещения, пересечения с другими объектами или изменения направления движения.
Сегодня существует множество инструментов и алгоритмов для отслеживания объектов, каждый из которых предназначен для различных случаев использования, требований к производительности и уровней сложности. Некоторые из них ориентированы на скорость и могут track объектов в режиме реального времени, в то время как другие отдают приоритет точности или долгосрочной стабильности в сложных условиях, таких как окклюзия, быстрое движение или слабое освещение.
В частности, проекты с открытым исходным кодом сыграли важную роль в развитии этой области. Поскольку их код находится в открытом доступе, разработчики и исследователи могут изучать, как они работают, улучшать существующие методы и адаптировать их к новым приложениям. Эта открытость помогла быстрому развитию технологии отслеживания объектов и упростила ее интеграцию в реальные системы.
В этой статье мы рассмотрим восемь популярных инструментов и алгоритмов отслеживания объектов с открытым исходным кодом. Приступим!
Что такое отслеживание объектов?
Представьте себе ситуацию, когда охранник просматривает записи с камер видеонаблюдения на парковке. Он решает следить за одной красной машиной. По мере просмотра видео он мысленно отмечает эту машину и продолжает следить за ней, куда бы она ни ехала, даже когда мимо проезжают другие машины или перед ней проходят люди.
Отслеживание объектов с помощью искусственного интеллекта работает по аналогичному принципу, но в автоматическом режиме и в больших масштабах. Другими словами, отслеживание объектов — это процесс слежения за объектом, который перемещается по кадрам видео, и сохранения его идентичности от кадра к кадру.
Во многих системах это начинается с обнаружения объектов, которое находит и маркирует объекты, такие как люди, транспортные средства или дорожные знаки, в каждом кадре. Затем, когда эти объекты движутся, появляются, исчезают или перекрывают друг друга, система отслеживания связывает обнаружения между кадрами, чтобы знать, какой объект является каким и куда каждый из них движется с течением времени.
Существует два распространенных типа отслеживания: отслеживание одного объекта (SOT), которое фокусируется на одном основном объекте (например, отслеживание только мяча в спортивном видео), и отслеживание нескольких объектов (MOT), которое отслеживает сразу несколько объектов и присваивает каждому из них уникальный идентификатор (например, отслеживание всех автомобилей на оживленном перекрестке).
Независимо от типа отслеживания, большинство систем опираются на три основных компонента: детектор для поиска объектов в каждом кадре, модель движения для прогнозирования вероятного движения этих объектов и этап сопоставления для соединения новых обнаруженных объектов с ранее отслеживаемыми. Эти компоненты преобразуют необработанное видео в значимую информацию о том, как объекты движутся и взаимодействуют с течением времени.
Необходимость в инструментах отслеживания объектов с открытым исходным кодом
Прежде чем мы углубимся в детали, вы, возможно, задаетесь вопросом: чем же так особенны инструменты и алгоритмы отслеживания объектов с открытым исходным кодом?
Инструменты с открытым исходным кодом сыграли большую роль в упрощении использования и расширении доступности отслеживания объектов. Поскольку код является открытым, разработчики и исследователи могут точно видеть, как работает трекер, изучать его и адаптировать к своим собственным проектам, а не рассматривать его как черный ящик.
Они также выигрывают от наличия сильных сообществ. Многие инструменты отслеживания с открытым исходным кодом поддерживаются активными участниками, которые добавляют новые функции, улучшают скорость и точность, исправляют ошибки и обеспечивают соответствие инструментов последним исследованиям. Это постоянное сотрудничество помогает им оставаться надежными и полезными в различных приложениях.
Стоимость — еще одна важная причина, по которой они имеют значение. Поскольку инструменты с открытым исходным кодом являются бесплатными, студенты, стартапы и небольшие команды могут экспериментировать, создавать прототипы и строить реальные системы, не беспокоясь о лицензионных сборах или стоимости подписки.
8 лучших инструментов и алгоритмов для отслеживания объектов с открытым исходным кодом
Сегодня для создания систем отслеживания доступно множество вариантов с открытым исходным кодом. Некоторые из них представляют собой алгоритмы или модели отслеживания, которые можно напрямую подключить к вашему конвейеру, а другие — библиотеки и фреймворки, которые упрощают запуск, управление и интеграцию этих моделей. Вместе они охватывают все, от основной логики отслеживания до сопутствующих инструментов, необходимых в реальном проекте.
Далее рассмотрим восемь популярных инструментов и алгоритмов отслеживания объектов с открытым исходным кодом.
Один из самых простых и практичных вариантов отслеживания объектов — использование YOLO Ultralytics YOLO в сочетании с Python Ultralytics Python .YOLO Ultralytics YOLO , такие как Ultralytics YOLO11 и готовящаяся к выпуску Ultralytics — это модели компьютерного зрения, которые поддерживают ряд задач, включая обнаружение объектов, сегментацию экземпляров, оценку положения и отслеживание объектов.
Рис. 2. Пример использования YOLO11 detect track . (Источник)
Интересно, что сами модели не track по кадрам. Вместо этогоPython Ultralytics Python , библиотека, упрощающая запуск и развертываниеYOLO Ultralytics YOLO , делает отслеживание возможным, комбинируя кадр за кадром обнаружения YOLOсо специальными алгоритмами отслеживания нескольких объектов, такими как BoT-SORT и ByteTrack.
Благодаря встроенной функции отслеживания, Ultralytics иYOLO Ultralytics YOLO могут использоваться для detect в каждом кадре, а затем присвоения им постоянных идентификаторов, чтобы можно было отслеживать их движение, перекрытие, выход из кадра и повторный вход в него. Такой подход все чаще применяется в таких секторах, как производство и розничная торговля, что позволяет реализовывать такие приложения, как рабочие процессы проверки дефектов, отслеживание движения запасов и отслеживание покупателей в магазинах.
2. OpenCV
OpenCV — это обширная библиотека компьютерного зрения, включающая в себя набор алгоритмов отслеживания объектов. Эта библиотека разрабатывается и поддерживается OpenCV с 1999 года.
Вместо того чтобы полагаться на глубокое обучение, большинство этих трекеров используют традиционные методы компьютерного зрения, такие как корреляционные фильтры и методы на основе ядра (которые отслеживают объект, сопоставляя его визуальный вид, например цвет и текстуру, от одного кадра к другому, а не изучая особенности с помощью нейронных сетей).
При использовании этих алгоритмов обычно сначала выбирается объект, который необходимо track, а трекер непрерывно ищет наиболее похожую визуальную область в последующих кадрах по мере перемещения объекта.
Рис. 3. Отслеживание объектов с помощью OpenCV Источник)
Хотя эти методы могут быть не такими надежными, как современные системы отслеживания на основе глубокого обучения в сложных или перегруженных сценах, они по-прежнему широко используются, поскольку они легкие, быстрые и простые в использовании. Кроме того, поскольку эти трекеры эффективно работают на процессорах и обычно не требуют GPU, они хорошо подходят для быстрых экспериментов, обучения в классе и хобби-проектов.
3. ByteTrack
ByteTrack — один из самых популярных алгоритмов с открытым исходным кодом для отслеживания нескольких объектов. Вместо того, чтобы сопоставлять только те обнаружения, в которых модель уверена на 100 %, она также использует обнаружения с более низкой степенью уверенности, которые многие системы обычно игнорируют.
Это помогает track объекты, которые трудно увидеть в течение короткого времени, например, когда они частично закрыты, находятся далеко или быстро движутся. Благодаря своей быстродейственности и надежности ByteTrack широко используется в таких приложениях, как анализ трафика, отслеживание пешеходов и мониторинг розничной торговли, где важны производительность в реальном времени и стабильность идентификаторов.
Как упоминалось ранее, если вы используетеYOLO Ultralytics YOLO для обнаружения, ByteTrack легко включить черезPython Ultralytics Python . Но его также можно использовать независимо в настраиваемых конвейерах, что делает его подходящим для всего, от исследовательских прототипов до производственных систем, написанных на C++.
4. DeepSORT
Еще одним широко используемым алгоритмом для отслеживания нескольких объектов является DeepSORT, сокращение от Deep Simple Online and Real-Time Tracking (глубокое простое онлайн-отслеживание в реальном времени). Это усовершенствованная версия SORT, что означает Simple Online and Real-Time Tracking (простое онлайн-отслеживание в реальном времени).
Подобно ByteTrack, SORT использует подход отслеживания по обнаружению. Однако SORT опирается на фильтр Калмана, математическую модель, которая оценивает будущее положение объекта на основе его прошлых движений, чтобы предсказать, куда каждый объект, вероятно, двинется дальше.
Затем он сопоставляет новые обнаружения с существующими треками, в основном на основе положения и перекрытия ограничивающих рамок. Это делает SORT быстрым и легким, но он может испытывать трудности, когда объекты перекрываются, пересекаются или на короткое время исчезают из поля зрения.
DeepSORT улучшает SORT, добавляя информацию о внешнем виде в процесс отслеживания. В дополнение к движению и положению, он использует основанную на глубоком обучении модель повторной идентификации или re-id, которая изучает внешний вид объектов. Это позволяет трекеру распознавать один и тот же объект в разных кадрах, даже когда движения недостаточно, чтобы отличить его от других.
Из-за этого DeepSORT широко используется в таких приложениях, как наблюдение и мониторинг толпы, где люди часто пересекаются или на короткое время закрывают друг друга. Однако сегодня он считается классическим базовым методом, а более новые методы отслеживания часто демонстрируют лучшую производительность в более сложных сценариях.
5. Норфейр
Norfair — это легкая библиотека отслеживания, разработанная с целью обеспечить гибкость, а не заставлять вас использовать фиксированный конвейер отслеживания. Она может добавлять отслеживание практически к любому детектору, если вывод детектора может быть представлен в виде набора точек, таких как центры ограничивающих прямоугольников, ключевые точки или пользовательские координатные данные.
Рис. 4. Отслеживание реальных объектов с помощью Norfair (Источник)
Эта гибкость делает его особенно эффективным для проектов, связанных с необычными входными данными или динамическими моделями движения, где стандартные инструменты отслеживания нескольких объектов могут оказаться недостаточными. Библиотека также предоставляет встроенные функции расстояния для управления сопоставлением обнаружений между кадрами.
Эти функции расстояния измеряют степень сходства двух точек или объектов, предоставляя пользователям полный контроль над логикой отслеживания. Norfair часто используется в робототехнике, анализе спортивных движений, навигации дронов и приложениях, которые в значительной степени полагаются на отслеживание ориентиров или ключевых точек.
6. MMTracking
MMTracking — это набор инструментов с открытым исходным кодом от команды OpenMMLab, которая также стоит за широко используемыми библиотеками компьютерного зрения, такими как MMDetection. Основанный на MMDetection, он предоставляет гибкую платформу для разработки и экспериментирования с системами отслеживания.
Одной из его главных сильных сторон является модульная конструкция. Вместо того, чтобы ограничивать вас одним конвейером, MMTracking позволяет настраивать и менять различные компоненты, такие как детекторы, модули отслеживания и, в некоторых конфигурациях, модели повторной идентификации. Благодаря этой гибкости он особенно популярен в научных и передовых проектах, где команды хотят сравнивать методы, тестировать новые идеи или настраивать конвейеры отслеживания.
7. FairMOT
FairMOT — это система отслеживания нескольких объектов, предназначенная для одновременного track объектов. В отличие от традиционных систем отслеживания по обнаружению, которые сначала выполняют обнаружение, а затем связывают объекты между кадрами в отдельном шаге, FairMOT обучается обнаружению и повторной идентификации одновременно в одной сети.
Эта совместная настройка помогает поддерживать более стабильную идентификацию, особенно в сценах с большим скоплением людей, где люди часто пересекаются или быстро перемещаются. FairMOT обычно используется в таких сценариях, как отслеживание пешеходов и мониторинг толпы, а также применяется в таких областях, как аналитика розничной торговли и мониторинг трафика, где важно отслеживать множество целей в режиме реального времени.
8. SiamMask
SiamMask — это метод отслеживания одного объекта, который идет на шаг дальше, чем многие другие трекеры, создавая сегментационную маску вместе с ограничительной рамкой. Проще говоря, он не просто рисует прямоугольник вокруг цели. Он также обрисовывает форму объекта на уровне пикселей, что может быть полезно, когда цель меняет форму, поворачивается или частично скрывается.
Рис. 6. Отслеживание и сегментирование объекта с помощью SiamMask (Источник)
В этом подходе используется схема сиамского отслеживания, при которой трекер сначала берет небольшой эталонный вид цели из первого кадра, часто называемый шаблоном. Затем в каждом новом кадре он просматривает более обширную область и находит место, наиболее похожее на этот шаблон.
SiamMask основан на этой идее сопоставления. Он также прогнозирует маску на уровне пикселей для цели, поэтому вы получаете как местоположение объекта, так и более точные контуры во время воспроизведения видео.
Ключевые факторы при выборе инструмента для отслеживания объектов
С учетом разнообразия доступных сегодня в сфере искусственного интеллекта инструментов с открытым исходным кодом для отслеживания объектов, выбор оптимального варианта для вашего проекта в области компьютерного зрения зависит от конкретных требований вашего случая использования. Ниже приведены некоторые факторы, которые следует учитывать:
Точность: это наиболее важно в переполненных или визуально сложных сценах, где система видения должна поддерживать стабильные идентификаторы даже при перекрытии, окклюзии или быстром движении.
Скорость: для приложений, работающих в режиме реального времени, таких как робототехника, мониторинг дорожного движения и спортивная аналитика, отзывчивость может быть важнее, чем идеальная точность.
Простота интеграции: некоторые инструменты отслеживания объектов легко подключаются и работают с помощью всего нескольких строк кода, в то время как другие требуют более сложной настройки, конфигурации или настройки конвейера.
Ограничения развертывания: целевая среда, такая как GPU , пограничные устройства или мобильное оборудование, может определять, какой подход к отслеживанию является практичным.
Масштабируемость: если ваша система должна track объектов одновременно или обрабатывать несколько видеопотоков, трекер должен эффективно масштабироваться без значительного снижения производительности.
Каждый инструмент или алгоритм отслеживания объектов служит своей цели. В конечном итоге, правильный выбор зависит от ваших конкретных требований, ограничений по времени выполнения, показателей производительности и того, насколько настраиваемым должен быть подход к отслеживанию в вашем проекте.
Основные выводы
Отслеживание объектов прошло путь от ранних ручных методов до современных передовых систем глубокого обучения, которые с впечатляющей точностью интерпретируют движения, идентичность и поведение. Инструменты с открытым исходным кодом стали движущей силой этого прогресса. Они демократизируют доступ к мощным алгоритмам, поощряют эксперименты и позволяют исследователям создавать сложные конвейеры отслеживания без ограничительных лицензий или тяжелой инфраструктуры.