Иерархический RBF

редактировать

В компьютерной графике, иерархический RBF - это метод интерполяции, основанный на радиальных базисных функциях (RBF). Иерархическая интерполяция RBF применяется при построении моделей формы в 3D компьютерной графике (см. Изображение Stanford Bunny ниже), обработке результатов с 3D-сканера, реконструкция местности и др.

MyBunny.gif

Эта проблема неофициально называется «интерполяция множества точек с большим разбросом».

Этапы метода (например, в 3D) состоят из следующего:

  • Пусть разбросанные точки представлены в виде набора P = {c i = (x i, y i, z i) | я знак равно 1 N ⊂ R 3} {\ Displaystyle \ mathbf {P} = \ {\ mathbf {c} _ {i} = (\ mathbf {x} _ {i}, \ mathbf {y} _ {i}, \ mathbf {z} _ {i}) \ vert _ {i = 1} ^ {N} \ subset \ mathbb {R} ^ {3} \}}{\ displaystyle \ mathbf {P} = \ {\ mathbf {c} _ {i} = (\ mathbf {x} _ {i}, \ mathbf {y} _ {i}, \ mathbf {z} _ {i}) \ vert _ {i = 1} ^ {N} \ subset \ mathbb {R} ^ {3} \}}
  • Пусть существует набор значений некоторой функции в разбросанные точки H = {привет | я знак равно 1 N ⊂ R} {\ displaystyle \ mathbf {H} = \ {\ mathbf {h} _ {i} \ vert _ {i = 1} ^ {N} \ subset \ mathbb {R} \}}{\ displaystyle \ mathbf {H} = \ {\ mathbf {h} _ {i} \ vert _ {i = 1} ^ {N} \ subset \ mathbb {R} \}}
  • Найдите функцию f (x) {\ displaystyle \ mathbf {f} (\ mathbf {x})}{\ displaystyle \ mathbf {f} (\ mathbf {x})} , которая будет удовлетворять условию f (x) = 1 {\ displaystyle \ mathbf {f} (\ mathbf {x}) = 1}{\ displaystyle \ mathbf {f} (\ mathbf {x}) = 1} для точек, лежащих на фигуре, и f (x) ≠ 1 {\ displaystyle \ mathbf {f} (\ mathbf { x}) \ neq 1}{\ displaystyle \ mathbf {f} (\ mathbf {x}) \ neq 1} для точек, не лежащих на форме
  • Как JC Carr et al. как показано, эта функция выглядит так: е (x) = ∑ i = 1 N λ i φ (x, ci) {\ displaystyle \ mathbf {f} (\ mathbf {x}) = \ sum _ {i = 1 } ^ {N} \ lambda _ {i} \ varphi (\ mathbf {x}, \ mathbf {c} _ {i})}{\ displaystyle \ mathbf {f } (\ mathbf {x}) = \ sum _ {i = 1} ^ {N} \ lambda _ {i} \ varphi (\ mathbf {x}, \ mathbf {c} _ {i})} где:

φ {\ displaystyle \ varphi}\ varphi - это RBF ; λ {\ displaystyle \ lambda}\ lambda - коэффициенты, являющиеся решением системы , показанной на рисунке:

System.gif

Для определения поверхности необходимо оценить значение функции f (x) {\ displaystyle \ mathbf {f} (\ mathbf {x})}{\ displaystyle \ mathbf {f} (\ mathbf {x})} в интересных точках x. Отсутствие такого метода значительно усложняет O (n 2) {\ displaystyle \ mathbf {O} (\ mathbf {n} ^ {2})}{\ displaystyle \ mathbf {O} (\ mathbf {n} ^ { 2})} для вычисления RBF, решите систему и определите поверхность.

Другие методы
  • Уменьшить центры интерполяции (O (n 2) {\ displaystyle \ mathbf {O} (\ mathbf {n} ^ {2})}{\ displaystyle \ mathbf {O} (\ mathbf {n} ^ { 2})} до вычислить RBF и решить system, O (mn) {\ displaystyle \ mathbf {O} (\ mathbf {m} \ mathbf {n})}{\ displaystyle \ mathbf {O} (\ mathbf {m} \ mathbf {n})} для определения поверхности)
  • Компактная поддержка RBF (O (n log ⁡ n) {\ displaystyle \ mathbf {O} (\ mathbf {n} \ log {\ mathbf {n}})}{\ displaystyle \ mathbf {O} (\ mathbf {n} \ log {\ mathbf {n}})} для вычисления RBF, O (n 1.2..1.5) {\ displaystyle \ mathbf {O} (\ mathbf {n} ^ { 1.2..1.5})}{\ displaystyle \ mathbf {O} (\ mathbf {n} ^ {1.2..1.5})} для решения system, O (m log ⁡ n) {\ displaystyle \ mathbf {O} (\ mathbf {m} \ log { \ mathbf {n}})}{\ displaystyle \ mathbf {O } (\ mathbf {m} \ log {\ mathbf {n}})} для определения поверхности)
  • FMM (O (n 2) {\ displaystyle \ mathbf {O} (\ mathbf {n} ^ { 2})}{\ displaystyle \ mathbf {O} (\ mathbf {n} ^ { 2})} для вычисления RBF, O (n log ⁡ n) {\ displaystyle \ mathbf {O} (\ mathbf {n} \ log {\ mathbf { n}})}{\ displaystyle \ mathbf {O} (\ mathbf {n} \ log {\ mathbf {n}})} для решения system, O (m + n log ⁡ n) {\ displaystyle \ mathbf {O} (\ mathbf {m} + \ mathbf {n} \ log {\ mathbf {n}})}{\ displaystyle \ mathbf {O} (\ mathbf {m } + \ mathbf {n} \ log {\ mathbf {n}})} для определения поверхности)
Иерархический алгоритм

Идея иерархического алгоритма заключается в ускорении вычислений за счет декомпозиции сложных задач на множество простых (см. картина). Блок-схема иерархического алгоритма.gif

В этом случае иерархическое разделение пространства содержит точки на элементарных частях, а система малой размерности решает для каждой. Расчет поверхности в этом случае сводится к иерархическому (на основе древовидной структуры ) расчету интерполянта. Метод для случая 2D предложен Pouderoux J. et al. Для случая 3D в задачах 3D-графики используется метод W. Qiang et al. и модифицировано Бабковым В.

Ссылки
Последняя правка сделана 2021-05-23 11:21:04
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте