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

一种目标追踪处理器、目标追踪方法及装置与流程

2022-03-02 03:22:05 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,具体而言,涉及一种目标追踪处理器、目标追踪方法及装置。


背景技术:

2.在追踪目标图像中的像素点时,经常采用光流追踪的方法确定像素点的移动位置,但是目标图像的分辨率通常较高,如果对目标图像直接进行追踪,执行速度非常慢。
3.相关技术中,为提高光流追踪的速度,一般会基于目标图像先建立图像金字塔,然后再对目标图像逐层进行追踪。但是在追踪每层图像时,都需要在上一层追踪完后,才可以追踪下一层,串行度较高,执行速度依然较慢。


技术实现要素:

4.本公开实施例至少提供一种目标追踪处理器、目标追踪方法及装置。
5.第一方面,本公开实施例提供了一种目标追踪处理器,包括:
6.获取模块,用于获取与目标追踪指令对应的多帧目标图像,并将所述多帧目标图像传输至构建模块;
7.构建模块,用于构建包含所述多帧目标图像对应的多个层级图像的图像金字塔,其中,所述图像金字塔中每个层级有对应的用于对该层级进行计算的追踪模块;
8.追踪模块,用于基于第n层追踪模块在第n层层级图像上进行光流追踪,并在完成光流追踪之后,将追踪结果输入至第n-1层追踪模块,以使所述第n-1层追踪模块基于所述追踪结果在第n-1层层级图像上进行光流追踪;其中,最低层追踪模块的光流追踪结果为所述目标追踪指令对应的追踪结果,最高层追踪模块的输入为目标追踪点的位置信息,n为整数。上述目标追踪处理器中,构建的图像金字塔的每个层级都有对应的追踪模块,这样,任一追踪模块在完成任一目标追踪任务之后,可以交由下一追踪模块继续进行追踪,且该任一追踪模块可以执行其他目标追踪任务,由此可以实现多个目标追踪任务的并行执行,从而提升了目标追踪的效率。
9.一种可能的实施方式中,所述目标追踪处理器还包括与所述图像金字塔中的各个层级分别对应的存储模块,用于存储各个层级的所述层级图像;
10.所述存储模块用于通过以下方法存储所述层级图像:
11.将所述层级图像按照预设特征大小进行分块处理;
12.将分块处理后各块区域图像对应的特征点的特征值按照顺序进行排列,同一块区域图像的特征点位于同一列,不同块区域图像的特征点位于不同列;
13.将同一行的特征点的特征值存储进所述存储模块的同一存储单元中,不同行的特征点的特征值存储至不同的存储单元。
14.通过这种存储方式,可以并行读取同一区域图像的特征点的特征值,减少了数据读取时间,从而提高光流追踪效率。
15.一种可能的实施方式中,针对任意两帧相邻的目标图像,所述第n层层级图像包括所述任意两帧目标图像分别对应的第一图像和第二图像;
16.所述追踪模块,在基于第n层追踪模块在第n层层级图像上进行光流追踪时,具体执行如下:
17.确定第n层级中目标追踪点在所述两帧目标图像分别对应的第一图像和第二图像中的追踪区域;
18.基于所述第一图像和第二图像中的追踪区域中的目标特征点的特征值进行光流追踪。
19.一种可能的实施方式中,所述追踪模块,还用于根据以下方法确定所述追踪区域中的目标特征点的特征值:
20.基于所述目标追踪点的坐标,确定所述追踪区域所包含的各特征点的坐标;
21.基于各特征点的坐标,从存储模块中读取各特征点对应的区域特征点的特征值;
22.对各特征点对应的区域特征点的特征值进行双线性差值运算,得到所述追踪所包含的各特征点对应的目标特征点的特征值。
23.通过进行双线性插值,可以更准确地确定坐标为浮点数的区域特征点的特征值。
24.一种可能的实施方式中,所述追踪模块,在基于各特征点的坐标,从存储模块中读取各特征点对应的区域特征点的特征值时,用于:
25.针对任一特征点,基于该特征点的坐标,从该特征点所在的层级图像对应的存储模块中,确定该特征点对应的各存储单元中的区域特征点的特征标识;
26.基于所述特征标识,从各存储单元中读取该特征点对应的区域特征点的特征值。
27.一种可能的实施方式中,所述追踪模块还包括第一生产模块和第二生产模块;
28.其中,所述第一生产模块用于在接收到第一定时器的第一指令的情况下,基于所述目标追踪点的坐标,确定所述特征点的坐标;
29.所述第二生产模块,用于在接收到第二定时器的第二指令的情况下,生成用于存储目标特征点的存储指令,以在接收到基于所述特征点对应的目标特征点之后,基于所述存储指令将所述目标特征点存储至缓存模块;
30.其中,所述第一定时器和所述第二定时器的定时时长相同,所述第一定时器和所述第二定时器之间的时间差为预设固定值。
31.这样,采用这种由两个定时器控制执行时间的方式,在计算出所述各特征点的实际特征值之后,毋需通过所述第一生产模块与所述第二生产模块之间的响应(即发送请求信号—接受请求信号—发回请求通过信号的过程);在双线性插值的执行之后,基于计算出的预设固定值,即可恰好开始执行存储指令,节省了大量时间。
32.一种可能的实施方式中,所述追踪模块包括控制单元、计算单元和访存单元;
33.其中,所述访存单元用于从所述图像金字塔读取数据;
34.所述计算单元和所述控制单元用于进行光流追踪;
35.所述控制单元包括第一浮点计算单元、接口单元、数据存储单元;其中,所述第一浮点计算单元、接口单元、数据存储单元映射于同一内存空间。
36.这样,由于所述第一浮点计算单元、所述接口单元、所述数据存储单元映射于同一内存空间,则所述追踪模块接收到的所有指令都可以整合为一个指令,统一进行译码,然后
再基于指令中的标识,发送至不同的单元执行指令对应的请求内容,由此可以减少译码时间,提高处理效率。
37.第二方面,本公开实施例还提供一种目标追踪方法,包括:
38.获取与目标追踪指令对应的多帧目标图像;
39.构建包含所述多帧目标图像对应的多个层级图像的图像金字塔,其中,所述图像金字塔中每个层级有对应的用于对该层级进行计算的追踪模块;
40.基于第n层追踪模块在第n层层级图像上进行光流追踪,并在完成光流追踪之后,将追踪结果输入至第n-1层追踪模块,以使所述第n-1层追踪模块基于所述追踪结果在第n-1层层级图像上进行光流追踪;其中,最低层追踪模块的光流追踪结果为所述目标追踪指令对应的追踪结果,最高层追踪模块的输入为目标追踪点的位置信息,n为整数。
41.第三方面,本公开实施例还提供一种目标追踪装置,包括:
42.图像获取模块,用于获取与目标追踪指令对应的多帧目标图像;
43.图像处理模块,用于构建包含所述多帧目标图像对应的多个层级图像的图像金字塔,其中,所述图像金字塔中每个层级有对应的用于对该层级进行计算的追踪模块;
44.光流追踪模块,用于基于第n层追踪模块在第n层层级图像上进行光流追踪,并在完成光流追踪之后,将追踪结果输入至第n-1层追踪模块,以使所述第n-1层追踪模块基于所述追踪结果在第n-1层层级图像上进行光流追踪;其中,最低层追踪模块的光流追踪结果为所述目标追踪指令对应的追踪结果,最高层追踪模块的输入为目标追踪点的位置信息,n为整数。
45.第四方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
46.第五方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
47.关于上述目标追踪方法、装置、计算机设备、及计算机可读存储介质的效果描述参见上述目标追踪处理器的说明,这里不再赘述。
48.为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
49.为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
50.图1示出了本公开实施例所提供的一种光流追踪方法的流程图;
51.图2示出了本公开实施例所提供的一种追踪区域的示意图;
52.图3示出了本公开实施例所提供的一种目标追踪处理器的架构示意图;
53.图4示出了本公开实施例所提供的一种追踪模块的架构示意图;
54.图5示出了本公开实施例所提供的一种指令执行过程的示意图;
55.图6示出了本公开实施例所提供的一种特征提取的示意图;
56.图7示出了本公开实施例所提供的一种按行存储的读取方式的示意图;
57.图8示出了本公开实施例所提供的一种划分后的层级图像的示意图;
58.图9示出了本公开实施例所提供的一种存储空间图像的示意图;
59.图10示出了本公开实施例所提供的一种确定目标特征点的特征值的流程图;
60.图11示出了本公开实施例所提供的一种区域偏移信息生成的示意图;
61.图12示出了本公开实施例所提供的一种乘加树的架构示意图;
62.图13示出了本公开实施例所提供的一种目标特征点生成及存储的示意图;
63.图14示出了本公开实施例所提供的一种目标追踪方法的流程图;
64.图15示出了本公开实施例所提供的一种目标追踪装置的架构示意图;
65.图16示出了本公开实施例所提供的一种计算机设备的结构示意图。
具体实施方式
66.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
67.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
68.本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
69.实施例一、
70.首先,对本技术所应用到的光流追踪技术进行简介。所述光流追踪技术的基础是同一物体在相邻帧图像中的位置相邻,下面对光流追踪进行简单介绍。如图1所示,所述光流追踪的过程包括以下几个步骤:
71.步骤101:确定两帧图像中的第一图像中的第一目标追踪点及所述第一图像中的第一追踪区域;
72.其中,所述第一目标追踪点可以是所述第一图像中的任一特征点,可以是基于神经网络提取的所述第一图像的特征点,还可以是所述第一图像中的任一采样点。
73.在一种可能的实施方式中,在基于所述第一目标追踪点确定所述第一追踪区域时,可以预先设置区域偏移信息,并基于所述区域偏移信息以及所述第一目标追踪点的坐
标,确定所述第一追踪区域。其中,所述区域偏移信息可以是与目标追踪点的横坐标和纵坐标的差值。
74.示例性的,如图2所示,如果所述第一目标追踪点的坐标为m点(5,6),所述区域偏移信息为4,则所述第一追踪区域为顶点坐标分别为a点(1,2)、b点(9,2)、c点(1,10)、以及d点(9,10)的正方形区域,所述正方形区域的边长为8个像素,则所述正方形区域内包含64个像素点,也即64个特征点。
75.这里,需要注意的是,本技术中所有坐标皆为像素坐标,在所述目标图像中,所述特征点为像素点,所述特征点的特征值为像素值。
76.步骤102:基于所述第一目标追踪点的坐标以及所述第一追踪区域,预测所述第一目标追踪点在两帧图像中的第二图像中对应的第二目标追踪点的坐标及第二追踪区域;
77.在一种可能的实施方式中,可以基于惯性测量单元输出的角速度,计算出所述第一目标追踪点的加速度,并基于所述加速度以及所述第一目标追踪点的坐标,可以计算出所述第二目标追踪点的坐标。然后基于所述区域偏移信息以及所述第二目标追踪点的坐标,可以确定所述第二追踪区域。
78.这里,基于所述区域偏移信息以及所述第二目标追踪点的坐标,确定所述第二追踪区域的过程,与上述确定所述第一追踪区域的过程相同,在此不再赘述。
79.步骤103:将所述第一追踪区域与所述第二追踪区域进行比对,得到比对结果;
80.具体的,所述比对结果可以包括更新值、结果标识,所述结果标识示例性的可以包括追踪成功、追踪失败,所述更新值可以基于所述第一追踪区域内的各特征点的特征值与所述第二追踪区域内的对应的各特征点的特征值之间的差值计算获得,所述更新值为一向量值,所述向量值的横坐标用于调整所述第二目标追踪点的横坐标,所述向量值的纵坐标用于调整所述第二目标追踪点的纵坐标;如若更新值为(3,2),则表示将所述第二目标追踪点的横坐标 3,将所述第二目标追踪点的纵坐标 2,如若所述第二目标追踪点的坐标为(x,y),则调整后的所述第二目标追踪点的坐标为(x 3,y 2),其中,所述追踪区域所包含的特征点包括所述目标追踪点。
81.步骤104:判断所述比对结果是否满足追踪条件;
82.在一种可能的实施方式中,所述追踪条件可以是对所述第二目标追踪点的调整次数达到预设次数,和/或所述更新值小于预设的标准值。示例性的,如果任一次计算出所述更新值为(0.5,0.2),小于所述标准值(1,1),则确定所述比对结果是否满足所述追踪条件。
83.这里,需要注意的是,所述追踪条件可以是所述向量值的横坐标小于所述标准值的横坐标,和/或,所述向量值的纵坐标小于所述标准值的纵坐标。
84.如果是,则执行步骤106;
85.如果否,则执行步骤105。
86.步骤105:基于所述比对结果,调整所述第二目标追踪点的坐标,并基于调整后的所述目标追踪点的坐标确定新的第二追踪区域,并返回执行步骤103。
87.示例性的,首先基于所述第二追踪区域与所述第一追踪区域计算所述更新值,如果计算出的所述更新值为(3,2),且所述第二目标追踪点的坐标为(4,5),则调整后的所述第二目标追踪点的坐标为(7,7),如果所述区域偏移信息为4,则计算出的新的第二追踪区域为顶点坐标分别为a点(11,11)、b点(3,3)、c点(3,11)、以及d点(11,3)的正方形区域,然
后将所述新的第二追踪区域与所述第一追踪区域再次进行计算,得到新的更新值。
88.步骤106:输出追踪结果。
89.示例性的,所述追踪结果可以包括追踪状态以及所述第二目标追踪点对应的目标追踪点的实际坐标;所述追踪状态可以是追踪成功、追踪失败。
90.实施例二、
91.为便于对本实施例进行理解,首先对本公开实施例所公开的一种目标追踪处理器进行详细介绍,所述目标追踪处理器为一种具有计算能力的计算机设备,所述目标追踪处理器由获取模块、构建模块、追踪模块组成。参见图3所示,为本公开实施例提供的一种目标追踪处理器的架构示意图,包括获取模块31、构建模块32、追踪模块33;“获取模块31”下文中简称“获取模块”;“构建模块32”下文中简称“构建模块”;“追踪模块33”下文中简称“追踪模块”。
92.所述目标追踪处理器内的各个模块的具体连接关系描述如下:
93.获取模块,用于获取与目标追踪指令对应的多帧目标图像,并将所述多帧目标图像传输至构建模块;
94.其中,所述目标追踪指令可以包括目标追踪点的坐标、所述目标追踪点的标识信息、使能信号、以及形变偏移量;所述多帧目标图像可以是相邻帧的多帧目标图像。
95.具体的,所述目标追踪点的坐标为二维坐标,如(x,y),所述使能信号用于指示接收到该信号的装置开始工作,示例性的可以是0或1,所述目标追踪点的标识信息示例性的可以是所述目标追踪点的编号。
96.所述形变偏移量用于指示所述目标追踪点以及所述目标追踪点周围的特征点的偏移距离。这里,由于相机多采用鱼眼镜头,导致目标图像发生一定形变,从而使目标图像中的特征点发生位置偏移,所述形变偏移量用于修正由于所述形变造成的特征点偏移。
97.构建模块,用于构建包含所述多帧目标图像对应的多个层级图像的图像金字塔,其中,所述图像金字塔中每个层级有对应的用于对该层级进行计算的追踪模块;
98.这里,所述图像金字塔的最低层层级图像为所述目标图像,通过对所述图像金字塔中的每个第n-1层层级图像进行特征提取,可以得到第n层层级图像,所述第n层层级图像的分辨率小于第n-1层层级图像,n为整数。因此所述图像金字塔中的每个层级图像的分辨率由所述最低层层级图像至最高层层级图像分辨率逐渐降低,所述图像金字塔的层数可以为预设的层数。
99.示例性的,预设所述图像金字塔的层数为4层,4层层级图像分别为第0层层级图像、第1层层级图像、第2层层级图像、第3层层级图像,所述第0层层级图像的分辨率为640x400、所述第1层层级图像的分辨率为320x200、所述第2层层级图像的分辨率为160x100、所述第3层层级图像的分辨率为80x50。
100.在一种可能的实施方式中,所述构建模块中包括采样区间生成单元,所述采样区间生成单元在基于任一目标层级图像进行特征提取时,可以先确定所述目标层级图像中的多个采样中心点,并基于预设的采样半径,确定多个采样区间,然后对每个所述采样区间进行模糊处理。
101.具体的,所述多个采样中心点的坐标可以是预设的,也可以是由所述采样区间生成单元随机生成的;在对所述采样区间进行模糊处理时,可以使用滤波器执行模糊操作。
102.在一种可能的实施方式中,在确定完所述目标层级图像中的采样区间后,所述采样区间生成单元可以对所述采样区间进行检查,避免所述采样区间超出所述目标层级图像的范围。具体的,可以检查每个采样点的坐标、以及所述采样半径确定所述采样区间是否超出所述目标层级图像的范围。
103.示例性的,如果所述目标层级图像的分辨率为160
×
100,左上角原点为(0,0),所述预设的采样半径为3,在对每个所述采样中心点的坐标进行检测时,当检测到所述采样中心点的横坐标或者纵坐标在 3或者-3之后的数值小于0时,则所述采样中心点对应的采样区间超出了所述目标层级图像的范围。
104.或者,可以先计算出所述采样中心点的横坐标和纵坐标的允许范围,本例中,所述采样中心点的横坐标允许范围为3~157,所述采样中心点的纵坐标允许范围为3~97,然后检测每个所述采样中心点的横纵坐标是否在所述允许范围之内,超出所述允许范围的采样中心点对应的采样区域,则超出了所述目标层级图像的范围。
105.追踪模块,用于基于第n层追踪模块在第n层层级图像上进行光流追踪,并在完成光流追踪之后,将追踪结果输入至第n-1层追踪模块,以使所述第n-1层追踪模块基于所述追踪结果在第n-1层层级图像上进行光流追踪;其中,最低层追踪模块的光流追踪结果为所述目标追踪指令对应的追踪结果,最高层追踪模块的输入为目标追踪点的位置信息,n为整数。
106.具体的,所述目标追踪处理器中包括多个追踪模块和多个存储模块,每个追踪模块可以读取该追踪模块对应的存储模块,每个存储模块可以存储该存储模块对应的层级的层级图像。
107.在一种可能的实施方式中,在任一追踪模块对该追踪模块获取的层级图像针对任一目标追踪点执行光流追踪之后,可以立刻对所述层级图像中的下一目标追踪点进行追踪。采用这种方式,可以实现多个追踪模块针对多个目标追踪点并行执行光流追踪任务,极大地提高了所述追踪模块的工作效率。
108.在一种可能的实施方式中,如图4所示,所述追踪模块包括控制单元、计算单元和访存单元;其中,所述访存单元用于从所述图像金字塔读取数据;所述计算单元和所述控制单元用于进行光流追踪;所述控制单元包括第一浮点计算单元、接口单元、数据存储单元;其中,所述第一浮点计算单元、接口单元、数据存储单元映射于同一内存空间。
109.具体的,所述控制单元中的所述第一浮点计算单元可以用于执行光流追踪过程中的串行计算步骤;所述接口单元用于与所述目标追踪处理器中的其他模块进行交互;所述数据存储单元可以为多个数据寄存器堆,所述数据存储单元用于存储所述光流追踪过程中的计算数据,如存储多个追踪区域图像。
110.示例性的,如图5所示,由指令定时器控制所述指令控制单元发送获取指令请求到指令寄存器,所述指令寄存器在接收到所述获取指令请求后将指令发送到译码器进行译码,译码器基于所述译码后的指令中携带的地址标识,将所述译码后的指令发送至所述第一浮点计算单元、和/或所述接口单元、和/或所述数据存储单元。
111.所述计算单元可以包括第二浮点计算单元,所述计算单元用于进行并行计算步骤,如双线性插值运算(具体的双线性插值运算的描述将在下方展示介绍),以及对所述第一追踪区域与所述第二追踪区域进行比对的运算。
112.所述访存单元可以用于从所述存储模块中读取层级图像,还可以从所述控制模块的数据存储单元中读取数据。
113.这里,由于所述第一浮点计算单元、接口单元、数据存储单元映射于同一内存空间,则所述控制单元接收到的所有指令都可以整合为一个指令,统一进行译码,基于指令中的标识,发送至不同的单元执行指令对应的请求内容,由此可以减少指令传输的时间。
114.在一种可能的实施方式中,所述目标追踪处理器还包括与所述图像金字塔中的各个层级分别对应的存储模块,用于存储各个层级的所述层级图像。其中,所述存储模块内包含多个存储单元,所述多个存储单元可以同时执行读取操作。
115.在一种可能的实施方式中,所述目标追踪处理器还包括暂存器,所述暂存器可以暂时存储所述目标图像,并复制所述目标图像。具体的,在构建所述图像金字塔时,可以先将所述目标图像在暂存器中进行复制,并将复制后的第一目标图像存储至最低层存储模块。
116.在一种可能的实施方式中,所述目标追踪处理器还包括高分辨率通道和低分辨率通道;其中,所述高分辨率通道用于将所述存储模块中的层级图像发送至所述构建模块;所述低分辨率通道用于将所述构建模块建立的层级图像发送至所述构建的层级图像对应的存储模块。
117.具体的,如图6所示,第n-1层存储模块可以将存储的第n-1层层级图像通过所述高分辨率通道发送至所述构建模块,在所述构建模块基于所述第n-1层层级图像获得第n层层级图像后,所述构建模块可以将所述第n层层级图像发送至所述第n层存储模块。这样,从最低层存储模块通过所述低分辨率通道将目标图像(第0层层级图像)发送至所述构建模块,获得第1层层级模块,反复执行上述过程,得到第2层层级图像、第3层层级图像
……
直到得到最高层层级图像,以建立完整的包含多层层级图像的图像金字塔。
118.在一种可能的应用场景中,由于所述层级图像是基于分辨率进行存储的(即所述坐标是根据所述层级图像中每一行、每一列的特征个数确定的,所述坐标为整数),但是所述目标追踪点的实际位置通常是位于相邻的两个特征点之间的(即所述目标追踪点的实际坐标为小数),因此为了提高计算出的所述目标追踪点的坐标的准确度,需要基于各特征点进行双线性插值运算。
119.现有技术中,通常将所述层级图像按行存储,在对任一位置点进行双线性插值时,需要基于两行位置点中的四个相关位置点来确定,示例性的,如图7所示,对位置点a进行双线性插值需要由存储器2读取特征1和特征2的特征值,存储器3读取特征3和特征4的特征值,而任一存储器一次只能读取一行数据,因此,获取所述四个相关位置点的特征值,即读取两行数据,需要两个周期的时间来执行,执行速度较慢。
120.因此,为了缩短读取所述四个相关位置点的特征值的读取时间,提高执行效率,本实施例提供了一种新型的存储方式。
121.在一种可能的实施方式中,所述存储模块用于通过以下方法存储所述层级图像:将所述层级图像按照预设特征大小进行分块处理;将分块处理后各块区域图像对应的特征点按照顺序进行排列,同一块区域图像的特征点位于同一列,不同块区域图像的特征点位于不同列;将同一行的特征点的特征值存储进所述存储模块的同一存储单元中,不同行的特征点的特征值存储至不同的存储单元。
122.示例性的,预设特征大小为四个相邻的特征点,然后将所述层级图像中每相邻的四个特征点分为一个矩形块,即将所述层级图像划分为6个矩形块,划分后的层级图像如图8所示。
123.延续上例,所述层级图像经所述分块存储后的存储空间图像如图9所示,所述第一矩形块内的特征点的特征值以列形式存储在第一列,所述第二矩形块内的特征点的特征值以列形式存储在第二列,以此类推,将所有特征点都按照矩形块的顺序进行存储。
124.这里,按照从左向右,从上到下的顺序确定每个矩形块的存储顺序,具体的,在所述层级图像中的第一行的矩形块存储完之后,将所述层级图像中第二行的首个矩形块以列的形式,继续存储在第一行末尾的矩形块存储的列之后,以此类推,所述存储空间图像始终为4行。采用这种存储方式,所述层级图像中的由任四个相邻的特征点组成的矩形块中的各个特征点都分别存储在所述存储空间图像的不同行中。
125.基于此,将存储空间图像中每一行的数据存储进同一存储单元中,所有存储单元在同时接收到读取请求(所述读取请求中包含待读取的特征点的地址)后,可以同时进行数据读取,即可在一个周期内完成多个特征点的读取。
126.延续上例,如图8和图9所示,如果要在特征4、特征7、特征14、以及特征17中间进行插值,则需要读取特征4、特征7、特征14、以及特征17的特征值,首先向各个存储单元发送读取请求,向第一存储单元发送的读取请求中包含特征17的地址,向第二存储单元发送的读取请求中包含特征14的地址,向第三存储单元发送的读取请求中包含特征7的地址,向第四存储单元发送的读取请求中包含特征4的地址,各个存储单元在响应读取请求后,基于接收到的特征地址,分别获取各个所述接收到的特征地址对应的不同特征点的特征值,即可在一个周期内读取特征4、特征7、特征14、以及特征17的特征值。
127.在一种可能的实施方式中,针对任意两帧相邻的目标图像,所述第n层层级图像包括所述任意两帧目标图像分别对应的第一图像和第二图像;所述追踪模块,在基于第n层追踪模块在第n层层级图像上进行光流追踪时,具体执行如下:确定第n层级中目标追踪点在所述两帧目标图像分别对应的第一图像和第二图像中的追踪区域;基于所述第一图像和第二图像中的追踪区域中的目标特征点进行光流追踪。
128.在一种可能的实施方式中,如图10所示,所述追踪模块,还用于根据以下方法确定所述追踪区域中的目标特征点的特征值:
129.步骤1001:基于所述目标追踪点的坐标,确定所述追踪区域所包含的各特征点的坐标;基于各特征点的坐标,从存储模块中读取各特征点对应的区域特征点的特征值;
130.这里,如果所述特征点的坐标为整数,所述区域特征点与所述特征点为同一点;如果所述特征点的坐标为浮点数,所述区域特征点可以是与所述特征点相邻的四个特征点,示例性的如果所述目标特征点的坐标为(1.5,2.3),所述区域特征点坐标分别为(1,2)、(1,3)、(2,2)、(2,3)。
131.在一种可能的实施方式中,所述追踪模块,在基于各特征点的坐标,从存储模块中读取各特征点对应的区域特征点时,用于:针对任一特征点,基于该特征点的坐标,从该特征点所在的层级图像对应的存储模块中,确定该特征点对应的各存储单元中的区域特征点的特征标识;基于所述特征标识,从各存储单元中读取该特征点对应的区域特征点。
132.具体的,所述特征标识为任一矩形块内的区域特征点(包括左上特征点、左下特征
点、右上特征点、以及右下特征点)分别在各存储单元中的位置,由于所述层级图像中任一矩形块内的四个特征点的相对位置是固定的,可以将所述矩形块内任一区域特征点作为参照特征点,基于所述参照特征点的特征标识,确定其他三个区域特征点的特征标识,针对四种位置类型的矩形块,任一矩形块内的参照特征点的特征标识与其他三个区域特征点的特征标识之间的计算关系可以分为四种,具体计算方法在下方展示。
133.步骤一、如果以任一矩形块内的左上特征点作为所述参照特征点,设所述参照特征点的特征标识的数值为base,则所述参照特征点的特征标识的计算公式如下:
[0134][0135]
其中,sizew为所述层级图像的宽度(即所述层级图像中每一行的特征个数),y为所述参照特征点的横坐标,x为所述参照特征点的纵坐标,fix函数为取整函数。
[0136]
步骤二、在确定所述参照特征点的特征标识之后,可以通过所述参照特征点在所述层级图像中的坐标,确定所述矩形块在所述层级图像中的位置类型,从而确定任一矩形块内的参照特征点的特征标识与其他区域特征点的特征标识之间的计算关系。
[0137]
示例性的,可以用xr和yr两个计算标识表示所述矩形块的位置类型,xr和yr的值均可以取0或1,xr和yr的计算公式如下:
[0138]
yr=y mod2
[0139]
xr=x mod2
[0140]
其中,x为所述参照特征点的横坐标,y为所述参照特征点的纵坐标,mod为取余函数。
[0141]
通过这种计算方法,可以得出xr=0,yr=0,xr=0,yr=1,xr=1,yr=0,xr=1,yr=1,四种计算结果,分别对应所述矩形块的四种位置类型。
[0142]
步骤三、基于所述矩形块的位置类型,确定任一矩形块内的参照特征点的特征标识与其他区域特征点的特征标识之间的计算关系,并计算出其他区域特征点的特征标识,所述位置类型与所述计算关系之间的对应关系示例性的如下表1所示:
[0143]
表1
[0144][0145]
其中,base为所述参照特征点的特征标识,为所述层级图像的宽度的一半(即所述层级图像中每一行的特征个数的一半),xr、yr为所述计算标识。
[0146]
步骤四、在计算出所述矩形块内的特征标识之后,由于所述矩形块内的区域特征
点的特征值分别存储在不同的存储器中,可以将各区域特征点的特征标识分别发送至所述各区域特征点对应的存储单元中,以使所述存储单元基于所述特征标识读取对应位置的特征值,示例性的,如果第一存储单元接收到的特征标识为5,则读取存储在第5位的特征值。
[0147]
在一种可能的实施方式中,如图11所示,所述追踪模块还包括偏移生成状态机,所述偏移生成状态机用于不断生成区域偏移信息,基于所述浮点计算单元,对所述区域偏移信息、所述形变偏移量、以及所述第二目标追踪点的坐标进行计算,即可得到所述第二追踪区域中所有特征点的坐标。
[0148]
步骤1002:对各特征点对应的区域特征点进行双线性差值运算,得到所述追踪所包含的各特征点对应的目标特征点的特征值。
[0149]
具体的,可以基于所述特征点的坐标的小数部分、以及区域特征点的坐标进行线性插值,示例性的,所述线性差值公式如下所示:
[0150]
(xk,yk)=(1-wy)
×
((1-wx)
×
mat(y,x) wx
×
mat(y,x 1)) wy
×
((1-wx)
×
mat(y 1,x) wx
×
mat(y 1,x 1))
[0151]
其中,xk为所述目标特征点的横坐标,yk为所述目标特征点的纵坐标,wx为所述特征点的横坐标的小数部分,wy为所述特征点的纵坐标的小数部分,mat函数为矩阵转换函数,可以将所述特征点的坐标转换为矩阵进行线性计算。
[0152]
这里,基于所述追踪模块中的多个触发器、以及所述第二浮点计算单元,可以将所述目标特征点的坐标的整数部分和小数部分分开。
[0153]
在一种可能的实施方式中,如图12所示,所述追踪模块还包括乘加树,上述计算过程可以通过乘加树进行计算,示例性的,所述乘加树包含多个加法器、乘法器和触发器,所述加法器用于将接收到的数值相加,所述乘法器用于将接收到的数值相乘,所述触发器用于保持该周期内未参与运算的数值的状态,m(x,y)、m(x 1,y)、m(x,y 1)、以及m(x 1,y 1)为所述目标特征点相邻的四个特征点的坐标。
[0154]
在一种可能的应用场景中,为了保证在确定目标特征点后,所述目标特征点能被目标存储器(所述目标存储器用于存储所述目标特征点以生成所述第二追踪区域)接收,通常由生成所述目标特征点的所述偏移生成状态机像所述目标存储器发送存储指令,在所述目标存储器响应后,才会接收所述目标特征点,然而生成存储指令和响应存储指令都需要时间执行,采用这种方式生成所述第二追踪区域,速度十分缓慢。
[0155]
因此,在一种可能的实施方式中,如图13所示,所述追踪模块还包括第一生产模块和第二生产模块;其中,所述第一生产模块用于在接收到第一定时器的第一指令的情况下,基于所述目标追踪点的坐标,确定所述特征点的坐标;所述第二生产模块,用于在接收到第二定时器的第二指令的情况下,生成用于存储目标特征点的存储指令,以在接收到基于所述特征点对应的目标特征点之后,基于所述存储指令将所述目标特征点存储至缓存模块;其中,所述第一定时器和所述第二定时器的定时时长相同,所述第一定时器和所述第二定时器之间的时间差为预设固定值。
[0156]
具体的,所述第一生产模块可以包括所述偏移生成状态机、所述存储模块、地址转换器;其中,所述地址转换器用于将所述偏移生成状态机生成的逻辑地址(即区域偏移信息)转换为物理地址;所述预设固定值示例性的可以是执行双线性插值的时长。
[0157]
具体的,所述双线性插值的过程可以包括:首先所述第一定时器可以向所述偏移
生成状态机发送第一指令,以使所述偏移生成状态机生成区域偏移信息,所述区域偏移信息经所述地址转换器转换为可参与计算的目标区域偏移信息;然后,基于从存储器中获取的目标追踪点的坐标、以及所述目标区域偏移信息,确定所述追踪区域中各特征点的坐标;最后,基于所述乘加树进行双线性插值,计算出所述各特征点的特征值。
[0158]
示例性的,如果执行双线性插值的时长为32个时钟周期,则可以设置所述预设固定值为32个时钟周期,如果所述第一定时器在第5个时钟周期向所述偏移生成状态机发送第一指令,则在计算出任一特征点的特征值之后,即在第37个时钟周期时,所述第二定时器正好接收到第二指令,并生成所述特征点的存储指令,从而使所述缓存模块将所述特征点的特征值进行存储。
[0159]
采用这种由两个定时器控制执行时间的方式,在计算出所述各特征点的实际特征值之后,毋需通过所述第一生产模块与所述第二生产模块之间的响应(即发送请求信号—接受请求信号—发回请求通过信号的过程);在双线性插值的执行之后,基于计算出的预设固定值,即可恰好开始执行存储指令,节省了大量时间。
[0160]
本公开实施例提供的目标追踪处理器,构建的图像金字塔的每个层级都有对应的追踪模块,这样,任一追踪模块在完成任一目标追踪任务之后,可以交由下一追踪模块继续进行追踪,且该任一追踪模块可以执行其他目标追踪任务,由此可以实现多个目标追踪任务的并行执行,从而提升了目标追踪的效率。
[0161]
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
[0162]
基于同一发明构思,本公开实施例中还提供了与目标追踪方法对应的目标追踪装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述目标追踪方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
[0163]
参见图14所示,为本公开实施例提供的目标追踪方法的流程图,所述目标追踪方法的执行主体为目标追踪处理器,所述方法包括步骤s1401~s1403,其中:
[0164]
s1401:获取与目标追踪指令对应的多帧目标图像;
[0165]
s1402:构建包含所述多帧目标图像对应的多个层级图像的图像金字塔,其中,所述图像金字塔中每个层级有对应的用于对该层级进行计算的追踪模块;
[0166]
s1403:基于第n层追踪模块在第n层层级图像上进行光流追踪,并在完成光流追踪之后,将追踪结果输入至第n-1层追踪模块,以使所述第n-1层追踪模块基于所述追踪结果在第n-1层层级图像上进行光流追踪;其中,最低层追踪模块的光流追踪结果为所述目标追踪指令对应的追踪结果,最高层追踪模块的输入为目标追踪点的位置信息,n为整数。
[0167]
参照图15所示,为本公开实施例提供的一种目标追踪装置的架构示意图,所述装置包括:图像获取模块1501、图像处理模块1502、光流追踪模块1503;其中,
[0168]
图像获取模块1501,用于获取与目标追踪指令对应的多帧目标图像;
[0169]
图像处理模块1502,用于构建包含所述多帧目标图像对应的多个层级图像的图像金字塔,其中,所述图像金字塔中每个层级有对应的用于对该层级进行计算的追踪模块;
[0170]
光流追踪模块1503,用于基于第n层追踪模块在第n层层级图像上进行光流追踪,并在完成光流追踪之后,将追踪结果输入至第n-1层追踪模块,以使所述第n-1层追踪模块
基于所述追踪结果在第n-1层层级图像上进行光流追踪;其中,最低层追踪模块的光流追踪结果为所述目标追踪指令对应的追踪结果,最高层追踪模块的输入为目标追踪点的位置信息,n为整数。
[0171]
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
[0172]
基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图16所示,为本公开实施例提供的计算机设备1600的结构示意图,包括处理器1601、存储器1602、和总线1603。其中,存储器1602用于存储执行指令,包括内存16021和外部存储器16022;这里的内存16021也称内存储器,用于暂时存放处理器1601中的运算数据,以及与硬盘等外部存储器16022交换的数据,处理器1601通过内存16021与外部存储器16022进行数据交换,当计算机设备1600运行时,处理器1601与存储器1602之间通过总线1603通信,使得处理器1601在执行以下指令:
[0173]
获取与目标追踪指令对应的多帧目标图像;
[0174]
构建包含所述多帧目标图像对应的多个层级图像的图像金字塔,其中,所述图像金字塔中每个层级有对应的用于对该层级进行计算的追踪模块;
[0175]
基于第n层追踪模块在第n层层级图像上进行光流追踪,并在完成光流追踪之后,将追踪结果输入至第n-1层追踪模块,以使所述第n-1层追踪模块基于所述追踪结果在第n-1层层级图像上进行光流追踪;其中,最低层追踪模块的光流追踪结果为所述目标追踪指令对应的追踪结果,最高层追踪模块的输入为目标追踪点的位置信息,n为整数。
[0176]
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的目标追踪方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
[0177]
本公开实施例还提供一种计算机程序产品,该计算机产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的目标追踪方法的步骤,具体可参见上述方法实施例,在此不再赘述。
[0178]
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
[0179]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0180]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个
网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0181]
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0182]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0183]
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
再多了解一些

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

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

相关文献