一种基于运动状态的关键帧选取方法及装置与流程

文档序号:20357928发布日期:2020-04-10 23:28阅读:268来源:国知局
一种基于运动状态的关键帧选取方法及装置与流程

本申请涉及交通图像处理领域,特别是涉及一种基于运动状态的关键帧选取方法及装置。



背景技术:

实时vo/vslam和来自运动的大规模结构(sfm)对有限的计算资源提出了严峻的挑战。为了克服这个问题并减少数据冗余,通常的方法是从序列图像或视频中选择一些关键帧而不是所有帧进行处理,这样可以在保证准确性和可靠性的前提下大大降低计算压力。同时,适当的关键帧选择策略还可以提高vo/vslam局部运动估计的准确性和一致性。所以,如何选择关键帧是提高视觉slam(simultaneouslocalizationandmapping)算法精度及实时性的重要因素。

现有的关键帧的选取方法大致可以分为以下几类:a.以相同间隔或相等距离选取关键帧,并行跟踪和建图(ptam)需要在插入关键帧时满足预设跟踪条件,前一个关键帧的距离需满足预设的平移和旋转角度;b.图像重叠的关键帧选择,当重叠区域的匹配点小于检测点的50%时,通过非线性优化的视觉惯性slam(okvis)生成关键帧,同时边缘化最远关键帧,保留最新的一组帧和另一组关键帧;c.基于视差的关键帧选择,如果跟踪特征的平均视差超过某个阈值,把该帧视为关键帧;d.基于图像内容索引的关键帧选择,建立当前帧的特征聚类空间,然后计算当前帧与下一帧之间的特征距离,并根据特征距离阈值选择关键帧。

以相同间隔的关键帧选取方法虽然容易实现,不需要太多额外的计算,但是灵活性不足。而其他的方法(如图像重叠,视差)性能好一些,但是特征会重复提取和匹配,视差与协方差的计算更加耗时,降低了实时性。



技术实现要素:

本申请的目的在于克服上述问题或者至少部分地解决或缓减解决上述问题。

根据本申请的一个方面,提供了一种基于运动状态的关键帧选取方法,包括:

初始化步骤:将相邻的若干组图像依次存储到关键帧序列f中,每组图像包含相邻的两帧图像,并对所述图像进行预处理,所述的关键帧序列f中的图像依次为f1至fn;

特征点匹配步骤:从关键帧序列f的图像中提取特征点,并将图像fi的特征点与图像fi+k的特征点进行匹配,若匹配到的特征点数未达到预设的阈值,则令k=k+1,然后将图像fi的特征点与图像fi+k的特征点进行匹配,以此类推,直到匹配到的特征点数达到预设的阈值为止,得到图像的帧间特征点对,i的初始值为3,k为间隔帧数,k的初始值为1;

分解步骤:根据得到的特征点对计算关键帧序列f中相邻帧间的基本矩阵e,并将基本矩阵e分解为旋转矩阵r和平移矢量若旋转矩阵r为奇异矩阵、或平移矢量的平移尺度超过预设的阈值,则重新计算基本矩阵e,直到旋转矩阵r为非奇异矩阵、且平移矢量的平移尺度未超过预设的阈值为止;

偏转角度计算步骤:将非奇异的旋转矩阵r按照坐标轴的方向分解,得到各个坐标轴的偏转角度;

关键帧选择步骤:若得到的各个坐标轴的偏转角度满足阈值条件,则将当前帧选作关键帧,并添加到最终的关键帧序列中,否则,令k=k+1,然后返回特征点提取步骤;若k=m时,得到的各个坐标轴的偏转角度仍不满足阈值条件,则令k=1且i=i+1,然后返回特征点提取步骤。

可选地,所述的关键帧选择步骤中的阈值条件为:α<mα||β<mβ||γ<mγ,其中,α、β和γ分别为欧拉角在x轴、y轴和z轴方向的偏转角度。

可选地,所述的分解步骤中,计算基本矩阵e所采用的方法为五点法与ransac算法。

可选地,所述特征点匹配步骤中,提取特征点所采用的方法为fast方法。

可选地,所述方法所采用的数据集为kitti数据集。

根据本申请的另一个方面,提供了一种基于运动状态的关键帧选取装置,包括:

初始化模块,其配置成将相邻的若干组图像依次存储到关键帧序列f中,每组图像包含相邻的两帧图像,并对所述图像进行预处理,所述的关键帧序列f中的图像依次为f1至fn;

特征点匹配模块,其配置成从关键帧序列f的图像中提取特征点,并将图像fi的特征点与图像fi+k的特征点进行匹配,若匹配到的特征点数未达到预设的阈值,则令k=k+1,然后将图像fi的特征点与图像fi+k的特征点进行匹配,以此类推,直到匹配到的特征点数达到预设的阈值为止,得到图像的帧间特征点对,i的初始值为3,k为间隔帧数,k的初始值为1;

分解模块,其配置成根据得到的特征点对计算关键帧序列f中相邻帧间的基本矩阵e,并将基本矩阵e分解为旋转矩阵r和平移矢量若旋转矩阵r为奇异矩阵、或平移矢量的平移尺度超过预设的阈值,则重新计算基本矩阵e,直到旋转矩阵r为非奇异矩阵、且平移矢量的平移尺度未超过预设的阈值为止;

偏转角度计算模块,其配置成将非奇异的旋转矩阵r按照坐标轴的方向分解,得到各个坐标轴的偏转角度;

关键帧选择模块,其配置成若得到的各个坐标轴的偏转角度满足阈值条件,则将当前帧选作关键帧,并添加到最终的关键帧序列中,否则,令k=k+1,然后返回特征点提取步骤;若k=m时,得到的各个坐标轴的偏转角度仍不满足阈值条件,则令k=1且i=i+1,然后返回特征点提取步骤。

可选地,所述的关键帧选择模块中的阈值条件为:α<mα||β<mβ||γ<mγ,其中,α、β和γ分别为欧拉角在x轴、y轴和z轴方向的偏转角度。

可选地,所述的分解模块中,计算基本矩阵e所采用的方法为五点法与ransac算法。

可选地,所述特征点匹配模块中,提取特征点所采用的方法为fast方法。

可选地,所述装置所采用的数据集为kitti数据集。

本申请的基于运动状态的关键帧选取方法及装置,由于通过一定时间间隔内的帧间姿态变化,进而预测对象的运动状态,然后执行关键帧选择,因此能够平衡关键帧灵活性和实时性,此外,上述方法及装置还能够评估角点跟踪的阈值与对象运动偏移角度对关键帧影响。

根据下文结合附图对本申请的具体实施例的详细描述,本领域技术人员将会更加明了本申请的上述以及其他目的、优点和特征。

附图说明

后文将参照附图以示例性而非限制性的方式详细描述本申请的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:

图1是根据本申请一个实施例的一种基于运动状态的关键帧选取方法的示意性流程图;

图2是根据本申请一个实施例的一种基于运动状态的关键帧选取装置的示意性结构框图;

图3是根据本申请一个实施例的一种计算设备的示意性结构框图;

图4是根据本申请一个实施例的一种计算机可读存储介质的示意性结构框图。

具体实施方式

本申请实施例提供了一种基于运动状态的关键帧选取方法,所述方法采用的实验数据集为kitti数据集(由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办),该数据集是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。kitti数据采集平台包括2个灰度摄像机、2个彩色摄像机、一个velodyne3d激光雷达、4个光学镜头、以及1个gps导航系统。整个数据集由389对立体图像和光流图(每张图像最多包含15辆车及30个行人,并且存在不同程度的遮挡)、39.2公里视觉测距序列以及超过200,0003d标注物体的图像组成。

车辆的位姿在这几种情况下发生变化:a.沿水平面行进时,绕y轴的偏航角度的变化;b.上坡和下坡时绕x轴的俯仰角的变化;c.当发生横向抖动时,绕z轴的滚动角的变化。像机的局部运动在短时间间隔内是一致的,然后根据位姿角的变化选择关键帧。

图1是根据本申请一个实施例的一种基于运动状态的关键帧选取方法的示意性流程图。所述方法一般性地可包括:

s1、初始化步骤:读取序列化图像f1、f2、……、fn;

初始化过程中,将第一帧图像和第二帧图像分别存储到f中,并跟踪下一帧,如果失败,则依次选择相邻的两帧存储到f中。

s2、特征点匹配步骤:采用fast方法检测图像fi(i的初始值为3)中的特征点,然后跟踪图像fi+k(k的初始值为1)中的特征点,即将图像fi与图像fi+k进行特征点匹配,如果匹配到的特征点个数小于预设的阈值,则可以重新检测图像fi中的特征点,并重新将图像fi与图像fi+k进行特征点匹配,若再次匹配到的特征点个数仍然小于所述的阈值,则舍弃图像fi+k,增加间隔,即令k=k+1,然后将图像fi与新的图像fi+k进行特征点匹配……不断增加k的值,直到图像fi与某帧图像fq匹配到的特征点数达到阈值为止,得到图像fi与图像fq之间的特征点对。

s3、分解步骤:根据得到的图像fi与图像fq之间的特征点对,采用五点法与ransac算法计算基本矩阵e,并将基本矩阵e分解为旋转矩阵r和平移矢量

假设两图片的坐标空间p={p1,p2,…,pn},q={q1,q2,…,qn},在旋转和平移之后通过外部旋转元素(r|t)表示为:q=rp+t,

其中,

r*rt=i,det(r)=1

这里的r称为旋转矩阵,也称为方向余弦矩阵(dcm),若r为奇异矩阵、或平移矢量的平移尺度超过预设的阈值(两个条件只要满足一个即可),则重新计算基本矩阵e,直到旋转矩阵r为非奇异矩阵、且平移矢量的平移尺度未超过预设的阈值为止;

s4、偏转角度计算步骤:计算欧拉角在三个坐标轴x、y、z方向的分量,得到的三个分量分别为螺距角α、航向角β、以及横摇角γ。矩阵r的计算公式如下:

其中,rz(γ)表示绕z轴的旋转角度,ry(β)表示绕y轴的旋转角度、rx(α)表示绕x轴的旋转角度;

cα、cβ、cγ分别是cosα、cosβ、cosγ的缩写,sα是sinα的缩写sα、sβ、sγ分别是sinα、sinβ、sinγ的缩写;

然后可以得到如下的姿态角:

(1)当|r20|≤1-ξ时,姿态角可以表示如下:

其中,ξ是预设的一个足够小的正数,例如10-10

(2)当r20>1-ξ,且β→π/2时,做一个近似cos(β)≈0和sin(β)≈1,那么姿态角可以近似表示为:

(3)当r20<1-ξ,且β→-π/2时,做一个近似cos(β)≈0和sin(β)≈-1,然后姿态角可以近似表示为:

s5、关键帧选择步骤:如果α<mα||β<mβ||γ<mγ,则将当前帧放入最终的关键帧序列f中,m为预设的间隔帧数的最大值,mα、mβ和mγ为预设的三个姿态角阈值;如果得到的三个偏转角α、β和γ不满足α<mα||β<mβ||γ<mγ,则令k=1且i=i+1,然后返回步骤s2。

上述基于运动状态的关键帧选取方法忽略了向前方向以外的大幅度运动,通过角点跟踪算法减轻轻微运动的约束,评估不连续帧间特征点的一致性,确定帧间姿态角度变化的阈值和间隔步长,保证角点跟踪没有丢失并且对象的运动状态被准确地恢复,能够平衡关键帧的灵活性和实时性。

本申请实施例还提供了一种基于运动状态的关键帧选取装置,所述装置采用的实验数据集为kitti数据集(由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办),该数据集是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。kitti数据采集平台包括2个灰度摄像机、2个彩色摄像机、一个velodyne3d激光雷达、4个光学镜头、以及1个gps导航系统。整个数据集由389对立体图像和光流图(每张图像最多包含15辆车及30个行人,并且存在不同程度的遮挡)、39.2公里视觉测距序列以及超过200,0003d标注物体的图像组成。

车辆的位姿在这几种情况下发生变化:a.沿水平面行进时,绕y轴的偏航角度的变化;b.上坡和下坡时绕x轴的俯仰角的变化;c.当发生横向抖动时,绕z轴的滚动角的变化。像机的局部运动在短时间间隔内是一致的,然后根据位姿角的变化选择关键帧。

图2是根据本申请另一个实施例的一种基于运动状态的关键帧选取装置的示意结构框图。所述装置一般性地可包括:

初始化模块1:读取序列化图像f1、f2、……、fn,对关键帧序列f进行初始化,初始化过程中,将第一帧图像和第二帧图像分别存储到f中,并跟踪下一帧,如果失败,则依次选择相邻的两帧存储到f中。

特征点匹配模块2:该模块采用fast方法检测图像fi(i的初始值为3)中的特征点,然后跟踪图像fi+k(k的初始值为1)中的特征点,即将图像fi与图像fi+k进行特征点匹配,如果匹配到的特征点个数小于预设的阈值,则可以重新检测图像fi中的特征点,并重新将图像fi与图像fi+k进行特征点匹配,若再次匹配到的特征点个数仍然小于所述的阈值,则舍弃图像fi+k,增加间隔,即令k=k+1,然后将图像fi与新的图像fi+k进行特征点匹配……不断增加k的值,直到图像fi与某帧图像fq匹配到的特征点数达到阈值为止,得到图像fi与图像fq之间的特征点对。

分解模块3:根据得到的图像fi与图像fq之间的特征点对,采用五点法与ransac算法计算基本矩阵e,并将基本矩阵e分解为旋转矩阵r和平移矢量

假设两图片的坐标空间p={p1,p2,…,pn},q={q1,q2,…,qn},在旋转和平移之后通过外部旋转元素(r|t)表示为:q=rp+t,

其中,

r*rt=i,det(r)=1

这里的r称为旋转矩阵,也称为方向余弦矩阵(dcm),若r为奇异矩阵、或平移矢量的平移尺度超过预设的阈值(两个条件只要满足一个即可),则重新计算基本矩阵e,直到旋转矩阵r为非奇异矩阵、且平移矢量的平移尺度未超过预设的阈值为止;

偏转角度计算模块4:计算欧拉角在三个坐标轴x、y、z方向的分量,得到的三个分量分别为螺距角α、航向角β、以及横摇角γ。矩阵r的计算公式如下:

其中,rz(γ)表示绕z轴的旋转角度,ry(β)表示绕y轴的旋转角度、rx(α)表示绕x轴的旋转角度;

cα、cβ、cγ分别是cosα、cosβ、cosγ的缩写,sα是sinα的缩写sα、sβ、sγ分别是sinα、sinβ、sinγ的缩写;

然后可以得到如下的姿态角:

(1)当|r20|≤1-ξ时,姿态角可以表示如下:

其中,ξ是预设的一个足够小的正数,例如10-10

(2)当r20>1-ξ,且β→π/2时,做一个近似cos(β)≈0和sin(β)≈1,那么姿态角可以近似表示为:

(3)当r20<1-ξ,且β→-π/2时,做一个近似cos(β)≈0和sin(β)≈-1,然后姿态角可以近似表示为:

关键帧选择模块5:如果α<mα||β<mβ||γ<mγ,则将当前帧放入最终的关键帧序列f中,m为预设的间隔帧数的最大值,mα、mβ和mγ为预设的三个姿态角阈值;如果得到的三个偏转角α、β和γ不满足α<mα||β<mβ||γ<mγ,则令k=1且i=i+1,然后返回特征点匹配模块2。

上述基于运动状态的关键帧选取模块忽略了向前方向以外的大幅度运动,通过角点跟踪算法减轻轻微运动的约束,评估不连续帧间特征点的一致性,确定帧间姿态角度变化的阈值和间隔步长,保证角点跟踪没有丢失并且对象的运动状态被准确地恢复,能够平衡关键帧的灵活性和实时性。

本申请实施例还提供了一种计算设备,参照图3,该计算设备包括存储器1120、处理器1110和存储在所述存储器1120内并能由所述处理器1110运行的计算机程序,该计算机程序存储于存储器1120中的用于程序代码的空间1130,该计算机程序在由处理器1110执行时实现用于执行任一项根据本发明的方法步骤1131。

本申请实施例还提供了一种计算机可读存储介质。参照图4,该计算机可读存储介质包括用于程序代码的存储单元,该存储单元设置有用于执行根据本发明的方法步骤的程序1131′,该程序被处理器执行。

本申请实施例还提供了一种包含指令的计算机程序产品。当该计算机程序产品在计算机上运行时,使得计算机执行根据本发明的方法步骤。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、获取其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质是非短暂性(英文:non-transitory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(英文:magnetictape),软盘(英文:floppydisk),光盘(英文:opticaldisc)及其任意组合。

以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1