发明内容
有鉴于此,本发明提供一种视频图像校正方法和系统,解决了所有像素点都参与计算影响图像校正效率的问题。
为实现上述目的,本发明提供如下技术方案:
一种视频图像校正方法,所述方法包括:
从输入的视频图像中选择出当前参考图像;
判断所述当前参考图像是否满足更新条件,所述更新条件为系统预设的时间;
当满足更新条件时,输出当前参考图像,并重新从输入的视频图像中选择参考图像,之后执行选择参考图像的后续输入图像作为待校正图像;
当不满足更新条件时,执行所述选择参考图像的后续输入图像作为待校正图像;
提取所述参考图像的角点;
利用金字塔算法计算参考图像中的角点的稀疏光流并根据所述稀疏光流得到所述待校正图像中与所述参考图像中的角点对应的待校正图像中的角点;
利用所述待校正图像中的角点和所述参考图像中的角点计算出仿射变换模型的变换参数;
根据所述变换参数校正所述待校正图像。
优选地,所述利用所述待校正图像中的角点和参考图像中的角点计算出仿射变换模型的变换参数,包括:
根据稀疏光流选择出所述待校正图像中的角点以及参考图像中的角点中运动方向和大小一致的点作为可用角点;
利用所述可用角点计算出仿射变换模型的变换参数。
优选地,所述根据所述变换参数校正所述待校正图像,包括:
当所述变换参数符合预设条件时,根据所述变换参数校正所述待校正图像。
优选地,所述从输入的视频图像中选择出当前参考图像帧,包括:
检测输入的视频图像的角点数是否为零;
当角点数为零时,继续检测后续输入的视频图像的角点数;
当角点数不为零时,将所述当前检测的视频图像作为当前参考图像,并结束检测流程。
优选地,所述根据所述变换参数校正所述待校正图像帧之后,还包括:
判断所述输入的视频图像中是否还有未校正的图像,如果是,则重复所述从输入的视频图像中选择参考图像之后的步骤,直至校正完所有视频图像。
一种视频图像校正系统,所述系统包括:
第一选择单元,用于从输入的视频图像中选择出当前参考图像;
提取单元,用于提取所述参考图像的角点;
第一计算单元,用于利用金字塔算法计算所述参考图像中的角点的稀疏光流;
获取单元,用于根据所述稀疏光流得到待校正图像中与所述参考图像中的角点对应的待校正图像中的角点;
第二计算单元,用于利用所述待校正图像中的角点和参考图像中的角点计算出仿射变换模型的变换参数;
校正单元,用于根据所述变换参数校正所述待校正图像;
所述系统还包括:
第二判断单元,用于判断所述当前参考图像是否满足更新条件,所述更新条件为系统预设的时间;
所述第一选择单元还用于当第二判断单元结果为是时,重新从输入的视频图像中选择参考图像并选择所述参考图像的后续图像作为待校正图像;当不满足更新条件时,执行所述选择参考图像的后续输入图像作为待校正图像。
优选地,所述第二计算单元包括:
第二选择单元,用于根据稀疏光流选择出所述待校正图像中的角点以及参考图像中的角点中运动方向和大小一致的点作为可用角点;
第二计算子单元,用于利用所述可用角点计算出仿射变换模型的变换参数。
优选地,所述校正单元包括:
第一判断单元,用于判断所述变换参数是否符合预设条件;
校正子单元,用于当所述判断单元结果为是时,根据所述变换参数校正所述待校正图像。
优选地,所述第一选择单元包括:
检测单元,用于检测输入的视频图像的角点数。
第一选择子单元,用于当所述检测单元的检测的角点数不为零时,将所述当前检测的视频图像作为当前参考图像并选择所述参考图像的后续图像作为待校正图像。
优选地,所述系统还包括:
第三判断单元,用于判断所述输入的视频图像中是否还有未校正的图像,如果是则启动第一选择单元。
经由上述的技术方案可知,与现有技术相比,本发明提供了一种视频图像校正方法和系统,通过计算参考图像的角点的稀疏光流得出待校正图像的对应角点,并通过解仿射变换方程得出角点处的变换参数,根据所述变换参数进行视频图像的校正,无需在全局范围内计算所有的像素点,从而减小了计算量,提高了视频图像校正的效率。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种视频图像校正方法和系统,通过计算参考图像帧的角点的稀疏光流得出待校正图像的对应角点,并通过解仿射变换方程得出角点处的变换参数,根据所述变换参数进行视频图像的校正,无需在全局范围内计算所有的像素点,从而减小了计算量,提高了视频图像校正的效率。
参见图1,示出了本发明一种视频图像校正方法实施例1的流程图,可以包括以下步骤:
步骤101:从输入的视频图像中选择出当前参考图像并选择参考图像的后续输入的视频图像作为待校正图像。
视频图像以帧为单位进行传输,通常将输入的第一帧视频图像作为参考图像,由于输入的第一帧图像通常为空帧,因此,可以先对输入的视频图像进行检测其是否为空帧,如果是,则继续选择后续输入的图像进行检测,直至检测的图像不为空帧,则将其作为当前的参考图像,具体的检测方法为:检测输入的视频图像的角点数是否为零,如果为零,则继续检测后续输入的视频图像的角点数,如果不为零,则将当前检测的这帧视频图像作为当前参考图像,并结束检测流程。
其中,角点是指二维图像中亮度变化剧烈的点或图像边缘曲线上曲率极大的一些特征点。
从输入的视频图像中选择出当前的参考图像后,其后续的输入的视频图像,则为待校正的图像,用选择出的参考图像,去校正后续输入的图像。
在实际应用中,监控系统的视频通常会由于天气、环境等因素产生抖动的现象,通常从输入的视频图像中选择出参考图像,用于校正视频中的其他图像,实现消抖。
需要说明的是,如果摄像机抖动范围发生变化,一直不变的背景范围会发生很大的虚假边缘,甚至有些区域得不到有效信息,因此需要每隔一定时间更新参考图像,即是根据当前的参考图像校正后续的输入的图像,当校正完若干帧图像后,例如20帧图像,则将当前的参考图像直接输出,继续从后续输入的视频图像中,重新选择参考图像,当然,重新进行选择时也需要进行是否为空帧的检测。
步骤102:提取所述参考图像的角点。
选择出参考图像后,根据相应算法即可计算得出参考图像的角点,即为参考图像中的角点,提取出所述参考图像的参考图像中的角点,以便于进行后续的校正流程。
步骤103:计算参考图像中的角点的稀疏光流并根据所述稀疏光流得到所述待校正图像中与所述参考图像中的角点对应的待校正图像中的角点。
其中,光流是指空间运动物体在观测成像面上的像素运动的瞬时速度,由于角点是像素中的一些特征点,计算这些特征关键点的光流而不是计算全部像素的光流即是稀疏光流。
其中,在所述参考图像中的角点处具体可以通过金字塔算法来计算稀疏光流。计算得出参考图像中的角点的稀疏光流即可对应找到待校正的图像中与所述参考图像中的角点对应的待校正图像中的角点,即得到该待校正图像中的角点在待校正图像中的位置。
步骤104:利用所述待校正图像中的角点和所述参考图像中的角点计算出仿射变换模型的变换参数。
所得的待校正图像中的角点和参考图像中的角点中,需要选择出运动方向和大小一致的点作为可用的角点,剔除不一致的角点,对于可用的角点解仿射变换方程,得到仿射变换的六个变换参数,分别为平移参数,旋转参数和缩放参数,每个参数又分别包括两个变换参数。其中,可以采用最小二乘法解仿射变换方程。
仿射变换模型是运动参数估计的模型,仿射变换能将第一幅图像上的直线印射到第二幅图像上仍为直线,并保持平衡关系,因此,使用仿射变换在做待校正图像变换时能保持角度的稳定性。利用选择出的可用角点采用最小二乘法可以计算出仿射变换的平移参数。
步骤105:根据所述变换参数校正所述待校正图像帧。
计算得出的变换参数,即偏移量,即可根据该偏移量进行视频图像的校正,包括平移、缩放和旋转。
以视频图像的平移抖动为例,进行平移校正时,解仿射变换方程得到的平移参数设为a1和a2,即分别为dx和dy,在解得出变换参数根据偏移量进行校正时,需要首先判断,所述的变换参数是否满足预设条件,所述的预设条件是指参数在一定的变化范围内。例如当平移参数的a1接近于1(如a1值为0.999),而a2接近于0时(如a2值为0.001),则认为满足平移参数的预设条件,可以进行图像校正,如果a1和a2的数值发生很大偏离,则直接输出待校正图像,不进行校正的过程,以免发生更大的偏移错误。
以边缘处理为例,其中,边缘是指视频图像中对比度比较明显的线,在进行图像校正时,其具体的过程可以为,将参考图像复制到待校正图像当中,根据计算得出的平移参数,将待校正图像进行平移,将平移之后的与参考图像重叠的区域覆盖到待校正图像当中,实现图像校正。其中边缘的像素个数可调。
需要说明的是,变换参数偏离一定范围时,则认为出错,不进行图像校正,直接输出视频图像,该偏离范围可根据具体的的实际情况设定。
上述只是以平移抖动为例来进行说明,对于其他的抖动情况,其校正过程类似,在此不再赘述。
每一帧视频图像进行校正后直接输出,从而得到校正后的视频图像。
需要说明的是,视频图像校正过程是一个循环过程,校正完一帧图像输出后,继续校正后续的输入的视频图像,校正过程同上述所述的过程。
在本发明实施例中,通过选择相应的角点作为特征点,采用仿射变换模型进行图像校正,无需在全局范围内计算所有的像素点,从而减小了计算量,提高了视频图像校正的效率。
参见图2,示出了本发明一种视频图像校正方法实施例2的流程图,可以包括以下步骤:
步骤201:检测输入的视频图像角点数是否为零,如果是,则继续检测,如果否,则进入步骤202。
角点数为零说明为空帧,即在进行图像校正选择参考图像时,先要检测输入的一帧视频图像是否为空帧,如果是,则此帧图像不作为参考帧,继续检测后续输入的视频图像,直至检测出的角点数不为零。
步骤202:将所述当前检测的视频图像作为当前参考图像。
步骤203:判断所述当前选择出的参考图像是否满足更新条件,如果是,则进入步骤204,如果否,则进入步骤205。
其中,所述更新条件为系统预设的时间,该预设的时间可以是校正若干帧图像所需的时间,即是在校正完若干帧图像后,执行更新参考图像的步骤,更新的过程即是重新选择参考图像的过程。
步骤204:输出当前参考图像,并返回步骤201,重新执行选择参考图像的步骤。
步骤205:选择参考图像的后续输入的视频图像作为待校正图像。
步骤206:提取参考图像的参考图像中的角点并计算参考图像中的角点的稀疏光流,根据所述稀疏光流得到所述待校正图像中与所述参考图像中的角点对应的待校正图像中的角点。
其中,在所述参考图像中的角点处具体可以通过金字塔算法来计算稀疏光流。计算得出参考图像中的角点的稀疏光流即可对应找到待校正的图像中与所述参考图像中的角点对应的待校正图像中的角点,即得到该待校正图像中的角点在待校正图像中的位置。
步骤207:根据稀疏光流选择出所述角点以及参考图像中的角点中运动方向和大小一致的点作为可用角点。
所得的待校正图像中的角点和参考图像中的角点中,需要选择出运动方向和大小一致的点作为可用的角点,剔除不一致的角点,。
步骤208:利用所述可用角点计算出仿射变换模型的变换参数。
利用可用的角点解仿射变换方程,得到仿射变换的六个变换参数,分别为平移参数,旋转参数和缩放参数,每个参数又分别包括两个变换参数。其中,可以采用最小二乘法解仿射变换方程。
步骤209:判断所述变换参数是否符合预设条件,如果是,则进入步骤210,如果否,则结束校正流程。
当不符合预设条件时,不进行图像校正,直接输出。
其中,所述预设条件是指参数值在一定的变化范围内,该具体范围可根据实际情况设定。
步骤210:根据所述变换参数校正所述待校正图像。
需要说明的是,步骤203的判断过程,其并不限定于上述所描述的步骤,判断过程贯穿于整个图像校正过程,系统预设的时间可以是校正若干帧图像后的时间,即在校正完若干帧图像后,即进行判断是否满足更新时间。
还需要说明的是,图像校正过程是一个循环过程,在校正完一帧图像后,系统即会判断输入的视频图像中是否还有未校正的图像,如果还有未校正的图像,则继续选择后续输入的视频图像作为待校正图像,执行步骤205之后的步骤,其中,在校正其他帧图像的过程中,也需要进行判断参考图像是否为空帧以及是否满足更新条件,即执行步骤201~步骤204的流程,具体可参见上文所述,在此不再赘述。
在本发明实施例中,通过计算参考图像帧的角点的稀疏光流得出待校正图像的对应角点,选择出可用的角点,通过解仿射变换方程得出角点处的变换参数,并判断平移参数是否满足预设条件在满预设条件时,根据所述变换参数进行视频图像的校正,无需在全局范围内计算所有的像素点,从而减小了计算量,提高了视频图像校正的效率,同时,对视频图像是否符合校正进行了判断,从而使得校正结果更加准确。
参见图3,示出了本发明一种视频图像校正系统具体实施例的结构示意图,可以包括:
第一选择单元301:用于从输入的视频图像中选择出当前参考图像并选择参考图像的后续图像作为待校正图像。
其中,所述第一选择单元301可以具体包括:
检测单元3011:用于检测输入的视频图像的角点数。
第一选择子单元3021,用于当所述检测单元的检测的角点数不为零时,将所述当前检测的视频图像作为当前参考图像并选择所述参考图像的后续图像作为待校正图像。
提取单元302:用于提取所述参考图像的参考图像中的角点。
第一计算单元303:用于计算所述参考图像中的角点的稀疏光流。
获取单元304:用于根据所述稀疏光流得到待校正图像中与所述参考图像中的角点对应的待校正图像中的角点。
第二计算单元305:用于利用所述待校正图像中的角点和参考图像中的角点计算出仿射变换模型的变换参数。
其中,所述第二计算单元305可以具体包括:
第二选择单元3051:用于根据稀疏光流选择出所述待校正图像中的角点以及参考图像中的角点中运动方向和大小一致的点作为可用角点。
第二计算子单元3052:用于利用所述可用角点计算出仿射变换模型的变换参数。
校正单元306:用于根据所述变换参数校正所述待校正图像。
其中,所述校正单元406可以具体包括:
第一判断单元4061:用于判断所述变换参数是否符合预设条件。
校正子单元4062:用于当所述判断单元结果为是时,根据所述变换参数校正所述待校正图像。
其中,所述系统还可以包括第二判断单元,所述第二判断单元具体用于判断所述当前参考图像是否满足更新条件,所述更新条件为系统预设的时间。则,所述第一选择单元还用于当第二判断单元结果为是时,重新从输入的视频图像中选择参考图像并将所述参考图像的后续输入图像作为待校正图像。
其中,所述系统还包括第三判断单元,用于判断所述输入的视频图像中是否还有未校正的图像。如果是则启动第一选择单元。
在本发明实施例中,通过选择相应的角点作为特征点,采用仿射变换模型进行图像校正,无需在全局范围内计算所有的像素点,从而减小了计算量,提高了视频图像校正的效率,同时,对视频图像是否符合校正进行了判断,从而使得校正结果更加准确。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
最后,需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。