(Россия, Санкт-Петербург) doi:10.18411/spc-22-03-2018-01 idsp: 000001:spc-22-03-2018-01 Трекингом называется определение местоположения движущегося объекта (нескольких объектов) во времени с помощью видеокамеры. Алгоритм анализирует видеокадры и выдает положение движущихся целевых объектов относительно кадра. Основная проблема в трекинге состоит в сопоставлении положений целевого объекта на последовательности кадров, особенно если объект движется быстро относительно частоты кадров. В данной работе реализован трекинг за множеством объектов методом межкадровой разницы. За характерные точки взяты моменты контуров. Момент -это суммарная характеристика контура, рассчитанная интегрированием (суммированием) всех пикселей контура. Момент (p,q) определяется формулой: ( ) ∑ ( ) где p и q -порядок возведения в степень соответствующего параметра при суммировании. n -число пикселей контура. Для идентификации нужных объектов на изображении создаѐтся функция, относящая найденный объект к классу отслеживаемых при наличии у последнего ряда описанных геометрических свойств (размер, расположение внутренних контуров и т.д.).Алгоритм обнаружения и отслеживания объектов: 1. Фильтрация полученного кадра с видеокамеры; 2. Выделение контуров объектов и местности; 3. Идентификация полученных контуров; 4. Если контур относится к классу объектов слежения, ему присваивается порядковый номер и вычисляется момент; 5. Чтение следующего кадра, повторение пунктов 1-4 и вычисление разницы моментов между кадрами; 6. Определение перемещения всех объектов. Данный метод позволяет одновременно следить за 1-5 объектами. При большем количестве производительность программы падает, поскольку обработка вычислений замедляется, и данные не успевают обновляться до чтения следующего кадра. Эта проблема решается разделением программы на потоки, количество которых будет равно количеству найденных объектов. При многопоточном отслеживании количество объектов движения можно увеличить до нескольких десятков. В качестве эксперимента были сконструированы три робота на базе Lego Mindstorms NXT 2.0, для каждого была написана программа движения по заданному маршруту. Запуск роботов осуществлялся синхронно. Робот справа (робот 1) вращался один оборот по часовой стрелке, робот в середине (робот 0) ехал вперед и вправо, последний робот (робот 2) двигался вперед-назад на одинаковое расстояние.Программы маршрутов написаны на языке программирования BricxCC, который хорошо подходит для платформ NXT.OnFwd(OUT_B(C), power) -функция используется для поворота вправо или влево (мотор С) с заданной мощностью power (в процентах), при power меньше нуля происходит реверс;Off(OUT_C(B)) -выключение мотора (моторов); Wait(delay) -задержка действия на время delay (в миллисекундах); Результаты трекинга отображены на рисунке 2, где хорошо видно проскальзывание колѐс и рывковые движения объектов, так как конструкция рамы довольно легкая и вес робота сказывается на взаимном положении колѐс.
Рисунок 2 -отображение полных траекторий объектов в миллиметрах.Буквами b и e обозначены соответств...