基于矩陣分解的圖像無(wú)縫克隆方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種基于矩陣分解的圖像無(wú)縫克隆方法,該方法使用梯度域方法構(gòu)建原始線性系統(tǒng)方程,對(duì)原始線性系統(tǒng)的系數(shù)矩陣進(jìn)行矩陣分解分解成帶狀對(duì)角矩陣,并將帶狀對(duì)角矩陣分解為若干個(gè)小帶狀對(duì)角矩陣,根據(jù)各個(gè)小帶狀對(duì)角矩陣構(gòu)建小型系統(tǒng)方程,并通過(guò)GPU的不同線程中求解該小型系統(tǒng)方程得到各個(gè)像素點(diǎn)的初始像素補(bǔ)償值,將所有像素點(diǎn)的初始像素補(bǔ)償值作為原始系統(tǒng)的初始值代入原始線性系統(tǒng)方程直接求解得到最終像素補(bǔ)償值,進(jìn)一步得到融合區(qū)域中各個(gè)像素點(diǎn)的像素值,完成無(wú)縫克隆。本發(fā)明的圖像無(wú)縫克隆方法充分利用了GPU的數(shù)據(jù)并行處理能力,大大提高了運(yùn)算速率,使實(shí)時(shí)圖像處理成為可能,且內(nèi)存消耗低,可擴(kuò)展到廣泛的運(yùn)用程序中。
【專(zhuān)利說(shuō)明】基于矩陣分解的圖像無(wú)縫克隆方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)圖像領(lǐng)域,尤其涉及一種基于矩陣分解的圖像無(wú)縫克隆方法?!颈尘凹夹g(shù)】
[0002]近幾年,梯度域方法被廣泛運(yùn)用于圖像處理領(lǐng)域中,包括本征圖像復(fù)原、無(wú)縫克隆和圖像拼接領(lǐng)域。這些算法的求解通常是解一個(gè)大型稀疏線性系統(tǒng):泊松方程。但是,解泊松方程是一個(gè)計(jì)算密集型和內(nèi)存密集型任務(wù),不適合實(shí)時(shí)圖像編輯。同時(shí),在處理大規(guī)模圖像時(shí),如百萬(wàn)像素圖,甚至是,億像素圖像,這個(gè)問(wèn)題就顯得異常突出。為了解決這個(gè)問(wèn)題,研究人員已經(jīng)提出了各種各樣的方法。這些方法大致可以分為兩類(lèi):基于退化空間的求解器和基于數(shù)值分析的求解器。
[0003]對(duì)第一類(lèi),基于退化空間的求解器,一些算法將全分辨率圖像轉(zhuǎn)換到退化空間,從而大量減少內(nèi)存開(kāi)銷(xiāo)和計(jì)算開(kāi)銷(xiāo)。第二類(lèi)基于數(shù)值分析的求解器可以細(xì)分為兩個(gè)子類(lèi):直接解決器和迭代解決器。Pardiso,MUMPS,和SuperLU屬于直接解決器。而共軛梯度,多重網(wǎng)格法和串流多重網(wǎng)格法是比較常用的迭代解決器。直接法的思想是,經(jīng)過(guò)有限步算術(shù)計(jì)算,可求得方程的精確解的方法,但由于實(shí)踐中有四舍五入的存在,這類(lèi)方法也只能得到近似解,直接法最基本的是高斯消去法。而直接解決器的可擴(kuò)展性差,不適合求解大型線性系統(tǒng)。迭代法的思想是,采用某種極限過(guò)程逐步逼近線性方程的精確解,迭代法需要的計(jì)算機(jī)存儲(chǔ)單元較少、程序設(shè)計(jì)簡(jiǎn)單,但是迭代解決器不是很健壯,收斂速度慢。
【發(fā)明內(nèi)容】
[0004]針對(duì)現(xiàn)有圖像無(wú)縫克隆方法技術(shù)的不足,本發(fā)明提供了一種基于矩陣分解的圖像無(wú)縫克隆方法。
[0005]一種基于矩陣分解的圖像無(wú)縫克隆方法,包括:
[0006](I)根據(jù)源圖像中克隆區(qū)域的梯度域和目標(biāo)圖像中融合區(qū)域的梯度域構(gòu)建泊松方程,并根據(jù)泊松方程得到對(duì)應(yīng)的拉普拉斯方程;
[0007](2)根據(jù)所述的拉普拉斯方程構(gòu)建原始線性系統(tǒng)和原始線性系統(tǒng)方程;
[0008](3)對(duì)所述原始線性系統(tǒng)方程的系數(shù)矩陣進(jìn)行分解得到一個(gè)帶狀對(duì)角矩陣和殘余矩陣,并根據(jù)克隆區(qū)域的形狀將所述的帶狀對(duì)角矩陣劃分為若干個(gè)小帶狀對(duì)角矩陣;
[0009](4)將各個(gè)小帶狀對(duì)角矩陣分配到GPU的各個(gè)線程,結(jié)合殘余矩陣求解得到融合區(qū)域中各個(gè)像素點(diǎn)相對(duì)于克隆區(qū)域中相應(yīng)像素點(diǎn)的初始像素補(bǔ)償值;
[0010](5)將融合區(qū)域中所有像素點(diǎn)相對(duì)于克隆區(qū)域中相應(yīng)像素點(diǎn)的初始像素補(bǔ)償值作為原始線性系統(tǒng)的初始輸入,通過(guò)直接法迭代得到融合區(qū)域中所有像素點(diǎn)相對(duì)于克隆區(qū)域中相應(yīng)像素點(diǎn)的最終像素補(bǔ)償值;
[0011](6)以融合區(qū)域中各個(gè)像素點(diǎn)相對(duì)于克隆區(qū)域中相應(yīng)像素點(diǎn)的最終像素補(bǔ)償值與源圖像中該像素點(diǎn)的像素值的和作為融合區(qū)域中相應(yīng)像素點(diǎn)的像素值,完成圖像的無(wú)縫克隆。[0012]所述步驟(1)中源圖像中的克隆區(qū)域與目標(biāo)圖像中的融合區(qū)域的大小和形狀相同。
[0013]無(wú)縫克隆法的關(guān)鍵是,尋找一個(gè)函數(shù)滿足目標(biāo)圖像中克隆區(qū)域(融合區(qū)域)的邊界條件,且目標(biāo)圖像中克隆區(qū)域的梯度域盡可能與源圖像的梯度域相同。
[0014]所述步驟(5)中通過(guò)直接法迭代得到融合區(qū)域中所有像素點(diǎn)相對(duì)于克隆區(qū)域中相應(yīng)像素點(diǎn)的最終像素補(bǔ)償值,即將內(nèi)部迭代輸出的克融合區(qū)域中所有像素點(diǎn)相對(duì)于克隆區(qū)域中相應(yīng)像素點(diǎn)的最終像素補(bǔ)償值作為原始線性系統(tǒng)的初始輸入。
[0015]本發(fā)明的圖像無(wú)縫克隆方法,使用梯度域方法構(gòu)建泊松方程,并得到原始線性系統(tǒng)方程,對(duì)原始線性系統(tǒng)的系數(shù)矩陣進(jìn)行分解,產(chǎn)生大小大致相同的帶狀對(duì)角矩陣和殘余矩陣。根據(jù)克隆區(qū)域的形狀將帶狀對(duì)角矩陣劃分為小帶狀對(duì)角矩陣并分配給GPU的不同線程中進(jìn)行計(jì)算,充分利用了 GPU的數(shù)據(jù)并行處理能力,大大提高了運(yùn)算速率,使實(shí)時(shí)圖像處理成為可能,且內(nèi)存消耗低,可擴(kuò)展到廣泛的運(yùn)用程序中。且通過(guò)將泊松方程產(chǎn)生的線性系統(tǒng)方程的系數(shù)矩陣進(jìn)行分解,對(duì)每一個(gè)分解得到的小型矩陣采用并行處理迭代操作,并在得到融合區(qū)域中各個(gè)像素點(diǎn)的初始像素補(bǔ)償值,將所有像素點(diǎn)的初始像素補(bǔ)償值作為原始系統(tǒng)的初始值(即輸入)代入原始線性系統(tǒng)方程直接求解,在外部迭代器中執(zhí)行一個(gè)直接法計(jì)算全解,當(dāng)外部迭代收斂時(shí),完成求解,可以克服直接法和迭代法的缺點(diǎn):比直接解決器的可擴(kuò)展性更好,比傳統(tǒng)預(yù)處理迭代解決器更健壯。
[0016]所述步驟(3)中根據(jù)公式:
[0017]A=D+R
[0018]將原始線性系統(tǒng)的系數(shù)矩陣A劃分為帶狀對(duì)角矩陣D和殘余矩陣R,具體如下:將系數(shù)矩陣A的每一行的第一個(gè)和最后一個(gè)不為零的元素設(shè)為零,得到帶狀對(duì)角矩陣D,保留系數(shù)矩陣A中每一行的第一個(gè)和最后一個(gè)不為零的元素,其余值設(shè)為零,得到殘余矩陣R。
[0019]所述步驟(3)通過(guò)以下步驟將帶狀對(duì)角矩陣劃分為若干個(gè)小帶狀對(duì)角矩陣:
[0020](3-1)判斷克隆區(qū)域是否為規(guī)則區(qū)域:
[0021]若克隆區(qū)域?yàn)榫匦?,則克隆區(qū)域?yàn)橐?guī)則區(qū)域,
[0022]否則,克隆區(qū)域?yàn)椴灰?guī)則區(qū)域;
[0023](3-2)根據(jù)判斷結(jié)果進(jìn)行如下操作:
[0024](a)對(duì)規(guī)則區(qū)域,將帶狀對(duì)角矩陣劃分為若干個(gè)小帶狀對(duì)角矩陣;
[0025](b)對(duì)不規(guī)則區(qū)域,確定所述帶狀對(duì)角矩陣中每一行的帶寬,并確定最大帶寬Wmax,從第一行開(kāi)始逐行進(jìn)行寬度累加直至:
[0026]
【權(quán)利要求】
1.一種基于矩陣分解的圖像無(wú)縫克隆方法,其特征在于,包括: (1)根據(jù)源圖像中克隆區(qū)域的梯度域和目標(biāo)圖像中融合區(qū)域的梯度域構(gòu)建泊松方程,并根據(jù)泊松方程得到對(duì)應(yīng)的拉普拉斯方程; (2)根據(jù)所述的拉普拉斯方程構(gòu)建原始線性系統(tǒng)和原始線性系統(tǒng)方程; (3)對(duì)所述原始線性系統(tǒng)方程的系數(shù)矩陣進(jìn)行分解得到一個(gè)帶狀對(duì)角矩陣和殘余矩陣,并根據(jù)克隆區(qū)域的形狀將所述的帶狀對(duì)角矩陣劃分為若干個(gè)小帶狀對(duì)角矩陣; (4)將各個(gè)小帶狀對(duì)角矩陣分配到GPU的各個(gè)線程,結(jié)合殘余矩陣求解得到融合區(qū)域中各個(gè)像素點(diǎn)相對(duì)于克隆區(qū)域中相應(yīng)像素點(diǎn)的初始像素補(bǔ)償值; (5)將融合區(qū)域中所有像素點(diǎn)相對(duì)于克隆區(qū)域中相應(yīng)像素點(diǎn)的初始像素補(bǔ)償值作為原始線性系統(tǒng)的初始輸入,通過(guò)直接法迭代得到融合區(qū)域中所有像素點(diǎn)相對(duì)于克隆區(qū)域中相應(yīng)像素點(diǎn)的最終像素補(bǔ)償值; (6)以融合區(qū)域中各個(gè)像素點(diǎn)相對(duì)于克隆區(qū)域中相應(yīng)像素點(diǎn)的最終像素補(bǔ)償值與源圖像中該像素點(diǎn)的像素值的和作為融合區(qū)域中相應(yīng)像素點(diǎn)的像素值,完成圖像的無(wú)縫克隆。
2.如權(quán)利要求1所述的基于矩陣分解的圖像無(wú)縫克隆方法,其特征在于,所述步驟(3)通過(guò)以下步驟將帶狀對(duì)角矩陣劃分為若干個(gè)小帶狀對(duì)角矩陣: (3-1)判斷克隆區(qū)域是否為規(guī)則區(qū)域: 若克隆區(qū)域 為矩形,則克隆區(qū)域?yàn)橐?guī)則區(qū)域, 否則,克隆區(qū)域?yàn)椴灰?guī)則區(qū)域; (3-2)根據(jù)判斷結(jié)果進(jìn)行如下操作: Ca)對(duì)規(guī)則區(qū)域,將帶狀對(duì)角矩陣劃分為若干個(gè)小帶狀對(duì)角矩陣; (b)對(duì)不規(guī)則區(qū)域,確定所述帶狀對(duì)角矩陣中每一行的帶寬,并確定最大帶寬Wmax,從第一行開(kāi)始逐行進(jìn)行寬度累加直至:
3.如權(quán)利要求2所述的基于矩陣分解的圖像無(wú)縫克隆方法,其特征在于,所述步驟(3-2)中對(duì)于規(guī)則區(qū)域,所述的小帶狀對(duì)角矩陣的個(gè)數(shù)等于GPU的內(nèi)核數(shù)。
4.如權(quán)利要求3所述的基于矩陣分解的圖像無(wú)縫克隆方法,其特征在于,所述步驟(4)包括以下步驟: (4-1)采用丟棄奇數(shù)行策略將殘余矩陣近似為近似殘余矩陣; (4-2)并將各個(gè)小帶狀對(duì)角矩陣分配到GPU的不同線程進(jìn)行內(nèi)部迭代得到融合區(qū)域中各個(gè)像素點(diǎn)相對(duì)于克隆區(qū)域相應(yīng)像素點(diǎn)的初始像素補(bǔ)償值。
5.如權(quán)利要求4所述的基于矩陣分解的圖像無(wú)縫克隆方法,其特征在于,所述步驟(4-2)中的任意一個(gè)小帶狀對(duì)角矩陣內(nèi)部迭代如下: (4-21)將當(dāng)前小帶狀對(duì)角矩陣擴(kuò)展為與原始系數(shù)矩陣大小相同的矩陣作為當(dāng)前小帶狀對(duì)角矩陣的近似矩陣; (4-22)將所述的近似矩陣和近似殘余矩陣代入原始線性系統(tǒng)方程得到當(dāng)前小帶狀對(duì)角矩陣對(duì)應(yīng)的近似線性系統(tǒng)方程:
6.如權(quán)利要求5所述的基于矩陣分解的圖像無(wú)縫克隆方法,其特征在于,所述步驟(4-21)中擴(kuò)展時(shí)令比當(dāng)前小帶狀對(duì)角矩陣中多出的元素為零。
7.如權(quán)利要求6所述的基于矩陣分解的圖像無(wú)縫克隆方法,其特征在于,所述步驟(4-22)中原始線性系統(tǒng)方程的常數(shù)項(xiàng)向量b中的各個(gè)分量的取值由對(duì)應(yīng)像素點(diǎn)的位置確定,其中第i個(gè)分量4的取值如下: 若對(duì)應(yīng)的像素點(diǎn)Pi不在源圖像克隆區(qū)域的邊界上,則bi=0 ; 否則:bi=G(P1)-1(Pi), 其中,G (Pi)為像素A Pi在目標(biāo)圖像中的像素值,I (Pi)為像素點(diǎn)Pi在源圖像中的像素值。
【文檔編號(hào)】G06T1/00GK103839220SQ201410072592
【公開(kāi)日】2014年6月4日 申請(qǐng)日期:2014年2月28日 優(yōu)先權(quán)日:2014年2月28日
【發(fā)明者】張丹, 董建鋒, 張大龍, 李盼, 趙磊, 許端清 申請(qǐng)人:浙江大學(xué)