本申請(qǐng)實(shí)施例涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其是涉及數(shù)據(jù)處理方法、裝置及系統(tǒng)。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)的發(fā)展,利用圖像金字塔進(jìn)行數(shù)據(jù)處理,在很多技術(shù)領(lǐng)域都得到了廣泛應(yīng)用,尤其是視覺跟蹤等領(lǐng)域。
目前,在利用圖像金字塔進(jìn)行數(shù)據(jù)處理時(shí),數(shù)據(jù)處理過程通常是:讀取模塊從外部存儲(chǔ)器讀取圖像金字塔一層的待處理數(shù)據(jù),計(jì)算模塊根據(jù)該層的待處理數(shù)據(jù)計(jì)算該層的處理結(jié)果,讀取模塊和計(jì)算模塊不斷重復(fù)上述過程,直至完成整個(gè)數(shù)據(jù)處理過程。
然而,上述數(shù)據(jù)處理過程通常耗時(shí)較長(zhǎng),導(dǎo)致實(shí)時(shí)性較差。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例解決的技術(shù)問題在于提供了一種數(shù)據(jù)處理方法、裝置及系統(tǒng),對(duì)數(shù)據(jù)處理過程進(jìn)行優(yōu)化,從而減少耗時(shí)以提高實(shí)時(shí)性。
為此,本申請(qǐng)解決技術(shù)問題的技術(shù)方案是:
本申請(qǐng)?zhí)峁┝艘环N數(shù)據(jù)處理方法,包括:
從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)到第二存儲(chǔ)單元;
根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果;
在計(jì)算所述當(dāng)前層的處理結(jié)果時(shí),從第一存儲(chǔ)單元開始讀取所述圖像金字塔的下一層的待處理數(shù)據(jù)。
可選的,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果,包括:
根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù),通過多次迭代過程計(jì)算當(dāng)前層的處理結(jié)果。
可選的,從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)到第二存儲(chǔ)單元,包括:
從第一存儲(chǔ)單元一次性讀取一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)到第二處理單元;所述一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)包括:所述一個(gè)或多個(gè)圖像金字塔的當(dāng)前層中,各次迭代過程中所使用的數(shù)據(jù)。
可選的,通過多次迭代過程計(jì)算當(dāng)前層的處理結(jié)果,包括:
完成讀取當(dāng)前層的待處理數(shù)據(jù)之前,開始通過多次迭代過程計(jì)算當(dāng)前層的處理結(jié)果。
可選的,所述一個(gè)或多個(gè)圖像金字塔包括第一圖像金字塔和第二圖像金字塔;
從第一存儲(chǔ)單元開始讀取所述圖像金字塔的下一層的待處理數(shù)據(jù),包括:從第一存儲(chǔ)單元開始讀取所述第一圖像金字塔的下一層的待處理數(shù)據(jù);
所述方法還包括:
在計(jì)算所述當(dāng)前層的處理結(jié)果之后,根據(jù)所述處理結(jié)果,從第一存儲(chǔ)單元開始讀取所述第二圖像金字塔的下一層的待處理數(shù)據(jù)。
可選的,下一層的待處理數(shù)據(jù)包括所述第一圖像金字塔在下一層的第一跟蹤窗口內(nèi)的數(shù)據(jù),和所述第二圖像金字塔在下一層的第二跟蹤窗口內(nèi)的數(shù)據(jù),下一層的第二跟蹤窗口的位置根據(jù)當(dāng)前層的處理結(jié)果確定。
可選的,所述第一圖像金字塔包括第一圖像的第一原始金字塔,所述第二圖像金字塔包括第二圖像的第二原始金字塔;
任一層的待處理數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),該層的第一跟蹤窗口的位置根據(jù)跟蹤點(diǎn)在所述第一原始金字塔的該層數(shù)據(jù)中的位置確定,該層的第二跟蹤窗口的位置根據(jù)該層的上一層的處理結(jié)果確定;
根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果,包括:
根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù),以及所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù),計(jì)算當(dāng)前層的處理結(jié)果。
可選的,所述第一圖像還具有梯度金字塔;所述方法還包括:
從第一存儲(chǔ)單元讀取所述梯度金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù)到第二存儲(chǔ)單元;
所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù)包括:存儲(chǔ)在第二存儲(chǔ)單元的、所述梯度金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
可選的,所述方法還包括:
根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的、所述第一原始金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù)。
可選的,任一層的第二跟蹤窗口內(nèi)的數(shù)據(jù)包括:所述第二原始金字塔在該層中,各次迭代過程中所使用的數(shù)據(jù)。
可選的,任一層的處理結(jié)果包括:所述跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移。
可選的,所述方法還包括:
根據(jù)所述跟蹤點(diǎn)在最低層的偏移修正和預(yù)測(cè)偏移獲得所述跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。
本申請(qǐng)還提供了一種數(shù)據(jù)處理方法,包括:
從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔的一層或多層的待處理數(shù)據(jù)到第二存儲(chǔ)單元;在讀取其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)時(shí),從所述第一存儲(chǔ)單元一次性讀取到所述第二存儲(chǔ)單元;
在從第一存儲(chǔ)單元完成讀取所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)之前,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果。
可選的,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果,包括:
根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù),開始通過多次迭代過程計(jì)算當(dāng)前層的處理結(jié)果。
可選的,所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)包括:
所述其中一個(gè)圖像金字塔的當(dāng)前層中,各次迭代過程中所使用的數(shù)據(jù)。
可選的,從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔中的一層或多層的待處理數(shù)據(jù)到第二存儲(chǔ)單元,包括:
從金字塔的最高層到最低層,從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔中的一層或多層的待處理數(shù)據(jù)到第二存儲(chǔ)單元。
可選的,還包括:
計(jì)算當(dāng)前層的處理結(jié)果時(shí),從第一存儲(chǔ)單元開始讀取所述一個(gè)或多個(gè)圖像金字塔的下一層的待處理數(shù)據(jù)。
可選的,所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)包括:所述其中一個(gè)圖像金字塔的當(dāng)前層的跟蹤窗口內(nèi)的數(shù)據(jù),所述跟蹤窗口的位置根據(jù)上一層的處理結(jié)果確定。
可選的,所述一個(gè)或多個(gè)圖像金字塔包括:第一圖像的第一原始金字塔,以及第二圖像的第二原始金字塔;
任一層的待處理數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),該層的第一跟蹤窗口的位置根據(jù)跟蹤點(diǎn)在所述第一原始金字塔的該層數(shù)據(jù)中的位置確定,該層的第二跟蹤窗口的位置根據(jù)該層的上一層的處理結(jié)果確定;
根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果,包括:
根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述第一原始圖像金字塔和所述第二原始金字塔的當(dāng)前層的待處理數(shù)據(jù),以及所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù),開始計(jì)算當(dāng)前層的處理結(jié)果。
可選的,所述第一圖像還具有梯度金字塔;所述方法還包括:
從第一存儲(chǔ)單元讀取所述梯度金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù)到第二存儲(chǔ)單元;
所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù)包括:存儲(chǔ)在第二存儲(chǔ)單元的、所述梯度金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
可選的,所述方法還包括:
根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的、所述第一原始金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù)。
可選的,任一層的第二跟蹤窗口內(nèi)的數(shù)據(jù)包括:所述第二原始金字塔在該層中,各次迭代過程中所使用的數(shù)據(jù),所述其中一個(gè)圖像金字塔包括:所述第二原始金字塔;
在從第一存儲(chǔ)單元完成讀取所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)之前,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果,包括:
在從第一存儲(chǔ)單元完成讀取所述第二原始金字塔的當(dāng)前層的待處理數(shù)據(jù)之前,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的第一原始金字塔和第二原始金字塔在當(dāng)前層的待處理數(shù)據(jù),開始通過多次循環(huán)過程計(jì)算當(dāng)前層的處理結(jié)果。
可選的,任一層的處理結(jié)果包括:所述跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移。
可選的,所述方法還包括:
根據(jù)所述跟蹤點(diǎn)在最低層的偏移修正和預(yù)測(cè)偏移獲得所述跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。
本申請(qǐng)還提供了一種數(shù)據(jù)處理方法,包括:
從第一存儲(chǔ)單元一次性讀取一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的整層數(shù)據(jù)到第二存儲(chǔ)單元;
根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),計(jì)算每層的處理結(jié)果;
依次從第一存儲(chǔ)單元讀取并處理所述圖像金字塔的剩余每層的待處理數(shù)據(jù)。
可選的,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),計(jì)算每層的處理結(jié)果,包括:
從金字塔的最高層開始,按照逐層遞減的順序,依次根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù)計(jì)算每層的處理結(jié)果。
可選的,其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)包括:所述其中一個(gè)圖像金字塔的當(dāng)前層的跟蹤窗口內(nèi)的數(shù)據(jù),當(dāng)前層的跟蹤窗口的位置根據(jù)上一層的處理結(jié)果確定。
可選的,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),計(jì)算每層的處理結(jié)果,包括:
根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),通過多次迭代過程計(jì)算每層的處理結(jié)果。
可選的,在從第一存儲(chǔ)單元完成讀取其中一個(gè)圖像金字塔的當(dāng)前層的整層數(shù)據(jù)之前,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果。
可選的,所述圖像金字塔包括:第一圖像的第一原始金字塔,以及第二圖像的第二原始金字塔;
任一層的待處理數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),該層的第一跟蹤窗口的位置根據(jù)跟蹤點(diǎn)在所述第一原始金字塔的該層數(shù)據(jù)中的位置確定,該層的第二跟蹤窗口的位置根據(jù)該層的上一層的處理結(jié)果確定;
根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),計(jì)算每層的處理結(jié)果,包括:
根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),以及所述第一圖像的每層的梯度數(shù)據(jù),計(jì)算每層的處理結(jié)果。
可選的,所述第一圖像還具有梯度金字塔;所述方法還包括:
從第一存儲(chǔ)單元讀取所述梯度金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù)到第二存儲(chǔ)單元;
所述第一圖像的每層的梯度數(shù)據(jù)包括:存儲(chǔ)在第二存儲(chǔ)單元的、所述梯度金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
可選的,所述方法還包括:
根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的、所述第一原始金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算所述第一圖像的每級(jí)的梯度數(shù)據(jù)。
可選的,任一層的處理結(jié)果包括:所述跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移。
可選的,所述方法還包括:
根據(jù)所述跟蹤點(diǎn)在最低層的處理結(jié)果獲得所述跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。
本申請(qǐng)還提供了一種視覺跟蹤方法,用于獲得第一跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移;所述第一圖像具有第一原始金字塔,所述第二圖像具有第二原始金字塔;所述方法包括:
從金字塔的最高層到最低層,從第一存儲(chǔ)單元依次讀取每層的窗口數(shù)據(jù)到第二存儲(chǔ)單元;其中,任一層的窗口數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù)、以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),所述在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù)包括所述第二原始金字塔的該層中,用于迭代計(jì)算所述第一跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移的全部數(shù)據(jù);
從金字塔的最高層到最低層,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的窗口數(shù)據(jù),以及所述第一圖像的每級(jí)的梯度信息,通過多次迭代過程計(jì)算所述第一跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移;
根據(jù)所述第一跟蹤點(diǎn)在最低層的預(yù)測(cè)偏移和偏移修正,獲得所述第一跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。
可選的,在根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的該層的窗口數(shù)據(jù)計(jì)算該層的偏移修正和該層的下一層的預(yù)測(cè)偏移時(shí),開始讀取所述第一原始金字塔在該層的下一層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
可選的,其中,任一次迭代過程包括:根據(jù)上一次迭代的結(jié)果或者初始迭代參數(shù)、所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù)、以及所述第二原始金字塔在該層的該次迭代的第三跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算該次迭代的結(jié)果,所述該次迭代的第三跟蹤窗口的位置根據(jù)上一次迭代的結(jié)果或者初始迭代參數(shù)確定,k大于1。
可選的,完成讀取所述第二原始金字塔在任一層的第二跟蹤窗口內(nèi)的數(shù)據(jù)之前,開始計(jì)算所述第一跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移。
可選的,所述在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù)包括:所述第二原始金字塔在該層中,各次迭代過程的第三跟蹤窗口內(nèi)的數(shù)據(jù)。
可選的,所述方法還包括:
讀取一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的跟蹤窗口內(nèi)的數(shù)據(jù)時(shí),還讀取所述一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的其余數(shù)據(jù);
根據(jù)所述其余數(shù)據(jù)獲得第二跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移;
所述一個(gè)或多個(gè)圖像金字塔包括:所述第一原始金字塔和所述第二原始金字塔中的一個(gè)或多個(gè)。
可選的,所述第一圖像還具有梯度金字塔;所述方法還包括:從金字塔的最高層到最低層,從所述第一存儲(chǔ)單元依次讀取所述梯度金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù)到第二存儲(chǔ)單元;
所述第一圖像的每級(jí)的梯度數(shù)據(jù)包括:存儲(chǔ)在第二存儲(chǔ)單元的、所述梯度金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
可選的,所述方法還包括:
根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的、所述第一原始金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算所述第一圖像的每級(jí)的梯度數(shù)據(jù)。
可選的,任一層的第一跟蹤窗口的位置,由所述第一跟蹤點(diǎn)在所述第一原始金字塔的該層數(shù)據(jù)中的位置決定。
可選的,任一層的第二跟蹤窗口的位置,根據(jù)所述第一跟蹤點(diǎn)在所述第一原始金字塔的該層數(shù)據(jù)中的位置、該層的預(yù)測(cè)偏移以及該層的空間傾斜度矩陣確定。
本申請(qǐng)還提供了一種數(shù)據(jù)處理裝置,包括:讀取模塊和計(jì)算模塊;
所述讀取模塊用于,從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)到第二存儲(chǔ)單元;
所述計(jì)算模塊用于,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果;
其中,所述計(jì)算模塊在計(jì)算所述當(dāng)前層的處理結(jié)果時(shí),所述讀取模塊從第一存儲(chǔ)單元開始讀取所述圖像金字塔的下一層的待處理數(shù)據(jù)。
可選的,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果時(shí),所述計(jì)算模塊具體用于,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù),通過多次迭代過程計(jì)算當(dāng)前層的處理結(jié)果。
可選的,從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)到第二存儲(chǔ)單元時(shí),所述讀取模塊具體用于,從第一存儲(chǔ)單元一次性讀取一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)到第二處理單元;所述一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)包括:所述一個(gè)或多個(gè)圖像金字塔的當(dāng)前層中,各次迭代過程中所使用的數(shù)據(jù)。
可選的,通過多次迭代過程計(jì)算當(dāng)前層的處理結(jié)果時(shí),所述計(jì)算模塊具體用于,在所述讀取模塊完成讀取當(dāng)前層的待處理數(shù)據(jù)之前,開始通過多次迭代過程計(jì)算當(dāng)前層的處理結(jié)果。
可選的,所述一個(gè)或多個(gè)圖像金字塔包括第一圖像金字塔和第二圖像金字塔;
從第一存儲(chǔ)單元開始讀取所述圖像金字塔的下一層的待處理數(shù)據(jù)時(shí),所述讀取模塊具體用于,從第一存儲(chǔ)單元開始讀取所述第一圖像金字塔的下一層的待處理數(shù)據(jù);
所述讀取模塊還用于,在所述計(jì)算模塊計(jì)算所述當(dāng)前層的處理結(jié)果之后,根據(jù)所述處理結(jié)果,從第一存儲(chǔ)單元開始讀取所述第二圖像金字塔的下一層的待處理數(shù)據(jù)。
可選的,下一層的待處理數(shù)據(jù)包括所述第一圖像金字塔在下一層的第一跟蹤窗口內(nèi)的數(shù)據(jù),和所述第二圖像金字塔在下一層的第二跟蹤窗口內(nèi)的數(shù)據(jù),下一層的第二跟蹤窗口的位置根據(jù)當(dāng)前層的處理結(jié)果確定。
可選的,所述第一圖像金字塔包括第一圖像的第一原始金字塔,所述第二圖像金字塔包括第二圖像的第二原始金字塔;
任一層的待處理數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),該層的第一跟蹤窗口的位置根據(jù)跟蹤點(diǎn)在所述第一原始金字塔的該層數(shù)據(jù)中的位置確定,該層的第二跟蹤窗口的位置根據(jù)該層的上一層的處理結(jié)果確定;
根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果時(shí),所述計(jì)算模塊具體用于,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù),以及所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù),計(jì)算當(dāng)前層的處理結(jié)果。
可選的,所述第一圖像還具有梯度金字塔;所述讀取模塊還用于,從第一存儲(chǔ)單元讀取所述梯度金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù)到第二存儲(chǔ)單元;
所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù)包括:存儲(chǔ)在第二存儲(chǔ)單元的、所述梯度金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
可選的,所述計(jì)算模塊還用于,根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的、所述第一原始金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù)。
可選的,任一層的第二跟蹤窗口內(nèi)的數(shù)據(jù)包括:所述第二原始金字塔在該層中,各次迭代過程中所使用的數(shù)據(jù)。
可選的,任一層的處理結(jié)果包括:所述跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移。
可選的,所述計(jì)算模塊還用于,根據(jù)所述跟蹤點(diǎn)在最低層的偏移修正和預(yù)測(cè)偏移獲得所述跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。
本申請(qǐng)還提供了一種數(shù)據(jù)處理裝置,包括:讀取模塊和計(jì)算模塊;
所述讀取模塊用于,從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔的一層或多層的待處理數(shù)據(jù)到第二存儲(chǔ)單元;在讀取其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)時(shí),從所述第一存儲(chǔ)單元一次性讀取到所述第二存儲(chǔ)單元;
所述計(jì)算模塊用于,在所述讀取模塊從第一存儲(chǔ)單元完成讀取所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)之前,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果。
可選的,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果時(shí),所述計(jì)算模塊具體用于,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù),開始通過多次迭代過程計(jì)算當(dāng)前層的處理結(jié)果。
可選的,所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)包括:
所述其中一個(gè)圖像金字塔的當(dāng)前層中,各次迭代過程中所使用的數(shù)據(jù)。
可選的,從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔中的一層或多層的待處理數(shù)據(jù)到第二存儲(chǔ)單元時(shí),所述讀取模塊具體用于,從金字塔的最高層到最低層,從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔中的一層或多層的待處理數(shù)據(jù)到第二存儲(chǔ)單元。
可選的,所述讀取模塊還用于,在所述計(jì)算模塊計(jì)算當(dāng)前層的處理結(jié)果時(shí),從第一存儲(chǔ)單元開始讀取所述一個(gè)或多個(gè)圖像金字塔的下一層的待處理數(shù)據(jù)。
可選的,所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)包括:所述其中一個(gè)圖像金字塔的當(dāng)前層的跟蹤窗口內(nèi)的數(shù)據(jù),所述跟蹤窗口的位置根據(jù)上一層的處理結(jié)果確定。
可選的,所述一個(gè)或多個(gè)圖像金字塔包括:第一圖像的第一原始金字塔,以及第二圖像的第二原始金字塔;
任一層的待處理數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),該層的第一跟蹤窗口的位置根據(jù)跟蹤點(diǎn)在所述第一原始金字塔的該層數(shù)據(jù)中的位置確定,該層的第二跟蹤窗口的位置根據(jù)該層的上一層的處理結(jié)果確定;
根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果時(shí),所述計(jì)算模塊具體用于,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述第一原始圖像金字塔和所述第二原始金字塔的當(dāng)前層的待處理數(shù)據(jù),以及所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù),開始計(jì)算當(dāng)前層的處理結(jié)果。
可選的,所述第一圖像還具有梯度金字塔;所述讀取模塊還用于,從第一存儲(chǔ)單元讀取所述梯度金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù)到第二存儲(chǔ)單元;所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù)包括:存儲(chǔ)在第二存儲(chǔ)單元的、所述梯度金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
可選的,所述計(jì)算模塊還用于,根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的、所述第一原始金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù)。
可選的,任一層的第二跟蹤窗口內(nèi)的數(shù)據(jù)包括:所述第二原始金字塔在該層中,各次迭代過程中所使用的數(shù)據(jù),所述其中一個(gè)圖像金字塔包括:所述第二原始金字塔;
從第一存儲(chǔ)單元完成讀取所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)時(shí),所述讀取模塊具體用于,從第一存儲(chǔ)單元完成讀取所述第二原始金字塔的當(dāng)前層的待處理數(shù)據(jù);
根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果時(shí),所述計(jì)算模塊具體用于,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的第一原始金字塔和第二原始金字塔在當(dāng)前層的待處理數(shù)據(jù),開始通過多次循環(huán)過程計(jì)算當(dāng)前層的處理結(jié)果。
可選的,任一層的處理結(jié)果包括:所述跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移。
可選的,所述計(jì)算模塊還用于,根據(jù)所述跟蹤點(diǎn)在最低層的偏移修正和預(yù)測(cè)偏移獲得所述跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。
本申請(qǐng)還提供了一種數(shù)據(jù)處理裝置,包括:讀取模塊和計(jì)算模塊;
所述讀取模塊,用于從第一存儲(chǔ)單元一次性讀取一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的整層數(shù)據(jù)到第二存儲(chǔ)單元;
所述計(jì)算模塊,用于根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),計(jì)算每層的處理結(jié)果;
所述讀取模塊和所述計(jì)算模塊還用于依次從第一存儲(chǔ)單元讀取并處理所述圖像金字塔的剩余每層的待處理數(shù)據(jù)。
可選的,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),計(jì)算每層的處理結(jié)果時(shí),所述計(jì)算模塊具體用于,從金字塔的最高層開始,按照逐層遞減的順序,依次根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù)計(jì)算每層的處理結(jié)果。
可選的,其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)包括:所述其中一個(gè)圖像金字塔的當(dāng)前層的跟蹤窗口內(nèi)的數(shù)據(jù),當(dāng)前層的跟蹤窗口的位置根據(jù)上一層的處理結(jié)果確定。
可選的,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),計(jì)算每層的處理結(jié)果時(shí),所述計(jì)算模塊具體用于,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),通過多次迭代過程計(jì)算每層的處理結(jié)果。
可選的,在所述讀取模塊從第一存儲(chǔ)單元完成讀取其中一個(gè)圖像金字塔的當(dāng)前層的整層數(shù)據(jù)之前,所述計(jì)算模塊根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果。
可選的,所述圖像金字塔包括:第一圖像的第一原始金字塔,以及第二圖像的第二原始金字塔;
任一層的待處理數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),該層的第一跟蹤窗口的位置根據(jù)跟蹤點(diǎn)在所述第一原始金字塔的該層數(shù)據(jù)中的位置確定,該層的第二跟蹤窗口的位置根據(jù)該層的上一層的處理結(jié)果確定;
根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù)計(jì)算每層的處理結(jié)果時(shí),所述計(jì)算模塊具體用于,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),以及所述第一圖像的每層的梯度數(shù)據(jù),計(jì)算每層的處理結(jié)果。
可選的,所述第一圖像還具有梯度金字塔;所述讀取模塊還用于,從第一存儲(chǔ)單元讀取所述梯度金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù)到第二存儲(chǔ)單元;
所述第一圖像的每層的梯度數(shù)據(jù)包括:存儲(chǔ)在第二存儲(chǔ)單元的、所述梯度金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
可選的,所述計(jì)算模塊還用于,根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的、所述第一原始金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算所述第一圖像的每級(jí)的梯度數(shù)據(jù)。
可選的,任一層的處理結(jié)果包括:所述跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移。
可選的,所述計(jì)算模塊還用于,根據(jù)所述跟蹤點(diǎn)在最低層的偏移修正和預(yù)測(cè)偏移獲得所述跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。
本申請(qǐng)還提供了一種視覺跟蹤裝置,用于獲得第一跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移;所述第一圖像具有第一原始金字塔,所述第二圖像具有第二原始金字塔;所述裝置包括:讀取模塊和計(jì)算模塊;
所述讀取模塊用于,從金字塔的最高層到最低層,從第一存儲(chǔ)單元依次讀取每層的窗口數(shù)據(jù)到第二存儲(chǔ)單元;其中,任一層的窗口數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù)、以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),所述在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù)包括所述第二原始金字塔的該層中,用于迭代計(jì)算所述第一跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移的全部數(shù)據(jù);
所述計(jì)算模塊用于,從金字塔的最高層到最低層,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的窗口數(shù)據(jù),以及所述第一圖像的每級(jí)的梯度信息,通過多次迭代過程計(jì)算所述第一跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移;
所述計(jì)算模塊還用于,根據(jù)所述第一跟蹤點(diǎn)在最低層的預(yù)測(cè)偏移和偏移修正,獲得所述第一跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。
可選的,在所述計(jì)算模塊根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的該層的窗口數(shù)據(jù)計(jì)算任一層的偏移修正和該層的下一層的預(yù)測(cè)偏移時(shí),所述讀取模塊開始讀取所述第一原始金字塔在該層的下一層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
可選的,其中,任一次迭代過程包括:根據(jù)上一次迭代的結(jié)果或者初始迭代參數(shù)、所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù)、以及所述第二原始金字塔在該層的該次迭代的第三跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算該次迭代的結(jié)果,所述該次迭代的第三跟蹤窗口的位置根據(jù)上一次迭代的結(jié)果或者初始迭代參數(shù)確定。
可選的,所述讀取模塊完成讀取所述第二原始金字塔在任一層的第二跟蹤窗口內(nèi)的數(shù)據(jù)之前,所述計(jì)算模塊開始計(jì)算所述第一跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移。
可選的,所述在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù)包括:所述第二原始金字塔在該層中,各次迭代過程的第三跟蹤窗口內(nèi)的數(shù)據(jù)。
可選的,所述讀取模塊還用于,讀取一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的跟蹤窗口內(nèi)的數(shù)據(jù)時(shí),還讀取所述一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的其余數(shù)據(jù);
所述計(jì)算模塊還用于,根據(jù)所述其余數(shù)據(jù)獲得第二跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移;
所述一個(gè)或多個(gè)圖像金字塔包括:所述第一原始金字塔和所述第二原始金字塔中的一個(gè)或多個(gè)。
可選的,所述第一圖像還具有梯度金字塔;所述讀取模塊還用于,從金字塔的最高層到最低層,從所述第一存儲(chǔ)單元依次讀取所述梯度金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù)到第二存儲(chǔ)單元;
所述第一圖像的每級(jí)的梯度數(shù)據(jù)包括:存儲(chǔ)在第二存儲(chǔ)單元的、所述梯度金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
可選的,所述計(jì)算模塊還用于,根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的、所述第一原始金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算所述第一圖像的每級(jí)的梯度數(shù)據(jù)。
可選的,任一層的第一跟蹤窗口的位置,由所述第一跟蹤點(diǎn)在所述第一原始金字塔的該層數(shù)據(jù)中的位置決定。
可選的,任一層的第二跟蹤窗口的位置,根據(jù)所述第一跟蹤點(diǎn)在所述第一原始金字塔的該層數(shù)據(jù)中的位置、該層的預(yù)測(cè)偏移以及該層的空間傾斜度矩陣確定。
可選的,所述裝置用于具有并行處理功能的電路中,所述計(jì)算模塊和所述讀取模塊具有并行處理功能。
可選的,所述電路包括:
具有多核處理器的電路、并行電路系統(tǒng)或者數(shù)字邏輯電路。
本申請(qǐng)還提供了一種數(shù)據(jù)處理系統(tǒng),包括:第一存儲(chǔ)單元、第二存儲(chǔ)單元和數(shù)據(jù)處理裝置,所述裝置包括:讀取模塊和計(jì)算模塊;
所述第一存儲(chǔ)單元存儲(chǔ)有至少一個(gè)圖像金字塔的所有層的數(shù)據(jù);
所述讀取模塊用于,從所述第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)到所述第二存儲(chǔ)單元;
所述計(jì)算模塊用于,根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果;
其中,所述計(jì)算模塊在計(jì)算所述當(dāng)前層的處理結(jié)果時(shí),所述讀取模塊從所述第一存儲(chǔ)單元開始讀取所述圖像金字塔的下一層的待處理數(shù)據(jù)。
本申請(qǐng)還提供了一種數(shù)據(jù)處理系統(tǒng),包括:第一存儲(chǔ)單元、第二存儲(chǔ)單元和數(shù)據(jù)處理裝置,所述裝置包括:讀取模塊和計(jì)算模塊;
所述第一存儲(chǔ)單元存儲(chǔ)有至少一個(gè)圖像金字塔的所有層的數(shù)據(jù);
所述讀取模塊用于,從所述第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔的一層或多層的待處理數(shù)據(jù)到所述第二存儲(chǔ)單元;在讀取其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)時(shí),從所述第一存儲(chǔ)單元一次性讀取到所述第二存儲(chǔ)單元;
所述計(jì)算模塊用于,在所述讀取模塊從第一存儲(chǔ)單元完成讀取所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)之前,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果。
本申請(qǐng)還提供了一種數(shù)據(jù)處理系統(tǒng),包括:第一存儲(chǔ)單元、第二存儲(chǔ)單元和數(shù)據(jù)處理裝置,所述裝置包括:讀取模塊和計(jì)算模塊;
所述第一存儲(chǔ)單元存儲(chǔ)有至少一個(gè)圖像金字塔的所有層的數(shù)據(jù);
所述讀取模塊用于,從所述第一存儲(chǔ)單元一次性讀取一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的整層數(shù)據(jù)到所述第二存儲(chǔ)單元;
所述計(jì)算模塊用于,根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),計(jì)算每層的處理結(jié)果;
所述讀取模塊和所述計(jì)算模塊還用于依次從所述第一存儲(chǔ)單元讀取并處理所述圖像金字塔的剩余每層的待處理數(shù)據(jù)。
本申請(qǐng)還提供了一種視覺跟蹤系統(tǒng),用于獲得第一跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移;所述第一圖像具有第一原始金字塔,所述第二圖像具有第二原始金字塔;所述系統(tǒng)包括:第一存儲(chǔ)單元、第二存儲(chǔ)單元和視覺跟蹤裝置,所述裝置包括:讀取模塊和計(jì)算模塊;
所述第一存儲(chǔ)單元存儲(chǔ)有所述第一原始圖像金字塔和所述第二原始金字塔的所有層的數(shù)據(jù);
所述讀取模塊用于,從金字塔的最高層到最低層,從所述第一存儲(chǔ)單元依次讀取每層的窗口數(shù)據(jù)到所述第二存儲(chǔ)單元;其中,任一層的窗口數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù)、以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),所述在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù)包括所述第二原始金字塔的該層中,用于迭代計(jì)算所述第一跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移的全部數(shù)據(jù);
所述計(jì)算模塊用于,從金字塔的最高層到最低層,根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的每層的窗口數(shù)據(jù),以及所述第一圖像的每級(jí)的梯度信息,通過多次迭代過程計(jì)算所述第一跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移;
所述計(jì)算模塊還用于,根據(jù)所述第一跟蹤點(diǎn)在最低層的預(yù)測(cè)偏移和偏移修正,獲得所述第一跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。
本申請(qǐng)還提供了一種計(jì)算機(jī)存儲(chǔ)介質(zhì),包括計(jì)算機(jī)程序代碼,該計(jì)算機(jī)程序代碼由計(jì)算機(jī)單元執(zhí)行,使得該計(jì)算機(jī)單元:
從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)到第二存儲(chǔ)單元;
根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果;
在計(jì)算所述當(dāng)前層的處理結(jié)果時(shí),從第一存儲(chǔ)單元開始讀取所述圖像金字塔的下一層的待處理數(shù)據(jù)。
本申請(qǐng)還提供了一種計(jì)算機(jī)存儲(chǔ)介質(zhì),包括計(jì)算機(jī)程序代碼,該計(jì)算機(jī)程序代碼由計(jì)算機(jī)單元執(zhí)行,使得該計(jì)算機(jī)單元:
從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔的一層或多層的待處理數(shù)據(jù)到第二存儲(chǔ)單元;在讀取其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)時(shí),從所述第一存儲(chǔ)單元一次性讀取到所述第二存儲(chǔ)單元;
在從第一存儲(chǔ)單元完成讀取所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)之前,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果。
本申請(qǐng)還提供了一種計(jì)算機(jī)存儲(chǔ)介質(zhì),包括計(jì)算機(jī)程序代碼,該計(jì)算機(jī)程序代碼由計(jì)算機(jī)單元執(zhí)行,使得該計(jì)算機(jī)單元:
從第一存儲(chǔ)單元一次性讀取一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的整層數(shù)據(jù)到第二存儲(chǔ)單元;
根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),計(jì)算每層的處理結(jié)果;
依次從第一存儲(chǔ)單元讀取并處理所述圖像金字塔的剩余每層的待處理數(shù)據(jù)。
本申請(qǐng)還提供了一種計(jì)算機(jī)存儲(chǔ)介質(zhì),用于獲得第一跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移;所述第一圖像具有第一原始金字塔,所述第二圖像具有第二原始金字塔;所述存儲(chǔ)介質(zhì)包括計(jì)算機(jī)程序代碼,該計(jì)算機(jī)程序代碼由計(jì)算機(jī)單元執(zhí)行,使得該計(jì)算機(jī)單元:
從金字塔的最高層到最低層,從第一存儲(chǔ)單元依次讀取每層的窗口數(shù)據(jù)到第二存儲(chǔ)單元;其中,任一層的窗口數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù)、以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),所述在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù)包括所述第二原始金字塔的該層中,用于迭代計(jì)算所述第一跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移的全部數(shù)據(jù);
從金字塔的最高層到最低層,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的窗口數(shù)據(jù),以及所述第一圖像的每級(jí)的梯度信息,通過多次迭代過程計(jì)算所述第一跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移;
根據(jù)所述第一跟蹤點(diǎn)在最低層的預(yù)測(cè)偏移和偏移修正,獲得所述第一跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。
通過上述技術(shù)方案可知,在利用圖像金字塔進(jìn)行數(shù)據(jù)處理時(shí),往往由于等待時(shí)間較長(zhǎng)導(dǎo)致耗時(shí)較長(zhǎng),因此,本申請(qǐng)實(shí)施例在利用圖像金字塔進(jìn)行數(shù)據(jù)處理時(shí),不需要等待當(dāng)前層的處理結(jié)果計(jì)算完畢,而是在計(jì)算當(dāng)前層的處理結(jié)果時(shí),就開始讀取下一層的待處理數(shù)據(jù),以實(shí)現(xiàn)下一層的計(jì)算。因此實(shí)現(xiàn)了對(duì)數(shù)據(jù)處理過程的優(yōu)化,減少讀取操作的等待時(shí)間,從而減少了耗時(shí)并提高了實(shí)時(shí)性。
附圖說明
為了更清楚地說明本申請(qǐng)實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,還可以根據(jù)這些附圖獲得其它的附圖。
圖1為3層圖像金字塔構(gòu)成的圖像集合示意圖;
圖2為同一跟蹤點(diǎn)在兩幅圖中的位置點(diǎn);
圖3為本申請(qǐng)?zhí)峁┑囊环N方法實(shí)施例的流程示意圖;
圖4為本申請(qǐng)?zhí)峁┑囊环N裝置實(shí)施例的結(jié)構(gòu)示意圖;
圖5為本申請(qǐng)?zhí)峁┑牧硪环N裝置實(shí)施例的結(jié)構(gòu)示意圖;
圖6為本申請(qǐng)?zhí)峁┑牧硪环N方法實(shí)施例的流程示意圖;
圖7為本申請(qǐng)?zhí)峁┑牧硪环N方法實(shí)施例的流程示意圖;
圖8為本申請(qǐng)?zhí)峁┑牧硪环N方法實(shí)施例的流程示意圖。
具體實(shí)施方式
圖像金字塔是一系列以金字塔形狀排列的分辨率逐漸降低的圖像集合。例如,圖1示出了圖像i的3層圖像金字塔構(gòu)成的圖像集合,左圖為圖像i的圖像金字塔第0層的圖像,中圖為圖像i的圖像金字塔第1層的圖像,右圖為圖像i的圖像金字塔第2層的圖像。圖像金字塔的類型可以包括原始金字塔和梯度金字塔等。原始金字塔指的是通過圖像的原始特征,例如灰度值和/或色彩值等特征進(jìn)行表示的圖像金字塔,梯度金字塔指定是通過原始金字塔的梯度特征進(jìn)行表示的圖像金字塔。
利用圖像金字塔進(jìn)行數(shù)據(jù)處理被廣泛應(yīng)用于視覺跟蹤等領(lǐng)域,下面以klt(kanade-lucas-tomasi)算法為例進(jìn)行說明。
klt算法是視覺跟蹤領(lǐng)域中一種常用的跟蹤算法,由于其抗干擾能力等特點(diǎn),具有廣泛的應(yīng)用。利用klt算法能夠計(jì)算出一個(gè)或多個(gè)跟蹤點(diǎn)在至少兩幅圖像之間的位置偏移。例如圖2示出了圖像i和圖像j兩幅圖,其中,同一跟蹤點(diǎn)在圖像i中為a1點(diǎn),在圖像j中為a2點(diǎn),利用klt算法能夠計(jì)算出跟蹤點(diǎn)在圖像i到圖像j之間的位置偏移,即a1點(diǎn)在圖像i中的位置ua1,與a2點(diǎn)在圖像j中的位置ua2之間的位置偏移。下面說明klt算法的跟蹤過程。
外部存儲(chǔ)器中存儲(chǔ)有圖像i的原始金字塔{il}和梯度金字塔
首先開始最高層,即第lm層的讀取過程和計(jì)算過程:讀取模塊從外部存儲(chǔ)器讀取原始金字塔{il}和梯度金字塔
在完成第lm層的讀取和計(jì)算過程之后,根據(jù)最高層的計(jì)算結(jié)果,進(jìn)行下一層的讀取和計(jì)算過程,直至完成在最低層的讀取和計(jì)算過程。根據(jù)計(jì)算出的跟蹤點(diǎn)在最低層的偏移修正d0和預(yù)測(cè)偏移g0計(jì)算出跟蹤點(diǎn)從圖像i到圖像j的位置偏移。結(jié)合跟蹤點(diǎn)在圖像i的位置還可以進(jìn)一步計(jì)算出跟蹤點(diǎn)在圖像j的位置。
在利用klt算法進(jìn)行視覺跟蹤過程中,往往耗時(shí)較長(zhǎng)導(dǎo)致實(shí)時(shí)性較長(zhǎng),主要原因在于其中讀取的速度要遠(yuǎn)大于計(jì)算的速度,因此讀取數(shù)據(jù)的過程往往占了跟蹤過程的大部分時(shí)間,甚至能夠占到整個(gè)跟蹤過程的50%-75%。因此,本申請(qǐng)實(shí)施例提供了一種對(duì)klt算法進(jìn)行優(yōu)化的視覺跟蹤方式,能夠減少視覺跟蹤過程的耗時(shí)并且提供實(shí)時(shí)性。下面具體說明。
請(qǐng)參閱圖3,本申請(qǐng)實(shí)施例提供了視覺跟蹤方法的一種方法實(shí)施例。本實(shí)施例的視覺跟蹤方法用于獲得第一跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移;所述第一圖像具有第一原始金字塔,所述第二圖像具有第二原始金字塔。例如,所述第一圖像和所述第二圖像可以分別為圖2所示的圖像i和圖像j,所述第一原始金字塔為圖像i的原始金字塔{il},第二原始金字塔為圖像j的原始金字塔{jl},其中l(wèi)=0,1,…,lm,lm≥1。
本實(shí)施例的所述視覺跟蹤方法包括:
301:從金字塔的最高層到最低層,從第一存儲(chǔ)單元依次讀取每層的窗口數(shù)據(jù)到第二存儲(chǔ)單元。
本實(shí)施例所用于的系統(tǒng)包括至少兩個(gè)存儲(chǔ)單元,即第一存儲(chǔ)單元和第二存儲(chǔ)單元。其中,在所述第一存儲(chǔ)單元中存儲(chǔ)有第一原始金字塔和第二原始金字塔的所有數(shù)據(jù)。所述第一存儲(chǔ)單元和所述第二存儲(chǔ)單元均指的是具有存儲(chǔ)功能的模塊,例如具體為存儲(chǔ)器、緩存器等。所述第一存儲(chǔ)單元可以為外部存儲(chǔ)單元,所述第二存儲(chǔ)單元可以為內(nèi)部存儲(chǔ)單元。當(dāng)將所述窗口數(shù)據(jù)從所述第一存儲(chǔ)單元讀取到所述第二存儲(chǔ)單元之后,即可以根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的所述窗口數(shù)據(jù)進(jìn)行每一層的計(jì)算。
其中,任一層的窗口數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù)、以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),所述在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù)包括所述第二原始金字塔的該層中,用于迭代計(jì)算所述第一跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移的全部數(shù)據(jù)。
例如,第lm層的窗口數(shù)據(jù)包括:ilm在第一跟蹤窗口內(nèi)的數(shù)據(jù)和jlm在第二跟蹤窗口內(nèi)的數(shù)據(jù)。其中,ilm為原始金字塔{il}的第lm層,jlm為第二原始金字塔的第lm層。
302:從金字塔的最高層到最低層,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的窗口數(shù)據(jù),以及所述第一圖像的每級(jí)的梯度信息,通過多次迭代過程計(jì)算所述第一跟蹤點(diǎn)在每層的偏移修正和每層的下一層的預(yù)測(cè)偏移。
例如在第lm層,根據(jù)ilm在第一跟蹤窗口內(nèi)的數(shù)據(jù)和jlm在第二跟蹤窗口內(nèi)的數(shù)據(jù),通過多次迭代過程計(jì)算第一跟蹤點(diǎn)在第lm層的偏移修正
303:根據(jù)所述第一跟蹤點(diǎn)在最低層的預(yù)測(cè)偏移和偏移修正,獲得所述第一跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。
例如,將最低層,即第0層的偏移修正d0和預(yù)測(cè)偏移g0相加,即可得到第一跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移d,即d=d0+g0。結(jié)合第一跟蹤點(diǎn)在圖像i的位置u還可以進(jìn)一步計(jì)算出第一跟蹤點(diǎn)在圖像j的位置v,例如第一跟蹤點(diǎn)在圖像j的位置為v=u+d。
目前在讀取任一層的第二原始金字塔的數(shù)據(jù)時(shí),至少需要通過k次讀取操作進(jìn)行k次讀取。例如在第lm層,第1次迭代過程中,讀取原始金字塔{jl}在第lm層的第1次迭代過程的第三跟蹤窗口內(nèi)的數(shù)據(jù),第2次迭代過程中,讀取原始金字塔{jl}在第lm層的第2次迭代過程的第三跟蹤窗口內(nèi)的數(shù)據(jù),依次類推。而本申請(qǐng)實(shí)施例中,不再需要讀取k次第二原始金字塔中的數(shù)據(jù),而是將該層各次迭代過程中所需要的第二原始金字塔中的數(shù)據(jù),即所述第二跟蹤窗口內(nèi)的數(shù)據(jù),通過一次讀取操作進(jìn)行讀取。從而不需要發(fā)多次讀取請(qǐng)求,減少了發(fā)送讀取請(qǐng)求和相應(yīng)讀取請(qǐng)求的時(shí)間。例如,第三跟蹤窗口的大小為15像素×15像素,第二跟蹤窗口的大小可以為33像素×33像素。從而對(duì)klt跟蹤算法的讀取過程進(jìn)行優(yōu)化,降低klt跟蹤過程的耗時(shí),提高實(shí)時(shí)性。
在本申請(qǐng)實(shí)施例中,所述第一圖像的每級(jí)的梯度信息,可以從梯度金字塔中讀取出,也可以根據(jù)窗口數(shù)據(jù)計(jì)算得出。
例如,所述第一圖像還具有梯度金字塔,例如,梯度金字塔為圖像i的梯度金字塔
又例如,所述方法還包括:根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的、所述第一原始金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算所述第一圖像的每級(jí)的梯度數(shù)據(jù)。
本申請(qǐng)實(shí)施例可以具體用于圖4所示的視覺跟蹤裝置中,所述視覺跟蹤裝置包括讀取模塊401和計(jì)算模塊402。讀取模塊401分別與第一存儲(chǔ)單元403和第二存儲(chǔ)單元404相連,計(jì)算模塊402與第二存儲(chǔ)單元404相連。其中,由讀取模塊401執(zhí)行本申請(qǐng)實(shí)施例的讀取操作,由計(jì)算模塊402執(zhí)行本申請(qǐng)實(shí)施例的計(jì)算操作。并且,所述視覺跟蹤裝置可以用于具有并行處理功能的電路中,讀取模塊401和計(jì)算模塊402具有并行處理功能。該電路可以包括以下任一種電路:具有多核處理器的電路、并行電路系統(tǒng)以及數(shù)字邏輯電路。
其中,任一層的第一跟蹤窗口的位置,由所述第一跟蹤點(diǎn)在所述第一原始金字塔的該層數(shù)據(jù)中的位置決定。例如,第一跟蹤窗口的中心在第l層的位置ul為ul=u/2l,其中,u為第一跟蹤點(diǎn)在第一圖像中的位置。
可見,由于第一跟蹤窗口的位置與上一層的計(jì)算結(jié)果不相關(guān),因此本申請(qǐng)實(shí)施例中可以并行執(zhí)行讀取功能和計(jì)算功能,在根據(jù)任一層的窗口數(shù)據(jù)計(jì)算該層的偏移修正和該層的下一層的偏移修正時(shí),可以開始讀取所述第一原始金字塔在該層的下一層的第一跟蹤窗口內(nèi)的數(shù)據(jù),從而進(jìn)一步減少了耗時(shí)。舉例說明,在根據(jù)第lm層的窗口數(shù)據(jù)計(jì)算第lm層的計(jì)算結(jié)果時(shí),就可以開始讀取第lm-1層的窗口數(shù)據(jù)。實(shí)際上,本申請(qǐng)實(shí)施例中,可以在完成讀取當(dāng)前層的窗口數(shù)據(jù)之后,就可以立刻開始讀取第一原始圖像金字塔在下一層的第一跟蹤窗口內(nèi)的數(shù)據(jù),并同時(shí)計(jì)算當(dāng)前層的計(jì)算結(jié)果,使得讀取操作持續(xù)進(jìn)行,從而節(jié)約耗時(shí)。其中,若任一層的窗口數(shù)據(jù)還包括所述梯度金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算所述梯度金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù)時(shí),還可以開始讀取梯度金字塔在該層的下一層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
若讀取完所述第一原始金字塔在該層的下一層的第一跟蹤窗口內(nèi)的數(shù)據(jù),如果已經(jīng)計(jì)算出該層的計(jì)算結(jié)果,即該層的偏移修正和下一層的預(yù)測(cè)偏移,則繼續(xù)讀取第二原始金字塔在下一層的第二跟蹤窗口內(nèi)的數(shù)據(jù),如果沒有計(jì)算出該層的計(jì)算結(jié)果,則等待計(jì)算出該層的計(jì)算結(jié)果之后,根據(jù)該層的計(jì)算結(jié)果,讀取第二原始金字塔在下一層的第二跟蹤窗口內(nèi)的數(shù)據(jù)。
其中,任一次迭代過程可以包括:根據(jù)上一次迭代的結(jié)果或者初始迭代參數(shù)、所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù)、以及所述第二原始金字塔在該層的該次迭代的第三跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算該次迭代的結(jié)果,所述該次迭代的第三跟蹤窗口的位置根據(jù)上一次迭代的結(jié)果或者初始迭代參數(shù)確定。若任一層的窗口數(shù)據(jù)還包括所述梯度金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),則在計(jì)算該次迭代的結(jié)果時(shí)還會(huì)根據(jù)所述梯度金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。其中,所述在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù)可以包括:所述第二原始金字塔在該層中,各次迭代過程的第三跟蹤窗口內(nèi)的數(shù)據(jù)。
舉例說明,在第lm層的第1次迭代過程,根據(jù)初始參數(shù)
下面以第lm層為例,提供一種在第k次迭代過程的具體計(jì)算方式,該具體計(jì)算方式并不會(huì)對(duì)本申請(qǐng)實(shí)施例起到限制作用。
其中,
其中,px和py分別為ulm的橫坐標(biāo)和縱坐標(biāo),wx和wy分別由第一跟蹤窗口在橫軸方向和縱軸方向上的長(zhǎng)度決定,ix(x,y)為梯度金字塔
其中,g為第lm層空間傾斜度矩陣,具體的計(jì)算方式可以為:
從而最終計(jì)算出第lm層,第k次迭代過程的結(jié)果
其中,根據(jù)上述公式中的
在本申請(qǐng)實(shí)施例中,讀取任一層的窗口數(shù)據(jù)時(shí)的讀取順序,可以是先讀取所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),再讀取所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù)。因此,不需要等待完成讀取所述第二原始金字塔在任一層的第二跟蹤窗口內(nèi)的數(shù)據(jù)之前,甚至可以在開始讀取所述第二跟蹤窗口內(nèi)的數(shù)據(jù)之前,就可以開始計(jì)算所述第一跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移。若任一層的窗口數(shù)據(jù)還包括所述梯度金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),在讀取所述第二原始金字塔的數(shù)據(jù)之前,還可以讀取所述梯度金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
舉例說明,在第lm層,在讀取完ilm在第一跟蹤窗口內(nèi)的數(shù)據(jù)和
在本申請(qǐng)實(shí)施例中,當(dāng)需要計(jì)算多個(gè)跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移,則需要重復(fù)上述視覺跟蹤過程,此時(shí)需要再次讀取每層的窗口數(shù)據(jù),此時(shí)每層的窗口數(shù)據(jù)根據(jù)新的跟蹤點(diǎn)確定。舉例說明,若要計(jì)算第一跟蹤點(diǎn)在圖像i和圖像j之間的位置偏移,則在第lm層的讀取過程中,通常只讀取圖像i和圖像j在跟蹤窗口內(nèi)的數(shù)據(jù),該跟蹤窗口的位置和大小根據(jù)所述第一跟蹤點(diǎn)的位置確定。然而,如果計(jì)算其他跟蹤點(diǎn),例如第二跟蹤點(diǎn)的位置偏移時(shí),則在第lm層的讀取過程中,需要再讀取圖像i和圖像j在跟蹤窗口內(nèi)的數(shù)據(jù),該跟蹤窗口的位置和大小根據(jù)所述第二跟蹤點(diǎn)的位置確定??梢娫谶@種需要循環(huán)處理的過程中,需要通過多次讀取操作讀取待處理數(shù)據(jù),從而導(dǎo)致耗時(shí)較長(zhǎng)以及實(shí)時(shí)性較差。
因此,本申請(qǐng)實(shí)施例中還可以一次性讀取圖像金字塔頂端的一層或多層數(shù)據(jù),既可以解決上述技術(shù)問題,而且圖像金字塔頂端的數(shù)據(jù)量通常較小,也不會(huì)占用過多的存儲(chǔ)空間。具體地,本申請(qǐng)實(shí)施例的所述方法還可以包括:讀取一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的跟蹤窗口內(nèi)的數(shù)據(jù)時(shí),還讀取所述一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的其余數(shù)據(jù);根據(jù)所述其余數(shù)據(jù)獲得第二跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移;所述一個(gè)或多個(gè)圖像金字塔包括:所述第一原始金字塔、和所述第二原始金字塔中的一個(gè)或多個(gè)。可選的,所述一個(gè)或多個(gè)圖像金字塔還可以包括所述梯度金字塔。
舉例說明,在301中,將ilm在第lm層的所有數(shù)據(jù)讀取到第二存儲(chǔ)單元,此時(shí)既讀取了第lm層的窗口數(shù)據(jù),也讀取了第lm層的其余數(shù)據(jù)。這樣之后在計(jì)算第二跟蹤點(diǎn)的位置偏移時(shí),不需要重新讀取ilm在第lm層的數(shù)據(jù),而是利用其余數(shù)據(jù)計(jì)算第二跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移,減少讀取操作的次數(shù),從而減少耗時(shí)。其中計(jì)算第二跟蹤點(diǎn)的位置偏移的具體計(jì)算過程,請(qǐng)參閱計(jì)算第一跟蹤點(diǎn)的位置偏移的計(jì)算過程,這里不再贅述。
與上述klt算法的跟蹤過程類似,在利用圖像金字塔進(jìn)行數(shù)據(jù)處理時(shí),數(shù)據(jù)處理過程通常是:讀取模塊從外部存儲(chǔ)器讀取圖像金字塔一層的待處理數(shù)據(jù),計(jì)算模塊根據(jù)該層的待處理數(shù)據(jù)計(jì)算該層的處理結(jié)果,讀取模塊和計(jì)算模塊不斷重復(fù)上述過程,直至完成整個(gè)數(shù)據(jù)處理過程。
上述數(shù)據(jù)處理過程中,讀取模塊在讀取完一層的待處理數(shù)據(jù)之后,往往要等待計(jì)算模塊完畢后,才開始讀取下一層的待處理數(shù)據(jù),從而導(dǎo)致耗時(shí)較長(zhǎng)以及實(shí)時(shí)性較差。尤其是在klt跟蹤算法的跟蹤過程中,由于讀取的速度要遠(yuǎn)大于計(jì)算的速度,因此讀取數(shù)據(jù)的過程往往占了跟蹤過程的大部分時(shí)間,甚至能夠占到整個(gè)跟蹤過程的50%-75%。
本申請(qǐng)實(shí)施例解決的技術(shù)問題在于提供了一種數(shù)據(jù)處理方法、裝置及系統(tǒng),對(duì)數(shù)據(jù)處理過程進(jìn)行優(yōu)化,從而減少耗時(shí)以提高實(shí)時(shí)性。
請(qǐng)參閱圖5,本申請(qǐng)實(shí)施例提供了數(shù)據(jù)處理方法的一種方法實(shí)施例。本實(shí)施例的數(shù)據(jù)處理方法包括:
501:從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)到第二存儲(chǔ)單元。
本實(shí)施例所用于的系統(tǒng)包括至少兩個(gè)存儲(chǔ)單元,即第一存儲(chǔ)單元和第二存儲(chǔ)單元。其中,在所述第一存儲(chǔ)單元中存儲(chǔ)有一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)。實(shí)際上,在第一存儲(chǔ)單元通常存儲(chǔ)有所述一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的整層數(shù)據(jù)。例如,在klt算法中,當(dāng)前層為第lm層時(shí),第一存儲(chǔ)單元存儲(chǔ)有圖像i的圖像金字塔(例如原始金字塔{il})在第lm層的所有數(shù)據(jù),以及圖像j的圖像金字塔(例如原始金字塔{jl})在第lm層的所有數(shù)據(jù)。
其中,當(dāng)前層的待處理數(shù)據(jù)指的是當(dāng)前層的所有數(shù)據(jù)中,用于計(jì)算當(dāng)前層的處理結(jié)果的數(shù)據(jù)。例如,在klt算法中,當(dāng)前層為第lm層時(shí),圖像i的原始金字塔{il}在當(dāng)前層的待處理數(shù)據(jù),包括圖像i的原始金字塔{il}在第lm層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
502:根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果。
在本申請(qǐng)實(shí)施例中,所述第一存儲(chǔ)單元和所述第二存儲(chǔ)單元均指的是具有存儲(chǔ)功能的模塊,例如具體為存儲(chǔ)器、緩存器等。
其中,所述第一存儲(chǔ)單元可以為外部存儲(chǔ)單元,所述第二存儲(chǔ)單元可以為內(nèi)部存儲(chǔ)單元。當(dāng)將所述待處理數(shù)據(jù)從所述第一存儲(chǔ)單元讀取到所述第二存儲(chǔ)單元之后,就可以根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的所述待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果。例如,在klt算法中,當(dāng)前層為第lm層時(shí),根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的當(dāng)前層的待處理數(shù)據(jù),計(jì)算出跟蹤點(diǎn)在第lm層的偏移修正
503:在計(jì)算所述當(dāng)前層的處理結(jié)果時(shí),從第一存儲(chǔ)單元開始讀取所述圖像金字塔的下一層的待處理數(shù)據(jù)。
在本申請(qǐng)實(shí)施例中,并行執(zhí)行讀取功能和計(jì)算功能。不需要等待當(dāng)前層的處理結(jié)果計(jì)算完畢,而是在計(jì)算當(dāng)前層的處理結(jié)果時(shí),就開始讀取下一層的待處理數(shù)據(jù),以實(shí)現(xiàn)下一層的計(jì)算。例如,在klt算法中,當(dāng)前層為第lm層時(shí),在計(jì)算第lm層的偏移修正
通過上述技術(shù)方案可知,在利用圖像金字塔進(jìn)行數(shù)據(jù)處理時(shí),往往由于等待時(shí)間較長(zhǎng)導(dǎo)致耗時(shí)較長(zhǎng),因此,本申請(qǐng)實(shí)施例在利用圖像金字塔進(jìn)行數(shù)據(jù)處理時(shí),不需要等待當(dāng)前層的處理結(jié)果計(jì)算完畢,而是在計(jì)算當(dāng)前層的處理結(jié)果時(shí),就開始讀取下一層的待處理數(shù)據(jù),以實(shí)現(xiàn)下一層的計(jì)算。因此實(shí)現(xiàn)了對(duì)數(shù)據(jù)處理過程的優(yōu)化,減少讀取操作的等待時(shí)間,從而減少了耗時(shí)并提高了實(shí)時(shí)性。
本申請(qǐng)實(shí)施例可以具體用于圖6所示的數(shù)據(jù)處理裝置中,所述數(shù)據(jù)處理裝置包括讀取模塊601和計(jì)算模塊602。讀取模塊601分別與第一存儲(chǔ)單元603和第二存儲(chǔ)單元604相連,計(jì)算模塊602與第二存儲(chǔ)單元604相連。其中,由讀取模塊601執(zhí)行本申請(qǐng)實(shí)施例的讀取操作,由計(jì)算模塊602執(zhí)行本申請(qǐng)實(shí)施例的計(jì)算操作。并且,所述數(shù)據(jù)處理裝置可以用于具有并行處理功能的電路中,讀取模塊601和計(jì)算模塊602具有并行處理功能。該電路可以包括以下任一種電路:具有多核處理器的電路、并行電路系統(tǒng)以及數(shù)字邏輯電路。
本申請(qǐng)實(shí)施例在根據(jù)當(dāng)前層的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果時(shí),通常是通過多次迭代過程所實(shí)現(xiàn)。具體地,502包括:根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù),通過多次迭代過程計(jì)算當(dāng)前層的處理結(jié)果。然而,由于一次迭代過程時(shí)所需要的數(shù)據(jù),往往由上一次迭代過程的迭代結(jié)果決定,從而導(dǎo)致在當(dāng)前層計(jì)算時(shí),往往需要循環(huán)讀取數(shù)據(jù),而每次讀取時(shí)都需要經(jīng)歷發(fā)送讀取請(qǐng)求,響應(yīng)讀取請(qǐng)求等過程,從而導(dǎo)致大大延長(zhǎng)了讀取操作所占用的時(shí)間,進(jìn)而造成數(shù)據(jù)處理過程耗時(shí)較長(zhǎng)。
例如在klt算法進(jìn)行視覺跟蹤時(shí),在第lm層的第1次迭代過程中,讀取原始金字塔{il}在第lm層的第一跟蹤窗口內(nèi)的數(shù)據(jù)、原始金字塔{jl}在第lm層的第1次迭代過程的第三跟蹤窗口內(nèi)的數(shù)據(jù),根據(jù)讀取的數(shù)據(jù)計(jì)算出第1次迭代過程的迭代結(jié)果
為了解決這一問題,在本申請(qǐng)實(shí)施例中,可以將各次循環(huán)所使用的數(shù)據(jù),一次性讀取到所述第二處理單元,也就是通過一次讀取操作(發(fā)一次讀取請(qǐng)求),將各次循環(huán)所使用的數(shù)據(jù)全部讀取到所述第二處理單元,從而不需要多次循環(huán)讀取。具體地,501可以包括:從第一存儲(chǔ)單元一次性讀取一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)到第二處理單元;所述一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)包括:所述一個(gè)或多個(gè)圖像金字塔的當(dāng)前層中,各次迭代過程中所使用的數(shù)據(jù)。
仍然以klt算法舉例說明,在第lm層的讀取過程中,除了讀取原始金字塔{il}在第lm層的第一跟蹤窗口內(nèi)的數(shù)據(jù)之外,一次性讀取原始金字塔{jl}在第lm層的第二跟蹤窗口內(nèi)的數(shù)據(jù),第二跟蹤窗口內(nèi)的數(shù)據(jù)包括:原始金字塔{jl}在第lm層中,k次迭代過程中所使用的數(shù)據(jù)。例如,第一跟蹤窗口的大小為15像素×15像素,第二跟蹤窗口的大小可以為33像素×33像素。可見,在金字塔一層的計(jì)算過程中,需要讀取1次原始金字塔{il}的數(shù)據(jù),讀取1次原始金字塔{jl}的數(shù)據(jù),因此能夠減少讀取數(shù)據(jù)占用的時(shí)間,從而減少了耗時(shí)并提高了實(shí)時(shí)性。
其中,可以在完成讀取過程之前,只要已經(jīng)讀取了第一次迭代過程中所需的數(shù)據(jù),就可以開始本層的計(jì)算過程。具體地,通過多次迭代過程計(jì)算當(dāng)前層的處理結(jié)果,包括:完成讀取當(dāng)前層的待處理數(shù)據(jù)之前,開始通過多次迭代過程計(jì)算當(dāng)前層的處理結(jié)果。例如klt算法中,第lm層的讀取和計(jì)算過程中,讀取原始金字塔{il}在第lm層的第一跟蹤窗口內(nèi)之后,在原始金字塔{jl}在第lm層的第二跟蹤窗口內(nèi)的數(shù)據(jù)全部讀取完之前,只要已經(jīng)讀取了原始金字塔{jl}在第lm層的第1次迭代過程的第三跟蹤窗口內(nèi)的數(shù)據(jù),就可以開始第1次迭代過程,并繼續(xù)讀取第二跟蹤窗口內(nèi)剩余的數(shù)據(jù)。
在本申請(qǐng)實(shí)施例中,所述一個(gè)或多個(gè)圖像金字塔可以包括第一圖像金字塔和第二圖像金字塔。其中,在讀取所述第一圖像金字塔的下一層的待處理數(shù)據(jù)時(shí),不需要使用當(dāng)前層的處理結(jié)果,因此在計(jì)算所述當(dāng)前層的處理結(jié)果時(shí),就可以從第一存儲(chǔ)單元開始讀取所述第一圖像金字塔的下一層的待處理數(shù)據(jù),在計(jì)算所述當(dāng)前層的處理結(jié)果之后,根據(jù)所述處理結(jié)果,從第一存儲(chǔ)單元開始讀取所述第二圖像金字塔的下一層的待處理數(shù)據(jù)。
可選的,下一層的待處理數(shù)據(jù)包括所述第一圖像金字塔在下一層的第一跟蹤窗口內(nèi)的數(shù)據(jù),和所述第二圖像金字塔在下一層的第二跟蹤窗口內(nèi)的數(shù)據(jù),下一層的第二跟蹤窗口的位置根據(jù)當(dāng)前層的處理結(jié)果確定。
可選的,所述第一圖像金字塔包括第一圖像的第一原始金字塔,例如,圖像i的原始金字塔{il};所述第二圖像金字塔包括第二圖像的第二原始金字塔,例如圖像j的原始金字塔{jl}。任一層的待處理數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),該層的第一跟蹤窗口的位置根據(jù)跟蹤點(diǎn)在所述第一原始金字塔的該層數(shù)據(jù)中的位置確定,該層的第二跟蹤窗口的位置根據(jù)該層的上一層的處理結(jié)果確定。根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果,包括:根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù),以及所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù),計(jì)算當(dāng)前層的處理結(jié)果。
可選的,所述第一圖像還具有梯度金字塔;所述方法還包括:從第一存儲(chǔ)單元讀取所述梯度金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù)到第二存儲(chǔ)單元;所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù)包括:存儲(chǔ)在第二存儲(chǔ)單元的、所述梯度金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù)
可選的,所述方法還包括:根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的、所述第一原始金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù)。
可選的,任一層的第二跟蹤窗口內(nèi)的數(shù)據(jù)包括:所述第二原始金字塔在該層中,各次迭代過程中所使用的數(shù)據(jù)。
可選的,任一層的處理結(jié)果包括:所述跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移。進(jìn)一步地,可以根據(jù)所述跟蹤點(diǎn)在最低層的偏移修正和預(yù)測(cè)偏移獲得所述跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。例如,根據(jù)最低層的偏移修正d0和預(yù)測(cè)偏移g0計(jì)算出所述跟蹤點(diǎn)從圖像i到圖像j的位置偏移。結(jié)合跟蹤點(diǎn)在圖像i的位置還可以進(jìn)一步計(jì)算出跟蹤點(diǎn)在圖像j的位置。
利用圖像金字塔進(jìn)行數(shù)據(jù)處理的過程中,若一次性讀取其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)時(shí),通常是等待數(shù)據(jù)全部讀取完之后才開始處理,往往由于等待時(shí)間而導(dǎo)致耗時(shí)較長(zhǎng)。實(shí)際上,本申請(qǐng)實(shí)施例中并不需要等待數(shù)據(jù)全部讀取完才開始計(jì)算當(dāng)前層的處理結(jié)果,而是可以在讀取完之前就開始計(jì)算,進(jìn)一步優(yōu)化數(shù)據(jù)處理過程,從而減少了耗時(shí)并提高了實(shí)時(shí)性。
仍然以klt算法舉例說明,第lm層的讀取和計(jì)算過程中,除了讀取原始金字塔{il}
下面通過一個(gè)實(shí)施例加以具體說明。
請(qǐng)參閱圖7,本申請(qǐng)實(shí)施例提供了數(shù)據(jù)處理方法的另一種方法實(shí)施例。本實(shí)施例的數(shù)據(jù)處理方法包括:
701:從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔的一層或多層的待處理數(shù)據(jù)到第二存儲(chǔ)單元。
本實(shí)施例所用于的系統(tǒng)包括至少兩個(gè)存儲(chǔ)單元,即第一存儲(chǔ)單元和第二存儲(chǔ)單元。其中,在所述第一存儲(chǔ)單元中存儲(chǔ)有一個(gè)圖像金字塔的一層或多層的待處理數(shù)據(jù),或者多個(gè)圖像金字塔的一層或多層的待處理數(shù)據(jù)。實(shí)際上,在第一存儲(chǔ)單元通常存儲(chǔ)有所述一個(gè)或多個(gè)圖像金字塔的一層或多層的整層數(shù)據(jù)。例如,在klt算法中,所述第一存儲(chǔ)單元存儲(chǔ)有圖像i的圖像金字塔(例如原始金字塔{il})的一層或多層的所有數(shù)據(jù),以及圖像j的圖像金字塔(例如原始金字塔{jl})的一層或多層的所有數(shù)據(jù)。
其中,一層或多層的待處理數(shù)據(jù)指的是一層或多層的所有數(shù)據(jù)中,用于計(jì)算一層或多層的處理結(jié)果的數(shù)據(jù)。例如,在klt算法中,在第lm層時(shí),圖像i的原始金字塔{il}在當(dāng)前層的待處理數(shù)據(jù),包括圖像i的原始金字塔{il}在第lm層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
本申請(qǐng)實(shí)施例中,步驟701中在讀取其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)時(shí),從所述第一存儲(chǔ)單元一次性讀取到所述第二存儲(chǔ)單元,也就是說通過一次讀取操作,將其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù),從所述第一存儲(chǔ)單元讀取到所述第二存儲(chǔ)單元。例如在klt算法中,在第lm層的讀取過程中,一次性讀取原始金字塔{jl}在第lm層的第二跟蹤窗口內(nèi)的數(shù)據(jù),第二跟蹤窗口內(nèi)的數(shù)據(jù)包括:原始金字塔{jl}在第lm層中,k次迭代過程中所使用的數(shù)據(jù)。
在本申請(qǐng)實(shí)施例中,所述第一存儲(chǔ)單元和所述第二存儲(chǔ)單元均指的是具有存儲(chǔ)功能的模塊,例如具體為存儲(chǔ)器、緩存器等。其中,所述第一存儲(chǔ)單元可以為外部存儲(chǔ)單元,所述第二存儲(chǔ)單元可以為內(nèi)部存儲(chǔ)單元。當(dāng)將待處理數(shù)據(jù)從所述第一存儲(chǔ)單元讀取到所述第二存儲(chǔ)單元之后,就可以根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果。
702:在從第一存儲(chǔ)單元完成讀取所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)之前,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果。
在本申請(qǐng)實(shí)施例中,在一次性讀取其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)時(shí),不需要等待數(shù)據(jù)全部讀取完再開始計(jì)算。而是可以在完成讀取一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)之前,只要已經(jīng)讀取了能夠滿足開始計(jì)算的數(shù)據(jù),就可以開始計(jì)算當(dāng)前層的計(jì)算。
通過上述技術(shù)方案可知,利用圖像金字塔進(jìn)行數(shù)據(jù)處理的過程中,若一次性讀取其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)時(shí),通常是等待數(shù)據(jù)全部讀取完之后才開始處理,往往由于等待時(shí)間而導(dǎo)致耗時(shí)較長(zhǎng)。實(shí)際上,本申請(qǐng)實(shí)施例中并不需要等待數(shù)據(jù)全部讀取完才開始計(jì)算當(dāng)前層的處理結(jié)果,而是可以在讀取完之前就開始計(jì)算,進(jìn)一步優(yōu)化數(shù)據(jù)處理過程,從而減少了耗時(shí)并提高了實(shí)時(shí)性。
本申請(qǐng)實(shí)施例可以具體用于圖6所示的數(shù)據(jù)處理裝置中,所述數(shù)據(jù)處理裝置包括讀取模塊601和計(jì)算模塊602。讀取模塊601分別與第一存儲(chǔ)單元603和第二存儲(chǔ)單元604相連,計(jì)算模塊602與第二存儲(chǔ)單元604相連。其中,由讀取模塊601執(zhí)行本申請(qǐng)實(shí)施例的讀取操作,由計(jì)算模塊602執(zhí)行本申請(qǐng)實(shí)施例的計(jì)算操作。并且,所述數(shù)據(jù)處理裝置可以用于具有并行處理功能的電路中,讀取模塊601和計(jì)算模塊602具有并行處理功能。該電路可以包括以下任一種電路:具有多核處理器的電路、并行電路系統(tǒng)以及數(shù)字邏輯電路。
本申請(qǐng)實(shí)施例在根據(jù)當(dāng)前層的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果時(shí),通常是通過多次迭代過程所實(shí)現(xiàn)。具體地,702中的根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果,包括:根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù),開始通過多次迭代過程計(jì)算當(dāng)前層的處理結(jié)果。
在讀取完第一次迭代過程中所需的數(shù)據(jù)時(shí),就可以開始計(jì)算當(dāng)前層的處理結(jié)果。以klt算法舉例,第lm層的讀取和計(jì)算過程中,讀取原始金字塔{il}在第lm層的第一跟蹤窗口內(nèi)之后,在原始金字塔{jl}在第lm層的第二跟蹤窗口內(nèi)的數(shù)據(jù)全部讀取完之前,只要已經(jīng)讀取了原始金字塔{jl}在第lm層的第1次迭代過程中的第三跟蹤窗口內(nèi)的數(shù)據(jù),就可以開始第1次迭代過程,并繼續(xù)讀取第二跟蹤窗口內(nèi)剩余的數(shù)據(jù)。
其中,所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)可以包括:所述其中一個(gè)圖像金字塔的當(dāng)前層中,各次迭代過程中所使用的數(shù)據(jù)。例如在klt算法中,第二圖像金字塔的第lm層的待處理數(shù)據(jù)可以包括第二圖像金字塔的在第lm層中,k次迭代過程中所使用的數(shù)據(jù)。
本申請(qǐng)實(shí)施例中,701中在讀取數(shù)據(jù)時(shí),可以是按照從金字塔的最高層到最低層的順序依次讀取。例如,先讀取一個(gè)或多個(gè)圖像金字塔的最高層,即第lm層的待處理數(shù)據(jù),再讀取所述一個(gè)或多個(gè)圖像金字塔的第lm-1層的待處理數(shù)據(jù),直至讀取所述一個(gè)或多個(gè)圖像金字塔的第0層的待處理數(shù)據(jù)。
若按照從金字塔的最高層到最低層的順序依次讀取,本申請(qǐng)實(shí)施例中可以并行執(zhí)行讀取功能和計(jì)算功能,即不需要等待當(dāng)前層的處理結(jié)果計(jì)算完畢,而是在計(jì)算當(dāng)前層的處理結(jié)果時(shí),就可以從第一存儲(chǔ)單元開始讀取所述一個(gè)或多個(gè)圖像金字塔的下一層的待處理數(shù)據(jù),以實(shí)現(xiàn)下一層的計(jì)算。例如,在klt算法中,當(dāng)前層為第lm層時(shí),在計(jì)算第lm層的偏移修正
其中,所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)可以包括:所述其中一個(gè)圖像金字塔的當(dāng)前層的跟蹤窗口內(nèi)的數(shù)據(jù),所述當(dāng)前層的跟蹤窗口的位置根據(jù)上一層的處理結(jié)果確定。
下面以本實(shí)施例用于klt算法為例進(jìn)行說明。
在本申請(qǐng)實(shí)施例中,所述一個(gè)或多個(gè)圖像金字塔可以包括:第一圖像的第一原始金字塔以及第二圖像的第二原始金字塔,例如圖像i的原始金字塔{il}和圖像j的原始金字塔{jl}。任一層的待處理數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),該層的第一跟蹤窗口的位置根據(jù)跟蹤點(diǎn)在所述第一原始金字塔的該層數(shù)據(jù)中的位置確定,該層的第二跟蹤窗口的位置根據(jù)該層的上一層的處理結(jié)果確定。根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果,包括:根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述第一原始圖像金字塔和所述第二原始金字塔的當(dāng)前層的待處理數(shù)據(jù),以及所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù),開始計(jì)算當(dāng)前層的處理結(jié)果。
可選的,所述第一圖像還具有梯度金字塔;所述方法還包括:從第一存儲(chǔ)單元讀取所述梯度金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù)到第二存儲(chǔ)單元;所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù)包括:存儲(chǔ)在第二存儲(chǔ)單元的、所述梯度金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
可選的,所述方法還包括:根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的、所述第一原始金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù)。
可選的,任一層的第二跟蹤窗口內(nèi)的數(shù)據(jù)包括:所述第二原始金字塔在該層中,各次迭代過程中所使用的數(shù)據(jù),所述其中一個(gè)圖像金字塔包括:所述第二原始金字塔。702包括:在從第一存儲(chǔ)單元完成讀取所述第二原始金字塔的當(dāng)前層的待處理數(shù)據(jù)之前,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的第一原始金字塔、第二原始金字塔在當(dāng)前層的待處理數(shù)據(jù),開始通過多次循環(huán)過程計(jì)算當(dāng)前層的處理結(jié)果。其中,在計(jì)算當(dāng)前層的處理結(jié)果時(shí),還可以包括所述梯度金字塔在當(dāng)前層的待處理數(shù)據(jù)。
其中,第一原始金字塔在當(dāng)前層的待處理數(shù)據(jù)包括:第一原始金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù),梯度金字塔在當(dāng)前層的待處理數(shù)據(jù)包括:梯度金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù),第二原始金字塔在當(dāng)前層的待處理數(shù)據(jù)包括:第二原始金字塔在當(dāng)前層的第二跟蹤窗口內(nèi)的數(shù)據(jù)。在讀取完第二跟蹤窗口內(nèi)的數(shù)據(jù)之前,就可以開始第1次迭代過程。
可選的,任一層的處理結(jié)果包括:所述跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移。進(jìn)一步地,可以根據(jù)所述跟蹤點(diǎn)在最低層的偏移修正和預(yù)測(cè)偏移獲得所述跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。例如,根據(jù)最低層的偏移修正d0和預(yù)測(cè)偏移g0計(jì)算出所述跟蹤點(diǎn)從圖像i到圖像j的位置偏移。結(jié)合跟蹤點(diǎn)在圖像i的位置還可以進(jìn)一步計(jì)算出跟蹤點(diǎn)在圖像j的位置。
在利用圖像金字塔進(jìn)行數(shù)據(jù)處理時(shí),讀取模塊通常只讀取圖像金字塔每層的待處理數(shù)據(jù)。以klt算法為例,若要計(jì)算第一跟蹤點(diǎn)在圖像i和圖像j之間的位置偏移,則在第lm層的讀取過程中,通常只讀取圖像i和圖像j在跟蹤窗口內(nèi)的數(shù)據(jù),該跟蹤窗口的位置和大小根據(jù)所述第一跟蹤點(diǎn)的位置確定。然而,如果計(jì)算其他跟蹤點(diǎn),例如第二跟蹤點(diǎn)的位置偏移時(shí),則在第lm層的讀取過程中,需要再讀取圖像i和圖像j在跟蹤窗口內(nèi)的數(shù)據(jù),該跟蹤窗口的位置和大小根據(jù)所述第二跟蹤點(diǎn)的位置確定。可見在這種需要循環(huán)處理的過程中,需要通過多次讀取操作讀取待處理數(shù)據(jù),從而導(dǎo)致耗時(shí)較長(zhǎng)以及實(shí)時(shí)性較差。
因此在本申請(qǐng)實(shí)施例中,還可以一次性讀取圖像金字塔頂端的一層或多層數(shù)據(jù),既可以解決上述技術(shù)問題,而且圖像金字塔頂端的數(shù)據(jù)量通常較小,也不會(huì)占用過多的存儲(chǔ)空間。下面通過一個(gè)實(shí)施例加以具體說明。
請(qǐng)參閱圖8,本申請(qǐng)實(shí)施例提供了數(shù)據(jù)處理方法的另一種方法實(shí)施例。本實(shí)施例的數(shù)據(jù)處理方法包括:
801:從第一存儲(chǔ)單元一次性讀取一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的整層數(shù)據(jù)到第二存儲(chǔ)單元。
本實(shí)施例所用于的系統(tǒng)包括至少兩個(gè)存儲(chǔ)單元,即第一存儲(chǔ)單元和第二存儲(chǔ)單元。其中,在第一存儲(chǔ)單元通常存儲(chǔ)有所述一個(gè)或多個(gè)圖像金字塔的所有數(shù)據(jù)。例如,在klt算法中,第一存儲(chǔ)單元存儲(chǔ)有圖像i的圖像金字塔(例如原始金字塔{il})的所有數(shù)據(jù),以及圖像j的圖像金字塔(例如原始金字塔{jl})的所有數(shù)據(jù)。
本申請(qǐng)實(shí)施例中,步驟801中在讀取一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的整層數(shù)據(jù)時(shí),從所述第一存儲(chǔ)單元一次性讀取到所述第二存儲(chǔ)單元,也就是通過一次讀取操作,將一個(gè)圖像金字塔頂端的一層或多層的整層數(shù)據(jù),或者多個(gè)圖像金字塔頂端的一層或多層的整層數(shù)據(jù),從所述第一存儲(chǔ)單元讀取到所述第二存儲(chǔ)單元。例如在klt算法中,一次性讀取原始金字塔{jl}在第lm層的整層數(shù)據(jù)。
在本申請(qǐng)實(shí)施例中,所述第一存儲(chǔ)單元和所述第二存儲(chǔ)單元均指的是具有存儲(chǔ)功能的模塊,例如具體為存儲(chǔ)器、緩存器等。其中,所述第一存儲(chǔ)單元可以為外部存儲(chǔ)單元,所述第二存儲(chǔ)單元可以為內(nèi)部存儲(chǔ)單元。當(dāng)將待處理數(shù)據(jù)從所述第一存儲(chǔ)單元讀取到所述第二存儲(chǔ)單元之后,就可以根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的數(shù)據(jù)計(jì)算每層的處理結(jié)果。
802:根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),計(jì)算每層的處理結(jié)果。
在801中讀取了一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的整層數(shù)據(jù)之后,就可以根據(jù)每層的待處理數(shù)據(jù),計(jì)算每層的處理結(jié)果。其中,每層的待處理數(shù)據(jù)指的是該層的整層數(shù)據(jù)中,用于計(jì)算該層的處理結(jié)果的數(shù)據(jù)。例如,在klt算法中,在第lm層時(shí),圖像i的原始金字塔{il}在該層的待處理數(shù)據(jù)包括:圖像i的原始金字塔{il}在第lm層的第一跟蹤窗口內(nèi)的數(shù)據(jù),以及原始金字塔{jl}在第lm層的第二跟蹤窗口內(nèi)的數(shù)據(jù)。
803:依次從第一存儲(chǔ)單元讀取并處理所述一個(gè)或多個(gè)圖像金字塔的剩余每層的待處理數(shù)據(jù)。
當(dāng)計(jì)算完頂端的一層或多層的處理結(jié)果之后,或者在計(jì)算的同時(shí),繼續(xù)從第一存儲(chǔ)單元讀取剩余每層的待處理數(shù)據(jù)到第二存儲(chǔ)單元,并對(duì)存儲(chǔ)在第二存儲(chǔ)單元中剩余每層的待處理數(shù)據(jù)進(jìn)行處理,計(jì)算剩余每層的處理結(jié)果。
通過上述技術(shù)方案可知,由于圖像金字塔頂端的數(shù)據(jù)量通常較小,因此本申請(qǐng)實(shí)施例中將頂端的一層或多層的整層數(shù)據(jù)一次性讀取到第二存儲(chǔ)單元,對(duì)于剩余每層的數(shù)據(jù),即非頂端的數(shù)據(jù),則只將每層的待處理數(shù)據(jù)讀取到第二存儲(chǔ)單元,從而在保證不占用過多的存儲(chǔ)空間的前提下,能夠根據(jù)頂端的整層數(shù)據(jù)進(jìn)行多次循環(huán)處理,例如計(jì)算多個(gè)跟蹤點(diǎn)的位置偏移,不需要每次循環(huán)過程中分別進(jìn)行讀取操作,從而減少了耗時(shí)并提高了實(shí)時(shí)性。
本申請(qǐng)實(shí)施例可以具體用于圖6所示的數(shù)據(jù)處理裝置中,所述數(shù)據(jù)處理裝置包括讀取模塊601和計(jì)算模塊602。讀取模塊601分別與第一存儲(chǔ)單元603和第二存儲(chǔ)單元604相連,計(jì)算模塊602與第二存儲(chǔ)單元604相連。其中,由讀取模塊601執(zhí)行本申請(qǐng)實(shí)施例的讀取操作,由計(jì)算模塊602執(zhí)行本申請(qǐng)實(shí)施例的計(jì)算操作。并且,所述數(shù)據(jù)處理裝置可以用于具有并行處理功能的電路中,讀取模塊601和計(jì)算模塊602具有并行處理功能。該電路可以包括以下任一種電路:具有多核處理器的電路、并行電路系統(tǒng)以及數(shù)字邏輯電路。
本申請(qǐng)實(shí)施例的802中在計(jì)算每層的處理結(jié)果時(shí),可以是從金字塔的最高層開始,按照逐層遞減的順序,依次根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù)計(jì)算每層的處理結(jié)果。例如,先根據(jù)一個(gè)或多個(gè)圖像金字塔的最高層,即第lm層的待處理數(shù)據(jù),計(jì)算第lm層的處理結(jié)果,再根據(jù)一個(gè)或多個(gè)圖像金字塔的第lm-1層的待處理數(shù)據(jù),計(jì)算第lm-1層的處理結(jié)果,依次類推。
其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)可以包括:所述其中一個(gè)圖像金字塔的當(dāng)前層的跟蹤窗口內(nèi)的數(shù)據(jù),當(dāng)前層的跟蹤窗口的位置根據(jù)上一層的處理結(jié)果確定。
本申請(qǐng)實(shí)施例在根據(jù)每層的待處理數(shù)據(jù)計(jì)算每層的處理結(jié)果時(shí),通常是通過多次迭代過程所實(shí)現(xiàn)。例如,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),計(jì)算每層的處理結(jié)果,包括:根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),通過多次迭代過程計(jì)算每層的處理結(jié)果。
其中,在從第一存儲(chǔ)單元完成讀取其中一個(gè)圖像金字塔的當(dāng)前層的整層數(shù)據(jù)之前,就可以根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果。以klt算法舉例,第lm層的讀取和計(jì)算過程中,在原始金字塔{jl}在第lm層的整層數(shù)據(jù)全部讀取完之前,例如在讀取了原始金字塔{jl}在第lm層的第二跟蹤窗口內(nèi)的數(shù)據(jù)之后,就可以開始計(jì)算當(dāng)前層的處理結(jié)果,并繼續(xù)讀取第lm層的剩余數(shù)據(jù)。其中,所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)可以包括:所述其中一個(gè)圖像金字塔的當(dāng)前層中,各次迭代過程中所使用的數(shù)據(jù)。
下面以本實(shí)施例用于klt算法為例進(jìn)行說明。
在本申請(qǐng)實(shí)施例中,所述一個(gè)或多個(gè)圖像金字塔可以包括:第一圖像的第一原始金字塔,例如圖像i的原始金字塔{il},以及第二圖像的第二原始金字塔,例如圖像j的原始金字塔{jl}。任一層的待處理數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),該層的第一跟蹤窗口的位置根據(jù)跟蹤點(diǎn)在所述第一原始金字塔的該層數(shù)據(jù)中的位置確定,該層的第二跟蹤窗口的位置根據(jù)該層的上一層的處理結(jié)果確定。根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),計(jì)算每層的處理結(jié)果,包括:根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),以及所述第一圖像的每層的梯度數(shù)據(jù),計(jì)算每層的處理結(jié)果。
可選的,所述第一圖像還具有梯度金字塔;所述方法還包括:從第一存儲(chǔ)單元讀取所述梯度金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù)到第二存儲(chǔ)單元;所述第一圖像的每層的梯度數(shù)據(jù)包括:存儲(chǔ)在第二存儲(chǔ)單元的、所述梯度金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
可選的,所述方法還包括:根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的、所述第一原始金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算所述第一圖像的每級(jí)的梯度數(shù)據(jù)。
可選的,任一層的處理結(jié)果包括:所述跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移。進(jìn)一步地,可以根據(jù)所述跟蹤點(diǎn)在最低層的偏移修正和預(yù)測(cè)偏移獲得所述跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。例如,根據(jù)最低層的偏移修正d0和預(yù)測(cè)偏移g0計(jì)算出所述跟蹤點(diǎn)從圖像i到圖像j的位置偏移。結(jié)合跟蹤點(diǎn)在圖像i的位置還可以進(jìn)一步計(jì)算出跟蹤點(diǎn)在圖像j的位置。
對(duì)應(yīng)上述方法實(shí)施例,本申請(qǐng)還提供了相應(yīng)的裝置實(shí)施例,下面具體說明。
對(duì)應(yīng)圖3所示的方法實(shí)施例,本申請(qǐng)實(shí)施例還提供了視覺跟蹤裝置的一種裝置實(shí)施例。本實(shí)施例的視覺跟蹤裝置用于獲得第一跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移;所述第一圖像具有第一原始金字塔,所述第二圖像具有第二原始金字塔。例如,所述第一圖像和所述第二圖像可以分別為圖2所示的圖像i和圖像j,所述第一原始金字塔為圖像i的原始金字塔{il},第二原始金字塔為圖像j的原始金字塔{jl},其中l(wèi)=0,1,…,lm,lm≥1。
本實(shí)施例的所述視覺跟蹤裝置包括讀取模塊和計(jì)算模塊,例如所述視覺跟蹤裝置可以包括圖4所示的讀取模塊401和計(jì)算模塊402。
所述讀取模塊用于,從金字塔的最高層到最低層,從第一存儲(chǔ)單元依次讀取每層的窗口數(shù)據(jù)到第二存儲(chǔ)單元。
本申請(qǐng)實(shí)施例中,在所述第一存儲(chǔ)單元中存儲(chǔ)有第一原始金字塔和第二原始金字塔的所有數(shù)據(jù)。所述第一存儲(chǔ)單元和所述第二存儲(chǔ)單元均指的是具有存儲(chǔ)功能的模塊,例如具體為存儲(chǔ)器、緩存器等。所述第一存儲(chǔ)單元可以為外部存儲(chǔ)單元,所述第二存儲(chǔ)單元可以為內(nèi)部存儲(chǔ)單元。當(dāng)將所述窗口數(shù)據(jù)從所述第一存儲(chǔ)單元讀取到所述第二存儲(chǔ)單元之后,即可以根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的所述窗口數(shù)據(jù)進(jìn)行每一層的計(jì)算。
其中,任一層的窗口數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù)、以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),所述在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù)包括所述第二原始金字塔的該層中,用于迭代計(jì)算所述第一跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移的全部數(shù)據(jù)。
例如,第lm層的窗口數(shù)據(jù)包括:ilm在第一跟蹤窗口內(nèi)的數(shù)據(jù)和jlm在第二跟蹤窗口內(nèi)的數(shù)據(jù)。其中,ilm為原始金字塔{il}的第lm層,jlm為第二原始金字塔的第lm層。
所述計(jì)算模塊用于,從金字塔的最高層到最低層,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的窗口數(shù)據(jù),以及所述第一圖像的每級(jí)的梯度信息,通過多次迭代過程計(jì)算所述第一跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移。
例如在第lm層,所述計(jì)算模塊根據(jù)ilm在第一跟蹤窗口內(nèi)的數(shù)據(jù)和jlm在第二跟蹤窗口內(nèi)的數(shù)據(jù),通過多次迭代過程計(jì)算第一跟蹤點(diǎn)在第lm層的偏移修正
所述計(jì)算模塊還用于,根據(jù)所述第一跟蹤點(diǎn)在最低層的預(yù)測(cè)偏移和偏移修正,獲得所述第一跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。
例如,將最低層,即第0層的偏移修正d0和預(yù)測(cè)偏移g0相加,即可得到第一跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移d,即d=d0+g0。結(jié)合第一跟蹤點(diǎn)在圖像i的位置u還可以進(jìn)一步計(jì)算出第一跟蹤點(diǎn)在圖像j的位置v,例如第一跟蹤點(diǎn)在圖像j的位置為v=u+d。
目前在讀取任一層的第二原始金字塔的數(shù)據(jù)時(shí),至少需要通過k次讀取操作進(jìn)行k次讀取。而本申請(qǐng)實(shí)施例中,不再需要讀取k次第二原始金字塔中的數(shù)據(jù),而是將該層各次迭代過程中所需要的第二原始金字塔中的數(shù)據(jù),即所述第二跟蹤窗口內(nèi)的數(shù)據(jù),通過一次讀取操作進(jìn)行讀取。從而不需要發(fā)多次讀取請(qǐng)求,減少了發(fā)送讀取請(qǐng)求和相應(yīng)讀取請(qǐng)求的時(shí)間。從而對(duì)klt跟蹤算法的讀取過程進(jìn)行優(yōu)化,降低klt跟蹤過程的耗時(shí),提高實(shí)時(shí)性。
可選的,所述第一圖像還具有梯度金字塔;所述讀取模塊還用于,從金字塔的最高層到最低層,從所述第一存儲(chǔ)單元依次讀取所述梯度金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù)到第二存儲(chǔ)單元;所述第一圖像的每級(jí)的梯度數(shù)據(jù)包括:存儲(chǔ)在第二存儲(chǔ)單元的、所述梯度金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
可選的,所述計(jì)算模塊還用于,根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的、所述第一原始金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算所述第一圖像的每級(jí)的梯度數(shù)據(jù)。
在本申請(qǐng)實(shí)施例中,讀取模塊分別與第一存儲(chǔ)單元和第二存儲(chǔ)單元相連,計(jì)算模塊與第二存儲(chǔ)單元相連。并且,所述視覺跟蹤裝置可以用于具有并行處理功能的電路中,讀取模塊和計(jì)算模塊具有并行處理功能。該電路可以包括以下任一種電路:具有多核處理器的電路、并行電路系統(tǒng)以及數(shù)字邏輯電路。
其中,任一層的第一跟蹤窗口的位置,由所述第一跟蹤點(diǎn)在所述第一原始金字塔的該層數(shù)據(jù)中的位置決定。例如,第一跟蹤窗口的中心在第l層的位置ul為ul=u/2l,其中,u為第一跟蹤點(diǎn)在第一圖像中的位置。
可見,由于第一跟蹤窗口的位置與上一層的計(jì)算結(jié)果不相關(guān),因此本申請(qǐng)實(shí)施例中可以并行執(zhí)行讀取功能和計(jì)算功能,在所述計(jì)算模塊根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的任一層的窗口數(shù)據(jù)計(jì)算該層的偏移修正和該層的下一層的預(yù)測(cè)偏移時(shí),所述讀取模塊開始讀取所述第一原始金字塔在該層的下一層的第一跟蹤窗口內(nèi)的數(shù)據(jù),從而進(jìn)一步減少了耗時(shí)。舉例說明,在所述計(jì)算模塊根據(jù)第lm層的窗口數(shù)據(jù)計(jì)算第lm層的計(jì)算結(jié)果時(shí),所述讀取模塊就可以開始讀取第lm-1層的窗口數(shù)據(jù)。實(shí)際上,本申請(qǐng)實(shí)施例中,可以在完成讀取當(dāng)前層的窗口數(shù)據(jù)之后,就可以立刻開始讀取第一原始圖像金字塔在下一層的第一跟蹤窗口內(nèi)的數(shù)據(jù),并同時(shí)計(jì)算當(dāng)前層的計(jì)算結(jié)果,使得讀取操作持續(xù)進(jìn)行,從而節(jié)約耗時(shí)。其中,若任一層的窗口數(shù)據(jù)還包括所述梯度金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),所述計(jì)算模塊計(jì)算所述梯度金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù)時(shí),所述讀取模塊還可以開始讀取梯度金字塔在該層的下一層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
若所述讀取模塊讀取完所述第一原始金字塔在該層的下一層的第一跟蹤窗口內(nèi)的數(shù)據(jù),如果所述計(jì)算模塊已經(jīng)計(jì)算出該層的計(jì)算結(jié)果,即該層的偏移修正和下一層的預(yù)測(cè)偏移,則所述讀取模塊繼續(xù)讀取第二原始金字塔在下一層的第二跟蹤窗口內(nèi)的數(shù)據(jù),如果所述計(jì)算模塊沒有計(jì)算出該層的計(jì)算結(jié)果,則所述讀取模塊等待計(jì)算出該層的計(jì)算結(jié)果之后,根據(jù)該層的計(jì)算結(jié)果,讀取第二原始金字塔在下一層的第二跟蹤窗口內(nèi)的數(shù)據(jù)。
其中,任一次迭代過程可以包括:根據(jù)上一次迭代的結(jié)果或者初始迭代參數(shù)、所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù)、以及所述第二原始金字塔在該層的該次迭代的第三跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算該次迭代的結(jié)果,所述該次迭代的第三跟蹤窗口的位置根據(jù)上一次迭代的結(jié)果或者初始迭代參數(shù)確定。若任一層的窗口數(shù)據(jù)還包括所述梯度金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),則在計(jì)算該次迭代的結(jié)果時(shí)還會(huì)根據(jù)所述梯度金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。其中,所述在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù)可以包括:所述第二原始金字塔在該層中,各次迭代過程的第三跟蹤窗口內(nèi)的數(shù)據(jù)。
舉例說明,在第lm層的第1次迭代過程,根據(jù)初始參數(shù)
可選的,任一層的第二跟蹤窗口的位置,根據(jù)所述第一跟蹤點(diǎn)在所述第一原始金字塔的該層數(shù)據(jù)中的位置、該層的預(yù)測(cè)偏移以及該層的空間傾斜度矩陣確定。
在本申請(qǐng)實(shí)施例中,所述讀取模塊讀取任一層的窗口數(shù)據(jù)時(shí)的讀取順序,可以是先讀取所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),再讀取所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù)。因此,所述計(jì)算模塊不需要等待所述讀取模塊完成讀取所述第二原始金字塔在任一層的第二跟蹤窗口內(nèi)的數(shù)據(jù)之前,甚至可以在所述讀取模塊開始讀取所述第二跟蹤窗口內(nèi)的數(shù)據(jù)之前,就可以開始計(jì)算所述第一跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移。若任一層的窗口數(shù)據(jù)還包括所述梯度金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),所述讀取模塊在讀取所述第二原始金字塔的數(shù)據(jù)之前,還可以讀取所述梯度金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
舉例說明,在第lm層,在所述讀取模塊讀取完ilm在第一跟蹤窗口內(nèi)的數(shù)據(jù)和
在本申請(qǐng)實(shí)施例中,當(dāng)所述計(jì)算模塊需要計(jì)算多個(gè)跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移,則需要重復(fù)上述視覺跟蹤過程,此時(shí)需要所述讀取模塊再次讀取每層的窗口數(shù)據(jù),此時(shí)每層的窗口數(shù)據(jù)根據(jù)新的跟蹤點(diǎn)確定。舉例說明,若要計(jì)算第一跟蹤點(diǎn)在圖像i和圖像j之間的位置偏移,則在第lm層的讀取過程中,所述讀取模塊通常只讀取圖像i和圖像j在跟蹤窗口內(nèi)的數(shù)據(jù),該跟蹤窗口的位置和大小根據(jù)所述第一跟蹤點(diǎn)的位置確定。然而,如果計(jì)算其他跟蹤點(diǎn),例如第二跟蹤點(diǎn)的位置偏移時(shí),則在第lm層的讀取過程中,所述讀取模塊需要再讀取圖像i和圖像j在跟蹤窗口內(nèi)的數(shù)據(jù),該跟蹤窗口的位置和大小根據(jù)所述第二跟蹤點(diǎn)的位置確定??梢娫谶@種需要循環(huán)處理的過程中,需要通過多次讀取操作讀取待處理數(shù)據(jù),從而導(dǎo)致耗時(shí)較長(zhǎng)以及實(shí)時(shí)性較差。
因此,本申請(qǐng)實(shí)施例中還可以一次性讀取圖像金字塔頂端的一層或多層數(shù)據(jù),既可以解決上述技術(shù)問題,而且圖像金字塔頂端的數(shù)據(jù)量通常較小,也不會(huì)占用過多的存儲(chǔ)空間。具體地,所述讀取模塊還用于,讀取一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的跟蹤窗口內(nèi)的數(shù)據(jù)時(shí),還讀取所述一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的其余數(shù)據(jù);所述計(jì)算模塊還用于,根據(jù)所述其余數(shù)據(jù)獲得第二跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移;所述一個(gè)或多個(gè)圖像金字塔包括:所述第一原始金字塔和所述第二原始金字塔中的一個(gè)或多個(gè)。可選的,所述一個(gè)或多個(gè)圖像金字塔還可以包括所述梯度金字塔。
舉例說明,所述讀取模塊將ilm在第lm層的所有數(shù)據(jù)讀取到第二存儲(chǔ)單元,此時(shí)既讀取了第lm層的窗口數(shù)據(jù),也讀取了第lm層的其余數(shù)據(jù)。這樣之后在計(jì)算第二跟蹤點(diǎn)的位置偏移時(shí),不需要重新讀取ilm在第lm層的數(shù)據(jù),而是利用其余數(shù)據(jù)計(jì)算第二跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移,減少讀取操作的次數(shù),從而減少耗時(shí)。其中計(jì)算第二跟蹤點(diǎn)的位置偏移的具體計(jì)算過程,請(qǐng)參閱計(jì)算第一跟蹤點(diǎn)的位置偏移的計(jì)算過程,這里不再贅述。
對(duì)應(yīng)圖5所示的方法實(shí)施例,本申請(qǐng)實(shí)施例還提供了數(shù)據(jù)處理裝置的一種裝置實(shí)施例。
本實(shí)施例的所述數(shù)據(jù)處理裝置包括:讀取模塊和計(jì)算模塊。例如圖6所示,所述數(shù)據(jù)處理裝置可以包括讀取模塊601和計(jì)算模塊602。
所述讀取模塊用于,從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)到第二存儲(chǔ)單元。
本申請(qǐng)實(shí)施例中,在所述第一存儲(chǔ)單元中存儲(chǔ)有一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)。實(shí)際上,在第一存儲(chǔ)單元通常存儲(chǔ)有所述一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的整層數(shù)據(jù)。例如,在klt算法中,當(dāng)前層為第lm層時(shí),第一存儲(chǔ)單元存儲(chǔ)有圖像i的圖像金字塔(例如原始金字塔{il})在第lm層的所有數(shù)據(jù),以及圖像j的圖像金字塔(例如原始金字塔{jl})在第lm層的所有數(shù)據(jù)。
其中,當(dāng)前層的待處理數(shù)據(jù)指的是當(dāng)前層的所有數(shù)據(jù)中,用于計(jì)算當(dāng)前層的處理結(jié)果的數(shù)據(jù)。例如,在klt算法中,當(dāng)前層為第lm層時(shí),圖像i的原始金字塔{il}在當(dāng)前層的待處理數(shù)據(jù),包括圖像i的原始金字塔{il}在第lm層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
所述計(jì)算模塊用于,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果。
在本申請(qǐng)實(shí)施例中,所述第一存儲(chǔ)單元和所述第二存儲(chǔ)單元均指的是具有存儲(chǔ)功能的模塊,例如具體為存儲(chǔ)器、緩存器等。
其中,所述第一存儲(chǔ)單元可以為外部存儲(chǔ)單元,所述第二存儲(chǔ)單元可以為內(nèi)部存儲(chǔ)單元。當(dāng)所述讀取模塊將所述待處理數(shù)據(jù)從所述第一存儲(chǔ)單元讀取到所述第二存儲(chǔ)單元之后,所述計(jì)算模塊就可以根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的所述待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果。例如,在klt算法中,當(dāng)前層為第lm層時(shí),所述計(jì)算模塊根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的當(dāng)前層的待處理數(shù)據(jù),計(jì)算出跟蹤點(diǎn)在第lm層的偏移修正
所述計(jì)算模塊在計(jì)算所述當(dāng)前層的處理結(jié)果時(shí),所述讀取模塊從第一存儲(chǔ)單元開始讀取所述圖像金字塔的下一層的待處理數(shù)據(jù)。
在本申請(qǐng)實(shí)施例中,并行執(zhí)行讀取功能和計(jì)算功能。所述讀取模塊不需要等待當(dāng)前層的處理結(jié)果計(jì)算完畢,而是在所述計(jì)算模塊計(jì)算當(dāng)前層的處理結(jié)果時(shí),就開始讀取下一層的待處理數(shù)據(jù),以實(shí)現(xiàn)下一層的計(jì)算。例如,在klt算法中,當(dāng)前層為第lm層時(shí),在所述計(jì)算模塊計(jì)算第lm層的偏移修正
通過上述技術(shù)方案可知,本申請(qǐng)實(shí)施例實(shí)現(xiàn)了對(duì)數(shù)據(jù)處理過程的優(yōu)化,減少讀取操作的等待時(shí)間,從而減少了耗時(shí)并提高了實(shí)時(shí)性。
在本申請(qǐng)實(shí)施例中,讀取模塊分別與第一存儲(chǔ)單元和第二存儲(chǔ)單元相連,計(jì)算模塊與第二存儲(chǔ)單元相連。并且,所述數(shù)據(jù)處理裝置可以用于具有并行處理功能的電路中,讀取模塊和計(jì)算模塊具有并行處理功能。該電路可以包括以下任一種電路:具有多核處理器的電路、并行電路系統(tǒng)以及數(shù)字邏輯電路。
本申請(qǐng)實(shí)施例在根據(jù)當(dāng)前層的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果時(shí),通常是通過多次迭代過程所實(shí)現(xiàn)。具體地,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果時(shí),所述計(jì)算模塊具體用于,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù),通過多次迭代過程計(jì)算當(dāng)前層的處理結(jié)果。然而,由于一次迭代過程時(shí)所需要的數(shù)據(jù),往往由上一次迭代過程的迭代結(jié)果決定,從而導(dǎo)致在當(dāng)前層計(jì)算時(shí),往往需要循環(huán)讀取數(shù)據(jù),而每次讀取時(shí)都需要經(jīng)歷發(fā)送讀取請(qǐng)求,響應(yīng)讀取請(qǐng)求等過程,從而導(dǎo)致大大延長(zhǎng)了讀取操作所占用的時(shí)間,進(jìn)而造成數(shù)據(jù)處理過程耗時(shí)較長(zhǎng)。
例如在klt算法進(jìn)行視覺跟蹤時(shí),在金字塔一層的計(jì)算過程中,需要至少讀取1次原始金字塔{il}的數(shù)據(jù),至少讀取k次原始金字塔{jl}的數(shù)據(jù),其中,k為該層迭代總次數(shù)。由于讀取的速度要遠(yuǎn)大于計(jì)算的速度,因此讀取數(shù)據(jù)的過程往往占了跟蹤過程的大部分時(shí)間,甚至能夠占到整個(gè)跟蹤過程的50%-75%。
為了解決這一問題,在本申請(qǐng)實(shí)施例中,可以將各次循環(huán)所使用的數(shù)據(jù),一次性讀取到所述第二處理單元,也就是通過一次讀取操作,將各次循環(huán)所使用的數(shù)據(jù)全部讀取到所述第二處理單元,從而不需要多次循環(huán)讀取。具體地,從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)到第二存儲(chǔ)單元時(shí),所述讀取模塊具體用于,從第一存儲(chǔ)單元一次性讀取一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)到第二處理單元;所述一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)包括:所述一個(gè)或多個(gè)圖像金字塔的當(dāng)前層中,各次迭代過程中所使用的數(shù)據(jù)。
仍然以klt算法舉例說明,在第lm層的讀取過程中,除了讀取原始金字塔{il}在第lm層的第一跟蹤窗口內(nèi)的數(shù)據(jù)之外,一次性讀取原始金字塔{jl}在第lm層的第二跟蹤窗口內(nèi)的數(shù)據(jù),第二跟蹤窗口內(nèi)的數(shù)據(jù)包括:原始金字塔{jl}在第lm層中,k次迭代過程中所使用的數(shù)據(jù)。例如,第一跟蹤窗口的大小為15像素×15像素,第二跟蹤窗口的大小可以為33像素×33像素??梢?,在金字塔一層的計(jì)算過程中,需要讀取1次原始金字塔{il}的數(shù)據(jù),讀取1次原始金字塔{jl}的數(shù)據(jù),因此能夠減少讀取數(shù)據(jù)占用的時(shí)間,從而減少了耗時(shí)并提高了實(shí)時(shí)性。
其中,可以在完成讀取過程之前,只要已經(jīng)讀取了第一次迭代過程中所需的數(shù)據(jù),就可以開始本層的計(jì)算過程。具體地,通過多次迭代過程計(jì)算當(dāng)前層的處理結(jié)果時(shí),所述計(jì)算模塊具體用于,在所述讀取模塊完成讀取當(dāng)前層的待處理數(shù)據(jù)之前,開始通過多次迭代過程計(jì)算當(dāng)前層的處理結(jié)果。例如klt算法中,第lm層的讀取和計(jì)算過程中,所述讀取模塊讀取原始金字塔{il}在第lm層的第一跟蹤窗口內(nèi)之后,在原始金字塔{jl}在第lm層的第二跟蹤窗口內(nèi)的數(shù)據(jù)全部讀取完之前,只要已經(jīng)讀取了原始金字塔{jl}在第lm層的第1次迭代過程的第三跟蹤窗口內(nèi)的數(shù)據(jù),所述計(jì)算模塊就可以開始第1次迭代過程,并且所述讀取模塊繼續(xù)讀取第二跟蹤窗口內(nèi)剩余的數(shù)據(jù)。
可選的,所述一個(gè)或多個(gè)圖像金字塔可以包括第一圖像金字塔和第二圖像金字塔。從第一存儲(chǔ)單元開始讀取所述圖像金字塔的下一層的待處理數(shù)據(jù)時(shí),所述讀取模塊具體用于,從第一存儲(chǔ)單元開始讀取所述第一圖像金字塔的下一層的待處理數(shù)據(jù);所述讀取模塊還用于,在所述計(jì)算模塊計(jì)算所述當(dāng)前層的處理結(jié)果之后,根據(jù)所述處理結(jié)果,從第一存儲(chǔ)單元開始讀取所述第二圖像金字塔的下一層的待處理數(shù)據(jù)。
可選的,下一層的待處理數(shù)據(jù)包括所述第一圖像金字塔在下一層的第一跟蹤窗口內(nèi)的數(shù)據(jù),和所述第二圖像金字塔在下一層的第二跟蹤窗口內(nèi)的數(shù)據(jù),下一層的第二跟蹤窗口的位置根據(jù)當(dāng)前層的處理結(jié)果確定。
可選的,所述第一圖像金字塔包括第一圖像的第一原始金字塔,例如,圖像i的原始金字塔{il};所述第二圖像金字塔包括第二圖像的第二原始金字塔,例如圖像j的原始金字塔{jl}。任一層的待處理數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),該層的第一跟蹤窗口的位置根據(jù)跟蹤點(diǎn)在所述第一原始金字塔的該層數(shù)據(jù)中的位置確定,該層的第二跟蹤窗口的位置根據(jù)該層的上一層的處理結(jié)果確定。根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果時(shí),所述計(jì)算模塊具體用于,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù),以及所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù),計(jì)算當(dāng)前層的處理結(jié)果。
可選的,所述第一圖像還具有梯度金字塔;所述讀取模塊還用于,從第一存儲(chǔ)單元讀取所述梯度金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù)到第二存儲(chǔ)單元;
所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù)包括:存儲(chǔ)在第二存儲(chǔ)單元的、所述梯度金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
可選的,所述計(jì)算模塊還用于,根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的、所述第一原始金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù)。
可選的,任一層的第二跟蹤窗口內(nèi)的數(shù)據(jù)包括:所述第二原始金字塔在該層中,各次迭代過程中所使用的數(shù)據(jù)。
可選的,任一層的處理結(jié)果包括:所述跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移。所述計(jì)算模塊還可以用于,根據(jù)所述跟蹤點(diǎn)在最低層的偏移修正和預(yù)測(cè)偏移獲得所述跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。例如,所述計(jì)算模塊根據(jù)最低層的偏移修正d0和預(yù)測(cè)偏移g0計(jì)算出所述跟蹤點(diǎn)從圖像i到圖像j的位置偏移。所述計(jì)算模塊結(jié)合跟蹤點(diǎn)在圖像i的位置還可以進(jìn)一步計(jì)算出跟蹤點(diǎn)在圖像j的位置。
對(duì)應(yīng)圖7所示的方法實(shí)施例,本申請(qǐng)實(shí)施例還提供了數(shù)據(jù)處理裝置的另一種裝置實(shí)施例。
本實(shí)施例的所述數(shù)據(jù)處理裝置包括:讀取模塊和計(jì)算模塊。例如圖6所示,所述數(shù)據(jù)處理裝置可以包括讀取模塊601和計(jì)算模塊602。
所述讀取模塊用于,從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔的一層或多層的待處理數(shù)據(jù)到第二存儲(chǔ)單元。
本申請(qǐng)實(shí)施例中,在所述第一存儲(chǔ)單元中存儲(chǔ)有一個(gè)圖像金字塔的一層或多層的待處理數(shù)據(jù),或者多個(gè)圖像金字塔的一層或多層的待處理數(shù)據(jù)。實(shí)際上,在第一存儲(chǔ)單元通常存儲(chǔ)有所述一個(gè)或多個(gè)圖像金字塔的一層或多層的整層數(shù)據(jù)。例如,在klt算法中,所述第一存儲(chǔ)單元存儲(chǔ)有圖像i的圖像金字塔(例如原始金字塔{il})的一層或多層的所有數(shù)據(jù),以及圖像j的圖像金字塔(例如原始金字塔{jl})的一層或多層的所有數(shù)據(jù)。
其中,一層或多層的待處理數(shù)據(jù)指的是一層或多層的所有數(shù)據(jù)中,用于計(jì)算一層或多層的處理結(jié)果的數(shù)據(jù)。例如,在klt算法中,在第lm層時(shí),圖像i的原始金字塔{il}在當(dāng)前層的待處理數(shù)據(jù),包括圖像i的原始金字塔{il}在第lm層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
本申請(qǐng)實(shí)施例中,所述讀取模塊在讀取其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)時(shí),從所述第一存儲(chǔ)單元一次性讀取到所述第二存儲(chǔ)單元,也就是說所述讀取模塊通過一次讀取操作,將其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù),從所述第一存儲(chǔ)單元讀取到所述第二存儲(chǔ)單元。例如在klt算法中,在第lm層的讀取過程中,所述讀取模塊一次性讀取原始金字塔{jl}在第lm層的第二跟蹤窗口內(nèi)的數(shù)據(jù),第二跟蹤窗口內(nèi)的數(shù)據(jù)包括:原始金字塔{jl}在第lm層中,k次迭代過程中所使用的數(shù)據(jù)。
在本申請(qǐng)實(shí)施例中,所述第一存儲(chǔ)單元和所述第二存儲(chǔ)單元均指的是具有存儲(chǔ)功能的模塊,例如具體為存儲(chǔ)器、緩存器等。其中,所述第一存儲(chǔ)單元可以為外部存儲(chǔ)單元,所述第二存儲(chǔ)單元可以為內(nèi)部存儲(chǔ)單元。當(dāng)所述讀取模塊將待處理數(shù)據(jù)從所述第一存儲(chǔ)單元讀取到所述第二存儲(chǔ)單元之后,所述計(jì)算模塊就可以根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果。
所述計(jì)算模塊用于,在所述讀取模塊從第一存儲(chǔ)單元完成讀取所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)之前,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果。
在本申請(qǐng)實(shí)施例中,在所述讀取模塊一次性讀取其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)時(shí),所述計(jì)算模塊不需要等待數(shù)據(jù)全部讀取完再開始計(jì)算。而是可以在所述讀取模塊完成讀取一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)之前,只要已經(jīng)讀取了能夠滿足開始計(jì)算的數(shù)據(jù),所述計(jì)算模塊就可以開始計(jì)算當(dāng)前層的計(jì)算。
通過上述技術(shù)方案可知,本申請(qǐng)實(shí)施例中并不需要等待數(shù)據(jù)全部讀取完才開始計(jì)算當(dāng)前層的處理結(jié)果,而是可以在讀取完之前就開始計(jì)算,進(jìn)一步優(yōu)化數(shù)據(jù)處理過程,從而減少了耗時(shí)并提高了實(shí)時(shí)性。
在本申請(qǐng)實(shí)施例中,讀取模塊分別與第一存儲(chǔ)單元和第二存儲(chǔ)單元相連,計(jì)算模塊與第二存儲(chǔ)單元相連。并且,所述數(shù)據(jù)處理裝置可以用于具有并行處理功能的電路中,讀取模塊和計(jì)算模塊具有并行處理功能。該電路可以包括以下任一種電路:具有多核處理器的電路、并行電路系統(tǒng)以及數(shù)字邏輯電路。
本申請(qǐng)實(shí)施例在根據(jù)當(dāng)前層的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果時(shí),通常是通過多次迭代過程所實(shí)現(xiàn)。具體地,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果時(shí),所述計(jì)算模塊具體用于,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù),開始通過多次迭代過程計(jì)算當(dāng)前層的處理結(jié)果。
在所述讀取模塊讀取完第一次迭代過程中所需的數(shù)據(jù)時(shí),所述計(jì)算模塊就可以開始計(jì)算當(dāng)前層的處理結(jié)果。以klt算法舉例,第lm層的讀取和計(jì)算過程中,所述讀取模塊讀取原始金字塔{il}在第lm層的第一跟蹤窗口內(nèi)之后,在原始金字塔{jl}在第lm層的第二跟蹤窗口內(nèi)的數(shù)據(jù)全部讀取完之前,只要已經(jīng)讀取了原始金字塔{jl}在第lm層的第1次迭代過程中的第三跟蹤窗口內(nèi)的數(shù)據(jù),所述計(jì)算模塊就可以開始第1次迭代過程,并繼續(xù)讀取第二跟蹤窗口內(nèi)剩余的數(shù)據(jù)。
其中,所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)可以包括:所述其中一個(gè)圖像金字塔的當(dāng)前層中,各次迭代過程中所使用的數(shù)據(jù)。例如在klt算法中,第二圖像金字塔的第lm層的待處理數(shù)據(jù)可以包括第二圖像金字塔的在第lm層中,k次迭代過程中所使用的數(shù)據(jù)。
可選的,從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔中的一層或多層的待處理數(shù)據(jù)到第二存儲(chǔ)單元時(shí),所述讀取模塊具體用于,從金字塔的最高層到最低層,從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔中的一層或多層的待處理數(shù)據(jù)到第二存儲(chǔ)單元。例如,先讀取一個(gè)或多個(gè)圖像金字塔的最高層,即第lm層的待處理數(shù)據(jù),再讀取所述一個(gè)或多個(gè)圖像金字塔的第lm-1層的待處理數(shù)據(jù),直至讀取所述一個(gè)或多個(gè)圖像金字塔的第0層的待處理數(shù)據(jù)。
若按照從金字塔的最高層到最低層的順序依次讀取,所述讀取模塊還可以用于,在所述計(jì)算模塊計(jì)算當(dāng)前層的處理結(jié)果時(shí),從第一存儲(chǔ)單元開始讀取所述一個(gè)或多個(gè)圖像金字塔的下一層的待處理數(shù)據(jù)。例如,在klt算法中,當(dāng)前層為第lm層時(shí),在計(jì)算第lm層的偏移修正
其中,所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)可以包括:所述其中一個(gè)圖像金字塔的當(dāng)前層的跟蹤窗口內(nèi)的數(shù)據(jù),所述當(dāng)前層的跟蹤窗口的位置根據(jù)上一層的處理結(jié)果確定。
可選的,所述一個(gè)或多個(gè)圖像金字塔可以包括:第一圖像的第一原始金字塔以及第二圖像的第二原始金字塔,例如,圖像i的原始金字塔{il}和圖像j的原始金字塔{jl}。任一層的待處理數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),該層的第一跟蹤窗口的位置根據(jù)跟蹤點(diǎn)在所述第一原始金字塔的該層數(shù)據(jù)中的位置確定,該層的第二跟蹤窗口的位置根據(jù)該層的上一層的處理結(jié)果確定。根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果時(shí),所述計(jì)算模塊具體用于,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述第一原始圖像金字塔和所述第二原始金字塔的當(dāng)前層的待處理數(shù)據(jù),以及所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù),開始計(jì)算當(dāng)前層的處理結(jié)果。
可選的,所述第一圖像還具有梯度金字塔;所述讀取模塊還用于,從第一存儲(chǔ)單元讀取所述梯度金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù)到第二存儲(chǔ)單元;所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù)包括:存儲(chǔ)在第二存儲(chǔ)單元的、所述梯度金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
可選的,所述計(jì)算模塊還用于,根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的、所述第一原始金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算所述第一圖像的當(dāng)前級(jí)的梯度數(shù)據(jù)。
可選的,任一層的第二跟蹤窗口內(nèi)的數(shù)據(jù)包括:所述第二原始金字塔在該層中,各次迭代過程中所使用的數(shù)據(jù),所述其中一個(gè)圖像金字塔包括:所述第二原始金字塔;從第一存儲(chǔ)單元完成讀取所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)時(shí),所述讀取模塊具體用于,從第一存儲(chǔ)單元完成讀取所述第二原始金字塔的當(dāng)前層的待處理數(shù)據(jù);根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果時(shí),所述計(jì)算模塊具體用于,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的第一原始金字塔和第二原始金字塔在當(dāng)前層的待處理數(shù)據(jù),開始通過多次循環(huán)過程計(jì)算當(dāng)前層的處理結(jié)果。其中,在計(jì)算當(dāng)前層的處理結(jié)果時(shí),還可以包括所述梯度金字塔在當(dāng)前層的待處理數(shù)據(jù)。
其中,第一原始金字塔在當(dāng)前層的待處理數(shù)據(jù)包括:第一原始金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù),梯度金字塔在當(dāng)前層的待處理數(shù)據(jù)包括:梯度金字塔在當(dāng)前層的第一跟蹤窗口內(nèi)的數(shù)據(jù),第二原始金字塔在當(dāng)前層的待處理數(shù)據(jù)包括:第二原始金字塔在當(dāng)前層的第二跟蹤窗口內(nèi)的數(shù)據(jù)。在讀取完第二跟蹤窗口內(nèi)的數(shù)據(jù)之前,就可以開始第1次迭代過程。
可選的,任一層的處理結(jié)果包括:所述跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移。所述計(jì)算模塊還可以用于,根據(jù)所述跟蹤點(diǎn)在最低層的偏移修正和預(yù)測(cè)偏移獲得所述跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。例如,根據(jù)最低層的偏移修正d0和預(yù)測(cè)偏移g0計(jì)算出所述跟蹤點(diǎn)從圖像i到圖像j的位置偏移。結(jié)合跟蹤點(diǎn)在圖像i的位置還可以進(jìn)一步計(jì)算出跟蹤點(diǎn)在圖像j的位置。
對(duì)應(yīng)圖8所示的方法實(shí)施例,本申請(qǐng)實(shí)施例還提供了數(shù)據(jù)處理裝置的另一種裝置實(shí)施例。
本實(shí)施例的所述數(shù)據(jù)處理裝置包括:讀取模塊和計(jì)算模塊。例如圖6所示,所述數(shù)據(jù)處理裝置包括讀取模塊601和計(jì)算模塊602。
所述讀取模塊,用于從第一存儲(chǔ)單元一次性讀取一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的整層數(shù)據(jù)到第二存儲(chǔ)單元。
其中,在第一存儲(chǔ)單元通常存儲(chǔ)有所述一個(gè)或多個(gè)圖像金字塔的所有數(shù)據(jù)。例如,在klt算法中,第一存儲(chǔ)單元存儲(chǔ)有圖像i的圖像金字塔(例如原始金字塔{il})的所有數(shù)據(jù),以及圖像j的圖像金字塔(例如原始金字塔{jl})的所有數(shù)據(jù)。
本申請(qǐng)實(shí)施例中,所述讀取模塊在讀取一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的整層數(shù)據(jù)時(shí),從所述第一存儲(chǔ)單元一次性讀取到所述第二存儲(chǔ)單元,也就是通過一次讀取操作,將一個(gè)圖像金字塔頂端的一層或多層的整層數(shù)據(jù),或者多個(gè)圖像金字塔頂端的一層或多層的整層數(shù)據(jù),從所述第一存儲(chǔ)單元讀取到所述第二存儲(chǔ)單元。例如在klt算法中,一次性讀取原始金字塔{jl}在第lm層的整層數(shù)據(jù)。
在本申請(qǐng)實(shí)施例中,所述第一存儲(chǔ)單元和所述第二存儲(chǔ)單元均指的是具有存儲(chǔ)功能的模塊,例如具體為存儲(chǔ)器、緩存器等。其中,所述第一存儲(chǔ)單元可以為外部存儲(chǔ)單元,所述第二存儲(chǔ)單元可以為內(nèi)部存儲(chǔ)單元。當(dāng)所述讀取模塊將待處理數(shù)據(jù)從所述第一存儲(chǔ)單元讀取到所述第二存儲(chǔ)單元之后,所述計(jì)算模塊就可以根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的數(shù)據(jù)計(jì)算每層的處理結(jié)果。
所述計(jì)算模塊,用于根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),計(jì)算每層的處理結(jié)果。
所述讀取模塊讀取了一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的整層數(shù)據(jù)之后,所述計(jì)算模塊就可以根據(jù)每層的待處理數(shù)據(jù),計(jì)算每層的處理結(jié)果。其中,每層的待處理數(shù)據(jù)指的是該層的整層數(shù)據(jù)中,用于計(jì)算該層的處理結(jié)果的數(shù)據(jù)。例如,在klt算法中,在第lm層時(shí),圖像i的原始金字塔{il}在該層的待處理數(shù)據(jù)包括:圖像i的原始金字塔{il}在第lm層的第一跟蹤窗口內(nèi)的數(shù)據(jù),以及原始金字塔{jl}在第lm層的第二跟蹤窗口內(nèi)的數(shù)據(jù)。
所述讀取模塊和所述計(jì)算模塊還用于依次從第一存儲(chǔ)單元讀取并處理所述圖像金字塔的剩余每層的待處理數(shù)據(jù)。
當(dāng)所述計(jì)算模塊計(jì)算完頂端的一層或多層的處理結(jié)果之后,或者在計(jì)算的同時(shí),所述讀取模塊繼續(xù)從第一存儲(chǔ)單元讀取剩余每層的待處理數(shù)據(jù)到第二存儲(chǔ)單元,并且所述計(jì)算模塊對(duì)存儲(chǔ)在第二存儲(chǔ)單元中剩余每層的待處理數(shù)據(jù)進(jìn)行處理,計(jì)算剩余每層的處理結(jié)果。
通過上述技術(shù)方案可知,本申請(qǐng)實(shí)施例在保證不占用過多的存儲(chǔ)空間的前提下,能夠根據(jù)頂端的整層數(shù)據(jù)進(jìn)行多次循環(huán)處理,不需要每次循環(huán)過程中分別進(jìn)行讀取操作,從而減少了耗時(shí)并提高了實(shí)時(shí)性。
在本申請(qǐng)實(shí)施例中,讀取模塊分別與第一存儲(chǔ)單元和第二存儲(chǔ)單元相連,計(jì)算模塊與第二存儲(chǔ)單元相連。并且,所述數(shù)據(jù)處理裝置可以用于具有并行處理功能的電路中,讀取模塊和計(jì)算模塊具有并行處理功能。該電路可以包括以下任一種電路:具有多核處理器的電路、并行電路系統(tǒng)以及數(shù)字邏輯電路。
可選的,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),計(jì)算每層的處理結(jié)果時(shí),所述計(jì)算模塊具體用于,從金字塔的最高層開始,按照逐層遞減的順序,依次根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù)計(jì)算每層的處理結(jié)果。例如,所述計(jì)算模塊先根據(jù)一個(gè)或多個(gè)圖像金字塔的最高層,即第lm層的待處理數(shù)據(jù),計(jì)算第lm層的處理結(jié)果,再根據(jù)一個(gè)或多個(gè)圖像金字塔的第lm-1層的待處理數(shù)據(jù),計(jì)算第lm-1層的處理結(jié)果,依次類推。
其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)可以包括:所述其中一個(gè)圖像金字塔的當(dāng)前層的跟蹤窗口內(nèi)的數(shù)據(jù),當(dāng)前層的跟蹤窗口的位置根據(jù)上一層的處理結(jié)果確定。
本申請(qǐng)實(shí)施例在根據(jù)每層的待處理數(shù)據(jù)計(jì)算每層的處理結(jié)果時(shí),通常是通過多次迭代過程所實(shí)現(xiàn)。具體地,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),計(jì)算每層的處理結(jié)果時(shí),所述計(jì)算模塊具體用于,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),通過多次迭代過程計(jì)算每層的處理結(jié)果。
其中,在所述讀取模塊從第一存儲(chǔ)單元完成讀取其中一個(gè)圖像金字塔的當(dāng)前層的整層數(shù)據(jù)之前,所述計(jì)算模塊可以根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果。以klt算法舉例,第lm層的讀取和計(jì)算過程中,在原始金字塔{jl}在第lm層的整層數(shù)據(jù)全部讀取完之前,例如在讀取了原始金字塔{jl}在第lm層的第二跟蹤窗口內(nèi)的數(shù)據(jù)之后,所述計(jì)算模塊就可以開始計(jì)算當(dāng)前層的處理結(jié)果,并且所述讀取模塊繼續(xù)讀取第lm層的剩余數(shù)據(jù)。其中,所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)可以包括:所述其中一個(gè)圖像金字塔的當(dāng)前層中,各次迭代過程中所使用的數(shù)據(jù)。
在本申請(qǐng)實(shí)施例中,所述一個(gè)或多個(gè)圖像金字塔可以包括:第一圖像的第一原始金字塔以及第二圖像的第二原始金字塔,例如圖像i的原始金字塔{il}和圖像j的原始金字塔{jl}。任一層的待處理數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù),以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),該層的第一跟蹤窗口的位置根據(jù)跟蹤點(diǎn)在所述第一原始金字塔的該層數(shù)據(jù)中的位置確定,該層的第二跟蹤窗口的位置根據(jù)該層的上一層的處理結(jié)果確定。根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù)計(jì)算每層的處理結(jié)果時(shí),所述計(jì)算模塊具體用于,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),以及所述第一圖像的每層的梯度數(shù)據(jù),計(jì)算每層的處理結(jié)果。
可選的,所述第一圖像還具有梯度金字塔;所述讀取模塊還用于,從第一存儲(chǔ)單元讀取所述梯度金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù)到第二存儲(chǔ)單元;所述第一圖像的每層的梯度數(shù)據(jù)包括:存儲(chǔ)在第二存儲(chǔ)單元的、所述梯度金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù)。
可選的,所述計(jì)算模塊還用于,根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的、所述第一原始金字塔在每層的第一跟蹤窗口內(nèi)的數(shù)據(jù),計(jì)算所述第一圖像的每級(jí)的梯度數(shù)據(jù)。
可選的,任一層的處理結(jié)果包括:所述跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移。所述處理模塊還可以用于,根據(jù)所述跟蹤點(diǎn)在最低層的偏移修正和預(yù)測(cè)偏移獲得所述跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。例如,根據(jù)最低層的偏移修正d0和預(yù)測(cè)偏移g0計(jì)算出所述跟蹤點(diǎn)從圖像i到圖像j的位置偏移。結(jié)合跟蹤點(diǎn)在圖像i的位置還可以進(jìn)一步計(jì)算出跟蹤點(diǎn)在圖像j的位置。
本申請(qǐng)實(shí)施例還提供了視覺跟蹤系統(tǒng)的一種系統(tǒng)實(shí)施例。本實(shí)施例的所述視覺跟蹤系統(tǒng)用于獲得第一跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移;所述第一圖像具有第一原始金字塔,所述第二圖像具有第二原始金字塔;所述系統(tǒng)包括:第一存儲(chǔ)單元、第二存儲(chǔ)單元和視覺跟蹤裝置,所述裝置包括:讀取模塊和計(jì)算模塊。例如圖4所示,所述視覺跟蹤系統(tǒng)包括第一存儲(chǔ)單元403、第二存儲(chǔ)單元404和視覺跟蹤裝置,所述視覺跟蹤裝置包括讀取模塊401和計(jì)算模塊402。
所述第一存儲(chǔ)單元存儲(chǔ)有所述第一原始圖像金字塔和所述第二原始金字塔的所有層的數(shù)據(jù);
所述讀取模塊用于,從金字塔的最高層到最低層,從所述第一存儲(chǔ)單元依次讀取每層的窗口數(shù)據(jù)到所述第二存儲(chǔ)單元;其中,任一層的窗口數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù)、以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),所述在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù)包括所述第二原始金字塔的該層中,用于迭代計(jì)算所述第一跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移的全部數(shù)據(jù);
所述計(jì)算模塊用于,從金字塔的最高層到最低層,根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的每層的窗口數(shù)據(jù),以及所述第一圖像的每級(jí)的梯度信息,通過多次迭代過程計(jì)算所述第一跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移;
所述計(jì)算模塊還用于,根據(jù)所述第一跟蹤點(diǎn)在最低層的預(yù)測(cè)偏移和偏移修正,獲得所述第一跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。
本實(shí)施例與圖3、以及圖3對(duì)應(yīng)的視覺跟蹤裝置的實(shí)施例相對(duì)應(yīng),具體請(qǐng)參閱上述實(shí)施例的相關(guān)描述,這里不再贅述。
本申請(qǐng)實(shí)施例還提供了數(shù)據(jù)處理系統(tǒng)的一種系統(tǒng)實(shí)施例。本實(shí)施例的數(shù)據(jù)處理系統(tǒng)包括:第一存儲(chǔ)單元、第二存儲(chǔ)單元和數(shù)據(jù)處理裝置,所述裝置包括:讀取模塊和計(jì)算模塊。例如圖6所示,所述數(shù)據(jù)處理系統(tǒng)包括第一存儲(chǔ)單元603、第二存儲(chǔ)單元604和數(shù)據(jù)處理裝置,所述數(shù)據(jù)處理裝置包括讀取模塊601和計(jì)算模塊602。
所述第一存儲(chǔ)單元存儲(chǔ)有至少一個(gè)圖像金字塔的所有層的數(shù)據(jù);
所述讀取模塊用于,從所述第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)到所述第二存儲(chǔ)單元;
所述計(jì)算模塊用于,根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果。
其中,所述計(jì)算模塊在計(jì)算所述當(dāng)前層的處理結(jié)果時(shí),所述讀取模塊從所述第一存儲(chǔ)單元開始讀取所述圖像金字塔的下一層的待處理數(shù)據(jù)。
本實(shí)施例與圖5、以及圖5對(duì)應(yīng)的數(shù)據(jù)處理裝置的實(shí)施例相對(duì)應(yīng),具體請(qǐng)參閱上述實(shí)施例的相關(guān)描述,這里不再贅述。
本申請(qǐng)實(shí)施例還提供了數(shù)據(jù)處理系統(tǒng)的另一種系統(tǒng)實(shí)施例。本實(shí)施例的數(shù)據(jù)處理系統(tǒng)包括:第一存儲(chǔ)單元、第二存儲(chǔ)單元和數(shù)據(jù)處理裝置,所述裝置包括:讀取模塊和計(jì)算模塊。例如圖6所示,所述數(shù)據(jù)處理系統(tǒng)包括第一存儲(chǔ)單元603、第二存儲(chǔ)單元604和數(shù)據(jù)處理裝置,所述數(shù)據(jù)處理裝置包括讀取模塊601和計(jì)算模塊602。
所述第一存儲(chǔ)單元存儲(chǔ)有至少一個(gè)圖像金字塔的所有層的數(shù)據(jù);
所述讀取模塊用于,從所述第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔的一層或多層的待處理數(shù)據(jù)到所述第二存儲(chǔ)單元;在讀取其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)時(shí),從所述第一存儲(chǔ)單元一次性讀取到所述第二存儲(chǔ)單元;
所述計(jì)算模塊用于,在所述讀取模塊從第一存儲(chǔ)單元完成讀取所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)之前,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果。
本實(shí)施例與圖7、以及圖7對(duì)應(yīng)的數(shù)據(jù)處理裝置的實(shí)施例相對(duì)應(yīng),具體請(qǐng)參閱上述實(shí)施例的相關(guān)描述,這里不再贅述。
本申請(qǐng)實(shí)施例還提供了數(shù)據(jù)處理系統(tǒng)的另一種系統(tǒng)實(shí)施例。本實(shí)施例的數(shù)據(jù)處理系統(tǒng)包括:第一存儲(chǔ)單元、第二存儲(chǔ)單元和數(shù)據(jù)處理裝置,所述裝置包括:讀取模塊和計(jì)算模塊。例如圖6所示,所述數(shù)據(jù)處理系統(tǒng)包括第一存儲(chǔ)單元603、第二存儲(chǔ)單元604和數(shù)據(jù)處理裝置,所述數(shù)據(jù)處理裝置包括讀取模塊601和計(jì)算模塊602。
所述第一存儲(chǔ)單元存儲(chǔ)有至少一個(gè)圖像金字塔的所有層的數(shù)據(jù);
所述讀取模塊用于,從所述第一存儲(chǔ)單元一次性讀取一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的整層數(shù)據(jù)到所述第二存儲(chǔ)單元;
所述計(jì)算模塊用于,根據(jù)存儲(chǔ)在所述第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),計(jì)算每層的處理結(jié)果;
所述讀取模塊和所述計(jì)算模塊還用于依次從所述第一存儲(chǔ)單元讀取并處理所述圖像金字塔的剩余每層的待處理數(shù)據(jù)。
本實(shí)施例與圖8、以及圖8對(duì)應(yīng)的數(shù)據(jù)處理裝置的實(shí)施例相對(duì)應(yīng),具體請(qǐng)參閱上述實(shí)施例的相關(guān)描述,這里不再贅述。
本申請(qǐng)實(shí)施例還提供了計(jì)算機(jī)存儲(chǔ)介質(zhì)的一種實(shí)施例,本實(shí)施例用于獲得第一跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移;所述第一圖像具有第一原始金字塔,所述第二圖像具有第二原始金字塔。
本實(shí)施例的所述計(jì)算機(jī)存儲(chǔ)介質(zhì)包括計(jì)算機(jī)程序代碼,該計(jì)算機(jī)程序代碼由計(jì)算機(jī)單元執(zhí)行,使得該計(jì)算機(jī)單元:
從金字塔的最高層到最低層,從第一存儲(chǔ)單元依次讀取每層的窗口數(shù)據(jù)到第二存儲(chǔ)單元;其中,任一層的窗口數(shù)據(jù)包括:所述第一原始金字塔在該層的第一跟蹤窗口內(nèi)的數(shù)據(jù)、以及所述第二原始金字塔在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù),所述在該層的第二跟蹤窗口內(nèi)的數(shù)據(jù)包括所述第二原始金字塔的該層中,用于迭代計(jì)算所述第一跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移的全部數(shù)據(jù);
從金字塔的最高層到最低層,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的窗口數(shù)據(jù),以及所述第一圖像的每級(jí)的梯度信息,通過多次迭代過程計(jì)算所述第一跟蹤點(diǎn)在該層的偏移修正和該層的下一層的預(yù)測(cè)偏移;
根據(jù)所述第一跟蹤點(diǎn)在最低層的預(yù)測(cè)偏移和偏移修正,獲得所述第一跟蹤點(diǎn)從第一圖像到第二圖像的位置偏移。
本實(shí)施例與圖3、以及圖3對(duì)應(yīng)的視覺跟蹤裝置的實(shí)施例相對(duì)應(yīng),具體請(qǐng)參閱上述實(shí)施例的相關(guān)描述,這里不再贅述。
本申請(qǐng)實(shí)施例還提供了計(jì)算機(jī)存儲(chǔ)介質(zhì)的另一種實(shí)施例,本實(shí)施例的所述計(jì)算機(jī)存儲(chǔ)介質(zhì)包括計(jì)算機(jī)程序代碼,該計(jì)算機(jī)程序代碼由計(jì)算機(jī)單元執(zhí)行,使得該計(jì)算機(jī)單元:
從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)到第二存儲(chǔ)單元;
根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的所述當(dāng)前層的待處理數(shù)據(jù)計(jì)算當(dāng)前層的處理結(jié)果;
在計(jì)算所述當(dāng)前層的處理結(jié)果時(shí),從第一存儲(chǔ)單元開始讀取所述圖像金字塔的下一層的待處理數(shù)據(jù)。
本實(shí)施例與圖5、以及圖5對(duì)應(yīng)的數(shù)據(jù)處理裝置的實(shí)施例相對(duì)應(yīng),具體請(qǐng)參閱上述實(shí)施例的相關(guān)描述,這里不再贅述。
本申請(qǐng)實(shí)施例還提供了計(jì)算機(jī)存儲(chǔ)介質(zhì)的另一種實(shí)施例,本實(shí)施例的所述計(jì)算機(jī)存儲(chǔ)介質(zhì)包括計(jì)算機(jī)程序代碼,該計(jì)算機(jī)程序代碼由計(jì)算機(jī)單元執(zhí)行,使得該計(jì)算機(jī)單元:
從第一存儲(chǔ)單元讀取一個(gè)或多個(gè)圖像金字塔的一層或多層的待處理數(shù)據(jù)到第二存儲(chǔ)單元;在讀取其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)時(shí),從所述第一存儲(chǔ)單元一次性讀取到所述第二存儲(chǔ)單元;
在從第一存儲(chǔ)單元完成讀取所述其中一個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)之前,根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的一個(gè)或多個(gè)圖像金字塔的當(dāng)前層的待處理數(shù)據(jù)開始計(jì)算當(dāng)前層的處理結(jié)果。
本實(shí)施例與圖7、以及圖7對(duì)應(yīng)的數(shù)據(jù)處理裝置的實(shí)施例相對(duì)應(yīng),具體請(qǐng)參閱上述實(shí)施例的相關(guān)描述,這里不再贅述。
本申請(qǐng)實(shí)施例還提供了計(jì)算機(jī)存儲(chǔ)介質(zhì)的另一種實(shí)施例,本實(shí)施例的所述計(jì)算機(jī)存儲(chǔ)介質(zhì)包括計(jì)算機(jī)程序代碼,該計(jì)算機(jī)程序代碼由計(jì)算機(jī)單元執(zhí)行,使得該計(jì)算機(jī)單元:
從第一存儲(chǔ)單元一次性讀取一個(gè)或多個(gè)圖像金字塔頂端的一層或多層的整層數(shù)據(jù)到第二存儲(chǔ)單元;
根據(jù)存儲(chǔ)在第二存儲(chǔ)單元的每層的待處理數(shù)據(jù),計(jì)算每層的處理結(jié)果;
依次從第一存儲(chǔ)單元讀取并處理所述圖像金字塔的剩余每層的待處理數(shù)據(jù)。
本實(shí)施例與圖8、以及圖8對(duì)應(yīng)的數(shù)據(jù)處理裝置的實(shí)施例相對(duì)應(yīng),具體請(qǐng)參閱上述實(shí)施例的相關(guān)描述,這里不再贅述。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本申請(qǐng)各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、移動(dòng)硬盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述,以上實(shí)施例僅用以說明本申請(qǐng)的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本申請(qǐng)進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本申請(qǐng)各實(shí)施例技術(shù)方案的精神和范圍。