Отфильтровать шум в данных?

Есть задание отфильтровать данные с GPS датчиков снятых с нескольких транспортных средств за n-ый промежуток времени. GPS дает довольно приличную погрешность. Если построить график, то отчетливо видны очертания дорог, но шума очень много, точки могут "прыгать" от дороги до 200метров. Какими алгоритмами ( вероятно машинного обучения) можно отфильтровать эти данные?
Была идея воспользоваться RANSAC, но маршрут не прямолинейный.
Еще есть идея разделить дорогу по прямолинейным кусочкам, но алгоритма, увы, не знаю. Есть советы куда копать?)
  • Вопрос задан
  • 3611 просмотров
Пригласить эксперта
Ответы на вопрос 5
XNoNAME
@XNoNAME
Эникейщик
Из координат и времени можно получить скорость и направление движения ТС
Фильтрация будет заключаться в том, что бы убрать точки в которых скорость выше нормальной и/или направление кратковременно меняется на недопустимый угол.
Ответ написан
Комментировать
Olej
@Olej
инженер, программист, преподаватель
Какими алгоритмами ( вероятно машинного обучения) можно отфильтровать эти данные?

Методы машинного обучения модные среди IT-шников, но ... зачастую бессмысленные и бесполезные в цифровой обработке сигналов (DSP). Там на это дело есть настолько много приёмов и методов фильтрации шума, начиная от классики спектральных преобразований и цифровой фильтрации, и до новомодных штучек типа вэйвлет-преобразований и авторегрессионных фильтров. ... настолько много, что и что-то конкретно указывать не хочется, не видя детально сигнала. А результаты бывают просто ошеломляющие.

Возьмите книжки по цифровой обработке сигналов, а ещё лучше - найдите в близком окружении советчиков из числа занимающихся вопросами цифровой обработки сигналов (часто это в кругах прикладной науки при университетах).
Ответ написан
@nirvimel
Для этого существует Фильтр Калмана.

Наглядный пример возможностей фильтра — получение оптимальных, непрерывно обновляемых оценок положения и скорости некоторого объекта по результатам временно́го ряда неточных измерений его местоположения.

Фильтр Калмана — это, наверное, самый популярный алгоритм фильтрации, используемый во многих областях науки и техники. Благодаря своей простоте и эффективности его можно встретить в GPS-приемниках, обработчиках показаний датчиков, при реализации систем управления и т.д.

Последняя цитата отсюда. А эта статья окончательно снимает все вопросы.
Ответ написан
Mrrl
@Mrrl
Заводчик кардиганов
Если хочется велосипеда, можно сделать так.
1) вводите модель шума. Например, "с вероятностью 90% ошибка распределена по Гауссу с сигмой 15 м, а с вероятностью 10% точка может быть где угодно".
2) для набора из 3, 4 или 5 последовательных точек (x,y,t) вводите критерий - насколько вероятно, что каждая из этих точек попала в 90% (с учётом технических возможностей автомобиля и возможной кривизны дороги). Определяете штраф, который тем больше, чем меньше вероятность. Определяете также штраф за то, что точка попала в 10%.
3) просматриваете точки и перебираете варианты, какие точки попали в 90%, какие нет (динамическим программированием по маске последних попавших точек). Цель - найти вариант с наименьшим штрафом.
4) к этому моменту точки разделены на хорошие (которые описываются гауссовым шумом) и плохие. Берёте хорошие точки и проходите по ним каким-нибудь сглаживающим фильтром. Правда, его придётся подбирать так, чтобы он учитывал возможность поворота под прямым углом.
Это годится для точек, снятых с одной машины. Если точек много, они образуют широкую полосу, и информация, откуда они взялись, потеряна, то нужны какие-то другие методы.

А если велосипед изобретать не хочется - изучайте, что такое фильтр Калмана. Может быть, вам повезёт. Лично я предпочту велосипед (кажется, конкретно эта или похожая модель называется методом Виттерби - но может быть, и нет).
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Алгоритм усреднения статистических значений: habrahabr.ru/post/134375
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы