汪 祥,陳 柏,鞠 鋒
(南京航空航天大學機電學院,江蘇 南京 210016)
在腹腔鏡手術(shù)中,醫(yī)生在患者腹部切開小口,在每個切口點經(jīng)套管插入各種外科器械和內(nèi)窺鏡。監(jiān)視器實時顯示內(nèi)窺鏡拍攝的圖像,醫(yī)生依據(jù)監(jiān)視器提供的視覺信息,操控手術(shù)器械以執(zhí)行手術(shù)任務。在此過程中,內(nèi)窺鏡通常只提供二維圖像信息,無法提供手術(shù)器械三維空間中的位姿信息。而在機器人輔助腹腔鏡手術(shù)中,快速而準確地獲取手術(shù)器械三維位姿信息是機器人手術(shù)走向智能化的前提[1]。
目前,在國外,Krupa等[2-3]以激光光斑和LED燈作為標記,解決了在人體器官附近控制手術(shù)器械動作的問題;Speidel等[4]提出了一種基于不同的視覺特征來分割手術(shù)器械尖端的方法,并在跟蹤手術(shù)器械的過程中使用了多對象粒子濾波;Haase等[5]使用3-D ToF/RGB內(nèi)窺鏡跟蹤手術(shù)器械,實驗中工具尖端的定位誤差在4 mm以內(nèi);Khoiy等[6]研制了一種持鏡機器人的自主控制系統(tǒng),能夠通過處理術(shù)中實時影像實現(xiàn)自動追蹤無標記的手術(shù)器械;Shin等[7]研究了一種使用單個相機配合標記物的手術(shù)器械追蹤技術(shù),此技術(shù)可以獲取腹腔鏡手術(shù)器械位置、抓取角度和橫滾角度,用于腹腔鏡手術(shù)模擬。
在國內(nèi),潘晗倩[8]研究了在X射線圖像中動態(tài)追蹤穿刺針并繪制其延長線的方法,采用了霍夫直線檢測算法來檢測穿刺針的直線特征并據(jù)此動態(tài)更新圖像中的參考線;劉大鵬等[9]設計了一套基于單目視覺和設置固定標識的手術(shù)導航系統(tǒng);胡天策等[10]利用透視投影成像的幾何關(guān)系以及內(nèi)窺鏡在術(shù)中移動的位移差,提出一種基于內(nèi)窺鏡單目視覺測量距離和病灶大小的方法;趙子健[11]提出了一種腹腔鏡手術(shù)器械三維實時跟蹤方法,該方法以手術(shù)器械插入點和環(huán)形標記的位置測量為基礎,并與器械的深度估計相結(jié)合;于凌濤等[12-13]建立了一種基于3D動態(tài)視覺窗口引導的器械臂運動算法。
本研究參考了已有的手術(shù)器械位姿測量方法,針對腹腔鏡手術(shù)器械位姿測量,提出了一種快速的位姿測量算法并設計了手術(shù)器械位姿測量方案。
本文采用常見的單目內(nèi)窺鏡和中心透視投影相機為研究對象。針對在腹腔鏡手術(shù)場景下視覺測量手術(shù)器械位姿,解PnP問題是一個可行的方法,即“給定n個控制點的空間相對位置并給定由射影中心點到n個控制點的角度,求取射影中心點到各個控制點的距離”[14]。共線PnP問題如圖1所示。
圖1 共線PnP問題
空間中點P1,P2,…,Pi,…,Pn在同一直線上,已知任一點Pi與編號起點P1的距離為λi,其圖像坐標為(ui,vi),相機的內(nèi)參數(shù)矩陣為K。設編號起始點在相機坐標系下的位置向量為t,直線的單位方向向量為r,根據(jù)相機內(nèi)參數(shù)模型可以得到:
(1)
式(1)可以改寫為
(2)
式(2)可以轉(zhuǎn)換為經(jīng)典的優(yōu)化問題:
min‖Arr+Att‖,rTr=1
(3)
當n≥3時,式(3)有解,其解是由對稱矩陣E的奇異值分解得到的。
(4)
Ar和At定義為
應用以上算法測量手術(shù)器械的位姿需要相機內(nèi)參數(shù)、標記的幾何參數(shù)和標記點在圖像上的投影。在得到標記點的空間位置之后,仍需要根據(jù)標記點和手術(shù)器械之間的幾何關(guān)系得到手術(shù)器械的三維表達。所以本方案由相機標定及畸變校正、標記設計、圖像處理、標記點三維位置計算和手術(shù)器械的三維表達5個部分組成。
相機標定就是利用世界坐標系中的已知三維點坐標和它在圖像中的像點坐標之間的投影關(guān)系,計算相機的內(nèi)外參數(shù)的過程。本研究采用常用的Bouguet工具箱進行相機的標定工作,標定過程見文獻[15]。
相機標定結(jié)果如表1所示。其中,fx,fy是以像素為單位的焦距;(u0,v0)是主點坐標。
表1 相機內(nèi)參數(shù)標定結(jié)果
由表1的數(shù)據(jù)可以得到相機的內(nèi)參數(shù)矩陣為
(5)
相機的畸變系數(shù)如表2所示。在此次標定中設置了k5不標定,即默認k5=0。
表2 相機畸變系數(shù)標定結(jié)果
(6)
(7)
相機畸變校正過程中,真實圖像I和畸變圖像Id之間的關(guān)系為I(u,v)=Id(ud,vd)。首先根據(jù)式(8)可以得到真實圖像像素(u,v)對應的歸一化坐標(xn,yn),再根據(jù)式(7)可以得到畸變后的歸一化坐標(xd,yd),根據(jù)式(9)得到對應的畸變圖像像素(ud,vd)。此時得到的ud和vd可能并非整數(shù),需要經(jīng)過插值處理才能得到像素值Id(ud,vd),最后賦值給I(u,v)。循環(huán)以上過程,找遍真實圖像中所有的像素點,即可獲得真實圖像。
(8)
(9)
為方便在內(nèi)窺鏡圖像中檢測標記,設置標記顏色為人體中不常見的綠色,測得圓環(huán)直徑d=5 mm,λ1=0,λ2=10 mm,λ3=20 mm ,將標記貼于手術(shù)器械上,如圖2所示。
圖2 帶有標記的手術(shù)器械
體外仿真環(huán)境下相機拍攝并校正畸變的一副圖像I。將圖像的色彩通道分離:R=I(:,:,1)、G=I(:,:,2)和B=I(:,:,3)。根據(jù)式(10)得到二值圖像W,其中,T1、T2是可以調(diào)節(jié)的閾值,可以根據(jù)具體的狀態(tài)進行調(diào)節(jié),影響T1、T2的因素主要是光照和綠色標記所用的顏料。處理圖3中的圖像時,取T1=20、T2=20。
圖3 內(nèi)窺鏡在體外實驗中拍攝的圖像
(10)
處理二值圖像W的目的是獲取標記區(qū)域的形心。首先分割出二值圖像中的八連通區(qū)域,再計算各個連通區(qū)域的面積,篩選出其中面積最大的3個區(qū)域即為3個綠色標記的圖像區(qū)域,對區(qū)域中的圖像坐標求平均,得到各自連通區(qū)域的形心。用最小二乘法將3個形心擬合成1條直線,該直線可視為手術(shù)器械直桿影像的中心線,如圖3所示。圖3中白色點為標記區(qū)域的形心,經(jīng)過白色點的直線為直桿影像的中心線。
在前文所述算法中,輸入所得到的3個標記區(qū)域的形心坐標,相機內(nèi)參數(shù)矩陣K,以及λ1、λ2、λ3,可以輸出標記點所在直線的位置向量t和對應的單位方向向量r。進而求得P1、P2和P3在相機坐標系下的位置向量為CP1、CP2、CP3。
本研究使用手術(shù)器械直桿中心線的方程h=M+ql來表達手術(shù)器械的位姿。其中,h是直桿中心線上任意一點的位置向量;M是直桿中心線上某固定點的位置向量;l是直桿中心線的單位方向向量;q是位置向量為M的點沿著l方向與位置向量為h的點的距離。
手術(shù)器械與不同坐標系的示意圖如圖4所示。
圖4 手術(shù)器械位姿視覺測量
(11)
(12)
(13)
(14)
在算得Cl和CM之后,根據(jù)式(11)和式(12)可以求得Bl和BM。
對于手術(shù)器械直桿中心線上任意一點,幾何測量得到其沿著l方向與M點的距離q0,即可求得其在相機坐標系下的位置向量Ch0=CM+q0Cl,以及其在機器人基座坐標系下的位置向量Bh0=BM+q0Bl。
本實驗旨在體外模擬環(huán)境下對上述手術(shù)器械位置測量方法的可行性以及測量精度進行測試。
實驗裝置由PC(個人電腦)、UR5機器人、直桿腹腔鏡和腹腔鏡模擬訓練模塊等組成,如圖5所示。直桿腹腔鏡的分辨率為1 920×1 080。PC通過USB和直桿鏡頭相連,通過網(wǎng)線和UR5機器人相連。PC上運行MATLAB作為主控制器,通過Image Acquisition Toolbox獲取直桿鏡頭拍攝到的圖像,通過和UR5機器人的Socket通信,獲取UR5機器人末端法蘭坐標系相對于基坐標系的位置和姿態(tài)。
圖5 腹腔鏡手術(shù)機器人持鏡臂實驗平臺
精度是多次重復測量某一量時,各測定值之間相一致的程度,表征測量的隨機誤差大小。為度量上述測量方案的精度,在保持手術(shù)夾鉗和機器人基坐標系相對靜止的情況下,從不同的角度拍攝手術(shù)器械的圖像,并根據(jù)第2節(jié)所述方案計算Bl和BM。本研究根據(jù)式(15)計算M點位置測量的平均偏差,式中Xi為BM的各次測量結(jié)果。Bl在X、Y、Z3個方向的分量為lx、ly、lz。式(16)中的xi分別代入lx、ly、lz的各次測量結(jié)果,得到lx、ly、lz測量結(jié)果的標準差σx、σy、σz。式(15)和式(16)中,n是測量的總次數(shù),i=1,2,…,n。
(15)
(16)
實驗中,從不同的角度分別拍攝了14幅圖像,即n=14,分別基于各個圖像和相應的機器人的位姿,計算了M點在機器人基坐標系下的坐標BM和直桿中心線的方向向量在機器人基坐標系下的表示Bl。
14次測量得到M點在機器人基坐標系下的位置。計算每個M點測量位置與平均測量位置的距離如圖6所示。14個偏差距離的最大值為16.3 mm,最小值為1.2 mm,平均偏差為5.5 mm,測量位置與平均測量位置的距離的標準差為3.8 mm。
圖6 點M測量位置與平均測量位置的距離
直桿的單位方向向量Bl在機器人基坐標系下的3個分量分別為lx、ly、lz,如圖7所示。lx的最大值為-0.12,最小值為-0.23,平均值為-0.18,標準差σx=0.027。ly的最大值為0.99,最小值為0.97,平均值為0.98,標準差σy=0.005。lz的最大值為0.03,最小值為-0.12,平均值為-0.05,標準差σz=0.043。
圖7 Bl在X、Y、Z方向的分量大小
鑒于測量的誤差較大,猜測是相機參數(shù)和機器人手眼參數(shù)標定不夠準確的原因。故而重新使用Bouguet工具箱對相機參數(shù)進行了標定,在標定過程中選取了25幅更為清晰的圖像。得到了不確定度更小,并且考慮了相機畸變參數(shù)k5(即k5≠0)的相機參數(shù)。重新在30個持鏡位姿下測量了手術(shù)器械的位置和方向,得到手術(shù)器械的位置和方向的測量結(jié)果如圖8和圖9所示,測量結(jié)果的密集程度更高。在圖8中,測量點的平均偏差為1.3 mm,較于圖6中的結(jié)果精度更高。在圖9中,3個方向的分量的測量結(jié)果的標準差σx、σy、σz分別為0.003、0.001和0.011,較圖7中的測量結(jié)果波動更小,測量精度更高。
圖8 相機重新標定后點M測量位置與平均測量位置的距離
圖9 相機重新標定后Bl在X、Y、Z 3個方向分量大小測量結(jié)果
由此可以看出測量精度的主要影響因素有相機內(nèi)參數(shù)的標定精度以及相機畸變模型的準確性。進一步地,可以推測UR5機器人以及本文所介紹的視覺測量算法引起的誤差并不占主導。
此外,由于本文所做實驗都是在光照條件良好、背景干擾少的條件下進行的,在體內(nèi)的環(huán)境中還要考慮光照不足、血污和霧氣等惡劣條件引起的誤差。
本文提出了一種基于求解共線PnP問題的手術(shù)器械位姿視覺測量方法,包括相機標定及畸變校正、標記設計、圖像處理、標記點三維坐標計算和手術(shù)器械的三維表達,并對所提出的視覺測量方法進行了精度測試實驗,實現(xiàn)了提取腹腔鏡的二維圖像信息并將其轉(zhuǎn)換為手術(shù)器械在三維空間中的位姿信息。對測量的誤差進行了分析,發(fā)現(xiàn)相機內(nèi)參數(shù)的標定精度對測量精度影響較大。
測量結(jié)果表明,目前所提出的手術(shù)器械位姿檢測方法的精度尚不滿足指引機器人自主進行準確的手術(shù)操作如切除和縫合等的要求。但該方法仍然具有一定的應用價值。一方面測量精度可以被提高以達到應用要求,可以通過使用更高精度的相機、更準確的參數(shù)標定等方式提高測量的精度。另一方面,本研究在對手術(shù)器械的位姿精度要求不高的場合,如腹腔鏡手術(shù)過程中的視覺追蹤和手術(shù)器械的輔助定位等具有良好的應用前景。