Быстрая подгонка плоскости ко многим точкам

Я хочу подогнать самолет к набор ~ 6-10 тыс. 3D-точек. Я стремлюсь сделать это как можно быстрее, и точность не самая большая проблема (честно говоря, плоскость может быть отклонена на +-10 градусов по любой из основных осей).

Мой текущий подход заключается в использовании наилучшего из наилучшего соответствия, но он невероятно медленный (я надеюсь извлекать плоскости со скоростью примерно 10-50 тысяч раз каждый раз, когда я запускаю алгоритм, и с такой скоростью он завершится через несколько недель, в отличие от часов), поскольку он работает со всеми возможными комбинациями 6000 точек, то есть ~ 35 000 000 000 итераций, и, честно говоря, имеет гораздо более высокую точность, чем мне нужно.

Кто-нибудь знает о более слабых методах подгонки плоскости, которые могли бы значительно ускорить мой алгоритм?

РЕДАКТИРОВАТЬ:

Мне удалось сократить количество итераций до ~42 тыс. путем создания плоскостей под каждым возможным трехмерным углом (каждый раз шагая по 5 градусов) и тестирования существующих точек по сравнению с ними, чтобы найти лучший плоскости, вместо того, чтобы подгонять плоскости к точкам, которые у меня есть.

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

6
задан Tetsujin no Oni 19 June 2014 в 13:38
поделиться