Масштабирование двух сеток одного и того же объекта - PullRequest
1 голос
/ 10 октября 2019

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

Mesh using SfM without scale

Чтобы масштабировать сетку, я могу создавать плоскости смасштаб реального мира. Например,

Planes with scale

Я пытался поиграться с ICP для масштабирования и регистрации сетки SfM в соответствии с масштабом плоскостей, но не очень успешно. Может ли кто-нибудь указать мне правильное направление, как решить эту проблему? Я хотел бы масштабировать сетку SfM в соответствии с масштабом реального мира. (Мне не нужно регистрировать две сетки)

Ответы [ 2 ]

1 голос
/ 14 октября 2019

Вам необходимо связать некоторое расстояние в модели с некоторым измеримым расстоянием в физическом мире. Самым простым, вероятно, является высота камеры над плоскостью пола. Если это недоступно, то, возможно, высота кровати или размер подушки.

Допустим, физическая высота камеры составляет 1,6 м, а в модели - 800 единиц длины над полом. плоскость, то масштабный коэффициент, который вам нужно применить (чтобы получить 1 единицу длины = 1 мм):

               1600
scale_factor = ---- = 2.0
                800

0 голосов
/ 22 октября 2019

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

1) Я использовал pyrender , чтобы отобразить две сетки из известных поз в двух мирах, чтобы получить точные соответствия

2) Затем я использовал анализ procustes, чтобы выяснить масштабированиефактор, вычисляя преобразование одной сетки в другую. Вы можете получать от здесь

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

...