SwisTrack
SwisTrack — инструмент с открытым исходным кодом для отслеживания роботов и других объектов с использованием камеры или записанного видеоматериала в качестве входного источника. Основная разработка велась лабораторией распределённых интеллектуальных систем и алгоритмов (DISAL) и группой LPM Vision при EPFL (Лозанна, Швейцария)[1].
Что важно знать
| SwisTrack | |
|---|---|
| Тип | видеотрекинг |
| Разработчики | Nikolaus Correll, Pierre Roduit, Thomas Lochmatter и др. |
| Написана на | C++ |
| Интерфейс | wxWidgets |
| Операционные системы | Linux, Windows, Mac OS |
| Последняя версия | 4.0.0 (февраль 2008) |
| Лицензия | Adaptive Public License (открытое ПО) |
| Сайт | swistrack.sourceforge.net |
Архитектура
SwisTrack написан на C++ с использованием библиотеки wxWidgets для создания графического интерфейса и работы в сети. Для быстрой обработки изображений применяется библиотека OpenCV от Intel, а также реализованы интерфейсы для камер USB, FireWire и GigE, а также для файлов AVI[2].
Начиная с версии 4, конвейер обработки SwisTrack настраивается пользователем из компонентов, которые взаимодействуют между собой и передают данные через специальные каналы. Существует шесть каналов: входной, изображение в градациях серого, цветное изображение, бинарное изображение, частицы и треки. Отдельные компоненты могут работать только с некоторыми каналами данных. Для каждого используемого канал компонента поддерживается один из трёх режимов: чтение, запись и редактирование (то есть чтение и запись одновременно)[1].
В типовом конвейере изображение преобразуется в бинарное, затем объекты выделяются как "капли" (blobs), которые преобразуются в частицы; частицы формируют треки путём сопоставления последовательных кадров. Blob — это множество связанных пикселей с одинаковым значением[1].
SwisTrack может выводить данные либо в табличный файл с разделителями-табуляциями, либо через TCP-интерфейс с использованием протокола NMEA 0183. Последний также позволяет осуществлять удалённое управление[1].


