Какой лучший способ сравнить исходную траекторию с двумя сжатыми траекториями - PullRequest
3 голосов
/ 24 января 2012

Предположим, что у него есть траектория GPS - то есть серия пространственно-временных координат, каждая координата - это информация (x, y, t), где x - долгота, y - широта, а t - метка времени. Предположим, что каждая траектория идентифицируется 1000 (x, y) точками, сжатая траектория является траекторией с меньшим количеством точек, чем оригинал, например 300 точек. Алгоритм сжатия (Дуглас-Пекер, Беллман и т. Д.) Определяет, какие точки будут находиться на сжатой траектории, а какая будет отброшена.

Каждый алгоритм делает свой выбор. Лучшие алгоритмы выбирают точки не только по пространственным характеристикам (x, y), но и по пространственно-временным характеристикам (x, y, t).

Теперь мне нужен способ сравнить две сжатые траектории с оригинальной, чтобы понять, какой алгоритм сжатия лучше уменьшает пространственно-временную (временная составляющая действительно важна) траекторию.

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

Ответы [ 3 ]

2 голосов
/ 24 января 2012

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

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

скорость = sqrt ((xb - xa) ^ 2 + (yb - ya)) / (tb-ta)

мы можем исключить точки, в которых расстояние не может быть пройдено за истекшее время с учетом ограничения скорости. Мы можем сделать то же самое с ограничениями ускорения и изменить ограничения направления для данной скорости. Эти ограничения изменяют, является ли GPS-приемник статичным, ручным, в автомобиле, в самолете и т. Д ...

Мы можем удалить избыточные точки, используя движущееся окно, смотрящее на три точки, где, если интерполированную (x, y, t) для средней точки можно сравнить с наблюдаемой точкой, и наблюдаемая точка удаляется, если она лежит в пределах указанное расстояние + временная погрешность интерполированной точки. Мы также можем подгонять данные по кривой и учитывать расстояние до кривой, а не использовать окно с 3 точками.

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

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

Для последнего мы также должны рассмотреть, насколько хорошо сглаженный результат моделирует данные, веса, наложенные ограничениями, и параметры формы / кривой проекта.

Надеюсь, в этом есть какой-то смысл.

1 голос
/ 27 января 2012

Я нашел то, что мне нужно для вычисления пространственно-временной ошибки. Как написано в документе "Сжатие и добыча данных трассировки GPS: Новые методы и приложения " от Lawson, Ravi & Hwang:

Синхронизированное евклидово расстояние (сед) измеряет расстояние между две точки на одинаковых отметках времени. На рисунке 1 пять временных шагов (t1 через t5). Упрощенная линия (которую можно рассматривать как сжатое представление трассы) состоит только из двух точки (P't1 и P't5); тем самым он не включает в себя точки P't2, P't3 и P't4. Для количественной оценки ошибки, вносимой этими недостающими точками, расстояние измеряется с одинаковыми временными шагами. Так как три очка были удалены между P't1 и P't5, линия делится на четыре отрезки одинакового размера с использованием трех точек P't2, P't3 и P't4 для целей измерения погрешности. Общая ошибка измеряется как сумма расстояния между всеми точками в синхронизированное время моменты, как показано ниже. (В следующем выражении n представляет общее количество рассмотренных баллов.)

enter image description here

1 голос
/ 24 января 2012

Возможно, вы могли бы использовать среднеквадратичное расстояние между траекториями во времени.
Возможно, достаточно просто посмотреть на расстояние в моменты времени 1 с, 2 с, ..., но вы также можете сделать это более точно между интегрированием отметок времени, (x1 (t) -x2 (t)) ^ 2 + (y1 (t) ) у2 (т)) ^ 2. Обратите внимание, что между 2 отметками времени обе траектории будут прямолинейными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...