Поиск параметров преобразования Хелмерта (7ПП)

Системы координат, проекции, преобразования, привязка
Ответить
Andrey1
Активный участник
Сообщения: 209
Зарегистрирован: 13 июл 2007, 18:58
Репутация: 1

Поиск параметров преобразования Хелмерта (7ПП)

Сообщение Andrey1 » 17 апр 2008, 17:05

Hi ALL!

Интересует задача нахождения параметров 7-параметрического преобразования из двух массивов координат точек, заданных в двух системах координат.

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

Функция 7ПП давно написана, но вот как найти эти параметры???

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Поиск параметров преобразования Хелмерта (7ПП)

Сообщение KolesovDmitry » 18 апр 2008, 08:59

Andrey1 писал(а):Hi ALL!

Интересует задача нахождения параметров 7-параметрического преобразования из двух массивов координат точек, заданных в двух системах координат.

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

Функция 7ПП давно написана, но вот как найти эти параметры???
Если это разовая задача (в смысле, что не очень важна скорость нахождения оптимума), то я рекомендую посмотреть в сторону генетических алгоритмов.
Очень удобная штука из серии "один раз изучил, всю жизнь пользуешься".

Если коротко суть решения будет такая:
1. Генерируете несколько (достаточно много) массивов из семи элементов. Каждый массив содержит некоторый набор параметров для вычисления функции 7ПП. Такой семиэлементный массив назовем геном. А все множество массивов назовем популяцией.
2. Вычисляете для каждого массива при помощи функции преобразования новые координаты для нескольких точек. Сравниваете получившиеся координаты с ожидаемыми. Чем меньше разница между ожидаемым и расчетным, тем "здоровее" ген.
3. Выбираете несколько здоровых генов и "скрещиваете" их между собой. Скрещивание можно провести так:случайно генерируете число x в интервале от 1 до 7. Берете два гена-родителя разделяете их в точке x на две части (два подмассива) и эти части перемешиваете - получаете двух потомков.
4. Выбираете в популяции слабые ("больные") гены. Если "здоровье" получившихся потомков больше, чем здоровье слабых генов, то замещаете слабые более сильными. Так популяция становится все "здоровее" и "здоровее"
5. Проводите (с некоторой вероятностью) мутацию: изменяете случайно выбранный ген (даете ему новые параметры). Так в популяции появляется новый материал для скрещивания.
6. Пунты 3-5 повторяете в цикле несколько раз до тех пор, пока процесс эволюции не приведет к образованию гена, решающего задачу с достаточной точностью.

Andrey1
Активный участник
Сообщения: 209
Зарегистрирован: 13 июл 2007, 18:58
Репутация: 1

Сообщение Andrey1 » 19 апр 2008, 10:42

Посмотрю, хотя я слышал про решение "методом наименьших квадратов". Скорость решения не волнует - хоть 10 минут на современной конфигурации. Находятся параметры для используемой опорной сети (один раз), а затем все пикеты объекта (вплоть до десятков тысяч, причём многократно) пересчитываются по этим параметрам.

Морж
Новоприбывший
Сообщения: 1
Зарегистрирован: 24 янв 2005, 07:54
Репутация: 0
Откуда: Томск

Сообщение Морж » 21 апр 2008, 08:29

Кредо Траскор находит 7 параметров

Andrey1
Активный участник
Сообщения: 209
Зарегистрирован: 13 июл 2007, 18:58
Репутация: 1

Сообщение Andrey1 » 21 апр 2008, 21:14

Да ну???

Вот это новость!!!

Давайте серьёзно - алгоритм и/или листинг.

Ответить

Вернуться в «Координаты и привязка»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей