<MVGCV> chapter 21.9 小结

    看<<MVGCV>> 一书时,觉得21.9 Which points are in front of which阐述的不是很明晰,并且最后没有给出一个完整的算法。反复看了2、3遍,和SKF讨论良久,才总结出了作者提出的方法应该如何使用,现总结如下:
    此节大意是假设由若干幅图像得到了一个射影重建{Pi, Xj},问假如现在人工的新增一个摄像机P’,此时空间中某些点在P’中对应同一个图像点(即这些点相互遮挡),问如何判定哪个点更接近P’?
    现在考虑2个点的情况,即假设现在空间点X1,X2在P’中的像同为x,判定X1和X2哪个更接近P’。
    情况1:若当前射影重建下存在一个平面A,能把所有的摄像机Pi、P’与空间点X1、X2分隔在A两边时,此时存在2种方向(orientation)相反的strong realization,故这种情况下,若没有先验知识时,则不能确定X1、X2谁在谁之前;
    情况2:若当前射影重建下不存在一个平面A,能把所有的摄像机Pi、P’与空间点X1、X2分隔A两边时,此时只存在一种strong realization,故这种情况下,不需要先验知识,即可确定X1、X2谁在谁之前。
    基于上述结论,作者提出了一种在情况2时,在射影重建下判定在欧式重建下X1、X2谁更接近P’的方法。
    首先是证明了引入了一个函数Y=1/(depth),即深度的倒数。并且证明了射影变换是Y的单调函数,即当H的行列式detH>0时,H是Y的单增函数;当detH<0时,H是Y的单减函数。现假设当前射影重建到欧式重建的射影变换为H,根据在当前射影重建下判定的Y的大小,以及单调性,可以得到Y在欧式重建下的大小。由于Y是深度的倒数,故可以得到X1和X2在欧式重建下深度的大小关系。
    再结合前面的知识,可以得到一般情况下,在射影重建下判定在欧式重建下X1、X2谁更接近P’的方法:
    1.首先根据P527页的Algorithm21.1计算v有几个解,即有几个strong realization。
    2.若v只有1个解,说明为情况2。由于只有1个解,故此时strong realization和欧式重建必然是同向的。因此假设从射影重建到strong realization时的射影变换为H’,则此H’确定了射影重建到欧式重建的射影变换H的行列式的正负性。
当detH’=1时,有解,则H’是Y的单增函数;当detH’=-1时有解,则H’为Y的单减函数。然后根据Y的大小关系,确定depth的大小关系,即确定在P’中具有相同图像点的空间点X1、X2谁更接近P’。
    3.若v有2个解,说明为情况1,则此时需要已知一对点X0、X0′谁更接近P’,然后根据此先验知识,确定2个解中哪一个是和欧式重建方向相同的解。此时,再用情况2的方法来判定其余的在P’中具有相同图像点的空间点X1、X2谁更接近P’。

    OK,大致如此。欢迎看过此节的同学讨论。

Creative Commons License
This work, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-No Derivative Works 2.5 China Mainland License.
标签:, , ,
此条目发表在 学无止境 分类目录,贴了 , , , 标签。将固定链接加入收藏夹。

<MVGCV> chapter 21.9 小结》有 10 条评论

  1. Juicy Couture 说:

    感觉楼主很用心,会常来看你的文章和博客的。

    回复

发表评论

电子邮件地址不会被公开。 必填项已被标记为 *

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>