黃健,殷鋒,袁平,陳彥如
(1.四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065;2.西南民族大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,成都610041;3.重慶市第二師范學(xué)院技術(shù)與信息工程學(xué)院,重慶400067)
計(jì)算機(jī)輔助外科手術(shù)(Computer Assisted Surgery,CAS)是一門新興的研究領(lǐng)域。它通過合理、定量地利用CT、MRI、SPET 等醫(yī)學(xué)診斷設(shè)備提供的多模圖像數(shù)據(jù)和立體手術(shù)導(dǎo)航定位系統(tǒng),輔助外科醫(yī)生進(jìn)行手術(shù)的計(jì)劃和干預(yù)。手術(shù)導(dǎo)航系統(tǒng)根據(jù)采用的空間定位技術(shù),可分為機(jī)械導(dǎo)航系統(tǒng)、超聲導(dǎo)航系統(tǒng)、電磁導(dǎo)航系統(tǒng)和光學(xué)導(dǎo)航系統(tǒng),其中光學(xué)導(dǎo)航系統(tǒng)采用可見光或紅外光成像,使用雙目立體視覺技術(shù)確定空間坐標(biāo),精度較高,是目前手術(shù)導(dǎo)航定位系統(tǒng)的主流方法。
本文設(shè)計(jì)了一種低成本、高精度的光學(xué)手術(shù)器械定位跟蹤系統(tǒng)。在所提出的光學(xué)跟蹤系統(tǒng)中,三個(gè)彩色標(biāo)志小球被安裝在手術(shù)儀器上。本系統(tǒng)使用CAMAR0135-3T16 雙目攝像機(jī),用張正友的標(biāo)定方法[2-5]通過拍攝棋盤格對(duì)攝像機(jī)進(jìn)行標(biāo)定。使用Python 基于OpenCV 庫(kù)開發(fā)了一種雙目立體視覺手術(shù)器械跟蹤定位系統(tǒng)。系統(tǒng)以Win10 系統(tǒng)的個(gè)人計(jì)算機(jī)為運(yùn)行載體,由圖像采集、圖像處理、特征點(diǎn)提取、立體匹配和三維重建幾個(gè)模塊構(gòu)成,通過連續(xù)處理視頻數(shù)據(jù),實(shí)現(xiàn)對(duì)手術(shù)器械尖端坐標(biāo)的實(shí)時(shí)跟蹤定位。
圖1 實(shí)驗(yàn)器具
雙目立體視覺模型涉及到幾個(gè)坐標(biāo)系:如圖2 所示,世界坐標(biāo)系XwYwZw,原點(diǎn)為Ow,其中點(diǎn)P 的坐標(biāo)為P(xw,yw,zw)。左攝像機(jī)坐標(biāo)系為XlYlZl,右攝像機(jī)坐標(biāo)系為XrYrZr,原點(diǎn)Ol、Or分別代表左右攝像機(jī)的光學(xué)中心,Zl、Zr分別為左右攝像機(jī)的光軸。以左右攝像機(jī)光軸與各自成像平面的交點(diǎn)O 作為成像平面的原點(diǎn),建立像平面坐標(biāo)系,點(diǎn)p 在像平面坐標(biāo)系的坐標(biāo)可表示為p1(xl,yl),p2(xr,yr)。像素坐標(biāo)系以左上角為原點(diǎn),點(diǎn)p 在像素坐標(biāo)系的坐標(biāo)可表示為p1(ul,vl),p2(ur,vr)。
圖2 雙目視覺模型與各坐標(biāo)系
根據(jù)上述坐標(biāo)系關(guān)系,可得世界坐標(biāo)系到像素坐標(biāo)系的變換公式為:
其中Zc為比例因子,dx和dy分別代表每一個(gè)像素在x 軸與y 軸方向上的物理尺寸,f 代表攝像機(jī)的焦距。dx、dy、u0、v0只與攝像機(jī)的結(jié)構(gòu)有關(guān),稱為攝像機(jī)內(nèi)部參數(shù);R 和T 分別代表攝像機(jī)相對(duì)于世界坐標(biāo)系的旋轉(zhuǎn)矩陣和平移矩陣,稱為攝像機(jī)外部參數(shù)。攝像機(jī)標(biāo)定就是確定內(nèi)外參數(shù)的過程。
攝像機(jī)的標(biāo)定方法根據(jù)是否需要標(biāo)定參照物分為傳統(tǒng)攝像機(jī)標(biāo)定和攝像機(jī)自標(biāo)定。傳統(tǒng)攝像機(jī)標(biāo)定需要使用已知尺寸信息的高精度參照物,將參照物的已知坐標(biāo)與圖像點(diǎn)建立對(duì)應(yīng)關(guān)系以完成三維空間到二維圖像的映射,精度較高。攝像機(jī)自標(biāo)定利用自身運(yùn)動(dòng)過程中拍攝的不同圖像建立對(duì)應(yīng)關(guān)系完成標(biāo)定,比較靈活但精度較低。張正友于1998 年提出的棋盤格標(biāo)定方法,介于傳統(tǒng)標(biāo)定方法和自標(biāo)定方法之間,兼具兩者優(yōu)勢(shì),且已封裝為MATLAB 工具箱,可以快速對(duì)攝像機(jī)進(jìn)行標(biāo)定。
理想的雙目立體視覺模型中,兩個(gè)完全相同的雙目攝像機(jī)平行放置,如圖2 所示,兩個(gè)攝像機(jī)的光軸Zl、Zr互相平行,Yl、Yr軸也互相平行,Xl、Xr在同一條直線上。以兩個(gè)攝像機(jī)的光心Ol、Or作為原點(diǎn)分別建立坐標(biāo)系,兩個(gè)光學(xué)中心的連線稱為基線,記為b。成像平面與光心的距離為焦距,兩攝像機(jī)的焦距相同,記為f。若以左攝像機(jī)的坐標(biāo)系為世界坐標(biāo)系,空間點(diǎn)P(xw,yw,zw)在左右攝像機(jī)的成像平面上的坐標(biāo)分別為p1(xl,yl),p2(xr,yr),由相似三角形原理可得:
式中基線b 和焦距f 可以通過攝像機(jī)標(biāo)定得到。因此,在已標(biāo)定的理想雙目立體視覺系統(tǒng)中,可以定量計(jì)算空間點(diǎn)P 的深度。但實(shí)際上,兩臺(tái)攝像機(jī)光軸無(wú)法做到完全平行,若在硬件條件無(wú)法滿足的情況下,按照理想的雙目立體視覺模型來(lái)進(jìn)行定位,會(huì)得到誤差較大的結(jié)果。在實(shí)際應(yīng)用中,通常會(huì)對(duì)攝像機(jī)分別進(jìn)行標(biāo)定,得到兩個(gè)攝像機(jī)的標(biāo)定矩陣參數(shù),并通過立體匹配的方法,得到空間點(diǎn)P 在兩個(gè)攝像機(jī)成像平面上對(duì)應(yīng)像點(diǎn)的坐標(biāo),采用最小二乘法進(jìn)行深度信息的精確求解。
本文所述雙目視覺定位系統(tǒng)基于可見光定位,使用彩色小球作為手術(shù)器械的標(biāo)志點(diǎn)。通過在手術(shù)器械上安裝三個(gè)彩色標(biāo)志小球以定位手術(shù)器械針尖。標(biāo)志點(diǎn)的中心坐標(biāo)的提取計(jì)算直接影響三維坐標(biāo)重建的精度。如圖1 所示,本系統(tǒng)使用裝有三個(gè)紅色小球的實(shí)驗(yàn)裝置模擬手術(shù)器械,雙目攝像機(jī)實(shí)時(shí)拍攝運(yùn)動(dòng)過程中的手術(shù)器械圖像,輸入上位機(jī)中進(jìn)行處理。下面以左攝像機(jī)拍攝的一幀圖像為例,說明計(jì)算機(jī)處理圖像,獲取標(biāo)志點(diǎn)中心坐標(biāo)的過程:
(1)左攝像機(jī)拍攝的圖像輸入筆記本電腦中
(2)利用OpenCV-Python 庫(kù)讀取采集到的圖像,對(duì)圖像根據(jù)RGB 值做顏色通道分離,通過高斯濾波和圖像膨脹等形態(tài)學(xué)處理方法,對(duì)圖像進(jìn)行二值化處理。
(3)在圖像矩陣中尋找高亮連通區(qū)域(灰度值大于一定閾值),根據(jù)公式(4)計(jì)算中心坐標(biāo):
從右攝像機(jī)采集的圖像中提取標(biāo)志點(diǎn)中心坐標(biāo)的流程與上述過程相同。在分別獲取并處理左右攝像機(jī)拍攝的圖像,提取三個(gè)標(biāo)志點(diǎn)的中心坐標(biāo)后,可以根據(jù)第4 節(jié)的理論重建三個(gè)標(biāo)志點(diǎn)在空間中的球心坐標(biāo)。
本文提出的手術(shù)器械跟蹤系統(tǒng)是基于雙目攝像機(jī)的。根據(jù)標(biāo)記的三維坐標(biāo)重建模型(第4 節(jié)),需要一對(duì)匹配的標(biāo)記點(diǎn)中心坐標(biāo)以計(jì)算真實(shí)的標(biāo)志點(diǎn)中心位置。在左圖像和右圖像中分別有三個(gè)標(biāo)記點(diǎn)。在進(jìn)行三維重建之前,必須對(duì)左右圖像中同一位置的標(biāo)記對(duì)進(jìn)行匹配。本文使用標(biāo)記的空間位置進(jìn)行匹配,手術(shù)器械上標(biāo)記的位置固定,圖像上標(biāo)記的位置也固定。左右圖像中的三個(gè)標(biāo)記按照它們的位置從上到下和從左到右排序,可以通過匹配它們的排序順序號(hào)來(lái)匹配標(biāo)記對(duì)。
假設(shè)已通過攝像機(jī)標(biāo)定獲得兩個(gè)攝像機(jī)的標(biāo)定參數(shù),空間點(diǎn)P(xw,yw,zw)在左右攝像機(jī)得像素平面坐標(biāo)分別為p1(ul,vl),p2(ur,vr)。根據(jù)1.1 小節(jié)中式(1),可得:
其中,Ml與Mr為世界坐標(biāo)系到左右攝像機(jī)的投影矩陣。聯(lián)立式(5)與(6)得:
式(7)表示過Ol pl的直線,式(8)表示過Or pr的直線。通過(7)、(8),根據(jù)最小二乘法,可求得空間點(diǎn)P的坐標(biāo)xw,yw,zw。
手術(shù)器械的工作點(diǎn)(針尖或刀尖)往往會(huì)深入病人體內(nèi)而導(dǎo)致無(wú)法在視距范圍中獲得其圖像以及位置信息。因此,對(duì)工作點(diǎn)坐標(biāo)的計(jì)算是間接的,首先要確定手術(shù)器械上的標(biāo)志點(diǎn)與工作點(diǎn)間的剛體約束關(guān)系。
如圖3 所示,A、B、C 為手術(shù)器械的三個(gè)標(biāo)志點(diǎn)的中心點(diǎn),T 為手術(shù)器械的工作點(diǎn)。以A 為原點(diǎn),在以ABC 確定的平面上,以AB 為x 軸建立坐標(biāo)系,此為手術(shù)器械坐標(biāo)系。由于手術(shù)器械是剛體結(jié)構(gòu),手術(shù)器械坐標(biāo)系中工作點(diǎn)T 的位置是固定的。A、B、C 三點(diǎn)的世界坐標(biāo)系坐標(biāo)可由上述雙目視覺方法獲得。下一步再根據(jù)三點(diǎn)在世界坐標(biāo)系和手術(shù)器械坐標(biāo)系中的坐標(biāo),確定手術(shù)器械坐標(biāo)系到世界坐標(biāo)系的旋轉(zhuǎn)平移矩陣。根據(jù)此旋轉(zhuǎn)平移矩陣,可以計(jì)算出T 點(diǎn)在世界坐標(biāo)系中的位置。因此手術(shù)器械標(biāo)定,就是確定工作點(diǎn)T 在手術(shù)器械坐標(biāo)系中的坐標(biāo)。
圖3 手術(shù)器械示意圖
手術(shù)器械標(biāo)定的第一步是將手術(shù)器械繞工作點(diǎn)T(T 點(diǎn)不動(dòng))進(jìn)行N 次旋轉(zhuǎn)。設(shè)工作點(diǎn)T 的坐標(biāo)為T(xt,yt,zt),標(biāo)志點(diǎn)坐標(biāo)為P(xi,yi,zi),表示第i 次旋轉(zhuǎn)所拍攝圖像中標(biāo)志點(diǎn)的坐標(biāo)。根據(jù)該標(biāo)志點(diǎn)到點(diǎn)T 的歐氏距離d不變,可得:
i>=2 的方程均減去i=1 的方程消去d,得到N-1個(gè)方程:
對(duì)于三個(gè)標(biāo)志點(diǎn),共可得到3(N-1)個(gè)方程。通過最小二乘法,可解得T(xt,yt,zt)。
根據(jù)某次旋轉(zhuǎn)得到的標(biāo)志點(diǎn)坐標(biāo),可求得世界坐標(biāo)系至手術(shù)器械坐標(biāo)系的旋轉(zhuǎn)平移變換矩陣,進(jìn)而可以根據(jù)旋轉(zhuǎn)平移矩陣和T(xt,yt,zt),求得手術(shù)器械工作點(diǎn)T 在手術(shù)器械坐標(biāo)系中的坐標(biāo)。
步驟1:讀取雙目圖像;
圖4 雙目圖像
步驟2:對(duì)圖像進(jìn)行RGB 通道分離、二值化、膨脹等處理;
步驟3:提取圖像中標(biāo)志點(diǎn)中心坐標(biāo);
步驟4:立體匹配獲取雙目圖像中對(duì)應(yīng)標(biāo)志點(diǎn)的中心坐標(biāo),三維重建得到標(biāo)志點(diǎn)在世界坐標(biāo)系中的空間坐標(biāo);
步驟5:通過坐標(biāo)系的旋轉(zhuǎn)平移變換,求得手術(shù)器械工作點(diǎn)的空間坐標(biāo)。
圖6 實(shí)驗(yàn)結(jié)果
本文設(shè)計(jì)了一種低成本、高精度的光學(xué)跟蹤系統(tǒng)。系統(tǒng)運(yùn)行在搭載Win10 操作系統(tǒng)的個(gè)人計(jì)算機(jī)上,通過MATLAB 工具箱中的張氏標(biāo)定法對(duì)攝像機(jī)進(jìn)行標(biāo)定,基于雙目視覺原理獲取標(biāo)志點(diǎn)的深度信息,再根據(jù)標(biāo)志點(diǎn)與手術(shù)器械針尖的剛體約束計(jì)算針尖坐標(biāo),實(shí)現(xiàn)對(duì)手術(shù)器械的實(shí)時(shí)跟蹤定位。系統(tǒng)通過Python 編寫基于OpenCV 庫(kù)完成圖像采集、處理和坐標(biāo)計(jì)算的功能。