自己也是不久前因为项目需要刚接触图像拼接及视频拼接,因为自己的导师不是做这个方向的,所以只能一个人探索,特别感谢在查阅相关资料时遇到愿意分享的一些大神(下面将附上他们的链接),也正是因为他们的无私分享,让我决定写下自己做视频拼接的学习历程及一些小成果,希望能与大家交流讨论,互帮互助。
首先,附上大神的链接
这个博客是针对双摄像头实时拼接的,程序可以直接用,效果还行,就是实时的效果有那么点差,毕竟这还跟硬件也有很大的关系
大神有个关于拼接的专题博客,写的也是很好,大家可以去博主的博客上去看。
YaqiLYU大神在知乎上的精彩回答无疑是对我们这种小白在寻找图像拼接论文的最有力的帮助,分析透彻,而且都是最前沿的成果,真的很佩服,膜拜膜拜。
下面,附下自己在学习中的总结,如有理解不对,还请大家指教
1. 图像拼接传统做法:
特征点提取:sift、surf、orb等特征点提取;
基于特征点的配准:RANSAC方法剔除匹配点并拟合图像变换矩阵(全局单应性矩阵);
图像融合:先确定缝合线,再利用加权融合、多频带融合的方法融合;
方法:除了按照上文提到的顺序利用opencv进行拼接,还可以用opencv自带的stitch类,拼接很方便,效果也很好。
2.图像拼接出现的问题:
对于大视差的物体(可以理解为离摄像头比较近的物体,或者待拼接的图片上有远景有近景)
可采用的方法,分为两种,一种是基于缝合线的方法,可以参看确定Seam- Driven 、Content preserving warp 、Parallax-toleranting stitching 这三种方法,很经典的。 二是采用基于网格优化及网格约束的方法,代表有DHW、SVAS,APAP,SPHP、AANAP等方法,可以下载他们的相关论文看。
视频拼接除了图像拼接的大视差问题,还有移动的物体经过重合区域会出现重影的问题,现在解决的办法比较推荐的有 Video Stitching with Spatial-Temporal Content-Preserving Warping 这篇论文,提出加时空域约束项,时空域3D缝合线的方法,效果很好。
自己还在学习中,未完待续(欢迎各位大神来补充纠正。。。) serving Warping