掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请涉及计算机视觉技术领域,尤其涉及一种光流跟踪装置。

背景技术

目前基于金字塔光流跟踪技术的应用越来越多,越来越广泛,利用中央处理器(central processing unit,CPU)进行金字塔光流跟踪会导致以下两种问题:一是会占用较多算力资源,其次CPU运行原理为指令操作,若在进行金字塔光流跟踪时,CPU被其他程序占用则需要等待从而会造成延迟,进而增加了较多的时间成本。

发明内容

本申请的目的是提供一种光流跟踪装置,用于节省光流跟踪的时间。

第一方面,本申请实施例提供了一种光流跟踪的装置,所述装置包括:

中央处理器CPU、现场可编程门阵列FPGA,所述FPGA中包括内存单元、跟踪单元,其中:

所述CPU,被配置为获取第一目标图像和第二目标图像,分别对所述第一目标图像和所述第二目标图像进行不同缩放比例的缩放处理,得到所述第一目标图像对应的n张子图像,以及所述第二目标图像对应的n张子图像;其中所述第一目标图像对应的每张子图像中包含预先标记的同一跟踪目标的目标特征点,且所述第一目标图像的每张子图像和所述第二目标图像的每张子图像具有一一对应关系,且相互对应的子图像构成子图像组;所述n为大于1的正整数;

所述内存单元,被配置为获取各所述子图像组中的子图像并存储;

所述跟踪单元,被配置为基于所述跟踪目标的所述目标特征点,采用光流跟踪方法依序对所述内存单元中存储的各所述子图像组中的子图像进行处理,得到所述跟踪目标在所述第二目标图像中的与目标特征点对应的特征点。

在一个实施例中,所述中央处理器CPU被配置为:获取所述第一目标图像和所述第二目标图像,分别对所述第一目标图像和所述第二目标图像进行不同缩放比例的缩放处理,得到所述第一目标图像对应的n张子图像,以及所述第二目标图像对应的n张子图像;

所述CPU还被配置为,按照预设扩充比例对所述第一目标图像的n张子图与所述第二目标图像的n张子图的边界进行填充。

在一个实施例中,所述内存单元包括第一内存子单元、第二内存子单元,其中:

所述第二内存子单元,被配置为获取预处理后的所述第一目标图像的n张子图和所述第二目标图像的n张子图,并将所述第一目标图像的n张子图像转移到所述第一内存子单元中;

所述第一内存子单元,被配置为从所述第二内存子单元中获取所述第一目标图像的n张子图并存储。

在一个实施例中,所述跟踪单元包括角点筛选子单元和循环执行n次的光流计算子单元,其中:

所述光流计算子单元,被配置为依序基于第一输入参数和对应的子图像组进行正向跟踪得到所述第二目标图像的针对所述跟踪目标的与目标特征点对应的特征点,其中,针对首次循环过程,所述第一输入参数为对应的子图像组内的第一目标图像的子图像的目标特征点,针对处于非首次的循环过程,所述第一输入参数是上一次循环过程的输出结果和本次循环时所述光流计算子单元对应的子图像组内的第一目标图像的子图像的目标特征点;

所述光流计算子单元,还被配置为依序基于第二输入参数和对应的子图像组进行反向跟踪得到所述第一目标图像的针对所述跟踪目标的校验特征点,其中,针对首次循环过程,所述第二输入参数为对应的各子图像组内的第二目标图像的子图像的与目标特征点对应的特征点,针对处于非首次的循环过程,所述第二输入参数是上一次循环过程的输出结果和本次循环时所述光流计算子单元对应的子图像组内的第二目标图像的子图像的与目标特征点对应的特征点;

所述角点筛选子单元,被配置为当所述第一目标图像的目标特征点与所述第一目标图像的校验特征点之间的差值小于预设值时,输出所述第二目标图像的与目标特征点对应的特征点和跟踪成功的标志;当所述第一目标图像的目标特征点与所述第一目标图像的校验特征点之间的差值大于等于所述预设值时,输出跟踪失败的标志。

在一个实施例中,针对每次循环过程,所述光流计算子单元的所述输出结果为所述光流计算子单元对应的子图像组内的第一目标图像的子图像的目标特征点和光流矢量之和,其中所述光流计算子单元确定光流矢量时,被配置为:

获取第三输入参数,并根据所述第三输入参数分别得到所述第一目标图像和所述第二目标图像的目标灰度值数据;所述目标灰度值数据包括以下任一种:第一目标图像对应的子图和第二目标图像对应的子图在以第三输入参数为中心的第一预设窗口内的图像的第一灰度值数据、第一目标图像对应的子图和第二目标图像对应的子图的第二灰度值数据;其中,若所述光流计算子单元处于首次循环过程,则所述光流计算子单元的所述第三输入参数为所述第一目标图像对应的子图的目标特征点和所述目标特征点在所述第二目标图像对应的子图上对应位置的坐标;若所述光流计算子单元处于非首次循环过程,则所述光流计算子单元的输入参数为所述第一目标图像对应的子图的目标特征点和上一次循环过程的输出结果;

对所述目标灰度值数据进行scharr滤波操作,得到所述第一目标图像对应的子图和所述第二目标图像对应的子图的灰度值梯度;

根据所述灰度值梯度构建协方差矩阵;

对所述第一目标图像对应的子图和所述第二目标图像对应的子图以及所述第三输入参数进行加权操作,得到加权像素值;

根据所述协方差矩阵和所述加权像素值得到差异化矩阵;

根据所述协方差矩阵和所述差异化矩阵得到所述光流矢量。

在一个实施例中,所述FPGA还包括控制单元,其中:

所述控制单元,分别与所述内存单元和所述跟踪单元通信连接,被配置为从所述内存单元获取所述第一目标图像的特征点给所述跟踪单元,并控制所述跟踪单元对各所述子图像组的处理顺序。

在一个实施例中,所述控制单元包括:左右帧正向跟踪子单元、左右帧反向跟踪子单元、前后帧正向跟踪子单元、前后帧反向跟踪子单元,其中:

所述左右帧正向跟踪子单元,被配置为控制所述跟踪单元对所述子图像组进行左右帧正向跟踪;

所述左右帧反向跟踪子单元,被配置为在所述左右帧正向跟踪子单元控制所述跟踪单元对所述子图像组进行左右帧正向跟踪之后,控制所述跟踪单元将所述左右帧正向跟踪子单元的跟踪结果作为输入对所述子图像组进行左右帧反向跟踪;

所述前后帧正向跟踪子单元,被配置为控制所述跟踪单元对所述子图像组进行前后帧正向跟踪;

所述前后帧反向跟踪子单元,被配置为在所述前后帧正向跟踪子单元控制所述跟踪单元对所述子图像组进行前后帧正向跟踪之后,控制所述跟踪单元将所述前后帧正向跟踪子单元的跟踪结果作为输入对所述子图像组进行前后帧反向跟踪。

在一个实施例中,所述装置还包括双倍数据内存存储单元,其中:

所述双倍数据内存存储单元,被配置为存储所述第一目标图像和所述第二目标图像,并将所述第一目标图像和所述第二目标图像发送至所述CPU。

在一个实施例中,所述跟踪单元得到所述跟踪目标在所述第二目标图像中的与目标特征点对应的特征点后,所述第二内存子单元,还被配置为标记所述第二图像的与目标特征点对应的特征点,并将标记后的第二目标图像的n张子图像转存到所述第一内存子单元中。

本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1a为本申请实施例提供的光流跟踪装置的图像随时间变化的示意图;

图1b为本申请实施例提供的光流跟踪装置的将两张图像同比例采样缩小的示意图;

图1c为本申请实施例提供的光流跟踪装置的装置示意图;

图2为本申请实施例提供的光流跟踪装置的CPU结构示意图;

图3为本申请实施例提供的光流跟踪装置的金字塔分层示意图;

图4为本申请实施例提供的光流跟踪装置的对第一目标图像的4个子图按照预设比例进行扩充的示意图;

图5a为本申请实施例提供的光流跟踪装置的跟踪单元结构图;

图5b为本申请实施例提供的光流跟踪装置的光流计算子单元执行首次循环过程的输入输出示意图;

图5c为本申请实施例提供的光流跟踪装置的光流计算子单元执行第二次循环过程的输入输出示意图;

图5d为本申请实施例提供的光流跟踪装置的光流计算子单元执行第三次循环过程的输入输出示意图;

图5e为本申请实施例提供的光流跟踪装置的光流计算子单元执行第四次循环过程的输入输出示意图;

图5f为本申请实施例提供的光流跟踪装置的光流计算子单元执行首次循环过程的输入输出示意图;

图5g为本申请实施例提供的光流跟踪装置的光流计算子单元执行第二次循环过程的输入输出示意图;

图5h为本申请实施例提供的光流跟踪装置的光流计算子单元执行第三次循环过程的输入输出示意图;

图5i为本申请实施例提供的光流跟踪装置的光流计算子单元执行第四次循环过程的输入输出示意图;

图6为本申请实施例提供的光流跟踪装置的控制模块示意图。

具体实施方式

为了使本领域普通人员更好地理解本申请的技术方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本申请的说明书和权利要求书的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

发明人研究发现,近些年随着人工智能与计算机技术的发展,计算机视觉技术被广泛应用,其中对移动物体进行追踪成为图像处理中的一个重要环节。不管是对视频中移动物体识别追踪、汽车自动驾驶的视觉部分还是机器人自主导航定位与建图都要用到光流跟踪技术,而相关技术中大都是调用跨平台计算机视觉和机器学习软件库(OPENCV)函数来完成对金字塔光流跟踪的计算,但是该库函数的计算需占用大量的计算资源与时间资源。

发明人研究发现,目前基于金字塔光流跟踪技术的应用越来越多,越来越广泛,利用CPU进行金字塔光流跟踪会导致以下两种问题:一是会占用较多算力资源,其次CPU运行原理为指令操作,若在进行金字塔光流跟踪时,CPU被其他程序占用则需要等待从而会造成延迟,进而增加了较多的时间成本。

发明人研究发现,光流跟踪是计算机视觉处理中图像亮度变化转化为运动信息描述的一种方式。光流计算是利用灰度变化与二维速度场结合起来得到光流的基本计算方式,光流计算是基于目标物体在图像中的移动光学特征提出了两个假设:

1、(亮度恒定不变)运动物体的灰度在很短的间隔时间内保持不变。

2、时间连续或运动是“小运动”。给定领域内的速度向量场缓慢变化。

实际场景中,由于物体运动或者相机运动会导致同一物体在相邻两帧图像里面所处的位置不同。在此时间段场景亮度未发生较大变化时,假设这两帧图像中相同物体的像素值是不变的如图1a所示。在image(影像)0中的特征点A在下一帧image1中移动到中间位置,需要满足光流跟踪的另一个假设条件物体的小运动,将这两张图像同比例采样缩小如图1b,然后从最顶层开始计算光流逐层迭代求解最终的光流。

根据图1a中的图像随时间变化,image0中位于(x,y)处的像素值可以写为I(x,y,t)。其中,x为横坐标,y为纵坐标,t为时间;这里根据假设1可以得到下面公式:

I(x,y,t)=(x+dx,y+dy,t+dt);公式(1)

将(1)式右端进行泰勒展开,得:

其中ε代表二阶无穷小项,可以忽略不计,再将公式(2)代入公式(1)后同除以dt,可得:

设u,v分别为光流沿x轴与y轴的速度矢量,得到:

综上公式(3)可以写为:

I

其中,Ix,Iy,It均可由图像数据求得,而(u,v)即为所求光流矢量。

有鉴于此,本申请提出了一种光流跟踪装置,用于解决上述问题。本申请的发明构思可概括为:采用CPU获取第一目标图像和第二目标图像,其中,第一图像上包含预先标记的目标特征点,然后采用现场可编程门阵列(Field Programmable Gate Array,FPGA)采用光流跟踪方法对该第一目标图像和第二目标图像进行处理,得到第二目标图像中的与目标特征点对应的特征点。

如图1c所示,为本申请实施例中的光流跟踪装置的装置示意图,图中包括:CPU101、FPGA102;该FPGA上设置有内存单元201和跟踪单元202;其中:

CPU101,被配置为获取第一目标图像和第二目标图像,分别对第一目标图像和第二目标图像进行不同缩放比例的缩放处理,得到第一目标图像对应的n张子图像,以及第二目标图像对应的n张子图像;其中第一目标图像对应的每张子图像中包含预先标记的同一跟踪目标的目标特征点,且第一目标图像的每张子图像和第二目标图像的每张子图像具有一一对应关系,且相互对应的子图像构成子图像组;n为大于1的正整数;

在一个实施例中,如图2所示,在CPU上设置有金字塔分层单元203、图像包边单元204;其中:

金字塔分层单元203,被配置为获取第一目标图像和第二目标图像,分别对第一目标图像和第二目标图像进行不同缩放比例的缩放处理,得到第一目标图像对应的n张子图像,以及第二目标图像对应的n张子图像;

在一个实施例中,按照一个缩放比例可以得到一张与目标图像对应的子图,例如:如图3所示,第一目标图像按照四种不同的缩放比例被分为4张子图像,第二目标图像按照与第一目标图像相同的缩放比例被分为4张子图像。

在一些实施例中,第一目标图像经过缩放处理后,对应子图上的特征点可能落在子图的外边,为了解决该问题,本申请实施例中图像包边单元204,被配置为,按照预设扩充比例对第一目标图像的n张子图与第二目标图像的n张子图的边界分别进行填充。

在一个实施例中,对应子图上的特征点为角点检测后得到的角点,需要知道的是相关技术中的角点检测算法均适用于本申请。

例如:以图3中的第一目标图像的4个子图为例,如图4所示,图中1-4为对第一目标图像进行不同比例缩放后得到的4个子图,对第一目标图像的4个子图按照预设比例进行扩充。

内存单元201,被配置为获取各子图像组中的子图像并存储;

在一个实施例中,内存单元201中设置有第一内存子单元、第二内存子单元;其中:

第二内存子单元,被配置为获取预处理后的第一目标图像的n张子图和第二目标图像的n张子图,并将第一目标图像的n张子图像转移到第一内存子单元中;

第一内存子单元,被配置为从第二内存子单元中获取第一目标图像的n张子图并存储。

本申请实施例中,采用第一内存子单元直接从第二内存子单元中获取目标图像,实现了硬件内存的共享。

跟踪单元202,被配置为基于跟踪目标的目标特征点,采用光流跟踪方法依序对内存单元中存储的各子图像组中的子图像进行处理,得到跟踪目标在第二目标图像中的与目标特征点对应的特征点。

在一个实施例中,如图5a所示,跟踪单元包括角点筛选子单元301和循环执行n次的光流计算子单元302,为了便于理解,下面以在跟踪单元中光流计算子单元循环执行4次为例进行说明。其中,在本申请实施例中,光流计算子单元302,被配置为依序基于第一输入参数和对应的子图像组进行正向跟踪得到第二目标图像的针对跟踪目标的与目标特征点对应的特征点,其中,针对首次循环过程,第一输入参数为对应的子图像组内的第一目标图像的子图像的目标特征点,针对处于非首次的循环过程,第一输入参数是上一次循环过程的输出结果和本次循环时光流计算子单元对应的子图像组内的第一目标图像的子图像的目标特征点。

为了便于理解,下面以光流计算子单元循环执行4次为例对正向追踪时光流计算子单元的输入以及输出进行详细说明,其中:

光流计算子单元执行首次循环过程,被配置为基于对应的子图像组内的第一目标图像的子图像的目标特征点和对应的子图像组进行光流计算。例如:首次循环过程中,子图像组中的第一目标图像为1和第二目标图像为1’,位于1上的目标特征点为A。如图5b所示,根据1、1’和A点进行光流计算,得到首次循环过程的中间特征点A1,即光流计算子单元首次循环过程的输出结果。

光流计算子单元执行第二次循环过程,被配置为基于第一输入参数和对应的子图像组进行光流计算。第二次循环过程中的第一输入参数是首次循环过程的输出结果和执行第二次循环过程时光流计算子单元对应的子图像组内的第一目标图像的子图像的目标特征点;例如:执行第二次循环过程时,子图像组中的第一目标图像为2,第二目标图像为2’,位于2上的目标特征点为A。如图5c所示,则根据2、2’和A、A1进行光流计算,得到第二次循环过程的中间特征点A2,即第二次循环过程的输出结果。

光流计算子单元执行第三次循环过程时,被配置为基于第一输入参数和对应的子图像组进行光流计算。第三次循环过程的第一输入参数是第二次循环过程的输出结果和第三次循环过程对应的子图像组内的第一目标图像的子图像的目标特征点;例如:第三次循环过程中,子图像组中的第一目标图像为3,第二目标图像为3’,位于3上的目标特征点为A。如图5d所示,则根据3、3’和A、A2进行光流计算,得到第三次循环过程的中间特征点A3,即第三次循环过程的输出结果。

光流计算子单元执行第四次循环过程时,被配置为基于第一输入参数和对应的子图像组进行光流计算。第四次循环过程的第一输入参数是第三次循环过程的输出结果和第四次循环过程对应的子图像组内的第一目标图像的子图像的目标特征点;例如:第四次循环过程中,子图像组中的第一目标图像为4,第二目标图像为4’,位于4上的目标特征点为A。如图5e所示,则根据4、4’和A、A3进行光流计算,得到第四次循环过程的中间特征点A4。

由于第四次循环过程为光流计算子单元的最后一次循环,所以第四次循环过程的中间特征点A4即为第二目标图像的与目标特征点对应的特征点B。

根据第一目标图像的目标特征点A得到的第二目标图像的与目标特征点对应的特征点B并不一定是准确的,所以为了提高准确性,在进行正向跟踪得到B点之后,要进行反向跟踪来验证B点是否准确,即根据B点得到的第一图像的校验特征点与目标特征点的误差是否在预设范围内。因此,光流计算子单元302,还被配置为依序基于第二输入参数和对应的子图像组进行反向跟踪得到第一目标图像的针对跟踪目标的校验特征点,其中,针对光流计算子单元首次循环过程,第二输入参数为对应的各子图像组内的第二目标图像的子图像的与目标特征点对应的特征点,针对光流计算子单元非首次的循环过程,第二输入参数是上一次循环过程的输出结果和光流计算子单元对应的子图像组内的第二目标图像的子图像的与目标特征点对应的特征点。

为了便于理解,下面以有4个光流计算子单元为例进行详细说明,其中:

光流计算子单元执行首次循环过程时,被配置为基于对应的子图像组内的第二目标图像的子图像的与目标特征点对应的特征点和对应的子图像组进行光流计算,例如:如图5f所示,光流计算子单元首次循环过程中,子图像组中的第一目标图像为1和第二目标图像为1’,位于1’上的目标特征点为B。根据1、1’和B点进行光流计算,得到光流计算子单元首次循环过程的中间特征点B1。

光流计算子单元执行第二次循环过程时,被配置为基于第二输入参数和对应的子图像组进行光流计算。第二次循环过程的第二输入参数是首次循环过程的输出结果和第二次循环过程对应的子图像组内的第二目标图像的子图像的与目标特征点对应的特征点;例如:如图5g所示,第二次循环过程中,子图像组中的第一目标图像为2,第二目标图像为2’,位于2’上的与目标特征点对应的特征点为B。则根据2、2’和B、B1进行光流计算,得到第二次循环过程的中间特征点B2。

光流计算子单元执行第三次循环过程时,被配置为基于第二输入参数和对应的子图像组进行光流计算。第三次循环过程的第二输入参数是第二次循环过程的输出结果和第三次循环过程对应的子图像组内的第二目标图像的子图像的与目标特征点对应的特征点;例如:如图5h所示,第三次循环过程中,子图像组中的第一目标图像为3,第二目标图像为3’,位于3’上的与目标特征点对应的特征点为B。则根据3、3’和B、B2进行光流计算,得到第三次循环过程的中间特征点B3。

光流计算子单元执行第四次循环过程时,被配置为基于第二输入参数和对应的子图像组进行光流计算。第四次循环过程的第二输入参数是第三次循环过程的输出结果和第四次循环过程对应的子图像组内的第二目标图像的子图像的与目标特征点对应的特征点;例如:如图5i所示,第四次循环过程中,子图像组中的第一目标图像为4,第二目标图像为4’,位于4’上的与目标特征点对应的特征点为B。则根据4、4’和B、B3进行光流计算,得到第四次循环过程的中间特征点B4。

由于第四次循环过程为光流计算子单元的最后一次循环过程,所以第四次循环过程的中间特征点即为第一目标图像的校验特征点C。

角点筛选子单元,被配置为当第一目标图像的目标特征点与第一目标图像的校验特征点之间的差值小于预设值时,输出第二目标图像的与目标特征点对应的特征点和跟踪成功的标志;当第一目标图像的目标特征点与第一目标图像的校验特征点之间的差值大于等于预设值时,输出跟踪失败的标志。

在一个实施例中,例如:第一目标图像的目标特征点为A,第一目标图像的校验特征点为C,A和C的差值小于预设值,则输出第二目标图像的与目标特征点对应的特征点B和跟踪成功的标志。

在本申请实施例中,在正向跟踪过程中,针对光流计算子单元的每次循环过程,该光流计算子单元的输出结果(中间特征点)为光流计算子单元对应的子图像组内的第一目标图像的子图像的目标特征点和光流矢量之和,其中光流计算子单元确定光流矢量时,被配置为:

获取第三输入参数,并根据第三输入参数分别得到第一目标图像和第二目标图像的目标灰度值数据;目标灰度值数据包括以下任一种:第一目标图像对应的子图和第二目标图像对应的子图在以第三输入参数为中心的第一预设窗口内的图像的第一灰度值数据、第一目标图像对应的子图和第二目标图像对应的子图的第二灰度值数据;

在本申请实施例中,为了节约计算资源,优先选择目标灰度值数据为第一灰度值数据。

其中,若光流计算子单元执行首次循环过程,则光流计算子单元的第三输入参数为第一目标图像对应的子图的目标特征点和目标特征点在第二目标图像对应的子图上对应位置的坐标;若光流计算子单元执行非首次循环过程,则光流计算子单元的输入参数为第一目标图像对应的子图的目标特征点和上一光流计算子单元的输出结果;

例如:在光流计算模块执行首次循环过程时,第三输入参数为第一目标对象对应的子图1的目标特征点A和A在第二目标图像对应的子图上对应位置的坐标;

在光流计算模块执行第二次循环过程时,第三输入参数为第一目标图像对应的子图2的目标特征点A和首次循环过程的输出结果A1。

对目标灰度值数据进行scharr滤波操作,得到第一目标图像对应的子图和第二目标图像对应的子图的灰度值梯度;例如:得到1和1’的灰度值梯度;

根据灰度值梯度构建协方差矩阵;对第一目标图像对应的子图和第二目标图像对应的子图以及第三输入参数进行加权操作,得到加权像素值;根据协方差矩阵和加权像素值得到差异化矩阵;根据协方差矩阵和差异化矩阵得到光流矢量。

在本申请实施例中,为了对光流计算模块进行实时控制,所以在FPGA中还设置有控制单元205,分别与内存单元和跟踪单元通信连接,被配置为从内存单元获取第一目标图像的特征点给跟踪单元,并控制跟踪单元对各子图像组的处理顺序。

在本申请实施例中,如图6所示,在控制单元中还设置有左右帧正向跟踪子单元303、左右帧反向跟踪子单元304、前后帧正向跟踪子单元305、前后帧反向跟踪子单元306,其中:

左右帧正向跟踪子单元303,被配置为控制跟踪单元对子图像组进行左右帧正向跟踪;例如:根据左目第一帧的特征点得到右目第一帧的特征点。

左右帧反向跟踪子单元304,被配置为在左右帧正向跟踪子单元控制跟踪单元对子图像组进行左右帧正向跟踪之后,控制跟踪单元将左右帧正向跟踪子单元的跟踪结果作为输入对子图像组进行左右帧反向跟踪;

前后帧正向跟踪子单元305,被配置为控制跟踪单元对子图像组进行前后帧正向跟踪;例如:根据左目第二帧的特征点得到左目第二帧的特征点。

前后帧反向跟踪子单元306,被配置为在前后帧正向跟踪子单元控制跟踪单元对子图像组进行前后帧正向跟踪之后,控制跟踪单元将前后帧正向跟踪子单元的跟踪结果作为输入对子图像组进行前后帧反向跟踪。

在本申请实施例中,上述第一目标图像和第二目标图像可以存储在内存单元中,所以,如图1c所示,本申请实施例还设置了与CPU连接的双倍数据内存存储单元(DDR,Double Data Rate)206,被配置为存储第一目标图像和第二目标图像,并将第一目标图像和第二目标图像发送至CPU。

在本申请实施例中,为了实现正向跟踪后控制跟踪单元直接进行反向跟踪,所以跟踪单元得到跟踪目标在第二目标图像中的与目标特征点对应的特征点后,第二内存子单元,还被配置为标记第二图像的与目标特征点对应的特征点,并将标记后的第二目标图像的n张子图像转存到第一内存子单元中。由此,可以将正向输出的结果做为反向哥跟踪的输入,节省了人工输入的步骤。

应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。

此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

相关技术
  • 基于光流跟踪预测和凸几何距离的线段特征跟踪方法
  • 基于光流和三维重建的鲁棒跟踪方法和装置
技术分类

06120112939163