nextgis / qgis_reconstructline

QGIS plugin for making line out of points interactively
GNU General Public License v2.0
0 stars 3 forks source link

Линия восстанавливается неверно #7

Open drnextgis opened 7 years ago

drnextgis commented 7 years ago

Возможно, с математической точки зрения это и корректный результат, но пользователь ожидает, явно, другого. Я взял первые пару сотен точек реального трека и решил проверить, что получится. Результат: screenshot from 2016-11-14 13 06 23

Исходный слой: trackpoints.zip

KolesovDmitry commented 7 years ago

С точки зрения алгоритма построенная кривая также будет неоптимальной. Возможно, поможет, если убрать нормирование данных перед обучением: https://github.com/nextgis/ReconstructLine/blob/master/src/connector.py#L111-L114 (линии обычно вытянуты, поэтому нормировка может сильно искажать растояния вдоль одной координаты). НО скорее всего тогда появятся ошибки в других наборах точек.

Вывод: В коде зашито несколько эвристик, которые улучшают результат для одного набора точек и ухудшают его для другого. Действительно, зачастую алгоритм выдает неверные результаты для какого-то набора точек. Но это не означает автоматически, что нужно сразу же бростаться его допиливать. А вот что действительно нужно сделать:

  1. Собрать базу разных реальных треков (чем больше, тем лучше). Соединить их руками (или, если они треки идут с GPS, то порядок соединения уже может быть прописан). В общем -- собрать базу правильно соединенных точек. (@yellow-sky, возможно, у тебя уже набралась подобная база?)
  2. Написать процедуру подбора параметров, которая ищет набор параметров алгоритма, минимизирующих число неверно соединенных треков.