一種基于蟻群算法的血管三維路徑規(guī)劃方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及的是一種基于蟻群算法的血管三維路徑規(guī)劃方法,屬于血管三維路徑 規(guī)劃技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 血管介入手術(shù)具有出血少,創(chuàng)傷小,恢復(fù)快的優(yōu)點(diǎn),因此在血管疾病的治療上得到 廣泛應(yīng)用。目前全國(guó)大部分醫(yī)院的血管介入手術(shù)還是依靠外科醫(yī)生徒手操作導(dǎo)管導(dǎo)絲并借 助X射線(xiàn)等醫(yī)學(xué)成像技術(shù)和虛擬現(xiàn)實(shí)等計(jì)算機(jī)輔助技術(shù)完成手術(shù)。在有限的技術(shù)條件下, 從醫(yī)生的操作水平、手術(shù)的危險(xiǎn)性、術(shù)后并發(fā)癥等因素考慮,術(shù)中通常選用較粗的主動(dòng)脈作 為手術(shù)路徑,不考慮其他可能的最優(yōu)路徑。
[0003] 血管三維路徑規(guī)劃是在三維幾何空間內(nèi),尋找一條從手術(shù)切口到病灶部位的一條 最優(yōu)路徑,是一種全局規(guī)劃問(wèn)題,是術(shù)前規(guī)劃的重要手段。血管內(nèi)三維路徑規(guī)劃的關(guān)鍵技術(shù) 是血管中心線(xiàn)的提取和導(dǎo)航路徑的規(guī)劃。提取中心線(xiàn)的方法有拓?fù)浼?xì)化法、距離變換法、勢(shì) 能場(chǎng)法、基于水平集法和基于分割的方法等。導(dǎo)航路徑規(guī)劃方面,隨著智能算法的興起,有 學(xué)者采用Dijkstra算法和A星算法在提取的血管中心線(xiàn)上搜索到兩點(diǎn)之間的最短路徑。但 這些方法在規(guī)劃過(guò)程中并沒(méi)有考慮到血管的其他特性。
[0004] 蟻群算法是仿生學(xué)中群體智能算法之一,它是1991年由意大利學(xué)者M(jìn).Dorigo等 人受到真實(shí)世界中螞蟻覓食的行為的啟發(fā)后而提出。算法核心即螞蟻能以更高的概率選中 殘留信息素濃度最高的路徑,越來(lái)越多的螞蟻會(huì)被吸引到這條路徑上,形成一種正反饋原 理來(lái)找到一條離食物源最短的路徑。目前國(guó)內(nèi)外基于蟻群算法的三維路徑規(guī)劃主要集中在 無(wú)人機(jī)、潛水器、三維管道、機(jī)器人等方面,暫沒(méi)有文獻(xiàn)將蟻群算法應(yīng)用在血管三維路徑規(guī) 劃方面。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于針對(duì)現(xiàn)有血管路徑規(guī)劃技術(shù)存在的問(wèn)題和不足,提供一種基于 蟻群算法的三維路徑規(guī)劃方法,該方法在血管中心線(xiàn)提取的基礎(chǔ)上采用螞蟻偵察算法,通 過(guò)改進(jìn)蟻群算法,并綜合考慮導(dǎo)管直徑、血管長(zhǎng)度、直徑、曲率和撓率輔助外科醫(yī)生規(guī)劃手 術(shù)的最優(yōu)路徑。
[0006] 為達(dá)到上述目的,本發(fā)明的構(gòu)思是:對(duì)CTA醫(yī)學(xué)影像數(shù)據(jù)進(jìn)行血管建模并提取中 心線(xiàn),在給定起始點(diǎn)的血管中心線(xiàn)網(wǎng)絡(luò)中在此基礎(chǔ)上采用螞蟻偵察算法,通過(guò)改進(jìn)蟻群算 法,綜合導(dǎo)管直徑和血管其他特性,如血管長(zhǎng)度、最小直徑、最大曲率和最大撓率因素進(jìn)行 全局路徑規(guī)劃。
[0007] 根據(jù)本發(fā)明的構(gòu)思,本發(fā)明采用以下技術(shù)方案實(shí)現(xiàn): 一種基于蟻群算法的血管三維路徑規(guī)劃方法,其特征在于操作步驟如下:1數(shù)據(jù)導(dǎo)入、 2血管建模、3血管中心線(xiàn)提取、4建立血管中心線(xiàn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、5螞蟻偵察算法、6參數(shù)初 始化、7啟發(fā)式信息計(jì)算、8概率選擇、9信息素動(dòng)態(tài)揮發(fā)、10信息素增量計(jì)算、11信息素更 新、12規(guī)劃結(jié)束判斷、13結(jié)果輸出。
[0008] 所述步驟1數(shù)據(jù)導(dǎo)入:導(dǎo)入一組完整的醫(yī)學(xué)CTA圖像數(shù)據(jù)(DIC0M); 所述步驟2血管建模:將導(dǎo)入的CTA圖像數(shù)據(jù)采用基于3D水平集的方法進(jìn)行血管建 模; 所述步驟3血管中心線(xiàn)提?。簩⒔⒌难苣P筒捎没赩oronoi圖和Eikonal方程 的方法提取血管中心線(xiàn),并求得最大內(nèi)切球半徑R; 所述步驟4建立血管中心線(xiàn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu):根據(jù)中心線(xiàn)提取結(jié)果建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu), 確定結(jié)點(diǎn)和邊的數(shù)量,并計(jì)算各段路徑的距離、最大曲率、最大撓率和最小直徑; 4-1距離計(jì)算,采用第一類(lèi)曲線(xiàn)積分來(lái)計(jì)算空間曲線(xiàn)的長(zhǎng)度。假設(shè)參數(shù)化形式的空間 曲線(xiàn)方程為 因此可得空間曲線(xiàn)的距離公式為:
4-2最大曲率計(jì)算,曲率(curvature)就是針對(duì)曲線(xiàn)上某個(gè)點(diǎn)的切線(xiàn)方向角對(duì)弧長(zhǎng)的 轉(zhuǎn)動(dòng)率算出中心線(xiàn)上每個(gè)點(diǎn)曲線(xiàn)的曲率,中心線(xiàn)的曲率反映了血管彎曲的程度,而曲率越 大則血管彎曲程度越大,必將增加導(dǎo)管通過(guò)的難度,降低血管的可通過(guò)性。對(duì)于參數(shù)化形式 空間曲線(xiàn)方程的曲率計(jì)算為:
根據(jù)此公式計(jì)算該路徑上每個(gè)點(diǎn)的曲率并求得該路徑的最大曲率義_* ; 4-3最大撓率計(jì)算,撓率(torsion)的絕對(duì)值度量了曲線(xiàn)上鄰近兩點(diǎn)的次法向量之間 的夾角對(duì)弧長(zhǎng)的變化率,中心線(xiàn)上的撓率可以反映出血管扭曲的程度,對(duì)于盆腔內(nèi)血管的 扭曲程度是比較大的,而撓率越大血管扭曲程度越大,也將增加導(dǎo)管通過(guò)的難度,降低血管 可通過(guò)性,降低安全系數(shù)。對(duì)于參數(shù)化形式空間曲線(xiàn)方程的撓率計(jì)算為:
根據(jù)此公式計(jì)算該路徑上每個(gè)點(diǎn)的撓率并求得該路徑的平均曲率祖_; 4-4最小直徑計(jì)算,根據(jù)最大內(nèi)切球半徑R可計(jì)算中心線(xiàn)上每個(gè)點(diǎn)的直徑D,由此計(jì) 算各路徑上的最小直徑假設(shè)手術(shù)導(dǎo)管的直徑為?,要求這段血管路徑的最小直徑 A以保證導(dǎo)管能夠穿過(guò)血管; 所述步驟5螞蟻偵察算法:確定起始點(diǎn),執(zhí)行具有自我復(fù)制功能的螞蟻偵察算法。
[0009] 由于血管網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)不是一個(gè)完全圖,有的結(jié)點(diǎn)之間不存在回路,必然存在一 些端結(jié)點(diǎn)。若螞蟻在搜尋過(guò)程中,走到了一個(gè)端結(jié)點(diǎn)而并非終點(diǎn)時(shí),要么就直接退出尋路, 要么就退回到端結(jié)點(diǎn)的上一結(jié)點(diǎn)繼續(xù)尋路。若選擇前者,雖然會(huì)加快收斂,但是欠缺全局考 慮,過(guò)早退出;若選擇后者,雖然從全局考慮,但會(huì)降低算法效率。因此,本發(fā)明在確定起始 點(diǎn)后,讓螞蟻先對(duì)整個(gè)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)進(jìn)行偵察,區(qū)分并去除這類(lèi)非終點(diǎn)端結(jié)點(diǎn)后再執(zhí)行蟻 群算法。這類(lèi)偵察螞蟻具備自我復(fù)制功能,在偵察過(guò)程中可以根據(jù)頂點(diǎn)V的度數(shù)N,即邊數(shù), 相應(yīng)自我復(fù)制(除了已訪(fǎng)問(wèn)的邊之外),再分別往其他頂點(diǎn)繼續(xù)偵察。
[0010] 5-1根據(jù)起點(diǎn)pp終點(diǎn)s的度數(shù)分別放置對(duì)應(yīng)數(shù)量的螞蟻__,載難_f_ii; 5-2每只螞蟻偵察頂點(diǎn)%時(shí)先將其保存至各自的路由表_^中,做偵察標(biāo)記; 5-3每只螞蟻判斷偵察的頂點(diǎn)%的度數(shù)瞧, 5-3-1若飄_1,則復(fù)制只螞蟻副本,繼續(xù)偵察; 5-3-2若繼^1,則報(bào)告該頂點(diǎn)震::為異常點(diǎn),剔除該點(diǎn),修改其上一頂點(diǎn)職_的度數(shù) ,更新整體網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),進(jìn)入步驟5-4 ; 5-4根據(jù)路由表親.沿原路退回到上一頂點(diǎn)1_,若底:=鳴則執(zhí)行步驟5-3-2 ;若敦雙氣 則進(jìn)入步驟5-5 ; 5-5若所有頂點(diǎn)都已偵察完,則終止偵察,進(jìn)入?yún)?shù)初始化6 ;否則進(jìn)入步驟5-3 ; 所述步驟6參數(shù)初始化:初始化各參數(shù),如設(shè)置螞蟻數(shù)量M,信息素強(qiáng)度常量羅,迭代總 數(shù),導(dǎo)管直徑麵,將螞蟻置于初始位置; 所述步驟7啟發(fā)式信息計(jì)算:?jiǎn)l(fā)式函數(shù)對(duì)算法的收斂性和穩(wěn)定性有著重要的影響, 在蟻群算法中,啟發(fā)式信息S-般是兩點(diǎn)之間距離的反比,即?_,本發(fā)明規(guī)劃路徑的標(biāo)準(zhǔn) 是手術(shù)安全和路徑最優(yōu),因此路徑規(guī)劃中不僅要考慮到血管的長(zhǎng)度最大曲率和最 大撓率__,還要考慮到血管的最小直徑纏im,啟發(fā)式信息定義為
_|||:表不t時(shí)刻結(jié)結(jié)點(diǎn)的啟發(fā)信息;_:_|:和__|_為點(diǎn)的三 維坐標(biāo)表示這條路徑的最小直徑,表示導(dǎo)管直徑,要求表示這條的 路徑長(zhǎng)度表示這段路徑的平均曲率,,表示這段路徑的平均撓率。
[0011] 所述步驟8概率選擇:設(shè)有職螞蟻,於結(jié)點(diǎn),表示塒刻位于某結(jié)點(diǎn)崩 螞蟻數(shù)量,則M= 2:^^ 。在蟻群算法的每一步路徑選擇中,螞蟻按照概率決定下一 步往哪條路上移動(dòng)。
[0012] 給(t)表不第射刻螞蟻袖點(diǎn)艱動(dòng)至U點(diǎn)屬概率,_|綱鐵,:麵__:,,::_-.::|5[&表 示螞蟻下一步可以選擇的節(jié)點(diǎn),輸表示螞蟻曾經(jīng)訪(fǎng)問(wèn)過(guò)的節(jié)點(diǎn);_表示信息素啟發(fā)因子,表 示殘留信息素量在螞蟻運(yùn)動(dòng)時(shí)所起的作用,值越大說(shuō)明螞蟻更傾向于選擇其它螞蟻經(jīng)過(guò)的 路徑,螞蟻之間的協(xié)作能力越強(qiáng);|r表示期望值啟發(fā)因子,表明啟發(fā)信息在螞蟻選擇路徑時(shí) 的受重視程度,值越大,狀態(tài)轉(zhuǎn)移規(guī)律越接近貪心規(guī)則。表示_?刻點(diǎn)點(diǎn)I徑 上的信息素。
[0013] 所述步驟9信息素動(dòng)態(tài)揮發(fā):信息素?fù)]發(fā)速度會(huì)隨著時(shí)間的推移受到溫度、濕度 等因素而變化,是一個(gè)動(dòng)態(tài)的變化的過(guò)程,越復(fù)雜的路徑,啟發(fā)信息越小,揮發(fā)速度越快,信 息素殘留越少,因此信息素的揮發(fā)系數(shù)f隨著啟發(fā)式信息%(t)的變化而動(dòng)態(tài)揮發(fā),所有螞 蟻到達(dá)終點(diǎn)后,按如下關(guān)系計(jì)算,
Pqftj表示t時(shí)刻在I到J路徑上的揮發(fā)系數(shù),|g_表示t時(shí)刻I到J路徑上的信息 素,表示t時(shí)刻所有路徑上的啟發(fā)信息,k表示某只螞蟻在t時(shí)刻所經(jīng)過(guò)的路徑 數(shù)。
[0014] 所述步驟10信息素增量計(jì)算:信息素更新模型是基本蟻群算法的隨機(jī)搜索與快 速收斂重要環(huán)節(jié)。本發(fā)明針對(duì)問(wèn)題本身的全局性最優(yōu)要求,采用蟻周模型;考慮到血管最小 直徑和導(dǎo)管直徑在手術(shù)中的影響,修改蟻周模型如下:
_為信息素強(qiáng)度常量,是螞蟻在一個(gè)循環(huán)中在所經(jīng)過(guò)的路徑上釋放的信息素的總量, 在一定程度上影響著算法的收斂速度;要求血管路徑的最小直徑表示第 只螞蟻在此次循環(huán)中所經(jīng)過(guò)的路徑長(zhǎng)度,根據(jù)每只螞蟻在其路由表中的結(jié)果計(jì)算。
[0015] 所述步驟11信息素更新:初始時(shí)刻各路徑上的信息素量是相等的,當(dāng)螞蟻完成一 次循環(huán)后,信息素會(huì)隨著時(shí)間的推移逐漸揮發(fā),因此要對(duì)信息素濃度要進(jìn)行更新,在螞蟻進(jìn) 入下一個(gè)循環(huán)之前對(duì)相府路徑卜的信息素做加下審新,
弩##|_信息素動(dòng)態(tài)揮發(fā)系數(shù),是信息素動(dòng)態(tài)殘留因子,11#_:#表 示第m只螞蟻在本次循環(huán)中在路徑(I,J)上留下的信息素量,表示本次循環(huán) 當(dāng)中所有經(jīng)過(guò)路徑(I,J)的螞蟻留下的信息素增量。
[0016] 所述步驟12規(guī)劃結(jié)束判斷:當(dāng)達(dá)到最大迭代次數(shù)則退出循環(huán),否則進(jìn)入啟發(fā)式信 息計(jì)算7,繼續(xù)循環(huán); 所述步驟13結(jié)果輸出:整理路由表輸出結(jié)果。
[0017] 本發(fā)明與現(xiàn)有技術(shù)相比較,具有如下顯而易見(jiàn)的突出實(shí)質(zhì)性特點(diǎn)和顯著優(yōu)點(diǎn): (1)本發(fā)明將蟻群算法應(yīng)用到血管三維路徑規(guī)劃技術(shù)領(lǐng)域。
[0018] (2)本發(fā)明改進(jìn)了蟻群算法中的啟發(fā)式信息模型,綜合考慮了導(dǎo)管直徑、血管長(zhǎng) 度、最小直徑、最大曲率和最大撓率,提高了術(shù)前規(guī)劃路徑的可靠性,保證了導(dǎo)管的通過(guò)性。
[0019] (3)本發(fā)明改進(jìn)了蟻群算法中的信息素增量模型,結(jié)合了血管最小直徑和導(dǎo)管直 徑在規(guī)劃中的影響,加快了算法的收斂。