视频拼接技术调研介绍

最近开始了解一些视频拼接技术方法,这里先简单汇总了一些方法链接,之后有时间再补上一些论文动态发展情况。

1. 商业化视频拼接技术

1. 北京智汇云舟科技有限公司
1、全景视频拼接的关键技术与发展优势、作用、应用
2. 上海元镜像信息科技(延时600ms左右,具体跟服务器、带宽等配置有关)
1、视频拼接融合产品的产品介绍与架构设计:涉及到的算法比较多、畸变矫正、恢复、裁切、透视变换、仿射变换、旋转等。
2、《多路监控视频实时拼接》原理及案例分享
透视变换是一个最最核心的功能,代替那些ORB,SIFT 特征变换。
特征抓取就是使用ORB 特征,和 SIFT 等特征抓取匹配,然后再拼接,生成单应矩阵,这种方案不可取,是最差的方案,因为在实际的项目中,你连特征都抓不到,根本自动化不了,所以尽早放弃这种想法,除了一种情况例外,硬件是自己做的,自己知道自己的单应矩阵。

2. python + opencv

1. SIFT + 图片融合
1、OpenCV-Python 实现两张图片自动拼接成全景图
(1)利用SIFT算法找两张图片中相似的点,计算变换矩阵
(2)变换一张图片放到另一张图片合适的位置,并计算重叠区域新的像素值 (这里就是图片融合所需要采取的策略)。对于计算重叠区域的像素值,其实可以有多种方法去实现一个好的融合效果,这里就用最简单粗暴的但效果也不错的方式。如果想实现更复杂或更好的效果,可以去搜索和尝试一下 multi-band 融合,这里就不过多赘述了。
2、python opencv图片拼接融合
这篇博客也是参考上一个链接里的方法,不过在图片融合阶段做了些许调整(但是博主提供的融合后的图片还存在虚影,效果不是很好):
(1)读取两张图片,做边界填充,这个根据自己图片的融合范围自己调整(要求两个图片大小一致)
(2)通过sift特征点检测,然后进行特征点的匹配筛选
(3)通过匹配的像素点计算单应性矩阵
(4)对读取的后一张图片用单应性矩阵进行仿射变换
(5)通过双线性插值融合图片重叠部分
在第(5)部分,原方法是通过逐像素点融合图片,速度很慢,在这里我把它改成了用numpy库来处理融合过程,在我的电脑上从之前的融合需要15.6s到使用numpy的4.8s, 可见numpy对矩阵的处理速度还是比较快的。

2. opencv图像拼接对象stitcher自动全景拼接 + 后处理
1、Python-基于OpenCV多画面全景拼接,拼接后对图像进行拉伸处理
2、【视频处理】视频拼接&视频缝合,对stitcher类进行自定义配置
3、CV——基于Stitcher类实现图片拼接,对拼接后图像进行黑边处理
详细介绍了基于Stitcher类的方法,最后根据结果对项目组内方法进行了对比:基于Stitcher类、SIFT算法、ORB算法。
通过上述测试数据可以看出,得到图片的效果:Stitcher>ORB>SIFT。ORB算法和SIFT算法只是不同的特征提取方法,ORB算法在FAST算法的基础上,提取了特征点的方向。同时根据特征点的方向,采用改进BRIEF算法的 Rotated BRIEF算法对特征进行描述,从而取长补短,即高效的完成了特征提取和特征描述,又使得特征描述向量具有旋转不变性,在噪声情况下更有效,但是会受到光线变化的影响。使用OpenCV自带的Stitcher类,虽然拼接效果最好,使用简单,并且可以一次拼接多张图片,但是需要足够的相同特征区域进行匹配,并且图片太大的话,速度较慢甚至报错。
4、【Computer Vision实战】一、使用OpenCV进行图像全景拼接(基于Python3)
5、OpenCV(实战)全景拼接:使用Stitcher默认拼接流程
6、OpenCV多摄像头融合目标检测系统(部署教程&源码)
使用ORB算法检测并计算图像的特征点和特征描述符,通过使用SIFT算法来检测关键点和提取局部不变特征,并使用RANSAC算法进行特征匹配。程序中还包含了一个Stitcher类,该类包含了拼接图像的方法。

3. 透视变换 + 图像后处理
1、从开源项目聊鱼眼相机的“360全景拼接”:畸变矫正后,处理透视变换,再拼接, 最后阶段的鸟瞰图的拼接与平滑。
本文涉及到开源项目https://github.com/neozhaoliang/surround-view-system-introduction

4. ORB(Oriented FAST and Rotated BRIEF)
1、基于OpenCV&ORB和特征匹配的双视频图像拼接(源码&部署教程)

3. python + PCV(Python Computer Vision)

1. SIFT + 图像后处理
1、【计算机视觉学习03】全景图像拼接,对拼接后图像进行扭曲处理
介绍了图像拼接的基本原理,很详细;还介绍了RANSAC算法、PAP算法和最佳拼接缝(Seam Finding)。
2、计算机视觉学习4_python_RANSAC_全景拼接
介绍了原理,很详细:SIFT匹配、RANSAC、图像配准(Apap)、图像分割(最大流、最小割)、变换后的融合/合成(multi-band blending与alpha blending)、stitch优化等。
开源项目参考https://github.com/kushalvyas/Python-Multiple-Image-Stitching

4. C++ + opencv

1. 普通拼接,不是全景拼接
1、利用OpenCV将多个视频拼接在一起同时显示,垂直拼接/水平拼接等普通拼接。注意:所拼接的视频需要注意长、宽统一,当多个视频的时长不一致时,以时间最短的为准。

2. 全景拼接:SIFT + 图片融合
1、首先用python+opencv的方法采用SIFT算法得到单应矩阵,再使用C++利用cuda加速图片融合
融合的原理是一样的,这部分代码我只进行了cuda加速,上次使用numpy矩阵融合4.8s,这次使用cuda融合只需要1s。
2、利用Opencv完成图像拼接
代码不长,可以实现两张图片的全景拼接。

3. opencv的Stitcher类实现拼接 + 图像后处理
1、使用opencv提供的全景图像拼接类Stitcher将图像拼接,将拼接后图像进行图像修复处理
opencv提供多种主流的特征描述子算法实现,开发者可自行选择。
拼接后的全景图像可能存在内容缺失,表现为黑色区域,为输出正常图像,可对黑色部分进行裁剪或补齐。相对而言,补齐后的图像在查看全景视图时效果更好,opencv可使用inpaint方法对缺失图像进行修复。
2、c++opencv图像拼接(stitcher)代码详解
详细介绍了opencv图像拼接的步骤。

5. 其他方法

1. matlab实现图像全景拼接
1、【图像拼接】基于matlab GUI块匹配全景图像拼接(带面板)【含Matlab源码 742期】

2. Surround360开源项目https://github.com/facebookarchive/Surround360
1、Facebook Surround360 学习笔记–(2)算法原理
Surround360开源项目包含了从相机阵列的硬件设计到图像拼接的软件算法,它在一个系统里实现了端到端的3D360°从视频拍摄到视频处理的过程。

3. [开源项目]基于FPGA的视频图像拼接融合
1、[开源项目]基于FPGA的视频图像拼接融合介绍
项目流程:图像预处理——>基于 SIFT 的特征提取——>框架拼接融合
开源项目参考https://github.com/AugustinJose1221/FPGA-Build
https://github.com/AugustinJose1221/Video-Stitching

4. 无监督深度学习图像拼接框架
1、TIP2021—重访CV经典: 首个无监督深度学习图像拼接框架介绍(已开源)
代码官方TensorFlow版开源项目:https://github.com/nie-lang/UnsupervisedDeepImageStitching
代码非官方PyTorch版开源项目:https://github.com/liudakai2/UnsupDIS-pytorch

6. 一些总结

1. 视频/图像拼接方法论文总结
1、关于图像和视频拼接的综述
2、视频拼接技术的发展(总结得不多也不全)
3、AutoStitch拓展1——视频拼接问题(opencv视频拼接耗时长,完整过程约需14s)
4、几篇论文简单介绍
5、几篇论文介绍

2. 一些博文链接的总结
1、【图像拼接】全景图的拼接 - 初步调研

3. 图像/视频拼接总体流程方法介绍
1、图像处理之图像拼接—全景视频拼接
2、计算机视觉方向简介 | 图像拼接
3、图像拼接——视频拼接——水下视频拼接
4、基于尺度不变特征变换的多路监控视频拼接
5、ADAS摄像头图像环视拼接算法

4. 单篇论文
1、GPU based parallel optimization for real time panoramic video stitching(基于GPU并行优化的实时全景视频拼接)
原文地址https://www.sciencedirect.com/science/article/abs/pii/S0167865518307281

自动计算拼接参数,动态色差校正,曝光补偿;六层金字塔的多波段融合;多线程+多CUDA,Stream解决GPU传输瓶颈。

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值