2013-08-19 3 views
1

Я пытаюсь квантовать нормали поверхности, скажем, 8 бункеров.Как квантовать нормали поверхности

Например, при вычислении функций, таких как HOG квантовать 2D градиенты [x,y] в 8 бункеров мы просто взять угол с плоскостью у т.е. arctan(y/x), который даст нам угол между 0-360.

Мой вопрос в том, что с учетом 3D-направления [x,y,z] поверхность нормальная в этом случае, как мы можем ее гистограммировать аналогичным образом? Разве мы просто проектируем на одну плоскость и используем этот угол, например, точечный продукт [x,y,z] и [0,1,0]?

Благодаря

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

Я также прочитал paper недавно, где они квантуются нормалями поверхности путем измерения углов между нормальными и предварительно вычисленными векторами, которые расположены вокруг правильной формы кругового конуса. Я добавил ссылку на этот документ в вопросе (раздел 3.3.2 последнего абзаца), является ли это эффективным подходом? И если да, то как мы вычисляем эти векторы?

ответ

3

Квантование непрерывного топологического пространства соответствует его разбиению и присвоению меток каждому разделу. Прямой стандартный подход для этого сценария (квантование нормалей) заключается в следующем.

  1. Выбери свой любимый единообразного многогранник:
  2. Разработка функции отображения из нормали на единице сферы на грань выбранного полиэдра, который пересекает нормаль.
    • Я бы посоветовал сделать argmax на лицах многогранников, принимая точечный продукт вашего нормального и каждого полиэдра. Тот, который дает наивысший точечный продукт, - это лицо, в которое вы должны вписаться.
  3. Используйте лицо, нормальное для каждой поверхности многогранника, в качестве метки для этой грани.

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

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

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

Бумага хочет, чтобы квантовать эти поверхности нормалей на 8 значений, представленных 8-битных чисел с ровно один бит установлен в 1, а остальные установлено в 0. 8 предварительно вычисленными нормалей вычисляются как:

п т х = сов (а) * соз (т)

п т у = сов (а) * Sin (т)

п т г = Sin (а)

, где а = пи/4 и т = 0, р/4, 2 * пи/4, 3 * пи/4, ..., 7 * пи/4.

Примечание

[сов (а) * соз (т)] + [сов (а) * Sin (т)] + [sin (а)] = сов (а) [сов (т) + грех (т)] + грех (а) = соз (а) + грех (а) = 1

+0

Спасибо Тимоти, это звучит как хороший подход. Я также недавно прочитал статью, где они квантовали нормали поверхности, измеряя углы между нормальными и предварительно вычисленными векторами, которые расположены вокруг правой круглой формы конуса. Я добавил ссылку на эту статью в вопросе (раздел 3.3.2 в последнем абзаце), похоже ли это на то, что вы говорите? Спасибо – Aly

+0

Очень похожая идея в этой статье. –

+0

Я буду принимать ваш ответ, поскольку он правильный, но очень хотел бы, чтобы вы могли объяснить, как векторы, описанные в этой статье, предварительно вычислены. – Aly

0

3-мерная норма не может быть квантована в 1-мерный массив так же легко, как для 2-D нормального (например, с использованием arctan). Я бы рекомендовал гистограммировать его на 2-мерное пространство с полярным углом и азимутальным углом. Например, используйте spherical coordinates, где значение r (радиус) всегда равно 1.0 (так как нормальная нормальная норма поверхности равна 1.0). В этом случае вы можете выбросить r-значение и просто использовать полярный угол θ (тета) и азимутальный угол φ (phi) для квантования 3D-нормали.

+0

Этот подход страдает из-за дополнительной чувствительности вблизи особенностей (полюсов). –

1

с учетом трехмерного направления [x, y, z], поверхностного нормали в этом случае, как можно сделать аналогичным образом?

В первом случае вы квантуете полярную ориентацию градиентов theta. Теперь вам нужно квантовать сферические ориентации theta и phi в двумерной гистограмме.

ли мы просто проецируем на одну плоскости и использовать этот угол

биннинг сферы определяет, как вы суммировать информацию, чтобы построить компактную еще описательную гистограмму.

Проецирование нормальный не является хорошей идеей, если theta важнее phi, просто использовать больше бункеров для theta

EDIT

Тимоти Shields точки в своем комментарии, и его ответ, что регулярное биннинг theta и phi не будет производить регулярное биннинг по сфере, поскольку бункеры будут сгруппированы по полюсам.

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

Phi регулярно квантуются в [0,pi]. Для theta вместо квантования диапазона [0,pi] вместо этого квантуется диапазон [-1,1];

Для каждого квантованного значения u в [-1,1], theta вычисляется как

theta = arcsin(sqrt(1 - u * u)) * sign(u) 

sign(u) возвращается -1, если u является отрицательным, в противном случае 1.

Вычисленный theta вместе с phi производит регулярное квантование по сфере.

Чтобы получить представление об приведенном выше уравнении, посмотрите на это article. Однако он описывает ситуацию в контексте случайной выборки.

EDIT

В вышеприведенном хака Тимоти Шилдс указывает, что только площадь бункеров считается. Валентность вершин (точка пересечения соседних бинов) не будет регулярной из-за сингулярности полюсов.

Хлопок для предыдущего взлома будет состоять в том, чтобы переустановить ящики в обычном quadrilateral mesh и сохранить обычную площадь.

Эвристика для оптимизации этой проблемы с глобальными ограничениями наличия той же валентности и области может быть вдохновлена ​​от Integer-Grid Maps Quad Meshing.

С двумя хаками этот ответ тоже hacky и немного вне контекста, в отличие от ответа Тимоти Шилдса.

+1

Этот подход страдает из-за дополнительной чувствительности вблизи особенностей (полюсов). –

+0

@TimothyShields Ты абсолютно прав. Я уточню –

+1

Этот обновленный ответ все еще имеет проблемы. Ваш подход обычно выбирается для случайного равномерного отбора поверхности сферы. Но это означает, что регионы будут иметь равную площадь. Формы будут щелями, которые все встречаются в точке на полюсе. –