劉愛胤,熊根良,姚健康,樂文輝
(南昌大學機電工程學院,江西 南昌 330031)
艾灸作為中醫治療中一種重要的治療手段,在國人心中有很高的知名度。與西醫治療不同,艾灸主要是用于醫療保健和疾病防范方面,它具有強身健體的功效,而且副作用較小,能廣泛適用于各種人群。在《中國制造2025》明確指出把生物醫藥及高性能醫療器械作為未來重點發展的十大領域之一,這對我國的醫療器械業無疑會產生深遠影響。近年來,許多高校、研究機構紛紛投入了對艾灸自動尋穴的研究中,研發出了許多卓有成效的自動尋穴的方法和系統。其中屬通過視覺技術和神經網絡來實現自動尋穴的方法研究地較為普遍。還有一些研究是利用人體某方面的特性來實現的,如利用人體穴位低電阻特性[1,2],利用人體穴位處與非穴位處對光的吸收、散射和反射程度不同的原理等方法[3][4]也能部分實現自動尋穴的要求,但由于目前對這些特性的基礎性研究還不完善,因此這些尋穴方法還存在很大的局限性,無法實現推廣使用。
利用神經網絡來實現自動尋穴的方法[5],更適合于尋找特定的幾個穴位點,而且當要尋找的穴位點增加時其尋穴精度可能會相應地下降,因此不適用于較大范圍地尋找穴位。還有一個缺陷就是,它需要大量的樣本來訓練神經網絡,工作量大,當需要尋找之前沒有訓練過的穴位時,需要重新對神經網絡進行訓練,因此這種方法適應性較差。相比而言,通過視覺技術來實現自動尋穴的方法則更為成熟,也是最早被引入到中醫腧穴領域的一種技術。本文就是基于視覺技術來實現艾灸自動尋穴。
2011年山東建筑大學提出一種基于歸一化相關模板匹配的穴位定位與跟蹤研究方法[6],通過對貼在人體穴位上的人工標志進行模板匹配,實現了移動人體的實時穴位定位與跟蹤。但這種方法需要將模板圖像按一定的順序在檢測圖像上滑移,每滑移一次就要進行一次相關性計算[7],直到遍歷完整張圖像為止,因此計算量較大。而且其對圖像的灰度線性變換較敏感,一旦進入信息貧乏的區域,誤匹配率會大大提升[8]。本文提出一種基于霍夫圓和標志物形心獲取穴位點位置信息的方法,這種方法能夠在精確獲取穴位點位置的條件下,有效減少標志物檢測時的計算量,從而加快算法的執行速度,提高算法的實時性。
本方法為了實現穴位點的快速尋找需要在主要穴位點貼上標志物。標志物要能滿足,其形狀計算機易檢測[9]、顏色與人體膚色差異較大。因此,選擇藍色圓形標簽紙作為標志物。因為圓形能夠很容易地通過霍夫圓變換識別出來,且圓有很好的自相似性即使標志物有一定程度的傾斜也能被較好地識別出來。
為了提高霍夫圓檢測的運算速度和準確率,需要對原圖像進行預處理來去除不需要的信息和消除部分干擾。首先將原圖像轉化為灰度圖像,降低圖像的信息量便于后續圖像處理,然后進行直方圖均衡化、二值化等一系列的處理,使圖像中物體邊緣更為清晰明顯,對處理后的圖像提取輪廓從而使圖像邊緣信息更為精簡[10]。最后,對輪廓圖像進行霍夫圓檢測,獲取標志物的位置信息。
霍夫圓檢測是將圖像中每一個像素點視為潛在圓上的點,通過投票生成累加容器,設置一個累計權重來定位圓。在X-Y平面內,任意一圓可以用(x-a)2+(y-b)2=r2來表示,其中(a,b)為圓心,r為半徑,可將其視為二元函數f(x,y)=r2。亦可以將其變換為a-b-r空間中的函數(a-x)2+(b-y)2-r2=0,此時x、y便是常數,可將其視為三元函數f(a,b,r)=0。此時X-Y平面中圓上一點便對應a-b-r空間內一條三維曲線;X-Y平面的圓上所有點對應的a-b-r空間內的所有曲線都相交于一點,此點便是X-Y平面上圓的圓心(a0,b0,r0),此種檢測圓位置的方法便是霍夫圓檢測。累加容器就是通過統計a-b-r空間內相交曲線的累積數量,當其數量大于一定的閾值時就認為這些曲線對應的X-Y平面內的點構成一個圓。
由于原始輪廓圖中往往存在許多微小輪廓,而這些微小輪廓對標志物的霍夫圓檢測正確率會產生很大的影響[11][12]。因此,需要一個合適的輪廓閾值篩選。對輪廓圖進行先膨脹后腐蝕處理,使較近鄰的輪廓之間相互連接,部分微小輪廓得到消除。統計各輪廓的長度,計算均值,以此均值的加權值作為閾值對輪廓圖進行處理從而消除微小輪廓。公式如下

(1)

(2)
式中,ci為輪廓i的周長,n為輪廓個數,AVG為輪廓長度均值,profilei(x,y)為輪廓i的圖像。微小輪廓濾除后的霍夫圓檢測效果如下圖1。

圖1 霍夫圓檢測
人體模特上貼有8個圓形標志物,圖1(a)中檢測出了43個霍夫圓,正確率為18.6%;圖1(b)通過微小輪廓過濾后獲得了12個霍夫圓,正確率為66.7%。輪廓過濾前后都沒有出現標志物漏檢的情況。
由于霍夫圓檢測算法的穩定性不佳受環境因素影響較大,再加上人體生理凹陷、標志物不完全垂直于攝像頭光軸等原因,圖像中的標志物并不一定是標準的圓,會導致其檢測效率低下,存在錯檢、漏檢等情況。因此,在本算法中霍夫圓檢測算法用于對圖像中的圓進行初步檢測,獲取標志物的候選區域。為了最大可能地降低圓的漏檢率,算法在不大幅增加計算量的前提下,調低了霍夫圓的檢測條件,如降低圓心累加器閾值、擴大檢測的圓半徑范圍,使得霍夫圓區域中包含所有的標志物。此時候選區域包含許多虛假霍夫圓,因此通過對候選區域進行顏色檢測來將其消除[13]。
顏色檢測需要將圖像由RGB模型轉為HSV模型[14],此時任意顏色都是由色調、飽和度和亮度三個分量組成,而顏色變化的差異性主要是反映在色調上,顏色檢測就是檢測圖像中指定色調范圍內的顏色區域。標志物的顏色為藍色,而藍色對應的色調區域為75°~130°,對候選區域進行藍色調檢測便可消除虛假霍夫圓區域。顏色檢測的流程圖如圖2:

圖2 顏色檢測流程圖
加入顏色檢測后的結果如圖3。

圖3 候選區域顏色檢測
標志物中有一個為紅色,用于測試顏色檢測的準確性,通過處理后圖3中檢測出了7個藍色標志物,紅色標志物、其它虛假霍夫圓均被濾除,正確率為100%。
顏色檢測只是篩選出候選區域中的虛假霍夫圓區域,由于標志物在圖像中不完全接近于圓的原因,霍夫圓的圓心并不一定與標志物中心重合。如圖4所示,圖中被紅圈標出的標志物中的綠點為霍夫圓中心,其與標志物實際中心偏離,因此需要使用其它方法獲得標志物的實際中心位置。

圖4 霍夫圓中心位置
針對這種情況,為了準確地檢測出標志物中心的位置,本文選擇從標志物的形狀特征入手。圓具有良好的自相似性和對稱性,因此其即使在攝像頭拍攝時由于標志物傾斜、標志物不完全垂直于光軸等原因導致圖像中標志物變形,其形狀也是趨于橢圓,而橢圓中心與標志物的中心還是重合的。受此啟發,本算法提出一種基于輪廓形心的位置檢測方法,實現對標志物中心位置坐標的精確定位。
輪廓的形心是由圖像的幾何矩mpq計算而來。設圖像的像素尺寸為M*N,f(i,j)為(i,j)位置處圖像的像素值,有如下公式

(3)
對于輪廓圖像屬于二值圖,f(i,j)非零即1。m10便是圖像關于x軸的一階矩,m01為圖像關于y軸的一階矩,m00則是圖像的原點矩。形心(px,py)的計算公式如下

(4)
圖5和表1所示,輪廓形心檢測最大誤差在1個像素內,而霍夫圓檢測平均誤差就達到了2.1個像素。因此,該方法獲取的標志物位置比霍夫圓檢測更為精準。

表1 不同方法獲取標志物位置結果(單位:pixel)

圖5 不同檢測方法獲取標志物中心的圖像坐標位置
前面獲取的標志物位置是基于圖像像素坐標系,但在許多情況下空間三維坐標更為有用,其可用于控制執行機構。獲取空間三維坐標還需要得到目標位置的高度信息,而單靠一個彩色攝像頭較難實現高度的獲取,因此本文利用深度攝像頭獲取高度信息,再采用坐標映射的方法實現彩色圖像與深度圖像的匹配,進而得到目標點的空間三維坐標。
深度圖像匹配的目的就是將深度圖像的圖像坐標系轉換到彩色圖像的圖像坐標系之下。設彩色攝像頭對應的圖像坐標和相機坐標分別為(uC,vC)、(xC,yC,zC),深度攝像頭對應的圖像坐標和相機坐標分別為(uD,vD)、(xD,yD,zD)。此時存在如下公式:

(5)
其中、RD分別為彩色圖像和深度圖像的內參矩陣。將兩相機進行聯合標定可獲得兩相機坐標系之間的外參矩陣M,M是由平移向量和旋轉矩陣組成的4*4矩陣[15]。此時彩色相機坐標系與深度相機坐標系存在如下關系

(6)
將上述方程聯立求解可得彩色圖像坐標與深度圖像坐標的關系方程如下

(7)

接下來就是將圖像坐標轉為三維空間坐標,如以下示意圖空間坐標系以深度攝像頭的中心點位置為原點,原點以左為X正半軸,原點以上為Y正半軸,原點向外為Z正半軸。

圖6 相機坐標系及小孔成像模型
深度圖像的像素值即是該點的深度,根據小孔成像模型和相似三角形原理可得:

(8)
其中(u0,v0)為光心在圖像平面上的坐標,dx、dy分別為每個像素在x軸、y軸方向的物理尺寸。由此獲得目標點在相機三維坐標系下的坐標(X,Y,Z)。
如圖7檢測標定紙中黑白色塊角點坐標,標定紙的右上角與光心重合,標定紙兩邊緣分別與相機坐標系x、y軸平行,攝像頭到標定紙的垂直距離為103cm。實際位置和檢測位置如表2。

圖7 獲取相機三維空間坐標

表2 相機空間三維坐標(單位:cm)
本文設計了一種基于輪廓形心的的標志物目標位置檢測的方法,該方法以霍夫圓檢測獲取標志物的候選區域,通過顏色檢測對候選區域篩選,再計算輪廓形心獲取標志物的精確位置,最后結合深度圖像將目標點位置由圖像坐標轉換為相機空間三維坐標。該方法不僅克服了霍夫圓對標志物檢測時不穩定的問題,而且在標志物存在變形的情況下實現了位置的精確定位,其精度能夠在一個像素內,同時也實現了三維信息獲取,具有位置獲取精度高、實用性較好的特點。