学习近况

    最近科研进展缓慢,在<<MVGCV>>一书的Part 4 N-View Geometry上已经纠缠二周了~
    主要的时间花费在了反复考究细节上,而不是理解大体思路。很多细节性的东西,书上说的比较简略,需要下载相关引用文献才能理解的比较明白。
    很久没写专业相关的文章了,就随便扯两句最近看的内容。

    对于射影重建而言,基于tensor的方法,推广到4焦张量就是极限了,如果是N View,就直接用bundle adjustment了,不过此法需要一个较好的初始估计作为迭代初值,可用的方法就有基于factorization的,基于已知空间平面信息的等等~
    所谓摄影机自标定,就是在不使用场景信息,仅仅根据图像匹配点对来确定摄像机内参数的过程。一旦内参确定,则可由射影重建恢复到度量重建(即只和真实场景相差一个相似变换)。
    为什么确定了内参数,就可以达到度量重建呢?
    首先,这是因为绝对二次曲线在相似变换下具有不变性,换句话说,它是相似变换下的固定曲线,其代数形式在相似变换下是固定的。由此,一旦确定了射影空间中的绝对二次曲线,那么通过一个射影变换,将其变换到其在相似空间中的固有位置,那么此时得到的重建必然是度量重建。其次,绝对二次曲线的像曲线仅与内参数有关,确定了内参数就等于确定了绝对二次曲线的像曲线,将像曲线反投影到射影空间中的无穷远平面,则可以得到当前射影空间中的绝对二次曲线。
    由以上2点可见,一旦确定了内参数,度量重建即可完成。所以估计内参数具有重要的意义。
    那么如何估计内参数呢?也就是说如何自标定呢?
    一般而言,有基于对偶绝对二次曲面的方法,基于Kruppa方程的方法,分步法(首先确定欧氏空间中无穷远平面在射影空间中的代数形式,以此得到仿射重建;然后再确定绝对二次曲线,以此得到度量重建和内参数)。这三种方法都必须利用内参数已知的一些固有约束,例如skew为0,已知主点,或者内参数在N view中保持不变等等。

    其实,上面的很多内容,在当初做毕业设计的时候也有所涉及,只不过当初只是抓了其中一条脉络,做了一种方法的实现,而没有从整体上把握最本质的原理,并对比各种方案的优劣,因此理解的也自然比较浅薄。
    还有大约2个月放假,目前计划12月中旬结束<<MVGCV>>的第一遍阅读,然后剩余时间重新读一遍本书。
    第一遍时,为了把握主干,不拘泥于旁支细节,所以遗留了一些小问题有待解决,课后思考题也都没有深究,第二遍则要注重理解每一个细节,并且要前后瞻顾,把相关的内容对比参考,达到融汇贯通的效果。
    研二的上学期,大致学习计划就这样了。可以说,这半年就只干了一件事,就是读<<MVGCV>>。不过如果能读透彻,那么Geometry方面的基础应该说是打结实了,以后开展后续研究就容易一些了。
    李开复曾经很多次在大会上告诉员工:“我们看到今天中国有很多成功的商业公司,我觉得可以用一个字来描述它们的成功,那就是快。但另外一方面呢,我希望大家也要看到那些真正基业长青的公司,其成功秘诀则在于它恪守价值观。一个企业绝不能因为过于强调快速发展而丧失使自身基业常青的理念。”
    或许这段话略作修改,应用到科研上,也同样适用。古人云:“欲速则不达,欲小利则大事不成! ”也是同一个道理。
    最近看书看的有点浮躁,思维有点飘…一定要静心~~~~
    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.
标签:, , , ,
此条目发表在 学无止境 分类目录,贴了 , , , , 标签。将固定链接加入收藏夹。

学习近况》有 175 条评论

  1. hrr 说:

    你好~~我现在在做双目立体视觉的摄像机自标定,我已经求出了基本矩阵。。想知道你是怎么求出摄像机的内参数的。(我假设u0,v0是摄像机的中心,而且摄像平面与光轴垂直,只需要求出fu,fv),我是用kruppa求的,但是求不出来~~好烦恼~~想问问你

    回复

    foelin reply on 十二月 9th, 2009:

    你是假设摄像机内参变化还是不变化?
    如果是不变化的,那么现在内参只有2个未知变量fu,fv,Kruppa方程刚好能提供2个约束方程,能求解。
    如果是变化的,那么现在内参有4个未知变量fu,fv,fu’,fv’,就不能通过Kruppa方程求解了。

    回复

    hrr reply on 十二月 10th, 2009:

    我假设内参数是不变化的,所以用Kruppa方程刚好可以解出2个未知变量fu,fv.但是在求解Kruppa方程时,是解二元二次方程组,我所得出的解全部是虚数解。。
    是不是求基本矩阵的时候,误差大了呢?
    我本来是想把内,外参数都求出来之后再一起做优化,是不是应该先优化所求的基本矩阵,然后在求解内外参数呢?

    回复

    foelin reply on 十二月 10th, 2009:

    每一步都应该优化~
    求F的时候即使不用LM算法迭代最小化几何误差,也得用normalized 8点算法。
    Kruppa方程对噪声很敏感

    回复

    hrr reply on 十二月 17th, 2009:

    我已经把基本矩阵优化了,但是还是再解kruppa方程式时,得不到实数解,全是虚数解。。我用的是8点算法,担不是normalized 8点算法。。

    回复

    foelin reply on 十二月 17th, 2009:

    你用的什么方法优化?
    最小化代数误差?几何误差?sampson 误差??
    不会是只选了8个点吧….. :shock:
    normalize image coordinate可以说是计算F的标准步骤了,干嘛不用~~~
    必然是计算误差太大的原因..

    回复

    hrr reply on 十二月 18th, 2009:

    我用的是对距离的平方和,最小化来优化的F.
    LM算法进行的优化,normalize 8点算法的具体方法不是很明白。。

    回复

    foelin reply on 十二月 18th, 2009:

    可以参考Hartley的多视几何学~
    btw:你用的几个点来算?为了避免匹配点的错误,应该先RANSAC采样,剔除outlier….

    回复

    hrr reply on 十二月 22nd, 2009:

    我是先找的匹配点,再用RANSAC法,去除了错误匹配点,然后用的8点法计算基本矩阵。。
    这次用的是normalize 8点法算的基本矩阵,然后用kruppa方程求解内参数,还是只得到虚数解。。?
    normalize8点法,是对匹配点坐标进行转移和缩放,那么在求出基本矩阵后,求内参数时,是用原来的匹配点坐标呢,还是转移和缩放后的匹配点坐标呢?

    回复

    foelin reply on 十二月 22nd, 2009:

    应该用原来的匹配点坐标算内参。
    不过要注意,计算出normalize坐标的F后,要denormalize,得到orignal坐标对应的F。然后再用这个F和orignal坐标代入算Kruppa。
    除此之外,虚数解的造成还可能有很多原因,例如:
    1.你的匹配点计算的不正确,
    2.RANSAC后用于计算F的点不够多,在线性求解的方法下F的精度得不到保障。
    3.摄像机模型过于简单。如果你用的是真实图像,那么假设主点偏移为0,skew为0可能不成立。当然,如果你用的人工构造的图像,就另当别论。

    所以,我建议你先在做一下模拟实验,在无噪声情况下验证你的程序,成功后再用real image~
    ;-)

    回复

    hrr reply on 十二月 22nd, 2009:

    恩~~我觉得有可能是摄像机模型过于简单。。
    我用的是D90相机。。照的是真实的图像~~平面图。。
    应该怎样做模拟实验呢?怎么在无噪声情况下验证我的程序呢?

    回复

    foelin reply on 十二月 23rd, 2009:

    “平面图”是什么意思?
    你的意思是照的是空间中的一个平面?也就是说匹配点对都是在同一个空间平面上的?
    如果这样的话是不行的,连F都算不出来,是退化情况。
    应该照一个有深度变化的物体,让匹配点对不在同一个空间平面上。

    回复

    hrr reply on 十二月 23rd, 2009:

    为什么一定要有深度变化的物体呢?如果是平面图为什么不可以用normalize 8点法计算基本矩阵,从而求解摄像机的内外参数呢?我只是想标定摄像机的参数。。并不需要3D重建啊。。

    回复

    foelin reply on 十二月 23rd, 2009:

    因为这是2视的退化配置(degenerate configuration)的一种,无法由匹配点对唯一的确定F。
    简单的证明下:
    由于平面上的匹配点之前满足平面单应关系,即x’=Hx。此时代入外极几何约束方程x’T *F* x=0,得到x’T*(F*H-1)x’=0。显然F*H-1为斜对称矩阵,设为S,则有F=SH。所以,当你根据平面匹配点对计算出平面单应H后,用任意的斜对称矩阵S乘以H得到的F,都是满足外极几何约束的F,所以F不能由匹配点对唯一确定。
    不知道我说清楚没有~ :smile:

    回复

    hrr reply on 十二月 23rd, 2009:

    那是不是做摄像机自标定时,必须要取3维图像的照片呢?可是做摄像机标定时,用模板标定摄像机时,不是平面模版吗?
    自标定时必须用3维图像的图片吗?所有的匹配点对都不可以在一个平面上吗?对三维图像提取匹配点时,不如2维图像方便。。而且容易产生outlier。。

    回复

    foelin reply on 十二月 23rd, 2009:

    应该这样说,如果你要计算F,那么所用匹配点对应的空间点在空间中不能共面,更准确的说,2个摄像机光心和所有的匹配点不能在同一个直纹二次曲面(ruled quadric surface)上…
    并且,做摄像机标定不一定要算F,所以就不一定有这个要求。例如平面模板标定时先计算平面单应,再计算内参数,不涉及F的求解。但是,Kruppa方程需要先求解F。。。
    上次说过,outlier用RANSAC来剔除。并且图像都是2维的,3维的就不叫图像了…..

  2. 开心凡人 说:

    逛呀逛,拜访到这啦呵呵

    回复

  3. hrr 说:

    我把我的图片(匹配点已经找到的)发给你。。你帮我看看是不是这样的匹配点不可以。。
    你可以告诉我你的QQ或者MSN吗?
    我不知道在这里怎么上传图片。。

    回复

  4. hrr 说:

    V2′*C*V2/r^2*U1′*C*U1=-V2′*C*V1/r*s*U1′*C*U2=V1′*C*V1/s^2*U2′*C*U2这个kruppa方程来求解的内参数fu,fv..U,V是对F(基本矩阵)进行svd分解,得来的。。这样算,对吗?

    回复

    foelin reply on 十二月 25th, 2009:

    Kruppa方程的式子就是参考文献上那样的,我也看不清楚你写的。
    但是首先你的F就算错了。我已经告诉过你了,匹配点对应的空间点不能共面。

    回复

    hrr reply on 十二月 25th, 2009:

    我已经用立体图再次计算F了。。可是在用kruppa方程求解内参数时,还是出现了虚数解。。

    回复

    foelin reply on 十二月 26th, 2009:

    你可以先做一下模拟实验,成功了后,再用真实图像来做。如果模拟实验ok了,说明是数据噪声问题,如果模拟实验都失败了,那就是你算法、程序的问题了。

    回复

  5. LD 说:

    哥哥最近胃口不好吗,怎么会飘呢?难道又变轻啦!哈哈~~~ 只要心中有理想、有目标,短暂的飘只是小插曲,相信你很快就会回到正轨上来的,加油哦!

    回复

    foelin reply on 五月 25th, 2010:

    恩,+U+U~~

    回复

发表评论

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

*

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