发明名称 一种快速高效的视频稳定方法
摘要 本发明提出了一种快速高效的视频稳定方法,通过一种改进的粒子滤波方法对运动模型的参数进行精确估计,对每个粒子进行操作时,采用了三对图像进行计算,因此每个粒子能够提高更多的信息,本发明方法在不需要太多数目粒子的条件下依然可以达到很好的计算精度。本发明提出的方法复杂度小,实时性强,能够有效的对视频进行稳定补偿,适用于车载、船载、机载等摄像系统。
申请公布号 CN106412381A 申请公布日期 2017.02.15
申请号 CN201610860335.X 申请日期 2016.09.28
申请人 湖南优象科技有限公司 发明人 罗文峰
分类号 H04N5/14(2006.01)I;H04N5/21(2006.01)I;H04N5/232(2006.01)I 主分类号 H04N5/14(2006.01)I
代理机构 北京中济纬天专利代理有限公司 11429 代理人 陈立新
主权项 一种快速高效的视频稳定方法,其特征在于,包括以下步骤:(1)对于视频序列图像{P<sub>n</sub>(x,y)|n=1,2,…N},采用下述运动模型表示视频序列图像中相邻两帧图像的映射关系:<maths num="0001"><math><![CDATA[<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>x</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msub></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><msub><mi>cos&theta;</mi><mi>n</mi></msub></mrow></mtd><mtd><mrow><mo>-</mo><msub><mi>sin&theta;</mi><mi>n</mi></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>sin&theta;</mi><mi>n</mi></msub></mrow></mtd><mtd><mrow><msub><mi>cos&theta;</mi><mi>n</mi></msub></mrow></mtd></mtr></mtable></mfenced><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>x</mi><mi>n</mi></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>n</mi></msub></mtd></mtr></mtable></mfenced><mo>+</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><msub><mi>Tx</mi><mi>n</mi></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>Ty</mi><mi>n</mi></msub></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001122890740000011.GIF" wi="1110" he="151" /></maths>其中(x<sub>n</sub>,y<sub>n</sub>)表示第n帧的一个像素点所在的位置坐标,(x<sub>n+1</sub>,y<sub>n+1</sub>)是其对应的第n+1帧的像素点所在的位置坐标,θ<sub>n</sub>是旋转角度,(Tx<sub>n</sub>,Ty<sub>n</sub>)为运动补偿参数;(2)求解相邻两帧图像的运动模型,也即求解公式(1)中的3个参数(θ<sub>n</sub>,Tx<sub>n</sub>,Ty<sub>n</sub>);2.1选取粒子数量M,每个粒子都有3个参数<img file="FDA0001122890740000012.GIF" wi="282" he="62" />和一个权重<img file="FDA0001122890740000013.GIF" wi="91" he="61" />其中标号m∈{1,…,M}表示粒子的序号;首先给每个粒子的权重赋初值,初始权重设为1/M;然后对粒子的三个参数进行初始化:<maths num="0002"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msubsup><mi>&theta;</mi><mi>n</mi><mi>m</mi></msubsup><mo>=</mo><msub><mi>&beta;&epsiv;</mi><mn>1</mn></msub></mrow></mtd></mtr><mtr><mtd><mrow><msubsup><mi>Tx</mi><mi>n</mi><mi>m</mi></msubsup><mo>=</mo><msub><mi>&alpha;&epsiv;</mi><mn>2</mn></msub></mrow></mtd></mtr><mtr><mtd><mrow><msubsup><mi>Ty</mi><mi>n</mi><mi>m</mi></msubsup><mo>=</mo><msub><mi>&alpha;&epsiv;</mi><mn>3</mn></msub></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001122890740000014.GIF" wi="557" he="231" /></maths>其中ε<sub>1</sub>,ε<sub>2</sub>,ε<sub>3</sub>均为[‑1,1]内的随机数,β是一个常数,表示单帧旋转角度范围,α是一个常数,表示单帧补偿范围;2.2对每个粒子进行观测,计算每个粒子所代表的可能状态和真实状态之间的相似度,根据相似度计算每个粒子的观测概率密度,然后根据该密度计算出新的权重;任取M个粒子中一个粒子<img file="FDA0001122890740000015.GIF" wi="315" he="62" />计算其相似度和权重的方法如下:2.2.1从第n帧图像里面随机选择3幅大小为50×50的子图像{H<sub>i</sub>(x,y)|i=1,2,3},然后计算每个子图像{H<sub>i</sub>(x,y)|i=1,2,3}在第n+1帧对应的子图像,记为{Q<sub>i</sub>(x,y)|i=1,2,3};2.2.2分别计算三对子图像{H<sub>i</sub>(x,y),Q<sub>i</sub>(x,y)|i=1,2,3}的相似度,得到三对子图像{H<sub>i</sub>(x,y),Q<sub>i</sub>(x,y)|i=1,2,3}的相似度分别为dist<sub>1</sub>,dist<sub>2</sub>,dist<sub>3</sub>,然后进行平均,得到最终的相似度<img file="FDA0001122890740000021.GIF" wi="345" he="127" />2.2.3根据2.2.4中得到的最终相似度dist计算当前粒子的观测概率密度<img file="FDA0001122890740000022.GIF" wi="486" he="135" />其中δ是个常数;然后更新当前粒子的权重:<maths num="0003"><math><![CDATA[<mrow><msubsup><mi>new&omega;</mi><mi>n</mi><mi>m</mi></msubsup><mo>=</mo><mi>P</mi><mi>F</mi><mo>&times;</mo><msubsup><mi>&omega;</mi><mi>n</mi><mi>m</mi></msubsup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001122890740000023.GIF" wi="630" he="69" /></maths>对于所有的M个粒子按步骤2.2.1至2.2.4的方法计算出新的权重,然后再进行归一化得到最终权重<img file="FDA0001122890740000024.GIF" wi="515" he="62" />2.3根据新的权重对所有粒子的3个参数进行加权求和,即得到相邻两帧图像的映射关系,也即为公式(1)中的3个参数(θ<sub>n</sub>,Tx<sub>n</sub>,Ty<sub>n</sub>);所有粒子的权重都进行更新后,就可以计算从第n帧图像到第n+1帧图像的映射关系,也即为公式1中的3个参数(θ<sub>n</sub>,Tx<sub>n</sub>,Ty<sub>n</sub>),3个参数(θ<sub>n</sub>,Tx<sub>n</sub>,Ty<sub>n</sub>)可以由所有粒子的加权和来表示:<maths num="0004"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>&theta;</mi><mi>n</mi></msub><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><msubsup><mi>new&omega;</mi><mi>n</mi><mi>m</mi></msubsup><msubsup><mi>&theta;</mi><mi>n</mi><mi>m</mi></msubsup></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>Tx</mi><mi>n</mi></msub><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><msubsup><mi>new&omega;</mi><mi>n</mi><mi>m</mi></msubsup><msubsup><mi>Tx</mi><mi>n</mi><mi>m</mi></msubsup></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>Ty</mi><mi>n</mi></msub><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><msubsup><mi>new&omega;</mi><mi>n</mi><mi>m</mi></msubsup><msubsup><mi>Ty</mi><mi>n</mi><mi>m</mi></msubsup></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001122890740000025.GIF" wi="782" he="431" /></maths>(3)依次对每一帧图像进行视频稳定,获得稳定视频序列图像;从第2帧开始,每一帧都通过步骤2中的方法计算出与之相邻的前一帧对应的运动参数{(θ<sub>n</sub>,Tx<sub>n</sub>,Ty<sub>n</sub>)|n=1,…,N‑1};最后根据每一帧的运动参数对视频图像进行稳定,以第n帧为例,通过累加获得第n帧相对于第1帧的运动补偿:<maths num="0005"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msubsup><mi>&theta;</mi><mi>n</mi><mrow><mi>a</mi><mi>l</mi><mi>l</mi></mrow></msubsup><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>&theta;</mi><mi>j</mi></msub></mrow></mtd></mtr><mtr><mtd><mrow><msubsup><mi>Tx</mi><mi>n</mi><mrow><mi>a</mi><mi>l</mi><mi>l</mi></mrow></msubsup><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>Tx</mi><mi>j</mi></msub></mrow></mtd></mtr><mtr><mtd><mrow><msubsup><mi>Ty</mi><mi>n</mi><mrow><mi>a</mi><mi>l</mi><mi>l</mi></mrow></msubsup><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>Ty</mi><mi>j</mi></msub></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001122890740000031.GIF" wi="565" he="454" /></maths>根据旋转角度<img file="FDA0001122890740000032.GIF" wi="67" he="63" />对对第n帧图像进行旋转,然后根据<img file="FDA0001122890740000033.GIF" wi="232" he="63" />对旋转后的图像进行平移,获得稳定视频序列图像。
地址 410000 湖南省长沙市高新开发区尖山路39号长沙中电软件园总部大楼A658房