Страница 1 из 1

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

Добавлено: 17 апр 2008, 17:05
Andrey1
Hi ALL!

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

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

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

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

Добавлено: 18 апр 2008, 08:59
KolesovDmitry
Andrey1 писал(а):Hi ALL!

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

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

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

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

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

Добавлено: 21 апр 2008, 08:29
Морж
Кредо Траскор находит 7 параметров

Добавлено: 21 апр 2008, 21:14
Andrey1
Да ну???

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

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