2014年12月15日星期一

毕业前文献阅读总汇,一季度

1. Fast Cost-Volume Filtering for Visual Correspondence and Beyond (Completed read on 16th Dec. 2014). 
    Asmaa Hosni和Michael Bleyer 2013年在TPAMI上发表的一篇Short paper,现在的引用已经有四十几次了。本文提出的Fast Cost-Volume Filtering方法是一种可以用于stereo、optical flow以及分割的一类通用方法,如果用于stereo,那么就成了一种local binocular stereo方法,具体做法就是首先构建匹配代价空间,也就是Disparity Space Image (DSI),然后对DSI中的每个视差层的每个像素进行加权滤波,最后在滤波后的DSI中采用Winner-Takes-All策略为每个像素选定最优视差值。
    Yoon and Kweon提出的Adaptive Support-Weight (ASW)方法说白了其实也就是这么一种在Cost-Volume进行滤波然后WTA选择视差的流程,只不过Yoon and Kweon没有从Cost-Volume Filtering的角度来阐述他们的方法,而是从support weight的角度来阐述的,且ASW用的是Bilateral filtering,这篇文章里采用的是guided filtering算法,即用参考图为guidance image来计算权值,说是可以用integral image方法来快速实现,从而使其运算量与窗口大小无关。
    本文的方法已经可以以很高的帧率来进行实时视差图估计了,精度也不错,值得深入学习,现在里面采用的guided filtering的原理还需要进一步学习一下,只知道它的加权方式和bilateral filtering的方式不太一样,bilateral里的权值跟像素间的距离以及色彩差有关,而这里的guided filtering就涉及到窗口的色彩均值以及协方差阵,接下来就看介绍guided filtering的原文献。

2. Automated Target-Free Network Orienation and Camera Calibration (Completed read on 21th Dec. 2014).
    这就是Christos和Clive今年六月份在意大利参加ISPRS会议的时候发表的文章,内容就是关于iWitness在不使用人工标志的情况下如何利用自然图像特征来进行自动化的相机网络定向。
    文章算法的流程分为5大步:
    一、先提取每幅图像上的特征点,并且通过FLANN (Fast library for approximate nearest neighbors)最近邻算法来获得图像对之间的初始的特征点匹配,FLANN算法是Muja和Lowe提出的,里面有针对vector-based features (SIFT, SURF)的最近邻匹配搜索算法,也有针对binary-valued features (BRIFF, ORB and FREAK)的最近邻匹配搜索算法;
    二、图像对之间特征点对应的refinement,这一步又分为4小步,首先就是要求一个特征点的最优匹配的匹配距离最多只有次优匹配的匹配距离的30%,否则这种点对应就被取消掉了;上一步之后,还是会存在一对多的匹配情况,因此第二步就是强行只保留那些一对一的点匹配,滤除掉任何一对多的点匹配;第三步是构建一个二维的统计直方图,一维是特征描述的半径,一维是特征描述的旋转,构建好直方图之后,滤除掉那些和大多数匹配特征描述不一致的点匹配;最后一步就是基于基础矩阵的RANSAC方法了,文章用的是Nister (2004)的5点算法,文章说这里的RANSAC可以应对最多50% outliers的情况,前面几步的filtering就是为了减少这里RANSAC时的outliers;
    三、识别添加更多的点匹配,上一步中的第一步过滤利用到了最优匹配和次优匹配的匹配距离,滤除了很多有可能正确的匹配,这里利用已经RANSAC估计得到的基础矩阵来检验这些匹配中哪些是可以恢复为正确的,这里同时检验最优匹配和次优匹配,只有当最优匹配和次优匹配中的其中之一满足对极几何时才会被恢复采纳,否则还是会被弃用,因为如果最优匹配和次优匹配都满足对极几何将无法得知哪个才是真正的匹配。这一步骤能够恢复很多点匹配;
    四、Epipolar Mismatch Filtering,这一步具体还是参见原文的描述,我没有看太明白,我的理解是多个匹配在两幅图像上的拓扑关系应该是可以用一个所谓的projective transformation描述的,从左图到右图用一个这样的转换关系描述一次,不满足该描述的点被标记了,然后从右图到左图再描述一次,要是已经被标记的点依然不满足该描述那么该匹配就被剔除掉了,目前的理解就是这样,详细的过程可以请教Christos;
    五、Network orientation,文章算法里的Relative orientation并不是仅仅选择在拥有最多点匹配的图像对之间去做,而是选择的在拥有最多multi-ray点匹配的图像对之间去做,这样将使得在需要进行前方交会之前有最多可能的图像通过后方交会的方式定向好。

3. Fully Automated Image Orientation in The Absence of Targets (Completed read on 23th Dec. 2014).
    这就是Christos和Clive 2012年墨尔本八月底ISPRS大会上投的稿,上一篇文献是对本文的一个补充和总结。因此方法论这一块应该是上一篇文章里描述的更为准确详细,这里就摘录一些本文的文字叙述吧,前言部分提到有其它文章已经阐述了基于自然图像特征的匹配精度能达到0.3个像素的样子,也有人尝试过在特征匹配的基础上进一步跟进一次最小二乘匹配,精度大概能提高到0.25个像素的样子,提升不明显,因此本文作出了图像特征匹配精度很难再进一步提升的论断。文章阐述了在对wide baseline图像进行匹配的时候,为了保证能有足够多的特征点参与匹配,在特征检测的过程中最好不要强加很强的响应阈值,或者说直接不加任何响应阈值,以获得足够多的特征点,否则在大基线的情况下因为基线或者会聚角一大特征点的相似性就下降了本来能配上的点就少,要是一开始检测到的能够来参与匹配的特征就少那更加影响匹配的成功率。
    这篇文章对上文中利用projective tranformation剔除匹配outliers进行了详细的描述,我的理解是该算法先对左图中提取出来的一系列图像特征点进行二维的迪罗尼三角网格化,然后利用得到的一个个三角形的三个点去和对应的右图上的匹配的三个点估计一个之间的仿射变换参数,并对各估计的仿射参数在参数空间内进行聚类,拥有较少元素的聚类被认为是一些孤立的参数集,它们联系的图像点的匹配就被当作outliers剔除掉,这是利用三角网格估计仿射变换参数的方式,文中还描述了利用四边形网格估计射影变换参数的方式,并通过实验说明射影变换的方式更优于仿射变换的方式,因为仿射变换仅仅适合于小图像区域的情形,不能描述大图像区域的情形,利用文中构建四边形网格的方式是在上述三角形网格的基础上拆掉相邻三角形的共有边来构建的四边形网格。

4. A Public System for Image Based 3D Model Generation (Completed read on 26th Dec. 2014).
    这篇文章是ARC3D http://www.arc3d.be/ 提供的两篇参考文献之一,作者为David Tingdahl和Luc Van Gool (SURF的作者之一),发表于2011年。
    在文章的previous work中提到ARC3D在2005年就已经上线运行,至今已经有9个年头了,堪称所有在线三维重建服务的鼻祖。同样的服务还有微软的PhotoSynth以及最近的3dTubeMe。
    ARC3D的重建流程为:
    一、首先对用户上传的图像内参数进行预标定,一般头像的EXIF数据中会包含有物理焦距信息,但是不一定包含像元尺寸信息,这时系统就在互联网上自动的搜索像机的像元尺寸参数,有了这两个信息之后就可以得到大致的等效焦距信息;
    二、在每一幅图像上提取SURF特征点,并且为每个图像对进行特征点匹配,对于两幅图像都预先有内参数初值的,采用5点算法RANSAC计算本质矩阵来匹配,否则就采用7点算法RANSAC计算基础矩阵。
    三、自标定,这是可选步骤,如果所有输入图像中少于两幅图像预先知道内参数,那么就采用Web-based 3D reconstruction service (ARC3D提供的另外一篇参考文献)一文中描述的自标定算法来标定内参数,但是这种方法在图像内参数不恒定,以及像机运动(turntable motion)和场景结构不够general (为平面)时会失效;
    四、稀疏重建,为了保证足够的基线,通过检查两幅图像之间的关系是否可以很好的用一个无穷单应(infinite homography)来描述来判断两幅图像是否有足够长的基线,如果可以就说明两图像的基线太短,这一方法在3D Reconstruction from Multiple Images: Part 1 - Principles一文中有详细描述,每个新加入的图像通过3个已有的重建点进行后方交会来确定外定向,并且跟进光束法平差优化,平差的参数有6个外定向参数、一个等效焦距值以及2个径向畸变系数;
    五、密集重建,稀疏重建结果被用来初始化密集重建,利用已得到的图像定向关系,将所有重叠的图像串成链条,然后进行极线矫正,并采用基于动态规划的dense stereo算法来估计视差图(Visual Modeling with a Hand-Held Camera)。Stereo pairs被串成链,并且每个像素的最优深度通过Kalman滤波跟踪出来。密集重建方法同时还提供质量图,每个像素估计的质量通过正确匹配上的图像个数来表征。
    文章中提出了一种view selection策略来从所有的深度图中只选择若干幅来进行后续的meshing,这样做的理由的是很多的图像之间有大量的重叠区域会导致meshing过程中大量不必要的计算量,再者就是低质量的深度图也参与meshing的话会导致meshing的质量下降。很显然这里的view selection和之前我了解的那个view selection指的不是一个意思,一般view selection是指的在密集重建时基于某种准则为参考图像选择若干合适的匹配图像。这里为meshing的view selection的准则是尽可能减少overlap的同时要尽可能多的cover整个重建场景,还有就是倾向于选择高质量的深度值参与meshing。文章里判断coverage时不是用的密集点,而是用的稀疏重建点去判断的。
    在真正做meshing之前,先对所有的深度图进行剔除outliers的操作,有3步骤,首先删除那些少于三幅图像观测到的深度图的像素,接着按深度聚类,只保留最大连通的深度区域,其它的像素全部删除,最后做一个腐蚀操作,剔除掉深度边界可能的噪声深度点。之后文章还有一步所谓的Depth map to 3D,将深度图反投影至空间中,并通过连接邻近点得到一个粗糙的mesh,剔除那些法向和光轴夹角太大的triangles,以及那些最短边比最长边短两倍以上的triangles。上两步之后,就是用的Poisson表面重建方法来做真正的meshing,格网之后,剔除那些拥有边长比所有网格边平均长度还长5倍的triangles。
    形成mesh之后,要为mesh应用纹理,也就是为mesh里的每个faces着色,我看他们的做法是为face在每个图像里做frustum culling(遮挡判断),看face在哪些图像里可见,然后选择可见图像中投影面积最大的那幅图像里的颜色信息来为该face着色。

5. Web-Based 3D Reconstruction Service (Completed read on 28th Dec. 2014).
    这篇文章就是ARC3D http://www.arc3d.be/ 提供的另一篇参考文献,作者为Maarten Vergauwen和Luc Van Gool,发表于2006年。
    文章里更为详细的描述了他们的系统里是如何为每幅图像计算密集深度图的,算法主要流程分为4大步骤:
    一、判断哪些图像对可以用来进行匹配,包括降采样以及Global Image Comparison两步,这个全局图像比较其实就是判断个两图间的相似性;
    二、先为上一步中得到的所有图像对进行特征匹配,然后选择若干组三视图组进行射影重建,并基于此进行像机自标定,得到图像的内参数;
    三、欧氏重建以及将深度图upscale至原分辨率;
    四、密集重建。
    文章的算法一开始就对所有的输入图像降采样至最大1000×1000的图像,然后后续操作在upscale之前全都是在这些小分辨率的图像上去做。
    这篇文章涉及的内容还比较多,详细的阐述这里就不复述了,还是参见原文,他里面的Global Image Comparison方法还有点意思,是将所有图像进一步降采样至最大只有100×100,然后直接通过平移窗口在两视图间去算NCC去判断的相似性的,有点意思。

6. Where is photogrammetry heading to? State of the art and trends (Completed read on 16th Feb. 2015).
        这是2015年最新出来的一篇综述性的文章,文章里就Image orientation, surface reconstruction and object restitution三个基本方面对Photogrammetry和Computer vision进行了对比。
        文章里出现了Automatic block orientation这个术语,block orientation具体指的什么意思我没有看太明白。文章里还较为详细的描述了在三视图参与匹配时如何剔除误匹配,其中提到了一种data snooping的local bundle solution方法,这个方法是我接下来要去学习的内容。
        之后文章中又出现一个Bundle block adjustment的术语,这个block在这里指的什么,这个光束法平差和我知道的光束法平差的差异在哪里我也不太清楚。文章提到CV领域在做光束法平差时往往采用LM算法,而摄影测量领域往往采用Gauss-Newton方法,另外CV领域做BA一般不用Ground control points,而摄影测量领域则有GCPs,文章说BA里不用GCPs的话会产生block deformations,且image orientation的好坏不能仅从重投影残差来看,还得使用check points,这些个情况也是我需要进一步了解的,我一直认为BA过程中不需要控制点,只需要固定某一个图像的坐标系即可,其它的全部可以自由平差。

7. Orientation and 3D Modelling from Markerless Terrestrial Images: Combining Accuracy with Automation (Completed read on 20th Feb. 2015).
        这篇文章以及接下来的两篇文章都是上一篇文献中介绍data snooping时列出来的参考文献。该文是Luigi Barazzetti于2010年在The Photogrammetric Record上发表的一篇期刊文章。
        文章提出的方法主要是针对利用calibrated cameras拍摄的图像来进行三维重建,并且提到在weak image network的时候最好避免self-calibration(自检校),可以想象在image network不好的时候进行自检校光束法平差出来的重建结果不可靠,因为自检校光束法平差时内外参耦合严重,外参数的一部分误差可能会融入到内参数误差里,即使最终残差会少不少。
        文章方法的第一步也是检测SIFT或者SURF特征点,然后通过描述子来进行特征匹配,第三步就是利用基于epipolar geometry的robust techniques来大量剔除匹配outliers,当图像内定向未知时该对极几何用基础矩阵F表示,内定向已知时则可以考虑用本质矩阵E表示,并通过Nister(2004)提出的5点算法来求解,文中介绍了3种robust techniques: RANSAC, LMedS (least median of squares) and MAPSAC (maximum a posterior sample consensus),并介绍了3种方法各自的优缺点,并指出MAPSAC的使用能带来significant solution improvement。
        接下来文中方法采用最小二乘匹配(LSM)来进一步提高各匹配同名像点的定位匹配精度,虽然文中没有明确说明,但是既然要使用LSM,那么肯定是以某一个图像里同名像点为中心抠出来了一块参考窗口,并在其它各匹配图像中去做LSM的。
        文中还引用了Clive 96年的一篇文章里的一个根据像点提取精度来推算重建空间点精度的经验公式,并以此出发提到图像特征被越多的图像观测到会带来越高的稀疏重建精度以及图像定向精度。因此在上述步骤之后,文中方法进一步在每一幅图像上提取FAST角点特征,因为FAST相对于SIFT和SURF有着更高的repeatability and better distribution in the images。提取的FAST特征点是通过基于collinearity geometry的multi-image constrained LSM来进行匹配的,这一步骤我没有太明白到底是怎么做的,文中指出points are projected onto the images,难道是先交会出来?但是交会的时候怎么识别误匹配呢?文中没有说对FAST特征点也去生成特征描述并进行特征描述匹配,我自己想了下一个可行做法就是每个图像里的每个FAST特征点都在其它图像中去做LSM,但这样做似乎又不是文中所说的multi-image constrained LSM,所以这一块具体是怎么做的我还没有理解太透彻。
        完成所有图像的定向之后就是进行文中所谓的surface measurements,也就是相当于密集表面重建吧,但是经过我的反复阅读,我认为文中方法并不是企图为每幅图像的每个像素都估计一个深度和法向,按我阅读后的理解,他应该是这么去做的,首先也是建立了金字塔,即为每幅图像生成了不同分辨率的金字塔图像,在每一层都进行了以下步骤:在图像上划分均匀的image grid,每个格子里都提取了 Lue interest points,每个interest points的初始深度和法向估计通过多个邻近的在之前网络定向环节得到的稀疏点来插值得到,然后以该interest point为中心,抠一块矩形区域来按当前法向沿深度方向上去移动,并与其它多个匹配图中重采样出来的窗口去计算NCC值,并取所有NCC值之和(SNCC)最大的深度为该interest point处当前最优的表面深度估计,这整个过程被称为 geometrically constrained cross-correlation (GC3),调整的应该只有深度,而没有法向,但不知道作者是怎么去调整深度的,是等间隔采样还是怎么着?也不清楚window warping是基于什么模型去做的,即一个窗口里对应的空间surface是通过几个什么参数来描述的,这些文中都没有说清楚。
        然后文中说利用MPGC LSM在原图分辨率上来进一步提高匹配精度,这里用的MPGC LSM是Gruen原始的方法,不知道该原始MPGC里面调整的参数有哪些,我觉得至少应该有沿点心射线上的深度值,然后作为一种表面估计方法,它里面是如何描述和调整表面法向的我还不太清楚,但我看到有一句话就是while the affine parameters converge during the iterations,难道参考窗口和每个匹配窗口之间的形变还是通过仿射模型来描述的?那每个不同匹配窗口岂不是都拥有自己不同的仿射参数?那优化的参数可就多了去了,anyway,我还是阅读完Gruen的原文后才能有发言权。
        看完该文的密集表面重建方法,我感觉跟我自己的方法有相似的地方,但也还是有很多不同的地方。

8. Experiences and Achievements in Automated Image Sequence Orientation for Close-Range Photogrammetric Projects (Completed read on 22th Feb. 2015).
        该文是Luigi Barazzetti于2011年发表的一篇SPIE的会议文章。相比上一篇期刊文章,这篇文章内容要精简很多,但也有些值得学习的点。
        例如在提取图像特征(SIFT或者SURF)并完成匹配后,肯定会出现图像某些纹理丰富的区域提取出非常密的特征点,有些纹理弱一点的区域就只有非常稀疏的特征点,也就是说图像特征分布不是很均匀,那么文中方法就这么处理:先在图像划分均匀网格,每个网格里只保留multiplicity最高的特征点,也就是在最多图像上成功匹配的特征点,这样做的话就不会出现物方某一小块区域重建出大量的密集点,而有些区域只重建出少量点,就相当于光束法平差的时候某一块区域的物点的权重较大,而另一些区域的权重较小了,这也算是一种weak geometry吧。
        文中还指出虽然在匹配环节通过基于对极几何的robust techniques能剔除掉大量的匹配outliers,但也没法完全确保光束法平差的时候百分之百的没有outliers,因此在多图光束法平差的时候还是有必要利用data snooping来在平差迭代过程中进一步剔除outliers。文中在实验结果中还列了一个重建结果,利用本文的方法由于在bundle迭代过程中剔除了几个wrong data使得最终成功的完成了所有图像的定向和稀疏重建。但是利用Autodesk Photofly以及Microsoft Photosynth处理同一组图像则都失败了,文中总结其原因就是most probably due to the repeated patterns in the scene and the employed bundle adjustment.
        在讨论部分文章指出stability of the solution依赖于两类点:
        1. tie points (TPs), which guarantee the precision of the orientation solution; they should be numerous, well distributed on the object and in the image space and they should feature a high multiplicity;
        2. ground control points (GCPs), which have the role to fix the datum and to control the block deformation.
        最后还指出SfM的精度依赖于tie points的measurement precision, multiplicity and spatial distribution.

9. Comparison of Two Structure and Motion Strategies (Completed read on 23th Feb. 2015).
        该文是R. Roncella于2011年在International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences上发表的一篇文章。
        题目中的两种SaM策略其实就是作者自己的一个软件中先后采用的两种策略,最新的策略和老策略的区别就在于新策略采用了SIFT和SURF这种图像特征以及匹配方式;第二个区别就在于利用基于epipolar/trifocal几何约束的robust techniques剔除outliers时,新策略充分利用了已知内定向的约束,比方说就是把之前鲁棒估计F换成了鲁棒估计E来剔除outliers,就这么简单,详细的过程可以参考原文,这里不再赘述了。