我想使用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()
吗?
发布于 2009-10-29 01:08:44
我需要正确安装scipy
仅需注意安装scipy,ubuntu发行版从8.04开始就有一个不完整的scipy版本。这已经在最新的9.10测试版中得到了解决。您可以从头开始构建scipy,但这通常不是一件容易做的事情。只是提醒一下,因为我们在这里花了一些努力才弄清楚。也许这会让你少一些挫败感=)
发布于 2009-10-28 23:41:19
我怀疑您可能需要使用scipy.optimize中的fmin_*例程。optimization tutorial涵盖了基本用法,而scipy.optimize.fmin_slsqp可以包含约束。
发布于 2009-11-02 21:08:33
least squares staying near a point x0会有什么用处吗?比如,你有没有想要接近的摄像头矩阵x0?
"Keep away from x0“是非凸的,讨厌的;保持在x0或x1附近...,即最小化
|Ax-b|^2 + w^2 (|x-x0|^2 + |x-x1|^2 + ...)
很简单。
https://stackoverflow.com/questions/1634555
复制相似问题