欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于GPU硬件加速的GraphCuts三維圖像分割方法

文檔序號:6482366閱讀:447來源:國知局

專利名稱::基于GPU硬件加速的GraphCuts三維圖像分割方法
技術(shù)領(lǐng)域
:本發(fā)明涉及一種圖像處理
技術(shù)領(lǐng)域
的三維圖像分割方法,具體是一種基于GPU硬件加速的GraphCuts三維圖像分割方法。
背景技術(shù)
:圖像分割是數(shù)字圖像處理領(lǐng)域的重要技術(shù),是計算機視覺技術(shù)的基礎(chǔ)。以往對二維圖像分割的研究成果相對較多,而三維圖像在醫(yī)學(xué)、工業(yè)制造、地質(zhì)勘探等領(lǐng)域也均有重要應(yīng)用,因而對三維圖像分割的研究,其意義同樣重大。GraphCuts是近年來備受關(guān)注的圖像分割框架之一,具有很好的精度和靈活性,在實際應(yīng)用中倍受青睞。GraphCuts的缺陷在于,由于它將圖像分割轉(zhuǎn)化為流網(wǎng)絡(luò)的最大流最小割問題來解決,所以計算量較大,對于像素數(shù)更多的三維圖像尤為明顯。經(jīng)對現(xiàn)有技術(shù)文獻的檢索發(fā)現(xiàn),國外有NandanDixit等人(NandanDixit,RenaudKeriven,NikosParagios,"GPU-Cuts:CombinatorialOptimisation,GraphicProcessingUnitsandAdaptiveObjectExtraction(GPU圖割組合優(yōu)化,圖形處理單元與對象分割)",法國信息技術(shù)與系統(tǒng)教學(xué)與研究中心CERTIS研究報告,2005)提出的利用GPU加速的GraphCuts圖像分割方法,但這種方法只能對二維圖像進行分割,而對三維圖像的分割無能為力。國內(nèi)的程廣斌等人(程廣斌,馬承華,郝立巍,"基于圖形加速器加速的醫(yī)學(xué)圖像分割研究",醫(yī)療衛(wèi)生裝備第29巻第2期,2008)利用GPU實現(xiàn)了基于吉布斯隨機場(Gibbsrandomfield)的醫(yī)學(xué)圖像分割,吉布斯隨機場的思想與GraphCuts類似,但他們的方法仍然局限在二維分割上,無論其數(shù)據(jù)存儲方式還是程序?qū)崿F(xiàn),都無法擴展到二維圖像分割上。
發(fā)明內(nèi)容本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提供一種利用GPU硬件加速的GraphCuts三維圖像分割方法,利用GPU具有高速的實數(shù)運算特性和流式并行架構(gòu),彌補4現(xiàn)有技術(shù)在三維圖像支持性和計算效率上的缺陷。本發(fā)明是通過以下技術(shù)方案實現(xiàn)的本發(fā)明基于GraphCuts分割框架精度高、易擴展的優(yōu)點,在GPU中實現(xiàn)了三維圖像分割。本發(fā)明利用GPU硬件的高速并行浮點運算特性,通過GPU中的三維紋理作為數(shù)據(jù)存儲介質(zhì),將GPU分割的應(yīng)用范圍從二維擴展到三維。其原理是,對原始圖像建立圖結(jié)構(gòu),并將其存儲在GPU的三維紋理數(shù)據(jù)中,然后在GPU中對圖結(jié)構(gòu)求取最小割。本發(fā)明包括如下步驟首先,將原始三維圖像載入為GPU中的三維紋理,并根據(jù)原始圖像,調(diào)用初始化著色器程序來建立初始圖結(jié)構(gòu),在GPU中生成相應(yīng)的紋理數(shù)據(jù);然后,對紋理數(shù)據(jù)中的圖結(jié)構(gòu),在GPU著色器程序中進行推進-重標(biāo)號操作實現(xiàn)最大流最小割的迭代計算,并使用GPU中遮擋查詢技術(shù)作為迭代結(jié)束條件;最后,根據(jù)最小割的結(jié)果得到分割后的前景區(qū)域,并在對應(yīng)像素上作標(biāo)記。所述的初始圖結(jié)構(gòu),是存儲于GPU中的三維紋理,具體是根據(jù)原始圖像生成GraphCuts算法所需要的網(wǎng)絡(luò)圖數(shù)據(jù)結(jié)構(gòu),并對這三個紋理進行賦值。其中需要設(shè)定的參量包括每個像素與源點和匯點的連接容量,以及每個像素與x軸、y軸、z軸共6個方向上的相鄰像素的連接容量,初始盈余,以及初始高度函數(shù)值。其中,每個像素/7與源點s的連接容量按下式計算每個像素P與匯點t的連接容量按下式計算色通道圖像中即為灰度),p^-J』為兩像素顏色差的模,lp-qll為兩像素間的距離。腳(^|-&%"〕和~0|^0&/'-)為像素顏色人分別作為背景或前景時的概率,它們的值是通過對用戶交互時預(yù)先設(shè)定的前景和背景像素統(tǒng)計得出;o參數(shù)的值可取為全圖像中相鄰像素的顏色差的期望,艮P:盈余表示每個像素上入流與出流的差,初始時為0;高度函數(shù)表示像素在圖中與匯點間的最短距離,初始時設(shè)為l。圖結(jié)構(gòu)在GPU中以三個紋理數(shù)據(jù)的方式進行存儲,其中的數(shù)據(jù)組織方式見附表l。所述的初始化著色器程序,是指GPU中的一段片元著色器程序。它以對應(yīng)于原始三維圖像的紋理為輸入,輸出表示圖結(jié)構(gòu)的三個三維紋理,并對這三個紋理進行賦值。并按照初始圖結(jié)構(gòu)中提到的賦值方式向這三個紋理寫入數(shù)據(jù)。所述的推進-重標(biāo)號算法的GPU實現(xiàn),具體為利用GPU片元著色器程序,并發(fā)地對每個像素作推進或重標(biāo)號操作。其中,推進操作為首先從源點向像素推流,以充滿源點和像素間的連接邊,并更新像素的盈余;然后若像素盈余不為0,則從當(dāng)前像素向匯點推進,若像素盈余仍不為0,則將盈余向鄰近像素推進。若像素在當(dāng)前迭代中沒有推進操作,則啟動重標(biāo)號操作將像素的高度函數(shù)值更新為=H+mi^(/i(qr)〗Bp々,c'所述的使用GPU中遮擋查詢技術(shù)作為迭代結(jié)束條件,具體是指,每次迭代過程中,首先將深度緩存中所有像素的深度值置為0.5,然后對仍需進行迭代計算的像素,寫入深度值0,使其通過GPU的深度測試;而對不需進行迭代計算的像素,寫入深度值l。再利用GPU遮擋查詢獲得通過深度測試的像素總數(shù),當(dāng)總數(shù)為零時則結(jié)束迭代。所述的根據(jù)最小割的結(jié)果得到分割后的前景區(qū)域,具體是指,將迭代結(jié)束后高度函數(shù)值大于設(shè)定閾值或盈余大于零的像素歸為分割出的前景區(qū)域內(nèi)的像素。本發(fā)明基于GraphCuts分割框架精度高,支持三維分割的優(yōu)點,利用GPU硬件的高速并行浮點運算特性,彌補了GraphCuts三維分割時間效率低的問題,同時也是對現(xiàn)有GraphCuts的GPU實現(xiàn)方法向三維上的擴展和改進,所提出的GraphCuts中圖結(jié)構(gòu)在GPU中的表示方式,也可以在GraphCuts的其他應(yīng)用領(lǐng)域中使用。圖1為對一幅圖像建立圖結(jié)構(gòu)的示意其中s為虛擬添加的源點,t為虛擬添加的匯點,灰色圓代表圖像像素;源點到像素,像素到匯點,以及相鄰像素間有邊相連,邊的容量分別為Qp,Cw以及虛線代表圖的一個割,它將圖像中的像素分為兩部分,分別為前景像素和背景像素。圖2為基于GPU加速的GraphCuts分割方法的流程圖;其中,活動像素是指盈余大于0且高度函數(shù)值小于一個閾值的像素。圖3為分割前后的對其中某一片圖像的二維顯示效果圖;其中(a)為分割前的圖像,(b)為分割圖像。圖4為使用本方法對盆腔中的股骨頭進行分割前后的三維繪制效果圖;其中(a)為分割前的繪制效果,(b)為分割后對前景和背景部分分別進行繪制再融合后的效果。具體實施例方式下面結(jié)合附圖對本發(fā)明的實施例作詳細說明本實施例在以本發(fā)明技術(shù)方案為前提下進行實施,給出了詳細的實施方式和具體的操作過程,但本發(fā)明的保護范圍不限于下述的實施例。本實施例首先將原始三維圖像載入到GPU中的三維紋理texlmg,并根據(jù)該紋理生成表示圖結(jié)構(gòu)的二個紋理texLinkl,texLink2和texTerm,然后使用著色器程序進行推進-重標(biāo)號操作來迭代計算圖的最小割,迭代結(jié)束條件是圖中沒有活動像素,最后根據(jù)圖的最小割得到圖像分割結(jié)果,并對分割出的像素寫入標(biāo)記。本實施例包括如下步驟1.數(shù)據(jù)初始化。首先將原始三維圖像載入為三維紋理,對于圖3、4中的醫(yī)學(xué)7圖像使用LUMINANCE紋理格式;對于彩色圖像,使用RGB紋理格式;然后調(diào)用用于初始化操作的GPU片元著色器程序來生成用于存儲圖結(jié)構(gòu)的紋理數(shù)據(jù),該程序的輸入為texlmg紋理,輸出為texLinkl、texLink2、texTerm三個紋理數(shù)據(jù)。三個輸出紋理均為RGB格式,三個分量的含義如表1所示。該著色器程序并發(fā)地在圖像的每個像素上執(zhí)行,執(zhí)行內(nèi)容為設(shè)置三個輸出紋理的各個分量上的數(shù)值。其中,texLink0和texLinkl存放的都是朝向相鄰像素的邊的容量,其值可按如下公式計算》—、一H2V嚴(yán)p'g./其中,p為當(dāng)前像素,《為相鄰像素,/p為像素戶的顏色,—^為像素間的間距,^為一個可設(shè)置的參數(shù),在本例中,將其設(shè)為全圖像中相鄰像素的顏色差的期望,即其中E(S)表示S的數(shù)學(xué)期望。將來自源點的流的部分或全部推向匯點,可以將源點邊容量與匯點邊容量合并為一個量,即它們的差,texTerm中只用一個分量R來表示,其值可按如下公式計算term.R二〖n--^其中,/M:/」"ofc/')表不在對象中像素;7的亮度4出現(xiàn)的概率,i^(Jpl"M^")為在背景中亮度/p出現(xiàn)的概率,在本實施例中,它們的值通過對一系列已分割圖像進行統(tǒng)計獲得。盈余為像素的入流與出流之差,初始時設(shè)為0。高度函數(shù)表示從當(dāng)前像素開始通過容量不為0的邊,到底匯點所需要經(jīng)過的邊的數(shù)目,初始時設(shè)為l。2.迭代進行推進-重標(biāo)號操作。首先需要將深度緩存清空為1.0,然后調(diào)用著色器程序進行計算。用于推進-重標(biāo)號操作的片元著色器程序,其輸入和輸出均為8texLink0,texLinkl,texTerm三個紋理數(shù)據(jù)。該著色器程序并發(fā)的在圖像的每個像素上執(zhí)行,其作用是更新三個紋理各個分量上的數(shù)值。具體執(zhí)行步驟為(1)若texTerm.R>0(texTerm.R表示texTerm紋理在當(dāng)前像素對應(yīng)坐標(biāo)下的R分量,下同),則從源點推進同等的流至當(dāng)前像素,并修改盈余-texTerm.G+二texTerm.R,texTerm.R=0(2)處理從相鄰像素推向當(dāng)前像素的入流檢查所有相鄰像素,若某相鄰像素q滿足texTerm(q).G〉0,texTerm(q).B二texTerm.B+1,且texLink(q,p)〉0(texLink(q,p)為從q到p的邊的容量,可根據(jù)q與p的相對位置從texLinkl或texLink2中的對應(yīng)分量獲取),則可從像素q向當(dāng)前像素推進流,對應(yīng)的更新方式為-texTerm.Gmin(texTerm(q).G,texLink(q,p))。(3)若texTerm.R<0且texTerm.G〉0,即指向匯點的邊的容量未被充滿,且盈余大于O,則向匯點推進流-flow二min(-texTerm.R,texTerm.G),texTerm.R+=flow,texTerm.G_二flow,texTerm.B二1(4)從當(dāng)前像素向相鄰像素推進流檢查所有相鄰像素,若某相鄰像素q滿足texTerm(q).B=texTerm.B-1,texLink(p,q)〉0,則可從當(dāng)前像素向像素q推進流,對應(yīng)的更新方式為fl=min(texTerm.G,texLink(p,q))texTerm.G_=fl,texLink(p,q)-=fl(5)若上述(1)到(4)中,沒有任何一項操作對當(dāng)前像素實施,則進行重標(biāo)號操作在相鄰像素中,找到一個連接邊大于0(texLink(p,q)〉0)且高度函數(shù)值最小的像素Ain,然后更新當(dāng)前像素的高度函數(shù)值為texTerm.B二texTerm(qmin).B+1(6)經(jīng)過(1)到(5)的操作后,若當(dāng)前像素滿足活動像素條件,即texTerm.G>0且texTerm.B<thl則輸出當(dāng)前像素的深度值為O,否則輸出為l(上式中thl是一個可設(shè)定的閾值參數(shù),在本例中設(shè)為三維圖像在xyz三方向上的像素數(shù)的最大值)。在每次迭代完成后,利用GPU的遮擋查詢技術(shù)獲取通過深度測試的像素數(shù)N。9若N〉0,則繼續(xù)迭代,否則完成整個推進-重標(biāo)號迭代過程,轉(zhuǎn)入下一步。3.輸出分割標(biāo)記。分割標(biāo)記用一個與原始圖像同樣大小的三維紋理存放,且與原始圖像上的像素一一對應(yīng),將它表示為texTag。這一歩所需的著色器程序,其輸入為texTerra,輸出為texTag。它并發(fā)的在每一個像素上執(zhí)行,執(zhí)行內(nèi)容為更新texTag的數(shù)據(jù),具體為若texTerm.G>0或texTerra.B>=thl,則當(dāng)前像素為活動像素,可分割為前景區(qū)域,于是置texTag為1,否則置為0。更新完成后,texTag可用于后續(xù)的體繪制過程。圖3和圖4分別為本例的分割結(jié)果的展示,其分割對象為人體盆腔中的股骨頭。其中圖3為三維圖像的其中一片上的分割效果,而從圖4中可以看出在分割前后三維體繪制效果的差異。表2中顯示了對三組不同規(guī)模的數(shù)據(jù),分別利用GPU和CPU實現(xiàn)的三維GraphCuts分割所需耗費的執(zhí)行時間。表1三維GraphCuts的GPU實現(xiàn)中的紋理數(shù)據(jù)組織方式<table>tableseeoriginaldocumentpage10</column></row><table>表2基于本發(fā)明的程序的執(zhí)行時間與傳統(tǒng)CPU實現(xiàn)方法的對比<table>tableseeoriginaldocumentpage10</column></row><table>權(quán)利要求1.一種基于GPU硬件加速的GraphCuts三維圖像分割方法,其特征在于,包括如下步驟首先,將原始三維圖像載入為GPU中的三維紋理,并根據(jù)原始圖像,調(diào)用初始化著色器程序來建立初始圖結(jié)構(gòu),在GPU中生成相應(yīng)的紋理數(shù)據(jù);然后,對紋理數(shù)據(jù)中的圖結(jié)構(gòu),在GPU著色器程序中進行推進-重標(biāo)號操作實現(xiàn)最大流最小割的迭代計算,并使用GPU中遮擋查詢技術(shù)作為迭代結(jié)束條件;最后,根據(jù)最小割的結(jié)果得到分割后的前景區(qū)域,并在對應(yīng)像素上作標(biāo)記。2.根據(jù)權(quán)利要求1所述的基于GPU硬件加速的GraphCuts三維圖像分割方法,其特征在于,所述初始圖結(jié)構(gòu),是存儲于GPU中的三維紋理,具體是根據(jù)原始圖像生成GraphCuts算法所需要的網(wǎng)絡(luò)圖數(shù)據(jù)結(jié)構(gòu),其中需要設(shè)定的參量包括每個像素與源點和匯點的連接容量,以及每個像素與x軸、y軸、z軸共6個方向上的相鄰像素的連接容量,初始盈余,以及初始高度函數(shù)值。3.根據(jù)權(quán)利要求1所述的基于GPU硬件加速的GraphCuts三維圖像分割方法,其特征在于,所述初始化著色器程序,是GPU中的一段片元著色器程序,它以對應(yīng)于原始二維圖像的紋理為輸入,輸出表示圖結(jié)構(gòu)的三個三維紋理,紋理中的數(shù)據(jù)即表示初始圖結(jié)構(gòu)的參量,它們的組織方式如附表(1)。4.根據(jù)權(quán)利要求1所述的基于GPU硬件加速的GraphCuts三維圖像分割方法,其特征在于,所述初始圖結(jié)構(gòu)和初始化著色器程序中,需要設(shè)定的參量的賦值方式如下像素與源點s的連接容量可按如下公式計算與匯點t的連接容量可按如下公式計算<formula>formulaseeoriginaldocumentpage2</formula>相鄰像素之間的連接容量可按如下公式計算:<formula>formulaseeoriginaldocumentpage3</formula>盈余表示每個像素上入流與出流的差,初始時為0;高度函數(shù)表示像素在圖中與匯點間的最短距離,初始時為l。5.根據(jù)權(quán)利要求1所述的基于GPU硬件加速的GraphCuts三維圖像分割方法,其特征在于,所述推進-重標(biāo)號算法的GPU實現(xiàn),具體為利用專用的GPU片元著色器程序,并發(fā)的對每個像素作推進或重標(biāo)號操作,其中,推進操作為首先從源點向像素推流,以充滿源點和像素間的連接邊,并更新像素的盈余,然后若像素盈余不為O,則從當(dāng)前像素向匯點推進,若像素盈余仍不為0,則將盈余向鄰近像素推進;若像素在當(dāng)前迭代中沒有推進操作,則啟動重標(biāo)號操作將像素的高度數(shù)值更新為與其連通的鄰域像素的高度函數(shù)的最小值。6.根據(jù)權(quán)利要求1所述的基于GPU硬件加速的GraphCuts三維圖像分割方法,其特征在于,所述使用GPU中遮擋查詢技術(shù)作為迭代結(jié)束條件,具體是指,每次迭代過程中,首先將深度緩存中所有像素的深度值置為0.5,然后對仍需進行迭代計算的像素,寫入深度值O,使其通過GPU的深度測試;而對不需進行迭代計算的像素,寫入深度值l;再利用GPU遮擋査詢獲得通過深度測試的像素總數(shù),當(dāng)總數(shù)為零時則結(jié)束迭代。7.根據(jù)權(quán)利要求1所述的基于GPU硬件加速的GraphCuts三維圖像分割方法,其特征在于,所述根據(jù)最小割的結(jié)果得到分割后的前景區(qū)域,具體是指,將迭代結(jié)束后高度函數(shù)值大于設(shè)定閾值或盈余大于零的像素歸為分割出的前景區(qū)域內(nèi)的像素。全文摘要本發(fā)明涉及一種圖像處理
技術(shù)領(lǐng)域
的基于GPU硬件加速的GraphCuts三維圖像分割方法,包括如下步驟首先,將原始三維圖像載入為GPU中的三維紋理,并根據(jù)原始圖像,調(diào)用初始化著色器程序來建立初始圖結(jié)構(gòu),在GPU中生成相應(yīng)的紋理數(shù)據(jù);然后,對紋理數(shù)據(jù)中的圖結(jié)構(gòu),在GPU著色器程序中進行推進-重標(biāo)號操作實現(xiàn)最大流最小割的迭代計算,并使用GPU中遮擋查詢技術(shù)作為迭代結(jié)束條件;最后,根據(jù)最小割的結(jié)果得到分割后的前景區(qū)域,并在對應(yīng)像素上作標(biāo)記。本發(fā)明在速度上有了明顯的提升,適用于三維圖像,所提出的GraphCuts中圖結(jié)構(gòu)在GPU中的表示方式,也可以在GraphCuts的其他應(yīng)用領(lǐng)域中使用。文檔編號G06T7/00GK101493941SQ20091004668公開日2009年7月29日申請日期2009年2月26日優(yōu)先權(quán)日2009年2月26日發(fā)明者杰楊,韋軼群申請人:上海交通大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
五莲县| 太谷县| 黑龙江省| 天等县| 元朗区| 高尔夫| 正定县| 遂川县| 镇安县| 内乡县| 柏乡县| 福建省| 陆河县| 大姚县| 循化| 巴塘县| 台东市| 张家口市| 怀柔区| 丹凤县| 鹤壁市| 历史| 洪江市| 扬州市| 乌鲁木齐县| 江达县| 拜泉县| 化州市| 察隅县| 清水河县| 横山县| 五台县| 北海市| 仪陇县| 汉中市| 黑水县| 明水县| 甘谷县| 伊宁县| 长岛县| 思南县|