CN107111878A - 数据处理方法、装置及系统 - Google Patents
数据处理方法、装置及系统 Download PDFInfo
- Publication number
- CN107111878A CN107111878A CN201680003509.9A CN201680003509A CN107111878A CN 107111878 A CN107111878 A CN 107111878A CN 201680003509 A CN201680003509 A CN 201680003509A CN 107111878 A CN107111878 A CN 107111878A
- Authority
- CN
- China
- Prior art keywords
- layer
- data
- image
- memory cell
- pyramid
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/207—Analysis of motion for motion estimation over a hierarchy of resolutions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/269—Analysis of motion using gradient-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20016—Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
本申请提供了数据处理方法、装置及系统,所述数据处理方法包括:从第一存储单元读取一个或多个图像金字塔的当前层的待处理数据到第二存储单元;根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果;在计算所述当前层的处理结果时,从第一存储单元开始读取所述图像金字塔的下一层的待处理数据。本申请实施例在利用图像金字塔进行数据处理时,不需要等待当前层的处理结果计算完毕,而是在计算当前层的处理结果时,就开始读取下一层的待处理数据,以实现下一层的计算。因此实现了对数据处理过程的优化,减少读取操作的等待时间,从而减少了耗时并提高了实时性。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其是涉及数据处理方法、装置及系统。
背景技术
随着计算机技术的发展,利用图像金字塔进行数据处理,在很多技术领域都得到了广泛应用,尤其是视觉跟踪等领域。
目前,在利用图像金字塔进行数据处理时,数据处理过程通常是:读取模块从外部存储器读取图像金字塔一层的待处理数据,计算模块根据该层的待处理数据计算该层的处理结果,读取模块和计算模块不断重复上述过程,直至完成整个数据处理过程。
然而,上述数据处理过程通常耗时较长,导致实时性较差。
发明内容
本申请实施例解决的技术问题在于提供了一种数据处理方法、装置及系统,对数据处理过程进行优化,从而减少耗时以提高实时性。
为此,本申请解决技术问题的技术方案是:
本申请提供了一种数据处理方法,包括:
从第一存储单元读取一个或多个图像金字塔的当前层的待处理数据到第二存储单元;
根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果;
在计算所述当前层的处理结果时,从第一存储单元开始读取所述图像金字塔的下一层的待处理数据。
可选的,根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果,包括:
根据存储在第二存储单元的所述当前层的待处理数据,通过多次迭代过程计算当前层的处理结果。
可选的,从第一存储单元读取一个或多个图像金字塔的当前层的待处理数据到第二存储单元,包括:
从第一存储单元一次性读取一个或多个图像金字塔的当前层的待处理数据到第二处理单元;所述一个或多个图像金字塔的当前层的待处理数据包括:所述一个或多个图像金字塔的当前层中,各次迭代过程中所使用的数据。
可选的,通过多次迭代过程计算当前层的处理结果,包括:
完成读取当前层的待处理数据之前,开始通过多次迭代过程计算当前层的处理结果。
可选的,所述一个或多个图像金字塔包括第一图像金字塔和第二图像金字塔;
从第一存储单元开始读取所述图像金字塔的下一层的待处理数据,包括:从第一存储单元开始读取所述第一图像金字塔的下一层的待处理数据;
所述方法还包括:
在计算所述当前层的处理结果之后,根据所述处理结果,从第一存储单元开始读取所述第二图像金字塔的下一层的待处理数据。
可选的,下一层的待处理数据包括所述第一图像金字塔在下一层的第一跟踪窗口内的数据,和所述第二图像金字塔在下一层的第二跟踪窗口内的数据,下一层的第二跟踪窗口的位置根据当前层的处理结果确定。
可选的,所述第一图像金字塔包括第一图像的第一原始金字塔,所述第二图像金字塔包括第二图像的第二原始金字塔;
任一层的待处理数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据,以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,该层的第一跟踪窗口的位置根据跟踪点在所述第一原始金字塔的该层数据中的位置确定,该层的第二跟踪窗口的位置根据该层的上一层的处理结果确定;
根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果,包括:
根据存储在第二存储单元的所述当前层的待处理数据,以及所述第一图像的当前级的梯度数据,计算当前层的处理结果。
可选的,所述第一图像还具有梯度金字塔;所述方法还包括:
从第一存储单元读取所述梯度金字塔在当前层的第一跟踪窗口内的数据到第二存储单元;
所述第一图像的当前级的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在当前层的第一跟踪窗口内的数据。
可选的,所述方法还包括:
根据存储在所述第二存储单元的、所述第一原始金字塔在当前层的第一跟踪窗口内的数据,计算所述第一图像的当前级的梯度数据。
可选的,任一层的第二跟踪窗口内的数据包括:所述第二原始金字塔在该层中,各次迭代过程中所使用的数据。
可选的,任一层的处理结果包括:所述跟踪点在该层的偏移修正和该层的下一层的预测偏移。
可选的,所述方法还包括:
根据所述跟踪点在最低层的偏移修正和预测偏移获得所述跟踪点从第一图像到第二图像的位置偏移。
本申请还提供了一种数据处理方法,包括:
从第一存储单元读取一个或多个图像金字塔的一层或多层的待处理数据到第二存储单元;在读取其中一个图像金字塔的当前层的待处理数据时,从所述第一存储单元一次性读取到所述第二存储单元;
在从第一存储单元完成读取所述其中一个图像金字塔的当前层的待处理数据之前,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果。
可选的,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果,包括:
根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据,开始通过多次迭代过程计算当前层的处理结果。
可选的,所述其中一个图像金字塔的当前层的待处理数据包括:
所述其中一个图像金字塔的当前层中,各次迭代过程中所使用的数据。
可选的,从第一存储单元读取一个或多个图像金字塔中的一层或多层的待处理数据到第二存储单元,包括:
从金字塔的最高层到最低层,从第一存储单元读取一个或多个图像金字塔中的一层或多层的待处理数据到第二存储单元。
可选的,还包括:
计算当前层的处理结果时,从第一存储单元开始读取所述一个或多个图像金字塔的下一层的待处理数据。
可选的,所述其中一个图像金字塔的当前层的待处理数据包括:所述其中一个图像金字塔的当前层的跟踪窗口内的数据,所述跟踪窗口的位置根据上一层的处理结果确定。
可选的,所述一个或多个图像金字塔包括:第一图像的第一原始金字塔,以及第二图像的第二原始金字塔;
任一层的待处理数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据,以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,该层的第一跟踪窗口的位置根据跟踪点在所述第一原始金字塔的该层数据中的位置确定,该层的第二跟踪窗口的位置根据该层的上一层的处理结果确定;
根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果,包括:
根据存储在第二存储单元的所述第一原始图像金字塔和所述第二原始金字塔的当前层的待处理数据,以及所述第一图像的当前级的梯度数据,开始计算当前层的处理结果。
可选的,所述第一图像还具有梯度金字塔;所述方法还包括:
从第一存储单元读取所述梯度金字塔在当前层的第一跟踪窗口内的数据到第二存储单元;
所述第一图像的当前级的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在当前层的第一跟踪窗口内的数据。
可选的,所述方法还包括:
根据存储在所述第二存储单元的、所述第一原始金字塔在当前层的第一跟踪窗口内的数据,计算所述第一图像的当前级的梯度数据。
可选的,任一层的第二跟踪窗口内的数据包括:所述第二原始金字塔在该层中,各次迭代过程中所使用的数据,所述其中一个图像金字塔包括:所述第二原始金字塔;
在从第一存储单元完成读取所述其中一个图像金字塔的当前层的待处理数据之前,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果,包括:
在从第一存储单元完成读取所述第二原始金字塔的当前层的待处理数据之前,根据存储在第二存储单元的第一原始金字塔和第二原始金字塔在当前层的待处理数据,开始通过多次循环过程计算当前层的处理结果。
可选的,任一层的处理结果包括:所述跟踪点在该层的偏移修正和该层的下一层的预测偏移。
可选的,所述方法还包括:
根据所述跟踪点在最低层的偏移修正和预测偏移获得所述跟踪点从第一图像到第二图像的位置偏移。
本申请还提供了一种数据处理方法,包括:
从第一存储单元一次性读取一个或多个图像金字塔顶端的一层或多层的整层数据到第二存储单元;
根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果;
依次从第一存储单元读取并处理所述图像金字塔的剩余每层的待处理数据。
可选的,根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果,包括:
从金字塔的最高层开始,按照逐层递减的顺序,依次根据存储在第二存储单元的每层的待处理数据计算每层的处理结果。
可选的,其中一个图像金字塔的当前层的待处理数据包括:所述其中一个图像金字塔的当前层的跟踪窗口内的数据,当前层的跟踪窗口的位置根据上一层的处理结果确定。
可选的,根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果,包括:
根据存储在第二存储单元的每层的待处理数据,通过多次迭代过程计算每层的处理结果。
可选的,在从第一存储单元完成读取其中一个图像金字塔的当前层的整层数据之前,根据存储在第二存储单元的当前层的待处理数据开始计算当前层的处理结果。
可选的,所述图像金字塔包括:第一图像的第一原始金字塔,以及第二图像的第二原始金字塔;
任一层的待处理数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据,以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,该层的第一跟踪窗口的位置根据跟踪点在所述第一原始金字塔的该层数据中的位置确定,该层的第二跟踪窗口的位置根据该层的上一层的处理结果确定;
根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果,包括:
根据存储在第二存储单元的每层的待处理数据,以及所述第一图像的每层的梯度数据,计算每层的处理结果。
可选的,所述第一图像还具有梯度金字塔;所述方法还包括:
从第一存储单元读取所述梯度金字塔在每层的第一跟踪窗口内的数据到第二存储单元;
所述第一图像的每层的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在每层的第一跟踪窗口内的数据。
可选的,所述方法还包括:
根据存储在所述第二存储单元的、所述第一原始金字塔在每层的第一跟踪窗口内的数据,计算所述第一图像的每级的梯度数据。
可选的,任一层的处理结果包括:所述跟踪点在该层的偏移修正和该层的下一层的预测偏移。
可选的,所述方法还包括:
根据所述跟踪点在最低层的处理结果获得所述跟踪点从第一图像到第二图像的位置偏移。
本申请还提供了一种视觉跟踪方法,用于获得第一跟踪点从第一图像到第二图像的位置偏移;所述第一图像具有第一原始金字塔,所述第二图像具有第二原始金字塔;所述方法包括:
从金字塔的最高层到最低层,从第一存储单元依次读取每层的窗口数据到第二存储单元;其中,任一层的窗口数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据、以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,所述在该层的第二跟踪窗口内的数据包括所述第二原始金字塔的该层中,用于迭代计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移的全部数据;
从金字塔的最高层到最低层,根据存储在第二存储单元的每层的窗口数据,以及所述第一图像的每级的梯度信息,通过多次迭代过程计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移;
根据所述第一跟踪点在最低层的预测偏移和偏移修正,获得所述第一跟踪点从第一图像到第二图像的位置偏移。
可选的,在根据存储在第二存储单元的该层的窗口数据计算该层的偏移修正和该层的下一层的预测偏移时,开始读取所述第一原始金字塔在该层的下一层的第一跟踪窗口内的数据。
可选的,其中,任一次迭代过程包括:根据上一次迭代的结果或者初始迭代参数、所述第一原始金字塔在该层的第一跟踪窗口内的数据、以及所述第二原始金字塔在该层的该次迭代的第三跟踪窗口内的数据,计算该次迭代的结果,所述该次迭代的第三跟踪窗口的位置根据上一次迭代的结果或者初始迭代参数确定,k大于1。
可选的,完成读取所述第二原始金字塔在任一层的第二跟踪窗口内的数据之前,开始计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移。
可选的,所述在该层的第二跟踪窗口内的数据包括:所述第二原始金字塔在该层中,各次迭代过程的第三跟踪窗口内的数据。
可选的,所述方法还包括:
读取一个或多个图像金字塔顶端的一层或多层的跟踪窗口内的数据时,还读取所述一个或多个图像金字塔顶端的一层或多层的其余数据;
根据所述其余数据获得第二跟踪点从第一图像到第二图像的位置偏移;
所述一个或多个图像金字塔包括:所述第一原始金字塔和所述第二原始金字塔中的一个或多个。
可选的,所述第一图像还具有梯度金字塔;所述方法还包括:从金字塔的最高层到最低层,从所述第一存储单元依次读取所述梯度金字塔在每层的第一跟踪窗口内的数据到第二存储单元;
所述第一图像的每级的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在每层的第一跟踪窗口内的数据。
可选的,所述方法还包括:
根据存储在所述第二存储单元的、所述第一原始金字塔在每层的第一跟踪窗口内的数据,计算所述第一图像的每级的梯度数据。
可选的,任一层的第一跟踪窗口的位置,由所述第一跟踪点在所述第一原始金字塔的该层数据中的位置决定。
可选的,任一层的第二跟踪窗口的位置,根据所述第一跟踪点在所述第一原始金字塔的该层数据中的位置、该层的预测偏移以及该层的空间倾斜度矩阵确定。
本申请还提供了一种数据处理装置,包括:读取模块和计算模块;
所述读取模块用于,从第一存储单元读取一个或多个图像金字塔的当前层的待处理数据到第二存储单元;
所述计算模块用于,根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果;
其中,所述计算模块在计算所述当前层的处理结果时,所述读取模块从第一存储单元开始读取所述图像金字塔的下一层的待处理数据。
可选的,根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的所述当前层的待处理数据,通过多次迭代过程计算当前层的处理结果。
可选的,从第一存储单元读取一个或多个图像金字塔的当前层的待处理数据到第二存储单元时,所述读取模块具体用于,从第一存储单元一次性读取一个或多个图像金字塔的当前层的待处理数据到第二处理单元;所述一个或多个图像金字塔的当前层的待处理数据包括:所述一个或多个图像金字塔的当前层中,各次迭代过程中所使用的数据。
可选的,通过多次迭代过程计算当前层的处理结果时,所述计算模块具体用于,在所述读取模块完成读取当前层的待处理数据之前,开始通过多次迭代过程计算当前层的处理结果。
可选的,所述一个或多个图像金字塔包括第一图像金字塔和第二图像金字塔;
从第一存储单元开始读取所述图像金字塔的下一层的待处理数据时,所述读取模块具体用于,从第一存储单元开始读取所述第一图像金字塔的下一层的待处理数据;
所述读取模块还用于,在所述计算模块计算所述当前层的处理结果之后,根据所述处理结果,从第一存储单元开始读取所述第二图像金字塔的下一层的待处理数据。
可选的,下一层的待处理数据包括所述第一图像金字塔在下一层的第一跟踪窗口内的数据,和所述第二图像金字塔在下一层的第二跟踪窗口内的数据,下一层的第二跟踪窗口的位置根据当前层的处理结果确定。
可选的,所述第一图像金字塔包括第一图像的第一原始金字塔,所述第二图像金字塔包括第二图像的第二原始金字塔;
任一层的待处理数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据,以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,该层的第一跟踪窗口的位置根据跟踪点在所述第一原始金字塔的该层数据中的位置确定,该层的第二跟踪窗口的位置根据该层的上一层的处理结果确定;
根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的所述当前层的待处理数据,以及所述第一图像的当前级的梯度数据,计算当前层的处理结果。
可选的,所述第一图像还具有梯度金字塔;所述读取模块还用于,从第一存储单元读取所述梯度金字塔在当前层的第一跟踪窗口内的数据到第二存储单元;
所述第一图像的当前级的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在当前层的第一跟踪窗口内的数据。
可选的,所述计算模块还用于,根据存储在所述第二存储单元的、所述第一原始金字塔在当前层的第一跟踪窗口内的数据,计算所述第一图像的当前级的梯度数据。
可选的,任一层的第二跟踪窗口内的数据包括:所述第二原始金字塔在该层中,各次迭代过程中所使用的数据。
可选的,任一层的处理结果包括:所述跟踪点在该层的偏移修正和该层的下一层的预测偏移。
可选的,所述计算模块还用于,根据所述跟踪点在最低层的偏移修正和预测偏移获得所述跟踪点从第一图像到第二图像的位置偏移。
本申请还提供了一种数据处理装置,包括:读取模块和计算模块;
所述读取模块用于,从第一存储单元读取一个或多个图像金字塔的一层或多层的待处理数据到第二存储单元;在读取其中一个图像金字塔的当前层的待处理数据时,从所述第一存储单元一次性读取到所述第二存储单元;
所述计算模块用于,在所述读取模块从第一存储单元完成读取所述其中一个图像金字塔的当前层的待处理数据之前,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果。
可选的,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据,开始通过多次迭代过程计算当前层的处理结果。
可选的,所述其中一个图像金字塔的当前层的待处理数据包括:
所述其中一个图像金字塔的当前层中,各次迭代过程中所使用的数据。
可选的,从第一存储单元读取一个或多个图像金字塔中的一层或多层的待处理数据到第二存储单元时,所述读取模块具体用于,从金字塔的最高层到最低层,从第一存储单元读取一个或多个图像金字塔中的一层或多层的待处理数据到第二存储单元。
可选的,所述读取模块还用于,在所述计算模块计算当前层的处理结果时,从第一存储单元开始读取所述一个或多个图像金字塔的下一层的待处理数据。
可选的,所述其中一个图像金字塔的当前层的待处理数据包括:所述其中一个图像金字塔的当前层的跟踪窗口内的数据,所述跟踪窗口的位置根据上一层的处理结果确定。
可选的,所述一个或多个图像金字塔包括:第一图像的第一原始金字塔,以及第二图像的第二原始金字塔;
任一层的待处理数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据,以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,该层的第一跟踪窗口的位置根据跟踪点在所述第一原始金字塔的该层数据中的位置确定,该层的第二跟踪窗口的位置根据该层的上一层的处理结果确定;
根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的所述第一原始图像金字塔和所述第二原始金字塔的当前层的待处理数据,以及所述第一图像的当前级的梯度数据,开始计算当前层的处理结果。
可选的,所述第一图像还具有梯度金字塔;所述读取模块还用于,从第一存储单元读取所述梯度金字塔在当前层的第一跟踪窗口内的数据到第二存储单元;所述第一图像的当前级的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在当前层的第一跟踪窗口内的数据。
可选的,所述计算模块还用于,根据存储在所述第二存储单元的、所述第一原始金字塔在当前层的第一跟踪窗口内的数据,计算所述第一图像的当前级的梯度数据。
可选的,任一层的第二跟踪窗口内的数据包括:所述第二原始金字塔在该层中,各次迭代过程中所使用的数据,所述其中一个图像金字塔包括:所述第二原始金字塔;
从第一存储单元完成读取所述其中一个图像金字塔的当前层的待处理数据时,所述读取模块具体用于,从第一存储单元完成读取所述第二原始金字塔的当前层的待处理数据;
根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的第一原始金字塔和第二原始金字塔在当前层的待处理数据,开始通过多次循环过程计算当前层的处理结果。
可选的,任一层的处理结果包括:所述跟踪点在该层的偏移修正和该层的下一层的预测偏移。
可选的,所述计算模块还用于,根据所述跟踪点在最低层的偏移修正和预测偏移获得所述跟踪点从第一图像到第二图像的位置偏移。
本申请还提供了一种数据处理装置,包括:读取模块和计算模块;
所述读取模块,用于从第一存储单元一次性读取一个或多个图像金字塔顶端的一层或多层的整层数据到第二存储单元;
所述计算模块,用于根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果;
所述读取模块和所述计算模块还用于依次从第一存储单元读取并处理所述图像金字塔的剩余每层的待处理数据。
可选的,根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果时,所述计算模块具体用于,从金字塔的最高层开始,按照逐层递减的顺序,依次根据存储在第二存储单元的每层的待处理数据计算每层的处理结果。
可选的,其中一个图像金字塔的当前层的待处理数据包括:所述其中一个图像金字塔的当前层的跟踪窗口内的数据,当前层的跟踪窗口的位置根据上一层的处理结果确定。
可选的,根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的每层的待处理数据,通过多次迭代过程计算每层的处理结果。
可选的,在所述读取模块从第一存储单元完成读取其中一个图像金字塔的当前层的整层数据之前,所述计算模块根据存储在第二存储单元的当前层的待处理数据开始计算当前层的处理结果。
可选的,所述图像金字塔包括:第一图像的第一原始金字塔,以及第二图像的第二原始金字塔;
任一层的待处理数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据,以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,该层的第一跟踪窗口的位置根据跟踪点在所述第一原始金字塔的该层数据中的位置确定,该层的第二跟踪窗口的位置根据该层的上一层的处理结果确定;
根据存储在第二存储单元的每层的待处理数据计算每层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的每层的待处理数据,以及所述第一图像的每层的梯度数据,计算每层的处理结果。
可选的,所述第一图像还具有梯度金字塔;所述读取模块还用于,从第一存储单元读取所述梯度金字塔在每层的第一跟踪窗口内的数据到第二存储单元;
所述第一图像的每层的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在每层的第一跟踪窗口内的数据。
可选的,所述计算模块还用于,根据存储在所述第二存储单元的、所述第一原始金字塔在每层的第一跟踪窗口内的数据,计算所述第一图像的每级的梯度数据。
可选的,任一层的处理结果包括:所述跟踪点在该层的偏移修正和该层的下一层的预测偏移。
可选的,所述计算模块还用于,根据所述跟踪点在最低层的偏移修正和预测偏移获得所述跟踪点从第一图像到第二图像的位置偏移。
本申请还提供了一种视觉跟踪装置,用于获得第一跟踪点从第一图像到第二图像的位置偏移;所述第一图像具有第一原始金字塔,所述第二图像具有第二原始金字塔;所述装置包括:读取模块和计算模块;
所述读取模块用于,从金字塔的最高层到最低层,从第一存储单元依次读取每层的窗口数据到第二存储单元;其中,任一层的窗口数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据、以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,所述在该层的第二跟踪窗口内的数据包括所述第二原始金字塔的该层中,用于迭代计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移的全部数据;
所述计算模块用于,从金字塔的最高层到最低层,根据存储在第二存储单元的每层的窗口数据,以及所述第一图像的每级的梯度信息,通过多次迭代过程计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移;
所述计算模块还用于,根据所述第一跟踪点在最低层的预测偏移和偏移修正,获得所述第一跟踪点从第一图像到第二图像的位置偏移。
可选的,在所述计算模块根据存储在第二存储单元的该层的窗口数据计算任一层的偏移修正和该层的下一层的预测偏移时,所述读取模块开始读取所述第一原始金字塔在该层的下一层的第一跟踪窗口内的数据。
可选的,其中,任一次迭代过程包括:根据上一次迭代的结果或者初始迭代参数、所述第一原始金字塔在该层的第一跟踪窗口内的数据、以及所述第二原始金字塔在该层的该次迭代的第三跟踪窗口内的数据,计算该次迭代的结果,所述该次迭代的第三跟踪窗口的位置根据上一次迭代的结果或者初始迭代参数确定。
可选的,所述读取模块完成读取所述第二原始金字塔在任一层的第二跟踪窗口内的数据之前,所述计算模块开始计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移。
可选的,所述在该层的第二跟踪窗口内的数据包括:所述第二原始金字塔在该层中,各次迭代过程的第三跟踪窗口内的数据。
可选的,所述读取模块还用于,读取一个或多个图像金字塔顶端的一层或多层的跟踪窗口内的数据时,还读取所述一个或多个图像金字塔顶端的一层或多层的其余数据;
所述计算模块还用于,根据所述其余数据获得第二跟踪点从第一图像到第二图像的位置偏移;
所述一个或多个图像金字塔包括:所述第一原始金字塔和所述第二原始金字塔中的一个或多个。
可选的,所述第一图像还具有梯度金字塔;所述读取模块还用于,从金字塔的最高层到最低层,从所述第一存储单元依次读取所述梯度金字塔在每层的第一跟踪窗口内的数据到第二存储单元;
所述第一图像的每级的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在每层的第一跟踪窗口内的数据。
可选的,所述计算模块还用于,根据存储在所述第二存储单元的、所述第一原始金字塔在每层的第一跟踪窗口内的数据,计算所述第一图像的每级的梯度数据。
可选的,任一层的第一跟踪窗口的位置,由所述第一跟踪点在所述第一原始金字塔的该层数据中的位置决定。
可选的,任一层的第二跟踪窗口的位置,根据所述第一跟踪点在所述第一原始金字塔的该层数据中的位置、该层的预测偏移以及该层的空间倾斜度矩阵确定。
可选的,所述装置用于具有并行处理功能的电路中,所述计算模块和所述读取模块具有并行处理功能。
可选的,所述电路包括:
具有多核处理器的电路、并行电路系统或者数字逻辑电路。
本申请还提供了一种数据处理系统,包括:第一存储单元、第二存储单元和数据处理装置,所述装置包括:读取模块和计算模块;
所述第一存储单元存储有至少一个图像金字塔的所有层的数据;
所述读取模块用于,从所述第一存储单元读取一个或多个图像金字塔的当前层的待处理数据到所述第二存储单元;
所述计算模块用于,根据存储在所述第二存储单元的所述当前层的待处理数据计算当前层的处理结果;
其中,所述计算模块在计算所述当前层的处理结果时,所述读取模块从所述第一存储单元开始读取所述图像金字塔的下一层的待处理数据。
本申请还提供了一种数据处理系统,包括:第一存储单元、第二存储单元和数据处理装置,所述装置包括:读取模块和计算模块;
所述第一存储单元存储有至少一个图像金字塔的所有层的数据;
所述读取模块用于,从所述第一存储单元读取一个或多个图像金字塔的一层或多层的待处理数据到所述第二存储单元;在读取其中一个图像金字塔的当前层的待处理数据时,从所述第一存储单元一次性读取到所述第二存储单元;
所述计算模块用于,在所述读取模块从第一存储单元完成读取所述其中一个图像金字塔的当前层的待处理数据之前,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果。
本申请还提供了一种数据处理系统,包括:第一存储单元、第二存储单元和数据处理装置,所述装置包括:读取模块和计算模块;
所述第一存储单元存储有至少一个图像金字塔的所有层的数据;
所述读取模块用于,从所述第一存储单元一次性读取一个或多个图像金字塔顶端的一层或多层的整层数据到所述第二存储单元;
所述计算模块用于,根据存储在所述第二存储单元的每层的待处理数据,计算每层的处理结果;
所述读取模块和所述计算模块还用于依次从所述第一存储单元读取并处理所述图像金字塔的剩余每层的待处理数据。
本申请还提供了一种视觉跟踪系统,用于获得第一跟踪点从第一图像到第二图像的位置偏移;所述第一图像具有第一原始金字塔,所述第二图像具有第二原始金字塔;所述系统包括:第一存储单元、第二存储单元和视觉跟踪装置,所述装置包括:读取模块和计算模块;
所述第一存储单元存储有所述第一原始图像金字塔和所述第二原始金字塔的所有层的数据;
所述读取模块用于,从金字塔的最高层到最低层,从所述第一存储单元依次读取每层的窗口数据到所述第二存储单元;其中,任一层的窗口数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据、以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,所述在该层的第二跟踪窗口内的数据包括所述第二原始金字塔的该层中,用于迭代计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移的全部数据;
所述计算模块用于,从金字塔的最高层到最低层,根据存储在所述第二存储单元的每层的窗口数据,以及所述第一图像的每级的梯度信息,通过多次迭代过程计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移;
所述计算模块还用于,根据所述第一跟踪点在最低层的预测偏移和偏移修正,获得所述第一跟踪点从第一图像到第二图像的位置偏移。
本申请还提供了一种计算机存储介质,包括计算机程序代码,该计算机程序代码由计算机单元执行,使得该计算机单元:
从第一存储单元读取一个或多个图像金字塔的当前层的待处理数据到第二存储单元;
根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果;
在计算所述当前层的处理结果时,从第一存储单元开始读取所述图像金字塔的下一层的待处理数据。
本申请还提供了一种计算机存储介质,包括计算机程序代码,该计算机程序代码由计算机单元执行,使得该计算机单元:
从第一存储单元读取一个或多个图像金字塔的一层或多层的待处理数据到第二存储单元;在读取其中一个图像金字塔的当前层的待处理数据时,从所述第一存储单元一次性读取到所述第二存储单元;
在从第一存储单元完成读取所述其中一个图像金字塔的当前层的待处理数据之前,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果。
本申请还提供了一种计算机存储介质,包括计算机程序代码,该计算机程序代码由计算机单元执行,使得该计算机单元:
从第一存储单元一次性读取一个或多个图像金字塔顶端的一层或多层的整层数据到第二存储单元;
根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果;
依次从第一存储单元读取并处理所述图像金字塔的剩余每层的待处理数据。
本申请还提供了一种计算机存储介质,用于获得第一跟踪点从第一图像到第二图像的位置偏移;所述第一图像具有第一原始金字塔,所述第二图像具有第二原始金字塔;所述存储介质包括计算机程序代码,该计算机程序代码由计算机单元执行,使得该计算机单元:
从金字塔的最高层到最低层,从第一存储单元依次读取每层的窗口数据到第二存储单元;其中,任一层的窗口数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据、以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,所述在该层的第二跟踪窗口内的数据包括所述第二原始金字塔的该层中,用于迭代计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移的全部数据;
从金字塔的最高层到最低层,根据存储在第二存储单元的每层的窗口数据,以及所述第一图像的每级的梯度信息,通过多次迭代过程计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移;
根据所述第一跟踪点在最低层的预测偏移和偏移修正,获得所述第一跟踪点从第一图像到第二图像的位置偏移。
通过上述技术方案可知,在利用图像金字塔进行数据处理时,往往由于等待时间较长导致耗时较长,因此,本申请实施例在利用图像金字塔进行数据处理时,不需要等待当前层的处理结果计算完毕,而是在计算当前层的处理结果时,就开始读取下一层的待处理数据,以实现下一层的计算。因此实现了对数据处理过程的优化,减少读取操作的等待时间,从而减少了耗时并提高了实时性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。
图1为3层图像金字塔构成的图像集合示意图;
图2为同一跟踪点在两幅图中的位置点;
图3为本申请提供的一种方法实施例的流程示意图;
图4为本申请提供的一种装置实施例的结构示意图;
图5为本申请提供的另一种装置实施例的结构示意图;
图6为本申请提供的另一种方法实施例的流程示意图;
图7为本申请提供的另一种方法实施例的流程示意图;
图8为本申请提供的另一种方法实施例的流程示意图。
具体实施方式
图像金字塔是一系列以金字塔形状排列的分辨率逐渐降低的图像集合。例如,图1示出了图像I的3层图像金字塔构成的图像集合,左图为图像I的图像金字塔第0层的图像,中图为图像I的图像金字塔第1层的图像,右图为图像I的图像金字塔第2层的图像。图像金字塔的类型可以包括原始金字塔和梯度金字塔等。原始金字塔指的是通过图像的原始特征,例如灰度值和/或色彩值等特征进行表示的图像金字塔,梯度金字塔指定是通过原始金字塔的梯度特征进行表示的图像金字塔。
利用图像金字塔进行数据处理被广泛应用于视觉跟踪等领域,下面以KLT(Kanade-Lucas-Tomasi)算法为例进行说明。
KLT算法是视觉跟踪领域中一种常用的跟踪算法,由于其抗干扰能力等特点,具有广泛的应用。利用KLT算法能够计算出一个或多个跟踪点在至少两幅图像之间的位置偏移。例如图2示出了图像I和图像J两幅图,其中,同一跟踪点在图像I中为A1点,在图像J中为A2点,利用KLT算法能够计算出跟踪点在图像I到图像J之间的位置偏移,即A1点在图像I中的位置UA1,与A2点在图像J中的位置UA2之间的位置偏移。下面说明KLT算法的跟踪过程。
外部存储器中存储有图像I的原始金字塔{IL}和梯度金字塔以及图像J的原始金字塔{JL},其中L=0,1,…,Lm,Lm≥1。
首先开始最高层,即第Lm层的读取过程和计算过程:读取模块从外部存储器读取原始金字塔{IL}和梯度金字塔在第Lm层的跟踪窗口内的数据到内部存储器。其中,对于图像I来说,跟踪窗口大小和位置是不变的,例如大小为15×15、以跟踪点在图像I的位置为中心。之后,读取模块读取原始金字塔{JL}在第Lm层的跟踪窗口内的数据到内部存储器。其中,对于图像J来说,跟踪窗口的位置是不断调整的。之后,计算模块根据上述读取过程中在内部存储器存储的数据,计算出跟踪点在第Lm层的偏移修正和第Lm-1层的预测偏移
在完成第Lm层的读取和计算过程之后,根据最高层的计算结果,进行下一层的读取和计算过程,直至完成在最低层的读取和计算过程。根据计算出的跟踪点在最低层的偏移修正d0和预测偏移g0计算出跟踪点从图像I到图像J的位置偏移。结合跟踪点在图像I的位置还可以进一步计算出跟踪点在图像J的位置。
在利用KLT算法进行视觉跟踪过程中,往往耗时较长导致实时性较长,主要原因在于其中读取的速度要远大于计算的速度,因此读取数据的过程往往占了跟踪过程的大部分时间,甚至能够占到整个跟踪过程的50%-75%。因此,本申请实施例提供了一种对KLT算法进行优化的视觉跟踪方式,能够减少视觉跟踪过程的耗时并且提供实时性。下面具体说明。
请参阅图3,本申请实施例提供了视觉跟踪方法的一种方法实施例。本实施例的视觉跟踪方法用于获得第一跟踪点从第一图像到第二图像的位置偏移;所述第一图像具有第一原始金字塔,所述第二图像具有第二原始金字塔。例如,所述第一图像和所述第二图像可以分别为图2所示的图像I和图像J,所述第一原始金字塔为图像I的原始金字塔{IL},第二原始金字塔为图像J的原始金字塔{JL},其中L=0,1,…,Lm,Lm≥1。
本实施例的所述视觉跟踪方法包括:
301:从金字塔的最高层到最低层,从第一存储单元依次读取每层的窗口数据到第二存储单元。
本实施例所用于的系统包括至少两个存储单元,即第一存储单元和第二存储单元。其中,在所述第一存储单元中存储有第一原始金字塔和第二原始金字塔的所有数据。所述第一存储单元和所述第二存储单元均指的是具有存储功能的模块,例如具体为存储器、缓存器等。所述第一存储单元可以为外部存储单元,所述第二存储单元可以为内部存储单元。当将所述窗口数据从所述第一存储单元读取到所述第二存储单元之后,即可以根据存储在所述第二存储单元的所述窗口数据进行每一层的计算。
其中,任一层的窗口数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据、以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,所述在该层的第二跟踪窗口内的数据包括所述第二原始金字塔的该层中,用于迭代计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移的全部数据。
例如,第Lm层的窗口数据包括:ILm在第一跟踪窗口内的数据和JLm在第二跟踪窗口内的数据。其中,ILm为原始金字塔{IL}的第Lm层,JLm为第二原始金字塔的第Lm层。
302:从金字塔的最高层到最低层,根据存储在第二存储单元的每层的窗口数据,以及所述第一图像的每级的梯度信息,通过多次迭代过程计算所述第一跟踪点在每层的偏移修正和每层的下一层的预测偏移。
例如在第Lm层,根据ILm在第一跟踪窗口内的数据和JLm在第二跟踪窗口内的数据,通过多次迭代过程计算第一跟踪点在第Lm层的偏移修正和第Lm-1层的预测偏移利用第Lm-1层的预测偏移以及第Lm-1层的窗口数据,继续计算第Lm-1层的偏移修正和第Lm-2层的预测偏移直至计算出最低层,即第0层的偏移修正d0和预测偏移g0。
303:根据所述第一跟踪点在最低层的预测偏移和偏移修正,获得所述第一跟踪点从第一图像到第二图像的位置偏移。
例如,将最低层,即第0层的偏移修正d0和预测偏移g0相加,即可得到第一跟踪点从第一图像到第二图像的位置偏移d,即d=d0+g0。结合第一跟踪点在图像I的位置u还可以进一步计算出第一跟踪点在图像J的位置v,例如第一跟踪点在图像J的位置为v=u+d。
目前在读取任一层的第二原始金字塔的数据时,至少需要通过K次读取操作进行K次读取。例如在第Lm层,第1次迭代过程中,读取原始金字塔{JL}在第Lm层的第1次迭代过程的第三跟踪窗口内的数据,第2次迭代过程中,读取原始金字塔{JL}在第Lm层的第2次迭代过程的第三跟踪窗口内的数据,依次类推。而本申请实施例中,不再需要读取K次第二原始金字塔中的数据,而是将该层各次迭代过程中所需要的第二原始金字塔中的数据,即所述第二跟踪窗口内的数据,通过一次读取操作进行读取。从而不需要发多次读取请求,减少了发送读取请求和相应读取请求的时间。例如,第三跟踪窗口的大小为15像素×15像素,第二跟踪窗口的大小可以为33像素×33像素。从而对KLT跟踪算法的读取过程进行优化,降低KLT跟踪过程的耗时,提高实时性。
在本申请实施例中,所述第一图像的每级的梯度信息,可以从梯度金字塔中读取出,也可以根据窗口数据计算得出。
例如,所述第一图像还具有梯度金字塔,例如,梯度金字塔为图像I的梯度金字塔所述第一存储单元存储有所述梯度金字塔,所述方法还包括:从金字塔的最高层到最低层,从所述第一存储单元依次读取所述梯度金字塔在每层的第一跟踪窗口内的数据到第二存储单元;所述第一图像的每级的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在每层的第一跟踪窗口内的数据。
又例如,所述方法还包括:根据存储在所述第二存储单元的、所述第一原始金字塔在每层的第一跟踪窗口内的数据,计算所述第一图像的每级的梯度数据。
本申请实施例可以具体用于图4所示的视觉跟踪装置中,所述视觉跟踪装置包括读取模块401和计算模块402。读取模块401分别与第一存储单元403和第二存储单元404相连,计算模块402与第二存储单元404相连。其中,由读取模块401执行本申请实施例的读取操作,由计算模块402执行本申请实施例的计算操作。并且,所述视觉跟踪装置可以用于具有并行处理功能的电路中,读取模块401和计算模块402具有并行处理功能。该电路可以包括以下任一种电路:具有多核处理器的电路、并行电路系统以及数字逻辑电路。
其中,任一层的第一跟踪窗口的位置,由所述第一跟踪点在所述第一原始金字塔的该层数据中的位置决定。例如,第一跟踪窗口的中心在第L层的位置uL为uL=u/2L,其中,u为第一跟踪点在第一图像中的位置。
可见,由于第一跟踪窗口的位置与上一层的计算结果不相关,因此本申请实施例中可以并行执行读取功能和计算功能,在根据任一层的窗口数据计算该层的偏移修正和该层的下一层的偏移修正时,可以开始读取所述第一原始金字塔在该层的下一层的第一跟踪窗口内的数据,从而进一步减少了耗时。举例说明,在根据第Lm层的窗口数据计算第Lm层的计算结果时,就可以开始读取第Lm-1层的窗口数据。实际上,本申请实施例中,可以在完成读取当前层的窗口数据之后,就可以立刻开始读取第一原始图像金字塔在下一层的第一跟踪窗口内的数据,并同时计算当前层的计算结果,使得读取操作持续进行,从而节约耗时。其中,若任一层的窗口数据还包括所述梯度金字塔在该层的第一跟踪窗口内的数据,计算所述梯度金字塔在该层的第一跟踪窗口内的数据时,还可以开始读取梯度金字塔在该层的下一层的第一跟踪窗口内的数据。
若读取完所述第一原始金字塔在该层的下一层的第一跟踪窗口内的数据,如果已经计算出该层的计算结果,即该层的偏移修正和下一层的预测偏移,则继续读取第二原始金字塔在下一层的第二跟踪窗口内的数据,如果没有计算出该层的计算结果,则等待计算出该层的计算结果之后,根据该层的计算结果,读取第二原始金字塔在下一层的第二跟踪窗口内的数据。
其中,任一次迭代过程可以包括:根据上一次迭代的结果或者初始迭代参数、所述第一原始金字塔在该层的第一跟踪窗口内的数据、以及所述第二原始金字塔在该层的该次迭代的第三跟踪窗口内的数据,计算该次迭代的结果,所述该次迭代的第三跟踪窗口的位置根据上一次迭代的结果或者初始迭代参数确定。若任一层的窗口数据还包括所述梯度金字塔在该层的第一跟踪窗口内的数据,则在计算该次迭代的结果时还会根据所述梯度金字塔在该层的第一跟踪窗口内的数据。其中,所述在该层的第二跟踪窗口内的数据可以包括:所述第二原始金字塔在该层中,各次迭代过程的第三跟踪窗口内的数据。
举例说明,在第Lm层的第1次迭代过程,根据初始参数ILm在第一跟踪窗口内的数据、在第一跟踪窗口内的数据和JLm在第1次迭代的第三跟踪窗口内的数据,计算第1次迭代的结果在第Lm层的第2次迭代过程,根据第1次迭代的结果ILm在第一跟踪窗口内的数据、在第一跟踪窗口内的数据和JLm在第2次迭代的第三跟踪窗口内的数据,计算第2次迭代的结果依次类推,直至计算出第K次迭代的结果将该结果作为第Lm层的偏移修正根据偏移修正和第Lm层的预测偏移计算出第Lm-1层的预测偏移其中,初始迭代参数可以设置为第Lm层的预测偏移可以设置为JLm在第二跟踪窗口内的数据,包括JLm在K次迭代过程中的第三跟踪窗口内的数据。
下面以第Lm层为例,提供一种在第k次迭代过程的具体计算方式,该具体计算方式并不会对本申请实施例起到限制作用。
其中,和分别为的横坐标和纵坐标,和分别为的横坐标和纵坐标,当k>1时,为第k次迭代的结果,当k=1时,为初始迭代参数。
其中,px和py分别为uLm的横坐标和纵坐标,wx和wy分别由第一跟踪窗口在横轴方向和纵轴方向上的长度决定,Ix(x,y)为梯度金字塔的横轴梯度金字塔的第Lm层,Iy(x,y)为梯度金字塔的纵轴梯度金字塔的第Lm层。
其中,G为第Lm层空间倾斜度矩阵,具体的计算方式可以为:
从而最终计算出第Lm层,第k次迭代过程的结果在其它层的迭代过程与上述过程类似,这里不再赘述。
其中,根据上述公式中的可知,任一层的第二跟踪窗口的位置,可以根据所述第一跟踪点在所述第一原始金字塔的该层数据中的位置、、该层的预测偏移以及该层的空间倾斜度矩阵确定。可选的,该层的空间倾斜度矩阵根据所述第一图像的该级的梯度数据确定。
在本申请实施例中,读取任一层的窗口数据时的读取顺序,可以是先读取所述第一原始金字塔在该层的第一跟踪窗口内的数据,再读取所述第二原始金字塔在该层的第二跟踪窗口内的数据。因此,不需要等待完成读取所述第二原始金字塔在任一层的第二跟踪窗口内的数据之前,甚至可以在开始读取所述第二跟踪窗口内的数据之前,就可以开始计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移。若任一层的窗口数据还包括所述梯度金字塔在该层的第一跟踪窗口内的数据,在读取所述第二原始金字塔的数据之前,还可以读取所述梯度金字塔在该层的第一跟踪窗口内的数据。
举例说明,在第Lm层,在读取完ILm在第一跟踪窗口内的数据和在第一跟踪窗口内的数据之后,就开始计算第Lm层的空间倾斜度矩阵G,在读取完JLm在第1次迭代的第三跟踪窗口内的数据之后,就开始进行第1次迭代过程。也就是说,使得计算操作在得到了计算需要的数据之后就立刻开始执行,不需要等待数据完全被读取后。
在本申请实施例中,当需要计算多个跟踪点从第一图像到第二图像的位置偏移,则需要重复上述视觉跟踪过程,此时需要再次读取每层的窗口数据,此时每层的窗口数据根据新的跟踪点确定。举例说明,若要计算第一跟踪点在图像I和图像J之间的位置偏移,则在第Lm层的读取过程中,通常只读取图像I和图像J在跟踪窗口内的数据,该跟踪窗口的位置和大小根据所述第一跟踪点的位置确定。然而,如果计算其他跟踪点,例如第二跟踪点的位置偏移时,则在第Lm层的读取过程中,需要再读取图像I和图像J在跟踪窗口内的数据,该跟踪窗口的位置和大小根据所述第二跟踪点的位置确定。可见在这种需要循环处理的过程中,需要通过多次读取操作读取待处理数据,从而导致耗时较长以及实时性较差。
因此,本申请实施例中还可以一次性读取图像金字塔顶端的一层或多层数据,既可以解决上述技术问题,而且图像金字塔顶端的数据量通常较小,也不会占用过多的存储空间。具体地,本申请实施例的所述方法还可以包括:读取一个或多个图像金字塔顶端的一层或多层的跟踪窗口内的数据时,还读取所述一个或多个图像金字塔顶端的一层或多层的其余数据;根据所述其余数据获得第二跟踪点从第一图像到第二图像的位置偏移;所述一个或多个图像金字塔包括:所述第一原始金字塔、和所述第二原始金字塔中的一个或多个。可选的,所述一个或多个图像金字塔还可以包括所述梯度金字塔。
举例说明,在301中,将ILm在第Lm层的所有数据读取到第二存储单元,此时既读取了第Lm层的窗口数据,也读取了第Lm层的其余数据。这样之后在计算第二跟踪点的位置偏移时,不需要重新读取ILm在第Lm层的数据,而是利用其余数据计算第二跟踪点从第一图像到第二图像的位置偏移,减少读取操作的次数,从而减少耗时。其中计算第二跟踪点的位置偏移的具体计算过程,请参阅计算第一跟踪点的位置偏移的计算过程,这里不再赘述。
与上述KLT算法的跟踪过程类似,在利用图像金字塔进行数据处理时,数据处理过程通常是:读取模块从外部存储器读取图像金字塔一层的待处理数据,计算模块根据该层的待处理数据计算该层的处理结果,读取模块和计算模块不断重复上述过程,直至完成整个数据处理过程。
上述数据处理过程中,读取模块在读取完一层的待处理数据之后,往往要等待计算模块完毕后,才开始读取下一层的待处理数据,从而导致耗时较长以及实时性较差。尤其是在KLT跟踪算法的跟踪过程中,由于读取的速度要远大于计算的速度,因此读取数据的过程往往占了跟踪过程的大部分时间,甚至能够占到整个跟踪过程的50%-75%。
本申请实施例解决的技术问题在于提供了一种数据处理方法、装置及系统,对数据处理过程进行优化,从而减少耗时以提高实时性。
请参阅图5,本申请实施例提供了数据处理方法的一种方法实施例。本实施例的数据处理方法包括:
501:从第一存储单元读取一个或多个图像金字塔的当前层的待处理数据到第二存储单元。
本实施例所用于的系统包括至少两个存储单元,即第一存储单元和第二存储单元。其中,在所述第一存储单元中存储有一个或多个图像金字塔的当前层的待处理数据。实际上,在第一存储单元通常存储有所述一个或多个图像金字塔的当前层的整层数据。例如,在KLT算法中,当前层为第Lm层时,第一存储单元存储有图像I的图像金字塔(例如原始金字塔{IL})在第Lm层的所有数据,以及图像J的图像金字塔(例如原始金字塔{JL})在第Lm层的所有数据。
其中,当前层的待处理数据指的是当前层的所有数据中,用于计算当前层的处理结果的数据。例如,在KLT算法中,当前层为第Lm层时,图像I的原始金字塔{IL}在当前层的待处理数据,包括图像I的原始金字塔{IL}在第Lm层的第一跟踪窗口内的数据。
502:根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果。
在本申请实施例中,所述第一存储单元和所述第二存储单元均指的是具有存储功能的模块,例如具体为存储器、缓存器等。
其中,所述第一存储单元可以为外部存储单元,所述第二存储单元可以为内部存储单元。当将所述待处理数据从所述第一存储单元读取到所述第二存储单元之后,就可以根据存储在所述第二存储单元的所述待处理数据计算当前层的处理结果。例如,在KLT算法中,当前层为第Lm层时,根据存储在第二存储单元的当前层的待处理数据,计算出跟踪点在第Lm层的偏移修正和第Lm-1层的预测偏移
503:在计算所述当前层的处理结果时,从第一存储单元开始读取所述图像金字塔的下一层的待处理数据。
在本申请实施例中,并行执行读取功能和计算功能。不需要等待当前层的处理结果计算完毕,而是在计算当前层的处理结果时,就开始读取下一层的待处理数据,以实现下一层的计算。例如,在KLT算法中,当前层为第Lm层时,在计算第Lm层的偏移修正和第Lm-1层的预测偏移时,就开始读取第Lm-1层的待处理数据。
通过上述技术方案可知,在利用图像金字塔进行数据处理时,往往由于等待时间较长导致耗时较长,因此,本申请实施例在利用图像金字塔进行数据处理时,不需要等待当前层的处理结果计算完毕,而是在计算当前层的处理结果时,就开始读取下一层的待处理数据,以实现下一层的计算。因此实现了对数据处理过程的优化,减少读取操作的等待时间,从而减少了耗时并提高了实时性。
本申请实施例可以具体用于图6所示的数据处理装置中,所述数据处理装置包括读取模块601和计算模块602。读取模块601分别与第一存储单元603和第二存储单元604相连,计算模块602与第二存储单元604相连。其中,由读取模块601执行本申请实施例的读取操作,由计算模块602执行本申请实施例的计算操作。并且,所述数据处理装置可以用于具有并行处理功能的电路中,读取模块601和计算模块602具有并行处理功能。该电路可以包括以下任一种电路:具有多核处理器的电路、并行电路系统以及数字逻辑电路。
本申请实施例在根据当前层的待处理数据计算当前层的处理结果时,通常是通过多次迭代过程所实现。具体地,502包括:根据存储在第二存储单元的所述当前层的待处理数据,通过多次迭代过程计算当前层的处理结果。然而,由于一次迭代过程时所需要的数据,往往由上一次迭代过程的迭代结果决定,从而导致在当前层计算时,往往需要循环读取数据,而每次读取时都需要经历发送读取请求,响应读取请求等过程,从而导致大大延长了读取操作所占用的时间,进而造成数据处理过程耗时较长。
例如在KLT算法进行视觉跟踪时,在第Lm层的第1次迭代过程中,读取原始金字塔{IL}在第Lm层的第一跟踪窗口内的数据、原始金字塔{JL}在第Lm层的第1次迭代过程的第三跟踪窗口内的数据,根据读取的数据计算出第1次迭代过程的迭代结果而迭代结果将会影响下一次迭代过程中的第三跟踪窗口的位置,因此在第2次迭代过程中,需要再次读取原始金字塔{JL}在第Lm层的第2次迭代过程的第三跟踪窗口内的数据。可见,在金字塔一层的计算过程中,需要至少读取1次原始金字塔{IL}的数据,至少读取K次原始金字塔{JL}的数据,其中,K为该层迭代总次数。由于读取的速度要远大于计算的速度,因此读取数据的过程往往占了跟踪过程的大部分时间,甚至能够占到整个跟踪过程的50%-75%。
为了解决这一问题,在本申请实施例中,可以将各次循环所使用的数据,一次性读取到所述第二处理单元,也就是通过一次读取操作(发一次读取请求),将各次循环所使用的数据全部读取到所述第二处理单元,从而不需要多次循环读取。具体地,501可以包括:从第一存储单元一次性读取一个或多个图像金字塔的当前层的待处理数据到第二处理单元;所述一个或多个图像金字塔的当前层的待处理数据包括:所述一个或多个图像金字塔的当前层中,各次迭代过程中所使用的数据。
仍然以KLT算法举例说明,在第Lm层的读取过程中,除了读取原始金字塔{IL}在第Lm层的第一跟踪窗口内的数据之外,一次性读取原始金字塔{JL}在第Lm层的第二跟踪窗口内的数据,第二跟踪窗口内的数据包括:原始金字塔{JL}在第Lm层中,K次迭代过程中所使用的数据。例如,第一跟踪窗口的大小为15像素×15像素,第二跟踪窗口的大小可以为33像素×33像素。可见,在金字塔一层的计算过程中,需要读取1次原始金字塔{IL}的数据,读取1次原始金字塔{JL}的数据,因此能够减少读取数据占用的时间,从而减少了耗时并提高了实时性。
其中,可以在完成读取过程之前,只要已经读取了第一次迭代过程中所需的数据,就可以开始本层的计算过程。具体地,通过多次迭代过程计算当前层的处理结果,包括:完成读取当前层的待处理数据之前,开始通过多次迭代过程计算当前层的处理结果。例如KLT算法中,第Lm层的读取和计算过程中,读取原始金字塔{IL}在第Lm层的第一跟踪窗口内之后,在原始金字塔{JL}在第Lm层的第二跟踪窗口内的数据全部读取完之前,只要已经读取了原始金字塔{JL}在第Lm层的第1次迭代过程的第三跟踪窗口内的数据,就可以开始第1次迭代过程,并继续读取第二跟踪窗口内剩余的数据。
在本申请实施例中,所述一个或多个图像金字塔可以包括第一图像金字塔和第二图像金字塔。其中,在读取所述第一图像金字塔的下一层的待处理数据时,不需要使用当前层的处理结果,因此在计算所述当前层的处理结果时,就可以从第一存储单元开始读取所述第一图像金字塔的下一层的待处理数据,在计算所述当前层的处理结果之后,根据所述处理结果,从第一存储单元开始读取所述第二图像金字塔的下一层的待处理数据。
可选的,下一层的待处理数据包括所述第一图像金字塔在下一层的第一跟踪窗口内的数据,和所述第二图像金字塔在下一层的第二跟踪窗口内的数据,下一层的第二跟踪窗口的位置根据当前层的处理结果确定。
可选的,所述第一图像金字塔包括第一图像的第一原始金字塔,例如,图像I的原始金字塔{IL};所述第二图像金字塔包括第二图像的第二原始金字塔,例如图像J的原始金字塔{JL}。任一层的待处理数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据,以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,该层的第一跟踪窗口的位置根据跟踪点在所述第一原始金字塔的该层数据中的位置确定,该层的第二跟踪窗口的位置根据该层的上一层的处理结果确定。根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果,包括:根据存储在第二存储单元的所述当前层的待处理数据,以及所述第一图像的当前级的梯度数据,计算当前层的处理结果。
可选的,所述第一图像还具有梯度金字塔;所述方法还包括:从第一存储单元读取所述梯度金字塔在当前层的第一跟踪窗口内的数据到第二存储单元;所述第一图像的当前级的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在当前层的第一跟踪窗口内的数据
可选的,所述方法还包括:根据存储在所述第二存储单元的、所述第一原始金字塔在当前层的第一跟踪窗口内的数据,计算所述第一图像的当前级的梯度数据。
可选的,任一层的第二跟踪窗口内的数据包括:所述第二原始金字塔在该层中,各次迭代过程中所使用的数据。
可选的,任一层的处理结果包括:所述跟踪点在该层的偏移修正和该层的下一层的预测偏移。进一步地,可以根据所述跟踪点在最低层的偏移修正和预测偏移获得所述跟踪点从第一图像到第二图像的位置偏移。例如,根据最低层的偏移修正d0和预测偏移g0计算出所述跟踪点从图像I到图像J的位置偏移。结合跟踪点在图像I的位置还可以进一步计算出跟踪点在图像J的位置。
利用图像金字塔进行数据处理的过程中,若一次性读取其中一个图像金字塔的当前层的待处理数据时,通常是等待数据全部读取完之后才开始处理,往往由于等待时间而导致耗时较长。实际上,本申请实施例中并不需要等待数据全部读取完才开始计算当前层的处理结果,而是可以在读取完之前就开始计算,进一步优化数据处理过程,从而减少了耗时并提高了实时性。
仍然以KLT算法举例说明,第Lm层的读取和计算过程中,除了读取原始金字塔{IL}在第Lm层的第一跟踪窗口内的数据之外,一次性读取原始金字塔{JL}在第Lm层的第二跟踪窗口内的数据,其中,可以在读取完第二跟踪窗口内的数据之前,只要已经读取了原始金字塔{JL}在第Lm层的第1次迭代过程的第三跟踪窗口内的数据,就可以开始第1次迭代过程,并继续读取第二跟踪窗口内剩余的数据。
下面通过一个实施例加以具体说明。
请参阅图7,本申请实施例提供了数据处理方法的另一种方法实施例。本实施例的数据处理方法包括:
701:从第一存储单元读取一个或多个图像金字塔的一层或多层的待处理数据到第二存储单元。
本实施例所用于的系统包括至少两个存储单元,即第一存储单元和第二存储单元。其中,在所述第一存储单元中存储有一个图像金字塔的一层或多层的待处理数据,或者多个图像金字塔的一层或多层的待处理数据。实际上,在第一存储单元通常存储有所述一个或多个图像金字塔的一层或多层的整层数据。例如,在KLT算法中,所述第一存储单元存储有图像I的图像金字塔(例如原始金字塔{IL})的一层或多层的所有数据,以及图像J的图像金字塔(例如原始金字塔{JL})的一层或多层的所有数据。
其中,一层或多层的待处理数据指的是一层或多层的所有数据中,用于计算一层或多层的处理结果的数据。例如,在KLT算法中,在第Lm层时,图像I的原始金字塔{IL}在当前层的待处理数据,包括图像I的原始金字塔{IL}在第Lm层的第一跟踪窗口内的数据。
本申请实施例中,步骤701中在读取其中一个图像金字塔的当前层的待处理数据时,从所述第一存储单元一次性读取到所述第二存储单元,也就是说通过一次读取操作,将其中一个图像金字塔的当前层的待处理数据,从所述第一存储单元读取到所述第二存储单元。例如在KLT算法中,在第Lm层的读取过程中,一次性读取原始金字塔{JL}在第Lm层的第二跟踪窗口内的数据,第二跟踪窗口内的数据包括:原始金字塔{JL}在第Lm层中,K次迭代过程中所使用的数据。
在本申请实施例中,所述第一存储单元和所述第二存储单元均指的是具有存储功能的模块,例如具体为存储器、缓存器等。其中,所述第一存储单元可以为外部存储单元,所述第二存储单元可以为内部存储单元。当将待处理数据从所述第一存储单元读取到所述第二存储单元之后,就可以根据存储在所述第二存储单元的待处理数据计算当前层的处理结果。
702:在从第一存储单元完成读取所述其中一个图像金字塔的当前层的待处理数据之前,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果。
在本申请实施例中,在一次性读取其中一个图像金字塔的当前层的待处理数据时,不需要等待数据全部读取完再开始计算。而是可以在完成读取一个图像金字塔的当前层的待处理数据之前,只要已经读取了能够满足开始计算的数据,就可以开始计算当前层的计算。
通过上述技术方案可知,利用图像金字塔进行数据处理的过程中,若一次性读取其中一个图像金字塔的当前层的待处理数据时,通常是等待数据全部读取完之后才开始处理,往往由于等待时间而导致耗时较长。实际上,本申请实施例中并不需要等待数据全部读取完才开始计算当前层的处理结果,而是可以在读取完之前就开始计算,进一步优化数据处理过程,从而减少了耗时并提高了实时性。
本申请实施例可以具体用于图6所示的数据处理装置中,所述数据处理装置包括读取模块601和计算模块602。读取模块601分别与第一存储单元603和第二存储单元604相连,计算模块602与第二存储单元604相连。其中,由读取模块601执行本申请实施例的读取操作,由计算模块602执行本申请实施例的计算操作。并且,所述数据处理装置可以用于具有并行处理功能的电路中,读取模块601和计算模块602具有并行处理功能。该电路可以包括以下任一种电路:具有多核处理器的电路、并行电路系统以及数字逻辑电路。
本申请实施例在根据当前层的待处理数据计算当前层的处理结果时,通常是通过多次迭代过程所实现。具体地,702中的根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果,包括:根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据,开始通过多次迭代过程计算当前层的处理结果。
在读取完第一次迭代过程中所需的数据时,就可以开始计算当前层的处理结果。以KLT算法举例,第Lm层的读取和计算过程中,读取原始金字塔{IL}在第Lm层的第一跟踪窗口内之后,在原始金字塔{JL}在第Lm层的第二跟踪窗口内的数据全部读取完之前,只要已经读取了原始金字塔{JL}在第Lm层的第1次迭代过程中的第三跟踪窗口内的数据,就可以开始第1次迭代过程,并继续读取第二跟踪窗口内剩余的数据。
其中,所述其中一个图像金字塔的当前层的待处理数据可以包括:所述其中一个图像金字塔的当前层中,各次迭代过程中所使用的数据。例如在KLT算法中,第二图像金字塔的第Lm层的待处理数据可以包括第二图像金字塔的在第Lm层中,K次迭代过程中所使用的数据。
本申请实施例中,701中在读取数据时,可以是按照从金字塔的最高层到最低层的顺序依次读取。例如,先读取一个或多个图像金字塔的最高层,即第Lm层的待处理数据,再读取所述一个或多个图像金字塔的第Lm-1层的待处理数据,直至读取所述一个或多个图像金字塔的第0层的待处理数据。
若按照从金字塔的最高层到最低层的顺序依次读取,本申请实施例中可以并行执行读取功能和计算功能,即不需要等待当前层的处理结果计算完毕,而是在计算当前层的处理结果时,就可以从第一存储单元开始读取所述一个或多个图像金字塔的下一层的待处理数据,以实现下一层的计算。例如,在KLT算法中,当前层为第Lm层时,在计算第Lm层的偏移修正和第Lm-1层的预测偏移时,就开始读取第Lm-1层的待处理数据。
其中,所述其中一个图像金字塔的当前层的待处理数据可以包括:所述其中一个图像金字塔的当前层的跟踪窗口内的数据,所述当前层的跟踪窗口的位置根据上一层的处理结果确定。
下面以本实施例用于KLT算法为例进行说明。
在本申请实施例中,所述一个或多个图像金字塔可以包括:第一图像的第一原始金字塔以及第二图像的第二原始金字塔,例如图像I的原始金字塔{IL}和图像J的原始金字塔{JL}。任一层的待处理数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据,以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,该层的第一跟踪窗口的位置根据跟踪点在所述第一原始金字塔的该层数据中的位置确定,该层的第二跟踪窗口的位置根据该层的上一层的处理结果确定。根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果,包括:根据存储在第二存储单元的所述第一原始图像金字塔和所述第二原始金字塔的当前层的待处理数据,以及所述第一图像的当前级的梯度数据,开始计算当前层的处理结果。
可选的,所述第一图像还具有梯度金字塔;所述方法还包括:从第一存储单元读取所述梯度金字塔在当前层的第一跟踪窗口内的数据到第二存储单元;所述第一图像的当前级的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在当前层的第一跟踪窗口内的数据。
可选的,所述方法还包括:根据存储在所述第二存储单元的、所述第一原始金字塔在当前层的第一跟踪窗口内的数据,计算所述第一图像的当前级的梯度数据。
可选的,任一层的第二跟踪窗口内的数据包括:所述第二原始金字塔在该层中,各次迭代过程中所使用的数据,所述其中一个图像金字塔包括:所述第二原始金字塔。702包括:在从第一存储单元完成读取所述第二原始金字塔的当前层的待处理数据之前,根据存储在第二存储单元的第一原始金字塔、第二原始金字塔在当前层的待处理数据,开始通过多次循环过程计算当前层的处理结果。其中,在计算当前层的处理结果时,还可以包括所述梯度金字塔在当前层的待处理数据。
其中,第一原始金字塔在当前层的待处理数据包括:第一原始金字塔在当前层的第一跟踪窗口内的数据,梯度金字塔在当前层的待处理数据包括:梯度金字塔在当前层的第一跟踪窗口内的数据,第二原始金字塔在当前层的待处理数据包括:第二原始金字塔在当前层的第二跟踪窗口内的数据。在读取完第二跟踪窗口内的数据之前,就可以开始第1次迭代过程。
可选的,任一层的处理结果包括:所述跟踪点在该层的偏移修正和该层的下一层的预测偏移。进一步地,可以根据所述跟踪点在最低层的偏移修正和预测偏移获得所述跟踪点从第一图像到第二图像的位置偏移。例如,根据最低层的偏移修正d0和预测偏移g0计算出所述跟踪点从图像I到图像J的位置偏移。结合跟踪点在图像I的位置还可以进一步计算出跟踪点在图像J的位置。
在利用图像金字塔进行数据处理时,读取模块通常只读取图像金字塔每层的待处理数据。以KLT算法为例,若要计算第一跟踪点在图像I和图像J之间的位置偏移,则在第Lm层的读取过程中,通常只读取图像I和图像J在跟踪窗口内的数据,该跟踪窗口的位置和大小根据所述第一跟踪点的位置确定。然而,如果计算其他跟踪点,例如第二跟踪点的位置偏移时,则在第Lm层的读取过程中,需要再读取图像I和图像J在跟踪窗口内的数据,该跟踪窗口的位置和大小根据所述第二跟踪点的位置确定。可见在这种需要循环处理的过程中,需要通过多次读取操作读取待处理数据,从而导致耗时较长以及实时性较差。
因此在本申请实施例中,还可以一次性读取图像金字塔顶端的一层或多层数据,既可以解决上述技术问题,而且图像金字塔顶端的数据量通常较小,也不会占用过多的存储空间。下面通过一个实施例加以具体说明。
请参阅图8,本申请实施例提供了数据处理方法的另一种方法实施例。本实施例的数据处理方法包括:
801:从第一存储单元一次性读取一个或多个图像金字塔顶端的一层或多层的整层数据到第二存储单元。
本实施例所用于的系统包括至少两个存储单元,即第一存储单元和第二存储单元。其中,在第一存储单元通常存储有所述一个或多个图像金字塔的所有数据。例如,在KLT算法中,第一存储单元存储有图像I的图像金字塔(例如原始金字塔{IL})的所有数据,以及图像J的图像金字塔(例如原始金字塔{JL})的所有数据。
本申请实施例中,步骤801中在读取一个或多个图像金字塔顶端的一层或多层的整层数据时,从所述第一存储单元一次性读取到所述第二存储单元,也就是通过一次读取操作,将一个图像金字塔顶端的一层或多层的整层数据,或者多个图像金字塔顶端的一层或多层的整层数据,从所述第一存储单元读取到所述第二存储单元。例如在KLT算法中,一次性读取原始金字塔{JL}在第Lm层的整层数据。
在本申请实施例中,所述第一存储单元和所述第二存储单元均指的是具有存储功能的模块,例如具体为存储器、缓存器等。其中,所述第一存储单元可以为外部存储单元,所述第二存储单元可以为内部存储单元。当将待处理数据从所述第一存储单元读取到所述第二存储单元之后,就可以根据存储在所述第二存储单元的数据计算每层的处理结果。
802:根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果。
在801中读取了一个或多个图像金字塔顶端的一层或多层的整层数据之后,就可以根据每层的待处理数据,计算每层的处理结果。其中,每层的待处理数据指的是该层的整层数据中,用于计算该层的处理结果的数据。例如,在KLT算法中,在第Lm层时,图像I的原始金字塔{IL}在该层的待处理数据包括:图像I的原始金字塔{IL}在第Lm层的第一跟踪窗口内的数据,以及原始金字塔{JL}在第Lm层的第二跟踪窗口内的数据。
803:依次从第一存储单元读取并处理所述一个或多个图像金字塔的剩余每层的待处理数据。
当计算完顶端的一层或多层的处理结果之后,或者在计算的同时,继续从第一存储单元读取剩余每层的待处理数据到第二存储单元,并对存储在第二存储单元中剩余每层的待处理数据进行处理,计算剩余每层的处理结果。
通过上述技术方案可知,由于图像金字塔顶端的数据量通常较小,因此本申请实施例中将顶端的一层或多层的整层数据一次性读取到第二存储单元,对于剩余每层的数据,即非顶端的数据,则只将每层的待处理数据读取到第二存储单元,从而在保证不占用过多的存储空间的前提下,能够根据顶端的整层数据进行多次循环处理,例如计算多个跟踪点的位置偏移,不需要每次循环过程中分别进行读取操作,从而减少了耗时并提高了实时性。
本申请实施例可以具体用于图6所示的数据处理装置中,所述数据处理装置包括读取模块601和计算模块602。读取模块601分别与第一存储单元603和第二存储单元604相连,计算模块602与第二存储单元604相连。其中,由读取模块601执行本申请实施例的读取操作,由计算模块602执行本申请实施例的计算操作。并且,所述数据处理装置可以用于具有并行处理功能的电路中,读取模块601和计算模块602具有并行处理功能。该电路可以包括以下任一种电路:具有多核处理器的电路、并行电路系统以及数字逻辑电路。
本申请实施例的802中在计算每层的处理结果时,可以是从金字塔的最高层开始,按照逐层递减的顺序,依次根据存储在第二存储单元的每层的待处理数据计算每层的处理结果。例如,先根据一个或多个图像金字塔的最高层,即第Lm层的待处理数据,计算第Lm层的处理结果,再根据一个或多个图像金字塔的第Lm-1层的待处理数据,计算第Lm-1层的处理结果,依次类推。
其中一个图像金字塔的当前层的待处理数据可以包括:所述其中一个图像金字塔的当前层的跟踪窗口内的数据,当前层的跟踪窗口的位置根据上一层的处理结果确定。
本申请实施例在根据每层的待处理数据计算每层的处理结果时,通常是通过多次迭代过程所实现。例如,根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果,包括:根据存储在第二存储单元的每层的待处理数据,通过多次迭代过程计算每层的处理结果。
其中,在从第一存储单元完成读取其中一个图像金字塔的当前层的整层数据之前,就可以根据存储在第二存储单元的当前层的待处理数据开始计算当前层的处理结果。以KLT算法举例,第Lm层的读取和计算过程中,在原始金字塔{JL}在第Lm层的整层数据全部读取完之前,例如在读取了原始金字塔{JL}在第Lm层的第二跟踪窗口内的数据之后,就可以开始计算当前层的处理结果,并继续读取第Lm层的剩余数据。其中,所述其中一个图像金字塔的当前层的待处理数据可以包括:所述其中一个图像金字塔的当前层中,各次迭代过程中所使用的数据。
下面以本实施例用于KLT算法为例进行说明。
在本申请实施例中,所述一个或多个图像金字塔可以包括:第一图像的第一原始金字塔,例如图像I的原始金字塔{IL},以及第二图像的第二原始金字塔,例如图像J的原始金字塔{JL}。任一层的待处理数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据,以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,该层的第一跟踪窗口的位置根据跟踪点在所述第一原始金字塔的该层数据中的位置确定,该层的第二跟踪窗口的位置根据该层的上一层的处理结果确定。根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果,包括:根据存储在第二存储单元的每层的待处理数据,以及所述第一图像的每层的梯度数据,计算每层的处理结果。
可选的,所述第一图像还具有梯度金字塔;所述方法还包括:从第一存储单元读取所述梯度金字塔在每层的第一跟踪窗口内的数据到第二存储单元;所述第一图像的每层的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在每层的第一跟踪窗口内的数据。
可选的,所述方法还包括:根据存储在所述第二存储单元的、所述第一原始金字塔在每层的第一跟踪窗口内的数据,计算所述第一图像的每级的梯度数据。
可选的,任一层的处理结果包括:所述跟踪点在该层的偏移修正和该层的下一层的预测偏移。进一步地,可以根据所述跟踪点在最低层的偏移修正和预测偏移获得所述跟踪点从第一图像到第二图像的位置偏移。例如,根据最低层的偏移修正d0和预测偏移g0计算出所述跟踪点从图像I到图像J的位置偏移。结合跟踪点在图像I的位置还可以进一步计算出跟踪点在图像J的位置。
对应上述方法实施例,本申请还提供了相应的装置实施例,下面具体说明。
对应图3所示的方法实施例,本申请实施例还提供了视觉跟踪装置的一种装置实施例。本实施例的视觉跟踪装置用于获得第一跟踪点从第一图像到第二图像的位置偏移;所述第一图像具有第一原始金字塔,所述第二图像具有第二原始金字塔。例如,所述第一图像和所述第二图像可以分别为图2所示的图像I和图像J,所述第一原始金字塔为图像I的原始金字塔{IL},第二原始金字塔为图像J的原始金字塔{JL},其中L=0,1,…,Lm,Lm≥1。
本实施例的所述视觉跟踪装置包括读取模块和计算模块,例如所述视觉跟踪装置可以包括图4所示的读取模块401和计算模块402。
所述读取模块用于,从金字塔的最高层到最低层,从第一存储单元依次读取每层的窗口数据到第二存储单元。
本申请实施例中,在所述第一存储单元中存储有第一原始金字塔和第二原始金字塔的所有数据。所述第一存储单元和所述第二存储单元均指的是具有存储功能的模块,例如具体为存储器、缓存器等。所述第一存储单元可以为外部存储单元,所述第二存储单元可以为内部存储单元。当将所述窗口数据从所述第一存储单元读取到所述第二存储单元之后,即可以根据存储在所述第二存储单元的所述窗口数据进行每一层的计算。
其中,任一层的窗口数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据、以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,所述在该层的第二跟踪窗口内的数据包括所述第二原始金字塔的该层中,用于迭代计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移的全部数据。
例如,第Lm层的窗口数据包括:ILm在第一跟踪窗口内的数据和JLm在第二跟踪窗口内的数据。其中,ILm为原始金字塔{IL}的第Lm层,JLm为第二原始金字塔的第Lm层。
所述计算模块用于,从金字塔的最高层到最低层,根据存储在第二存储单元的每层的窗口数据,以及所述第一图像的每级的梯度信息,通过多次迭代过程计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移。
例如在第Lm层,所述计算模块根据ILm在第一跟踪窗口内的数据和JLm在第二跟踪窗口内的数据,通过多次迭代过程计算第一跟踪点在第Lm层的偏移修正和第Lm-1层的预测偏移利用第Lm-1层的预测偏移以及第Lm-1层的窗口数据,继续计算第Lm-1层的偏移修正和第Lm-2层的预测偏移直至计算出最低层,即第0层的偏移修正d0和预测偏移g0。
所述计算模块还用于,根据所述第一跟踪点在最低层的预测偏移和偏移修正,获得所述第一跟踪点从第一图像到第二图像的位置偏移。
例如,将最低层,即第0层的偏移修正d0和预测偏移g0相加,即可得到第一跟踪点从第一图像到第二图像的位置偏移d,即d=d0+g0。结合第一跟踪点在图像I的位置u还可以进一步计算出第一跟踪点在图像J的位置v,例如第一跟踪点在图像J的位置为v=u+d。
目前在读取任一层的第二原始金字塔的数据时,至少需要通过K次读取操作进行K次读取。而本申请实施例中,不再需要读取K次第二原始金字塔中的数据,而是将该层各次迭代过程中所需要的第二原始金字塔中的数据,即所述第二跟踪窗口内的数据,通过一次读取操作进行读取。从而不需要发多次读取请求,减少了发送读取请求和相应读取请求的时间。从而对KLT跟踪算法的读取过程进行优化,降低KLT跟踪过程的耗时,提高实时性。
可选的,所述第一图像还具有梯度金字塔;所述读取模块还用于,从金字塔的最高层到最低层,从所述第一存储单元依次读取所述梯度金字塔在每层的第一跟踪窗口内的数据到第二存储单元;所述第一图像的每级的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在每层的第一跟踪窗口内的数据。
可选的,所述计算模块还用于,根据存储在所述第二存储单元的、所述第一原始金字塔在每层的第一跟踪窗口内的数据,计算所述第一图像的每级的梯度数据。
在本申请实施例中,读取模块分别与第一存储单元和第二存储单元相连,计算模块与第二存储单元相连。并且,所述视觉跟踪装置可以用于具有并行处理功能的电路中,读取模块和计算模块具有并行处理功能。该电路可以包括以下任一种电路:具有多核处理器的电路、并行电路系统以及数字逻辑电路。
其中,任一层的第一跟踪窗口的位置,由所述第一跟踪点在所述第一原始金字塔的该层数据中的位置决定。例如,第一跟踪窗口的中心在第L层的位置uL为uL=u/2L,其中,u为第一跟踪点在第一图像中的位置。
可见,由于第一跟踪窗口的位置与上一层的计算结果不相关,因此本申请实施例中可以并行执行读取功能和计算功能,在所述计算模块根据存储在第二存储单元的任一层的窗口数据计算该层的偏移修正和该层的下一层的预测偏移时,所述读取模块开始读取所述第一原始金字塔在该层的下一层的第一跟踪窗口内的数据,从而进一步减少了耗时。举例说明,在所述计算模块根据第Lm层的窗口数据计算第Lm层的计算结果时,所述读取模块就可以开始读取第Lm-1层的窗口数据。实际上,本申请实施例中,可以在完成读取当前层的窗口数据之后,就可以立刻开始读取第一原始图像金字塔在下一层的第一跟踪窗口内的数据,并同时计算当前层的计算结果,使得读取操作持续进行,从而节约耗时。其中,若任一层的窗口数据还包括所述梯度金字塔在该层的第一跟踪窗口内的数据,所述计算模块计算所述梯度金字塔在该层的第一跟踪窗口内的数据时,所述读取模块还可以开始读取梯度金字塔在该层的下一层的第一跟踪窗口内的数据。
若所述读取模块读取完所述第一原始金字塔在该层的下一层的第一跟踪窗口内的数据,如果所述计算模块已经计算出该层的计算结果,即该层的偏移修正和下一层的预测偏移,则所述读取模块继续读取第二原始金字塔在下一层的第二跟踪窗口内的数据,如果所述计算模块没有计算出该层的计算结果,则所述读取模块等待计算出该层的计算结果之后,根据该层的计算结果,读取第二原始金字塔在下一层的第二跟踪窗口内的数据。
其中,任一次迭代过程可以包括:根据上一次迭代的结果或者初始迭代参数、所述第一原始金字塔在该层的第一跟踪窗口内的数据、以及所述第二原始金字塔在该层的该次迭代的第三跟踪窗口内的数据,计算该次迭代的结果,所述该次迭代的第三跟踪窗口的位置根据上一次迭代的结果或者初始迭代参数确定。若任一层的窗口数据还包括所述梯度金字塔在该层的第一跟踪窗口内的数据,则在计算该次迭代的结果时还会根据所述梯度金字塔在该层的第一跟踪窗口内的数据。其中,所述在该层的第二跟踪窗口内的数据可以包括:所述第二原始金字塔在该层中,各次迭代过程的第三跟踪窗口内的数据。
举例说明,在第Lm层的第1次迭代过程,根据初始参数ILm在第一跟踪窗口内的数据、在第一跟踪窗口内的数据和JLm在第1次迭代的第三跟踪窗口内的数据,计算第1次迭代的结果在第Lm层的第2次迭代过程,根据第1次迭代的结果ILm在第一跟踪窗口内的数据、在第一跟踪窗口内的数据和JLm在第2次迭代的第三跟踪窗口内的数据,计算第2次迭代的结果依次类推,直至计算出第K次迭代的结果将该结果作为第Lm层的偏移修正根据偏移修正和第Lm层的预测偏移计算出第Lm-1层的预测偏移其中,初始迭代参数可以设置为第Lm层的预测偏移可以设置为JLm在第二跟踪窗口内的数据,包括JLm在K次迭代过程中的第三跟踪窗口内的数据。
可选的,任一层的第二跟踪窗口的位置,根据所述第一跟踪点在所述第一原始金字塔的该层数据中的位置、该层的预测偏移以及该层的空间倾斜度矩阵确定。
在本申请实施例中,所述读取模块读取任一层的窗口数据时的读取顺序,可以是先读取所述第一原始金字塔在该层的第一跟踪窗口内的数据,再读取所述第二原始金字塔在该层的第二跟踪窗口内的数据。因此,所述计算模块不需要等待所述读取模块完成读取所述第二原始金字塔在任一层的第二跟踪窗口内的数据之前,甚至可以在所述读取模块开始读取所述第二跟踪窗口内的数据之前,就可以开始计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移。若任一层的窗口数据还包括所述梯度金字塔在该层的第一跟踪窗口内的数据,所述读取模块在读取所述第二原始金字塔的数据之前,还可以读取所述梯度金字塔在该层的第一跟踪窗口内的数据。
举例说明,在第Lm层,在所述读取模块读取完ILm在第一跟踪窗口内的数据和在第一跟踪窗口内的数据之后,所述计算模块就开始计算第Lm层的空间倾斜度矩阵G,在所述读取模块读取完JLm在第1次迭代的第三跟踪窗口内的数据之后,所述计算模块就开始进行第1次迭代过程。也就是说,使得计算操作在得到了计算需要的数据之后就立刻开始执行,不需要等待数据完全被读取后。
在本申请实施例中,当所述计算模块需要计算多个跟踪点从第一图像到第二图像的位置偏移,则需要重复上述视觉跟踪过程,此时需要所述读取模块再次读取每层的窗口数据,此时每层的窗口数据根据新的跟踪点确定。举例说明,若要计算第一跟踪点在图像I和图像J之间的位置偏移,则在第Lm层的读取过程中,所述读取模块通常只读取图像I和图像J在跟踪窗口内的数据,该跟踪窗口的位置和大小根据所述第一跟踪点的位置确定。然而,如果计算其他跟踪点,例如第二跟踪点的位置偏移时,则在第Lm层的读取过程中,所述读取模块需要再读取图像I和图像J在跟踪窗口内的数据,该跟踪窗口的位置和大小根据所述第二跟踪点的位置确定。可见在这种需要循环处理的过程中,需要通过多次读取操作读取待处理数据,从而导致耗时较长以及实时性较差。
因此,本申请实施例中还可以一次性读取图像金字塔顶端的一层或多层数据,既可以解决上述技术问题,而且图像金字塔顶端的数据量通常较小,也不会占用过多的存储空间。具体地,所述读取模块还用于,读取一个或多个图像金字塔顶端的一层或多层的跟踪窗口内的数据时,还读取所述一个或多个图像金字塔顶端的一层或多层的其余数据;所述计算模块还用于,根据所述其余数据获得第二跟踪点从第一图像到第二图像的位置偏移;所述一个或多个图像金字塔包括:所述第一原始金字塔和所述第二原始金字塔中的一个或多个。可选的,所述一个或多个图像金字塔还可以包括所述梯度金字塔。
举例说明,所述读取模块将ILm在第Lm层的所有数据读取到第二存储单元,此时既读取了第Lm层的窗口数据,也读取了第Lm层的其余数据。这样之后在计算第二跟踪点的位置偏移时,不需要重新读取ILm在第Lm层的数据,而是利用其余数据计算第二跟踪点从第一图像到第二图像的位置偏移,减少读取操作的次数,从而减少耗时。其中计算第二跟踪点的位置偏移的具体计算过程,请参阅计算第一跟踪点的位置偏移的计算过程,这里不再赘述。
对应图5所示的方法实施例,本申请实施例还提供了数据处理装置的一种装置实施例。
本实施例的所述数据处理装置包括:读取模块和计算模块。例如图6所示,所述数据处理装置可以包括读取模块601和计算模块602。
所述读取模块用于,从第一存储单元读取一个或多个图像金字塔的当前层的待处理数据到第二存储单元。
本申请实施例中,在所述第一存储单元中存储有一个或多个图像金字塔的当前层的待处理数据。实际上,在第一存储单元通常存储有所述一个或多个图像金字塔的当前层的整层数据。例如,在KLT算法中,当前层为第Lm层时,第一存储单元存储有图像I的图像金字塔(例如原始金字塔{IL})在第Lm层的所有数据,以及图像J的图像金字塔(例如原始金字塔{JL})在第Lm层的所有数据。
其中,当前层的待处理数据指的是当前层的所有数据中,用于计算当前层的处理结果的数据。例如,在KLT算法中,当前层为第Lm层时,图像I的原始金字塔{IL}在当前层的待处理数据,包括图像I的原始金字塔{IL}在第Lm层的第一跟踪窗口内的数据。
所述计算模块用于,根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果。
在本申请实施例中,所述第一存储单元和所述第二存储单元均指的是具有存储功能的模块,例如具体为存储器、缓存器等。
其中,所述第一存储单元可以为外部存储单元,所述第二存储单元可以为内部存储单元。当所述读取模块将所述待处理数据从所述第一存储单元读取到所述第二存储单元之后,所述计算模块就可以根据存储在所述第二存储单元的所述待处理数据计算当前层的处理结果。例如,在KLT算法中,当前层为第Lm层时,所述计算模块根据存储在第二存储单元的当前层的待处理数据,计算出跟踪点在第Lm层的偏移修正和第Lm-1层的预测偏移
所述计算模块在计算所述当前层的处理结果时,所述读取模块从第一存储单元开始读取所述图像金字塔的下一层的待处理数据。
在本申请实施例中,并行执行读取功能和计算功能。所述读取模块不需要等待当前层的处理结果计算完毕,而是在所述计算模块计算当前层的处理结果时,就开始读取下一层的待处理数据,以实现下一层的计算。例如,在KLT算法中,当前层为第Lm层时,在所述计算模块计算第Lm层的偏移修正和第Lm-1层的预测偏移时,所述读取模块就开始读取第Lm-1层的待处理数据。
通过上述技术方案可知,本申请实施例实现了对数据处理过程的优化,减少读取操作的等待时间,从而减少了耗时并提高了实时性。
在本申请实施例中,读取模块分别与第一存储单元和第二存储单元相连,计算模块与第二存储单元相连。并且,所述数据处理装置可以用于具有并行处理功能的电路中,读取模块和计算模块具有并行处理功能。该电路可以包括以下任一种电路:具有多核处理器的电路、并行电路系统以及数字逻辑电路。
本申请实施例在根据当前层的待处理数据计算当前层的处理结果时,通常是通过多次迭代过程所实现。具体地,根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的所述当前层的待处理数据,通过多次迭代过程计算当前层的处理结果。然而,由于一次迭代过程时所需要的数据,往往由上一次迭代过程的迭代结果决定,从而导致在当前层计算时,往往需要循环读取数据,而每次读取时都需要经历发送读取请求,响应读取请求等过程,从而导致大大延长了读取操作所占用的时间,进而造成数据处理过程耗时较长。
例如在KLT算法进行视觉跟踪时,在金字塔一层的计算过程中,需要至少读取1次原始金字塔{IL}的数据,至少读取K次原始金字塔{JL}的数据,其中,K为该层迭代总次数。由于读取的速度要远大于计算的速度,因此读取数据的过程往往占了跟踪过程的大部分时间,甚至能够占到整个跟踪过程的50%-75%。
为了解决这一问题,在本申请实施例中,可以将各次循环所使用的数据,一次性读取到所述第二处理单元,也就是通过一次读取操作,将各次循环所使用的数据全部读取到所述第二处理单元,从而不需要多次循环读取。具体地,从第一存储单元读取一个或多个图像金字塔的当前层的待处理数据到第二存储单元时,所述读取模块具体用于,从第一存储单元一次性读取一个或多个图像金字塔的当前层的待处理数据到第二处理单元;所述一个或多个图像金字塔的当前层的待处理数据包括:所述一个或多个图像金字塔的当前层中,各次迭代过程中所使用的数据。
仍然以KLT算法举例说明,在第Lm层的读取过程中,除了读取原始金字塔{IL}在第Lm层的第一跟踪窗口内的数据之外,一次性读取原始金字塔{JL}在第Lm层的第二跟踪窗口内的数据,第二跟踪窗口内的数据包括:原始金字塔{JL}在第Lm层中,K次迭代过程中所使用的数据。例如,第一跟踪窗口的大小为15像素×15像素,第二跟踪窗口的大小可以为33像素×33像素。可见,在金字塔一层的计算过程中,需要读取1次原始金字塔{IL}的数据,读取1次原始金字塔{JL}的数据,因此能够减少读取数据占用的时间,从而减少了耗时并提高了实时性。
其中,可以在完成读取过程之前,只要已经读取了第一次迭代过程中所需的数据,就可以开始本层的计算过程。具体地,通过多次迭代过程计算当前层的处理结果时,所述计算模块具体用于,在所述读取模块完成读取当前层的待处理数据之前,开始通过多次迭代过程计算当前层的处理结果。例如KLT算法中,第Lm层的读取和计算过程中,所述读取模块读取原始金字塔{IL}在第Lm层的第一跟踪窗口内之后,在原始金字塔{JL}在第Lm层的第二跟踪窗口内的数据全部读取完之前,只要已经读取了原始金字塔{JL}在第Lm层的第1次迭代过程的第三跟踪窗口内的数据,所述计算模块就可以开始第1次迭代过程,并且所述读取模块继续读取第二跟踪窗口内剩余的数据。
可选的,所述一个或多个图像金字塔可以包括第一图像金字塔和第二图像金字塔。从第一存储单元开始读取所述图像金字塔的下一层的待处理数据时,所述读取模块具体用于,从第一存储单元开始读取所述第一图像金字塔的下一层的待处理数据;所述读取模块还用于,在所述计算模块计算所述当前层的处理结果之后,根据所述处理结果,从第一存储单元开始读取所述第二图像金字塔的下一层的待处理数据。
可选的,下一层的待处理数据包括所述第一图像金字塔在下一层的第一跟踪窗口内的数据,和所述第二图像金字塔在下一层的第二跟踪窗口内的数据,下一层的第二跟踪窗口的位置根据当前层的处理结果确定。
可选的,所述第一图像金字塔包括第一图像的第一原始金字塔,例如,图像I的原始金字塔{IL};所述第二图像金字塔包括第二图像的第二原始金字塔,例如图像J的原始金字塔{JL}。任一层的待处理数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据,以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,该层的第一跟踪窗口的位置根据跟踪点在所述第一原始金字塔的该层数据中的位置确定,该层的第二跟踪窗口的位置根据该层的上一层的处理结果确定。根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的所述当前层的待处理数据,以及所述第一图像的当前级的梯度数据,计算当前层的处理结果。
可选的,所述第一图像还具有梯度金字塔;所述读取模块还用于,从第一存储单元读取所述梯度金字塔在当前层的第一跟踪窗口内的数据到第二存储单元;
所述第一图像的当前级的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在当前层的第一跟踪窗口内的数据。
可选的,所述计算模块还用于,根据存储在所述第二存储单元的、所述第一原始金字塔在当前层的第一跟踪窗口内的数据,计算所述第一图像的当前级的梯度数据。
可选的,任一层的第二跟踪窗口内的数据包括:所述第二原始金字塔在该层中,各次迭代过程中所使用的数据。
可选的,任一层的处理结果包括:所述跟踪点在该层的偏移修正和该层的下一层的预测偏移。所述计算模块还可以用于,根据所述跟踪点在最低层的偏移修正和预测偏移获得所述跟踪点从第一图像到第二图像的位置偏移。例如,所述计算模块根据最低层的偏移修正d0和预测偏移g0计算出所述跟踪点从图像I到图像J的位置偏移。所述计算模块结合跟踪点在图像I的位置还可以进一步计算出跟踪点在图像J的位置。
对应图7所示的方法实施例,本申请实施例还提供了数据处理装置的另一种装置实施例。
本实施例的所述数据处理装置包括:读取模块和计算模块。例如图6所示,所述数据处理装置可以包括读取模块601和计算模块602。
所述读取模块用于,从第一存储单元读取一个或多个图像金字塔的一层或多层的待处理数据到第二存储单元。
本申请实施例中,在所述第一存储单元中存储有一个图像金字塔的一层或多层的待处理数据,或者多个图像金字塔的一层或多层的待处理数据。实际上,在第一存储单元通常存储有所述一个或多个图像金字塔的一层或多层的整层数据。例如,在KLT算法中,所述第一存储单元存储有图像I的图像金字塔(例如原始金字塔{IL})的一层或多层的所有数据,以及图像J的图像金字塔(例如原始金字塔{JL})的一层或多层的所有数据。
其中,一层或多层的待处理数据指的是一层或多层的所有数据中,用于计算一层或多层的处理结果的数据。例如,在KLT算法中,在第Lm层时,图像I的原始金字塔{IL}在当前层的待处理数据,包括图像I的原始金字塔{IL}在第Lm层的第一跟踪窗口内的数据。
本申请实施例中,所述读取模块在读取其中一个图像金字塔的当前层的待处理数据时,从所述第一存储单元一次性读取到所述第二存储单元,也就是说所述读取模块通过一次读取操作,将其中一个图像金字塔的当前层的待处理数据,从所述第一存储单元读取到所述第二存储单元。例如在KLT算法中,在第Lm层的读取过程中,所述读取模块一次性读取原始金字塔{JL}在第Lm层的第二跟踪窗口内的数据,第二跟踪窗口内的数据包括:原始金字塔{JL}在第Lm层中,K次迭代过程中所使用的数据。
在本申请实施例中,所述第一存储单元和所述第二存储单元均指的是具有存储功能的模块,例如具体为存储器、缓存器等。其中,所述第一存储单元可以为外部存储单元,所述第二存储单元可以为内部存储单元。当所述读取模块将待处理数据从所述第一存储单元读取到所述第二存储单元之后,所述计算模块就可以根据存储在所述第二存储单元的待处理数据计算当前层的处理结果。
所述计算模块用于,在所述读取模块从第一存储单元完成读取所述其中一个图像金字塔的当前层的待处理数据之前,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果。
在本申请实施例中,在所述读取模块一次性读取其中一个图像金字塔的当前层的待处理数据时,所述计算模块不需要等待数据全部读取完再开始计算。而是可以在所述读取模块完成读取一个图像金字塔的当前层的待处理数据之前,只要已经读取了能够满足开始计算的数据,所述计算模块就可以开始计算当前层的计算。
通过上述技术方案可知,本申请实施例中并不需要等待数据全部读取完才开始计算当前层的处理结果,而是可以在读取完之前就开始计算,进一步优化数据处理过程,从而减少了耗时并提高了实时性。
在本申请实施例中,读取模块分别与第一存储单元和第二存储单元相连,计算模块与第二存储单元相连。并且,所述数据处理装置可以用于具有并行处理功能的电路中,读取模块和计算模块具有并行处理功能。该电路可以包括以下任一种电路:具有多核处理器的电路、并行电路系统以及数字逻辑电路。
本申请实施例在根据当前层的待处理数据计算当前层的处理结果时,通常是通过多次迭代过程所实现。具体地,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据,开始通过多次迭代过程计算当前层的处理结果。
在所述读取模块读取完第一次迭代过程中所需的数据时,所述计算模块就可以开始计算当前层的处理结果。以KLT算法举例,第Lm层的读取和计算过程中,所述读取模块读取原始金字塔{IL}在第Lm层的第一跟踪窗口内之后,在原始金字塔{JL}在第Lm层的第二跟踪窗口内的数据全部读取完之前,只要已经读取了原始金字塔{JL}在第Lm层的第1次迭代过程中的第三跟踪窗口内的数据,所述计算模块就可以开始第1次迭代过程,并继续读取第二跟踪窗口内剩余的数据。
其中,所述其中一个图像金字塔的当前层的待处理数据可以包括:所述其中一个图像金字塔的当前层中,各次迭代过程中所使用的数据。例如在KLT算法中,第二图像金字塔的第Lm层的待处理数据可以包括第二图像金字塔的在第Lm层中,K次迭代过程中所使用的数据。
可选的,从第一存储单元读取一个或多个图像金字塔中的一层或多层的待处理数据到第二存储单元时,所述读取模块具体用于,从金字塔的最高层到最低层,从第一存储单元读取一个或多个图像金字塔中的一层或多层的待处理数据到第二存储单元。例如,先读取一个或多个图像金字塔的最高层,即第Lm层的待处理数据,再读取所述一个或多个图像金字塔的第Lm-1层的待处理数据,直至读取所述一个或多个图像金字塔的第0层的待处理数据。
若按照从金字塔的最高层到最低层的顺序依次读取,所述读取模块还可以用于,在所述计算模块计算当前层的处理结果时,从第一存储单元开始读取所述一个或多个图像金字塔的下一层的待处理数据。例如,在KLT算法中,当前层为第Lm层时,在计算第Lm层的偏移修正和第Lm-1层的预测偏移时,就开始读取第Lm-1层的待处理数据。
其中,所述其中一个图像金字塔的当前层的待处理数据可以包括:所述其中一个图像金字塔的当前层的跟踪窗口内的数据,所述当前层的跟踪窗口的位置根据上一层的处理结果确定。
可选的,所述一个或多个图像金字塔可以包括:第一图像的第一原始金字塔以及第二图像的第二原始金字塔,例如,图像I的原始金字塔{IL}和图像J的原始金字塔{JL}。任一层的待处理数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据,以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,该层的第一跟踪窗口的位置根据跟踪点在所述第一原始金字塔的该层数据中的位置确定,该层的第二跟踪窗口的位置根据该层的上一层的处理结果确定。根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的所述第一原始图像金字塔和所述第二原始金字塔的当前层的待处理数据,以及所述第一图像的当前级的梯度数据,开始计算当前层的处理结果。
可选的,所述第一图像还具有梯度金字塔;所述读取模块还用于,从第一存储单元读取所述梯度金字塔在当前层的第一跟踪窗口内的数据到第二存储单元;所述第一图像的当前级的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在当前层的第一跟踪窗口内的数据。
可选的,所述计算模块还用于,根据存储在所述第二存储单元的、所述第一原始金字塔在当前层的第一跟踪窗口内的数据,计算所述第一图像的当前级的梯度数据。
可选的,任一层的第二跟踪窗口内的数据包括:所述第二原始金字塔在该层中,各次迭代过程中所使用的数据,所述其中一个图像金字塔包括:所述第二原始金字塔;从第一存储单元完成读取所述其中一个图像金字塔的当前层的待处理数据时,所述读取模块具体用于,从第一存储单元完成读取所述第二原始金字塔的当前层的待处理数据;根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的第一原始金字塔和第二原始金字塔在当前层的待处理数据,开始通过多次循环过程计算当前层的处理结果。其中,在计算当前层的处理结果时,还可以包括所述梯度金字塔在当前层的待处理数据。
其中,第一原始金字塔在当前层的待处理数据包括:第一原始金字塔在当前层的第一跟踪窗口内的数据,梯度金字塔在当前层的待处理数据包括:梯度金字塔在当前层的第一跟踪窗口内的数据,第二原始金字塔在当前层的待处理数据包括:第二原始金字塔在当前层的第二跟踪窗口内的数据。在读取完第二跟踪窗口内的数据之前,就可以开始第1次迭代过程。
可选的,任一层的处理结果包括:所述跟踪点在该层的偏移修正和该层的下一层的预测偏移。所述计算模块还可以用于,根据所述跟踪点在最低层的偏移修正和预测偏移获得所述跟踪点从第一图像到第二图像的位置偏移。例如,根据最低层的偏移修正d0和预测偏移g0计算出所述跟踪点从图像I到图像J的位置偏移。结合跟踪点在图像I的位置还可以进一步计算出跟踪点在图像J的位置。
对应图8所示的方法实施例,本申请实施例还提供了数据处理装置的另一种装置实施例。
本实施例的所述数据处理装置包括:读取模块和计算模块。例如图6所示,所述数据处理装置包括读取模块601和计算模块602。
所述读取模块,用于从第一存储单元一次性读取一个或多个图像金字塔顶端的一层或多层的整层数据到第二存储单元。
其中,在第一存储单元通常存储有所述一个或多个图像金字塔的所有数据。例如,在KLT算法中,第一存储单元存储有图像I的图像金字塔(例如原始金字塔{IL})的所有数据,以及图像J的图像金字塔(例如原始金字塔{JL})的所有数据。
本申请实施例中,所述读取模块在读取一个或多个图像金字塔顶端的一层或多层的整层数据时,从所述第一存储单元一次性读取到所述第二存储单元,也就是通过一次读取操作,将一个图像金字塔顶端的一层或多层的整层数据,或者多个图像金字塔顶端的一层或多层的整层数据,从所述第一存储单元读取到所述第二存储单元。例如在KLT算法中,一次性读取原始金字塔{JL}在第Lm层的整层数据。
在本申请实施例中,所述第一存储单元和所述第二存储单元均指的是具有存储功能的模块,例如具体为存储器、缓存器等。其中,所述第一存储单元可以为外部存储单元,所述第二存储单元可以为内部存储单元。当所述读取模块将待处理数据从所述第一存储单元读取到所述第二存储单元之后,所述计算模块就可以根据存储在所述第二存储单元的数据计算每层的处理结果。
所述计算模块,用于根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果。
所述读取模块读取了一个或多个图像金字塔顶端的一层或多层的整层数据之后,所述计算模块就可以根据每层的待处理数据,计算每层的处理结果。其中,每层的待处理数据指的是该层的整层数据中,用于计算该层的处理结果的数据。例如,在KLT算法中,在第Lm层时,图像I的原始金字塔{IL}在该层的待处理数据包括:图像I的原始金字塔{IL}在第Lm层的第一跟踪窗口内的数据,以及原始金字塔{JL}在第Lm层的第二跟踪窗口内的数据。
所述读取模块和所述计算模块还用于依次从第一存储单元读取并处理所述图像金字塔的剩余每层的待处理数据。
当所述计算模块计算完顶端的一层或多层的处理结果之后,或者在计算的同时,所述读取模块继续从第一存储单元读取剩余每层的待处理数据到第二存储单元,并且所述计算模块对存储在第二存储单元中剩余每层的待处理数据进行处理,计算剩余每层的处理结果。
通过上述技术方案可知,本申请实施例在保证不占用过多的存储空间的前提下,能够根据顶端的整层数据进行多次循环处理,不需要每次循环过程中分别进行读取操作,从而减少了耗时并提高了实时性。
在本申请实施例中,读取模块分别与第一存储单元和第二存储单元相连,计算模块与第二存储单元相连。并且,所述数据处理装置可以用于具有并行处理功能的电路中,读取模块和计算模块具有并行处理功能。该电路可以包括以下任一种电路:具有多核处理器的电路、并行电路系统以及数字逻辑电路。
可选的,根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果时,所述计算模块具体用于,从金字塔的最高层开始,按照逐层递减的顺序,依次根据存储在第二存储单元的每层的待处理数据计算每层的处理结果。例如,所述计算模块先根据一个或多个图像金字塔的最高层,即第Lm层的待处理数据,计算第Lm层的处理结果,再根据一个或多个图像金字塔的第Lm-1层的待处理数据,计算第Lm-1层的处理结果,依次类推。
其中一个图像金字塔的当前层的待处理数据可以包括:所述其中一个图像金字塔的当前层的跟踪窗口内的数据,当前层的跟踪窗口的位置根据上一层的处理结果确定。
本申请实施例在根据每层的待处理数据计算每层的处理结果时,通常是通过多次迭代过程所实现。具体地,根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的每层的待处理数据,通过多次迭代过程计算每层的处理结果。
其中,在所述读取模块从第一存储单元完成读取其中一个图像金字塔的当前层的整层数据之前,所述计算模块可以根据存储在第二存储单元的当前层的待处理数据开始计算当前层的处理结果。以KLT算法举例,第Lm层的读取和计算过程中,在原始金字塔{JL}在第Lm层的整层数据全部读取完之前,例如在读取了原始金字塔{JL}在第Lm层的第二跟踪窗口内的数据之后,所述计算模块就可以开始计算当前层的处理结果,并且所述读取模块继续读取第Lm层的剩余数据。其中,所述其中一个图像金字塔的当前层的待处理数据可以包括:所述其中一个图像金字塔的当前层中,各次迭代过程中所使用的数据。
在本申请实施例中,所述一个或多个图像金字塔可以包括:第一图像的第一原始金字塔以及第二图像的第二原始金字塔,例如图像I的原始金字塔{IL}和图像J的原始金字塔{JL}。任一层的待处理数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据,以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,该层的第一跟踪窗口的位置根据跟踪点在所述第一原始金字塔的该层数据中的位置确定,该层的第二跟踪窗口的位置根据该层的上一层的处理结果确定。根据存储在第二存储单元的每层的待处理数据计算每层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的每层的待处理数据,以及所述第一图像的每层的梯度数据,计算每层的处理结果。
可选的,所述第一图像还具有梯度金字塔;所述读取模块还用于,从第一存储单元读取所述梯度金字塔在每层的第一跟踪窗口内的数据到第二存储单元;所述第一图像的每层的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在每层的第一跟踪窗口内的数据。
可选的,所述计算模块还用于,根据存储在所述第二存储单元的、所述第一原始金字塔在每层的第一跟踪窗口内的数据,计算所述第一图像的每级的梯度数据。
可选的,任一层的处理结果包括:所述跟踪点在该层的偏移修正和该层的下一层的预测偏移。所述处理模块还可以用于,根据所述跟踪点在最低层的偏移修正和预测偏移获得所述跟踪点从第一图像到第二图像的位置偏移。例如,根据最低层的偏移修正d0和预测偏移g0计算出所述跟踪点从图像I到图像J的位置偏移。结合跟踪点在图像I的位置还可以进一步计算出跟踪点在图像J的位置。
本申请实施例还提供了视觉跟踪系统的一种系统实施例。本实施例的所述视觉跟踪系统用于获得第一跟踪点从第一图像到第二图像的位置偏移;所述第一图像具有第一原始金字塔,所述第二图像具有第二原始金字塔;所述系统包括:第一存储单元、第二存储单元和视觉跟踪装置,所述装置包括:读取模块和计算模块。例如图4所示,所述视觉跟踪系统包括第一存储单元403、第二存储单元404和视觉跟踪装置,所述视觉跟踪装置包括读取模块401和计算模块402。
所述第一存储单元存储有所述第一原始图像金字塔和所述第二原始金字塔的所有层的数据;
所述读取模块用于,从金字塔的最高层到最低层,从所述第一存储单元依次读取每层的窗口数据到所述第二存储单元;其中,任一层的窗口数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据、以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,所述在该层的第二跟踪窗口内的数据包括所述第二原始金字塔的该层中,用于迭代计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移的全部数据;
所述计算模块用于,从金字塔的最高层到最低层,根据存储在所述第二存储单元的每层的窗口数据,以及所述第一图像的每级的梯度信息,通过多次迭代过程计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移;
所述计算模块还用于,根据所述第一跟踪点在最低层的预测偏移和偏移修正,获得所述第一跟踪点从第一图像到第二图像的位置偏移。
本实施例与图3、以及图3对应的视觉跟踪装置的实施例相对应,具体请参阅上述实施例的相关描述,这里不再赘述。
本申请实施例还提供了数据处理系统的一种系统实施例。本实施例的数据处理系统包括:第一存储单元、第二存储单元和数据处理装置,所述装置包括:读取模块和计算模块。例如图6所示,所述数据处理系统包括第一存储单元603、第二存储单元604和数据处理装置,所述数据处理装置包括读取模块601和计算模块602。
所述第一存储单元存储有至少一个图像金字塔的所有层的数据;
所述读取模块用于,从所述第一存储单元读取一个或多个图像金字塔的当前层的待处理数据到所述第二存储单元;
所述计算模块用于,根据存储在所述第二存储单元的所述当前层的待处理数据计算当前层的处理结果。
其中,所述计算模块在计算所述当前层的处理结果时,所述读取模块从所述第一存储单元开始读取所述图像金字塔的下一层的待处理数据。
本实施例与图5、以及图5对应的数据处理装置的实施例相对应,具体请参阅上述实施例的相关描述,这里不再赘述。
本申请实施例还提供了数据处理系统的另一种系统实施例。本实施例的数据处理系统包括:第一存储单元、第二存储单元和数据处理装置,所述装置包括:读取模块和计算模块。例如图6所示,所述数据处理系统包括第一存储单元603、第二存储单元604和数据处理装置,所述数据处理装置包括读取模块601和计算模块602。
所述第一存储单元存储有至少一个图像金字塔的所有层的数据;
所述读取模块用于,从所述第一存储单元读取一个或多个图像金字塔的一层或多层的待处理数据到所述第二存储单元;在读取其中一个图像金字塔的当前层的待处理数据时,从所述第一存储单元一次性读取到所述第二存储单元;
所述计算模块用于,在所述读取模块从第一存储单元完成读取所述其中一个图像金字塔的当前层的待处理数据之前,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果。
本实施例与图7、以及图7对应的数据处理装置的实施例相对应,具体请参阅上述实施例的相关描述,这里不再赘述。
本申请实施例还提供了数据处理系统的另一种系统实施例。本实施例的数据处理系统包括:第一存储单元、第二存储单元和数据处理装置,所述装置包括:读取模块和计算模块。例如图6所示,所述数据处理系统包括第一存储单元603、第二存储单元604和数据处理装置,所述数据处理装置包括读取模块601和计算模块602。
所述第一存储单元存储有至少一个图像金字塔的所有层的数据;
所述读取模块用于,从所述第一存储单元一次性读取一个或多个图像金字塔顶端的一层或多层的整层数据到所述第二存储单元;
所述计算模块用于,根据存储在所述第二存储单元的每层的待处理数据,计算每层的处理结果;
所述读取模块和所述计算模块还用于依次从所述第一存储单元读取并处理所述图像金字塔的剩余每层的待处理数据。
本实施例与图8、以及图8对应的数据处理装置的实施例相对应,具体请参阅上述实施例的相关描述,这里不再赘述。
本申请实施例还提供了计算机存储介质的一种实施例,本实施例用于获得第一跟踪点从第一图像到第二图像的位置偏移;所述第一图像具有第一原始金字塔,所述第二图像具有第二原始金字塔。
本实施例的所述计算机存储介质包括计算机程序代码,该计算机程序代码由计算机单元执行,使得该计算机单元:
从金字塔的最高层到最低层,从第一存储单元依次读取每层的窗口数据到第二存储单元;其中,任一层的窗口数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据、以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,所述在该层的第二跟踪窗口内的数据包括所述第二原始金字塔的该层中,用于迭代计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移的全部数据;
从金字塔的最高层到最低层,根据存储在第二存储单元的每层的窗口数据,以及所述第一图像的每级的梯度信息,通过多次迭代过程计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移;
根据所述第一跟踪点在最低层的预测偏移和偏移修正,获得所述第一跟踪点从第一图像到第二图像的位置偏移。
本实施例与图3、以及图3对应的视觉跟踪装置的实施例相对应,具体请参阅上述实施例的相关描述,这里不再赘述。
本申请实施例还提供了计算机存储介质的另一种实施例,本实施例的所述计算机存储介质包括计算机程序代码,该计算机程序代码由计算机单元执行,使得该计算机单元:
从第一存储单元读取一个或多个图像金字塔的当前层的待处理数据到第二存储单元;
根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果;
在计算所述当前层的处理结果时,从第一存储单元开始读取所述图像金字塔的下一层的待处理数据。
本实施例与图5、以及图5对应的数据处理装置的实施例相对应,具体请参阅上述实施例的相关描述,这里不再赘述。
本申请实施例还提供了计算机存储介质的另一种实施例,本实施例的所述计算机存储介质包括计算机程序代码,该计算机程序代码由计算机单元执行,使得该计算机单元:
从第一存储单元读取一个或多个图像金字塔的一层或多层的待处理数据到第二存储单元;在读取其中一个图像金字塔的当前层的待处理数据时,从所述第一存储单元一次性读取到所述第二存储单元;
在从第一存储单元完成读取所述其中一个图像金字塔的当前层的待处理数据之前,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果。
本实施例与图7、以及图7对应的数据处理装置的实施例相对应,具体请参阅上述实施例的相关描述,这里不再赘述。
本申请实施例还提供了计算机存储介质的另一种实施例,本实施例的所述计算机存储介质包括计算机程序代码,该计算机程序代码由计算机单元执行,使得该计算机单元:
从第一存储单元一次性读取一个或多个图像金字塔顶端的一层或多层的整层数据到第二存储单元;
根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果;
依次从第一存储单元读取并处理所述图像金字塔的剩余每层的待处理数据。
本实施例与图8、以及图8对应的数据处理装置的实施例相对应,具体请参阅上述实施例的相关描述,这里不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (98)
1.一种数据处理方法,其特征在于,包括:
从第一存储单元读取一个或多个图像金字塔的当前层的待处理数据到第二存储单元;
根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果;
在计算所述当前层的处理结果时,从第一存储单元开始读取所述图像金字塔的下一层的待处理数据。
2.根据权利要求1所述的方法,其特征在于,根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果,包括:
根据存储在第二存储单元的所述当前层的待处理数据,通过多次迭代过程计算当前层的处理结果。
3.根据权利要求2所述的方法,其特征在于,从第一存储单元读取一个或多个图像金字塔的当前层的待处理数据到第二存储单元,包括:
从第一存储单元一次性读取一个或多个图像金字塔的当前层的待处理数据到第二处理单元;所述一个或多个图像金字塔的当前层的待处理数据包括:所述一个或多个图像金字塔的当前层中,各次迭代过程中所使用的数据。
4.根据权利要求3所述的方法,其特征在于,通过多次迭代过程计算当前层的处理结果,包括:
完成读取当前层的待处理数据之前,开始通过多次迭代过程计算当前层的处理结果。
5.根据权利要求1所述的方法,其特征在于,所述一个或多个图像金字塔包括第一图像金字塔和第二图像金字塔;
从第一存储单元开始读取所述图像金字塔的下一层的待处理数据,包括:从第一存储单元开始读取所述第一图像金字塔的下一层的待处理数据;
所述方法还包括:
在计算所述当前层的处理结果之后,根据所述处理结果,从第一存储单元开始读取所述第二图像金字塔的下一层的待处理数据。
6.根据权利要求5所述的方法,其特征在于,下一层的待处理数据包括所述第一图像金字塔在下一层的第一跟踪窗口内的数据,和所述第二图像金字塔在下一层的第二跟踪窗口内的数据,下一层的第二跟踪窗口的位置根据当前层的处理结果确定。
7.根据权利要求5所述的方法,其特征在于,所述第一图像金字塔包括第一图像的第一原始金字塔,所述第二图像金字塔包括第二图像的第二原始金字塔;
任一层的待处理数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据,以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,该层的第一跟踪窗口的位置根据跟踪点在所述第一原始金字塔的该层数据中的位置确定,该层的第二跟踪窗口的位置根据该层的上一层的处理结果确定;
根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果,包括:
根据存储在第二存储单元的所述当前层的待处理数据,以及所述第一图像的当前级的梯度数据,计算当前层的处理结果。
8.根据权利要求7所述的方法,其特征在于,所述第一图像还具有梯度金字塔;所述方法还包括:
从第一存储单元读取所述梯度金字塔在当前层的第一跟踪窗口内的数据到第二存储单元;
所述第一图像的当前级的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在当前层的第一跟踪窗口内的数据。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
根据存储在所述第二存储单元的、所述第一原始金字塔在当前层的第一跟踪窗口内的数据,计算所述第一图像的当前级的梯度数据。
10.根据权利要求7所述的方法,其特征在于,任一层的第二跟踪窗口内的数据包括:所述第二原始金字塔在该层中,各次迭代过程中所使用的数据。
11.根据权利要求7所述的方法,其特征在于,任一层的处理结果包括:所述跟踪点在该层的偏移修正和该层的下一层的预测偏移。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
根据所述跟踪点在最低层的偏移修正和预测偏移获得所述跟踪点从第一图像到第二图像的位置偏移。
13.一种数据处理方法,其特征在于,包括:
从第一存储单元读取一个或多个图像金字塔的一层或多层的待处理数据到第二存储单元;在读取其中一个图像金字塔的当前层的待处理数据时,从所述第一存储单元一次性读取到所述第二存储单元;
在从第一存储单元完成读取所述其中一个图像金字塔的当前层的待处理数据之前,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果。
14.根据权利要求13所述的方法,其特征在于,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果,包括:
根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据,开始通过多次迭代过程计算当前层的处理结果。
15.根据权利要求14所述的方法,其特征在于,所述其中一个图像金字塔的当前层的待处理数据包括:
所述其中一个图像金字塔的当前层中,各次迭代过程中所使用的数据。
16.根据权利要求13所述的方法,其特征在于,从第一存储单元读取一个或多个图像金字塔中的一层或多层的待处理数据到第二存储单元,包括:
从金字塔的最高层到最低层,从第一存储单元读取一个或多个图像金字塔中的一层或多层的待处理数据到第二存储单元。
17.根据权利要求16所述的方法,其特征在于,还包括:
计算当前层的处理结果时,从第一存储单元开始读取所述一个或多个图像金字塔的下一层的待处理数据。
18.根据权利要求16所述的方法,其特征在于,所述其中一个图像金字塔的当前层的待处理数据包括:所述其中一个图像金字塔的当前层的跟踪窗口内的数据,所述跟踪窗口的位置根据上一层的处理结果确定。
19.根据权利要求13所述的方法,其特征在于,所述一个或多个图像金字塔包括:第一图像的第一原始金字塔,以及第二图像的第二原始金字塔;
任一层的待处理数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据,以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,该层的第一跟踪窗口的位置根据跟踪点在所述第一原始金字塔的该层数据中的位置确定,该层的第二跟踪窗口的位置根据该层的上一层的处理结果确定;
根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果,包括:
根据存储在第二存储单元的所述第一原始图像金字塔和所述第二原始金字塔的当前层的待处理数据,以及所述第一图像的当前级的梯度数据,开始计算当前层的处理结果。
20.根据权利要求19所述的方法,其特征在于,所述第一图像还具有梯度金字塔;所述方法还包括:
从第一存储单元读取所述梯度金字塔在当前层的第一跟踪窗口内的数据到第二存储单元;
所述第一图像的当前级的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在当前层的第一跟踪窗口内的数据。
21.根据权利要求19所述的方法,其特征在于,所述方法还包括:
根据存储在所述第二存储单元的、所述第一原始金字塔在当前层的第一跟踪窗口内的数据,计算所述第一图像的当前级的梯度数据。
22.根据权利要求19所述的方法,其特征在于,任一层的第二跟踪窗口内的数据包括:所述第二原始金字塔在该层中,各次迭代过程中所使用的数据,所述其中一个图像金字塔包括:所述第二原始金字塔;
在从第一存储单元完成读取所述其中一个图像金字塔的当前层的待处理数据之前,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果,包括:
在从第一存储单元完成读取所述第二原始金字塔的当前层的待处理数据之前,根据存储在第二存储单元的第一原始金字塔和第二原始金字塔在当前层的待处理数据,开始通过多次循环过程计算当前层的处理结果。
23.根据权利要求19所述的方法,其特征在于,任一层的处理结果包括:所述跟踪点在该层的偏移修正和该层的下一层的预测偏移。
24.根据权利要求24所述的方法,其特征在于,所述方法还包括:
根据所述跟踪点在最低层的偏移修正和预测偏移获得所述跟踪点从第一图像到第二图像的位置偏移。
25.一种数据处理方法,其特征在于,包括:
从第一存储单元一次性读取一个或多个图像金字塔顶端的一层或多层的整层数据到第二存储单元;
根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果;
依次从第一存储单元读取并处理所述图像金字塔的剩余每层的待处理数据。
26.根据权利要求25所述的方法,其特征在于,根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果,包括:
从金字塔的最高层开始,按照逐层递减的顺序,依次根据存储在第二存储单元的每层的待处理数据计算每层的处理结果。
27.根据权利要求26所述的方法,其特征在于,其中一个图像金字塔的当前层的待处理数据包括:所述其中一个图像金字塔的当前层的跟踪窗口内的数据,当前层的跟踪窗口的位置根据上一层的处理结果确定。
28.根据权利要求25所述的方法,其特征在于,根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果,包括:
根据存储在第二存储单元的每层的待处理数据,通过多次迭代过程计算每层的处理结果。
29.根据权利要求25所述的方法,其特征在于,在从第一存储单元完成读取其中一个图像金字塔的当前层的整层数据之前,根据存储在第二存储单元的当前层的待处理数据开始计算当前层的处理结果。
30.根据权利要求25所述的方法,其特征在于,所述图像金字塔包括:第一图像的第一原始金字塔,以及第二图像的第二原始金字塔;
任一层的待处理数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据,以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,该层的第一跟踪窗口的位置根据跟踪点在所述第一原始金字塔的该层数据中的位置确定,该层的第二跟踪窗口的位置根据该层的上一层的处理结果确定;
根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果,包括:
根据存储在第二存储单元的每层的待处理数据,以及所述第一图像的每层的梯度数据,计算每层的处理结果。
31.根据权利要求30所述的方法,其特征在于,所述第一图像还具有梯度金字塔;所述方法还包括:
从第一存储单元读取所述梯度金字塔在每层的第一跟踪窗口内的数据到第二存储单元;
所述第一图像的每层的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在每层的第一跟踪窗口内的数据。
32.根据权利要求30所述的方法,其特征在于,所述方法还包括:
根据存储在所述第二存储单元的、所述第一原始金字塔在每层的第一跟踪窗口内的数据,计算所述第一图像的每级的梯度数据。
33.根据权利要求30所述的方法,其特征在于,任一层的处理结果包括:所述跟踪点在该层的偏移修正和该层的下一层的预测偏移。
34.根据权利要求33所述的方法,其特征在于,所述方法还包括:
根据所述跟踪点在最低层的处理结果获得所述跟踪点从第一图像到第二图像的位置偏移。
35.一种视觉跟踪方法,其特征在于,用于获得第一跟踪点从第一图像到第二图像的位置偏移;所述第一图像具有第一原始金字塔,所述第二图像具有第二原始金字塔;所述方法包括:
从金字塔的最高层到最低层,从第一存储单元依次读取每层的窗口数据到第二存储单元;其中,任一层的窗口数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据、以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,所述在该层的第二跟踪窗口内的数据包括所述第二原始金字塔的该层中,用于迭代计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移的全部数据;
从金字塔的最高层到最低层,根据存储在第二存储单元的每层的窗口数据,以及所述第一图像的每级的梯度信息,通过多次迭代过程计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移;
根据所述第一跟踪点在最低层的预测偏移和偏移修正,获得所述第一跟踪点从第一图像到第二图像的位置偏移。
36.根据权利要求35所述的方法,其特征在于,在根据存储在第二存储单元的该层的窗口数据计算该层的偏移修正和该层的下一层的预测偏移时,开始读取所述第一原始金字塔在该层的下一层的第一跟踪窗口内的数据。
37.根据权利要求35所述的方法,其特征在于,其中,任一次迭代过程包括:根据上一次迭代的结果或者初始迭代参数、所述第一原始金字塔在该层的第一跟踪窗口内的数据、以及所述第二原始金字塔在该层的该次迭代的第三跟踪窗口内的数据,计算该次迭代的结果,所述该次迭代的第三跟踪窗口的位置根据上一次迭代的结果或者初始迭代参数确定,k大于1。
38.根据权利要求37所述的方法,其特征在于,完成读取所述第二原始金字塔在任一层的第二跟踪窗口内的数据之前,开始计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移。
39.根据权利要求37所述的方法,其特征在于,所述在该层的第二跟踪窗口内的数据包括:所述第二原始金字塔在该层中,各次迭代过程的第三跟踪窗口内的数据。
40.根据权利要求35所述的方法,其特征在于,所述方法还包括:
读取一个或多个图像金字塔顶端的一层或多层的跟踪窗口内的数据时,还读取所述一个或多个图像金字塔顶端的一层或多层的其余数据;
根据所述其余数据获得第二跟踪点从第一图像到第二图像的位置偏移;
所述一个或多个图像金字塔包括:所述第一原始金字塔和所述第二原始金字塔中的一个或多个。
41.根据权利要求35至40任一项所述的方法,其特征在于,所述第一图像还具有梯度金字塔;所述方法还包括:从金字塔的最高层到最低层,从所述第一存储单元依次读取所述梯度金字塔在每层的第一跟踪窗口内的数据到第二存储单元;
所述第一图像的每级的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在每层的第一跟踪窗口内的数据。
42.根据权利要求35至40任一项所述的方法,其特征在于,所述方法还包括:
根据存储在所述第二存储单元的、所述第一原始金字塔在每层的第一跟踪窗口内的数据,计算所述第一图像的每级的梯度数据。
43.根据权利要求35至40任一项所述的方法,其特征在于,任一层的第一跟踪窗口的位置,由所述第一跟踪点在所述第一原始金字塔的该层数据中的位置决定。
44.根据权利要求35至40任一项所述的方法,其特征在于,任一层的第二跟踪窗口的位置,根据所述第一跟踪点在所述第一原始金字塔的该层数据中的位置、该层的预测偏移以及该层的空间倾斜度矩阵确定。
45.一种数据处理装置,其特征在于,包括:读取模块和计算模块;
所述读取模块用于,从第一存储单元读取一个或多个图像金字塔的当前层的待处理数据到第二存储单元;
所述计算模块用于,根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果;
其中,所述计算模块在计算所述当前层的处理结果时,所述读取模块从第一存储单元开始读取所述图像金字塔的下一层的待处理数据。
46.根据权利要求45所述的装置,其特征在于,根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的所述当前层的待处理数据,通过多次迭代过程计算当前层的处理结果。
47.根据权利要求46所述的装置,其特征在于,从第一存储单元读取一个或多个图像金字塔的当前层的待处理数据到第二存储单元时,所述读取模块具体用于,从第一存储单元一次性读取一个或多个图像金字塔的当前层的待处理数据到第二处理单元;所述一个或多个图像金字塔的当前层的待处理数据包括:所述一个或多个图像金字塔的当前层中,各次迭代过程中所使用的数据。
48.根据权利要求47所述的装置,其特征在于,通过多次迭代过程计算当前层的处理结果时,所述计算模块具体用于,在所述读取模块完成读取当前层的待处理数据之前,开始通过多次迭代过程计算当前层的处理结果。
49.根据权利要求45所述的装置,其特征在于,所述一个或多个图像金字塔包括第一图像金字塔和第二图像金字塔;
从第一存储单元开始读取所述图像金字塔的下一层的待处理数据时,所述读取模块具体用于,从第一存储单元开始读取所述第一图像金字塔的下一层的待处理数据;
所述读取模块还用于,在所述计算模块计算所述当前层的处理结果之后,根据所述处理结果,从第一存储单元开始读取所述第二图像金字塔的下一层的待处理数据。
50.根据权利要求49所述的装置,其特征在于,下一层的待处理数据包括所述第一图像金字塔在下一层的第一跟踪窗口内的数据,和所述第二图像金字塔在下一层的第二跟踪窗口内的数据,下一层的第二跟踪窗口的位置根据当前层的处理结果确定。
51.根据权利要求49所述的装置,其特征在于,所述第一图像金字塔包括第一图像的第一原始金字塔,所述第二图像金字塔包括第二图像的第二原始金字塔;
任一层的待处理数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据,以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,该层的第一跟踪窗口的位置根据跟踪点在所述第一原始金字塔的该层数据中的位置确定,该层的第二跟踪窗口的位置根据该层的上一层的处理结果确定;
根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的所述当前层的待处理数据,以及所述第一图像的当前级的梯度数据,计算当前层的处理结果。
52.根据权利要求51所述的装置,其特征在于,所述第一图像还具有梯度金字塔;所述读取模块还用于,从第一存储单元读取所述梯度金字塔在当前层的第一跟踪窗口内的数据到第二存储单元;
所述第一图像的当前级的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在当前层的第一跟踪窗口内的数据。
53.根据权利要求51所述的装置,其特征在于,所述计算模块还用于,根据存储在所述第二存储单元的、所述第一原始金字塔在当前层的第一跟踪窗口内的数据,计算所述第一图像的当前级的梯度数据。
54.根据权利要求51所述的装置,其特征在于,任一层的第二跟踪窗口内的数据包括:所述第二原始金字塔在该层中,各次迭代过程中所使用的数据。
55.根据权利要求51所述的装置,其特征在于,任一层的处理结果包括:所述跟踪点在该层的偏移修正和该层的下一层的预测偏移。
56.根据权利要求55所述的装置,其特征在于,所述计算模块还用于,根据所述跟踪点在最低层的偏移修正和预测偏移获得所述跟踪点从第一图像到第二图像的位置偏移。
57.一种数据处理装置,其特征在于,包括:读取模块和计算模块;
所述读取模块用于,从第一存储单元读取一个或多个图像金字塔的一层或多层的待处理数据到第二存储单元;在读取其中一个图像金字塔的当前层的待处理数据时,从所述第一存储单元一次性读取到所述第二存储单元;
所述计算模块用于,在所述读取模块从第一存储单元完成读取所述其中一个图像金字塔的当前层的待处理数据之前,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果。
58.根据权利要求57所述的装置,其特征在于,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据,开始通过多次迭代过程计算当前层的处理结果。
59.根据权利要求58所述的装置,其特征在于,所述其中一个图像金字塔的当前层的待处理数据包括:
所述其中一个图像金字塔的当前层中,各次迭代过程中所使用的数据。
60.根据权利要求57所述的装置,其特征在于,从第一存储单元读取一个或多个图像金字塔中的一层或多层的待处理数据到第二存储单元时,所述读取模块具体用于,从金字塔的最高层到最低层,从第一存储单元读取一个或多个图像金字塔中的一层或多层的待处理数据到第二存储单元。
61.根据权利要求60所述的装置,其特征在于,所述读取模块还用于,在所述计算模块计算当前层的处理结果时,从第一存储单元开始读取所述一个或多个图像金字塔的下一层的待处理数据。
62.根据权利要求60所述的装置,其特征在于,所述其中一个图像金字塔的当前层的待处理数据包括:所述其中一个图像金字塔的当前层的跟踪窗口内的数据,所述跟踪窗口的位置根据上一层的处理结果确定。
63.根据权利要求57所述的装置,其特征在于,所述一个或多个图像金字塔包括:第一图像的第一原始金字塔,以及第二图像的第二原始金字塔;
任一层的待处理数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据,以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,该层的第一跟踪窗口的位置根据跟踪点在所述第一原始金字塔的该层数据中的位置确定,该层的第二跟踪窗口的位置根据该层的上一层的处理结果确定;
根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的所述第一原始图像金字塔和所述第二原始金字塔的当前层的待处理数据,以及所述第一图像的当前级的梯度数据,开始计算当前层的处理结果。
64.根据权利要求63所述的装置,其特征在于,所述第一图像还具有梯度金字塔;所述读取模块还用于,从第一存储单元读取所述梯度金字塔在当前层的第一跟踪窗口内的数据到第二存储单元;所述第一图像的当前级的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在当前层的第一跟踪窗口内的数据。
65.根据权利要求63所述的装置,其特征在于,所述计算模块还用于,根据存储在所述第二存储单元的、所述第一原始金字塔在当前层的第一跟踪窗口内的数据,计算所述第一图像的当前级的梯度数据。
66.根据权利要求63所述的装置,其特征在于,任一层的第二跟踪窗口内的数据包括:所述第二原始金字塔在该层中,各次迭代过程中所使用的数据,所述其中一个图像金字塔包括:所述第二原始金字塔;
从第一存储单元完成读取所述其中一个图像金字塔的当前层的待处理数据时,所述读取模块具体用于,从第一存储单元完成读取所述第二原始金字塔的当前层的待处理数据;
根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的第一原始金字塔和第二原始金字塔在当前层的待处理数据,开始通过多次循环过程计算当前层的处理结果。
67.根据权利要求63所述的装置,其特征在于,任一层的处理结果包括:所述跟踪点在该层的偏移修正和该层的下一层的预测偏移。
68.根据权利要求67所述的装置,其特征在于,所述计算模块还用于,根据所述跟踪点在最低层的偏移修正和预测偏移获得所述跟踪点从第一图像到第二图像的位置偏移。
69.一种数据处理装置,其特征在于,包括:读取模块和计算模块;
所述读取模块,用于从第一存储单元一次性读取一个或多个图像金字塔顶端的一层或多层的整层数据到第二存储单元;
所述计算模块,用于根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果;
所述读取模块和所述计算模块还用于依次从第一存储单元读取并处理所述图像金字塔的剩余每层的待处理数据。
70.根据权利要求69所述的装置,其特征在于,根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果时,所述计算模块具体用于,从金字塔的最高层开始,按照逐层递减的顺序,依次根据存储在第二存储单元的每层的待处理数据计算每层的处理结果。
71.根据权利要求70所述的装置,其特征在于,其中一个图像金字塔的当前层的待处理数据包括:所述其中一个图像金字塔的当前层的跟踪窗口内的数据,当前层的跟踪窗口的位置根据上一层的处理结果确定。
72.根据权利要求69所述的装置,其特征在于,根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的每层的待处理数据,通过多次迭代过程计算每层的处理结果。
73.根据权利要求69所述的装置,其特征在于,在所述读取模块从第一存储单元完成读取其中一个图像金字塔的当前层的整层数据之前,所述计算模块根据存储在第二存储单元的当前层的待处理数据开始计算当前层的处理结果。
74.根据权利要求69所述的装置,其特征在于,所述图像金字塔包括:第一图像的第一原始金字塔,以及第二图像的第二原始金字塔;
任一层的待处理数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据,以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,该层的第一跟踪窗口的位置根据跟踪点在所述第一原始金字塔的该层数据中的位置确定,该层的第二跟踪窗口的位置根据该层的上一层的处理结果确定;
根据存储在第二存储单元的每层的待处理数据计算每层的处理结果时,所述计算模块具体用于,根据存储在第二存储单元的每层的待处理数据,以及所述第一图像的每层的梯度数据,计算每层的处理结果。
75.根据权利要求74所述的装置,其特征在于,所述第一图像还具有梯度金字塔;所述读取模块还用于,从第一存储单元读取所述梯度金字塔在每层的第一跟踪窗口内的数据到第二存储单元;
所述第一图像的每层的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在每层的第一跟踪窗口内的数据。
76.根据权利要求74所述的装置,其特征在于,所述计算模块还用于,根据存储在所述第二存储单元的、所述第一原始金字塔在每层的第一跟踪窗口内的数据,计算所述第一图像的每级的梯度数据。
77.根据权利要求74所述的装置,其特征在于,任一层的处理结果包括:所述跟踪点在该层的偏移修正和该层的下一层的预测偏移。
78.根据权利要求77所述的装置,其特征在于,所述计算模块还用于,根据所述跟踪点在最低层的偏移修正和预测偏移获得所述跟踪点从第一图像到第二图像的位置偏移。
79.一种视觉跟踪装置,其特征在于,用于获得第一跟踪点从第一图像到第二图像的位置偏移;所述第一图像具有第一原始金字塔,所述第二图像具有第二原始金字塔;所述装置包括:读取模块和计算模块;
所述读取模块用于,从金字塔的最高层到最低层,从第一存储单元依次读取每层的窗口数据到第二存储单元;其中,任一层的窗口数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据、以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,所述在该层的第二跟踪窗口内的数据包括所述第二原始金字塔的该层中,用于迭代计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移的全部数据;
所述计算模块用于,从金字塔的最高层到最低层,根据存储在第二存储单元的每层的窗口数据,以及所述第一图像的每级的梯度信息,通过多次迭代过程计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移;
所述计算模块还用于,根据所述第一跟踪点在最低层的预测偏移和偏移修正,获得所述第一跟踪点从第一图像到第二图像的位置偏移。
80.根据权利要求79所述的装置,其特征在于,在所述计算模块根据存储在第二存储单元的该层的窗口数据计算任一层的偏移修正和该层的下一层的预测偏移时,所述读取模块开始读取所述第一原始金字塔在该层的下一层的第一跟踪窗口内的数据。
81.根据权利要求79所述的装置,其特征在于,其中,任一次迭代过程包括:根据上一次迭代的结果或者初始迭代参数、所述第一原始金字塔在该层的第一跟踪窗口内的数据、以及所述第二原始金字塔在该层的该次迭代的第三跟踪窗口内的数据,计算该次迭代的结果,所述该次迭代的第三跟踪窗口的位置根据上一次迭代的结果或者初始迭代参数确定。
82.根据权利要求81所述的装置,其特征在于,所述读取模块完成读取所述第二原始金字塔在任一层的第二跟踪窗口内的数据之前,所述计算模块开始计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移。
83.根据权利要求81所述的装置,其特征在于,所述在该层的第二跟踪窗口内的数据包括:所述第二原始金字塔在该层中,各次迭代过程的第三跟踪窗口内的数据。
84.根据权利要求79所述的装置,其特征在于,所述读取模块还用于,读取一个或多个图像金字塔顶端的一层或多层的跟踪窗口内的数据时,还读取所述一个或多个图像金字塔顶端的一层或多层的其余数据;
所述计算模块还用于,根据所述其余数据获得第二跟踪点从第一图像到第二图像的位置偏移;
所述一个或多个图像金字塔包括:所述第一原始金字塔和所述第二原始金字塔中的一个或多个。
85.根据权利要求79至84任一项所述的装置,其特征在于,所述第一图像还具有梯度金字塔;所述读取模块还用于,从金字塔的最高层到最低层,从所述第一存储单元依次读取所述梯度金字塔在每层的第一跟踪窗口内的数据到第二存储单元;
所述第一图像的每级的梯度数据包括:存储在第二存储单元的、所述梯度金字塔在每层的第一跟踪窗口内的数据。
86.根据权利要求79至84任一项所述的装置,其特征在于,所述计算模块还用于,根据存储在所述第二存储单元的、所述第一原始金字塔在每层的第一跟踪窗口内的数据,计算所述第一图像的每级的梯度数据。
87.根据权利要求79至84任一项所述的装置,其特征在于,任一层的第一跟踪窗口的位置,由所述第一跟踪点在所述第一原始金字塔的该层数据中的位置决定。
88.根据权利要求79至84任一项所述的装置,其特征在于,任一层的第二跟踪窗口的位置,根据所述第一跟踪点在所述第一原始金字塔的该层数据中的位置、该层的预测偏移以及该层的空间倾斜度矩阵确定。
89.根据权利要求79至84任一项所述的装置,其特征在于,所述装置用于具有并行处理功能的电路中,所述计算模块和所述读取模块具有并行处理功能。
90.根据权利要求89所述的装置,其特征在于,所述电路包括:
具有多核处理器的电路、并行电路系统或者数字逻辑电路。
91.一种数据处理系统,其特征在于,包括:第一存储单元、第二存储单元和数据处理装置,所述装置包括:读取模块和计算模块;
所述第一存储单元存储有至少一个图像金字塔的所有层的数据;
所述读取模块用于,从所述第一存储单元读取一个或多个图像金字塔的当前层的待处理数据到所述第二存储单元;
所述计算模块用于,根据存储在所述第二存储单元的所述当前层的待处理数据计算当前层的处理结果;
其中,所述计算模块在计算所述当前层的处理结果时,所述读取模块从所述第一存储单元开始读取所述图像金字塔的下一层的待处理数据。
92.一种数据处理系统,其特征在于,包括:第一存储单元、第二存储单元和数据处理装置,所述装置包括:读取模块和计算模块;
所述第一存储单元存储有至少一个图像金字塔的所有层的数据;
所述读取模块用于,从所述第一存储单元读取一个或多个图像金字塔的一层或多层的待处理数据到所述第二存储单元;在读取其中一个图像金字塔的当前层的待处理数据时,从所述第一存储单元一次性读取到所述第二存储单元;
所述计算模块用于,在所述读取模块从第一存储单元完成读取所述其中一个图像金字塔的当前层的待处理数据之前,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果。
93.一种数据处理系统,其特征在于,包括:第一存储单元、第二存储单元和数据处理装置,所述装置包括:读取模块和计算模块;
所述第一存储单元存储有至少一个图像金字塔的所有层的数据;
所述读取模块用于,从所述第一存储单元一次性读取一个或多个图像金字塔顶端的一层或多层的整层数据到所述第二存储单元;
所述计算模块用于,根据存储在所述第二存储单元的每层的待处理数据,计算每层的处理结果;
所述读取模块和所述计算模块还用于依次从所述第一存储单元读取并处理所述图像金字塔的剩余每层的待处理数据。
94.一种视觉跟踪系统,其特征在于,用于获得第一跟踪点从第一图像到第二图像的位置偏移;所述第一图像具有第一原始金字塔,所述第二图像具有第二原始金字塔;所述系统包括:第一存储单元、第二存储单元和视觉跟踪装置,所述装置包括:读取模块和计算模块;
所述第一存储单元存储有所述第一原始图像金字塔和所述第二原始金字塔的所有层的数据;
所述读取模块用于,从金字塔的最高层到最低层,从所述第一存储单元依次读取每层的窗口数据到所述第二存储单元;其中,任一层的窗口数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据、以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,所述在该层的第二跟踪窗口内的数据包括所述第二原始金字塔的该层中,用于迭代计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移的全部数据;
所述计算模块用于,从金字塔的最高层到最低层,根据存储在所述第二存储单元的每层的窗口数据,以及所述第一图像的每级的梯度信息,通过多次迭代过程计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移;
所述计算模块还用于,根据所述第一跟踪点在最低层的预测偏移和偏移修正,获得所述第一跟踪点从第一图像到第二图像的位置偏移。
95.一种计算机存储介质,其特征在于,包括计算机程序代码,该计算机程序代码由计算机单元执行,使得该计算机单元:
从第一存储单元读取一个或多个图像金字塔的当前层的待处理数据到第二存储单元;
根据存储在第二存储单元的所述当前层的待处理数据计算当前层的处理结果;
在计算所述当前层的处理结果时,从第一存储单元开始读取所述图像金字塔的下一层的待处理数据。
96.一种计算机存储介质,其特征在于,包括计算机程序代码,该计算机程序代码由计算机单元执行,使得该计算机单元:
从第一存储单元读取一个或多个图像金字塔的一层或多层的待处理数据到第二存储单元;在读取其中一个图像金字塔的当前层的待处理数据时,从所述第一存储单元一次性读取到所述第二存储单元;
在从第一存储单元完成读取所述其中一个图像金字塔的当前层的待处理数据之前,根据存储在第二存储单元的一个或多个图像金字塔的当前层的待处理数据开始计算当前层的处理结果。
97.一种计算机存储介质,其特征在于,包括计算机程序代码,该计算机程序代码由计算机单元执行,使得该计算机单元:
从第一存储单元一次性读取一个或多个图像金字塔顶端的一层或多层的整层数据到第二存储单元;
根据存储在第二存储单元的每层的待处理数据,计算每层的处理结果;
依次从第一存储单元读取并处理所述图像金字塔的剩余每层的待处理数据。
98.一种计算机存储介质,其特征在于,用于获得第一跟踪点从第一图像到第二图像的位置偏移;所述第一图像具有第一原始金字塔,所述第二图像具有第二原始金字塔;所述存储介质包括计算机程序代码,该计算机程序代码由计算机单元执行,使得该计算机单元:
从金字塔的最高层到最低层,从第一存储单元依次读取每层的窗口数据到第二存储单元;其中,任一层的窗口数据包括:所述第一原始金字塔在该层的第一跟踪窗口内的数据、以及所述第二原始金字塔在该层的第二跟踪窗口内的数据,所述在该层的第二跟踪窗口内的数据包括所述第二原始金字塔的该层中,用于迭代计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移的全部数据;
从金字塔的最高层到最低层,根据存储在第二存储单元的每层的窗口数据,以及所述第一图像的每级的梯度信息,通过多次迭代过程计算所述第一跟踪点在该层的偏移修正和该层的下一层的预测偏移;
根据所述第一跟踪点在最低层的预测偏移和偏移修正,获得所述第一跟踪点从第一图像到第二图像的位置偏移。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/085144 WO2017210868A1 (zh) | 2016-06-07 | 2016-06-07 | 数据处理方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107111878A true CN107111878A (zh) | 2017-08-29 |
CN107111878B CN107111878B (zh) | 2019-05-24 |
Family
ID=59676506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680003509.9A Expired - Fee Related CN107111878B (zh) | 2016-06-07 | 2016-06-07 | 数据处理方法、装置及系统 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10909690B2 (zh) |
CN (1) | CN107111878B (zh) |
WO (1) | WO2017210868A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209506A (zh) * | 2019-05-09 | 2019-09-06 | 上海联影医疗科技有限公司 | 数据处理系统、方法、计算机设备及可读存储介质 |
CN110322477A (zh) * | 2019-06-10 | 2019-10-11 | 广州视源电子科技股份有限公司 | 特征点观察窗口设置方法、跟踪方法、装置、设备和介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI716009B (zh) * | 2019-06-21 | 2021-01-11 | 晶睿通訊股份有限公司 | 影像校正方法及其相關監控攝影系統 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101399977A (zh) * | 2007-09-29 | 2009-04-01 | 智多微电子(上海)有限公司 | 解码装置中控制片内存储器的数据并行读写的方法及装置 |
CN102509071A (zh) * | 2011-10-14 | 2012-06-20 | 江南大学 | 光流计算系统和方法 |
CN103177455A (zh) * | 2013-03-20 | 2013-06-26 | 南京理工大学 | 基于多核dsp的klt运动目标跟踪算法的实现方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0692772A1 (fr) * | 1994-07-12 | 1996-01-17 | Laboratoires D'electronique Philips S.A.S. | Procédé et dispositif pour détecter des points clés situés sur le contour d'un objet |
US8026729B2 (en) * | 2003-09-16 | 2011-09-27 | Cardiomems, Inc. | System and apparatus for in-vivo assessment of relative position of an implant |
CN101060374B (zh) * | 2007-04-11 | 2011-04-06 | 中兴通讯股份有限公司 | Turbo编码流水处理装置及方法 |
JP5685928B2 (ja) * | 2010-12-24 | 2015-03-18 | ソニー株式会社 | 情報処理装置、画像データ最適化方法、プログラム |
US20150170333A1 (en) * | 2011-08-31 | 2015-06-18 | Google Inc. | Grouping And Presenting Images |
JP5583191B2 (ja) * | 2011-11-25 | 2014-09-03 | 富士フイルム株式会社 | 放射線画像検出装置およびその作動方法 |
CN103631737A (zh) * | 2012-08-27 | 2014-03-12 | 鸿富锦精密工业(深圳)有限公司 | 存储器数据处理系统及方法 |
JP6087612B2 (ja) * | 2012-12-17 | 2017-03-01 | キヤノン株式会社 | 画像処理装置および画像処理方法 |
KR20140102038A (ko) * | 2013-02-13 | 2014-08-21 | 삼성전자주식회사 | 영상 정합 장치 및 영상 정합 방법 |
CN105205012A (zh) * | 2014-06-26 | 2015-12-30 | 北京兆易创新科技股份有限公司 | 一种数据读取方法和装置 |
US20160148359A1 (en) * | 2014-11-20 | 2016-05-26 | Siemens Medical Solutions Usa, Inc. | Fast Computation of a Laplacian Pyramid in a Parallel Computing Environment |
US9600741B1 (en) * | 2015-03-18 | 2017-03-21 | Amazon Technologies, Inc. | Enhanced image generation based on multiple images |
-
2016
- 2016-06-07 WO PCT/CN2016/085144 patent/WO2017210868A1/zh active Application Filing
- 2016-06-07 CN CN201680003509.9A patent/CN107111878B/zh not_active Expired - Fee Related
-
2018
- 2018-12-06 US US16/211,978 patent/US10909690B2/en active Active
-
2021
- 2021-01-28 US US17/161,472 patent/US20210150733A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101399977A (zh) * | 2007-09-29 | 2009-04-01 | 智多微电子(上海)有限公司 | 解码装置中控制片内存储器的数据并行读写的方法及装置 |
CN102509071A (zh) * | 2011-10-14 | 2012-06-20 | 江南大学 | 光流计算系统和方法 |
CN103177455A (zh) * | 2013-03-20 | 2013-06-26 | 南京理工大学 | 基于多核dsp的klt运动目标跟踪算法的实现方法 |
Non-Patent Citations (1)
Title |
---|
刘恒建,等: "基于 KLT 特征点的LK光流金字塔FPGA实现", 《电视技术》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209506A (zh) * | 2019-05-09 | 2019-09-06 | 上海联影医疗科技有限公司 | 数据处理系统、方法、计算机设备及可读存储介质 |
CN110209506B (zh) * | 2019-05-09 | 2021-08-17 | 上海联影医疗科技股份有限公司 | 数据处理系统、方法、计算机设备及可读存储介质 |
CN110322477A (zh) * | 2019-06-10 | 2019-10-11 | 广州视源电子科技股份有限公司 | 特征点观察窗口设置方法、跟踪方法、装置、设备和介质 |
CN110322477B (zh) * | 2019-06-10 | 2022-01-04 | 广州视源电子科技股份有限公司 | 特征点观察窗口设置方法、跟踪方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
US20190114784A1 (en) | 2019-04-18 |
US10909690B2 (en) | 2021-02-02 |
CN107111878B (zh) | 2019-05-24 |
US20210150733A1 (en) | 2021-05-20 |
WO2017210868A1 (zh) | 2017-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020168844A1 (en) | Image processing method, apparatus, equipment, and storage medium | |
CN110097174B (zh) | 基于fpga和行输出优先的卷积神经网络实现方法、系统及装置 | |
CN105825484B (zh) | 一种基于深度学习的深度图像去噪及增强方法 | |
CN107844828A (zh) | 神经网络中的卷积计算方法和电子设备 | |
EP4030302A1 (en) | Buffer addressing for a convolutional neural network | |
CN107528882A (zh) | 区块链共识网络中处理共识请求的方法、装置和电子设备 | |
KR20180080876A (ko) | 컨볼루션 회로, 그것을 포함하는 어플리케이션 프로세서 및 그것의 동작 방법 | |
CN107895191A (zh) | 一种信息处理方法及相关产品 | |
CN107066239A (zh) | 一种实现卷积神经网络前向计算的硬件结构 | |
US20210157594A1 (en) | Data temporary storage apparatus, data temporary storage method and operation method | |
CN108573305B (zh) | 一种数据处理方法、设备及装置 | |
CN109948774A (zh) | 基于网络层捆绑运算的神经网络加速器及其实现方法 | |
WO2020156508A1 (zh) | 基于具有运算阵列的芯片的运算方法、装置及芯片 | |
CN107766935B (zh) | 多层人造神经网络 | |
CN111986075B (zh) | 一种目标边缘清晰化的风格迁移方法 | |
CN107111878A (zh) | 数据处理方法、装置及系统 | |
CN110706214A (zh) | 融合条件随机与残差的三维U-Net大脑肿瘤分割方法 | |
CN106779057A (zh) | 基于gpu的计算二值神经网络卷积的方法及装置 | |
WO2018227801A1 (zh) | 一种构建神经网络的方法及装置 | |
CN110859642B (zh) | 一种基于AlexNet网络模型实现医学影像辅助诊断的方法、装置、设备及存储介质 | |
CN109255438A (zh) | 调整张量数据的方法和装置 | |
CN109948575A (zh) | 超声图像中眼球区域分割方法 | |
CN109859131A (zh) | 一种基于多尺度自相似性与共形约束的图像复原方法 | |
DE102021107510A1 (de) | Training eines neuronalen netzwerks unter speicherbeschränkung | |
CN110009103B (zh) | 一种深度学习卷积计算的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190524 |