我目前正在进行3D重建项目,但我遇到了困难。我使用matlab-code Kneip建议并提供和理论来自:
http://publications.asl.ethz.ch/files/kneip11novel.pdf。
我无法弄清楚特征向量应该是什么。 从理论上讲,它似乎是指向摄像机矩阵C的3D点的矢量(见图)。但是Pnp(p3p)应该找到C,那么如何在没有C的情况下得到特征向量?
任何人都可以帮我弄清楚如何获取特征向量。
最好的问候 本都
答案 0 :(得分:2)
有关特征向量及其优点的讨论,请参阅第二部分A部分下的Kneips最近的论文:
升。 Kneip,P。Furgale,“OpenGV:实时校准几何视觉的统一和通用方法”,Proc。 IEEE国际机器人与自动化大会(ICRA),中国香港。 2014年5月。
让我引用相关段落:“通过将每个图像测量值表示为3D轴承矢量,从界面[注释:解算器]中隐藏特定相机模型的细节:源自相机中心的单位矢量和指向地标。“
在本文中,特征向量称为方位向量,3D世界点称为地标。正如他所写,特征向量(f1,f2,... fn)是指向从摄像机(C)的透视中心看到的3D世界点(P1,P2,...,Pn)方向的向量。它们也标准化为长度为1。
他进一步写道:“每个方位矢量只有两个自由度,即相机参考系内的方位角和仰角.3D轴承矢量 - 接近标准化图像坐标 - 计算机视觉中的标准选择。” / p>
Kneip的P3P算法假设已经校准过的摄像机(即内部参数已知的摄像机)。因此,您事先知道焦距(即摄像机视角中心与图像平面之间的距离),主要点的位置等。
在这些中你可以计算相机参考系({C})中的3D特征向量,由于这些限制,实际上只有2个自由度:
您可以选择拍摄的相机图像的不同描述:
两种描述都有两个自由度并包含相同数量的信息,但后者对于为P3P求解器提供通用接口特别有用,如第一次引用中所述。