наименьших квадратов решение матрицы камеры [numpy] - PullRequest
0 голосов
/ 28 октября 2009

Я хотел бы использовать алгоритм наименьших квадратов numpy для определения матрицы камеры из 6 известных 3D -> 2D точечных соответствий.

Я использовал этот сайт в качестве ссылки:

http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/OWENS/LECT9/node4.html

В настоящее время матрица моей камеры имеет очень маленькие значения:

[[ -1.01534118e-11   3.87508914e-11  -2.75515236e-11   5.57599976e+02]
 [ -1.84008233e-11   2.78083388e-11  -9.67788509e-11   9.77599976e+02]
 [ -2.59237076e-14  -8.57647287e-15  -9.09272657e-14   1.00000000e+00]]

Я хотел бы иметь возможность ограничить решатель numpy, чтобы он не мог найти решение для тривиального решения, где матрица Camera почти равна нулю.
Кто-нибудь знает, как ограничить numpy.linalg.lstsqr()?

Ответы [ 3 ]

2 голосов
/ 28 октября 2009

Мне нужно правильно установить scipy

Просто замечание по установке scipy, в дистрибутивах Ubuntu начиная с 8.04 была сломана сборка scipy. Об этом позаботились в последней бета-версии 9.10. Вы можете создать scipy с нуля, но это не так просто. Просто один на один, потому что нам потребовалось некоторое усилие, чтобы понять это. Может быть, это избавит вас от разочарования =)

1 голос
/ 28 октября 2009

Я подозреваю, что вам может понадобиться использовать подпрограммы fmin_ * в scipy.optimize. учебник по оптимизации охватывает базовое использование, а scipy.optimize.fmin_slsqp может включать ограничения.

0 голосов
/ 02 ноября 2009

будет наименьших квадратов, оставаясь вблизи точки х0 быть полезным, то есть есть ли матрица камеры х0, к которой вы хотите быть близки?
«Держись подальше от некоторого х0» не выпуклый, противный; держитесь вблизи x0 или x1 ..., т.е. минимизируйте
|Ax-b|^2 + w^2 (|x-x0|^2 + |x-x1|^2 + ...) легко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...