一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

时间戳延时标定方法及系统、设备和计算机可读存储介质与流程

2022-02-22 22:20:27 来源:中国专利 TAG:
时间戳延时标定方法及系统、设备和计算机可读存储介质与流程

本发明涉及计算机视觉领域,尤其涉及一种视频与惯性数据时间戳延时标定方法及系统、设备和计算机可读存储介质。

背景技术

在计算机视觉系统中,使用相机和惯性测量单元(Inertial Measurement Unit,IMU)的视觉惯性测程法近年来取得了很好的效果,利用相机可以获取视频数据,利用IMU可以获取惯性数据,因为视觉(即视频数据)和IMU的信息(即惯性数据)有互补的特点,这些融合视觉和惯性信息进行位姿估计的方法一般都需要严格的视频与惯性数据的时间戳对齐,否则不仅影响系统的精度,还会导致系统极易崩溃。

但是,目前许多同时提供了视频与惯性数据的设备,例如智能手机、GoPro运动相机、insta360全景相机等,由于没有使用硬件对视频与惯性数据的时间戳进行同步,因此两者之间可能存在一定的延时,并且这个延时并不是固定值,而是每次开始采集数据时都会变化,因此无法通过事先标定得知某一次采集数据的延时。而对于GoPro运动相机、insta360全景相机来说,其延时可能达到几十毫秒甚至几百毫秒,在这样大的延时下,基于视频与惯性数据的视觉惯性里程计(Visual-Inertial Odometry,VIO)已经无法正常运行,需要进行在线的延时标定。

目前,现有的视觉和惯性延时标定的方法主要分为离线标定和在线标定两种,离线标定需要使用标定板等特殊设备,还需要比较专业的采集方式才能进行标定,导致定位成本较高,定位程序比较复杂,而且很难使用在前面所述的在线使用或者每次都会变化的场景中,应用场景比较局限,方法不具有通用性,另外,在线标定主要是通过使用EKF算法或非线性优化在线优化,其需要有一个比较好的初值,或视觉与惯性数据的延时较小,使得vio算法可以勉强运行,定位的精度也不高,所以如何设计出具备通用性的定位方法而且能提高定位精度一直就是业界亟待突破的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种视频与惯性数据时间戳延时标定方法及系统、设备和计算机可读存储介质,只使用视频数据中相邻两帧图像之间的相对旋转,以及惯性数据中的角加速度数据,一方面使用最少的数据达到了方法最大的通用性,另一方面通过使用互相关分析和相位相关分析计算可以极大的提高标定的精度。

一方面,本发明提出一种视频与惯性数据时间戳延时标定方法,其中,所述视频与惯性数据时间戳延时标定方法包括:

步骤一,计算在视频数据中所有相邻帧之间的相对转角,以获取第一序列,所述第一序列中的每一个值表示相邻帧之间的相对转角大小;

步骤二,将惯性数据的旋转分量按照所述视频数据中相邻帧的时间间隔进行积分后,得到第二序列;

步骤三,计算所述第一序列与所述第二序列的互相关系数;

步骤四,利用所述互相关系数确定视频与惯性数据之间的时间戳延时。

优选的,所述第一序列为其中任意一个元素代表的是从所述视频数据中第i-1帧图像到第i帧图像的相对转角大小。

优选的,所述积分的计算方式为:

ri,i 1=R tati n2AxisAngle(ΔR);

其中,Angle2Rotation表示操作旋转向量转为旋转矩阵,Rotation2AxisAngle表示旋转矩阵转为旋转向量,△t表示连续的两个惯性数据之间的时间差,wx、wy、wz分别表示这两个惯性数据的x,y,z三个分量的平均值,△R是以旋转矩阵的形式表示积分区间里面的惯性测量单元转过的角度,ri,i 1是以旋转向量的形式表示积分区间里面的惯性测量单元转过的角度,所述第二序列为其中表示将惯性数据的旋转分量按照所述视频数据中第n-1帧与第n帧之间的时间间隔进行积分后的值。

优选的,所述互相关系数为序列C1,其中,所述序列C1中的第k项的计算方式为:

其中k=-m 1,…,n-1,L1(i)表示所述第一序列L1中的第i个值,L2(i k)表示所述第二序列L2中的第i k个值,如果i k<0或i k>n,则L2(i k)=0;

其中,在所述序列C1中的找出最大值,并将所述最大值对应的两个序列之间的延时计为第一延时t1。

优选的,所述计算所述第一序列与所述第二序列的互相关系数还包括:

在-T/2到T/2之间重新选择积分的起点并再次按照步骤二进行积分得到多个序列,每个序列分别与所述第一序列L1计算相关系数,并找到所述相关系数最大的一个序列为第三序列L3,将重新选择的积分起点与所述惯性数据起始点的时间差记为t2,则视频与惯性数据之间的延时为第二延时t1 t2,其中,T为所述视频数据中相邻帧的时间间隔,所述相关系数的计算方式为:

其中,X和Y是两个序列,cov(X,Y)表示序列X与序列Y的协方差,var(X)表示序列X的方差,var(Y)表示序列Y的方差。

优选的,所述利用所述互相关系数确定视频与惯性数据之间的时间戳延时包括:

对所述第一序列L1与所述第三序列L3分别做离散傅里叶变换得到F1和F3;

计算F1和F3的互功率谱,并进行离散傅里叶反变换得到相位相关系数,所述相位相关系数为一个序列且序列中的最大值对应的时间差为延时t3;

计算所述视频与惯性数据之间的时间戳延时t=t1 t2 t3。

另一方面,本发明还提出一种视频与惯性数据时间戳延时标定系统,所述视频与惯性数据时间戳延时标定系统包括:

转角计算模块,用于计算在视频数据中所有相邻帧之间的相对转角,以获取第一序列,所述第一序列中的每一个值表示相邻帧之间的相对转角大小;

积分计算模块,用于将惯性数据的旋转分量按照所述视频数据中相邻帧的时间间隔进行积分后,得到第二序列;

互相关系数计算模块,用于计算所述第一序列与所述第二序列的互相关系数;

时间戳延时计算模块,用于利用所述互相关系数确定视频与惯性数据之间的时间戳延时。

优选的,所述第一序列为其中任意一个元素代表的是从所述视频数据中第i-1帧图像到第i帧图像的相对转角大小。

优选的,所述积分的计算方式为:

ri,i 1=Rotation2AxisAngle(ΔR);

其中,Angle2Rotation表示操作旋转向量转为旋转矩阵,Rotation2AxisAngle表示旋转矩阵转为旋转向量,△t表示连续的两个惯性数据之间的时间差,wx、wy、wz分别表示这两个惯性数据的x,y,z三个分量的平均值,△R是以旋转矩阵的形式表示积分区间里面的惯性测量单元转过的角度,ri,i 1是以旋转向量的形式表示积分区间里面的惯性测量单元转过的角度,所述第二序列为其中表示将惯性数据的旋转分量按照所述视频数据中第n-1帧与第n帧之间的时间间隔进行积分后的值。

优选的,所述互相关系数为序列C1,其中,所述序列C1中的第k项的计算方式为:

其中k=-m 1,…,n-1,L1(i)表示所述第一序列L1中的第i个值,L2(i k)表示所述第二序列L2中的第i k个值,如果i k<0或i k>n,则L2(i k)=0;

其中,在所述序列C1中的找出最大值,并将所述最大值对应的两个序列之间的延时计为第一延时t1。

优选的,所述互相关系数计算模块还用于:

在-T/2到T/2之间重新选择积分的起点并再次按照步骤二进行积分得到多个序列,每个序列分别与所述第一序列L1计算相关系数,并找到所述相关系数最大的一个序列为第三序列L3,将重新选择的积分起点与所述惯性数据起始点的时间差记为t2,则视频与惯性数据之间的延时为第二延时t1 t2,其中,T为所述视频数据中相邻帧的时间间隔,所述相关系数的计算方式为:

其中,X和Y是两个序列,cov(X,Y)表示序列X与序列Y的协方差,var(X)表示序列X的方差,var(Y)表示序列Y的方差。

优选的,所述时间戳延时计算模块还用于:

对所述第一序列L1与所述第三序列L3分别做离散傅里叶变换得到F1和F3;

计算F1和F3的互功率谱,并进行离散傅里叶反变换得到相位相关系数,所述相位相关系数为一个序列且序列中的最大值对应的时间差为延时t3;

计算所述视频与惯性数据之间的时间戳延时t=t1 t2 t3。

另一方面,本发明还提供一种计算机可读存储介质,其中,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的视频与惯性数据时间戳延时标定方法的步骤。

另一方面,本发明还提供一种设备,其中,所述设备包括存储器和处理器,所述存储器存储计算机处理指令,所述处理器通过调用所述计算机处理指令来执行上述任一项所述的视频与惯性数据时间戳延时标定方法。

本发明提供的技术方案具有以下优点:只使用视频数据中相邻两帧图像之间的相对旋转,以及惯性数据中的角加速度数据,一方面使用最少的数据达到了方法最大的通用性,另一方面通过使用互相关分析和相位相关分析计算可以极大的提高标定的精度。

附图说明

图1为本发明一实施方式中视频与惯性数据时间戳延时标定方法的流程示意图;

图2为本发明一实施方式中视频与惯性数据时间戳延时标定系统的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

以下将对本发明所提供的一种视频与惯性数据时间戳延时标定方法进行详细说明。

请参阅图1,为本发明一实施方式中视频与惯性数据时间戳延时标定方法的流程示意图。

在步骤S1中,步骤一,计算在视频数据中所有相邻帧之间的相对转角,以获取第一序列,第一序列中的每一个值表示相邻帧之间的相对转角大小。

在本实施方式中,第一序列为其中任意一个元素代表的是从所述视频数据中第i-1帧图像到第i帧图像的相对转角大小。在本实施方式中,由于旋转有多种表示方法,而旋转的表示方法并不影响后续的计算流程,因此为简单起见,这里直接将旋转表示成轴角的形式,即一个三维的旋转轴和一个一维的转角大小,忽略旋转轴,只考虑相对转角大小。

在步骤S2中,步骤二,将惯性数据的旋转分量按照视频数据中相邻帧的时间间隔进行积分后,得到第二序列。

在本实施方式中,所述积分的计算方式为:

ri,i 1=Rotation2AxisAngle(ΔR);

其中,Angle2Rotation表示操作旋转向量转为旋转矩阵,Rotation2AxisAngle表示旋转矩阵转为旋转向量,△t表示连续的两个惯性数据之间的时间差,wx、wy、wz分别表示这两个惯性数据的x,y,z三个分量的平均值,△R是以旋转矩阵的形式表示积分区间里面的惯性测量单元(IMU)转过的角度,ri,i 1是以旋转向量(Axis Angle)的形式表示积分区间里面的惯性测量单元转过的角度,所述第二序列为其中表示将惯性数据的旋转分量(即IMU输出的角速度分量)按照所述视频数据中第n-1帧与第n帧之间的时间间隔进行积分后的值。

在本实施方式中,如果视频数据中相邻帧的时间间隔是T毫秒,则将惯性数据的旋转分量(即IMU输出的角速度分量)按照每隔T毫秒进行积分,积分后得到第二序列为

在本实施方式中,在计算机视觉系统中,使用相机和惯性测量单元(Inertial Measurement Unit,IMU)的视觉惯性测程法近年来取得了很好的效果,利用相机可以获取视频数据,利用IMU可以获取惯性数据,这些融合视觉和惯性信息进行位姿估计的方法一般都需要严格的视频与惯性数据的时间戳对齐,否则不仅影响系统的精度,还会导致系统极易崩溃。

在步骤S3中,步骤三,计算第一序列与第二序列的互相关系数。

在本实施方式中,所述互相关系数为序列C1,其中,所述序列C1中的第k项的计算方式为:

其中k=-m 1,…,n-1,L1(i)表示所述第一序列L1中的第i个值,L2(i k)表示所述第二序列L2中的第i k个值,如果i k<0或i k>n,则82(i k)=0;

其中,在所述序列C1中的找出最大值,并将所述最大值对应的两个序列之间的延时计为第一延时t1。在本实施方式中,得到的互相关系数总共有m n-1项,找出其中的最大值,其所在的位置即对应着两个序列之间的延时t1,为视频与惯性数据之间的第一延时。

在本实施方式中,所述计算所述第一序列与所述第二序列的互相关系数还包括:

在-T/2到T/2之间重新选择积分的起点并再次按照步骤二进行积分得到多个序列,每个序列分别与所述第一序列L1计算相关系数,并找到所述相关系数最大的一个序列为第三序列L3,将重新选择的积分起点与所述惯性数据起始点的时间差记为t2,则视频与惯性数据之间的延时为第二延时t1 t2,其中,T为所述视频数据中相邻帧的时间间隔,所述相关系数的计算方式为:

其中,X和Y是两个序列,cov(X,Y)表示序列X与序列Y的协方差,var(X)表示序列X的方差,var(Y)表示序列Y的方差。

在本实施方式中,步骤S2中是从第一个惯性数据(即imu数据)开始积分的,而由于视频与惯性数据之间的延时是任意的,因此积分从第一个数据开始可能不够精确,因此需要进行更精确的计算,找到精确的起始点开始积分,对imu的时间戳都加上t1,得到粗略对齐后的imu序列。

在本实施方式中,积分的周期为T,因此在时间-T/2到T/2内,选择不同的起点再次按照步骤二进行积分,得到多组序列,将这多组序列分别与L1计算互相关系数,其中互相关值最大的一组即为最佳的对齐序列(记为L3),其起始点的相对imu序列第一个数据的时间差为t2,则所求的视频与惯性数据之间延时为第二延时t1 t2。

在本实施方式中,上述步骤可以使得标定的延时精度达到imu数据的周期精度,例如对于200hz的imu数据,则标定的精度可以达到1/200=0.005秒的精度,足以满足绝大多数vio算法的要求。如果需要更高的精度,则对L1与L3进行相位相关分析,在频域内可以得到更高的标定精度。

在步骤S4中,步骤四,利用互相关系数确定视频与惯性数据之间的时间戳延时。

在本实施方式中,所述利用所述互相关系数确定视频与惯性数据之间的时间戳延时包括:

对所述第一序列L1与所述第三序列L3分别做离散傅里叶变换得到F1和F3;

计算F1和F3的互功率谱,并进行离散傅里叶反变换得到相位相关系数,所述相位相关系数为一个序列且序列中的最大值对应的时间差为延时t3;

计算所述视频与惯性数据之间的时间戳延时t=t1 t2 t3。

在本实施方式中,对L1与83做相位相关分析,首先对L1和L3分别做离散傅里叶变换得到F1和F3,之后计算F1与F3的互功率谱,之后再进行离散傅里叶反变换得到相位相关系数。与互相关类似,这一步得到的也是一个序列,序列中的最大值对应的时间差便是更加精确的延时t3,此时所求视频与惯性数据之间的时间戳延时t=t1 t2 t3。

其计算公式如下:

其中为离散傅里叶变换,为离散傅里叶反变换,r表示相位相关系数。

在本实施方式中,t1是第一次做互相关分析之后取最大值对应的时间差得到的第一延时(也可称之为粗略延时),在这个第一延时周围重新再次做积分得到一个增量t2,然后在t1 t2的基础上再做相位相关分析得到增量t3。

本发明具体实施方式中提供的步骤S1只需要得到视频数据中相邻两帧图片之间的相对转角,而旋转的表示形式有多种,可以采用一维的旋转角度,也可以采用3维的欧拉角,或是四元素表示,因此序列L1,L2,L3中的每个元素都可以是3维的。不管序列中的转角是如何表示的,后面依然可以计算互相关系数和相位相关,整个流程并没有实质性的改变,其中相对转角可以通过光流、特征点匹配或者视觉SLAM的方式得到,因此本发明的技术方案不需要借助标定板等特殊设备,解决了现有技术中大部分方法需要借助标定板的缺陷,本发明的技术方案不需要借助标定板等外物,具有更高的通用性。

在本实施方式中,步骤S4中得到的时间戳延时可以使得标定的延时精度达到惯性数据(即imu数据)的周期精度,足以满足绝大多数vio算法的要求,例如对于200Hz的imu数据,则标定的精度可以达到1/200=0.005秒的精度,所以,步骤S4中得到的时间戳延时是一种高精度的。

在本发明的其它实施方式中,如果需要更高的精度,则对L1与L3进行相位相关分析,在频域内可以得到更高的标定精度。具体的,在步骤S4中得到的时间戳延时的附近进行多次重新积分,多次计算互相关系数,确定其中最佳的时间戳延时,然后,通过相位相关分析确定视频与惯性数据之间的时间戳精确延时。

在本发明的其它实施方式中,互相关分析就是计算互相关系数然后找最大值的过程,相位相关分析就是计算互功率谱然后找最大值的过程,在步骤S3中已经计算了互相关系数,其实已经是做了互相关分析,计算出了一个延时t2,步骤S4是在t1的基础上前面微调一下,多次计算互相关系数,每一组都是一个数组,然后取多组互相关系数里面的最大值(即在矩阵里面找一个最大值),这个最大值对应的微调量就是t2。

现存的许多自标定方法可以标定相机和imu之间的延时,但是都是假设两者的延时比较小,在毫秒级,而本发明的技术方案可以在延时非常大的情况下,如秒级甚至分钟级,依然可以可靠的标定出两者的时间戳延时。但是,本发明的技术方案使用的互相关分析可以处理延时非常大的情况,并且在初步计算出延时t1之后,会根据t1的结果重新积分,以及相位相关分析,再次寻找最佳的延时。这样做既扩大了可以处理的延时数量级,又保证了足够的标定精度。

现有方法一般是将视觉数据(即视频数据)和惯性数据耦合到一起处理的,因此对数据的噪声,以及各项参数的初始值更敏感。但是,本发明的技术方案是分开计算视觉数据和惯性数据,对数据的噪声,以及传感器的各项参数的敏感性更低。

现有技术由于imu数据存在信号噪声和零漂,因此其它方法无法单独标定延时,或者标定延时需要给出比较精确的信号噪声和零漂值。但是,本发明的技术方案采用互相关分析的方法,噪声和零漂对结果没有明显影响,因此标定程序更加简单、稳定性更高。

请参阅图2,为本发明一实施方式中视频与惯性数据时间戳延时标定系统的结构示意图。

在本实施方式中,视频与惯性数据时间戳延时标定系统10包括:转角计算模块11、积分计算模块12、互相关系数计算模块13、时间戳延时计算模块14。

转角计算模块11,用于计算在视频数据中所有相邻帧之间的相对转角,以获取第一序列,所述第一序列中的每一个值表示相邻帧之间的相对转角大小。

在本实施方式中,所述第一序列为其中任意一个元素代表的是从所述视频数据中第i-1帧图像到第i帧图像的相对转角大小。

积分计算模块12,用于将惯性数据的旋转分量按照所述视频数据中相邻帧的时间间隔进行积分后,得到第二序列。

在本实施方式中,所述积分的计算方式为:

ri,i 1=Rotation2AxisAngle(ΔR);

其中,Angle2Rotation表示操作旋转向量转为旋转矩阵,Rotation2AxisAngle表示旋转矩阵转为旋转向量,△t表示连续的两个惯性数据之间的时间差,wx、wy、wz分别表示这两个惯性数据的x,y,z三个分量的平均值,△R是以旋转矩阵的形式表示积分区间里面的惯性测量单元(IMU)转过的角度,ri,i 1是以旋转向量(Axis Angle)的形式表示积分区间里面的惯性测量单元转过的角度,所述第二序列为其中表示将惯性数据的旋转分量(即IMU输出的角速度分量)按照所述视频数据中第n-1帧与第n帧之间的时间间隔进行积分后的值。

互相关系数计算模块13,用于计算所述第一序列与所述第二序列的互相关系数。

在本实施方式中,所述互相关系数为序列C1,其中,所述序列C1中的第k项的计算方式为:

其中k=-m 1,…,n-1,L1(i)表示所述第一序列L1中的第i个值,L2(i k)表示所述第二序列L2中的第i k个值,如果i k<0或i k>n,则L2(i k)=0;

其中,在所述序列C1中的找出最大值,并将所述最大值对应的两个序列之间的延时计为第一延时t1。

在本实施方式中,互相关系数计算模块13还用于:

在-T/2到T/2之间重新选择积分的起点并再次按照步骤二进行积分得到多个序列,每个序列分别与所述第一序列L1计算相关系数,并找到所述相关系数最大的一个序列为第三序列L3,将重新选择的积分起点与所述惯性数据起始点的时间差记为t2,则视频与惯性数据之间的延时为第二延时t1 t2,其中,T为所述视频数据中相邻帧的时间间隔,所述相关系数的计算方式为:

其中,X和Y是两个序列,cov(X,Y)表示序列X与序列Y的协方差,var(X)表示序列X的方差,var(Y)表示序列Y的方差。

时间戳延时计算模块14,用于利用所述互相关系数确定视频与惯性数据之间的时间戳延时。

在本实施方式中,时间戳延时计算模块14还用于:

对所述第一序列L1与所述第三序列L3分别做离散傅里叶变换得到F1和F3;

计算F1和F3的互功率谱,并进行离散傅里叶反变换得到相位相关系数,所述相位相关系数为一个序列且序列中的最大值对应的时间差为延时t3;

计算所述视频与惯性数据之间的时间戳延时t=t1 t2 t3。

在本实施方式中,装置项中的详细说明可以参阅前述方法项中相关对应的详细说明,在此不做重复记载。

另一方面,本发明还提供一种计算机可读存储介质,其中,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述的视频与惯性数据时间戳延时标定方法的步骤。

另一方面,本发明还提供一种设备,其中,所述设备包括存储器和处理器,所述存储器存储计算机处理指令,所述处理器通过调用所述计算机处理指令来执行上述的视频与惯性数据时间戳延时标定方法。

本发明提供的技术方案具有以下优点:

本发明的技术方案不需要借助标定板等特殊设备,解决了现有技术中大部分方法需要借助标定板的缺陷,本发明的技术方案不需要借助标定板等外物,具有更高的通用性;

本发明的技术方案使用的互相关分析可以处理延时非常大的情况,并且在初步计算出延时t1之后,会根据t1的结果重新积分,以及相位相关分析,再次寻找最佳的延时。这样做既扩大了可以处理的延时数量级,又保证了足够的标定精度;

本发明的技术方案是分开计算视觉数据和惯性数据,对数据的噪声,以及传感器的各项参数的敏感性更低;

本发明的技术方案采用互相关分析的方法,噪声和零漂对结果没有明显影响,因此标定程序更加简单、稳定性更高。

值得注意的是,上述实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,的存储介质,如ROM/RAM、磁盘或光盘等。

以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献