У меня есть вопрос относительно подгонки квадрики к множеству точек и соответствующих нормалей (или, что эквивалентно, касательных). Подгонка квадратичных поверхностей к точечным данным хорошо изучена. Некоторые работы заключаются в следующем:
Прямая подгонка квадратичных поверхностей по типу , Джеймс Эндрюс, Карло Х. Секвин Компьютерный дизайн и приложения, 10 (a), 2013, bbb-ccc
Алгебраическая подгонка квадратичных поверхностей к данным , И. Аль-Субайхи и Г. А. Уотсон , Университет Данди
Подгонка к проективным контурам также рассматривается в некоторых работах, таких как эта .
Из всех этих работ я думаю, что метод Таубина для подгонки квадрик довольно популярен:
- Г. Таубин, "Оценка плоских кривых, поверхностей и неплоских пространственных кривых, определяемых неявными уравнениями, с приложениями к краевой и дистанционной сегментации изображения ", IEEE Trans. PAMI, Vol. 13, 1991, стр.1115-1138.
Позвольте мне кратко подвести итог. Квадрику можно записать в алгебраической форме:
Алгебраическое соответствие В принципе, мы хотели бы найти параметры, которые минимизируют сумму квадратов геометрических расстояний между точками и квадратичной поверхностью. К сожалению, оказывается, что это невыпуклая задача оптимизации без известных аналитических решений. Вместо этого стандартный подход заключается в поиске алгебраического соответствия, то есть в поиске параметров которые минимизируют:
Обратите внимание, что такая прямая минимизация даст тривиальное решение с в начале координат. Этот вопрос широко изучен в литературе. Одним из решений, которое, как было установлено, хорошо работает на практике, является метод Таубина (приведенный выше), который вводит ограничение:
Это можно решить следующим образом: Пусть:
где индексы обозначают производные. Решение дается обобщенным собственным разложением, . Вектор наиболее подходящего параметра равен собственному вектору, соответствующему наименьшему собственному значению.
Основной вопрос Во многих приложениях нормали облака точек доступны (или вычислены). Нормы квадрики также можно вычислить путем дифференцирования и нормализации неявной поверхности:
Однако метод Таубина использует только точечную геометрию, а не касательное пространство. И я не знаю многих методов, которые подходят для подгонки квадрик таким образом, чтобы касательные квадрики также совпадали с касательными нижележащего облака точек. Я ищу возможные расширения метода выше или любого другого, чтобы покрыть эти производные первого порядка.
То, чего я хотел бы достичь, может быть частично решено в пространствах меньшего размера, с более примитивными типами поверхностей (кривых). Например, подгонка линий к краям изображения с учетом информации о градиенте рассматривается здесь . Подгонка плоскостей (простой тип квадрики) к трехмерным облакам очень распространена ( ссылка 1 ), или подгонка сфер или цилиндров может быть приспособлена к ориентированным наборам точек ( ссылка 2 ). Так что мне интересно что-то похожее, но подобранный примитив - это квадрика.
Я также приветствовал бы анализ предложенного метода, такого как:
- Какое минимальное количество ориентированных точек требуется?
- Каковы вырожденные случаи?
- Что-нибудь можно сказать о надежности?
Обновление : я хотел бы представить направление для подражания. Формально, чего я хочу добиться:
источник
Ответы:
Я был удивлен, что не получил удовлетворительного ответа на поставленный выше вопрос, и мои исследования показали, что это действительно неисследованная область. Поэтому я приложил некоторые усилия для разработки решений этой проблемы и опубликовал следующие рукописи:
Я кратко коснусь основной идеи здесь:
Этот подход похож на аппроксимацию по градиенту один ( ). Мы выровняем вектор градиента квадрики с нормалью облака точек . Однако, в отличие от -приборов, мы предпочитаем использовать линейное ограничение для увеличения ранга, а не для регуляризации решения. Это, по-видимому, нетривиально, поскольку выравнивание вектор-вектор приводит к нелинейному ограничению любого вида:∇1 ∇Q(xi) ni∈R3 ∇1 ∇Q(xi)∥∇Q(xi)∥−ni=0or∇Q(xi)∥∇Q(xi)∥⋅ni=1.
Нелинейность вызвана нормализацией, поскольку трудно заранее определить величину и, следовательно, однородную шкалу. Мы решаем эту проблему, вводя обычную однородную шкалу среди неизвестных и пишем:
где
Собираем это для всех точек и нормалей чтобы получить систему вида :
αi ∇Q(xi)=∇vTiq=αini v=[x2y2z22xy2xz2yz2x2y2z1]T N xi ni A′q=0 ⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢vT1vT2⋮vTn∇vT1∇vT2⋮∇vTn00⋮0−n103⋮0300⋮003−n2⋮03⋯⋯⋱⋯⋯⋯⋱⋯00⋮00303⋮−nn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢AB⋮IJα1α2⋮αn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥=0 - \ mathbf {n} _n \ end {bmatrix} \ begin {bmatrix} A \\ B \\ \ vdots \\ I \\ J \\ \ alpha_1 \\ \ alpha_2 \\ \ vdots \\ \ alpha_n \ end { bmatrix} = \ mathbf {0} \ end {уравнение}
где , является∇vTi=∇v(xi)T∈R3×10 03 3×1 вектор-столбец нулей, равен и - неизвестные однородные шкалы.A′ 4N×(N+10) α={αi}
Хотя решение этой формулировки, лежащее в пустом пространстве дает приемлемые результаты, система совершенно не стеснена в своих действиях (масштабные коэффициенты слишком свободны). Лучше найти подходящий регуляризатор, который также не слишком сложен для реализации. На практике, снова аналогично аппроксимации градиентом один, мы могли бы предпочесть полиномиальные градиенты единичной нормы, и, таким образом, можно написать или, что эквивалентно, , один общий масштабный коэффициент. Это мягкое ограничениеA′ αi=1 αi←α¯ будет пытаться заставить нулевой набор полинома соблюдать локальную непрерывность данных. Такая регуляризация также избавляет нас от решения чувствительной однородной системы и позволяет переписать систему в более компактной форме :Aq=n
В общем, решение этой системы уравнений будет одновременно направлять квадрику, попадающую в облако точек, и выравнивать ее градиенты по нормали. Также можно по-разному взвешивать вклады точек и нормалей. В некоторых случаях, чтобы получить специфичное для типа соответствие, достаточно небольшого изменения учетом желаемого примитива. Для всех этих деталей, а также для некоторого теоретического анализа и псевдокода, я отсылаю вас к вышеупомянутым публикациям.A
источник
Я знаю один пример, когда нормали были включены в процедуру подбора. Это не прямая подгонка квадрик. Локально параметризованный патч устанавливается на точки и нормали. Использование нормалей дает больше уравнений в задаче подгонки, позволяя использовать многочлены более высокого порядка.
источник
Смотрите также эту статью
и это расширение
источник