2015-05-29 2 views
7

У меня есть вопрос относительно моделей активной фигуры. Я использую бумагу T. Coots (которую можно найти here.)Модели активной формы: сопоставление точек модели с целевыми точками

Я сделал все начальные шаги (Procrustes Analysis для вычисления средней формы, PCA для уменьшения размеров), но я застрял на фитинге.

Это ситуация, я в настоящее: я вычислил среднюю форму с точками X и рассчитал новый набор точек Y, что X должен переместиться, чтобы лучше соответствовать моему изображению.

Я использую следующий алгоритм, который можно найти на странице 23 документа, ранее связанный:


enter image description here


Для уточнения: имеет среднюю форму вычисленную с Прокрустом Анализ, а - матрица, содержащая собственные векторы, вычисленные с помощью СПС.

Все идет хорошо до этапа 4. Я могу рассчитать параметры позы и инвертировать преобразование на точки Y.

Однако в stap 5 происходит что-то странное. Независимо от того, какие параметры позы вычисляются в stap 3 и применяются в stap 4, stap 5 всегда приводит к почти точно одному и тому же вектору y ' с очень низкими значениями (например, один из них составляет 1,17747114e-05). (Итак, рассчитал ли я шкалу 1/10 или 1000, y ' едва меняется).

Это приводит алгоритм всегда сходящаяся к тому же значению б, и, таким образом, в одной и той же выходной форме х, независимо от того, что входной набор целевых точек У является то, что я хочу точек модели X в соответствии с.

Это не цель алгоритма ... Может ли кто-нибудь объяснить это странное поведение? Так или иначе, проецирование моего рассчитанного вектора y в шаг 5 в «касательную плоскость» не учитывает ни одно из изменений, сделанных в , шаг 4.


Редактировать: У меня есть еще несколько аргументов, хотя нет объяснений или решений. Если в шаге , я вручную установить у» состоит только из нулей, то в шаге 6, б равна матрице собственных векторов multiplicated с meanshape. И это приводит к тому же b, который я всегда получаю (поскольку y ' - это всегда вектор с очень низкими значениями).

Но эти собственные векторы рассчитываются из формы с использованием PCA ... Так что ожидается, что никаких изменений не должно произойти, правильно?


ответ

0

Что-то вы могли бы проверить, что ваши координаты масштабируются правильно: алгоритм предполагает, что все координаты масштабируются так, что вектор в виде формы имеет евклидову норму один. Если это не так (особенно если оно намного больше одного, вы получите чрезвычайно маленькие компоненты для y).

Смежные вопросы