高欽泉,黃偉萍,杜 民,韋孟宇,3,柯棟忠
(1.福州大學 物理與信息工程學院,福州 350116; 2.福州大學 福建省醫療器械與醫藥技術重點實驗室,福州 350116;3.澳門大學 模擬與混合信號超大規模集成電路國家重點實驗室,澳門 999078)
微創手術具有創傷小、疼痛輕、恢復快的優越性,在臨床中受到廣泛的歡迎[1]。通過內窺鏡等監控系統,醫生可以通過小孔在人體內施行手術,對人體傷害小,達到理想的手術效果。在傳統的盆腔微創手術導航中,醫生通過從術前影像(如CT(Computed Tomography)、MRI(Magnetic Resonance Imaging)等)來確定病灶的位置并規劃手術實施方案,通過內窺鏡從微小的孔洞獲取即時的手術視覺信息,引導手術的推進。醫生觀察解剖結構和手術器械的操作過程都是通過內窺鏡攝像頭傳輸至顯示器來進行,然而,傳統的內窺鏡通常只能為醫生提供二維的臟器表面的視覺信息,醫生在手術過程中很難能夠準確地掌握器官內或空腔臟器內部解剖結構的三維深度信息,尤其對于早期腫瘤的定位就更加困難,這對于準確地操作器械提出了更大的挑戰和要求。在手術過程中,醫生通常能看到的只是暴露在內窺鏡視覺下的器官表面,要開展精確的手術,醫生往往需要回顧并參考復雜的人體解剖學結構,結合大腦中記憶的術前擬定的手術方案路徑,并借助內窺鏡捕獲的實時畫面來尋找定位手術的目標,從而引導手術的開展。在盆腔內實施手術過程中,內窺鏡只提供狹窄的二維視覺信息,由于人體內部器官組織錯綜復雜,很難根據當前二維視覺信息獲取當前手術刀在人體當中準確的位置,有可能造成手術刀“迷路”。如果不能準確找到病灶部位,容易造成癌變組織切除過少或者正常組織切除過多,造成腫瘤殘留或者對器官功能的過多破壞,極大降低手術效果。因此,臨床醫生對術中借助先驗知識的視覺導航有著急切的需求。目前,已經不同形式的手術導航技術應用于手術當中。大體可以分成兩類:1)基于標記點的手術導航,如基于生物標記點的光學跟蹤[2]、基于人工標記的手術導航儀[3],但這類技術過度依賴于標記點;2)基于無標記點的手術導航,如電磁導航跟蹤[4],但其設備較為復雜及昂貴,術中X射線透視[5]、CT成像輔助導航[6]等但實時影像會給病人甚至醫生帶來高強度的輻射。目前還沒有一套較簡便的設備能應用于復雜的盆腔微創手術,實現精準視覺導航的系統。為此,本文提出并設計了一種基于立體視覺的盆腔微創手術增強現實(Augmented Reality, AR)導航仿真系統,充分利用術前CT影像重建病人的三維組織信息,并通過增強現實(AR)技術渲染顯示在手術屏幕上,為醫生提供“透視”的視覺導航,為臨床的手術應用提供技術支持。
在仿真手術開始進行時,首先手動調整術前重建的模型使之與拍攝的患者仿真手術視頻中相對應的骨盆目標區域大致對齊,然后利用基于可視點顏色一致性的2D/3D配準的配準技術進行微調,實現立體內窺鏡下2D手術視野與3D骨盆模型的初始化配準;再利用雙目立體視覺跟蹤算法對立體內窺鏡進行實時跟蹤,獲取內窺鏡的運動信息;最后,根據內窺鏡多自由度的變換矩陣來實現術前3D模型與手術視野的實時融合和增強現實顯示,將術前3D模型與手術視野畫面準確融合并成像于手術顯示屏,從而給醫生視覺輔助,以定位當前手術刀的位置以及到手術目標的方向和距離,為手術的實施提供良好的視覺導航作用。
整個盆腔微創手術AR導航系統的具體實施方法如下:
1)首先進行雙目內窺鏡的標定[7],以獲得內窺鏡的內參數矩陣K,畸變矩陣Q,左右內窺鏡的相對姿態。
2)其次,根據病人術前CT影像,利用ITK-SNAP系統分割出骨盆模型,依據第一步標定后雙目內窺鏡的參數,使用開放圖形庫(Open Graphics Library, OpenGL)渲染在本導航系統顯示界面當中。
3)然后,先手動調整模型,使之與目標區域大致對齊,再利用本文配準算法進行微調,達到更精確的配準。待配準對齊后,將骨盆模型的表面頂點覆蓋在內窺鏡2D圖像的目標區域,達到增強現實的視覺融合。
4)最后,利用雙目視覺的左右視圖信息來實現雙目內窺鏡的移動軌跡的實時跟蹤,根據內窺鏡前后幀移動的多自由度變換矩陣,對術前3D模型進行位置更新,與內窺鏡視野下的仿真手術畫面進行實時融合顯示在導航系統界面,達到增強現實的視覺導航效果。
由于真實手術場景下的環境錯綜復雜,且內窺鏡真實軌跡很難獲取,無法直接在手術中進行算法驗證,本文提出一種盆腔手術虛擬雙目內窺鏡下仿真視頻的制備方法,可以獲取具有真實紋理的手術場景的仿真視頻和內窺鏡的真實軌跡。
本文截取骨盆腫瘤的微創手術中真實場景畫面作為骨盆3D模型的紋理,使用紋理坐標軸UV展開對3D模型進行紋理貼圖,形成具有真實手術紋理信息的骨盆3D模型。模型依據虛擬內窺鏡的內參數進行投影變換到2D平面,形成視頻幀。先預設虛擬內窺鏡的軌跡,作為內窺鏡的真實軌跡;再根據模型的模型矩陣與視圖矩陣的關系,對骨盆模型作旋轉平移變換,與此同時,錄制當前渲染畫面。通過仿真虛擬內窺鏡的移動軌跡,利用該模型制作一套具有真實軌跡的仿真骨盆手術視頻。
實現術前3D模型與真實手術視覺場景中的目標物體完全融合在一起,是實現增強現實至關重要的步驟。而真實手術視覺通常都是2D圖像,需要將病人術前重建的3D模型與術中手術的2D視野進行配準。本文提出了一種在雙目內窺鏡視覺下的3D模型顏色一致性的配準方法。通過優化雙目內窺鏡的姿態,使得雙目視覺左右視圖下3D模型的可視點的顏色距離達到最小,來實現3D模型到2D手術視野配準的目的。
1.3.1 基于顏色一致性的內窺鏡姿態初始化配準
在理想狀態下,同一個頂點從不同角度或不同時刻觀測的色彩空間不變,即具有顏色一致性[8]。因此,如圖1所示,在雙目內窺鏡的左右相機姿態下各自姿態觀測骨盆3D模型,當頂點經投影映射到二維坐標系統中所對應的左右視圖二維手術畫面具有一致的色彩空間時,3D模型能夠與目標物體配準對齊。基于上述的假設,本文提出的3D模型與真實物體2D視覺初始化融合配準的目標能量方程可定義為:

(1)


圖1 基于立體視覺的顏色一致性
然而,在實際場景中,光照及物體表面的反射率等是影響顏色一致性的重要因素。因此,本文采用自然環境光為光源,以降低光照條件對顏色一致的影響,同時,以左右視圖顏色RGB的平均值作為參考值。在為使術前3D模型和真實2D手術視覺能夠配準對齊,設3D模型在左相機坐標系下的視圖矩陣為Tcm,式(1)的能量方程可進一步表示為:

(2)

當初始化配準對齊后,3D模型與真實物體2D視覺完全融合,此時內窺鏡的初始位置可根據當前模型視圖矩陣獲得,3D模型姿態Tcm與真實相機姿態Tcamera的關系為:Tcamera=(Tcm)-1。
在真實場景中,由于光照角度的影響,導致同一個頂點從不同角度觀察可能會不一致,但是,由于本文使用的是雙目內窺鏡,其左右鏡頭離得較近且內參數較為相近,受光照角度影響較小,同時觀察一個頂點的顏色信息相差不大,而且式(2)旨在尋找全部可視點的顏色誤差全局最優。
1.3.2 3D模型的可視點快速檢測法
雙目立體視覺的顏色一致性是基于3D模型的可視點進行計算和優化的。常見的可視點尋找法有Z緩沖器算法等[9],但時間復雜度較高。本文提出一種基于雙視圖顏色模型的可視點快速尋找法。術前重建的3D模型是由多個三角片組成,對每個三角片進行編號,按序號將三角片渲染成不同顏色,形成一個帶顏色的3D模型,通過OpenGL的3D圖形渲染引擎投影幾何關系,生成2D投影圖像Iproject,如圖2所示,Iproject是由W×H個像素點組成的,并且每個像素點的顏色RGB是已知的。

圖2 顏色模型
根據OpenGL的投影變換原理,求出3D模型的頂點Pi在屏幕上面的坐標值(u,v)T:
(3)

如圖3(a)所示,三角片的三個頂點分別按投影變換關系投影到二維平面,若投影區域包含一個或多個整型像素點,輸出第一個最先被搜尋到的整型像素點坐標值(u,v)T。圖3(b)展示搜尋算法,步驟如下。
輸入:二維平面投影點p1:(u1,v1),p2:(u2,v2),p3:(u3,v3)。
輸出:p:(u,v)。
步驟1 分別計算L1,L2,L3直線的一般方程aix+biy+ci=0(i=1,2,3)。其中:a1=v2-v1,b1=u1-u2,c1=-(a1u1+b1v1);a2=v2-v3,b2=u3-u2,c2=-(a2u2+b2v2);a3=v3-v1,b3=u1-u3,c3=-(a3u3+b3v3)。
步驟2 計算z1=a2u1+b2v1+c2;z2=a3u2+b3v2+c3;z3=a1u3+b1v3+c1。
步驟3 計算xmin=min(ui),xmax=max(ui),ymin=min(vi),ymax=max(vi),i=1,2,3。
步驟4i=ceil(xmin),j=ceil(ymin)。判斷a2i+b2j+c2與z1,a3i+b3j+c3與z2,a1i+b1j+c1與z3是否同正負號。若是,則(i,j)在投影區域里,輸出(u=i,v=j)T,算法結束;否則, 繼續下一步。
步驟5i++,j++,如果i≤xmax,j≤ymax轉步驟4;否則(u,v)T由最近鄰插值得到。
搜尋算法得出(u,v)T,判斷在Iproject對應顏色RGB與其顏色模型上的三角片顏色是否一致。若是一致的,則認為三角片的三個頂點在當前姿態為可視的;反之不是。
模型表面的三角片投影區域受視點遠近影響,當視點較遠時,此時三角片投影區域沒有包含一個整型像素點,此時,用傳統的插值方法(如雙線性插值(Bilinear Interpolation, BI)、最近鄰插值(Nearest Neighbor, NN)、部分體積插值(Partial Volume, PV))得到投影點的RGB(本文使用的是BI),再作判斷該三角片是否可視。

圖3 三角片可視點判斷
基于顏色一致性的配準是基于雙目立體內窺鏡共同的可視點,所以可視點需在左右內窺鏡都能被觀測到。如圖4所示,圖4(a)可視點能夠同時被左右內窺鏡觀測,圖4(b)中不可視點是由于只被左內窺鏡觀測。

圖4 模型可視點檢測
目前有很多基于視覺的跟蹤算法被提出,主要分成兩類: 基于特征點的跟蹤,如PTAM(Parallel Tracking And Mapping)[10]、ORB-SLAM(Oriented FAST and Rotated BRIEF Simultaneous Localization And Mapping)[11-12]等; 基于像素點的跟蹤,如DTAM(Dense Tracking And Mapping)[13]、SVO(Semi-direct monocular Visual Odometry)[14-15]等。無論是基于特征點還是像素點,提出相對應的”點”都是為了相機定位準備。相機定位問題屬于狀態估計問題,主流使用的方法有兩種: 基于濾波的方法,如MonoSLAM(Mono Simultaneous Localization And Mapping)[16],但定位精度不高;基于優化的方法,這也是近幾年常用的方法。基于優化的方法分成兩個階段: 構圖和跟蹤[13],常用集束調整(Bundle Adjustment, BA)[17]。由于有向的Fast算子和可旋轉的BIREF描述子(Oriented FAST and Rotated BRIEF, ORB)匹配速度快,且具有較穩定的旋轉不變性,因此本文選用ORB作為特征點提取,使用立體BA來優化相機位姿。

(4)


(5)
其中,e(k,Xj)=ρ(xj-π(RkXj+tk)),Ωk為滑動窗口中全部的三維點。

圖5 局部地圖跟蹤
實驗環境如下,操作系統為ubuntu 16.04的臺式機,中央處理器(Central Processing Unit, CPU)為Intel Core i7-4790 CPU 3.60 GHz×8,隨機存取存儲器(Random Access Memory, RAM)為8 GB,圖形處理器(Graphics Processing Unit, GPU)為NVIDIA GeForce GTX 960,顯存為2 GB。開發環境為Qt 5.9.1,并使用C++以及OpenGL實現。
仿真視頻采用的雙目相機參數來自倫敦帝國理工學院Hamlyn Centre的雙目內窺鏡參數:1)http://hamlyn.doc.ic.ac.uk/vision/data/Dataset9/Left_Camera_Calibration_Intrinsic.txt; 2)http://hamlyn.doc.ic.ac.uk/vision/data/Dataset9/Right_Camera_Calibration_Intrinsic.txt; 3)http://hamlyn.doc.ic.ac.uk/vision/data/Dataset9/camera_extrinsic.txt。如圖6所示,采用CT影像在ITK-SNAP重建的3D模型,使用UV展開對空白的骨盆模型進行紋理貼圖。紋理圖選自盆腔手術視頻(http://pan.baidu.com/s/1eSBy2X0),圖7的盆腔手術視頻截圖與圖6(b)的表面紋理具有較高的相似度,說明紋理模型能夠為仿真手術提供具有類似真實紋理的信息。

圖6 骨盆3D模型

圖7 手術視頻截圖
在初始配準前,需對模型進行可視點檢測,如圖8所示,模型頂點總共有340 074個,設置成不同顏色,然后按左右內窺鏡的相機參數渲染模型,檢測到左右視圖共同的可視點有21 474個,耗時62 ms。
將配準融合完全的模型分別繞X、Y、Z軸從偏離-30°旋轉到偏離30°,每次旋轉0.1°;沿X、Y、Z軸從-20 mm平移到20 mm,每次平移0.1 mm。然后按式(2)計算出可視點在左右視圖投影點顏色的均方差,如圖9(a)和圖9(b)所示。兩幅圖可以說明,存在模型視圖矩陣Tcm使得式(2)達到全局最優的狀態。

圖8 可視點檢測效果

圖9 頂點在左右視圖的投影點均方差
式(2)的優化是非線性優化。梯度下降法如Newton、Gauss-Newton和Levenberg-Marquardt等非線性優化算法雖然在非線性優化有良好的效果,但是經實驗測試,式(2)在使用梯度下降法優化的過程中很容易陷入局部最優狀態,故不適合使用梯度下降法進行優化。本文使用無導數優化(derivative-free optimization)中的二次逼近約束優化(Bound Optimization BY Quadratic Approximation, BOBYQA)[18]進行優化, 而且這是一種有約束的無導數優化。將優化變量變成6維的李代數形式:Tcm=eξ∧。Tcm為4×4矩陣,但ξ為6維向量,前三維為旋轉向量,后三維為平移向量,優化的變量轉化為6個維度。BOBYQA優化將置信區間作為步長,然后沿著每一維度變化,更新二次模型,最后根據二次模型求出最優解。由圖9可以得出在0值(ground truth)投影點均方差并不為零,這是由于部分頂點投影顏色是由插值得到,導致左右視圖頂點投影顏色無法精確相等,觀察圖9定義可視點的全部可視點的顏色均方差小于5,則認為3D模型與手術2D畫面配準融合完全。配準效果如圖10(b)。

圖10 配準效果
本文使用g2o框架[19]的Levenberg-Marquardt梯度下降法對相機姿態進行優化。采用此算法在仿真視頻上進行跟蹤,共700幀,跟蹤軌跡與真實軌跡顯示如圖11所示,實線表示真實軌跡,虛線是本文跟蹤算法的軌跡,兩條軌跡非常接近,均方根誤差為2.393 3 mm,說明跟蹤軌跡能夠提供精度較高的位置信息。
圖12、圖13、圖14分別表示軌跡圖的Z-X視圖、Y-X視圖、Z-Y視圖,從中可以看出,Z-X視圖的兩條軌跡基本吻合;Y-X視圖、Z-Y視圖的最大偏差約為5 mm。進一步驗證了該算法估計的位置信息精度高。

圖11 軌跡三維顯示

圖12 Z-X 視圖

圖13 Y-X視圖
為了進一步驗證跟蹤算法的效果,將重建的3D模型利用3D打印機打印出實體模型,并涂上血肉顏色,形成仿真的打印模型。模擬手術的過程,拍攝一段手術視頻,在該系統上進行測試。跟蹤一段時間后,效果顯示如圖15所示。從視覺觀測,重建的模型與打印模型的融合程度較高,說明具有良好的AR顯示效果。

圖14 Z-Y視圖

圖15 AR顯示
本文設計開發了一套基于立體視覺的盆腔微創手術增強現實(AR)導航仿真系統,在本系統中提出了一種基于立體視覺的2D/3D初始化配準融合,并且實現了基于ORB的立體視覺跟蹤算法來估計相機的軌跡。立體內窺鏡觀測骨盆時,利用左右內窺鏡的相對位姿來實現顏色一致性,以完成骨盆模型的初始化配準。通常術前圖像(CT或MRI)等模態影像有較高的分辨率和視覺效果,待重建的3D模型與2D畫面完全融合,能夠很好地為醫生提供AR顯示,能更快、更準確地確定病灶的位置。基于立體視覺的跟蹤算法,在不借助其他硬件設備時,能夠為醫生提供較準確的位置信息。仿真實驗結果顯示,AR盆腔手術導航系統具有良好的初始化配準、融合,能夠較準確地跟蹤內窺鏡,為臨床醫生實施手術提供視覺輔助。
本文的仿真視頻制備能夠為不易獲取真實盆腔手術軌跡的場景提供一種驗證算法準確性的途徑,在其他手術場景也同樣適用。在未來的工作中,將結合實際臨床手術來開展深入驗證工作,并進一步改進真實手術場景中雙目內窺鏡的視覺跟蹤算法,根據實際臨床數據設計AR手術導航的顯示方法,為基于雙目視覺的手術導航技術研究奠定基礎。
[19] KüMMERLE R, GRISETTI G, STRASDAT H, et al. g2o: a general framework for graph optimization [EB/OL]. [2017- 12- 10]. http://www.willowgarage.com/sites/default/files/g2o-icra11.pdf.