CN111105350A - 大视差场景下基于自身单应性变换的实时视频拼接方法 - Google Patents
大视差场景下基于自身单应性变换的实时视频拼接方法 Download PDFInfo
- Publication number
- CN111105350A CN111105350A CN201911165281.5A CN201911165281A CN111105350A CN 111105350 A CN111105350 A CN 111105350A CN 201911165281 A CN201911165281 A CN 201911165281A CN 111105350 A CN111105350 A CN 111105350A
- Authority
- CN
- China
- Prior art keywords
- foreground
- overlap
- image
- background
- rect
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000009466 transformation Effects 0.000 title claims abstract description 16
- 238000004364 calculation method Methods 0.000 claims abstract description 4
- 230000004927 fusion Effects 0.000 claims description 77
- 239000011159 matrix material Substances 0.000 claims description 34
- 238000005070 sampling Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 7
- 241000282320 Panthera leo Species 0.000 claims description 5
- 238000007499 fusion processing Methods 0.000 claims description 5
- 230000005484 gravity Effects 0.000 claims description 5
- 238000011049 filling Methods 0.000 claims description 3
- 238000001914 filtration Methods 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 3
- 230000001131 transforming effect Effects 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 2
- 230000000717 retained effect Effects 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract description 10
- 238000006073 displacement reaction Methods 0.000 abstract description 5
- 230000003068 static effect Effects 0.000 abstract description 5
- RZVAJINKPMORJF-UHFFFAOYSA-N Acetaminophen Chemical compound CC(=O)NC1=CC=C(O)C=C1 RZVAJINKPMORJF-UHFFFAOYSA-N 0.000 description 6
- 208000029618 autoimmune pulmonary alveolar proteinosis Diseases 0.000 description 6
- 230000011218 segmentation Effects 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 4
- 241000282414 Homo sapiens Species 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 238000002645 vision therapy Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4038—Image mosaicing, e.g. composing plane images from plane sub-images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/194—Segmentation; Edge detection involving foreground-background segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
Abstract
本发明提供了大视差场景下基于自身单应性变换的实时视频拼接方法,本发明非常适用于大视差场景下的视频拼接,因为视差会造成两路视频中前景和背景位移明显,该方法将前景和背景先分别拼接好,再前景和背景拼接结果融合,可以有效避免重影和错位,提升视频拼接效果;且如果待拼接视频当前帧只含背景时,背景通常是静止不动的,则可以提取出一个拼接模板。对于后续只含背景的帧,直接采用该模板拼接,压缩计算量加快拼接速度。
Description
技术领域
本发明属于计算机视觉、图像处理、多媒体信息技术等领域,尤其涉及大视差场景下基于自身单应性变换的实时视频拼接方法。
背景技术
视频拼接指将多路具有重叠区域的小视野视频拼接成一路完整大视野视频,有效解决了单个摄像头视野的局限,在虚拟现实、智能监控等领域有着广泛的应用。在城市中,大量的摄像头被安装用于消除隐患,保卫人民群众生命财产安全;同样,在当前热点的智慧城市建设中,摄像头是发挥着首要作用的“眼睛”。但诸如道路、行政大厅、商场等场合需要同时安装多个摄像头进行监控,导致相关人员需要同时关注多路监控视频,而且多路监控视频不利于视频后续的处理和分析。在这样的背景下,需要将多路视频拼接成一路完整视频。
在视频拼接的现实使用场景中,可能存在大视差的情况。即同一目标在两个摄像机内所处的位置不一样,且位移较明显,通常这个目标是距离摄像机很近的前景目标。现实生活中也有常识,物体离观察者越近,两只眼睛看到的物体位置差异越大,这种情况在两个摄像头中同样存在。如果采用主流的视频拼接方法对这类大视差场景做视频拼接,要么只能对齐前景或后景中的一个平面而忽略其他平面,造成重影错位等现象;要么从全局角度把很多相差很大的平面依然对齐结合,造成视觉上不自然。
因此,针对大视差场景下采用特定的实时拼接方法是非常有必要的。
发明内容
发明目的:解决在大视差场景下进行视频拼接的问题,提供一种基于自身单应性变换的实时视频拼接方法,能有效消除大视差场景下因为两路待拼接视频中前背景位移明显而造成视频拼接中的重影错位现象。
技术方案:本发明公开了一种大视差场景下基于自身单应性变换的实时视频拼接方法,其核心在于:判断若待拼接两路视频当前帧存在前景,则将两路视频当前帧的前景和背景分割;对两个前景区域和背景区域都采用图像对齐、提取重叠区域、多频带融合重叠区域的步骤融合好;再将融合好的前景图像填补到背景图像的空洞上;判断若两路视频当前帧不存在前景,则只需要融合背景,背景融合都可采用一个相同的模板,加快拼接速度。具体包括以下步骤:
步骤1,读取两路待拼接视频,判断它们当前帧中是否存在前景:从两路待拼接视频中分别读取当前帧M1和M2,通过差分背景法分别判断M1和M2中每个像素点属于前景还是背景,进而判断出当前帧中是否存在前景;
步骤2,若判断出两路当前帧M1和M2都存在前景,融合帧中的前景区域fore(M1)和fore(M2):采用APAP逼近投影算法,对两个前景区域对齐;对齐后提取出fore(M1)和fore(M2)的重叠区域;对重叠区域做多频带融合,并得到帧中前景区域fore(M1)和fore(M2)的融合结果;
步骤3,若判断出两路当前帧M1和M2都存在前景,融合帧中的背景区域back(M1)和back(M2):采用APAP逼近投影算法,对两个背景区域对齐;对对齐后对因前背景分割在背景区域中造成的空洞进行修补;提取出back(M1)和back(M2)的重叠区域;对重叠区域做多频带融合,并得到帧中背景区域back(M1)和back(M2)的融合结果;
步骤4,完整的前景区域和背景区域融合:在前景目标上选取一个基准点base,在背景空洞上选取另一个基准点base';基于这两个基准点将完整的前景区域和背景区域融合,让前景覆盖背景中因分割前背景造成的空洞;
步骤5,若判断出两路当前帧M1和M2不存在前景,初始化拼接模板:M1和M2中只存在背景时,因为视频中背景几乎是静止不动的,则图像对齐所用的单应性矩阵,重叠区域都是可以复用的,保存下来作为后续只含背景帧拼接的模板;
步骤6,若判断出两路当前帧M1和M2不存在前景,利用拼接模板拼接M1和M2;
其中,步骤1包含以下步骤:
步骤1-1,打开两路待拼接视频并判断视频打开是否成功,如果打开成功,获取视频的帧率fps,视频的格式fourcc,以及视频的帧宽度frameW和帧高度frameH;如果打开失败,再尝试一次打开两路待拼接视频,若连续失败,则返回打开视频失败信息,不进行后续步骤,直到两路待拼接视频打开成功;
步骤1-2,分别从两路视频流中读取当前帧M1和M2;
步骤1-3,通过背景差分法对M1和M2分别分割前后景。视频中只包含固定背景的视频帧当作背景模型M,然后对视频当前帧M’与背景模型M做差分,差值小于阈值的像素是背景,其他像素是前景:
其中,fore为当前帧M’的前景区域,fore(x,y)表示前景区域里横纵坐标为x和y的像素点,M(x,y)表示背景模型M里横纵坐标分别为x和y的像素点,T为阈值:可以根据人工经验选择,如一般设为40即可;也可以根据最大类间方法差(OTSU法)更精确的计算出一个最佳阈值T。根据上述公式得到M1的前景区域fore(M1),M1的背景区域back(M1),M2的前景区域fore(M2),M2的背景区域back(M2)。
步骤2包括以下步骤:
步骤2-1,采用逼近投影算法(参考文章Adaptive as-natural-as-possibleimage stitching),对当前帧M1的前景区域和M2的前景区域进行图像对齐;
步骤2-1-1:将两路待拼接视频的当前帧M1和M2分别转换为灰度图g1和g2,分别提取灰度图g1和g2的SURF(speed up robust feature)特征点(参考文章SURF:Speeded UpRobust Features);
步骤2-1-2,利用近似最近邻快速搜索FLANN算法(参考文章Fast ApproximateNearest Neighbors with Automatic Algorithm Configuration),得到灰度图g1任意特征点m1在灰度图g2上的k个距离最近的对应特征点ni(i=1,2,...,k);通常k=2;则n1就表示灰度图g2上和特征点m1欧式特征距离最接近的特征点,n2就表示灰度图g2上和特征点m1欧式特征距离次接近的特征点;
步骤2-1-3,采用劳氏算法Lowe’s algorithm来获取优秀匹配点(参考文章Distinctive Image Features from Scale-Invariant Keypoints):当dist1<ratio*dist2成立时,保留具有最小距离的匹配点对(m1,n1),否则抛弃;其中dist1表示灰度图g2上任一特征点和当前特征点m1最接近的欧式特征距离,即n1和m1的欧式距离;dist2表示灰度图g2上任一特征点和当前特征点m1次接近的欧式特征距离,即n2和m1的欧式距离;ratio为筛选系数,本方法中设为0.6,
步骤2-1-4,对灰度图g2中特征点使用近似最近邻快速搜索和劳氏算法处理,得到灰度图g2到灰度图g1的匹配点对(n1,m2),如果m1=m2,匹配成功,否则抛弃;最终得到初步筛选后匹配点集pointSet;
步骤2-1-5,从匹配点集pointSet中,根据每一对匹配点的横纵坐标值(x_i,y_i),(x_i',y_i'),其中i从1到N,N是pointSet中的点的个数,得到:
步骤2-1-6,将灰度图g2划分成C1xC2个网格,一般性的灰度图g2尺寸是1920*1080像素,则可取C1和C2值都为20,即灰度图g2划分成20*20个网格。然后计算每个网格中心点x*的单应性矩阵h*:
h*的解即是W*A最小奇异值所对应的右奇异向量。
步骤2-1-7,图像g2划分成的C1 x C2个网格,然后将每个网格内的所有像素点都用该网格中心点x*的单应性矩阵h*变换得到对应点,即g2上任一点(u,v,z)与它所在网格中心点对应的单应性矩阵h*相乘变换得到对应点(x’,y’,z’):
其中,h*33表示单应性矩阵h*的第三行第三列元素,归一化最终得到图像g2上的点(u,v,z)对齐到图像g1上的坐标(x,y):
图像g2即变换到了目标图像g1的坐标系下,也即M2的前景区域fore(M2)变换到了M1的前景区域fore(M1)坐标系下;
步骤2-2,提取出fore(M1)和fore(M2)的重叠区域;
步骤2-2-1,为fore(M1)和fore(M2)准备掩膜图像,在fore(M1)坐标系下,属于fore(M1)及变换过来的fore(M2)的掩膜像素值设为1,不属于fore(M1)及变换过来的fore(M2)的掩膜像素值设为0;
步骤2-2-2,双目图像中前景目标的位置大小都不相同,为了使前景目标在图像拼接后保持完整,需要对前景图像进行分割,融合,拼接处理。即fore(M2)的左上,左下,右上,右下四个角点:PleftTop,PleftBottom,PrightTop,PrightBottom,通过相应单应性矩阵h*,经过公式fore’(M2)(x,y)=h**fore(M2)(x,y)变换,得到它们在fore(M1)坐标下的四个对应点P’leftTop,P’leftBottom,P’rightTop,P’rightBottom。这时fore(M1)的左上,左下,右上,右下四个角点分别为OleftTop,OleftBottom,OrightTop,OrightBottom。则重叠区域Rectoverlap为:
Rectoverlap.start_x=min(P’leftTop.x,P’leftBottom.x),
Rectoverlap.start_y=min(P’leftTop.y,P’rightTop.y),Rectoverlap.width=max(OrightTop.x,OrightBottom.x)-Rectoverlap.start_x,
Rectoverlap.height=max(OleftBottom.y,OrightBottom.y)-Rectoverlap.start_y。
start_x和start_y即矩形区域Rectoverlap的左上角点的横纵坐标值,height即矩形区域Rectoverlap的高度,width即矩形区域Rectoverlap的宽度;x,y即相应点的横纵坐标值;
至此得到了fore(M1)和fore(M2)的重叠区域Rectoverlap。除了重叠区域外,还可能在实际fore(M1)和fore(M2)拼接中存在四个边角矩形,分别是RectleftCorner,RectrightCorner,RecttopCorner,RectbottomCorner,它们是fore(M1)和fore(M2)中没有被重叠的矩形区域。则最终fore(M1)和fore(M2)的拼接结果是这四个没有被重叠的边角矩形RectleftCorner,RectbottomCorner,RectrightCorner,RecttopCorner按逆时针排列,中间内嵌重叠区域Rectoverlap所组成的完整图像;
步骤2-3,对fore(M1)和fore(M2)的重叠区域做多频带融合(参考文章Amultiresolution spline with application to image mosaics),使fore(M1)和fore(M2)融合效果更自然,得到最终fore(M1)和fore(M2)的拼接结果。多频带融合从尺度维度来融合图像,不仅可以使边界区域过渡自然而且融合结果具有视觉一致性。
步骤2-3包括:
步骤2-3-1,对用于多频带融合的两张图像逐步下采样得到图像的高斯金字塔:设重叠区域Rectoverlap在原图像fore(M1)上为fore_overlap(M1),在原图像fore(M2)上为fore_overlap(M2)。对fore_overlap(M1)和fore_overlap(M2)逐步下采样获得它们的高斯金字塔。高斯金字塔包含图像的不同尺度,可用于模拟人类的视觉特性,近距离观察图像时,图像较大且细节清晰,这就是高斯金字塔的底层高分辨率图像表示;远距离观察图像时,图像较小且画面模糊,这就是高斯金字塔的顶层分辨率图像表示。高斯金字塔通过高斯滤波和亚采样实现,高斯金字塔最底层图像G0即要处理的原图fore_overlap(M1)或fore_overlap(M2)。再利用高斯核(5*5矩阵)对G0进行卷积,然后对卷积后的图像删除其偶数行和列,即下采样,就得到了高斯金字塔第二层图像G1。G1的大小即G0的四分之一,又以G1为输入,重复卷积和下采样操作得到更上一层的图像,反复迭代多次,例如10次,形成图像的完整高斯金字塔。
步骤2-3-2,对用于多频带融合的两张图像逐步上采样得到图像的拉普拉斯金字塔。在高斯金字塔的运算过程中,图像经过卷积和下采样操作会丢失部分高频细节,为了描述这些细节,定义了拉普拉斯金字塔。第K层拉普拉斯金字塔通过第K层高斯金字塔减去第K+1层高斯金字塔上采样、卷积得到:
LK即拉普拉斯金字塔第K层,GK即高斯金字塔第K层,GK+1即高斯金字塔第K+1层,Up函数将原图像每个维度放大为2倍,新增的偶数行以0填充,g为5*5高斯核矩阵。
重叠区域Rectoverlap在原图像fore(M1)上为fore_overlap(M1),在原图像fore(M2)上为fore_overlap(M2)。对fore_overlap(M1)和fore_overlap(M2)分别计算拉普拉斯金字塔,然后将金字塔每层图像融合:
LSK=LAK×maskk+LBK×(1-maskk),
其中,LSK是结果图像的第K层拉普拉斯金字塔图像,LAK,LBK分别为fore_overlap(M1)和fore_overlap(M2)第K层拉普拉斯图像,maskK是用于融合的掩膜图像。掩膜图像左半部分值为1,右半部分值为0,同时中间部分作为过滤带,值为:
其中,weightK,heightK分别为第K层拉普拉斯图像的宽度和高度。于是,重叠图像的拉普拉斯金字塔逐层融合后得到一个新的拉普拉斯金字塔;
步骤2-3-3,得到多频带融合的最终结果:将步骤2-3-2所得拉普拉斯金字塔所有层叠加到一起,得到多频带融合的最终结果:
LSresult=resize(LS0,sz)+...+resize(LSK,sz)+...+resize(LSN,sz),
其中,LSresult是多频带融合的结果,LSK是第K层拉普拉斯金字塔,resize用于对图像做缩放处理,sz是重叠图像的大小,N是拉普拉斯金字塔的层数。实际操作过程中,要注意图像分解的层数问题。层数越多算法越复杂,相应的时间需求越高,层数少的话融合效果不够自然。一般情况下,将图像分解5层能够较好平衡时间消耗和融合效果。这样,在步骤2-2-2得到的两路前景图像fore(M1)和fore(M2)的完整拼接结果基础上,经过步骤2-3的多频带融合处理,使得拼接结果视觉上更自然,于是融合出了完整的前景图像。
步骤3包括以下步骤:
步骤3-1,采用逼近投影算法,对两路视频流中读取的当前帧M1和M2的背景区域back(M1)和back(M2)进行对齐:具体算法及操作和前景图像对齐完全一样,参见步骤2-1;
步骤3-2,背景区域back(M1)和back(M2)对齐后,需要对背景区域进行修补。因为背景图像中的前景目标被提取后,会在前景目标所在的区域形成一个空洞,如果直接以这样的图像进行背景拼接,那么因为前景和背景其实不在一个平面上,按背景平面去对齐,两张图像上的前景空洞区域是不能对齐的,反而背景对齐后这块空洞会比两张图像上任何一张都大。而如果以这样的背景融合结果,最后和前景融合结果拼起来得到最终结果,会发现前景融合的结果不能完全填补背景上的这块空洞。所以在这里要对对齐后的背景图像进行修补,尽量减少空洞区域。处理方式即通过将两张有空洞的背景区域相互赋值。因为在大视差场景下,双目图像的视差位移大。左图的前景空洞区域可能部分出现在右图没有空洞的区域,同样右图的前景空洞区域可能部分出现在左图没有空洞的区域,于是通过图像对齐算法(参见步骤2-1)对齐后,只需要将对应像素赋值,即可填补背景左图和右图的部分前景空洞,这对于后续的前背景区域融合得到的最终结果减少空洞很有用处。
步骤3-3,提取出背景区域back(M1)和back(M2)的重叠区域;
步骤3-3-1,为back(M1)和back(M2)准备掩膜图像:在back(M1)坐标系下,属于back(M1)及变换过来的back(M2)的掩膜像素值设为1,不属于back(M1)及变换过来的back(M2)的掩膜像素值设为0;
步骤3-3-2,提取出背景图像back(M1)和back(M2)的重叠区域:back(M2)的左上,左下,右上,右下四个角点:PleftTop,PleftBottom,PrightTop,PrightBottom,通过相应单应性矩阵h*,经过公式back’(M2)(x,y)=h**back(M2)(x,y)变换,得到它们在back(M1)坐标下的四个对应点P’leftTop,P’leftBottom,P’rightTop,P’rightBottom。这时back(M1)的左上,左下,右上,右下四个角点分别为OleftTop,OleftBottom,OrightTop,OrightBottom。则重叠区域Rectoverlap为:
Rectoverlap.start_x=min(P’leftTop.x,P’leftBottom.x),
Rectoverlap.start_y=0,
Rectoverlap.width=OrightTop.x-OleftTop.x-Rectoverlap.start_x,
Rectoverlap.height=min(OleftBottom.y-OleftTop.y,PleftBottom.y-PleftTop.y)。
start_x和start_y即矩形区域Rectoverlap的左上角点的横纵坐标值,height即矩形区域Rectoverlap的高度,width即矩形区域Rectoverlap的宽度。x,y即相应点的横纵坐标值。
步骤3-4,对back(M1)和back(M2)的重叠区域做多频带融合,使back(M1)和back(M2)融合效果更自然,得到最终back(M1)和back(M2)的拼接结果。具体算法及操作和前景图像的多频带融合完全一样,参见步骤2-3。
步骤4包括以下步骤:
步骤4-1,在前景目标上选取一个基准点base,在背景空洞上选取另一个基准点base':通过上面的步骤,已经将两路视频流当前帧的前景和背景分别拼接完毕。接下来就是将前景和背景的拼接结果融合到一起,从而组成最终完整的当前帧拼接结果。在前景和背景的融合过程中,最重要的是选取合适的融合位置,原则是融合位置应最大程度覆盖背景中因分割前景造成的空洞区域。首先要在前景目标上选取一个基准点base,在背景空洞上选取另一个基准点base'。然后基于基准点就可以将前景目标和背景空洞融合。在前背景融合中常选用的几种基准点集包括:前景重心点foregravity,背景重心点backgravity;前景中心点forecenter,背景中心点backcenter;前景中的左上角点foreLT,背景中的左上角点backLT;前景中的右上角点foreRT,背景中的右上角点backRT;基准点的位置通过掩膜来计算,前景掩膜中前景目标和背景掩膜中的前景空洞都是非0元素,其他区域是0元素,基准点位置即各点的横纵坐标计算公式如下:
其中,foreXMIN、foreXMAX、foreYMIN、foreYMAX、foreXi、foreYi依次是前景目标横坐标最小值、横坐标最大值、纵坐标最小值、纵坐标最大值、任意点横坐标和任意点纵坐标。同样,backXMIN、backXMAX、backYMIN、backYMAX、backXi、backYi是背景空洞上的对应值。
步骤4-2,前景和背景融合:在前景目标上选取了合适的基准点base,在背景空洞上选取了合适的基准点base'后,即可将前景和背景融合。基于base点的像素值赋值到base'后,将前景掩膜中的非0像素值一一赋值到背景区域上,具体即前景目标上的任一非0像素点,先求得其和基准点base的横纵坐标差值,然后将基准点base'加上这个差值得到一个横纵坐标对,再把前景目标上的这个像素点的像素值赋值给这个横纵坐标对即可。
步骤5包括以下步骤:
步骤5-1,采用逼近投影算法,对M1和M2进行图像对齐:具体算法及操作和采用逼近投影算法对前景图像对齐完全一样,只是这里对齐的目标是整个M1和M2,参见步骤2-1。
步骤5-2,提取出当前帧M1和M2的重叠区域。具体算法及操作和提取出两背景图像的重叠区域一样,参见步骤3-3。
步骤5-3,融合M1和M2的重叠区域并得到最终M1和M2的拼接结果。具体算法及操作和融合两背景图像的重叠区域并得到最终拼接结果一样,参见步骤3-4。
步骤5-4,保存当前M1和M2融合的拼接模板。即保存M1和M2进行图像对齐中的每个网格中心点x*的单应性矩阵h*。因为背景几乎是静止不动的,所以只含背景的两路帧拼接时,图像对齐中的网格单应性矩阵和两图像的重叠区域是完全可以在之后复用的,减少拼接时间,提高拼接效率。
步骤6包括以下步骤:
采用逼近投影算法,对M1和M2进行图像对齐,这里的对齐可以直接采用步骤5-4中保存的拼接模板作为M2变换到M1的网格单应性矩阵。重叠区域也可复用拼接模板中的重叠区域,然后多频带融合M1和M2的重叠区域并得到最终M1和M2的拼接结果,参见步骤3-4。
(逼近投影算法参见:Lin,C.C.,Pankanti,S.U.,Ramamurthy,K.N.,Aravkin,A.Y.,2015.Adaptive as-natural-as-possible image stitching,in:Computer Visionand Pattern Recognition,pp.1155–1163.
多频带融合算法参见:Burt,P.J.,1983.A multiresolution spline withapplication to image mosaics.Acm Trans on Graphics 2,217–236.
SURF参见:Bay,H.,Ess,A.,Tuytelaars,T.,Van Gool,L.,2008.Speeded-uprobust features.Computer Visionand Image Understanding 110,404–417.
FLANN参见:Muja,M.,2009.Fast approximate nearest neighbors withautomatic algorith m configuration,in:International Conference on ComputerVision Theory and Application Vissapp,pp.331–340.
Lowe’s algorithm参见:Lowe,D.G.,2004.Distinctive image features fromscale-invariant keypoints.International Journal of Computer Vision 60,91–110.)
有益效果:本发明的显著优点是:
(1)本发明提出的实时视频拼接方法有着很高应用价值。在室内监控、虚拟现实等领域广泛存在大视差场景下的视频拼接。在大视差场景下,本发明能够有效去除错位和重影等现象,使拼接效果更真实自然。
(2)本发明提出的实时视频拼接方法压缩了计算量,降低了处理时间。针对只含背景的帧,基于背景是静止不动的,可以复用同一个模板进行拼接。该方法下1080P视频平均拼接速度达到20fps,满足实时性要求。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明方法的流程图。
图2a为一路待拼接视频的当前帧。
图2b为另一路待拼接视频的当前帧。
图3a图2a中前景分割的结果。
3b为图2a中背景分割的结果。
图3c为图2b中前景分割的结果。
图3d为图2b中背景分割的结果。
图4为两路前景图像的融合结果,即图3a和图3c的融合结果。
图5为两路背景图像的融合结果,即图3b和图3d的融合结果。
图6为完整的前背景融合结果,即图4和图5的融合结果。
图7为两路视频当前帧中没有前景的融合结果,即采用模板拼接的结果。
具体实施方式
本方法的流程图如图1所示,按照下述过程进行:
步骤1,读取两路待拼接视频,判断它们当前帧中是否存在前景:从两路待拼接视频中分别读取当前帧M1和M2,通过差分背景法分别判断M1和M2中每个像素点属于前景还是背景,进而判断出当前帧中是否存在前景;
步骤2,若判断出两路当前帧M1和M2都存在前景,融合帧中的前景区域fore(M1)和fore(M2):采用APAP逼近投影算法,对两个前景区域对齐;对齐后提取出fore(M1)和fore(M2)的重叠区域;对重叠区域做多频带融合,并得到帧中前景区域fore(M1)和fore(M2)的融合结果;
步骤3,若判断出两路当前帧M1和M2都存在前景,融合帧中的背景区域back(M1)和back(M2):采用APAP逼近投影算法,对两个背景区域对齐;对对齐后对因前背景分割在背景区域中造成的空洞进行修补;提取出back(M1)和back(M2)的重叠区域;对重叠区域做多频带融合,并得到帧中背景区域back(M1)和back(M2)的融合结果;
步骤4,完整的前景区域和背景区域融合:在前景目标上选取一个基准点base,在背景空洞上选取另一个基准点base';基于这两个基准点将完整的前景区域和背景区域融合,让前景覆盖背景中因分割前背景造成的空洞;
步骤5,若判断出两路当前帧M1和M2不存在前景,初始化拼接模板:M1和M2中只存在背景时,因为视频中背景几乎是静止不动的,则图像对齐所用的单应性矩阵,重叠区域都是可以复用的,保存下来作为后续只含背景帧拼接的模板;
步骤6,若判断出两路当前帧M1和M2不存在前景,利用拼接模板拼接M1和M2;
步骤7,串接每个结果帧后得到拼接结果视频。
对于步骤1,读取两路待拼接视频并判断它们当前帧中是否存在前景的具体实施细节如下步骤:
步骤1-1,打开两路待拼接视频并判断视频打开是否成功,如果打开成功,获取视频的帧率fps,视频的格式fourcc,以及视频的帧宽度frameW和帧高度frameH;
步骤1-2,分别从两路视频流中读取当前帧M1和M2;
步骤1-3,通过背景差分法对M1和M2分别分割前后景。视频中只包含固定背景的视频帧当作背景模型M,然后对视频当前帧M’与背景模型M做差分,差值小于阈值的像素是背景,其他像素是前景:
其中,fore为前景区域,T为阈值。据此得到M1的前景区域fore(M1),M1的背景区域back(M1),M2的前景区域fore(M2),M2的背景区域back(M2)。
对于步骤2,融合两路视频当前帧的前景区域具体实施细节如下步骤:
步骤2-1,采用逼近投影算法,对fore(M1)和fore(M2)进行图像对齐;
步骤2-1-1:将M1和M2分别转换为灰度图g1和g2,分别提取灰度图g1和g2的SURF特征点;
步骤2-1-2,利用近似最近邻快速搜索FLANN算法,得到图g1任意特征点m1在图g2上的k个距离最近的对应特征点ni(i=1,2,...,k);
步骤2-1-3,采用劳氏算法Lowe’s algorithm来获取优秀匹配点:当dist1<ratio*dist2成立时,ratio为筛选系数,保留具有最小距离的匹配点对(m1,n1),否则抛弃;
步骤2-1-4,对图g2中特征点使用近似最近邻快速搜索和劳氏算法处理,得到图g2到图g1的匹配点对(n1,m2),如果m1=m2,匹配成功,否则抛弃;最终得到初步筛选后匹配点集pointSet;
步骤2-1-5,从匹配点集pointSet中,根据每一对匹配点(x_i,y_i),(x_i',y_i'),其中i从1到N,N是pointSet中的,可以得到:
步骤2-1-6,将图像g2划分成C1xC2个网格,然后计算每个网格中心点x*的单应性矩阵h*:
h*的解即是W*A最小奇异值所对应的右奇异向量。
步骤2-1-7,图像g2划分成的C1 x C2个网格,然后将每个网格内的所有像素点都用该网格中心点x*的单应性矩阵h*变换得到对应点。即g2上任一点(u,v,z)与它所在网格中心点对应的单应性矩阵h*相乘变换得到对应点(x’,y’,z’):
其中,h*33表示单应性矩阵h*的第三行第三列元素,归一化最终得到图像g2上的点(u,v,z)对齐到图像g1上的坐标(x,y):
图像g2即变换到了目标图像g1的坐标系下,也即M2的前景区域fore(M2)变换到了M1的前景区域fore(M1)坐标系下;
步骤2-2,提取出fore(M1)和fore(M2)的重叠区域;
步骤2-2-1,为fore(M1)和fore(M2)准备掩膜图像,在fore(M1)坐标系下,属于fore(M1)及变换过来的fore(M2)的掩膜像素值设为1,不属于fore(M1)及变换过来的fore(M2)的掩膜像素值设为0;
步骤2-2-2,双目图像中前景目标的位置大小都不相同,为了使前景目标在图像拼接后保持完整,需要对前景图像进行分割,融合,拼接处理。即fore(M2)的左上,左下,右上,右下四个角点:PleftTop,PleftBottom,PrightTop,PrightBottom,通过相应单应性矩阵h*,经过公式fore’(M2)(x,y)=h**fore(M2)(x,y)变换,得到它们在fore(M1)坐标下的四个对应点P’leftTop,P’leftBottom,P’rightTop,P’rightBottom。这时fore(M1)的左上,左下,右上,右下四个角点分别为OleftTop,OleftBottom,OrightTop,OrightBottom。则重叠区域Rectoverlap为:
Rectoverlap.start_x=min(P’leftTop.x,P’leftBottom.x),
Rectoverlap.start_y=min(P’leftTop.y,P’rightTop.y),Rectoverlap.width=max(OrightTop.x,OrightBottom.x)-Rectoverlap.start_x,
Rectoverlap.height=max(OleftBottom.y,OrightBottom.y)-Rectoverlap.start_y。
至此得到了fore(M1)和fore(M2)的重叠区域Rectoverlap。除了重叠区域外,还可能在实际fore(M1)和fore(M2)拼接中存在四个边角矩形,分别是RectleftCorner,RectrightCorner,RecttopCorner,RectbottomCorner,它们是fore(M1)和fore(M2)中没有被重叠的矩形区域。则最终fore(M1)和fore(M2)的拼接结果是这四个没有被重叠的边角矩形RectleftCorner,RectbottomCorner,RectrightCorner,RecttopCorner按逆时针排列,中间内嵌重叠区域Rectoverlap所组成的完整图像;
步骤2-3,对fore(M1)和fore(M2)的重叠区域做多频带融合,使fore(M1)和fore(M2)融合效果更自然,得到最终fore(M1)和fore(M2)的拼接结果。多频带融合从尺度维度来融合图像,不仅可以使边界区域过渡自然而且融合结果具有视觉一致性。
步骤2-3-1,对用于多频带融合的两张图像逐步下采样得到图像的高斯金字塔。设重叠区域Rectoverlap在原图像fore(M1)上为fore_overlap(M1),在原图像fore(M2)上为fore_overlap(M2)。对fore_overlap(M1)和fore_overlap(M2)逐步下采样获得它们的高斯金字塔。高斯金字塔包含图像的不同尺度,可用于模拟人类的视觉特性,近距离观察图像时,图像较大且细节清晰,这就是高斯金字塔的底层高分辨率图像表示;远距离观察图像时,图像较小且画面模糊,这就是高斯金字塔的顶层分辨率图像表示。高斯金字塔通过高斯滤波和亚采样实现,高斯金字塔最底层图像G0即要处理的原图fore_overlap(M1)或fore_overlap(M2)。再利用高斯核(5*5矩阵)对G0进行卷积,然后对卷积后的图像删除其偶数行和列,即下采样,就得到了高斯金字塔第二层图像G1。G1的大小即G0的四分之一,又以G1为输入,重复卷积和下采样操作得到更上一层的图像,反复迭代多次,形成图像的完整高斯金字塔。
步骤2-3-2,对用于多频带融合的两张图像逐步上采样得到图像的拉普拉斯金字塔。在高斯金字塔的运算过程中,图像经过卷积和下采样操作会丢失部分高频细节,为了描述这些细节,定义了拉普拉斯金字塔。第K层拉普拉斯金字塔通过第K层高斯金字塔减去第K+1层高斯金字塔上采样、卷积得到:
LK即拉普拉斯金字塔第K层,GK即高斯金字塔第K层,GK+1即高斯金字塔第K+1层,Up函数将原图像每个维度放大为2倍,新增的偶数行以0填充,g为5*5高斯核矩阵。
重叠区域Rectoverlap在原图像fore(M1)上为fore_overlap(M1),在原图像fore(M2)上为fore_overlap(M2)。对fore_overlap(M1)和fore_overlap(M2)分别计算拉普拉斯金字塔,然后将金字塔每层图像融合:
LSK=LAK×maskk+LBK×(1-maskk)
其中,LSK是结果图像的第K层拉普拉斯金字塔图像,LAK,LBK分别为fore_overlap(M1)和fore_overlap(M2)第K层拉普拉斯图像,maskK是用于融合的掩膜图像。掩膜图像左半部分值为1,右半部分值为0,同时中间部分作为过滤带,值为:
其中,weightK,heightK分别为第K层拉普拉斯图像的宽度和高度。于是,重叠图像的拉普拉斯金字塔逐层融合后得到一个新的拉普拉斯金字塔。
步骤2-3-3,得到多频带融合的最终结果。将步骤2-3-2所得拉普拉斯金字塔所有层叠加到一起,得到多频带融合的最终结果:
LSresult=resize(LS0,sz)+...+resize(LSK,sz)+...+resize(LSN,sz),
其中,LSresult是多频带融合的结果,LSK是第K层拉普拉斯金字塔,resize用于对图像做缩放处理,sz是重叠图像的大小,N是拉普拉斯金字塔的层数。实际操作过程中,要注意图像分解的层数问题。层数越多算法越复杂,相应的时间需求越高,层数少的话融合效果不够自然。一般情况下,将图像分解5层能够较好平衡时间消耗和融合效果。这样,在步骤2-2-2得到的两路前景图像fore(M1)和fore(M2)的完整拼接结果基础上,经过步骤2-3的多频带融合处理,使得拼接结果视觉上更自然,于是融合出了完整的前景图像。
对于步骤3,融合两路视频当前帧的背景区域具体实施细节如下步骤:
步骤3-1,采用逼近投影算法,对两路视频流中读取的当前帧M1和M2的背景区域back(M1)和back(M2)进行对齐:具体算法及操作和前景图像对齐完全一样,参见步骤2-1;
步骤3-2,背景区域back(M1)和back(M2)对齐后,需要对背景区域进行修补。因为背景图像中的前景目标被提取后,会在前景目标所在的区域形成一个空洞,如果直接以这样的图像进行背景拼接,那么因为前景和背景其实不在一个平面上,按背景平面去对齐,两张图像上的前景空洞区域是不能对齐的,反而背景对齐后这块空洞会比两张图像上任何一张都大。而如果以这样的背景融合结果,最后和前景融合结果拼起来得到最终结果,会发现前景融合的结果不能完全填补背景上的这块空洞。所以在这里要对对齐后的背景图像进行修补,尽量减少空洞区域。处理方式即通过将两张有空洞的背景区域相互赋值。因为在大视差场景下,双目图像的视差位移大。左图的前景空洞区域可能部分出现在右图没有空洞的区域,同样右图的前景空洞区域可能部分出现在左图没有空洞的区域,于是通过图像对齐算法(参见步骤2-1)对齐后,只需要将对应像素赋值,即可填补背景左图和右图的部分前景空洞,这对于后续的前背景区域融合得到的最终结果减少空洞很有用处。
步骤3-3,提取出背景区域back(M1)和back(M2)的重叠区域;
步骤3-3-1,为back(M1)和back(M2)准备掩膜图像:在back(M1)坐标系下,属于back(M1)及变换过来的back(M2)的掩膜像素值设为1,不属于back(M1)及变换过来的back(M2)的掩膜像素值设为0;
步骤3-3-2,提取出背景图像back(M1)和back(M2)的重叠区域:back(M2)的左上,左下,右上,右下四个角点:PleftTop,PleftBottom,PrightTop,PrightBottom,通过相应单应性矩阵h*,经过公式back’(M2)(x,y)=h**back(M2)(x,y)变换,得到它们在back(M1)坐标下的四个对应点P’leftTop,P’leftBottom,P’rightTop,P’rightBottom。这时back(M1)的左上,左下,右上,右下四个角点分别为OleftTop,OleftBottom,OrightTop,OrightBottom。则重叠区域Rectoverlap为:
Rectoverlap.start_x=min(P’leftTop.x,P’leftBottom.x),
Rectoverlap.start_y=0,
Rectoverlap.width=OrightTop.x-OleftTop.x-Rectoverlap.start_x,
Rectoverlap.height=min(OleftBottom.y-OleftTop.y,PleftBottom.y-PleftTop.y)。
步骤3-4,对back(M1)和back(M2)的重叠区域做多频带融合,使back(M1)和back(M2)融合效果更自然,得到最终back(M1)和back(M2)的拼接结果。具体算法及操作和前景图像的多频带融合完全一样,参见步骤2-3。
对于步骤4,完整的前景区域和背景区域融合具体实施细节如下步骤:
步骤4-1,在前景目标上选取一个基准点base,在背景空洞上选取另一个基准点base':通过上面的步骤,已经将两路视频流当前帧的前景和背景分别拼接完毕。接下来就是将前景和背景的拼接结果融合到一起,从而组成最终完整的当前帧拼接结果。在前景和背景的融合过程中,最重要的是选取合适的融合位置,原则是融合位置应最大程度覆盖背景中因分割前景造成的空洞区域。首先要在前景目标上选取一个基准点base,在背景空洞上选取另一个基准点base'。然后基于基准点就可以将前景目标和背景空洞融合。在前背景融合中常选用的几种基准点集包括重心foregravity,backgravity,中心forecenter,backcenter,左上角foreLT,backLT,右上角foreRT,backRT。基准点的位置通过掩膜来计算,前景掩膜中前景目标和背景掩膜中的前景空洞都是非0元素,其他区域是0元素,基准点计算公式如下:
其中,foreXMIN、foreXMAX、foreYMIN、foreYMAX、foreXi、foreYi依次是前景目标横坐标最小值、横坐标最大值、纵坐标最小值、纵坐标最大值、任意点横坐标和任意点纵坐标。同样,backXMIN、backXMAX、backYMIN、backYMAX、backXi、backYi是背景空洞上的对应值。
步骤4-2,前景和背景融合:在前景目标上选取了合适的基准点base,在背景空洞上选取了合适的基准点base'后,即可将前景和背景融合。基于base点的像素值赋值到base'后,将前景掩膜中的非0像素值一一赋值到背景区域上,具体即前景目标上的任一非0像素点,先求得其和基准点base的横纵坐标差值,然后将基准点base'加上这个差值得到一个横纵坐标对,再把前景目标上的这个像素点的像素值赋值给这个横纵坐标对即可。
对于步骤5,初始化拼接模板具体实施细节如下步骤:
步骤5-1,采用逼近投影算法,对M1和M2进行图像对齐:具体算法及操作和采用逼近投影算法对前景图像对齐完全一样,只是这里对齐的目标是整个M1和M2,参见步骤2-1。
步骤5-2,提取出当前帧M1和M2的重叠区域。具体算法及操作和提取出两背景图像的重叠区域一样,参见步骤3-3。
步骤5-3,融合M1和M2的重叠区域并得到最终M1和M2的拼接结果。具体算法及操作和融合两背景图像的重叠区域并得到最终拼接结果一样,参见步骤3-4。
步骤5-4,保存当前M1和M2融合的拼接模板。即保存M1和M2进行图像对齐中的每个网格中心点x*的单应性矩阵h*。因为背景几乎是静止不动的,所以只含背景的两路帧拼接时,图像对齐中的网格单应性矩阵和两图像的重叠区域是完全可以在之后复用的,减少拼接时间,提高拼接效率。
对于步骤6,利用拼接模板拼接两路视频只含背景的当前帧具体实施细节如下步骤:
采用逼近投影算法,对M1和M2进行图像对齐,这里的对齐可以直接采用步骤5-4中保存的拼接模板作为M2变换到M1的网格单应性矩阵。重叠区域也可复用拼接模板中的重叠区域,然后多频带融合M1和M2的重叠区域并得到最终M1和M2的拼接结果,参见步骤3-4。
实施例
本实施例的实验硬件环境是:Intel(R)Core(TM)i7-7700 CPU@3.6Hz、NVIDIAGeForce GTX1050、8.0G内存,软件开发环境是:Microsoft Visual Studio2013、MicrosoftWindows10、OpenCV2.4.13、NVIDIA CUDA 8.0。
本发明公开了一种大视差场景下基于自身单应性变换的实时视频拼接方法,其核心在于:判断若待拼接两路视频当前帧存在前景,则将两路视频当前帧的前景和背景分割;对两个前景区域和背景区域都采用图像对齐、提取重叠区域、多频带融合重叠区域的步骤融合好;再将融合好的前景图像填补到背景图像的空洞上;判断若两路视频当前帧不存在前景,则只需要融合背景,背景融合都可采用一个相同的模板,加快拼接速度。具体包括以下步骤:
步骤1,读取两路待拼接视频,判断它们当前帧中是否存在前景:从两路待拼接视频中分别读取当前帧,如图2a和图2b所示。通过差分背景法分别判断两路视频当前帧中每个像素点属于前景还是背景,进而判断出当前帧中是否存在前景;从而得到图2a的前景图像图3a,背景图像图3b;图2b的前景图像图3c,背景图像图3d;
步骤2,若判断出两路当前帧都存在前景,融合帧中的前景图像,即融合如图3a和图3c:采用APAP逼近投影算法,对两个前景图像对齐;对齐后提取出两个前景图像的重叠区域;对重叠区域做多频带融合,并得到前景图像的融合结果,如图4;
步骤3,若判断出两路当前帧都存在前景,融合帧中的背景图像,即融合如图3b和图3d:采用APAP逼近投影算法,对两个背景图像对齐;对对齐后对因前背景分割在背景图像中造成的空洞进行修补;提取出两个背景图像的重叠区域;对重叠区域做多频带融合,并得到两背景图像的融合结果,如图5所示;
步骤4,完整的前景区域和背景区域融合:在前景目标上选取一个基准点base,在背景空洞上选取另一个基准点base';基于这两个基准点将完整的前景区域和背景区域融合,让前景覆盖背景中因分割前背景造成的空洞,结果如图6所示;
步骤5,若判断出两路当前帧中不存在前景,初始化拼接模板:因为视频中背景几乎是静止不动的,则图像对齐所用的单应性矩阵,重叠区域都是可以复用的,保存下来作为后续只含背景帧拼接的模板;
步骤6,若判断出两路当前帧中不存在前景,利用拼接模板拼接两路当前帧,结果如图7所示。
本发明提供了大视差场景下基于自身单应性变换的实时视频拼接方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (10)
1.大视差场景下基于自身单应性变换的实时视频拼接方法,其特征在于,包括如下步骤:
步骤1,读取两路待拼接视频,两路待拼接视频的当前帧分别为M1和M2,判断,两路当前帧M1和M2中是否存在前景,如果两路当前帧M1和M2都存在前景,执行下列步骤2;如果两路当前帧M1和M2都不存在前景,执行步骤5;
步骤2,两路待拼接视频的当前帧M1和M2的前景区域分别为fore(M1)和fore(M2),融合前景区域fore(M1)和fore(M2);
步骤3,两路待拼接视频的当前帧M1和M2的背景区域分别为back(M1)和back(M2),融合背景区域back(M1)和back(M2);
步骤4,进行完整的前景区域和背景区域融合;
步骤5,初始化拼接模板:两路待拼接视频的当前帧M1和M2中只存在背景时,初始化作为后续只含背景帧的拼接模板;
步骤6,利用拼接模板拼接两路待拼接视频的当前帧M1和M2。
2.如权利要求1所述的方法,其特征在于,步骤1包含以下步骤:
步骤1-1,打开两路待拼接视频,并判断视频打开是否成功,如果打开成功,获取视频的帧率fps,视频的格式fourcc,以及视频的帧宽度frameW和帧高度frameH;如果打开失败,再尝试一次打开两路待拼接视频,若连续失败,则返回打开视频失败信息,不进行后续步骤,直到两路待拼接视频打开成功;
步骤1-2,分别从两路待拼接视频流中读取当前帧M1和M2;步骤1-3,通过背景差分法对M1和M2分别分割前后景:视频中只包含固定背景的视频帧当作背景模型M,然后对视频当前帧M’与背景模型M做差分,差值小于阈值的像素是背景,其他像素是前景:
其中,fore为当前帧M’的前景区域,fore(x,y)表示前景区域里横纵坐标为x和y的像素点,M(x,y)表示背景模型M里横纵坐标分别为x和y的像素点,T为阈值;根据上述公式得到M1的前景区域fore(M1),M1的背景区域back(M1),M2的前景区域fore(M2),M2的背景区域back(M2)。
3.如权利要求2所述的方法,其特征在于,步骤2包括以下步骤:
步骤2-1,采用逼近投影算法,对当前帧M1的前景区域和M2的前景区域进行图像对齐;
步骤2-2,提取出fore(M1)和fore(M2)的重叠区域;
步骤2-3,对fore(M1)和fore(M2)的重叠区域做多频带融合,得到最终fore(M1)和fore(M2)的拼接结果。
4.如权利要求3所述的方法,其特征在于,步骤2-1包括:
步骤2-1-1:将两路待拼接视频的当前帧M1和M2分别转换为灰度图g1和g2,分别提取灰度图g1和g2的SURF特征点;
步骤2-1-2,利用近似最近邻快速搜索FLANN算法,得到灰度图g1任意特征点m1在灰度图g2上的k个距离最近的对应特征点ni,i=1,2,...,k;
步骤2-1-3,采用劳氏算法Lowe’s algorithm来获取优秀匹配点:当dist1<ratio*dist2成立时,保留具有最小距离的匹配点对(m1,n1),否则抛弃;其中dist1表示灰度图g2上任一特征点和当前特征点m1最接近的欧式特征距离,即n1和m1的欧式距离;dist2表示灰度图g2上任一特征点和当前特征点m1次接近的欧式特征距离,即n2和m1的欧式距离;ratio为筛选系数;
步骤2-1-4,对灰度图g2中特征点使用近似最近邻快速搜索和劳氏算法处理,得到灰度图g2灰度到图g1的匹配点对(n1,m2),如果m1=m2,匹配成功,否则抛弃;最终得到初步筛选后匹配点集pointSet;
步骤2-1-5,从匹配点集pointSet中,根据每一对匹配点的横纵坐标值(x_i,y_i),(x_i',y_i'),其中i从1到N,N是pointSet中的点的个数,得到:
步骤2-1-6,将灰度图g2划分成C1xC2个网格,然后计算每个网格中心点x*的单应性矩阵h*:
h*的解即是W*A最小奇异值所对应的右奇异向量;
步骤2-1-7,图像g2划分成的C1 x C2个网格,然后将每个网格内的所有像素点都用该网格中心点x*的单应性矩阵h*变换得到对应点,即g2上任一点(u,v,z)与它所在网格中心点对应的单应性矩阵h*相乘变换得到对应点(x’,y’,z’):
其中,h*33表示单应性矩阵h*的第三行第三列元素,归一化最终得到图像g2上的点(u,v,z)对齐到图像g1上的坐标(x,y):
图像g2即变换到了目标图像g1的坐标系下,也即M2的前景区域fore(M2)变换到了M1的前景区域fore(M1)坐标系下。
5.如权利要求4所述的方法,其特征在于,步骤2-2包括:
步骤2-2-1,为fore(M1)和fore(M2)准备掩膜图像,在fore(M1)坐标系下,属于fore(M1)及变换过来的fore(M2)的掩膜像素值设为1,不属于fore(M1)及变换过来的fore(M2)的掩膜像素值设为0;
步骤2-2-2,双目图像中前景目标的位置大小都不相同,为了使前景目标在图像拼接后保持完整,需要对前景图像进行分割,融合,拼接处理。即fore(M2)的左上,左下,右上,右下四个角点:PleftTop,PleftBottom,PrightTop,PrightBottom,通过相应单应性矩阵h*,经过公式fore’(M2)(x,y)=h**fore(M2)(x,y)变换,得到它们在fore(M1)坐标下的四个对应点P’leftTop,P’leftBottom,P’rightTop,P’rightBottom。这时fore(M1)的左上,左下,右上,右下四个角点分别为OleftTop,OleftBottom,OrightTop,OrightBottom。则重叠区域Rectoverlap为:
Rectoverlap.start_x=min(P’leftTop.x,P’leftBottom.x),
Rectoverlap.start_y=min(P’leftTop.y,P’rightTop.y),
Rectoverlap.width=max(OrightTop.x,OrightBottom.x)-Rectoverlap.start_x,
Rectoverlap.height=max(OleftBottom.y,OrightBottom.y)-Rectoverlap.start_y。
start_x和start_y即矩形区域Rectoverlap的左上角点的横纵坐标值,height即矩形区域Rectoverlap的高度,width即矩形区域Rectoverlap的宽度;x,y即相应点的横纵坐标值;
至此得到了fore(M1)和fore(M2)的重叠区域Rectoverlap;除了重叠区域外,还可能在实际fore(M1)和fore(M2)拼接中存在四个边角矩形,分别是RectleftCorner,RectrightCorner,RecttopCorner,RectbottomCorner,它们是fore(M1)和fore(M2)中没有被重叠的矩形区域,则最终fore(M1)和fore(M2)的拼接结果是这四个没有被重叠的边角矩形RectleftCorner,RectbottomCorner,RectrightCorner,RecttopCorner按逆时针排列,中间内嵌重叠区域Rectoverlap所组成的完整图像。
6.如权利要求5所述的方法,其特征在于,步骤2-3包括:
步骤2-3-1,对用于多频带融合的两张图像逐步下采样得到图像的高斯金字塔:设重叠区域Rectoverlap在原图像fore(M1)上为fore_overlap(M1),在原图像fore(M2)上为fore_overlap(M2)。对fore_overlap(M1)和fore_overlap(M2)逐步下采样获得它们的高斯金字塔;高斯金字塔通过高斯滤波和亚采样实现,高斯金字塔最底层图像G0即要处理的原图fore_overlap(M1)或fore_overlap(M2);再利用高斯核(5*5矩阵)对G0进行卷积,然后对卷积后的图像删除其偶数行和列,即下采样,就得到了高斯金字塔第二层图像G1;G1的大小即G0的四分之一,又以G1为输入,重复卷积和下采样操作得到更上一层的图像,反复迭代多次,形成图像的完整高斯金字塔;
步骤2-3-2,对用于多频带融合的两张图像逐步上采样得到图像的拉普拉斯金字塔:在高斯金字塔的运算过程中,图像经过卷积和下采样操作会丢失部分高频细节,为了描述这些细节,定义了拉普拉斯金字塔;第K层拉普拉斯金字塔通过第K层高斯金字塔减去第K+1层高斯金字塔上采样、卷积得到:
LK即拉普拉斯金字塔第K层,GK即高斯金字塔第K层,GK+1即高斯金字塔第K+1层,Up函数将原图像每个维度放大为2倍,新增的偶数行以0填充,g为5*5高斯核矩阵;
重叠区域Rectoverlap在原图像fore(M1)上为fore_overlap(M1),在原图像fore(M2) 上为fore_overlap(M2);对fore_overlap(M1)和fore_overlap(M2)分别计算拉普拉斯金字塔,然后将金字塔每层图像融合:
LSK=LAK×maskk+LBK×(1-maskk),
其中,LSK是结果图像的第K层拉普拉斯金字塔图像,LAK,LBK分别为fore_overlap(M1)和fore_overlap(M2)第K层拉普拉斯图像,maskK是用于融合的掩膜图像。掩膜图像左半部分值为1,右半部分值为0,同时中间部分作为过滤带,值为:
其中,weightK,heightK分别为第K层拉普拉斯图像的宽度和高度;于是,重叠图像的拉普拉斯金字塔逐层融合后得到一个新的拉普拉斯金字塔;
步骤2-3-3,得到多频带融合的最终结果:将步骤2-3-2所得拉普拉斯金字塔所有层叠加到一起,得到多频带融合的最终结果:
LSresult=resize(LS0,sz)+...+resize(LSK,sz)+...+resize(LSN,sz),
其中,LSresult是多频带融合的结果,LSK是第K层拉普拉斯金字塔,resize用于对图像做缩放处理,sz是重叠图像的大小,N是拉普拉斯金字塔的层数;在步骤2-2-2得到的两路前景图像fore(M1)和fore(M2)的完整拼接结果基础上,经过步骤2-3的多频带融合处理,融合出了完整的前景图像。
7.如权利要求6所述的方法,其特征在于,步骤3包括以下步骤:
步骤3-1,采用逼近投影算法,对两路视频流中读取的当前帧M1和M2的背景区域back(M1)和back(M2)进行对齐;
步骤3-2,背景区域back(M1)和back(M2)对齐后,需要对背景区域进行修补,通过图像对齐算法对齐后,只需要将对应像素赋值,即能够填补背景左图和右图的部分前景空洞;
步骤3-3,提取出背景区域back(M1)和back(M2)的重叠区域;
步骤3-4,对back(M1)和back(M2)的重叠区域做多频带融合,得到最终back(M1)和back(M2)的拼接结果。
8.如权利要求7所述的方法,其特征在于,步骤3-3包括:
步骤3-3-1,为back(M1)和back(M2)准备掩膜图像:在back(M1)坐标系下,属于back(M1)及变换过来的back(M2)的掩膜像素值设为1,不属于back(M1)及变换过来的back(M2)的掩膜像素值设为0;
步骤3-3-2,提取出背景图像back(M1)和back(M2)的重叠区域:back(M2)的左上,左下,右上,右下四个角点:PleftTop,PleftBottom,PrightTop,PrightBottom,通过相应单应性矩阵h*,经过公式back’(M2)(x,y)=h**back(M2)(x,y)变换,得到它们在back(M1)坐标下的四个对应点P’leftTop,P’leftBottom,P’rightTop,P’rightBottom;这时back(M1)的左上,左下,右上,右下四个角点分别为OleftTop,OleftBottom,OrightTop,OrightBottom;则重叠区域Rectoverlap为:
Rectoverlap.start_x=min(P’leftTop.x,P’leftBottom.x),
Rectoverlap.start_y=0,
Rectoverlap.width=OrightTop.x-OleftTop.x-Rectoverlap.start_x,
Rectoverlap.height=min(OleftBottom.y-OleftTop.y,PleftBottom.y-PleftTop.y),
start_x和start_y即矩形区域Rectoverlap的左上角点的横纵坐标值,height即矩形区域Rectoverlap的高度,width即矩形区域Rectoverlap的宽度。x,y即相应点的横纵坐标值。
9.如权利要求8所述的方法,其特征在于,步骤4包括以下步骤:
步骤4-1,在前景目标上选取一个基准点base,在背景空洞上选取另一个基准点base':首先要在前景目标上选取一个基准点base,在背景空洞上选取另一个基准点base',在前背景融合中选用的基准点集包括:前景重心点foregravity,背景重心点backgravity;前景中心点forecenter,背景中心点backcenter;前景中的左上角点foreLT,背景中的左上角点backLT;前景中的右上角点foreRT,背景中的右上角点backRT;基准点的位置通过掩膜来计算,前景掩膜中前景目标和背景掩膜中的前景空洞都是非0元素,其他区域是0元素,基准点位置即各点的横纵坐标计算公式如下:
其中,foreXMIN、foreXMAX、foreYMIN、foreYMAX、foreXi、foreYi依次是前景目标横坐标最小值、横坐标最大值、纵坐标最小值、纵坐标最大值、任意点横坐标和任意点纵坐标;同样,backXMIN、backXMAX、backYMIN、backYMAX、backXi、backYi是背景空洞上的对应值;
步骤4-2,前景和背景融合:基于base点的像素值赋值到base'后,将前景掩膜中的非0像素值一一赋值到背景区域上,具体即前景目标上的任一非0像素点,先求得其和基准点base的横纵坐标差值,然后将基准点base'加上这个差值得到一个横纵坐标对,再把前景目标上的这个像素点的像素值赋值给这个横纵坐标对。
10.如权利要求9所述的方法,其特征在于,步骤5包括以下步骤:
步骤5-1,采用逼近投影算法,对M1和M2进行图像对齐;
步骤5-2,提取出当前帧M1和M2的重叠区域;
步骤5-3,融合M1和M2的重叠区域并得到最终M1和M2的拼接结果;
步骤5-4,保存当前M1和M2融合的拼接模板,即保存M1和M2进行图像对齐中的每个网格中心点x*的单应性矩阵h*。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911165281.5A CN111105350B (zh) | 2019-11-25 | 2019-11-25 | 大视差场景下基于自身单应性变换的实时视频拼接方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911165281.5A CN111105350B (zh) | 2019-11-25 | 2019-11-25 | 大视差场景下基于自身单应性变换的实时视频拼接方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111105350A true CN111105350A (zh) | 2020-05-05 |
CN111105350B CN111105350B (zh) | 2022-03-15 |
Family
ID=70420815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911165281.5A Active CN111105350B (zh) | 2019-11-25 | 2019-11-25 | 大视差场景下基于自身单应性变换的实时视频拼接方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111105350B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112927276A (zh) * | 2021-03-10 | 2021-06-08 | 杭州海康威视数字技术股份有限公司 | 图像配准方法、装置、电子设备及存储介质 |
WO2021249428A1 (zh) * | 2020-06-12 | 2021-12-16 | 北京字节跳动网络技术有限公司 | 视频合拍方法、装置、电子设备及计算机可读介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101621634A (zh) * | 2009-07-24 | 2010-01-06 | 北京工业大学 | 动态前景分离的大幅面视频拼接方法 |
CN101646022A (zh) * | 2009-09-04 | 2010-02-10 | 深圳华为通信技术有限公司 | 一种图像拼接的方法、系统 |
CN102006425A (zh) * | 2010-12-13 | 2011-04-06 | 交通运输部公路科学研究所 | 一种基于多摄像机的视频实时拼接方法 |
US20130044186A1 (en) * | 2011-08-19 | 2013-02-21 | Hailin Jin | Plane-based Self-Calibration for Structure from Motion |
US20130266180A1 (en) * | 2012-04-06 | 2013-10-10 | Adobe Systems Incorporated | Keyframe Selection for Robust Video-Based Structure from Motion |
CN103516995A (zh) * | 2012-06-19 | 2014-01-15 | 中南大学 | 一种基于orb特征的实时全景视频拼接方法和装置 |
CN103985114A (zh) * | 2014-03-21 | 2014-08-13 | 南京大学 | 一种监控视频人物前景分割与分类的方法 |
CN104408701A (zh) * | 2014-12-03 | 2015-03-11 | 中国矿业大学 | 一种大场景视频图像拼接方法 |
WO2015039067A1 (en) * | 2013-09-16 | 2015-03-19 | Duke University | Method for combining multiple image fields |
CN107734268A (zh) * | 2017-09-18 | 2018-02-23 | 北京航空航天大学 | 一种结构保持的宽基线视频拼接方法 |
CN108093221A (zh) * | 2017-12-27 | 2018-05-29 | 南京大学 | 一种基于缝合线的实时视频拼接方法 |
CN109600623A (zh) * | 2018-11-16 | 2019-04-09 | 深圳市赛亿科技开发有限公司 | Vr直播视频的控制方法和系统 |
-
2019
- 2019-11-25 CN CN201911165281.5A patent/CN111105350B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101621634A (zh) * | 2009-07-24 | 2010-01-06 | 北京工业大学 | 动态前景分离的大幅面视频拼接方法 |
CN101646022A (zh) * | 2009-09-04 | 2010-02-10 | 深圳华为通信技术有限公司 | 一种图像拼接的方法、系统 |
CN102006425A (zh) * | 2010-12-13 | 2011-04-06 | 交通运输部公路科学研究所 | 一种基于多摄像机的视频实时拼接方法 |
US20130044186A1 (en) * | 2011-08-19 | 2013-02-21 | Hailin Jin | Plane-based Self-Calibration for Structure from Motion |
US20130266180A1 (en) * | 2012-04-06 | 2013-10-10 | Adobe Systems Incorporated | Keyframe Selection for Robust Video-Based Structure from Motion |
CN103516995A (zh) * | 2012-06-19 | 2014-01-15 | 中南大学 | 一种基于orb特征的实时全景视频拼接方法和装置 |
WO2015039067A1 (en) * | 2013-09-16 | 2015-03-19 | Duke University | Method for combining multiple image fields |
CN103985114A (zh) * | 2014-03-21 | 2014-08-13 | 南京大学 | 一种监控视频人物前景分割与分类的方法 |
CN104408701A (zh) * | 2014-12-03 | 2015-03-11 | 中国矿业大学 | 一种大场景视频图像拼接方法 |
CN107734268A (zh) * | 2017-09-18 | 2018-02-23 | 北京航空航天大学 | 一种结构保持的宽基线视频拼接方法 |
CN108093221A (zh) * | 2017-12-27 | 2018-05-29 | 南京大学 | 一种基于缝合线的实时视频拼接方法 |
CN109600623A (zh) * | 2018-11-16 | 2019-04-09 | 深圳市赛亿科技开发有限公司 | Vr直播视频的控制方法和系统 |
Non-Patent Citations (2)
Title |
---|
XIAO YU ET AL.: "Learning to Generate Posters of Scientific Papers by Probabilistic Graphical Models", 《COMPUT. SCI. & TECHNOL.》 * |
汪粼波: "样本驱动的半自动图像集前背景分割", 《计算机辅助设计与图形学学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021249428A1 (zh) * | 2020-06-12 | 2021-12-16 | 北京字节跳动网络技术有限公司 | 视频合拍方法、装置、电子设备及计算机可读介质 |
US11875556B2 (en) | 2020-06-12 | 2024-01-16 | Beijing Bytedance Network Technology Co., Ltd. | Video co-shooting method, apparatus, electronic device and computer-readable medium |
CN112927276A (zh) * | 2021-03-10 | 2021-06-08 | 杭州海康威视数字技术股份有限公司 | 图像配准方法、装置、电子设备及存储介质 |
CN112927276B (zh) * | 2021-03-10 | 2024-03-12 | 杭州海康威视数字技术股份有限公司 | 图像配准方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111105350B (zh) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110443842B (zh) | 基于视角融合的深度图预测方法 | |
Waechter et al. | Let there be color! Large-scale texturing of 3D reconstructions | |
Ghosh et al. | A survey on image mosaicing techniques | |
CN110033475B (zh) | 一种高分辨率纹理生成的航拍图运动物体检测与消除方法 | |
Zitnick et al. | Consistent segmentation for optical flow estimation | |
Lhuillier et al. | Image interpolation by joint view triangulation | |
CN109462747B (zh) | 基于生成对抗网络的dibr系统空洞填充方法 | |
US20110229024A1 (en) | Devices and Methods for Processing Images Using Scale Space | |
WO2021169396A1 (zh) | 一种媒体内容植入方法以及相关装置 | |
Wang et al. | Simultaneous matting and compositing | |
CN112785534A (zh) | 一种动态场景下去鬼影多曝光图像融合方法 | |
Ye et al. | Depth super-resolution with deep edge-inference network and edge-guided depth filling | |
CN108377374A (zh) | 用于产生与图像相关的深度信息的方法和系统 | |
CN113744142B (zh) | 图像修复方法、电子设备及存储介质 | |
CN115298708A (zh) | 多视角神经人体渲染 | |
CN111105350B (zh) | 大视差场景下基于自身单应性变换的实时视频拼接方法 | |
CN112734914A (zh) | 一种增强现实视觉的图像立体重建方法及装置 | |
Xue et al. | Multi-frame stereo matching with edges, planes, and superpixels | |
Yu et al. | Split-attention multiframe alignment network for image restoration | |
KR101744141B1 (ko) | 오브젝트 리타게팅에 의한 사진 재구성 방법 및 그 장치 | |
CN111523494A (zh) | 一种人体图像检测方法 | |
Chen et al. | Kinect depth recovery using a color-guided, region-adaptive, and depth-selective framework | |
Pan et al. | Depth map completion by jointly exploiting blurry color images and sparse depth maps | |
CN115063562A (zh) | 一种基于多视图三维重建的虚实融合增强现实呈现方法 | |
CN110580696A (zh) | 一种细节保持的多曝光图像快速融合方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |