CN110415186B - 一种图像去抖动的方法和设备 - Google Patents

一种图像去抖动的方法和设备 Download PDF

Info

Publication number
CN110415186B
CN110415186B CN201910606441.9A CN201910606441A CN110415186B CN 110415186 B CN110415186 B CN 110415186B CN 201910606441 A CN201910606441 A CN 201910606441A CN 110415186 B CN110415186 B CN 110415186B
Authority
CN
China
Prior art keywords
pixel
frame image
current frame
column
row
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
Application number
CN201910606441.9A
Other languages
English (en)
Other versions
CN110415186A (zh
Inventor
王廷鸟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN201910606441.9A priority Critical patent/CN110415186B/zh
Publication of CN110415186A publication Critical patent/CN110415186A/zh
Priority to PCT/CN2019/130004 priority patent/WO2021004038A1/en
Priority to EP19936730.1A priority patent/EP3973499B1/en
Application granted granted Critical
Publication of CN110415186B publication Critical patent/CN110415186B/zh
Priority to US17/645,321 priority patent/US11363202B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/73Deblurring; Sharpening
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6811Motion detection based on the image signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • H04N23/683Vibration or motion blur correction performed by a processor, e.g. controlling the readout of an image memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Operations Research (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Studio Devices (AREA)
  • Image Processing (AREA)

Abstract

本发明公开了一种图像去抖动的方法和设备,用以解决图像去抖动处理中rolling shutter效应矫正的成本和复杂度较高的问题。本发明实施例对当前帧图像的特征点与对应的偏移量形成的离散点进行曲线拟合,得到的拟合结果所形成的规律是适用于整幅画面的,即根据该拟合结果能确定图像内对成像方向上的任一维度进行校准的修正矩阵,最后使用全局单应矩阵和该维度的修正矩阵得到的矫正单应性矩阵对该维度进行像素校准,进一步在确定出部分维度的修正矩阵后,根据其他维度与确定了修正矩阵的维度的距离的比例关系确定其他维度的修正矩阵。计算参数较少,简化了计算流程且校准精细度高,不受场景限制,最后得到的视频图像稳定性高。

Description

一种图像去抖动的方法和设备
技术领域
本发明涉及图像处理技术领域,特别涉及一种图像去抖动的方法和设备。
背景技术
图像去抖动技术指的是从摄像机的实际运动中去除不期望的无意运动,这样处理后的视频在视觉上将变得平滑,减轻了由于无意运动引起的画面之间的跳动感。
现有的去抖动方法主要分为两大类:光学去抖动和电子去抖动。光学防抖是通过镜头内置的仪器感应相机的抖动,再通过调整镜头内透镜的位置而达到去抖动效果。电子去抖动,是通过电子手段来对图像进行处理,以减轻抖动对图像的影响。电子防抖的方法很多,一种方式是通过陀螺仪等传感器来感知当前相机的抖动情况,从而实现去抖动功能。还有一种方式是通过后期对抖动模糊图像进行图像处理来对图像进行抖动补偿。
光学去抖动和基于传感器的电子去抖动成本较高,灵活性较差,通过后期对抖动模糊图像进行图像处理来对图像进行抖动补偿的方法一般复杂度高、且耗时长。
综上所述,现有需要一种新颖的去抖动技术,能够至少部分地解决上述现有技术中存在的问题。
发明内容
本发明提供一种图像去抖动的方法和设备,用以解决现有进行图像去抖动处理时成本较高,灵活性较差或复杂度高的问题。
第一方面,本发明实施例提供的一种图像去抖动的方法包括:
将当前帧图像按照成像方向分割为N个像素区间,其中N为正整数;
针对当前帧图像的任意一个特征点,根据所述特征点在当前帧图像的位置信息和所述特征点在上一帧图像的位置信息,确定所述特征点的偏移量;
对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合,针对任意一个像素区间,根据拟合结果确定所述像素区间对应的像素区间分割线的修正矩阵;
根据当前帧图像上的任意一个像素,根据所述像素区间分割线的修正矩阵与按照成像方向确定的所述像素所在的维度与所述像素相邻的像素区间分割线的距离,确定所述像素所在的维度的修正矩阵;
根据所述全局单应性矩阵和所述像素所在的维度的修正矩阵确定所述像素所在的维度对应的矫正单应性矩阵,并使用所述矫正单应性矩阵对所述当前帧图像的所述维度的像素进行矫正处理。
上述方法,根据当前帧图像的任意一个特征点,根据该特征点在当前帧图像的位置信息以及跟踪得到的该特征点在上一帧图像的位置信息,确定该特征点的偏移量,再根据当前帧图像内的特征点与对应的偏移量形成的离散点进行曲线拟合得到的拟合结果计算当前帧图像上按照成像方向形成的同一维度的像素对应的修正矩阵,最后使用全局单应性矩阵和该维度对应的修正矩阵确定的该维度的矫正单应性矩阵,并使用该矫正单应性矩阵对该维度上的像素进行校准处理。由于该曲线的拟合结果是通过对图像内的所有特征点以及对应的偏移量进行处理后得到的,因此只需要根据该曲线的拟合结果所形成的规律是适用于整幅画面的,即根据该曲线的拟合结果能确定图像内对每个成像维度进行校准的修正矩阵,最后使用全局单应矩阵和该维度对应的修正矩阵得到的矫正单应性矩阵对该维度上的像素进行校准,进一步还可以确定出部分维度(像素区间分割线)的修正矩阵,再根据像素所在维度与确定了修正矩阵的维度的距离的比例关系进行计算,确定该像素的修正矩阵。本发明实施例需要计算的参数较少,简化了计算量,且不受场景限制,校准颗粒度高,去抖动处理效果好,最后得到的视频图像清晰度高。
在一种可选的实施方式中,所述针对当前帧图像的任意一个特征点,根据所述特征点在当前帧图像的位置信息和所述特征点在上一帧图像的位置信息,确定所述特征点的偏移量,包括:
针对当前帧图像的任意一个特征点,使用全局单应性矩阵对所述特征点的位置信息进行仿射变换;
根据所述进行仿射变换后得到的位置信息与所述特征点在所述上一帧图像中的位置信息,确定所述特征点的偏移量。
在一种可选的实施方式中,通过下列方式生成所述全局单应性矩阵:
选取当前帧图像中的K个特征点,跟踪所述K个特征点在所述上一帧图像中的位置信息,根据所述K个特征点在当前帧图像的位置信息以及所述特征点在上一帧图像中的位置信息生成全局单应性矩阵;
其中,所述K个特征点为所述当前帧图像和所述上一帧图像都包含的特征点。
在一种可选的实施方式中,所述偏移量包含行偏移量和列偏移量;若所述成像方向为行成像;
所述对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合,针对任意一个像素区间,根据拟合结果确定所述像素区间对应的像素区间分割线的修正矩阵,包括:
对所述当前帧图像的特征点的行坐标与对应的行偏移量形成的离散点进行第一曲线拟合得到第一多项式曲线方程;
对所述当前帧图像的特征点的行坐标与对应的列偏移量形成的离散点进行第二曲线拟合得到第二多项式曲线方程;
针对所述当前帧图像的任一像素区间,根据所述第一多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素行的第一组参数以及根据所述第二多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素行的第二组参数;
根据所述第一组参数和所述第二组参数确定所述第一像素行对应的修正矩阵;
其中,所述第一组参数用于表示在第一曲线中,所述第一像素行的行坐标与对应的行偏移量的线性关系;所述第二组参数用于表示在第二曲线中,所述第一像素行的行坐标与对应的列偏移量的线性关系。
在一种可选的实施方式中,所述偏移量包含行偏移量和列偏移量;若所述成像方向为列成像;
所述对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合,针对任意一个像素区间,根据拟合结果确定所述像素区间对应的像素区间分割线的修正矩阵,包括:
对所述当前帧图像的特征点的列坐标与对应的行偏移量形成的离散点进行第三曲线拟合得到第三多项式曲线方程;
对所述当前帧图像的特征点的列坐标与对应的列偏移量形成的离散点进行第四曲线拟合得到第四多项式曲线方程;
针对所述当前帧图像的任一像素区间,根据所述第三多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素列的第三组参数以及根据所述第四多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素列的第四组参数;
根据所述第三组参数和所述第四组参数确定所述第一像素列对应的修正矩阵;
其中,所述第三组参数用于表示在第三曲线中,所述第一像素列的列坐标与对应的行偏移量的线性关系;所述第四组参数用于表示在第四曲线中,所述第一像素列的列坐标与对应的列偏移量的线性关系。
在一种可选的实施方式中,所述对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合,包括:
使用拟合代价函数对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合;
其中,所述拟合代价函数为最小平方误差方程,或所述拟合代价函数为最小平方误差方程加正则项。
在一种可选的实施方式中,所述根据当前帧图像上的任意一个像素,根据所述像素区间分割线的修正矩阵与按照成像方向确定的所述像素所在的维度与所述像素相邻的像素区间分割线的距离,确定所述像素所在的维度的修正矩阵,包括:
若所述成像方向为行成像,针对当前帧图像中的任一像素,根据所述像素所在的像素行与相邻的像素区间分割线之间的距离;
根据所述像素区间分割线的修正曲线和确定的所述距离与所述像素所在像素区间的总像素行数的比例关系进行计算,确定所述像素行的修正矩阵;或
若所述成像方向为列成像,针对当前帧图像中的任一像素,根据所述像素所在的像素列与相邻的像素区间分割线之间的距离;
根据所述像素区间分割线的修正曲线和确定的所述距离与所述像素所在像素区间的总像素列数的比例关系进行计算,确定所述像素列的修正矩阵。
第二方面,本发明实施例还提供了一种图像去抖动的设备,该设备包括:至少一个处理单元及至少一个存储单元,其中,所述存储单元存储有程序代码,当所述存储器存储的一个或多个计算机程序被所述处理器执行时,使得所述设备执行下列过程:
将当前帧图像按照成像方向分割为N个像素区间,其中N为正整数;
针对当前帧图像的任意一个特征点,根据所述特征点在当前帧图像的位置信息和所述特征点在上一帧图像的位置信息,确定所述特征点的偏移量;
对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合,针对任意一个像素区间,根据拟合结果确定所述像素区间对应的像素区间分割线的修正矩阵;
根据当前帧图像上的任意一个像素,根据所述像素区间分割线的修正矩阵与按照成像方向确定的所述像素所在的维度与所述像素相邻的像素区间分割线的距离,确定所述像素所在的维度的修正矩阵;
根据所述全局单应性矩阵和所述像素所在的维度的修正矩阵确定所述像素所在的维度对应的矫正单应性矩阵,并使用所述矫正单应性矩阵对所述当前帧图像的所述维度的像素进行矫正处理。
在一种可能的实现方式中,所述处理器具体用于:
针对当前帧图像的任意一个特征点,使用全局单应性矩阵对所述特征点的位置信息进行仿射变换;
根据所述进行仿射变换后得到的位置信息与所述特征点在所述上一帧图像中的位置信息,确定所述特征点的偏移量。
在一种可能的实现方式中,所述处理器通过下列方式生成所述全局单应性矩阵:
选取当前帧图像中的K个特征点,跟踪所述K个特征点在所述上一帧图像中的位置信息,根据所述K个特征点在当前帧图像的位置信息以及所述特征点在上一帧图像中的位置信息生成全局单应性矩阵;
其中,所述K个特征点为所述当前帧图像和所述上一帧图像都包含的特征点。
在一种可能的实现方式中,所述处理器具体用于:
所述偏移量包含行偏移量和列偏移量;若所述成像方向为行成像;
对所述当前帧图像的特征点的行坐标与对应的行偏移量形成的离散点进行第一曲线拟合得到第一多项式曲线方程;
对所述当前帧图像的特征点的行坐标与对应的列偏移量形成的离散点进行第二曲线拟合得到第二多项式曲线方程;
针对所述当前帧图像的任一像素区间,根据所述第一多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素行的第一组参数以及根据所述第二多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素行的第二组参数;
根据所述第一组参数和所述第二组参数确定所述第一像素行对应的修正矩阵;
其中,所述第一组参数用于表示在第一曲线中,所述第一像素行的行坐标与对应的行偏移量的线性关系;所述第二组参数用于表示在第二曲线中,所述第一像素行的行坐标与对应的列偏移量的线性关系。
在一种可能的实现方式中,所述处理器具体用于:
所述偏移量包含行偏移量和列偏移量;若所述成像方向为列成像;
对所述当前帧图像的特征点的列坐标与对应的行偏移量形成的离散点进行第三曲线拟合得到第三多项式曲线方程;
对所述当前帧图像的特征点的列坐标与对应的列偏移量形成的离散点进行第四曲线拟合得到第四多项式曲线方程;
针对所述当前帧图像的任一像素区间,根据所述第三多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素列的第三组参数以及根据所述第四多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素列的第四组参数;
根据所述第三组参数和所述第四组参数确定所述第一像素列对应的修正矩阵;
其中,所述第三组参数用于表示在第三曲线中,所述第一像素列的列坐标与对应的行偏移量的线性关系;所述第四组参数用于表示在第四曲线中,所述第一像素列的列坐标与对应的列偏移量的线性关系。
在一种可能的实现方式中,所述处理器具体用于:
使用拟合代价函数对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合;
其中,所述拟合代价函数为最小平方误差方程,或所述拟合代价函数为最小平方误差方程加正则项。
在一种可能的实现方式中,所述处理器具体用于:
若所述成像方向为行成像,针对当前帧图像中的任一像素,根据所述像素所在的像素行与相邻的像素区间分割线之间的距离;
根据所述像素区间分割线的修正曲线和确定的所述距离与所述像素所在像素区间的总像素行数的比例关系进行计算,确定所述像素行的修正矩阵;或
若所述成像方向为列成像,针对当前帧图像中的任一像素,根据所述像素所在的像素列与相邻的像素区间分割线之间的距离;
根据所述像素区间分割线的修正曲线和确定的所述距离与所述像素所在像素区间的总像素列数的比例关系进行计算,确定所述像素列的修正矩阵。
第三方面,本发明实施例还提供一种图像去抖动的设备,该设备包括:
区间分割模块:用于将当前帧图像按照成像方向分割为N个像素区间,其中N为正整数;
偏移量确定模块:用于针对当前帧图像的任意一个特征点,根据所述特征点在当前帧图像的位置信息和所述特征点在上一帧图像的位置信息,确定所述特征点的偏移量:
第一确定模块:用于对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合,针对任意一个像素区间,根据拟合结果确定所述像素区间对应的像素区间分割线的修正矩阵;
第二确定模块:用于根据当前帧图像上的任意一个像素,根据所述像素区间分割线的修正矩阵与按照成像方向确定的所述像素所在的维度与所述像素相邻的像素区间分割线的距离,确定所述像素所在的维度的修正矩阵;
处理模块:根据所述全局单应性矩阵和所述像素所在的维度的修正矩阵确定所述像素所在的维度对应的矫正单应性矩阵,并使用所述矫正单应性矩阵对所述当前帧图像的所述维度的像素进行矫正处理。
第四方面,本申请还提供一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述方法的步骤。
另外,第二方面至第四方面中任一一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1A为本发明实施例提供的一种放射变换形式的示意图;
图1B为本发明实施例提供的另一种放射变换形式的示意图;
图1C为本发明实施例提供的第三种放射变换形式的示意图;
图2为本发明实施例提供的一种全局曝光取像得到的一帧图像的示意图;
图3为本发明实施例提供的一种全局曝光取像得到的另一帧图像的示意图;
图4为本发明实施例提供的一种卷帘曝光取像得到的一帧图像的示意图;
图5为本发明实施例提供的一种卷帘曝光取像得到的另一帧图像的示意图;
图6为本发明实施例提供的一种图像去抖动的方法示意图;
图7为本发明实施例提供的某帧图像的特征点的Vx与对应偏移量形成的离散点的示意图;
图8为本发明实施例提供的某帧图像的特征点的Vy与对应偏移量形成的离散点的示意图;
图9A为本发明实施例提供的Vx与偏移量对应的曲线拟合结果的示意图;
图9B为本发明实施例提供的Vy与偏移量对应的曲线拟合结果的示意图;
图10为本发明实施例提供的对某帧图像进行像素区间分割的示意图;
图11为本发明实施例提供的对曲线拟合结果的线性化处理的示意图;
图12为本发明实施例第一种图像去抖动的设备的结构示意图;
图13为本发明实施例第二种图像去抖动的设备的结构示意图;
图14为本发明实施例提供的图像去抖动的完整方法流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面对文中出现的一些词语进行解释:
1、本发明实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
2、本发明实施例中术语“单应性矩阵”是指在计算机视觉中,平面的单应性被定义为一个平面到另外一个平面的投影映射。
本发明实施例描述的应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
目前,常见的相机曝光方式包括:全局曝光和卷帘曝光,首先对两种曝光方式进行介绍:
曝光方式一:全局曝光;
全局曝光的方式比较简单,当光圈打开后,整个图像芯片同时曝光,可以理解为所有的像素点同时曝光。
当使用全局曝光方式对某物体进行取像时,在得到的连续帧图像中的任意两帧图像可以通过仿射变换进行全局配准,其中,仿射变换包括平移、缩放和旋转等,全局配准后两帧图像能够完全重合。
仿射变换包含平移、缩放、旋转、镜像等,每个仿射变换对应一个单应性矩阵,也可以说是,通过单应性矩阵进行仿射变换。本领域技术人员能够理解单应性矩阵形如
Figure BDA0002120867870000111
其中,a,e表示水平和垂直的缩放;b,d表示倾斜;c,f表示水平和垂直的平移。
下面对仿射变换的形式进行举例说明,如图1A~图1C所示为仿射变换包含的多种变换方式的示意图:
如图1A所示的仿射变换为没有变化,则对该仿射变换对应的单应性矩阵为
Figure BDA0002120867870000112
如图1B所示的仿射变换为平移,则对该仿射变换对应的单应性矩阵为
Figure BDA0002120867870000113
如图1C所示的仿射变换为放大,则对该仿射变换对应的单应性矩阵为
Figure BDA0002120867870000114
全局配准的具体方式是通过单一的单应性矩阵进行配准,在这种场景下也可以称为全局单应性矩阵。
举例说明:如图2所示为通过全局曝光方式取像时得到的连续帧中的某一帧图像,如图3所示为该连续帧中的另一帧图像。假设图2为上一帧图像,图3为当前帧图像,全局配置流程如下:
步骤1:检测当前帧图像内的特征点,选取K个特征点;
步骤2:跟踪该K个特征点在上一帧图像中的坐标,并选取m个特征点,其中m个特征点为当前帧图像和上一帧图像中都出现的特征点;
步骤3:根据该m个特征点在当前帧图像中对应的坐标,和该m个特征点在上一帧图像中对应的坐标,确定全局单应性矩阵。
比如,当前帧图像中的特征点P0,对应的在上一帧图像中的特征点为P1,其中,P0和P1为同一物体的同一特征在不同帧图像中对应的特征点。根据下列公式1确定全局单应性矩阵:
P1=Hg×P0………………公式1
全局单应性矩阵
Figure BDA0002120867870000121
其中,a,e表示水平和垂直的缩放;b,d表示倾斜;c,f表示水平和垂直的平移。
特征点p0=[x0,y0]T,特征点p1=[x1,y1]T,根据公式1得:
x1=a×x0+b×y0+c;
y1=d×x0+e×y0+f;
此时,通过至少3个特征点即可求解全局单应性矩阵的具体参数值。
步骤4:使用全局单应性矩阵Hg对当前帧图像进行校准。
曝光方式二:卷帘曝光(rolling shutter);
卷帘曝光的方式是当光圈打开后,还存在具有一定间隔的卷帘来控制传感器的曝光时间。因此,曝光时间的长短完全取决于卷帘的开口大小与卷帘的运动速度。也就是说,卷帘运动得越快,卷帘间距越小,其传感器的曝光时间越短。可以理解为,卷帘曝光方式类似卷帘门的关闭过程,通过逐行曝光取像。缺点是每个像素行是在不同时间进行曝光取像的,如果图像是运动的,则会存在明显的拖影。
当使用卷帘曝光方式进行取像时,由于每个像素行是在不同时间进行曝光取像的,如果图像是运动的,则会存在明显的拖影。因此,无法通过单一的单应性矩阵对图像进行校准。
举例说明:如图4所示为通过卷帘曝光方式得到的连续帧中的某一帧图像,如图5所示为该连续帧中的另一帧图像。假设图4为上一帧图像,图5为当前帧图像。
由于卷帘曝光的取像特点,图4和图5中对应部分的图像会有不同程序的变形,无法通过单一的单应性矩阵进行配准。
目前,较新的去抖动算法在补偿全局运动的同时也能校正rolling shutter效应,该方案将图像分为MxN块2D网格,每个网格拥有一个运动模型,分别由其四个端点来表达,然后构建一个基于几何的损失函数,来保证特征点匹配的误差最小,同时网格的变形也最小,而后通过优化求解该损失函数的最小值得到每个网格的运动参数;最后通过最优化方法构建新的损失函数保证图像的尽量不变形以及路径尽量稳定,这样自然而然的达到了rolling shutter的校正。很明显基于网格划分的方法带来了大量的参数以及运算复杂度,同时也要求特征点尽量密集,这些对运用场景造成了比较大的限制。
本发明实施例给出一种对图像进行去抖动处理的方法,将图像按照成像方向分为多个等距的像素块,首先通过上述全局单应性矩阵的求解步骤,根据当前帧图像中的部分特征点,跟踪该部分特征点,确定该部分特征点在连续帧的其他帧图像中的坐标,求解针对当前帧的全局运动的全局单应性矩阵,由于rolling shutter效应,当前帧图像若使用该全局单应性矩阵对所有像素进行校准,则对于其余特征点还会存在偏移量,可以这样理解:假若成像方向为行,像素块的颗粒度为像素行,该特征点的偏移量为通过全局单应性矩阵进行配准后,该特征点与上一帧图像中对应特征点之间的位移矢量。该偏移量包含行方向(可以记为X方向)的偏移量和列方向(可以记为Y方向)的偏移量,通过数据分析计算,能够得到表示该特征点的坐标与该特征点的偏移量之间关系的曲线方程,再根据分析得到的规律推导至每个像素行进行校准的修正矩阵,使用全局单应矩阵和该像素行对应的修正矩阵对该行上的像素进行校准,按照此方式,对图像进行去抖动处理。
下面结合说明书附图对本发明实施例做进一步详细描述。
如图6所示,本发明实施例提供的是一种图像去抖动的方法,具体包括以下步骤:
步骤100:将当前帧图像按照成像方向分割为N个像素区间,其中N为正整数;
步骤101:针对当前帧图像的任意一个特征点,根据所述特征点在当前帧图像的位置信息和所述特征点在上一帧图像的位置信息,确定所述特征点的偏移量;
步骤102:对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合,针对任意一个像素区间,根据拟合结果确定所述像素区间对应的像素区间分割线的修正矩阵;
步骤103:根据当前帧图像上的任意一个像素,根据所述像素区间分割线的修正矩阵与按照成像方向确定的所述像素所在的维度与所述像素相邻的像素区间分割线的距离,确定所述像素所在的维度的修正矩阵;
步骤104:根据所述全局单应性矩阵和所述像素所在的维度的修正矩阵确定所述像素所在的维度对应的矫正单应性矩阵,并使用所述矫正单应性矩阵对所述当前帧图像的所述维度的像素进行矫正处理。
通过上述方案,根据当前帧图像的任意一个特征点,根据该特征点在当前帧图像的位置信息以及跟踪得到的该特征点在上一帧图像的位置信息,确定该特征点的偏移量,再根据当前帧图像内的特征点与对应的偏移量形成的离散点进行曲线拟合得到的拟合结果计算当前帧图像上按照成像方向形成的同一维度的像素对应的修正矩阵,最后使用全局单应性矩阵和该维度对应的修正矩阵确定的该维度的矫正单应性矩阵,并使用该矫正单应性矩阵对该维度上的像素进行校准处理。由于该曲线的拟合结果是通过对图像内的所有特征点以及对应的偏移量进行处理后得到的,因此只需要根据该曲线的拟合结果所形成的规律是适用于整幅画面的,即根据该曲线的拟合结果能确定图像内对每个成像维度进行校准的修正矩阵,最后使用全局单应矩阵和该维度对应的修正矩阵得到的矫正单应性矩阵对该维度上的像素进行校准,进一步还可以确定出部分维度(像素区间分割线)的修正矩阵,再根据像素所在维度与确定了修正矩阵的维度的距离的比例关系进行计算,确定该像素的修正矩阵。本发明实施例需要计算的参数较少,简化了计算量,且不受场景限制,校准颗粒度高,去抖动处理效果好,最后得到的视频图像清晰度高。
本发明实施例能够对rolling shutter方式取像得到的图像进行去抖动处理,本领域技术人员能够理解的是rolling shutter的成像方向为行成像,下面以成像方向为行成像为例,对本发明实施例的完整流程进行解释说明:
过程一:确定全局单应性矩阵;
具体操作可以参见上述曝光方式一中确定全局单应性矩阵的执行步骤,此处不再赘述。
需要说明的是,在选取的N个特征点中,选取的m个特征点可以是随机选取的,也可以是按照成像方向选取的某一维度上的特征点。
过程二:求取偏移量;
对于rolling shutter取像方式,结合图4和图5,如果使用公式P1=Hg×P0对图5进行校准,则校准后的图像仍与图4存在偏差,即偏移量,包含行方向的偏移量和列方向的偏移量,也可以理解为偏移矢量。因此,需要在公式1的等式右边再加上误差公式,本发明实施例通过下述公式2对图5进行校准:
P1=Hg×P0+[Vx Vy 0]T………………公式2
其中,由于成像方向为行成像,Vx为行方向的偏移量,也称为X方向的偏差;Vy为列方向的偏移量,也称为Y方向的偏差;
需要说明的是,本发明实施例中的误差、偏移量、偏移矢量都是表示,在使用全局单应性矩阵对特征点进行放射变换后,得到的该特征点的坐标与跟踪到的该特征点在上一帧图像中的坐标之间的偏差。
对公式2进行变换,根据
Figure BDA0002120867870000151
求取特征点P0经过仿射变换后与P1的偏移量,其中
Figure BDA0002120867870000152
上述举例是通过将当前帧图像进行仿射变换等处理后与上一帧图像进行比对进行计算确定偏移量,在实际应用中,也可以对上一帧图像进行仿射变换等处理求取与当前帧图像进行比对求取偏移量,任一种数学算法上的变形都在本发明的保护范围内。
过程三:对特征点与对应偏移量形成的离散点进行曲线拟合;
针对当前帧图像中的任意一个特征点,通过上述过程二中的方法,得到每个特征点的对应的四维向量[X Y Vx Vy]T,经过数据分析发现特征点的x坐标与其他维度相关性较低,y坐标与其他维度的相关性高。可以理解为,由于rolling shutter的成像方向为行成像,每一行内的特征点的成像时间相同,但对于列方向而言,任意一列上的像素成像时间不同,因此特征点的偏移量与行方向,即y坐标的相关性高。
这里将y与其他维度的关系转换为二维图像来展示,如图7所示,为本发明实施例对当前帧图像的特征点y坐标与偏移量Vx和特征点y坐标与偏移量Vy形成的离散点的示意图。
其中,该坐标图中的X轴表示特征点的y坐标,Y轴表示特征点的偏移量,圆型表示偏移量Vx,方块表示偏移量Vy。
通过图8来表示特征点y坐标与偏移量Vx形成的离散点;通过图8来表示特征点y坐标与偏移量Vy形成的离散点。
在对如图7或图8所示的离散点进行曲线拟合时,拟合方式有多种比如:多项式曲线拟合和样条曲线拟合,下面以多项式曲线拟合为例,对具体的拟合流程进行介绍:
这里采用五次多项式进行曲线拟合,其中,对特征点y坐标与偏移量Vx进行曲线拟合对应的五次多项式曲线方程表示如下:
Vx(y)=a4×y4+a3×y3+a2×y2+a1×y+a0……公式3
其中,公式3也可以表示为:
Vx(y)=A×y;其中,A=[a4 a3 a2 a1 a0];y=[y4 y3 y2 y1 y0];
对特征点y坐标与偏移量Vy进行曲线拟合对应的五次多项式曲线方程表示如下:
Vy(y)=b4×y4+b3×y3+b2×y2+b1×y+b0……公式4
其中,公式4也可以表示为:
Vy(y)=A×y;其中,B=[b4 b3 b2 b1 b0];y=[y4 y3 y2 y1 y0];
通过拟合代价函数求解五次多项式曲线方程,这里拟合代价函数选择最小平方误差,拟合代价函数如下:
Figure BDA0002120867870000171
另外,由于图像中行与行之间曝光间隔短,故曲线变化应该较小,因此可以在上述公式5中增加正则项约束曲线变化量,其中,正则项用于约束曲线在相邻像素区间分割线出的偏移量,增加正则项后发的拟合代价函数为:
Figure BDA0002120867870000172
其中yi为对应特征点的y坐标,yj为任一行像素对应的y坐标。
假设这里选取的yj为第j个像素区间分割线的y坐标。通过公式6对如图7和图8中的离散点进行曲线拟合,计算得到上述多项式曲线方程的参数值,即A=[a4 a3 a2 a1 a0]和B=[b4 b3 b2 b1 b0]的值。
需要说明的是,在进行曲线拟合时,为了提高拟合精度,可以采用的拟合方式有多种,比如:使用迭代方式或采用鲁棒函数或使用误差的倒数对特征点加权等方式去除坏点影响,下面对使用迭代方式进行曲线拟合的流程进行说明:
由于运动物体上的特征点和背景上的特征点在相机抖动时,偏移不一致。
例如:一种极端情况是相机不动,背景上的特征点也是不动的,但运动物体上的特征点动了,因此背景上的特征点更能表示相机的运动。可以这样理解,假如背景上的特征点的位置没有变化,则可以认为相机没有运动;但若通过运动物体上的特征点的位置分析相机的运动情况,往往是不准确的。
因此,在进行曲线拟合时,可以先对所有的离散点进行曲线拟合,根据拟合结果计算该特征点的偏移量,在与实际偏移量进行比对,通过设定阈值筛选出偏差过大的点,将这些偏差过大的点剔除,然后再进行曲线拟合。
下面对通过设定阈值进行坏点筛选的方式进行介绍:
比如:通过上述公式6求解出特征点y坐标与偏移量Vx的多项式曲线方程Vx(y)=A×y,与特征点y坐标与偏移量Vy的多项式曲线方程Vy(y)=A×y后,将特征点P0=[x1 y11]T带入Vx(y)=A×y和Vy(y)=B×y,再根据[Vx Vy 0]T=P1-Hg×P0或图9A和图9B所示的曲线,确定特征点P0的实际偏移量,根据下列公式进行坏点筛选:
|Vx-Vx(y)|+|Vy-Vy(y)|>thr…………公式7
其中,Vx和Vy为特征点P0的实际偏差值;Vx(y)和Vy(y)为通过得到的多项式曲线方程计算得到的理论偏差值;thr为设定阈值。
将超过设定阈值的点剔除,然后再用剩余的点再次进行曲线拟合,以此循环,直到没有坏点或达到预设的迭代次数。
过程四:根据像素区间求取像素行对应的修正矩阵;
本发明实施例将图像分割为N个像素区间,其中,进行分割的方式有多种,比如,随机分割或按预设规则分割,本发明通过实践确定出一种较好的分割方式,下面对该分割方式进行介绍说明:
步骤1:将图像分割为多个等距的行block;
以特征点y坐标与偏移量Vx的离散点为例,如图10所示,按照成像方向(行成像),将图像分为多个等距的行block,每个行block包含多个不同维度的行像素。
其中,y0和yj1以及之间的像素行组成为像素区间1,yj1为像素区间1的像素区间分割线;yj1和yj2以及之间的像素行组成为像素区间2,yj2为像素区间2的像素区间分割线;yj2和yj3以及之间的像素行组成像素区间2,yj3为像素区间3的像素区间分割线;yj3和yj4以及之间的像素行组成像素区间3,yj4为像素区间4的像素区间分割线;yj4和y4以及之间的像素行组成像素区间5,yj4为像素区间5的像素区间分割线。
步骤2:根据行block确定像素区间;
将每个行block的中心行作为像素区间分割线,记为yj,其中,每个像素区间对应的像素区间分割线的对应关系可以预先定义。
步骤3;分段线性化求取像素区间分割线对应的修正矩阵;
结合图10,假设颗粒度为行block,在每个行block为内,误差曲线可以近似地视为直线,因此对于每个行block,可以将曲线拟合得到的多项式曲线方程分割为多个直线部分,请参阅图11,其中,直线部分分别对应每个行block内特征点y坐标与偏移量Vx的线性关系,或特征点y坐标与偏移量Vy的线性关系;
表现为函数形式如下:
VX(y)=K1×y+C1……公式8
Vy(y)=K2×y+C2……公式9
其中,像素分割线yj对应的K1可以通过对多项式曲线方程Vx(yj)=A×yj求导,由
Figure BDA0002120867870000191
确定;C1=Vx(yj)-K1×yj;K2可以通过对多项式曲线方程Vy(yj)=B×yj求导,由
Figure BDA0002120867870000192
确定;C2=Vy(yj)-K2×yj
假设P0为该像素区间分割线所在的像素行上的一个特征点,通过下列步骤确定像素区间分割线的修正矩阵和矫正单应性矩阵:
Figure BDA0002120867870000193
由上述可推导出像素区间分割线的修正矩阵为
Figure BDA0002120867870000201
Hg为该像素区间分割线的全局单应性矩阵;Hg和Hj的和为Hb,Hb为该像素区间分割线的矫正单应性矩阵。
参照上述方法,针对任一像素区间分割线,将该像素区间分割线的y坐标,代入到拟合得到的多项式曲线方程的一阶导数中,求取该像素区间分割线对应的K1及C1(第一组参数),同理求取K2和C2(第二组参数),根据第一组参数和第二组参数确定该像素区间分割线的修正矩阵。
步骤4;按照像素行与相邻像素区间分割线的线性插值确定该像素行的修正矩阵;
根据预设的比例关系,确定图像中某一像素所在的像素行与相邻像素区间分割线的距离占该像素区间的比例大小,进行加权计算,其中,距离越近,修正矩阵之间的相关性越大,因此在数值上占比越高,下面进行举例说明:
比如长度为1080的某图像,分割为10个行block,则每个行block跨越的维度为108,比如:第一个行block包含像素行1至像素行108;第二个行block包含像素行109至像素行108*2;第三个行block包含像素行108*2+1至像素行108*3,以此类推;
取每个行block的中心行为像素区间分割线,则第一个行block的中心行为像素行54(即第一像素区间分割线);第二个行block的中心行为像素行54+108(即第二像素区间分割线);第三个行block的中心行为像素行54+108+108(即第三像素区间分割线),以此类推。
第一像素区间分割线的修正矩阵为Hj1;第二像素区间分割线的修正矩阵为Hj2;第三像素区间分割线的修正矩阵为Hj3;以此类推。
假设某像素行为90,则与该像素行相邻的像素区间分割线为像素行54和像素行162,像素行90与像素行54的距离为36,像素行90与像素行162的距离为72;根据下列公式10确定像素行90的修正矩阵:
Hj(y=90)=Hj1*[(162-90)/108]+Hj2*[(90-54)/108]……公式10
根据Hg+Hj(y=90)确定像素行90的矫正单应性矩阵,使用像素行90对应的矫正单应性矩阵,对像素行90上的像素进行矫正处理。
需要说明的是,如果行block的颗粒度为1个像素行时,则每个像素行对应的修正矩阵都是通过上述步骤3中的像素区间分割线的修正矩阵的求取方法计算得到的,即每个像素行都为像素区间分割线。
基于相同的发明构思,本发明实施例中还提供了一种图像去抖动的设备,如图12所示,该设备包括:至少一个处理单元1200及至少一个存储单元1201,其中,所述存储单元1201存储有程序代码,当所述程序代码被所述处理单元1200执行时,使得所述处理单元1200执行下列过程:
将当前帧图像按照成像方向分割为N个像素区间,其中N为正整数;
针对当前帧图像的任意一个特征点,根据所述特征点在当前帧图像的位置信息和所述特征点在上一帧图像的位置信息,确定所述特征点的偏移量;
对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合,针对任意一个像素区间,根据拟合结果确定所述像素区间对应的像素区间分割线的修正矩阵;
根据当前帧图像上的任意一个像素,根据所述像素区间分割线的修正矩阵与按照成像方向确定的所述像素所在的维度与所述像素相邻的像素区间分割线的距离,确定所述像素所在的维度的修正矩阵;
根据所述全局单应性矩阵和所述像素所在的维度的修正矩阵确定所述像素所在的维度对应的矫正单应性矩阵,并使用所述矫正单应性矩阵对所述当前帧图像的所述维度的像素进行矫正处理。
可选的,所述处理单元1200具体用于:针对当前帧图像的任意一个特征点,使用全局单应性矩阵对所述特征点的位置信息进行仿射变换;
根据所述进行仿射变换后得到的位置信息与所述特征点在所述上一帧图像中的位置信息,确定所述特征点的偏移量。
可选的,所述处理单元1200通过下列方式生成所述全局单应性矩阵:
选取当前帧图像中的K个特征点,跟踪所述K个特征点在所述上一帧图像中的位置信息,根据所述K个特征点在当前帧图像的位置信息以及所述特征点在上一帧图像中的位置信息生成全局单应性矩阵;
其中,所述K个特征点为所述当前帧图像和所述上一帧图像都包含的特征点。
可选的,所述处理单元1200具体用于:
所述偏移量包含行偏移量和列偏移量;若所述成像方向为行成像;
对所述当前帧图像的特征点的行坐标与对应的行偏移量形成的离散点进行第一曲线拟合得到第一多项式曲线方程;
对所述当前帧图像的特征点的行坐标与对应的列偏移量形成的离散点进行第二曲线拟合得到第二多项式曲线方程;
针对所述当前帧图像的任一像素区间,根据所述第一多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素行的第一组参数以及根据所述第二多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素行的第二组参数;
根据所述第一组参数和所述第二组参数确定所述第一像素行对应的修正矩阵;
其中,所述第一组参数用于表示在第一曲线中,所述第一像素行的行坐标与对应的行偏移量的线性关系;所述第二组参数用于表示在第二曲线中,所述第一像素行的行坐标与对应的列偏移量的线性关系。
可选的,所述处理单元1200具体用于:
所述偏移量包含行偏移量和列偏移量;若所述成像方向为列成像;
对所述当前帧图像的特征点的列坐标与对应的行偏移量形成的离散点进行第三曲线拟合得到第三多项式曲线方程;
对所述当前帧图像的特征点的列坐标与对应的列偏移量形成的离散点进行第四曲线拟合得到第四多项式曲线方程;
针对所述当前帧图像的任一像素区间,根据所述第三多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素列的第三组参数以及根据所述第四多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素列的第四组参数;
根据所述第三组参数和所述第四组参数确定所述第一像素列对应的修正矩阵;
其中,所述第三组参数用于表示在第三曲线中,所述第一像素列的列坐标与对应的行偏移量的线性关系;所述第四组参数用于表示在第四曲线中,所述第一像素列的列坐标与对应的列偏移量的线性关系。
可选的,所述处理单元1200具体用于:
使用拟合代价函数对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合;
其中,所述拟合代价函数为最小平方误差方程,或所述拟合代价函数为最小平方误差方程加正则项。
可选的,所述处理单元1200具体用于:
若所述成像方向为行成像,针对当前帧图像中的任一像素,根据所述像素所在的像素行与相邻的像素区间分割线之间的距离;
根据所述像素区间分割线的修正曲线和确定的所述距离与所述像素所在像素区间的总像素行数的比例关系进行计算,确定所述像素行的修正矩阵;或
若所述成像方向为列成像,针对当前帧图像中的任一像素,根据所述像素所在的像素列与相邻的像素区间分割线之间的距离;
根据所述像素区间分割线的修正曲线和确定的所述距离与所述像素所在像素区间的总像素列数的比例关系进行计算,确定所述像素列的修正矩阵。
基于相同的构思,如图13所示为本发明实施例还出给另一种图像去抖动设备的结构示意图,所述设备包括:
区间分割模块1300:用于将当前帧图像按照成像方向分割为N个像素区间,其中N为正整数;
偏移量确定模块1301:用于针对当前帧图像的任意一个特征点,根据所述特征点在当前帧图像的位置信息和所述特征点在上一帧图像的位置信息,确定所述特征点的偏移量:
第一确定模块1302:用于对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合,针对任意一个像素区间,根据拟合结果确定所述像素区间对应的像素区间分割线的修正矩阵;
第二确定模块1303:用于根据当前帧图像上的任意一个像素,根据所述像素区间分割线的修正矩阵与按照成像方向确定的所述像素所在的维度与所述像素相邻的像素区间分割线的距离,确定所述像素所在的维度的修正矩阵;
处理模块1304:根据所述全局单应性矩阵和所述像素所在的维度的修正矩阵确定所述像素所在的维度对应的矫正单应性矩阵,并使用所述矫正单应性矩阵对所述当前帧图像的所述维度的像素进行矫正处理。
可选的,所述偏移量确定模块1301具体用于:
针对当前帧图像的任意一个特征点,使用全局单应性矩阵对所述特征点的位置信息进行仿射变换;
根据所述进行仿射变换后得到的位置信息与所述特征点在所述上一帧图像中的位置信息,确定所述特征点的偏移量。
可选的,所述处理模块1304通过下列方式生成所述全局单应性矩阵:
选取当前帧图像中的K个特征点,跟踪所述K个特征点在所述上一帧图像中的位置信息,根据所述K个特征点在当前帧图像的位置信息以及所述特征点在上一帧图像中的位置信息生成全局单应性矩阵;
其中,所述K个特征点为所述当前帧图像和所述上一帧图像都包含的特征点。
可选的,所述第一确定模块1302具体用于:
所述偏移量包含行偏移量和列偏移量;若所述成像方向为行成像;
对所述当前帧图像的特征点的行坐标与对应的行偏移量形成的离散点进行第一曲线拟合得到第一多项式曲线方程;
对所述当前帧图像的特征点的行坐标与对应的列偏移量形成的离散点进行第二曲线拟合得到第二多项式曲线方程;
针对所述当前帧图像的任一像素区间,根据所述第一多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素行的第一组参数以及根据所述第二多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素行的第二组参数;
根据所述第一组参数和所述第二组参数确定所述第一像素行对应的修正矩阵;
其中,所述第一组参数用于表示在第一曲线中,所述第一像素行的行坐标与对应的行偏移量的线性关系;所述第二组参数用于表示在第二曲线中,所述第一像素行的行坐标与对应的列偏移量的线性关系。
可选的,所述第一确定模块1302具体用于:
所述偏移量包含行偏移量和列偏移量;若所述成像方向为列成像;
对所述当前帧图像的特征点的列坐标与对应的行偏移量形成的离散点进行第三曲线拟合得到第三多项式曲线方程;
对所述当前帧图像的特征点的列坐标与对应的列偏移量形成的离散点进行第四曲线拟合得到第四多项式曲线方程;
针对所述当前帧图像的任一像素区间,根据所述第三多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素列的第三组参数以及根据所述第四多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素列的第四组参数;
根据所述第三组参数和所述第四组参数确定所述第一像素列对应的修正矩阵;
其中,所述第三组参数用于表示在第三曲线中,所述第一像素列的列坐标与对应的行偏移量的线性关系;所述第四组参数用于表示在第四曲线中,所述第一像素列的列坐标与对应的列偏移量的线性关系。
可选的,所述第一确定模块1302具体用于:
使用拟合代价函数对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合;
其中,所述拟合代价函数为最小平方误差方程,或所述拟合代价函数为最小平方误差方程加正则项。
可选的,所述第二确定模块1303具体用于:
若所述成像方向为行成像,针对当前帧图像中的任一像素,根据所述像素所在的像素行与相邻的像素区间分割线之间的距离;
根据所述像素区间分割线的修正曲线和确定的所述距离与所述像素所在像素区间的总像素行数的比例关系进行计算,确定所述像素行的修正矩阵;或
若所述成像方向为列成像,针对当前帧图像中的任一像素,根据所述像素所在的像素列与相邻的像素区间分割线之间的距离;
根据所述像素区间分割线的修正曲线和确定的所述距离与所述像素所在像素区间的总像素列数的比例关系进行计,确定所述像素列的修正矩阵。
需要说明的是,第一确定模块1302和第二确定模块1302可以为同一模块。
如图14所示,为本发明实施例提供的一种图像去抖动的完整方法流程示意图,包括以下步骤:
步骤1400:将当前帧图像按照成像方向分为N个像素区间;
步骤1401:选取当前帧图像中的K个特征点,跟踪该K个特征点在上一帧图像中的坐标,在K个特征点中选择m个特征点计算当前帧图像的全局单应性矩阵Hg;
步骤1402:使用全局单应性矩阵对当前帧图像中的特征点进行仿射变换;
步骤1403:根据[Vx Vy 0]T=P1-Hg*P0,确定当前帧图像内的特征点的偏移量;
步骤1404:根据当前帧图像内的特征点的y坐标与偏移量Vx形成的离散点以及特征点的y坐标与偏移量Vy形成的离散点分别进行曲线拟合;
步骤1405:对拟合得到的曲线进行分段线性化处理,确定像素区间对应的像素区间分割线的修正矩阵;
步骤1406:针对任一像素,根据该像素所在的像素行与相邻的像素区间分割线的距离与相邻的像素区间分割线的修正矩阵进行加权计算,得到该像素行的修正矩阵;
步骤1407:根据全局单应性矩阵Hg和该像素行的修正矩阵确定该像素行的矫正单应性矩阵,并使用该矫正单应性矩阵对该像素行上的像素进行矫正处理。
其中,对于步骤1402是针对当前帧图像中任一特征点,根据该特征点经过仿射变换后的坐标与跟踪到的该特征点在上一帧图像的坐标,确定该特征点偏移量。
对于步骤1405是对曲线拟合得到的y坐标与偏移量Vx对应的多项式曲线方程求一阶导数,根据像素区间对应的像素区间分割线所在的像素行的y坐标求取该像素行的对应的第一组参数;对曲线拟合得到的y坐标与偏移量Vy对应的多项式曲线方程求一阶导数,根据像素区间对应的像素区间分割线所在的像素行的y坐标求取该像素行的对应的第二组参数,根据第一组参数和第二组参数确定该像素行的修正矩阵,具体过程参见上述描述,此处不再赘述。
本发明实施例还提供一种计算机可读非易失性存储介质,包括程序代码,当所述程序代码在计算终端上运行时,所述程序代码用于使所述计算终端执行上述本发明实施例中图像去抖动的方法的步骤。
以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种图像去抖动的方法,其特征在于,该方法包括:
将当前帧图像按照成像方向分割为N个像素区间,并从当前帧图像中选取K个特征点,根据所述K个特征点在当前帧图像的位置信息,以及跟踪得到的所述K个特征点在上一帧图像中的位置信息,生成相应的全局单应性矩阵,其中N为正整数,所述K个特征点为所述当前帧图像和所述上一帧图像都包含的特征点;
针对当前帧图像的任意一个特征点,根据所述特征点在当前帧图像的位置信息和所述特征点在上一帧图像的位置信息,确定所述特征点的偏移量,其中,所述偏移量是针对所述当前帧图像的任意一个特征点,使用所述全局单应性矩阵对所述特征点的位置信息进行仿射变换后得到的位置信息,与所述特征点在所述上一帧图像中的位置信息确定的;
对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合针对任意一个像素区间,根据拟合结果确定所述像素区间对应的像素区间分割线的修正矩阵;
根据当前帧图像上的任意一个像素,根据所述像素区间分割线的修正矩阵与按照成像方向确定的所述像素所在的维度与所述像素相邻的像素区间分割线的距离,确定所述像素所在的维度的修正矩阵;
根据所述全局单应性矩阵和所述像素所在的维度的修正矩阵确定所述像素所在的维度对应的矫正单应性矩阵,并使用所述矫正单应性矩阵对所述像素进行矫正处理。
2.如权利要求1所述的方法,其特征在于,所述偏移量包含行偏移量和列偏移量;若所述成像方向为行成像;
所述对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合,针对任意一个像素区间,根据拟合结果确定所述像素区间对应的像素区间分割线的修正矩阵,包括:
对所述当前帧图像的特征点的行坐标与对应的行偏移量形成的离散点进行第一曲线拟合得到第一多项式曲线方程;
对所述当前帧图像的特征点的行坐标与对应的列偏移量形成的离散点进行第二曲线拟合得到第二多项式曲线方程;
针对所述当前帧图像的任一像素区间,根据所述第一多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素行的第一组参数以及根据所述第二多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素行的第二组参数;
根据所述第一组参数和所述第二组参数确定所述第一像素行对应的修正矩阵;
其中,所述第一组参数用于表示在第一曲线中,所述第一像素行的行坐标与对应的行偏移量的线性关系;所述第二组参数用于表示在第二曲线中,所述第一像素行的行坐标与对应的列偏移量的线性关系。
3.如权利要求1所述的方法,其特征在于,所述偏移量包含行偏移量和列偏移量;若所述成像方向为列成像;
所述对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合,针对任意一个像素区间,根据拟合结果确定所述像素区间对应的像素区间分割线的修正矩阵,包括:
对所述当前帧图像的特征点的列坐标与对应的行偏移量形成的离散点进行第三曲线拟合得到第三多项式曲线方程;
对所述当前帧图像的特征点的列坐标与对应的列偏移量形成的离散点进行第四曲线拟合得到第四多项式曲线方程;
针对所述当前帧图像的任一像素区间,根据所述第三多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素列的第三组参数以及根据所述第四多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素列的第四组参数;
根据所述第三组参数和所述第四组参数确定所述第一像素列对应的修正矩阵;
其中,所述第三组参数用于表示在第三曲线中,所述第一像素列的列坐标与对应的行偏移量的线性关系;所述第四组参数用于表示在第四曲线中,所述第一像素列的列坐标与对应的列偏移量的线性关系。
4.如权利要求1所述的方法,其特征在于,所述对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合,包括:
使用拟合代价函数对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合;
其中,所述拟合代价函数为最小平方误差方程,或所述拟合代价函数为最小平方误差方程加正则项。
5.如权利要求1所述的方法,其特征在于,所述根据当前帧图像上的任意一个像素,根据所述像素区间分割线的修正矩阵与按照成像方向确定的所述像素所在的维度与所述像素相邻的像素区间分割线的距离,确定所述像素所在的维度的修正矩阵,包括:
若所述成像方向为行成像,针对当前帧图像中的任一像素,根据所述像素所在的像素行与相邻的像素区间分割线之间的距离;
根据所述像素区间分割线的修正曲线和确定的所述距离与所述像素所在像素区间的总像素行数的比例关系进行计算,确定所述像素行的修正矩阵;或
若所述成像方向为列成像,针对当前帧图像中的任一像素,根据所述像素所在的像素列与相邻的像素区间分割线之间的距离;
根据所述像素区间分割线的修正曲线和确定的所述距离与所述像素所在像素区间的总像素列数的比例关系进行计算,确定所述像素列的修正矩阵。
6.一种图像去抖动的设备,其特征在于,该设备包括:至少一个处理单元及至少一个存储单元,其中,所述存储单元存储有程序代码,当所述存储单元存储的一个或多个计算机程序被所述处理单元执行时,使得所述设备执行下列过程:
将当前帧图像按照成像方向分割为N个像素区间,并从当前帧图像中选取K个特征点,根据所述K个特征点在当前帧图像的位置信息,以及跟踪得到的所述K个特征点在上一帧图像中的位置信息,生成相应的全局单应性矩阵,其中N为正整数,所述K个特征点为所述当前帧图像和所述上一帧图像都包含的特征点;
针对当前帧图像的任意一个特征点,根据所述特征点在当前帧图像的位置信息和所述特征点在上一帧图像的位置信息,确定所述特征点的偏移量,其中,所述偏移量是针对所述当前帧图像的任意一个特征点,使用所述全局单应性矩阵对所述特征点的位置信息进行仿射变换后得到的位置信息,与所述特征点在所述上一帧图像中的位置信息确定的;
对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合,针对任意一个像素区间,根据拟合结果确定所述像素区间对应的像素区间分割线的修正矩阵;
根据当前帧图像上的任意一个像素,根据所述像素区间分割线的修正矩阵与按照成像方向确定的所述像素所在的维度与所述像素相邻的像素区间分割线的距离,确定所述像素所在的维度的修正矩阵;
根据所述全局单应性矩阵和所述像素所在的维度的修正矩阵确定所述像素所在的维度对应的矫正单应性矩阵,并使用所述矫正单应性矩阵对所述当前帧图像的所述维度的像素进行矫正处理。
7.如权利要求6所述的设备,其特征在于,所述处理单元具体用于:
所述偏移量包含行偏移量和列偏移量;若所述成像方向为行成像;
对所述当前帧图像的特征点的行坐标与对应的行偏移量形成的离散点进行第一曲线拟合得到第一多项式曲线方程;
对所述当前帧图像的特征点的行坐标与对应的列偏移量形成的离散点进行第二曲线拟合得到第二多项式曲线方程;
针对所述当前帧图像的任一像素区间,根据所述第一多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素行的第一组参数以及根据所述第二多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素行的第二组参数;
根据所述第一组参数和所述第二组参数确定所述第一像素行对应的修正矩阵;
其中,所述第一组参数用于表示在第一曲线中,所述第一像素行的行坐标与对应的行偏移量的线性关系;所述第二组参数用于表示在第二曲线中,所述第一像素行的行坐标与对应的列偏移量的线性关系。
8.如权利要求6所述的设备,其特征在于,所述处理单元具体用于:
所述偏移量包含行偏移量和列偏移量;若所述成像方向为列成像;
对所述当前帧图像的特征点的列坐标与对应的行偏移量形成的离散点进行第三曲线拟合得到第三多项式曲线方程;
对所述当前帧图像的特征点的列坐标与对应的列偏移量形成的离散点进行第四曲线拟合得到第四多项式曲线方程;
针对所述当前帧图像的任一像素区间,根据所述第三多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素列的第三组参数以及根据所述第四多项式曲线方程确定所述像素区间对应的像素区间分割线所在的第一像素列的第四组参数;
根据所述第三组参数和所述第四组参数确定所述第一像素列对应的修正矩阵;
其中,所述第三组参数用于表示在第三曲线中,所述第一像素列的列坐标与对应的行偏移量的线性关系;所述第四组参数用于表示在第四曲线中,所述第一像素列的列坐标与对应的列偏移量的线性关系。
9.如权利要求6所述的设备,其特征在于,所述处理单元具体用于:
使用拟合代价函数对当前帧图像的特征点的位置信息与对应的偏移量形成的离散点进行曲线拟合;
其中,所述拟合代价函数为最小平方误差方程,或所述拟合代价函数为最小平方误差方程加正则项。
10.如权利要求6所述的设备,其特征在于,所述处理单元具体用于:
若所述成像方向为行成像,针对当前帧图像中的任一像素,根据所述像素所在的像素行与相邻的像素区间分割线之间的距离;
根据所述像素区间分割线的修正曲线和确定的所述距离与所述像素所在像素区间的总像素行数的比例关系进行计算,确定所述像素行的修正矩阵;或
若所述成像方向为列成像,针对当前帧图像中的任一像素,根据所述像素所在的像素列与相邻的像素区间分割线之间的距离;
根据所述像素区间分割线的修正曲线和确定的所述距离与所述像素所在像素区间的总像素列数的比例关系进行计算,确定所述像素列的修正矩阵。
CN201910606441.9A 2019-07-05 2019-07-05 一种图像去抖动的方法和设备 Active CN110415186B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910606441.9A CN110415186B (zh) 2019-07-05 2019-07-05 一种图像去抖动的方法和设备
PCT/CN2019/130004 WO2021004038A1 (en) 2019-07-05 2019-12-30 Methods and systems for video stabilization
EP19936730.1A EP3973499B1 (en) 2019-07-05 2019-12-30 Methods and systems for video stabilization
US17/645,321 US11363202B2 (en) 2019-07-05 2021-12-21 Methods and systems for video stabilization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910606441.9A CN110415186B (zh) 2019-07-05 2019-07-05 一种图像去抖动的方法和设备

Publications (2)

Publication Number Publication Date
CN110415186A CN110415186A (zh) 2019-11-05
CN110415186B true CN110415186B (zh) 2021-07-20

Family

ID=68360510

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910606441.9A Active CN110415186B (zh) 2019-07-05 2019-07-05 一种图像去抖动的方法和设备

Country Status (4)

Country Link
US (1) US11363202B2 (zh)
EP (1) EP3973499B1 (zh)
CN (1) CN110415186B (zh)
WO (1) WO2021004038A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110415186B (zh) 2019-07-05 2021-07-20 浙江大华技术股份有限公司 一种图像去抖动的方法和设备
CN110930301B (zh) * 2019-12-09 2023-08-11 Oppo广东移动通信有限公司 图像处理方法、装置、存储介质及电子设备
CN111536968B (zh) * 2020-04-15 2022-08-30 阿波罗智能技术(北京)有限公司 确定路侧感知设备的动态姿态的方法和装置
CN115209031B (zh) * 2021-04-08 2024-03-29 北京字跳网络技术有限公司 视频防抖处理方法、装置、电子设备和存储介质
CN113418455B (zh) * 2021-05-24 2023-05-09 深圳亦芯智能视觉技术有限公司 基于图像视觉的路基位移监测方法及装置
CN113553963A (zh) * 2021-07-27 2021-10-26 广联达科技股份有限公司 安全帽的检测方法、装置、电子设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104954631A (zh) * 2014-03-25 2015-09-30 腾讯科技(深圳)有限公司 一种视频处理方法、装置和系统
CN105872370A (zh) * 2016-03-31 2016-08-17 深圳中兴力维技术有限公司 视频去抖动方法和装置
CN106780370A (zh) * 2016-11-25 2017-05-31 阿依瓦(北京)技术有限公司 一种图像去抖动设备及其方法
CN109905565A (zh) * 2019-03-06 2019-06-18 南京理工大学 基于运动模式分离的视频去抖动方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4958610B2 (ja) * 2007-04-06 2012-06-20 キヤノン株式会社 画像防振装置、撮像装置及び画像防振方法
CN102169573B (zh) * 2011-03-23 2013-11-06 北京大学 高精度的宽视场镜头实时畸变矫正方法及系统
TWI456984B (zh) * 2011-10-24 2014-10-11 Univ Nat Central 視訊穩定系統及其方法
TWI469062B (zh) * 2011-11-11 2015-01-11 Ind Tech Res Inst 影像穩定方法及影像穩定裝置
US8860825B2 (en) 2012-09-12 2014-10-14 Google Inc. Methods and systems for removal of rolling shutter effects
EP2747416A3 (en) * 2012-12-18 2017-07-19 OCT Circuit Technologies International Limited Rolling shutter wobble detection and correction
JP6170395B2 (ja) * 2013-09-26 2017-07-26 キヤノン株式会社 撮像装置およびその制御方法
KR102084253B1 (ko) * 2013-11-20 2020-03-03 한국전자통신연구원 복원조각과 볼륨형 표면을 이용하는 카메라 트래킹 장치 및 방법
US10027893B2 (en) * 2016-05-10 2018-07-17 Nvidia Corporation Real-time video stabilization for mobile devices based on on-board motion sensing
CN107749987B (zh) * 2017-09-30 2020-09-18 河海大学 一种基于块运动估计的数字视频稳像方法
CN108377320B (zh) 2018-04-25 2020-09-04 长沙全度影像科技有限公司 一种带有防抖校准的子弹时间制作方法
CN109327712A (zh) * 2018-09-18 2019-02-12 中国科学院自动化研究所 固定场景的视频消抖方法
CN110415186B (zh) * 2019-07-05 2021-07-20 浙江大华技术股份有限公司 一种图像去抖动的方法和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104954631A (zh) * 2014-03-25 2015-09-30 腾讯科技(深圳)有限公司 一种视频处理方法、装置和系统
CN105872370A (zh) * 2016-03-31 2016-08-17 深圳中兴力维技术有限公司 视频去抖动方法和装置
CN106780370A (zh) * 2016-11-25 2017-05-31 阿依瓦(北京)技术有限公司 一种图像去抖动设备及其方法
CN109905565A (zh) * 2019-03-06 2019-06-18 南京理工大学 基于运动模式分离的视频去抖动方法

Also Published As

Publication number Publication date
US11363202B2 (en) 2022-06-14
WO2021004038A1 (en) 2021-01-14
EP3973499B1 (en) 2023-07-26
EP3973499A1 (en) 2022-03-30
EP3973499A4 (en) 2022-08-17
CN110415186A (zh) 2019-11-05
US20220116539A1 (en) 2022-04-14

Similar Documents

Publication Publication Date Title
CN110415186B (zh) 一种图像去抖动的方法和设备
KR101624450B1 (ko) 화상 처리 장치, 화상 처리 방법, 및 기록 매체
US9262807B2 (en) Method and system for correcting a distorted input image
US7773819B2 (en) Image processing apparatus
EP3417606B1 (en) A method of stabilizing a sequence of images
KR101071352B1 (ko) 좌표맵을 이용한 팬틸트줌 카메라 기반의 객체 추적 장치 및 방법
JP2018189730A (ja) 像ブレ補正装置及びその制御方法、プログラム、記憶媒体
CN110866486B (zh) 主体检测方法和装置、电子设备、计算机可读存储介质
US11477382B2 (en) Method of stabilizing a sequence of images
CN110428466B (zh) 一种非均匀性校正的方法和设备
JP5731911B2 (ja) 画像処理装置及びその制御方法
JP6830712B1 (ja) ランダムサンプリング一貫性に基づく魚眼画像の有効領域抽出方法
CN114494085B (zh) 一种视频流复原方法、系统、电子设备及存储介质
EP3796639A1 (en) A method for stabilizing a camera frame of a video sequence
CN110602377B (zh) 一种视频稳像方法及装置
TW202044819A (zh) 嚴格同步光學影像穩定化中之滾動補償及模糊減少
JP2014138331A (ja) 撮影装置及びプログラム
JP5279453B2 (ja) 画像振れ補正装置、撮像装置及び画像振れ補正方法
CN110692235B (zh) 图像处理装置、图像处理程序及图像处理方法
US8792012B2 (en) Image processing device, system, and method for correcting focal plane distortion using a motion vector
JP2021033015A5 (zh)
JP6671975B2 (ja) 画像処理装置、撮像装置、画像処理方法およびコンピュータプログラム
CN103929584A (zh) 图像校正方法及图像校正电路
JPH057327A (ja) 動きベクトル検出装置
JP2021118523A (ja) 画像処理装置及び画像処理方法、プログラム、記憶媒体

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