Real-Time Direct Dense Matching on Fisheye Images
最近在做关于dense mapping的毕业设计,也看了不少相关论文,本文介绍下ETH的Real-Time Direct Dense Matching on Fisheye Images论文,论文虽然不是最新的,但是确是第一次将plane sweeping算法应用于fisheye上。
Motivation
作者首先介绍了一下目前的stereo matching的情况,大部分是在用rectification的方法,用这种方法有三个主要缺点,首先这种方法只能匹配两张图片,而且是要求具有相同配置的相机拍摄的图片,而plane sweeping算法可以同时匹配多张图片;其次,这种方法需要在matching之前进行rectification,因为这种方法是利用相机拍摄图片之间的极线几何关系来将把求深度的问题转化为求视差的问题,而由于相机拍出来的照片存在各种畸变,所以需要进行矫正,以保证两张照片在同一水平线上;最后,使用rectification的方法不能实现realtime,因为不能很好利用gpu。
用fisheye的原因是pinhole图片的coverage比较小。
具体实现
plane sweeping on fisheye
算法的输入为鱼眼图片和每张图片对应的相机参数,包括相机内参和相机的位姿。具体是plane sweeping算法可以参考之前的论文,这里有一个计算matching score的方法是ZNCC(zero mean normalized cross correlation)
具体的公式是这样的:
代价聚合
作者这里计算匹配代价聚合用了两种方法,一种是取所有匹配代价的平均值:
另外一种方法是计算最好的半序列的平均代价:
深度提取
提取深度之前先选取最佳的投影平面,最佳投影平面是选最小聚合代价的平面,最后深度提取公式如下:
结果评估
运行时间
从实验结果来看fisheye的运行时间比pinhole增加不到10%,但coverage却有很大提高。
Coverage
从上图中可以发现fisheye的coverage远远高于pinhole,定量分析见下表:
结论
总之,这篇论文很好地将Plane sweeping算法应用于fisheye上,提取的更加稠密的深度图,同时也实现了realtime,因为使用了GPU。