一種圖像數(shù)據(jù)集的稀疏表示的加速方法及裝置的制造方法
【專利摘要】本發(fā)明實施例公開一種圖像數(shù)據(jù)集的稀疏表示的加速方法及裝置,所述方法包括:獲得圖像數(shù)據(jù)集S,S={Yi|1≤i≤s^Yi∈Rn×N};通過IK?SVD算法訓練所述S中的Y1獲得超完備字典D1;根據(jù)Y2、…、Ys對所述超完備字典D1進行S?1次更新,其中,在每一次更新時通過GPU計算遞歸Cholesky分解中的矩陣運算,直到收斂。由于通過遞歸Cholesky分解來替換標準的Cholesky分解,減輕了對數(shù)據(jù)的依賴,從而使得遞歸Cholesky分解過程中的矩陣運算能夠有效地使用GPU對其進行并行加速,從而提高了圖像數(shù)據(jù)集的稀疏表示的處理速度,降低了圖像數(shù)據(jù)集進行稀疏表示時耗費的時間。
【專利說明】
一種圖像數(shù)據(jù)集的稀疏表示的加速方法及裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及一種圖像數(shù)據(jù)集的稀疏表示的加速方法及裝 置。
【背景技術(shù)】
[0002] 圖像數(shù)據(jù)集的稀疏表示包括自學習方法,自學習方法不需任何預定的形式獲取超 完備字典,自學習方法的基本假設是:復雜的非相干特性的結(jié)構(gòu)可以直接從數(shù)據(jù)提取,而不 是使用一個數(shù)學表達描述。例如,給定一組圖像向量,K-SVD(全稱:K-Singular Value Decomposition;中文:K-奇異值分解)方法能在嚴格的稀疏約束下尋找導致在該組中每個 成員表示最好的字典。非參數(shù)貝葉斯字典學習使用一個截斷的伯努利過程來學習相匹配 的圖像塊的字典。
[0003]在當前大數(shù)據(jù)的時代,圖像數(shù)據(jù)集的大小已經(jīng)呈爆炸式的增長,而自學習的方法 不能有效的處理非常大的數(shù)據(jù)集,因為每次學習迭代都需要訪問整個數(shù)據(jù)集,處理速度較 慢。
[0004] 因此,現(xiàn)有技術(shù)中存在對圖像數(shù)據(jù)集的稀疏表示的處理速度較慢的技術(shù)問題。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明實施例通過提供一種圖像數(shù)據(jù)集的稀疏表示的加速方法及裝置,用以解決 現(xiàn)有技術(shù)中存在的對圖像數(shù)據(jù)集的稀疏表示的處理速度較慢的技術(shù)問題。
[0006] 本發(fā)明實施例第一方面提供了一種圖像數(shù)據(jù)集的稀疏表示的加速方法,所述方法 包括:
[0007] 獲得圖像數(shù)據(jù)集S,S={Yi| 1 < i < S~YiERnXN};
[0008] 通過IK-SVD算法訓練所述S中的心獲得超完備字典D1;
[0009] 根據(jù)Y2.....Ys對所述超完備字典Di進行S-1次更新,其中,在每一次更新時通過 GPU計算遞歸Cholesky分解中的矩陣運算,直到收斂。
[0010] 可選地,所述S能夠通過基于超完備字典Ds = {cU,…,dn}的稀疏系數(shù)矩陣序列Xs = { XI,? ? ?,Xs }稀疏表〇
[0011] 可選地,所述在每一次更新時通過GPU計算遞歸Cholesky分解的矩陣運算,包括:
[0012] 選取新的更新原子;以及 y n-1 a T
[0013] 通過GPU計算遞歸Cholesky分解中矩陣Ln= a 的左上角矩陣IT1更新;以 _ A B _ 及 丁 - 丁
[0014] 通過GPU計算所述矩陣Ln= a ^中子矩陣A和子矩陣B的順序更新。 -A B min ... ..9 丨丨
[0015]可選地,所述選取新的原子,具體包括:通過||% - DmXwIU 、 選取所述新的原子。
\n-1 at_
[0016] 可選地,所述通過GPU計算遞歸Cholesky分解中矩陣LE_= a ^的左上角矩陣 A B lh更新,具體為:
[0017] 通過GPU計算L^-lUSolvelLn-yKDKTlin parallel)。 _In-1 A1
[0018] 可選地,所述通過GPU計算所述矩陣Ln= ^ T、中子矩陣A和子矩陣B的順序更 A B 新,包括:
[0019] 通過GPU計算A-Temp(Temp=AK-T in parallel)和B-TempTempT in parallel。
[0020] 本發(fā)明實施例第二方面還提供一種圖像數(shù)據(jù)集的稀疏表示的加速裝置,包括:
[0021] 獲得單元,用于獲得圖像數(shù)據(jù)集1 < i < s'hERnM};
[0022]訓練單元,用于通過IK-SVD算法訓練所述S中的心獲得超完備字典D1;
[0023]更新單元,用于根據(jù)Y2、…、1對所述超完備字典0:進行S-1次更新,其中,在每一次 更新時通過GPU計算遞歸Cholesky分解中的矩陣運算,直到收斂。
[0024]可選地,所述S能夠通過基于超完備字典Ds = {cU,…,dn}的稀疏系數(shù)矩陣序列Xs = { XI,…,Xs }稀疏表不。
[0025]可選地,所述更新單元具體用于選取新的更新原子,以及通過GPU計算遞歸 Yn-A1' Cholesky分解中矩陣:Ln= 1 的左上角矩陣f1更新,以及通過GHJ計算所述矩陣 A B I^= La t中子矩陣六和子矩陣8的順序更新。 _ A B
[0026] 可選地,所述更新單元具體用于通過GPU計算Solve {L11-1 = KDKT} in parallel),以及通過 GPU計算 A-Temp(Temp = AK-T in parallel)和 B-TempTempT in parallel〇
[0027] 本發(fā)明實施例中提供的一個或多個技術(shù)方案,至少具有如下技術(shù)效果或優(yōu)點:
[0028] 由于通過遞歸Cho 1 e sky分解來替換標準的Cho 1 e sky分解,減輕了對數(shù)據(jù)的依賴, 從而使得遞歸Cholesky分解過程中的矩陣運算能夠有效地使用GPU對其進行并行加速,從 而提高了圖像數(shù)據(jù)集的稀疏表示的處理速度,降低了圖像數(shù)據(jù)集進行稀疏表示時耗費的時 間。
【附圖說明】
[0029] 圖1為本發(fā)明實施例提供的一種圖像數(shù)據(jù)集的稀疏表示的加速方法的流程圖;
[0030] 圖2為本發(fā)明實施例提供的BRC格式矩陣的表示示意圖;
[0031]圖3為本發(fā)明實施例提供的一種圖像數(shù)據(jù)集的稀疏表示的加速裝置的示意圖。
【具體實施方式】
[0032] 本發(fā)明實施例通過提供一種圖像數(shù)據(jù)集的稀疏表示的加速方法及裝置,解決了現(xiàn) 有技術(shù)中存在的對圖像數(shù)據(jù)集的稀疏表示的處理速度較慢的技術(shù)問題。
[0033] 本發(fā)明實施例中的技術(shù)方案為解決上述技術(shù)問題,總體思路如下:
[0034] 首先,獲得圖像數(shù)據(jù)集S,S={Yi| 1 < i < S~YiERnXN};
[0035]然后,通過IK-SVD算法訓練S中的心獲得超完備字典D1;
[0036] 最后,根據(jù)Y2、…、Ys對超完備字典Di進行S-1次更新,其中,在每一次更新時通過 GPU計算遞歸Cholesky分解中的矩陣運算,直到收斂。
[0037] 可以看出,由于采用了根據(jù)Y2、…、Ys對超完備字典Di進行S-1次更新,其中,在每一 次更新時通過GPU(英文:Graphics Processing Unit;中文:圖形處理器)計算遞歸 Cholesky(中文:柯勒斯基)分解中的矩陣運算,直到收斂的技術(shù)方案,并且由于GPU天然的 多線程并行處理方式對矩陣運算有著明顯的加速作用,所以能夠提高對圖像數(shù)據(jù)集的稀疏 表示的處理效率,減少對圖像數(shù)據(jù)集的稀疏表示時所花費的時間。
[0038] 為了更好的理解上述技術(shù)方案,下面將結(jié)合說明書附圖以及具體的實施方式對上 述技術(shù)方案進行詳細的說明。
[0039] 請參考圖1,圖1為本發(fā)明實施例提供的圖像數(shù)據(jù)集的稀疏表示的加速方法,如圖1 所示,該方法包括:
[0040] 31:獲得圖像數(shù)據(jù)集5,3={¥1|1<1<8飛 1已1^>^};
[0041] 在本實施例中,圖像數(shù)據(jù)集S為大規(guī)模圖像數(shù)據(jù)集,具體地,S中圖像數(shù)據(jù)h的數(shù)量 例如可以大于等于10000個,其中S能夠通過基于超完備字典D s={cU,…,dn}的稀疏系數(shù)矩 陣序列Xs= {xi,…,xs}稀疏表示。
[0042] 所以,很明顯地,對于下一張圖像,需要找到一個新的字典Ds^ztcU,…,dn+1,??? dn+m}獲取Ys+1和Xs+1的稀疏表達。也就是說,使用IK-SVD方法對大規(guī)模圖像進行稀疏表示存 在D F P'ki 一 ?.P麵dM勺處理速度優(yōu)化問題。
[0043] S2:通過IK-SVD算法訓練S中的心獲得超完備字典D1;
[0044] 在具體實施過程中,IK-SVD具體是Incremental K-SVD(增量K-SVD)算法,例如可 以通過在線字典學習(英文全稱:〇nline Dictionary Learning;簡稱:0DL)和遞歸最小二 乘法字典(英文全稱:Recursive least squares dictionary;簡稱:RLSD)訓練S中的Yi獲 得超完備字典Du
[0045] S3:根據(jù)Y2、…、Ys對超完備字典Di進行S-1次更新,其中,在每一次更新時通過GPU 計算遞歸Cholesky分解中的矩陣運算,直到收斂。
[0046] 由于標準的Cholesky分解需要進行平方根運算,并且存在大數(shù)據(jù)依賴,這樣不能 直接使用GPU去實現(xiàn)。因此在本實施例中,遞歸Choiesky分解,這樣減輕數(shù)據(jù)依賴,使之可應 用與GPU計算。
[0047] 在具體實施過程中,在每一次更新時通過GPU計算遞歸Cholesky分解的矩陣運算, 包括:選取新的更新原子;以及通過GPU計算遞歸Cholesky分解中矩陣Ln= ^ 的左 A B -Ln-1 AT_ 上角矩陣Ln4更新;以及通過GPU計算矩陣Ln= n中子矩陣A和子矩陣B的順序更新。 A B
[0048] 在本實施例中,可以通過如下公式選取m個新的原子: min ..
[0049] 通過|Yt -UhI + ,查找樣本系數(shù)不夠稀疏的新數(shù)據(jù);
[0050] 并且,通過
候選樣本中計算m個原子的最大熵。 -U1-1 Ar-
[0051] 在本實施例中,通過GPU計算遞歸Cholesky分解中矩陣Ln=_ a 。的左上角矩 _ A B 陣廣1 更新,具體為:通過GPU計算Ln-i-mSolvelLn-yKDKlin parallel)。 -IT1 At"
[0052] 在本實施例中,通過GHJ計算矩陣Ln= ^中子矩陣A和子矩陣B的順序更 A B 新,包括:
[0053] 通過GPU計算A-Temp(Temp=AK-T in parallel)和B-TempTempT in parallel。 [0054]在具體實施過程中,在IK-SVD方法中存在大量的矩陣矩陣相乘(SpMM)和矩陣向量 相乘(SpMV)?;贕PU的Batch-〇MP算法也主要依賴于矩陣運算。由于Coordinate(COO)、 Compressed Sparse Row(CSR)、ELLPACK(ELL)和hybrid(HYB)格式的矩陣稀疏格式存在線 程發(fā)散、冗余計算、數(shù)據(jù)傳輸、缺乏適應性等問題。
[0055] 本發(fā)明采用一種自適應的稀疏矩陣格式--blocked row-column(BRC)。給定矩 fa. 陣M:M= = 其基于BRC格式的表示方法如圖2所示。B1為相鄰行分塊,其值設置成 bw 料!; 一個warp的大小(例如32),塊較長的行將會導致負載不平衡,然后對其進行列分塊。每一個 block具有相同的大小B1XT,具體可以通過以下兩個公式進行限制:
B2=min(CX[p+c],MaxNZ),其中C為一個常量,y是每一行非零個數(shù)的平均值,〇為標準 差,MaxNZ為最大非零個數(shù)的行。
[0056] 在進行矩陣計算的時候,可以首先將矩陣按每一行非零元素個數(shù)大小進行排序。 然后再根據(jù)設定的block的大小對其進行行和列劃分,將空行處填零進行補充。最終可以通 過5個數(shù)組來表示整個矩陣,其中Data由非零元素和填充元素組成,Column Index表示元素 在原矩陣中所在的列,Row Perm表示重新排列后每一行所在原始矩陣的原始行,None-Zeros per block表示每一個block的每一行非零元素的個數(shù),Block Begin表示每一個 block的第一個元素所在Data的位置,Data位置從0開始計算。
[0057] 可以看出,在上述過程中,由于通過遞歸Cholesky分解來替換標準的Cholesky分 解,減輕了對數(shù)據(jù)的依賴,從而使得遞歸Cholesky分解過程中的矩陣運算能夠有效地使用 GPU對其進行并行加速,從而提高了圖像數(shù)據(jù)集的稀疏表示的處理速度,降低了圖像數(shù)據(jù)集 進行稀疏表示時耗費的時間。
[0058] 基于同一發(fā)明構(gòu)思,本發(fā)明實施例另一方面還提供一種圖像數(shù)據(jù)集的稀疏表示的 加速裝置,請參考圖3,圖3為本發(fā)明實施例提供的加速裝置的示意圖,如圖3所示,該加速裝 置包括:
[0059] 獲得單元201,用于獲得圖像數(shù)據(jù)集1 < i < s-heRnXN};
[0060] 訓練單元202,用于通過IK-SVD算法訓練S中的心獲得超完備字典Di;
[0061] 更新單元203,用于根據(jù)¥2、…、Ys對超完備字典Di進行S-1次更新,其中,在每一次 更新時通過GPU計算遞歸Cholesky分解中的矩陣運算,直到收斂。
[0062]在具體實施過程中,S能夠通過基于超完備字典Ds ={ cU,…,dn}的稀疏系數(shù)矩陣序 列Xs= {xi,…,xs}稀疏表示。
[0063]在具體實施過程中,更新單元203具體用于選取新的更新原子,以及通過GPU計算 Ln-1 At1 遞歸Cholesky分解中矩陣Ln= =的左上角矩陣更新,以及通過GHJ計算矩陣 >?-1 at~ L°= A ^中子矩陣A和子矩陣B的順序更新。 A B
[0064] 在具體實施過程中,更新單元203具體用于通過GPU計算f1-K(Solve{Ln4 = KDKT} in parallel),以及通過 GPU計算 A-Temp(Temp=AK-T in parallel)和 B-TempTempT in parallel。
[0065] 本發(fā)明實施例中的加速裝置與前述部分介紹的加速方法是同一發(fā)明構(gòu)思下的兩 個方面,在前述部分中已經(jīng)詳細地介紹了圖像數(shù)據(jù)集的稀疏表示的加速方法的具體過程, 本領(lǐng)域所屬的技術(shù)人員能夠根據(jù)前述部分的描述清楚地了解加速裝置的結(jié)構(gòu)以及處理過 程,在此為了說明書的簡潔,就不再贅述了。
[0066] 上述本發(fā)明實施例中的技術(shù)方案,至少具有如下的技術(shù)效果或優(yōu)點:
[0067] 由于通過遞歸Cho 1 e sky分解來替換標準的Cho 1 e sky分解,減輕了對數(shù)據(jù)的依賴, 從而使得遞歸Cholesky分解過程中的矩陣運算能夠有效地使用GPU對其進行并行加速,從 而提高了圖像數(shù)據(jù)集的稀疏表示的處理速度,降低了圖像數(shù)據(jù)集進行稀疏表示時耗費的時 間。
[0068] 本領(lǐng)域內(nèi)的技術(shù)人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序 產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實 施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機 可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產(chǎn) 品的形式。
[0069] 本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程 圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流 程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序 指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn) 生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實 現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0070] 這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特 定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指 令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或 多個方框中指定的功能。
[0071] 這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計 算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或 其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一 個方框或多個方框中指定的功能的步驟。
[0072] 顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【主權(quán)項】
1. 一種圖像數(shù)據(jù)集的稀疏表示的加速方法,其特征在于,所述方法包括: 獲得圖像數(shù)據(jù)集S,S= {Yi 11 y < S~YiERnXN}; 通過IK-SVD算法訓練所述S中的Yi獲得超完備字典化; 根據(jù)Y2、…、Ys對所述超完備字典化進行S-I次更新,其中,在每一次更新時通過GP聽十算 遞歸化Olesky分解中的矩陣運算,直到收斂。2. 如權(quán)利要求1所述的方法,其特征在于,所述S能夠通過基于超完備字典Ds = {di,…, dn}的稀疏系數(shù)矩陣序列Xs = Ixi,…,Xs }稀疏表示。3. 如權(quán)利要求2所述的方法,其特征在于,所述在每一次更新時通過GPU計算遞歸 化Olesky分解的矩陣運算,包括:選取新的更新原子;W及 通過GPU計算遞歸化Olesky分解中矩P 的左上角矩陣更新;W及 通過GPU計算所述矩降I子矩陣A和子矩陣B的順序更新。4. 如權(quán)利要求3所述的方法,其特征在于,所述選取新的原子,具體包括:通過 巧化巧I迎制日''J妹>了。5. 如權(quán)利要求3所述的方法,其特征在于,所述通過GPU計算遞歸化Olesky分解中矩陣巧左上角矩陣LD-I更新,具體為:迪;CIGPU計算17^-1^1((SolveixW =邸護} in parallel)。6. 如權(quán)利要求3所述的方法,其特征在于,所述通過GPU計算所述矩陣 3 子矩陣A和子矩陣B的順序更新,包括: 通過GPU計算A^Temp(Temp=AK-T in parallel)和B^l'empl'empT in parallel。7. -種圖像數(shù)據(jù)集的稀疏表示的加速裝置,其特征在于,包括: 獲得單元,用于獲得圖像數(shù)據(jù)集S,S= {Yi 11 < i < s'YiERnxN}; 訓練單元,用于通過IK-SVD算法訓練所述S中的Yi獲得超完備字典化; 更新單元,用于根據(jù)Y2、…、Ys對所述超完備字典化進行S-I次更新,其中,在每一次更新 時通過GPU計算遞歸化Olesky分解中的矩陣運算,直到收斂。8. 如權(quán)利要求7所述的裝置,其特征在于,所述S能夠通過基于超完備字典Ds ={ di,…, 山}的稀疏系數(shù)矩陣序列私二1X1,…,Xs}稀疏表示。9. 如權(quán)利要求8所述的裝置,其特征在于,所述更新單元具體用于選取新的更新原子, 擴1 1 W及通過GPU計算遞歸化Olesky分解中矩陣U= 的左上角矩陣更新,W及通 A B 過GPU計算所述矩^子矩陣A和子矩陣B的順序更新。10.如權(quán)利要求9所述的裝置,其特征在于,所述更新單元具體用于通過GRJ計算LTi^K (Solveixn-I 二邸 KT}in parallel), W 及通過 GPU計算 A^Temp(Temp 二 AK-T in parallel)和 B戶TempTempT |打 parallel。
【文檔編號】G06K9/46GK105913063SQ201610203712
【公開日】2016年8月31日
【申請日】2016年4月1日
【發(fā)明人】鄧澤, 王力哲, 陳小島, 陳云亮, 杜波
【申請人】中國地質(zhì)大學(武漢)