CN106204458B - 一种基于运动几何量约束的视频稳像裁剪控制方法 - Google Patents
一种基于运动几何量约束的视频稳像裁剪控制方法 Download PDFInfo
- Publication number
- CN106204458B CN106204458B CN201610545693.1A CN201610545693A CN106204458B CN 106204458 B CN106204458 B CN 106204458B CN 201610545693 A CN201610545693 A CN 201610545693A CN 106204458 B CN106204458 B CN 106204458B
- Authority
- CN
- China
- Prior art keywords
- point
- video frame
- coordinate
- abscissa
- rotation angle
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000006641 stabilisation Effects 0.000 title claims abstract description 27
- 238000011105 stabilization Methods 0.000 title claims abstract description 27
- 238000007781 pre-processing Methods 0.000 claims abstract description 19
- 238000004364 calculation method Methods 0.000 claims abstract description 4
- 230000009466 transformation Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/60—Rotation of whole images or parts thereof
- G06T3/604—Rotation of whole images or parts thereof using coordinate rotation digital computer [CORDIC] devices
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/22—Cropping
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
一种基于运动几何量约束的视频稳像裁剪控制方法所依托的***包括预处理模块、判断模块、计算模块以及输出模块;一种基于运动几何量约束的视频稳像裁剪控制方法,包括:1预处理模块计算出视频帧和裁剪窗口顶点坐标;2判断模块判断视频帧经旋转平移变化后是否包含裁剪窗口,并根据结果判断继续执行步骤三还是跳至7.1;3最大平移向量计算单元计算最大平移向量;4计算模块平移裁剪窗口;5最优旋转角度计算单元分别计算视频帧的四条边能旋转的最大角度;6最优旋转角度计算单元计算视频帧能旋转的最优旋转角度;7.1输出布尔值TRUE,结束本方法;7.2输出布尔值FALSE,输出3的最大平移向量和6的最优旋转角度,结束本方法。
Description
技术领域
本发明涉及一种视频稳像裁剪控制方法,尤其涉及一种基于运动几何量约束的视频稳像裁剪控制方法,属于视频处理领域。
背景技术
随着移动设备上摄像头的普及,视频拍摄变得越来越容易。但是普通用户在运动环境下拍摄的视频通常存在一定的画面抖动现象,影响了视频内容的正常观看。视频稳像技术能够有效增强视频帧序列的稳定性,已成为消除画面抖动的一种重要手段。视频稳像过程中往往需要对视频帧作旋转、平移等几何变换,以使得变换后的帧序列在播放时满足一定的视觉稳定性。但这种变换会造成视频内容缺失,使得某些帧在变换后有一部分画面不能落在视频窗口范围内,从而造成视频内容缺失。如何控制视频稳像过程中的裁剪区域大小,成为影响视频稳像效果的重要因素。
目前,关于视频稳像中的裁剪控制方法主要包括两种:最大内接矩形法和权重调节法。最大内接矩形法以Grundmann等人于2011年发表在会议CVPR上的工作为代表(CVPR,Auto-directed video stabilization with robust L1optimal camera paths)。该方法首先计算所有帧在变换后的重叠区域,然后寻找最大的内接矩形作为裁剪窗口,最后通过等比例缩放以满足用户指定的裁剪区域大小。这种方法虽然计算简单,但当最大内接矩形小于用户指定大小时,等比例缩放会降低裁剪后的视频分辨率。权重调节法以Liu等人于2013年发表在期刊ACM Transactions on Graphics上的工作为代表(ACM Transactionson Graphics,2013,32(4).Bundled camera paths for video stabilization.)。该方法在求解几何变换时增加一项裁剪窗口顶点位置约束,并设置相应的权重值来控制稳像后裁剪区域的实际大小。这种方法虽然能够使稳像后的视频满足用户指定的裁剪区域大小,但计算速度比较慢。
上述已有的最大内接矩形法和权重调节法虽然能使稳像后的视频满足用户指定裁剪大小,但由于在视频抖动比较剧烈的情况下,视频稳像过程中平移向量、旋转角度等几何量造成的偏移较大,导致最大内接矩形普遍较小以及能量函数求解复杂,所以,依然存在稳像后视频帧分辨率较低、计算速度慢等问题。本发明的目的旨在克服指定裁剪大小的视频帧分辨率和提高计算效率等技术问题,提出一种基于运动几何量约束的视频稳像裁剪控制方法。
发明内容
本发明的目的是针对现有视频稳像裁剪控制方法存在裁剪后分辨率降低、计算效率低的不足,提出一种基于运动几何量约束的视频稳像裁剪控制方法。
本发明技术方案的思想是判断旋转和平移变换后的视频帧能否包含视频窗口:如果可以,进行旋转平移变换;否则,在满足最大平移向量在原平移向量方向上尽可能与原平移向量的大小接近的基础上,满足最优旋转角度尽可能接近旋转角度;
一种基于运动几何量约束的视频稳像裁剪控制方法所依托的***,简称本***,包括预处理模块、判断模块、计算模块以及输出模块;
其中,预处理模块的输出为计算模块的输入;计算模块包含最大平移向量计算单元和最优旋转角度计算单元;本***各模块的功能如下:
预处理模块:将视频帧和裁剪窗口的位置关系形式化,具体为:将视频帧和裁剪窗口的位置关系形式化成坐标关系;
判断模块:判断旋转角度和原平移向量是否满足视频帧旋转和平移后仍包含裁剪窗口的条件,具体为以预处理模块得到的数据作为输入,对裁剪窗口进行选择平移变换,最后判断视频帧是否包含变换后的裁剪窗口,判断模块的输出结果决定是否需要计算模块;
计算模块:计算出最大平移向量和最优旋转角度;
输出模块:输出布尔值;
本***各模块的连接关系如下:
预处理模块与判断模块相连;预处理模块与计算模块相连;判断模块与计算模块相连;判断模块与输出模块相连;计算模块与输出模块相连;
一种基于运动几何量约束的视频稳像裁剪控制方法,简称本方法,具体步骤如下:
步骤一、预处理模块计算出视频帧和裁剪窗口顶点坐标,具体为:
步骤1.1将裁剪百分比、视频帧的长和宽、旋转中心、原平移向量以及旋转角度输入预处理模块;
其中,原平移向量记为V,其坐标记为(xv,yv),xv为V的横坐标,yv为V的纵坐标;旋转角度,记为α;本***中所有向量所在的坐标系为图像坐标系;
裁剪百分比,记为r,视频帧的长,记为w,视频帧的宽,记为h;
步骤1.2预处理模块把视频帧和裁剪窗口形式化为两个中心重合的相似矩形;
步骤1.3根据裁剪百分比计算出视频帧和裁剪窗口之间的横向边距和纵向边距;
其中,横向边距,记为dx,纵向边距,记为dy,二者通过以下公式(1)计算得出:
步骤1.4分别给视频帧和裁剪窗口的顶点赋值;
其中,所述视频帧具有4个顶点,此4个顶点坐标从左上角按逆时针顺序分别为:A(0,0)、B(0,h)、C(w,h)和D(w,0);裁剪窗口也具有4个顶点,此4个顶点坐标从左上角按逆时针顺序分别为:A'(dx,dy)、B'(dx,h-dy)、C'(w-dx,h-dy)和D'(w-dx,dy);
其中,所述的视频帧顶点A和D组成视频帧的AD边;顶点C和D组成视频帧的DC边;顶点C和B组成视频帧的CB边;视频帧顶点B和A组成视频帧的BA边;
记为裁剪窗口顶点的横坐标,为裁剪窗口顶点的纵坐标;
其中,i的变化范围是1到4,且:
步骤二、判断模块判断视频帧经旋转平移变化后是否包含裁剪窗口,并根据结果判断继续执行步骤三还是跳至7.1,具体为:
步骤2.1判断模块将裁剪窗口绕旋转中心反向旋转与步骤1.1中旋转角相同的角度;
其中,反向旋转的角度为-α;所述的旋转中心,记为P,其坐标记为(x,y),x为横坐标,y为纵坐标;
旋转后的裁剪窗口顶点的横坐标和纵坐标通过如下公式(2)计算得到:
其中,旋转后的裁剪窗口顶点横坐标记为纵坐标记为sin为正弦运算;cos为余弦运算;*为数值乘法;
步骤2.2将原平移向量反向旋转步骤1.1中旋转角度相同的角度,得到对应的平移向量;
其中,将原平移向量反向旋转的角度为-α;
记原平移向量反方向旋转后的向量为V',其坐标为(x'v,y'v),x'v是横坐标;y'v是纵坐标,向量V'的坐标通过如下公式(3)计算得到:
步骤2.3将步骤2.1输出的旋转后裁剪窗口顶点横坐标和纵坐标分别减去步骤2.2输出的对原平移向量进行旋转后的横坐标和纵坐标,得出裁剪窗口旋转平移后顶点坐标具体通过如下公式(4)计算得出;
步骤2.4将步骤2.1和步骤2.2的输出带入步骤2.3的输出,得到裁剪窗口旋转平移后顶点坐标,具体为公式(5):
其中,i的范围为1到4;
步骤2.5判断步骤2.4输出的裁剪窗口旋转平移后顶点坐标是否落在视频帧内,然后做相应操作,具体为:
2.51若满足和即8个坐标值均落在视频帧内,则说明步骤1.1中的旋转角度以及原平移向量V满足视频帧旋转和平移后仍包含裁剪窗口的条件,跳至7.1;
2.52若不能同时满足和即8个坐标值未完全落在视频帧内,跳至步骤三;
步骤三、最大平移向量计算单元计算最大平移向量,具体为:
判断横向边距和纵向边距是否大于原平移向量绝对值,并进行相关操作,包括如下内容:
3.1若横向边距和纵向边距均大于原平移向量绝对值,即同时满足dx>|xv|和dy>|yv|,则不更新原平移向量的横坐标及纵坐标,原平移向量的横坐标和纵坐标即为最大平移向量的横坐标及纵坐标,跳至步骤四;
3.2若横向边距和纵向边距不同时大于原平移向量绝对值,即不同时满足dx>|xv|和dy>|yv|,则进行如下操作:
步骤3.21根据如下公式(6)计算出X轴方向和Y轴方向的最大平移比例:
其中,X轴方向和Y轴方向的最大平移比例分别记为Rx和Ry;
步骤3.22根据Rx和Ry的大小关系,计算并更新原平移向量的横坐标及纵坐标,也称为最大平移向量,具体分为如下3种情况:
3.221如果Rx<Ry且dx<|xv|,则最大平移向量的横坐标及纵坐标为如下公式(7)和(8)所示:
yv=Rx*yv (8)
3.222如果Rx≥Ry且dy<|yv|,则最大平移向量的横坐标及纵坐标为如下公式(9)和(10)所示:
xv=Ry*xv (9)
3.223如果不满足“Rx<Ry且dx<|xv|”和“Rx≥Ry且dy<|yv|”,则不更新原平移向量的横坐标及纵坐标,原平移向量的横坐标和纵坐标即为最大平移向量的横坐标及纵坐标,跳至步骤四;
步骤四、计算模块平移裁剪窗口,具体为:
将裁剪窗口顶点坐标减去据步骤3.22输出的最大平移向量,得到裁剪窗口4个顶点平移后的坐标,如下公式(11)所示:
其中,平移后的裁剪窗口顶点横坐标记为纵坐标记为i的范围为1到4;为更新后裁剪窗口顶点的A'坐标,为更新后裁剪窗口顶点B'的坐标,为更新后裁剪窗口顶点C'的坐标,为更新后裁剪窗口顶点D'的坐标;
步骤五、最优旋转角度计算单元分别计算视频帧的四条边能旋转的最大角度,具体为:
步骤5.1最优旋转角度计算单元给点D、点A'、点D'以及点P赋新的坐标值,具体如下:
对应于步骤1.4的视频帧的4条边,对应的点D、点A'、点D'以及点P赋的坐标值分别为:
(1)对于AD边,点D、点A'、点D'以及点P分别被赋坐标值为:D(w,0)、以及P(x,y);
(2)对于DC边,点D、点A'、点D'以及点P分别被赋坐标值为:D(h,0)、以及P(y,w-x);
(3)对于CB边,点D、点A'、点D'以及点P分别被赋坐标值为:D(w,0)、以及P(w-x,h-y);
(4)对于BA边,点D、点A'、点D'以及点P分别被赋坐标值为:D(h,0)、以及P(h-y,x);
步骤5.2步骤5.1对应视频帧的AD边、DC边、CB边和BA边得到的点D、点A'、点D'以及点P的坐标作为此步骤的输入,根据旋转角度与0的关系,分别计算对应于此4条边的最大旋转角度,具体如下:
5.2A若α<0且旋转中心P横坐标小于A'的横坐标,,则视频帧的边的最大旋转角度为180°;
5.2B若同时满足α<0、旋转中心P横坐标大于等于A'的横坐标且旋转中心P到边AD的距离大于等于旋转中心P到点A'的距离;则视频帧的边最大旋转角度为180°;
5.2C若同时满足α<0、旋转中心P横坐标大于等于A'的横坐标且旋转中心P到边AD的距离小于旋转中心P到点A'的距离;则:
AD旋转轨迹上存在两个切点,点A'分别与这两点的连线为AD旋转轨迹的切线,求这两个切点,并根据切点坐标求出最大旋转角,具体为:
求AD旋转轨迹上两个切点,可以表示为如下式(12):
其中,(m-xP)2+(n-yP)2=yP 2为边AD旋转轨迹,此处记步骤5.1输出A'点坐标为(x1,y1),记步骤5.1输出P点坐标为(xP,yP),所得的切点坐标有两个,即:m={m1,m2}和n={n1,n2},两个坐标值分别记为:(m1,n1)和(m2,n2),其中,n1和n2两者间较小的值对应的坐标值为所需要的切点坐标,记此点为M,∠MA'D'即为最大旋转角,此最大旋转角度∠MA'D'的度数,如下式(13)所示:
∠MA'D'=arccos(A'M·A'D/(|A'M|*|A'D'|)) (13)
其中,arccos为反余弦运算,A'M·A'D'为向量A'M和向量A'D'的数量积,·为点积运算符,|A'M|和|A'D'|为向量A'M和向量A'D'的模,*为数值乘法;
5.2D若旋转角度α≥0且旋转中心P横坐标大于D'横坐标,则视频帧的边的最大旋转角度为180°;
5.2E若同时满足旋转角度α≥0、旋转中心P横坐标小于等于D'的横坐标且旋转中心P到边AD的距离大于等于旋转中心P到点D'的距离,则最大旋转角度为180°;
5.2F若同时满足旋转角度α≥0、旋转中心P横坐标小于等于D'的横坐标且旋转中心P到边AD的距离小于旋转中心P到点D'的距离,则:
AD旋转轨迹上存在两个切点,点D'分别与这两点的连线为AD旋转轨迹的切线,求这两个切点,并根据切点坐标求出最大旋转角,具体为:
求AD旋转轨迹上两个切点,可以表示为如下式(14):
其中,(m-xP)2+(n-yP)2=yP 2为边AD旋转轨迹,此处记步骤5.1输出的点D'坐标为(x4,y4),所得的切点坐标有两个,即:m={mA,mB}和n={nA,nB},两个坐标值分别记为:(mA,nA)和(mB,nB),其中,nA和nB两者间较小的值对应的坐标值为所需要的切点坐标,记此点为M',∠M'D'A'为所求最大旋转角,此最大旋转角度∠M'D'A'的度数,如下式(15)所示:
∠M'D'A'=arccos(D'M'·D'A’/(|D'M'|*|D'A'|)) (15)
其中,D'M'·D'A'为向量D'M'和向量D'A'的数量积,|D'M'|和|D'A'|为向量D'M'和向量D'A'的模;
步骤六、最优旋转角度计算单元计算视频帧能旋转的最优旋转角度,具体为:
6.1A旋转角度α<0时,取步骤五输出的视频帧4条边的最大旋转角度及α中的最大值作为视频帧能旋转的最优旋转角度,跳至7.2;
6.1B旋转角度α≥0时,取步骤五输出的视频帧4条边的最大旋转角度及α中的最小值作为视频帧能旋转的最优旋转角度,跳至7.2;
步骤七、根据步骤三及步骤六的计算结果,输出布尔值,结束本方法,具体为:
7.1输出布尔值TRUE,结束本方法;
7.2输出布尔值FALSE,输出步骤三的最大平移向量和步骤六的最优旋转角度,结束本方法;
至此,从步骤一到步骤七,完成了一种基于运动几何量约束的视频稳像裁剪控制方法。
有益效果
一种基于运动几何量约束的视频稳像裁剪控制方法,与其他视频稳像裁剪控制方法相比,具有如下有益效果:
1.本发明不需要缩放即可满足用户指定的裁剪大小;
2.本发明所提方法整个过程只涉及到平移向量和旋转角度的计算,因此本发明技术的计算速度非常快。
附图说明
图1为本发明“一种基于运动几何量约束的视频稳像裁剪控制方法”及实施例1的流程图;
图2为实施例1中一帧视频帧和裁剪窗口形式化为矩形的关系示意图;图3为实施例1中裁剪窗口经过旋转和平移后与本帧视频帧的位置关系图;
图4为实施例1中裁剪窗口根据求出的最大平移向量移动后与本帧视频帧的位置关系图;
图5为实施例1中求视频帧AD边的最大旋转角度时的说明图,其中,⊙P为AD边绕点P旋转的旋转轨迹,点M'为切点,∠M'D'A'为视频帧AD边的最大旋转角度;
图6为实施例1中求视频帧DC边的最大旋转角度时的说明图,其中,⊙P为DC边绕点P旋转的旋转轨迹;
图7为实施例1中求视频帧CB边的最大旋转角度时的说明图,其中,⊙P为CB边绕点P旋转的旋转轨迹;
图8为实施例1中求视频帧BA边的最大旋转角度时的说明图;
图9为实施例1使用本发明“一种基于运动几何量约束的视频稳像裁剪控制方法”后得到的最终效果图。
具体实施方式
下面结合附图对本发明所述方法及实施方式做详细说明。
实施例1
本实施例阐述了对一帧视频帧进行裁剪控制的流程;
图1为本方法的算法流程图以及本实施例的流程图,从图中可以看出,本方法包含如下步骤:
步骤1)输入裁剪百分比、视频帧的长、视频帧的宽、旋转中心、原平移向量和旋转角度;
具体到本实施例,输入的裁剪百分比为60%、视频帧的长为500、视频帧的宽为200、旋转中心为P(120,20)、原平移向量为V(20,5),旋转角度为α=30°;
步骤2)计算横向边距和纵向边距并初始化视频帧4个顶点坐标和裁剪窗口4个顶点坐标;
具体为:根据步骤1.3的公式(1)计算出横向边距dx和纵向边距dy;所计算出的横向边距和纵向边距分别为dx=100和dy=40;再根据步骤1.4给视频帧4个顶点从左上角开始逆时针顺序赋值,给裁剪窗口4个顶点从左上角开始逆时针顺序赋值;
具体到本实施例,给视频帧4个顶点赋值为:A(0,0)、B(0,200)、C(500,200)和D(500,0);裁剪窗口4个顶点赋值为:A'(100,40)、B'(100,160)、C'(400,160)和D'(400,40);步骤2)得到的结果如图2所示:图2中,X Axis表示横坐标,其单位为像素;Y Axis表示纵坐标,其单位为像素;实线矩形代表一视频帧,虚线矩形代表裁剪窗口,dx和dy分别为横向边距和纵向边距;
步骤3)计算裁剪窗口旋转和平移后的4个顶点坐标;
具体到本实施例,根据步骤2.4的公式(5)计算出经过旋转和平移后的裁剪窗口4个顶点的坐标,经过旋转和平移后的裁剪窗口4顶点的坐标分别记为:A”(92.86,52.99)、B”(152.9,156.9)、C”(412.7,6.913)和D”(352.7,-97.01);
经过步骤3)旋转和平移变换后的裁剪窗口与视频帧的位置关系如图3;
图3中,点P为旋转中心,虚线矩形为经过旋转变化后的裁剪窗口;
步骤4)判断视频帧是否包含旋转和平移后的裁剪窗口,并进行相应操作,具体为:
4).1若是,对应图1中“视频帧是否包含旋转和平移后的裁剪窗口”输出的是,跳至步骤9);
4).2若否,对应图1中“视频帧是否包含旋转和平移后的裁剪窗口”输出的否,跳至步骤5);
具体到本实施例,根据步骤2.5判断视频帧是否包含旋转和平移后的裁剪窗口,本实施例满足步骤2.5中的2.52,即视频帧不包含旋转和平移后的裁剪窗口,跳至步骤5);
步骤5)计算最大平移向量;
具体与步骤三相同,具体到本实施例,判断dx与|xv|的大小关系,dx=100,|xv|=20满足dx>|xv|的条件,判断dy与|yv|的大小关系,dy=40,|yv|=5满足dy>|yv|的条件,根据3.1,不需更新原平移向量V(20,5),原平移向量的横坐标和纵坐标即为最大平移向量的横坐标及纵坐标,跳至步骤6);
步骤6)平移裁剪窗口;
具体与步骤四相同,具体到本实施例,使用步骤2).2输出的裁剪窗口4个顶点的横坐标和纵坐标分别减去步骤5)输出的最大平移向量的横坐标和纵坐标,得到平移后的裁剪窗口,平移后的裁剪窗口4个顶点的坐标分别为:A'(80,35)、B'(80,155)、C'(380,155)和D'(380,35),裁剪窗口与视频帧的位置关系如图4;
图4中,虚线矩形为平移后的裁剪窗口;
步骤7)计算最优旋转角度;
具体与步骤五和步骤六一致,在本实施例中,具体操作如下:
步骤7).1根据前述发明内容步骤5.1,对应视频帧的4条边,对应的给点D、点A'、点D'以及点P赋的坐标值分别为:
(一)对于AD边,点D、点A'、点D'以及点P分别被赋坐标值为:D(500,0)、A'(100,40)、D'(400,40)以及P(120,20);
(二)对于DC边,点D、点A'、点D'以及点P分别被赋坐标值为:D(200,0)、A'(35,120)、D'(155,120)以及P(20,380);
(三)对于CB边,点D、点A'、点D'以及点P分别被赋坐标值为:D(500,0)、A'(120,45)、D'(420,45)以及P(380,180);
(四)对于BA边,点D、点A'、点D'以及点P分别被赋坐标值为:D(200,0)、A'(45,80)、D'(165,80)以及P(180,120);
步骤7).2根据前述发明内容步骤5.2分别计算对应于此4条边的最大旋转角度,具体操作如下:
步骤7).2.1计算AD边的最大旋转角度,根据5.2F中的公式(14)求得两个切点坐标,其中M'(122.682,0.181)为纵坐标较小的切点,∠M'D'A'为AD边的最大旋转角度,根据5.2F中的公式(15)计算得到∠M'D'A'=7.706°,具体各点位置关系如图5;
图5中,点D、点A'、点D'以及点P为在步骤7).1的(一)中被赋值的点,
⊙P为AD边的旋转轨迹,点M'为所求切点,∠M'D'A'为AD边的最大旋转角度;
步骤7).2.2计算DC边的最大旋转角度,根据前述发明内容5.2E,视频帧DC边的最大旋角度为180°,具体各点位置关系如图6;
图6中,点D、点A'、点D'以及点P为在步骤7).1的(二)中被赋值的点,⊙P为DC边的旋转轨迹;
步骤7).2.3计算CB边的最大旋转角度,根据前述发明内容5.2E,视频帧CB边的最大旋角度为180°,具体各点位置关系如图7;
图7中,点D、点A'、点D'以及点P为在步骤7).1的(三)中被赋值的点,⊙P为DC边的旋转轨迹;
步骤7).2.4计算BA边的最大旋转角度,根据前述发明内容5.2D,视频帧BA边的最大旋角度为180°,具体各点位置关系如图8;
图8中,点D、点A'、点D'以及点P为在步骤7).1的(四)中被赋值的点;
步骤7).3根据前述发明内容步骤六,比较步骤7).2输出的四个最大旋转角度和步骤1)的旋转角度,五个角度分别是7.706°、180°、180°、180°和30°,并取最小值为最优旋转角度,本实施例中的最优旋转角度为7.706°,跳至步骤8);
步骤8)输出布尔值FALSE、最大平移向量和最优旋转角度;
具体到本实例,输出布尔值FALSE、最大平移向量V(20,5)和最优旋转角度αopt=7.706°,结束本方法;
步骤9)输出布尔值TRUE,结束本方法;
至此本实施例步骤1)到步骤9)全部完成,最后视频帧通过步骤8)输出的结果进行旋转和平移变换得到的效果如图9所示:
图9中,实线矩形为依据步骤8)输出的最大平移向量和最优旋转角度,进行旋转和平移变化后的一帧视频帧,虚线矩形为步骤2)输出的裁剪窗口。
由图9可以看出,经过旋转和平移变换后的视频帧仍能包含裁剪窗口,证明了本发明能够直接控制视频稳像后的分辨率,输出指定帧尺寸的稳定视频。
在实施例中引入细节的目的不是限制权利要求书的范围,而是帮助理解本发明所述方法。本领域的技术人员应理解:在不脱离本发明及其所附权利要求的精神和范围内,对最佳实施例步骤的各种修改、变化或替换都是可能的。因此,本发明不应局限于最佳实施例及附图所公开的内容。
Claims (1)
1.一种基于运动几何量约束的视频稳像裁剪控制方法,其特征在于:所依托的***包括预处理模块、判断模块、计算模块以及输出模块;
其中,预处理模块的输出为计算模块的输入;计算模块包含最大平移向量计算单元和最优旋转角度计算单元;本***各模块的功能如下:
预处理模块:将视频帧和裁剪窗口的位置关系形式化,具体为:将视频帧和裁剪窗口的位置关系形式化成坐标关系;
判断模块:判断旋转角度和原平移向量是否满足视频帧旋转和平移后仍包含裁剪窗口的条件,具体为以预处理模块得到的数据作为输入,对裁剪窗口进行选择平移变换,最后判断视频帧是否包含变换后的裁剪窗口,判断模块的输出结果决定是否需要计算模块;
计算模块:计算出最大平移向量和最优旋转角度;
输出模块:输出布尔值;
本***各模块的连接关系如下:
预处理模块与判断模块相连;预处理模块与计算模块相连;判断模块与计算模块相连;判断模块与输出模块相连;计算模块与输出模块相连;所述视频稳像裁剪控制方法,具体步骤如下:
步骤一、预处理模块计算出视频帧和裁剪窗口顶点坐标,具体为:
步骤1.1将裁剪百分比、视频帧的长和宽、旋转中心、原平移向量以及旋转角度输入预处理模块;
其中,原平移向量记为V,其坐标记为(xv,yv),xv为V的横坐标,yv为V的纵坐标;旋转角度,记为α;本***中所有向量所在的坐标系为图像坐标系;
裁剪百分比,记为r,视频帧的长,记为w,视频帧的宽,记为h;
步骤1.2预处理模块把视频帧和裁剪窗口形式化为两个中心重合的相似矩形;
步骤1.3根据裁剪百分比计算出视频帧和裁剪窗口之间的横向边距和纵向边距;
其中,横向边距,记为dx,纵向边距,记为dy,二者通过以下公式(1)计算得出:
步骤1.4分别给视频帧和裁剪窗口的顶点赋值;
其中,所述视频帧具有4个顶点,此4个顶点坐标从左上角按逆时针顺序分别为:A(0,0)、B(0,h)、C(w,h)和D(w,0);裁剪窗口也具有4个顶点,此4个顶点坐标从左上角按逆时针顺序分别为:A'(dx,dy)、B'(dx,h-dy)、C'(w-dx,h-dy)和D'(w-dx,dy);
其中,所述的视频帧顶点A和D组成视频帧的AD边;顶点C和D组成视频帧的DC边;顶点C和B组成视频帧的CB边;视频帧顶点B和A组成视频帧的BA边;
记为裁剪窗口顶点的横坐标,为裁剪窗口顶点的纵坐标;
其中,i的变化范围是1到4,且:
步骤二、判断模块判断视频帧经旋转平移变化后是否包含裁剪窗口,并根据结果判断继续执行步骤三还是跳至7.1,具体为:
具体为:
步骤2.1判断模块将裁剪窗口绕旋转中心反向旋转与步骤1.1中旋转角相同的角度;
其中,反向旋转的角度为-α;所述的旋转中心,记为P,其坐标记为(x,y),x为横坐标,y为纵坐标;
旋转后的裁剪窗口顶点的横坐标和纵坐标通过如下公式(2)计算得到:
其中,旋转后的裁剪窗口顶点横坐标记为纵坐标记为sin为正弦运算;cos为余弦运算;*为数值乘法;
步骤2.2将原平移向量反向旋转步骤1.1中旋转角度相同的角度,得到对应的平移向量;
其中,将原平移向量反向旋转的角度为-α;
记原平移向量反方向旋转后的向量为V',其坐标为(x'v,y'v),x'v是横坐标;y'v是纵坐标,向量V'的坐标通过如下公式(3)计算得到:
步骤2.3将步骤2.1输出的旋转后裁剪窗口顶点横坐标和纵坐标分别减去步骤2.2输出的对原平移向量进行旋转后的横坐标和纵坐标,得出裁剪窗口旋转平移后顶点坐标具体通过如下公式(4)计算得出;
步骤2.4将步骤2.1和步骤2.2的输出带入步骤2.3的输出,得到裁剪窗口旋转平移后顶点坐标,具体为公式(5):
其中,i的范围为1到4;
步骤2.5判断步骤2.4输出的裁剪窗口旋转平移后顶点坐标是否落在视频帧内,然后做相应操作,具体为:
2.51若满足和即8个坐标值均落在视频帧内,则说明步骤1.1中的旋转角度以及原平移向量V满足视频帧旋转和平移后仍包含裁剪窗口的条件,跳至7.1;
2.52若不能同时满足和即8个坐标值未完全落在视频帧内,跳至步骤三;
步骤三、最大平移向量计算单元计算最大平移向量,具体为:
判断横向边距和纵向边距是否大于原平移向量绝对值,并进行相关操作,包括如下内容:
3.1若横向边距和纵向边距均大于原平移向量绝对值,即同时满足dx>|xv|和dy>|yv|,则不更新原平移向量的横坐标及纵坐标,原平移向量的横坐标和纵坐标即为最大平移向量的横坐标及纵坐标,跳至步骤四;
3.2若横向边距和纵向边距不同时大于原平移向量绝对值,即不同时满足dx>|xv|和dy>|yv|,则进行如下操作:
步骤3.21根据如下公式(6)计算出X轴方向和Y轴方向的最大平移比例:
其中,X轴方向和Y轴方向的最大平移比例分别记为Rx和Ry;
步骤3.22根据Rx和Ry的大小关系,计算并更新原平移向量的横坐标及纵坐标,也称为最大平移向量,具体分为如下3种情况:
3.221如果Rx<Ry且dx<|xv|,则最大平移向量的横坐标及纵坐标为如下公式(7)和(8)所示:
yv=Rx*yv (8)
3.222如果Rx≥Ry且dy<|yv|,则最大平移向量的横坐标及纵坐标为如下公式(9)和(10)所示:
xv=Ry*xv (9)
3.223如果不满足“Rx<Ry且dx<|xv|”和“Rx≥Ry且dy<|yv|”,则不更新原平移向量的横坐标及纵坐标,原平移向量的横坐标和纵坐标即为最大平移向量的横坐标及纵坐标,跳至步骤四;
步骤四、计算模块平移裁剪窗口,具体为:
将裁剪窗口顶点坐标减去据步骤3.22输出的最大平移向量,得到裁剪窗口4个顶点平移后的坐标,如下公式(11)所示:
其中,平移后的裁剪窗口顶点横坐标记为纵坐标记为i的范围为1到4;为更新后裁剪窗口顶点的A'坐标,为更新后裁剪窗口顶点B'的坐标,为更新后裁剪窗口顶点C'的坐标,为更新后裁剪窗口顶点D'的坐标;
步骤五、最优旋转角度计算单元分别计算视频帧的四条边能旋转的最大角度,具体为:
步骤5.1最优旋转角度计算单元给点D、点A'、点D'以及点P赋新的坐标值,具体如下:
对应于步骤1.4的视频帧的4条边,对应的点D、点A'、点D'以及点P赋的坐标值分别为:
(1)对于AD边,点D、点A'、点D'以及点P分别被赋坐标值为:D(w,0)、 以及P(x,y);
(2)对于DC边,点D、点A'、点D'以及点P分别被赋坐标值为:D(h,0)、 以及P(y,w-x);
(3)对于CB边,点D、点A'、点D'以及点P分别被赋坐标值为:D(w,0)、 以及P(w-x,h-y);
(4)对于BA边,点D、点A'、点D'以及点P分别被赋坐标值为:D(h,0)、 以及P(h-y,x);
步骤5.2步骤5.1对应视频帧的AD边、DC边、CB边和BA边得到的点D、点A'、点D'以及点P的坐标作为此步骤的输入,根据旋转角度与0的关系,分别计算对应于此4条边的最大旋转角度,具体如下:
5.2A若α<0且旋转中心P横坐标小于A'的横坐标,,则视频帧的边的最大旋转角度为180°;
5.2B若同时满足α<0、旋转中心P横坐标大于等于A'的横坐标且旋转中心P到边AD的距离大于等于旋转中心P到点A'的距离;则视频帧的边最大旋转角度为180°;
5.2C若同时满足α<0、旋转中心P横坐标大于等于A'的横坐标且旋转中心P到边AD的距离小于旋转中心P到点A'的距离;则:
AD旋转轨迹上存在两个切点,点A'分别与这两点的连线为AD旋转轨迹的切线,求这两个切点,并根据切点坐标求出最大旋转角,具体为:
求AD旋转轨迹上两个切点,可以表示为如下式(12):
其中,(m-xP)2+(n-yP)2=yP 2为边AD旋转轨迹,此处记步骤5.1输出A'点坐标为(x1,y1),记步骤5.1输出P点坐标为(xP,yP),所得的切点坐标有两个,即:m={m1,m2}和n={n1,n2},两个坐标值分别记为:(m1,n1)和(m2,n2),其中,n1和n2两者间较小的值对应的坐标值为所需要的切点坐标,记此点为M,∠MA'D'即为最大旋转角,此最大旋转角度∠MA'D'的度数,如下式(13)所示:
∠MA'D'=arccos(A'M·A'D'/(|A'M|*|A'D'|)) (13)
其中,arccos为反余弦运算,A'M·A'D'为向量A'M和向量A'D'的数量积,·为点积运算符,|A'M|和|A'D'|为向量A'M和向量A'D'的模,*为数值乘法;
5.2D若旋转角度α≥0且旋转中心P横坐标大于D'横坐标,则视频帧的边的最大旋转角度为180°;
5.2E若同时满足旋转角度α≥0、旋转中心P横坐标小于等于D'的横坐标且旋转中心P到边AD的距离大于等于旋转中心P到点D'的距离,则最大旋转角度为180°;
5.2F若同时满足旋转角度α≥0、旋转中心P横坐标小于等于D'的横坐标且旋转中心P到边AD的距离小于旋转中心P到点D'的距离,则:
AD旋转轨迹上存在两个切点,点D'分别与这两点的连线为AD旋转轨迹的切线,求这两个切点,并根据切点坐标求出最大旋转角,具体为:
求AD旋转轨迹上两个切点,可以表示为如下式(14):
其中,(m-xP)2+(n-yP)2=yP 2为边AD旋转轨迹,此处记步骤5.1输出的点D'坐标为(x4,y4),所得的切点坐标有两个,即:m={mA,mB}和n={nA,nB},两个坐标值分别记为:(mA,nA)和(mB,nB),其中,nA和nB两者间较小的值对应的坐标值为所需要的切点坐标,记此点为M',∠M'D'A'为所求最大旋转角,此最大旋转角度∠M'D'A'的度数,如下式(15)所示:
∠M'D'A'=arccos(D'M'·D'A'/(|D'M'|*|D'A'|)) (15)
其中,D'M'·D'A'为向量D'M'和向量D'A'的数量积,|D'M'|和|D'A'|为向量D'M'和向量D'A'的模;
步骤六、最优旋转角度计算单元计算视频帧能旋转的最优旋转角度,具体为:
6.1A旋转角度α<0时,取步骤五输出的视频帧4条边的最大旋转角度及α中的最大值作为视频帧能旋转的最优旋转角度,跳至7.2;
6.1B旋转角度α≥0时,取步骤五输出的视频帧4条边的最大旋转角度及α中的最小值作为视频帧能旋转的最优旋转角度,跳至7.2;
步骤七、根据步骤三及步骤六的计算结果,输出布尔值,结束本方法,具体为:
7.1输出布尔值TRUE,结束本方法;
7.2输出布尔值FALSE,输出步骤三的最大平移向量和步骤六的最优旋转角度,结束本方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610545693.1A CN106204458B (zh) | 2016-07-12 | 2016-07-12 | 一种基于运动几何量约束的视频稳像裁剪控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610545693.1A CN106204458B (zh) | 2016-07-12 | 2016-07-12 | 一种基于运动几何量约束的视频稳像裁剪控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106204458A CN106204458A (zh) | 2016-12-07 |
CN106204458B true CN106204458B (zh) | 2019-04-23 |
Family
ID=57477426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610545693.1A Active CN106204458B (zh) | 2016-07-12 | 2016-07-12 | 一种基于运动几何量约束的视频稳像裁剪控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106204458B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066502B (zh) * | 2017-01-04 | 2019-12-31 | 合一网络技术(北京)有限公司 | 多媒体内容编辑方法及装置 |
CN108307118B (zh) * | 2018-02-10 | 2020-07-07 | 北京理工大学 | 一种基于惯导参数流形优化的低延时视频稳像方法 |
CN111405314B (zh) * | 2020-03-09 | 2021-06-15 | 腾讯科技(深圳)有限公司 | 一种信息处理方法、装置、设备及存储介质 |
CN114866695B (zh) * | 2022-04-27 | 2024-02-20 | 影石创新科技股份有限公司 | 视频的防抖处理方法、装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130128066A1 (en) * | 2011-04-08 | 2013-05-23 | Hailin Jin | Methods and Apparatus for Robust Video Stabilization |
CN103685950A (zh) * | 2013-12-06 | 2014-03-26 | 华为技术有限公司 | 一种视频图像防抖方法及装置 |
CN103810725A (zh) * | 2014-03-12 | 2014-05-21 | 北京理工大学 | 一种基于全局优化的视频稳定方法 |
CN103871022A (zh) * | 2012-12-12 | 2014-06-18 | 高德信息技术有限公司 | 一种图像裁剪方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6448218B2 (ja) * | 2014-05-12 | 2019-01-09 | キヤノン株式会社 | 撮像装置、その制御方法および情報処理システム |
-
2016
- 2016-07-12 CN CN201610545693.1A patent/CN106204458B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130128066A1 (en) * | 2011-04-08 | 2013-05-23 | Hailin Jin | Methods and Apparatus for Robust Video Stabilization |
CN103871022A (zh) * | 2012-12-12 | 2014-06-18 | 高德信息技术有限公司 | 一种图像裁剪方法和装置 |
CN103685950A (zh) * | 2013-12-06 | 2014-03-26 | 华为技术有限公司 | 一种视频图像防抖方法及装置 |
CN103810725A (zh) * | 2014-03-12 | 2014-05-21 | 北京理工大学 | 一种基于全局优化的视频稳定方法 |
Non-Patent Citations (2)
Title |
---|
Auto-directed video stabilization with robust l1 optimal camera paths;Grundmann M 等;《Computer Vision and Pattern Recognition (CVPR), 2011 IEEE Conference on. IEEE》;20111231;第225-232页 |
基于单应轨迹的视频实时稳像算法;董晶 等;《国防科技大学学报》;20140430;第36卷(第2期);第99-104页 |
Also Published As
Publication number | Publication date |
---|---|
CN106204458A (zh) | 2016-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106204458B (zh) | 一种基于运动几何量约束的视频稳像裁剪控制方法 | |
Martin et al. | Anti-aliasing and Continuity with Trapezoidal Shadow Maps. | |
CN110462555A (zh) | 在层子区域上选择性地应用重投影处理以优化后期重投影功率 | |
CN108492247A (zh) | 一种基于网格变形的眼妆贴图方法 | |
CN107403168A (zh) | 一种面部识别*** | |
CN110348496A (zh) | 一种人脸图像融合的方法及*** | |
CN104680522B (zh) | 基于智能手机前后摄像头同时工作的视觉定位方法 | |
JP3143558B2 (ja) | 画像表示方法および装置 | |
CN110264396A (zh) | 视频人脸替换方法、***及计算机可读存储介质 | |
Xu et al. | Region based five-axis tool path generation for freeform surface machining via image representation | |
CN104574266B (zh) | 基于轮廓线的图像变形技术 | |
CN106228590B (zh) | 一种图像中的人体姿态编辑方法 | |
CN108921817B (zh) | 一种针对皮肤病图像的数据增强方法 | |
CN103761765A (zh) | 基于映射边界优化的三维物体模型纹理映射算法 | |
CN107452028A (zh) | 一种确定目标图像位置信息的方法及装置 | |
CN108010119A (zh) | 阴影区域的调整方法、装置、存储介质、处理器及终端 | |
CN106814853A (zh) | 一种基于机器学习的眼控跟踪方法 | |
CN107895401A (zh) | 三维模型的数据简化***及其简化方法和应用 | |
CN109461197B (zh) | 一种基于球面uv和重投影的云实时绘制优化方法 | |
CN105976306B (zh) | 一种基于能耗-误差预算的实时绘制方法 | |
CN110060295A (zh) | 目标定位方法及装置、控制装置、跟随设备及存储介质 | |
CN110148082A (zh) | 一种移动端人脸图像面部实时变形调节方法 | |
CN109242761A (zh) | 一种图片显示方法及装置 | |
CN110473281A (zh) | 三维模型的描边处理方法、装置、处理器及终端 | |
CN106648360B (zh) | 一种3d球机的定位方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |