一种基于多处理器的目标跟踪处理方法与流程

文档序号:18415590发布日期:2019-08-13 19:21阅读:177来源:国知局
一种基于多处理器的目标跟踪处理方法与流程

本发明涉及数据处理技术领域,具体涉及一种基于多处理器的目标跟踪处理方法。



背景技术:

运动目标的检测、跟踪是数字图像处理技术的一个重要部分。人们在运动目标的检测和跟踪上不断开发新的算法,但是由于算法的计算量上和硬件平台的处理速度的约束,使得运动目标跟踪的两个关键性能指标:实时性与准确度的平衡难以掌握。为了实现运动目标跟踪系统中的实时性要求,则需要采取一些措施来提高算法的运算处理速度,一是在算法上进行优化,二是在硬件系统上进行改善。目前运动目标跟踪的算法很多,各自有各自的优点,金字塔光流算法借助对原始图像进行下采样提高了图像大运动的匹配精度,但由于金字塔光流资源需求较大,算法较复杂,处理效率较低,在现有嵌入式平台的cpu上实现多路同时跟踪,很难达到实时性的要求。



技术实现要素:

因此,本发明提供一种基于多处理器的目标跟踪处理方法,克服了现有技术中现有嵌入式平台的cpu上实现多路同时跟踪时实时性差的不足。

本发明实施例提供一种基于多处理器的目标跟踪处理方法,包括:获取需进行目标跟踪的原始图像数据;根据所述原始图像数据建立图像金字塔,并提取所述图像金字塔中各个分辨率层的需跟踪的特征点;根据处理器处理数据的上限量及所述需跟踪的特征点的数量,确定所需处理器的数量;根据所述所需处理器的数量将所述需跟踪的特征点分配给多个处理器进行光流计算。

在一实施例中,所述多个处理器包括cpu及多个dsp,所述根据处理器处理数据的上限量及所述需跟踪的特征点的数量,确定所需处理器的数量的步骤,包括:获取所述图像金字塔各个分辨率层的需跟踪的特征点的总数量;获取每个dsp处理数据的上限量;根据需跟踪的特征点数量及每个dsp处理数据的上限量,确定所需dsp的数量及cpu处理需跟踪的特征点的数据量。

在一实施例中,所述根据需跟踪的特征点数量及每个dsp处理数据的上限量,确定所需dsp的数量及cpu处理需跟踪的特征点的数据量的步骤,包括:将所述需跟踪的特征点的总数量除以每个dsp处理数据的上限量,获取商及余数,判断余数是否为0;当余数为0,所需dsp数量为商的数量,cpu处理需跟踪的特征点的数据量为0;当余数不为0时,所需dsp数量为商加一的数量,cpu处理需跟踪的特征点的数据量为0。

在一实施例中,所述根据需跟踪的特征点数量及每个dsp处理数据的上限量,确定所需dsp的数量及cpu处理需跟踪的特征点的数据量的步骤,包括:将所述需跟踪的特征点的总数量除以每个dsp处理数据的上限量,获取商及余数,判断商是否大于dsp的实际数量;当商大于dsp的实际数量时,cpu处理需跟踪的特征点数据量为dsp处理需跟踪的特征点数据量之外的数据量。

在一实施例中,当商小于dsp的实际数量时且余数为0时,所需dsp的数量商的数量;当商小于dsp的实际数量时且余数不为0时,所需dsp的数量为商的数量加一。

在一实施例中,当商等于dsp的实际数量时,所需dsp的数量为实际数量。

在一实施例中,从分辨率最小的金字塔层的特征点开始分配给多个处理器进行光流计算。

在一实施例中,所述根据所述所需处理器的数量将所述需跟踪的特征点分配给多个处理器进行光流计算的步骤,包括:每个处理器计算分配到当前帧图像当前金字塔层的每个特征点与预设窗口的插值子像素;计算所述预设窗口所有像素第一方向的一阶导数、第二方向的一阶导数以及空间梯度矩阵,所述第一方向、第二方向相互垂直;对下一帧图像信息进行迭代计算每个特征点与预设窗口的插值子像素;根据当前帧图像与上一帧图像窗口内每个特征点与预设窗口的插值子像素,计算每个特征点对应的像素值误差;根据所述每个特征点对应的像素值误差及上一帧图像第一方向的一阶导数和第二方向的一阶导数获取残差矩阵;根据所述空间梯度矩阵和所述残差矩阵获取每个特征点坐标值偏移量;判断每个特征点坐标值偏移量是否小于预设阈值;当所述每个特征点坐标值偏移量小于预设阈值时,更新每个特征点坐标,进行下一金字塔层的计算。

在一实施例中,所述当所述每个特征点坐标值偏移量小于预设阈值时的步骤之后,还包括:判断当前金字塔层数是否为原始分辨率层,当为原始分辨率层时结束光流计算。

第二方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行本发明实施例第一方面提供的基于多处理器的目标跟踪处理方法。

本发明技术方案,具有如下优点:

本发明提供的基于多处理器的目标跟踪处理方法,通过cpu获取需进行目标跟踪的原始图像数据,并根据原始图像数据建立图像金字塔,并提取图像金字塔中各个分辨率层的需跟踪的特征点,根据处理器处理数据的上限量及需跟踪的特征点的数量,确定所需处理器的数量,根据所需处理器的数量将需跟踪的特征点分配给多个处理器进行光流计算,本发明实施例利用多核宽向量寄存器dsp的并行运算优势,结合特征点计算独立性进行负载均衡,在满足精度要求前提下,优化金字塔光流实现过程,使得系统整体运行效率高,提高实时性。

附图说明

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

图1为本发明实施例提供的基于多处理器的目标跟踪处理方法一个具体示例的流程图;

图2为本发明实施例提供的cpu与dsp硬件连接的框架示意图;

图3为本发明实施例提供的确定处理器的数量一个具体示例的流程图;

图4为本发明实施例提供的各处理器进行光流计算的一个具体示例的流程图。

具体实施方式

下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。

实施例1

本发明实施例提供一种基于多处理器的目标跟踪处理方法,如图1所示,该基于多处理器的目标跟踪处理方法,包括如下步骤:

步骤s1:获取需进行目标跟踪的原始图像数据,并根据原始图像数据建立图像金字塔,并提取图像金字塔中各个分辨率层的需跟踪的特征点。

本发明实施例中,通过cpu获取外部需要进行目标跟踪的原始图像数据,并对原始图像数据建立图像金字塔及提前各个分辨率层需跟踪的特征点。在一可选的实施例中,cpu在获取原始图像后进行滤波除噪等预处理后,再建立图像金字塔。

步骤s2:根据处理器处理数据的上限量及需跟踪的特征点的数量,确定所需处理器的数量。

本发明实施例中,在cpu侧进行负载均衡,根据当前需要追踪的特征点数和dsp(digitalsignalprocessor,数字信号处理器)宽向量寄存器一次最多处理数据量,分配不同的特征点计算任务给每一个dsp,当各个dsp处理的数据量不能满足当前需要追踪的特征点数时,cpu处理各个dsp不能处理的数据量。

在一具体实施例中,如图2所示,为cpu与dsp的硬件连接关系,以一个dsp为例,dsp包括:dspcore、iram(instructionramdsp,存放指令集的内存)、dram(dynamicrandomaccessmemory,动态随机存取存储器)、及缓冲存储器icache(在调试dsp指令时,会有数据存入到缓冲存储器icache),首先由cpu加载dsp的程序到iram、dram和ddr里使其运行起来,,然后cpu通过中断通知dsp有任务要处理,最后dsp处理完后再用中断通知cpu任务完成的状态。芯片中内置的idma负责将图像数据从ddr导入到dram,dspcore从dram获取数据进行处理,处理结果写回dram,再用idma将数据导出到ddr。

在本发明实施例中可以采用海思hi3559cv100soc,该芯片提供了高效且丰富的计算资源,包括4个visiondsp(图2中仅以一个dsp内部结构及与cpu连接关系的作为举例)。该系列dsp是给视觉处理加速的专用处理器,具有可编程的能力,基于visiondsp既可以开发基础运算功能,也可以实现智能分析的复杂算法。

步骤s3:根据所需处理器的数量将需跟踪的特征点分配给多个处理器进行光流计算。

本发明实施例中,每个dspcore和cpu加载相应的需要追踪的特征点数,从分辨率最小的金字塔层的特征点开始分配给多个处理器进行光流计算。

在本发明实施中,多个处理器包括cpu及多个dsp,如图3所示,执行步骤s2的过程具体包括:

步骤s21:获取图像金字塔各个分辨率层的需跟踪的特征点的总数量。

步骤s22:获取每个dsp处理数据的上限量。

本发明实施例中,采用的visiondsp具备512bit宽度的向量寄存器,单个指令周期可以执行32个16bit的数据或者16个32bit的数据运算,仅以此举例,本发明并不以此为限。

步骤s23:根据需跟踪的特征点数量及每个dsp处理数据的上限量,确定所需dsp的数量及cpu处理需跟踪的特征点的数据量。

在一具体实施例中,只利用多个dsp对需要需跟踪的特征点的总数量进行处理,将需跟踪的特征点的总数量除以每个dsp处理数据的上限量,获取商及余数,根据商和余数来确定dsp的数量。具体包括:将需跟踪的特征点的总数量除以每个dsp处理数据的上限量,获取商及余数,判断余数是否为0;当余数为0时,所需dsp数量为商的数量;当余数不为0时,所需dsp数量为商加一的数量。例如,当前需要追踪280个特征点,每个dsp处理的上限量为70个,那么需要4个dsp就可以完成处理;当每个dsp处理的上限量为65个时,需要5个dsp才可以完成处理。

在另一具体实施例中,dsp实际数量的已知(例如上述的海思处理芯片包括4个visiondsp),根据需跟踪的特征点的总数量、dsp的实际数量及每个dsp处理数据的上限量,来确定每个dsp进行需跟踪的特征点计算的数量以及是否需要cpu进行需跟踪的特征点运算。具体包括:将所述需跟踪的特征点的总数量除以每个dsp处理数据的上限量,获取商及余数,判断商是否大于dsp的实际数量;当商大于dsp的实际数量时,说明需处理的特征点的数量大于实际数量的dsp所能处理的数量,此时需要cpu协助处理部分特征点数据,cpu处理需跟踪的特征点数据量为实际数量的dsp所能处理的需跟踪的特征点数据量之外的数据量。当商小于dsp的实际数量时且余数为0时,所需dsp的数量即为商的数量;当商小于dsp的实际数量时且余数不为0时,所需dsp的数量为商的数量加一。当商等于dsp的实际数量时,所需dsp的数量为实际数量。例如当前需要追踪280个特征点,则dspcore0处理1~64特征点,dspcore1处理65~129特征点,dspcore2处理130~194特征点,dspcore3处理195~259特征点,cpu处理260~280特征点。

在一实施例中,执行步骤s3中光流计算,如图4所示,具体包括:

步骤s31:每个处理器计算分配到当前帧图像当前金字塔层的每个特征点与预设窗口的插值子像素。

本发明实施例以一个dsp为例进行说明,例如,该dsp分配到当前帧图像当前金字塔层的特征点为(p1,p2,…,p3),以特征点坐标为中心,dsp利用dma加载参考图像中前两个特征点p1(x1,y1)和p2(x2,y2)指定窗口大小(x-wx/2,y-wy/2,x+wx/2,y+wy/2)内,光流算法中常用窗口大小为5×5,7×7,13×13,21×21,而dsp宽度为512bit的寄存器可以加载32个16bit的像素数据,所以每次加载窗口内的一行像素数据到dsp寄存器中,不足32个数据则补齐;连续加载窗口内2行像素数据,使用dsp指令集对宽寄存器直接操作,按照线性插值的方法计算像素插值,直到窗口内所有像素插值计算完成。

步骤s32:计算预设窗口所有像素第一方向的一阶导数、第二方向的一阶导数以及空间梯度矩阵,所述第一方向、第二方向相互垂直。

本发明实施例中,第一方向是指x方向、第二方向是指y方向,利用以下公式(1)计算窗口内每个像素的x方向梯度和y方向梯度,及利用以下公式(2)计算每个特征点的空间梯度矩阵:

步骤s33:对下一帧图像信息进行迭代计算每个特征点与预设窗口的插值子像素。

本发明实施例中,各个处理器完成当前帧图像当前金字塔层的特征点的处理后,开始对当下一帧图像当前金字塔层的特征点进行处理。

步骤s34:根据当前帧图像与上一帧图像窗口内每个特征点与预设窗口的插值子像素,计算每个特征点对应的像素值误差。

本发明实施例中,根据以下公式(3)计算参考图像和当前图像窗口内对应点的像素差:

δik(x,y)=i(x,y)-j(x+δx,y+δy)(3),

步骤s35:根据每个特征点对应的像素值误差及上一帧图像第一方向的一阶导数和第二方向的一阶导数获取残差矩阵。

本发明实施中,根据以下公式(4)计算每个特征点窗口内的残差矩阵:

步骤s36:根据空间梯度矩阵和残差矩阵获取每个特征点坐标值偏移量。

本发明实施例中,根据以下公式(5)计算每个特征点坐标值偏移量:

步骤s37:判断每个特征点坐标值偏移量是否小于预设阈值。

本发明实施例中,预设阈值可根据实际工程需要做适应设置。

步骤s38:当每个特征点坐标值偏移量小于预设阈值时,更新每个特征点坐标,进行下一金字塔层的计算。

本发明实施例中,梯度矩阵和残差矩阵每个元素为32bit,所以每16个特征点的空间梯度矩阵4个元素分别加载到4个dsp向量寄存器,对应特征点的残差矩阵2个元素分别加载到2个dsp向量寄存器,按照矩阵乘法,可以一次更新16个特征点的坐标,更新特征点坐标为:

在一较佳实施例中,当每个特征点坐标值偏移量小于预设阈值时的步骤之后,还包括:

步骤s39:判断当前金字塔层数是否为原始分辨率层,当为原始分辨率层时结束光流计算。

本发明实施例中,原始分辨率层为金字塔最后处理的一层,当判断当前金字塔层数是否为原始分辨率层时,说明当前帧图像个金字塔层的的各个特征点与上一帧图像的特征点都进行了光流计算,完成了目标跟踪的处理。

本发明实施例提供的基于多处理器的目标跟踪处理方法,通过cpu获取需进行目标跟踪的原始图像数据,并根据原始图像数据建立图像金字塔,并提取图像金字塔中各个分辨率层的需跟踪的特征点,根据处理器处理数据的上限量及需跟踪的特征点的数量,确定所需处理器的数量,将需跟踪的特征点分配给多个处理器进行光流计算,本发明实施例利用多核宽向量寄存器dsp的并行运算优势,结合特征点计算独立性进行负载均衡,在满足精度要求前提下,优化金字塔光流实现过程,使得系统整体运行效率高,提高实时性。

实施例2

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例1中的多处理器的目标跟踪处理方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)、随机存储记忆体(randomaccessmemory,ram)、快闪存储器(flashmemory)、硬盘(harddiskdrive,缩写:hdd)或固态硬盘(solid-statedrive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。

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

显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

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