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