SwisTrack

Pause

SwisTrack — свободная программа для видеоотслеживания множества движущихся агентов — роботов, животных, людей и предметов — по потоку с подключённой камеры или по видеозаписи[1]. Программа создана в Политехнической школе Лозанны лабораторией распределённых интеллектуальных систем и алгоритмов совместно с группой машинного зрения. Применяется она прежде всего в роевой робототехнике и поведенческой биологии, где необходимо одновременно наблюдать координаты, ориентацию и траектории десятков и сотен объектов[2][3].

Обработка построена на библиотеке OpenCV с открытым исходным кодом, распространяемым по лицензии Adaptive Public License[1].

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

Общие сведения
Что важно знать
SwisTrack
Область использования сопровождение движения множества агентов, роевая робототехника, поведенческая биология, биомеханика
Дата появления 2006
Место появления Лозанна, Швейцария
Автор понятия лаборатория DISAL и группа машинного зрения LPM при EPFL
Ключевые слова OpenCV, wxWidgets, SourceForge, C++, кроссплатформенность
Базовые понятия обработка изображений, калибровка камеры, сегментация, траектория, компьютерное зрение

История

Программа выросла из потребностей экспериментов роевой робототехники и поведенческой биологии, которые велись в EPFL в начале 2000-х годов. Наблюдение за группами роботов и насекомых требовало автоматической фиксации позиций каждого участника, а готовых решений на тот момент не было: практически каждая лаборатория писала собственную программу сопровождения, непригодную для повторного использования[2]. Инициатива объединить усилия в общий открытый проект принадлежала Николаусу Корреллу, который и запустил разработку SwisTrack[4].

Первая статья о системе описала программу как платформонезависимый и устойчивый инструмент, рассчитанный на исследования в роевой робототехнике и поведенческой биологии, и продемонстрировала её на двух задачах: сопровождении группы тараканов и роевой инспекции помещений группой роботов[2]. Авторы подчёркивали, что акцент сделан на простоте использования: программа предназначалась исследователям, далёким от программирования машинного зрения[2].

Четвёртая версия, представленная в 2008 году, стала результатом переработки: конвейер обработки собирается пользователем из независимых компонентов, обменивающихся данными через именованные каналы; сама программа следит за временем работы каждого компонента, помогая ускорять обработку[4]. Разработку вели лаборатория распределённых интеллектуальных систем и алгоритмов (DISAL) и группа машинного зрения LPM при EPFL[1]. Лаборатория DISAL ведёт страницу проекта со списком публикаций и материалов[5]. Проект размещён на портале SourceForge и открыт для вклада со стороны сообществ робототехники и биологии[1]. Файлы проекта — сборки для разных систем и исходные тексты — публикуются на странице загрузок[6]. Каталоги нейробиологических ресурсов отмечают SwisTrack среди инструментов сопровождения движения, полезных для автоматических измерений поведения[7].

undefined

Назначение и возможности

SwisTrack получает изображения с подключённых камер или из видеофайлов и выдаёт готовые траектории: координаты каждого агента по кадрам, его ориентацию и пройденный путь[1]. Поддерживаются камеры, подключаемые по USB, FireWire и Gigabit Ethernet, а также видеозаписи в формате AVI[1]. Эксперимент может обрабатываться в реальном времени, по мере поступления кадров с камеры, либо в пакетном режиме по готовой записи — это позволяет готовить и отлаживать алгоритм на записанном материале, а затем применять его на живом эксперименте[4].

Программа рассчитана на одновременное сопровождение многих агентов, что отличает её от инструментов слежения за единственным объектом. Типичные опыты включают десятки роботов или насекомых в общей арене, где объекты пересекаются, заслоняют друг друга и меняют направление движения[2]. Результатом работы служит таблица траекторий, пригодная для дальнейшей статистической обработки. Маршруты сохраняются в файлы и передаются внешним программам через интерфейсы для MATLAB, Java и C++, что позволяет разбирать эксперимент в привычной среде без правки исходного кода[4].

Наблюдаемые величины соответствуют типовым запросам групповых экспериментов. По каждому агенту программа выдаёт положение в кадре, ориентацию по направлению тела или метки и накопленную траекторию. Производные величины — скорости, взаимные расстояния, степени сближения — вычисляются после опыта по таблице маршрутов[4]. Именно ориентация отличает сопровождение агентов от простой проверки присутствия: для роботов и насекомых важно, куда направлен объект, поскольку поведение определяется направлением движения[2].

От инструментов слежения за одиночным объектом программу отличает сама постановка результата: важно не удержать рамку вокруг одного героя сцены, а выдать полный журнал группового опыта, где ни один агент не потерян[2]. Такое требование меняет приоритеты алгоритмов: на первый план выходят не визуальное качество сопровождения, а полнота и достоверность траекторий, устойчивость к перекрытиям и честная обработка разрывов[4].

Калибровка занимает в программе отдельное место: по изображению тест-объекта строится модель связи пиксельных координат с координатами арены, и все измерения переводятся в физические единицы[4]. Авторы четвёртой версии экспериментально оценивали точность сопровождения подвижного робота в зависимости от шума камеры и качества калибровочной модели, доводя погрешность до величин, приемлемых для количественных биологических и робототехнических измерений[4].

Архитектура

Программа написана на C++ с использованием библиотеки wxWidgets для интерфейса и сетевого обмена[8], а всю обработку изображений ведёт библиотека OpenCV[1][9]. Документация библиотеки открыта и сопровождается сообществом[10]. Выбор OpenCV даёт доступ к проверенным быстрым алгоритмам — от фильтрации до поиска контуров, — не вынуждая разработчиков SwisTrack повторно реализовывать их внутри проекта[11].

Обработка устроена как конвейер, который пользователь собирает из компонентов: каждый компонент получает данные предыдущего шага, выполняет свою операцию и передаёт результат дальше[4]. Компоненты обмениваются данными через шесть именованных каналов: входной поток, полутоновое изображение, цветное изображение, бинарное изображение, список частиц и список траекторий[4]. Для каждого канала компонент работает в одном из трёх режимов: чтение, запись или редактирование, при котором данные и читаются, и изменяются. Такая схема делает состав конвейера явно видимым и позволяет заменять отдельные шаги без вмешательства в остальные[4].

Модульность распространяется и на расширение программы: опытный программист добавляет собственные компоненты через предоставленный интерфейс, не перестраивая остальное[4]. Пользовательский интерфейс позволяет настраивать параметры каждого компонента, наблюдать промежуточные изображения на экране и запускать обработку как по живому потоку, так и по записи[1].

undefined

Процесс сопровождения

Типовой конвейер сопровождения отражает классическую схему машинного зрения: предобработка, выделение объектов, сопоставление отметок с уже ведущимися траекториями[12]. На этапе предобработки кадр переводится в полутоновый вид, выравнивается освещение и вычитается фон арены; на этапе выделения применяется пороговая сегментация, дающая бинарное изображение, из которого извлекаются частицы — области, соответствующие агентам[4].

Для агентов с опознавательными метками программа дополнительно определяет личность каждого объекта по коду метки; для немаркированных агентов идентичность удерживается от кадра к кадру сопоставлением отметок с траекториями[4]. Сопоставление опирается на предсказание положения: новая отметка присоединяется к траектории, если отклонение от экстраполированной позиции укладывается в заданный строб, что сохраняет статистические свойства последовательностей и удерживает траектории от ложных переключений между объектами[13].

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

Маркированные и немаркированные агенты предъявляют разные требования к конвейеру. Опознавательная метка с цветным или кодовым рисунком снимает проблему идентичности: после выделения области программа распознаёт метку и привязывает отметку к конкретному агенту независимо от его пути[4].

Немаркированные агенты требуют аккуратного стробирования и предсказания движения: при плотной группе и быстрых манёврах отметки способны переключаться между траекториями, поэтому период съёмки и размеры стробов подбираются под скорость объектов[13].

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

undefined

Интерфейс и рабочий цикл

Типовой рабочий цикл экспериментатора начинается с настройки источника изображений: выбирается камера с параметрами съёмки либо файл записи, после чего снимается тестовый кадр для калибровки[4]. Калибровочная модель строится по тест-объекту известного размера и привязывает пиксельные координаты к координатам арены; программа сопровождает калибровку отдельным компонентом, и её результат используется всеми последующими шагами[4]. Калибровочная модель строится методами калибровки камеры, подробно описанными в документации библиотеки машинного зрения[16].

Такой цикл отделяет настройку от сбора данных: однажды подобранный конвейер применяется к сериям опытов без изменений, что делает измерения сравнимыми между собой[2].

undefined

Применение

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

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

Программа применяется и за пределами исходных областей — для сопровождения людей и предметов в кадре, в учебных проектах по машинному зрению и как пример модульной открытой архитектуры[1]. Публикация 2008 года, представлявшая четвёртую версию, по данным учёта цитирований набрала свыше полутора сотен ссылок и сделала название программы знакомым в сообществе, работающем с групповыми экспериментами[4][20].

undefined

Сравнение с родственными средствами

Авторы программы исходили из того, что готового стандартного решения для сопровождения множества агентов не существовало, и каждая группа обслуживала собственные одноразовые разработки[4]. Ближайшим по духу примером общего инструмента назывался расширяемый редактор изображений с подключаемыми модулями, ставший общим ресурсом целого сообщества; SwisTrack задумывался как аналогичный общий ресурс, но предметно настроенный на задачу сопровождения[4].

Ниша SwisTrack — лабораторные эксперименты со стационарной камерой и многими агентами; для других условий съёмки применяются иные инструменты, и программа сознательно не пытается их покрыть[2].

Распространение и лицензия

Проект распространяется через портал SourceForge[1]. Лицензия — Adaptive Public License, входящая в список одобренных Open Source Initiative[21]: код можно использовать и изменять в том числе в закрытых разработках при соблюдении условий лицензии[6].

Требования и производительность

Программа распространяется в сборках для Linux и Windows, а сборка из исходных текстов возможна и на других платформах, включая macOS: зависимости ограничиваются библиотеками интерфейса и машинного зрения, доступными для всех распространённых систем[1]. Аппаратные требования определяются камерой и объёмом обработки: для лабораторных сцен достаточно обычного рабочего компьютера, а узким местом становится не процессор, а пропускная способность шины камеры при высоком разрешении[4].

Производительность оценивается по собственным счётчикам компонентов: разработчики вводили их, чтобы ускорение конвейера опиралось на измерения, а не на догадки[4]. Работа в реальном времени достижима для умеренных разрешений и не слишком плотных сцен; при плотных группах и цветных метках конвейер переходит в режим обработки записи, что не мешает исследованию, поскольку эксперимент фиксируется видеозаписью[4].

Возможности и ограничения

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

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

Выделение и связывание объектов в кадре остаётся активной областью машинного зрения, и для новых классов сцен готовые компоненты могут потребовать замены на собственные[12].

undefined

Литература

Ссылки

  1. ↑ 1 2 3 4 5 6 7 8 9 10 11 SwisTrack download (англ.). SourceForge. Дата обращения: 15 октября 2026.
  2. ↑ 1 2 3 4 5 6 7 8 9 10 11 Correll N., Sempo G., Lopez de Meneses Y., Halloy J., Deneubourg J.-L., Martinoli A. SwisTrack: A Tracking Tool for Multi-Unit Robotic and Biological Systems (англ.) // 2006 IEEE/RSJ International Conference on Intelligent Robots and Systems. — 2006. — doi:10.1109/IROS.2006.282558.
  3. ↑ SwisTrack: A Tracking Tool for Multi-Unit Robotic and Biological Systems (англ.). EPFL Infoscience. Дата обращения: 15 октября 2026.
  4. ↑ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Lochmatter T., Roduit P., Cianci C., Correll N., Jacot J., Martinoli A. SwisTrack - A Flexible Open Source Tracking Software for Multi-Agent Systems (англ.) // 2008 IEEE/RSJ International Conference on Intelligent Robots and Systems. — 2008. — P. 4004—4010. — doi:10.1109/IROS.2008.4650937.
  5. ↑ Distributed intelligent systems and algorithms laboratory - EPFL (англ.). EPFL. Дата обращения: 15 октября 2026.
  6. ↑ 1 2 SwisTrack - Browse Files at SourceForge.net (англ.). SourceForge. Дата обращения: 15 октября 2026.
  7. ↑ Computer Vision and motion tracking software (англ.). Open Neuroscience. Дата обращения: 15 октября 2026.
  8. ↑ Overview - wxWidgets (англ.). wxWidgets. Дата обращения: 15 октября 2026.
  9. ↑ About - OpenCV (англ.). OpenCV. Дата обращения: 15 октября 2026.
  10. ↑ OpenCV: OpenCV modules (англ.). OpenCV. Дата обращения: 15 октября 2026.
  11. ↑ Bradski G., Kaehler A. Learning OpenCV: Computer Vision with the OpenCV Library. — O'Reilly Media, 2008. — ISBN 978-0-596-51613-0.
  12. ↑ 1 2 Forsyth D., Ponce J. Computer Vision: A Modern Approach. — 2-е. — Pearson, 2011. — ISBN 978-0-13-608592-8.
  13. ↑ 1 2 Беляев А. В., Карташов В. М., Лутуангу Ф. А. Стробирование отметок движущихся объектов в системе обработки изображений со стационарной видеокамерой // ScienceRise. — 2017. — Т. 3, № 1 (32). — С. 23—28.
  14. ↑ 1 2 Сацюк А. В., Воевода Е. Г. Анализ трекеров алгоритмов компьютерного зрения в вопросах отслеживания подвижных объектов в видеопотоке // Сборник научных трудов Донецкого института железнодорожного транспорта. — 2023. — № 71.
  15. ↑ Szeliski R. Computer Vision: Algorithms and Applications. — Springer, 2010. — ISBN 978-1-84882-934-3.
  16. ↑ OpenCV: Camera Calibration and 3D Reconstruction (англ.). OpenCV. Дата обращения: 15 октября 2026.
  17. ↑ Halloy J., Sempo G., Caprari G., Rivault C., Asadpour M. и др. Social Integration of Robots into Groups of Cockroaches to Control Self-Organized Choices (англ.) // Science. — 2007. — Vol. 318, no. 5853. — P. 1155—1158. — doi:10.1126/science.1144259.
  18. ↑ Siegwart R., Nourbakhsh I., Scaramuzza D. Introduction to Autonomous Mobile Robots. — 2-е. — MIT Press, 2011. — ISBN 978-0-262-01535-6.
  19. ↑ Thrun S., Burgard W., Fox D. Probabilistic Robotics. — MIT Press, 2005. — ISBN 978-0-262-20162-9.
  20. ↑ SwisTrack - a flexible open source tracking software for multi-agent systems (англ.). Semantic Scholar. Дата обращения: 15 октября 2026.
  21. ↑ Adaptive Public License 1.0 (англ.). Open Source Initiative. Дата обращения: 15 октября 2026.

Дополнительно по теме

Pause