馮麗露,康耀龍
(1. 山西大同大學(xué),山西 大同 037009;2. 山西大同大學(xué)計(jì)算機(jī)與網(wǎng)絡(luò)工程學(xué)院,山西 大同 037009)
在醫(yī)學(xué)放射治療診斷中[1],能夠精準(zhǔn)地獲取圖像輪廓線是對放射劑量分布進(jìn)行觀測的重要所在。輪廓線[2]的精準(zhǔn)提取對放射治療有著重要的應(yīng)用價(jià)值。輪廓線提取不僅在醫(yī)學(xué)方面起到重要作用,在礦山等領(lǐng)域也占據(jù)著關(guān)鍵地位,它是礦山采空區(qū)能夠?qū)崿F(xiàn)可視化的前提。由此可見,輪廓線提取在多領(lǐng)域中應(yīng)用廣泛,為了提升輪廓線提取的精準(zhǔn)度,需要對立體圖像任意剖面輪廓線提取問題進(jìn)行研究。
袁雷[3]等人提出基于深度學(xué)習(xí)的跑道前視紅外圖像輪廓線提取方法,該方法首先利用YOLO V2檢測算法對目標(biāo)進(jìn)行提取,根據(jù)跑道位置,采用多尺度線段檢測器對跑道邊框進(jìn)行線段檢測,并將所有檢測線段相互融合,從中提取輪廓線,該方法提取的結(jié)果存有誤差,存在提取耗時(shí)長的問題。曹旭[4]等人提出高精度連續(xù)人臉輪廓提取方法,該方法首先對圖像關(guān)鍵點(diǎn)進(jìn)行連接,連接成一條初始化曲線,根據(jù)它的采樣重疊區(qū)域,將整個(gè)輪廓?jiǎng)澐殖啥鄠€(gè)小區(qū)域,同時(shí)在區(qū)域內(nèi)提取輪廓線,該方法連接效果不完善,存在提取完整度低的問題。聞平[5]等人提出利用原始激光雷達(dá)點(diǎn)云數(shù)據(jù)提取漸進(jìn)式建筑物輪廓線方法,該方法利用漸進(jìn)數(shù)學(xué)形態(tài)學(xué)對原始點(diǎn)云進(jìn)行濾波分離,并對建筑物中的點(diǎn)云進(jìn)行分類,以此對輪廓線進(jìn)行提取,根據(jù)方位角閾值對點(diǎn)云輪廓的關(guān)鍵點(diǎn)進(jìn)行確立,并對輪廓線進(jìn)行簡化和擬合,最終基于輪廓線長度加權(quán)方向?qū)喞M(jìn)行規(guī)則化,實(shí)現(xiàn)最終輪廓線提取。該方法分類效果不明顯,存在與實(shí)際輪廓線匹配誤差多的問題。
為了解決上述方法中存在的問題,提出基于光切法的立體圖像任意剖面輪廓線提取方法。
光切法[6]屬于三維曲面非接觸測量方法,一般來說,被測物體經(jīng)光照后會出現(xiàn)一條光帶,經(jīng)過攝像機(jī)和處理器對圖像進(jìn)行獲取后,對其進(jìn)行處理,就會得到物體的三維輪廓信息,而光切法就是輪廓提取的關(guān)鍵。
要想對立體圖像任意剖面輪廓線進(jìn)行提取,應(yīng)優(yōu)先對光帶進(jìn)行處理,由于CCD攝像機(jī)得到的圖像是整張的,若只對光帶進(jìn)行處理,那么就需要預(yù)處理圖像數(shù)據(jù)。
對獲取的圖像進(jìn)行分割操作,將其劃分成光帶和背景,利用閾值對其分割,同時(shí)計(jì)算出閾值T。將圖像內(nèi)大于T的像素保存下來,而剩余像素均設(shè)置為0。對于閾值T的計(jì)算,采用p-tile參數(shù)算法進(jìn)行獲取,此時(shí)需要處理的光帶如圖1所示。
圖1 待處理的光帶
在圖1中,光帶只是高灰度級的其中一小部分。一般情況下寄存器有256種顏色,當(dāng)灰度級≥5時(shí),255處就會出現(xiàn)一條孤立峰。當(dāng)光帶在圖像中占據(jù)的位置較少并且具有平衡性時(shí),就可以對T值進(jìn)行確立。光帶在分割后經(jīng)常會出現(xiàn)一些噪聲,為了提升輪廓線提取效果,需要對光帶的噪聲進(jìn)行去噪處理。
基于上述預(yù)處理后的圖像及分割完成的光帶,需要對輪廓線進(jìn)行處理。
1)原始立體圖像任意剖面輪廓線插值和排序
為了可以確立光帶中任何位置和方向上的輪廓線,優(yōu)先需要對原始剖面輪廓線進(jìn)行插值[7],其中包括層內(nèi)點(diǎn)插值和輪廓線層內(nèi)插值。
根據(jù)上述輪廓線插值,采用線性插值方法對其進(jìn)行處理。將圖像中需要插值的層內(nèi)間距設(shè)置為1mm,這樣才會提升輪廓線提取的精準(zhǔn)度,但算法的速度也會逐漸下降。因此需要對插值后的輪廓線的高低進(jìn)行排序,當(dāng)插值排序后的輪廓線集合具有足夠數(shù)量的點(diǎn)數(shù)和層數(shù)時(shí),就可以對其進(jìn)行剖切處理。
2)原始斷層輪廓線旋轉(zhuǎn)
如果直接對剖面的輪廓線進(jìn)行剖切,就需要對平面和直線相交處進(jìn)行計(jì)算。為了達(dá)到降低平面與直線相交的目的,提升算法速度,應(yīng)該對立體圖像進(jìn)行旋轉(zhuǎn)處理[8]。
在笛卡爾坐標(biāo)系下,空間中任一平面的平面法向量由X軸正向夾角α、Y軸正向夾角β、Z軸的截距Zcut來確定。這時(shí)平面法向量與Z軸的正向夾角表示為
(1)
式中,γ描述的是夾角。
此時(shí)的平面方程定義為
(2)
這時(shí),斷層輪廓線提取的任意方向標(biāo)記為(α,β),而任意位置Zcut剖面輪廓線就可以轉(zhuǎn)化成α、β和Zcut確定的同一空間平面L和立體圖像A相交的問題。
對相交問題進(jìn)行求解前,首先需要將立體圖像A按照α、β的角度進(jìn)行旋轉(zhuǎn),這時(shí)平面L也會一起旋轉(zhuǎn),令平面L與XOY平面相互平行。具體的操作方式就是將立體圖像中各個(gè)層的輪廓線和平面L以Z軸為準(zhǔn)進(jìn)行旋轉(zhuǎn),得到夾角δ,接著以X軸旋轉(zhuǎn),得到圖像上一點(diǎn)旋轉(zhuǎn)前后的關(guān)系,定義如下
(3)
式中,(x,y,z)描述的是旋轉(zhuǎn)前的坐標(biāo),(x1,y1,z1)描述的是旋轉(zhuǎn)后的坐標(biāo),即cosδ=cosβ/sinγ(0≤δ<360)。
設(shè)置平面L與Z軸旋轉(zhuǎn)后的新截距用Z1進(jìn)行表示,這時(shí)Z=Z1就是平面L的新方程,即Z1=Zcut*cosγ。
根據(jù)上述分析可知,剖面輪廓線就是平面Z=Z1與旋轉(zhuǎn)后的立體圖像A之間的交線,將其構(gòu)建成三維形體。
基于上述對剖面輪廓線的插值、排序、旋轉(zhuǎn)等處理,構(gòu)建了三維形體,采用凸包壓入法對剖面輪廓線進(jìn)行提取。
為了能夠精準(zhǔn)地對輪廓線進(jìn)行提取,應(yīng)優(yōu)先將包絡(luò)在輪廓線外部的交點(diǎn)引入到輪廓線中,以此解決剖面線出現(xiàn)交點(diǎn)復(fù)雜的問題,具體步驟如下所示:
1)首先對點(diǎn)集B={b1,b2,…,bi,…,bn}中的n個(gè)數(shù)據(jù)橫坐標(biāo)的最小點(diǎn)進(jìn)行標(biāo)記,記作b1;以此用作輪廓線的第1個(gè)點(diǎn)。
2)將其余(n-1)個(gè)點(diǎn)與b1連線水平方向夾角余弦值[9]進(jìn)行計(jì)算,從中獲取余弦值最小點(diǎn),以此用作輪廓線的第2個(gè)點(diǎn)。
3)在點(diǎn)集B中其余(n-2)個(gè)點(diǎn)內(nèi),任意一點(diǎn)bi對三角形b1b2bi進(jìn)行構(gòu)建,從中找到最大點(diǎn)bj,以此用作輪廓線的第3個(gè)點(diǎn)b3。
4)將b2對b1進(jìn)行替代,而b3對b2進(jìn)行替代,那么(n-3)個(gè)點(diǎn)中,將步驟(3)重復(fù)進(jìn)行,以此獲取輪廓線下一個(gè)點(diǎn)。
5)b3與b1重合后,就可以暫停對數(shù)據(jù)的搜索,以此形成精準(zhǔn)的邊緣輪廓線。
依據(jù)上述操作,加入剖面輪廓線交點(diǎn)后,會存在兩種不確定性:
1)所有交點(diǎn)都是隨機(jī)分布的,具有不確定性;
2)加入到剖面輪廓線[10]后,剖面形態(tài)就會出現(xiàn)不確定性。
綜上所述,對交點(diǎn)和輪廓線的位置進(jìn)行確立,將交點(diǎn)加入到輪廓線中,以此實(shí)現(xiàn)剖面輪廓線的提取。
凸包壓入法原理:在邊緣輪廓線L1四周的交點(diǎn)應(yīng)引入到剖面線內(nèi),對b1、b2、L1周邊的點(diǎn)進(jìn)行連線。當(dāng)L1的周圍出現(xiàn)交點(diǎn)時(shí),b1b2和交點(diǎn)之間的連線就是鈍角;當(dāng)b1b2與凸包線L2、L3的測點(diǎn)(c4,c5,c6,c7)進(jìn)行連線時(shí)就會產(chǎn)生銳角,通過各個(gè)夾角的大小就可以確立交點(diǎn)的添加位置。輪廓線提取的示意圖如圖2所示。
圖2 輪廓線提取示意圖
具體步驟如下所示:
1)首先找到與b1b2之間夾角最大的點(diǎn),這時(shí)3點(diǎn)夾角的判斷公式定義如下:
(4)
式中,θ代表b1、c1、b2的夾角。當(dāng)余弦值較小時(shí),夾角就會越大,這時(shí)b1和b2之間夾角連線的最大點(diǎn)就由c2來定義。
2)判斷c2的夾角是否為鈍角。如果交點(diǎn)加入到輪廓線時(shí),操作正常,那么b1、b2的夾角就是鈍角,若操作失誤,所有的交點(diǎn)就會加入到其余原始輪廓線內(nèi);判斷夾角的余弦值是否滿足條件,主要原因在于當(dāng)余弦值在0°~180°以內(nèi)時(shí),它的最小余弦值就是夾角的最大點(diǎn)。當(dāng)余弦值為負(fù)數(shù)時(shí),此夾角就是鈍角。通過上述兩點(diǎn)就能夠?qū)2進(jìn)行判斷,根據(jù)判斷結(jié)構(gòu)將其加入到b1b2這條輪廓線中。
3)利用上述流程對交點(diǎn)進(jìn)行判斷,將判斷結(jié)果輸入到與其相對應(yīng)的輪廓線中,并對排序之后的交點(diǎn)進(jìn)行連接,從中取得剖面輪廓線,完成對剖面輪廓線的提取。
通過利用光切法對立體圖像進(jìn)行預(yù)處理后,將分割后的光帶進(jìn)行輪廓線處理,根據(jù)圖像的剖切構(gòu)建成三維形體;通過切面與斷層輪廓線的交點(diǎn),采用凸包壓入法將無序點(diǎn)集用作初始輪廓線,把包絡(luò)于初始輪廓線內(nèi)的點(diǎn)均添加到輪廓線中,從中獲取完整的剖面輪廓線,以此實(shí)現(xiàn)對剖面輪廓線的提取。
為了驗(yàn)證基于光切法的立體圖像任意剖面輪廓線提取方法的整體有效性,需要對該方法進(jìn)行實(shí)驗(yàn)對比測試。
采用基于光切法的立體圖像任意剖面輪廓線提取方法(方法1)、基于深度學(xué)習(xí)的跑道前視紅外圖像輪廓線提取方法(方法2)和利用原始激光雷達(dá)點(diǎn)云數(shù)據(jù)提取漸進(jìn)式建筑物輪廓線方法(方法3)對輪廓線提取進(jìn)行測試對比。
1)設(shè)置輪廓線的長度取值為κ,采用方法1、方法2和方法3分別對輪廓線提取耗時(shí)進(jìn)行對比測試,耗時(shí)越長說明提取速度越慢;耗時(shí)越短說明提取速度越快,測試結(jié)果如圖3所示。
圖3 輪廓線提取耗時(shí)測試
分析圖3中的數(shù)據(jù)發(fā)現(xiàn),隨著輪廓線長度的提升,三種方法消耗的時(shí)間均呈現(xiàn)出上升趨勢。當(dāng)輪廓線為100mm時(shí),三種方法的耗時(shí)相同,而輪廓線逐漸增加后,方法2的輪廓線提取耗時(shí)持續(xù)提升,上升速度高于方法1和方法3,可見方法2的耗時(shí)最高。相較于方法2來說,方法1和方法3的上升速度較緩,方法1的耗時(shí)最低,說明方法1的輪廓線提取速度最快。
綜上所述,方法1的消耗時(shí)間最低,這是因?yàn)榉椒?對輪廓線進(jìn)行提取前,優(yōu)先對立體圖像進(jìn)行預(yù)處理操作,以此提升了輪廓線提取速度,進(jìn)而降低了輪廓線耗費(fèi)時(shí)長。
2)采用方法1、方法2和方法3分別對輪廓線提取完整度進(jìn)行對比測試,測試結(jié)果如表1所示。
表1 輪廓線提取完整度對比測試
分析表1中的數(shù)據(jù)發(fā)現(xiàn),隨著輪廓線的增加,方法1的提取完整度最高,方法3的提取完整度最低。
3)為了驗(yàn)證輪廓線的提取效果,需要對該圖像進(jìn)行輪廓線匹配,將匹配結(jié)果與實(shí)際結(jié)果進(jìn)行對比,匹配效果與實(shí)際效果越吻合,說明輪廓線提取的效果越好,具體測試結(jié)果如圖4所示。
圖4 三種方法與實(shí)際輪廓線匹配對比測試
根據(jù)圖4可以發(fā)現(xiàn),方法1與實(shí)際輪廓線匹配結(jié)果相同,而方法2有一處與實(shí)際結(jié)果不同,方法3有兩處與實(shí)際結(jié)果不同,可見方法2和方法3的提取效果不夠完善,與實(shí)際結(jié)果存有誤差。
輪廓線的提取對工業(yè)發(fā)展及醫(yī)療診斷等領(lǐng)域有著重要作用,針對輪廓線提取存在的問題,提出基于光切法的立體圖像任意剖面輪廓線提取方法。該方法首先采用光切法對圖像進(jìn)行預(yù)處理和分割等操作,根據(jù)立體圖像切面與斷層之間的交點(diǎn),將其添加到輪廓線中,以此取得完整的剖面輪廓線,完成對剖面輪廓線的提取,該方法對剖面輪廓線提取的有效性有著顯著幫助,為今后輪廓線提取方法提供了重要信息基礎(chǔ)。