powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Реализация кусочно-линейной апроксимации маршрута подъезда
18 сообщений из 18, страница 1 из 1
Реализация кусочно-линейной апроксимации маршрута подъезда
    #38384350
geonew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, друзья. Передо мой встала нетривиальная задача реализации "разбиения маршрута на отрезки".

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

Необходимо найти 3 точки, которые, с какой-то долей вероятности, характерезуют переломы траектории. Не знаю, как подробнее объянить, в приложенном изображении все понятнее.
Т.е. с минимальной погрешностью нужно разложить маршрут на 3 прямые. Разложить маршрут с помошью функции кусочно-линейной аппроксимации.



В какую сторону копать? Ну да, все это нужно будет реализовать, после математического решения.

Свои соображения -
найти полином 3-его порядка, который будет характеризовать 2 точки перегиба
Применить преобразования Хафа - идентифицировать является ли данный отрезок прямой и с каким приближением. http://ru.wikipedia.org/wiki/Преобразование_Хафа
...
Рейтинг: 0 / 0
Реализация кусочно-линейной апроксимации маршрута подъезда
    #38384625
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне в этом изображении не нравятся одна вещь. Я верю в две первые точки перелома (если смотреть слева направо), но не понимаю как ты выбрал третью? Там на картинке как минимум еще две потенциальные точки перелома есть, и на первом и на втором отрезках.

А вообще, я бы подошел к этой задаче проще. Если у нас исходная линия уже задана отрезками (массив точек), то можно сделать что-то в духе последовательного загрубления:
Берем три последовательных точки (это два отрезка), измеряем угол между этими двумя отрезками. Если угол отличается от 180 на величину меньше чем X. То выкидываем среднюю точку. Проходим таким образом по всему пути. Получаем новый массив точек который представляет загрубленный путь с перегибами больше чем начальный X. Если этих перегибов больше требуемых трех - увеличиваем X и повторяем загрубление.
...
Рейтинг: 0 / 0
Реализация кусочно-линейной апроксимации маршрута подъезда
    #38384749
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
geonewНеобходимо найти 3 точки, которые, с какой-то долей вероятности, характерезуют переломы траектории. Не знаю, как подробнее объянить, в приложенном изображении все понятнее.
Боюсь, пока Вы не можете толком сформулировать "что надо найти", задача не имеет шанса быть решена. И дёрганья в сторону "как решать" только усугубят проблемы в "что решать-то".

Попробуйте описать реальную решаемую задачу. Почему именно три точки, зачем они нужны... Иначе решение может оказаться очень странным... например, по некоторым соображениям напрашивается фрагмент правильного N-угольника, вписанный в траекторию ))))
...
Рейтинг: 0 / 0
Реализация кусочно-линейной апроксимации маршрута подъезда
    #38384754
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
geonew,

да можно все токи перелома точно вычислить без всякой апроксимации если есть координаты точек :)
...
Рейтинг: 0 / 0
Реализация кусочно-линейной апроксимации маршрута подъезда
    #38385220
geonew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlА вообще, я бы подошел к этой задаче проще. Если у нас исходная линия уже задана отрезками (массив точек), то можно сделать что-то в духе последовательного загрубления:
Берем три последовательных точки (это два отрезка), измеряем угол между этими двумя отрезками. Если угол отличается от 180 на величину меньше чем X. То выкидываем среднюю точку. Проходим таким образом по всему пути. Получаем новый массив точек который представляет загрубленный путь с перегибами больше чем начальный X. Если этих перегибов больше требуемых трех - увеличиваем X и повторяем загрубление.
Интересная идея, спасибо.
White Owl Мне в этом изображении не нравятся одна вещь. Я верю в две первые точки перелома (если смотреть слева направо), но не понимаю как ты выбрал третью? Там на картинке как минимум еще две потенциальные точки перелома есть, и на первом и на втором отрезках.

Да, третья точка выбрана не совсем корректно. Это просто для наглядности.
softwarer Попробуйте описать реальную решаемую задачу. Почему именно три точки, зачем они нужны... Иначе решение может оказаться очень странным... например, по некоторым соображениям напрашивается фрагмент правильного N-угольника, вписанный в траекторию ))))
Есть алгоритм оповещения о подъезде к заданной токе, путем добавления 3-х дополнительных (подъезжаем именно по этой дороге, с этой стороны). 3 точки долдны максимально близко характерезовать путь подъезда. Алгоритм уже оттестирован и работает кореектно. Сейчас эти 3 точки выбираются вручную. Ну, дальше вы сами понимаете..=)
...
Рейтинг: 0 / 0
Реализация кусочно-линейной апроксимации маршрута подъезда
    #38385233
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
geonewЕсть алгоритм оповещения о подъезде к заданной токе, путем добавления 3-х дополнительных (подъезжаем именно по этой дороге, с этой стороны). 3 точки долдны максимально близко характерезовать путь подъезда.А как строится маршрут? Если по Яндекс.Картам (с которых взята иллюстрация), то, имхо, проще периодически перезапрашивать маршрут. Если оставшийся путь уменьшается, значит "подъезд" осуществляется.
...
Рейтинг: 0 / 0
Реализация кусочно-линейной апроксимации маршрута подъезда
    #38385263
geonew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftА как строится маршрут? Если по Яндекс.Картам (с которых взята иллюстрация), то, имхо, проще периодически перезапрашивать маршрут. Если оставшийся путь уменьшается, значит "подъезд" осуществляется.

Нет. Карт в алгоритме нет, в теме они просто для нагрядности. Маршрут не стрится - это gps-трек, точки gps координат, снятые с некоторым интервалом.
...
Рейтинг: 0 / 0
Реализация кусочно-линейной апроксимации маршрута подъезда
    #38385284
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
geonewэто gps-трек, точки gps координат, снятые с некоторым интервалом.Тогда "подъезжаем именно по этой дороге" не взлетит. Достаточно сдвига на несколько метров, который GPS не почувствует из ограниченной точности, и все - другая дорога, например, во встречном направлении.
...
Рейтинг: 0 / 0
Реализация кусочно-линейной апроксимации маршрута подъезда
    #38385304
geonew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftТогда "подъезжаем именно по этой дороге" не взлетит. Достаточно сдвига на несколько метров, который GPS не почувствует из ограниченной точности, и все - другая дорога, например, во встречном направлении.
Все это "пройдено". Прекрасно понимаю, что без некой пограшности не обойтись. Но желательно ее минимизировать.
...
Рейтинг: 0 / 0
Реализация кусочно-линейной апроксимации маршрута подъезда
    #38385353
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
geonewmiksoftТогда "подъезжаем именно по этой дороге" не взлетит. Достаточно сдвига на несколько метров, который GPS не почувствует из ограниченной точности, и все - другая дорога, например, во встречном направлении.
Все это "пройдено". Прекрасно понимаю, что без некой пограшности не обойтись. Но желательно ее минимизировать.Или я не понял задачу, или вы загоняетесь. Чем не годится просто расстояние до цели? Если оно достаточно долго сокращается и уже достаточно малО - значит подъезжаем.
Как я понимаю, точек из будущего все равно нет, т.е. проедет машина нужный поворот мимо или не проедет - не угадаешь.
...
Рейтинг: 0 / 0
Реализация кусочно-линейной апроксимации маршрута подъезда
    #38385377
geonew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftИли я не понял задачу, или вы загоняетесь. Чем не годится просто расстояние до цели? Если оно достаточно долго сокращается и уже достаточно малО - значит подъезжаем.
Как я понимаю, точек из будущего все равно нет, т.е. проедет машина нужный поворот мимо или не проедет - не угадаешь.

Можем подъезжать с другой стороны. Можем по паралельной дороге, находящейся в 500 метрах от заданной (в этом случае точности gps более чем достаточно). Можем подъезжать по перпедикулярной дороге, а точка будет раполагаться на перекрестке, пересечении 2 дорог (нас интересует подъезд именно по заданнной дороге). Важно движемся ли мы именно по заданной дороге в заданном направлении или нет, а не просто приближаемся или удаляемся.
...
Рейтинг: 0 / 0
Реализация кусочно-линейной апроксимации маршрута подъезда
    #38385383
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
geonewВажно движемся ли мы именно по заданной дороге в заданном направлении или нет, а не просто приближаемся или удаляемся.Т.е. еще как-то должна быть дана "заданная дорога", т.е. маршрут.
Однако:geonewМаршрут не строится
...
Рейтинг: 0 / 0
Реализация кусочно-линейной апроксимации маршрута подъезда
    #38385399
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
geonewЕсть алгоритм оповещения о подъезде к заданной токе, путем добавления 3-х дополнительных (подъезжаем именно по этой дороге, с этой стороны). 3 точки долдны максимально близко характерезовать путь подъезда.
Тогда точки перегиба не при чём, а вот действительно важный момент - алгоритму на вход должны подаваться все возможные маршруты одновременно (чтобы он мог выбрать для каждого характерные точки, не принадлежащие другим маршрутам). Вообще задача вызывает сомнение (в том смысле, что прикидывая возможные алгоритмы и тестовые случаи для них, начинает казаться, что алгоритм всегда будет возможно обмануть), но в общем путь решения выглядит следующим: взять все маршруты, посчитать точки достаточно резких поворотов, потом объединить близкие поворотные точки и построить соответствующий граф "ближайших улиц" и на нём для каждого маршрута найти "свою" последовательность вершин, отличающую от всех других. Будет ли их именно три... не уверен.
...
Рейтинг: 0 / 0
Реализация кусочно-линейной апроксимации маршрута подъезда
    #38385406
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, забыл упомянуть - возможно, в роли характерных точек надо будет брать не повороты, а как раз наоборот, середины "прямых". А может - и то, и другое. Это уже надо реализовать варианты и сравнить на практических данных, что лучше.
...
Рейтинг: 0 / 0
Реализация кусочно-линейной апроксимации маршрута подъезда
    #38385412
geonew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Положение исходной точки и 3 дополнительные точки, т.е. 4 точки, соединенные прямыми назовем маршрутом подъезда. Наглядно видно на изображении.
Маршрута нет изначально. Маршрут подъезда (3 точки перелома) мы должны как раз найти.

И, повторно двигаясь в этом месте, имель возможность определить, повторяем ли мы траекторию движения, движемся ли мы по той же дороге в том же направлении, по которому двигались ранее(собрали статистику, нашли путь подъезда, ранее)
...
Рейтинг: 0 / 0
Реализация кусочно-линейной апроксимации маршрута подъезда
    #38385418
geonew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerДа, забыл упомянуть - возможно, в роли характерных точек надо будет брать не повороты, а как раз наоборот, середины "прямых". А может - и то, и другое. Это уже надо реализовать варианты и сравнить на практических данных, что лучше.Алгоритм уже написан, работает хорошо. Основан на точках перегиба. Только устанавливаются они пока вручную.
...
Рейтинг: 0 / 0
Реализация кусочно-линейной апроксимации маршрута подъезда
    #38385620
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно задаться шириной коридора и тянуть ее от 1-й точки до тех пор пока все
точки ложаться в коридор. Если это условие нарушено то поставить точку и начать
строить новый прямой коридор и т.д.

Вроде тривиально.
...
Рейтинг: 0 / 0
Реализация кусочно-линейной апроксимации маршрута подъезда
    #38386054
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
самое простое:
запросить яндекс о названии улицы для каждой координаты,

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

правда это не учитывает, что улицы могут идти стык-в-стык (без поворотов)
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Реализация кусочно-линейной апроксимации маршрута подъезда
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]