專題名稱:以影像為基礎之自動化傷口癒後評估系統
一、摘要
醫學影像的處理主要目的是為了讓醫療人員能透過電腦對影像的數據轉換更加了解患者的病況,或是患者後期病情的追蹤,可以減少醫療人員的判斷時間,並能達到有效的診斷效率、更好的醫療品質。本計畫是讓患者能在家自行利用 平方公分小白色方塊拍攝傷口,回傳傷口影像給醫療人員,讓醫療人員能透過電腦醫學影像的處理,藉由判斷患者傷口的大小來預估傷口癒合的時間,並做有效的後續病情追蹤。本計畫提出一個傷口復原程度的醫學影像偵測系統,主要分為九個步驟:1、本計畫先利用Gray World Assumption(GWA)演算法將原始影像作白平衡的處理,讓影像能去除掉不必要的雜訊;2、透過Peer et al.[1]所提出的膚色偵測,規範出膚色的範圍,分別將膚色跟傷口做白與黑的轉換;3、使用Erode(侵蝕)及Dilate(擴張)函式,去除影像中的小雜點;4、利用flood fill(洪水填補法)把影像中傷口外的範圍進行填補,盡量只留下傷口的部分;5、利用findcontour將影像中的輪廓圈選出來,並以向量方式儲存於陣列中;6、將圈選出的所有contour以HSV判斷是否符合傷口的顏色,並將符合之contour予以標記;7、將符合條件值的contour用drawcontour函示顯示於影像中,並以不同的顏色對contour做區分;8、將符合條件之各contour以contourarea函式計算出該條contour的像素點;9、將處理後之結果影像顯示於使用者易使用的介面中,並以文字顯示其對應的contour之像素點,透過這個傷口評估系統能有效的幫助醫療人員縮短診斷時間,也能節省患者往返醫院的通勤時間,減少傷口感染的機會,達到更顯著的醫療效果。
二、研究動機與研究問題
二、研究動機與研究問題
隨著人口逐漸老化與科技進步,從以往以醫院為中心的就診模式逐漸地轉往『醫療走入家庭』的新式概念,以符合未來病患的需求,透過電腦的資訊技術,將患者、主治醫生和醫護人員能夠做有效的串聯,讓病患能夠在家也可以得到及時的診斷及後續的治療,醫療資訊技術不斷的發展,讓遠距醫療(Telemedicine)的觀念不斷的被提出來,患者和醫療人員也可以克服空間和時間上的障礙,達到兩方的溝通,而本計畫提出的系統是讓患者可以在家自行拍攝傷口的影像,醫療人員就可以藉由回傳的影像來判斷患者傷口復原的程度,並即時的給予診斷或後續的傷口復原追蹤。
因此,醫學影像在診斷的過程中是佔有非常重要的地位,臨床的醫護人員必須迅速評估所有傷口,才能決定最有效的傷口處理方式,當醫學影像分析得更清楚,更能協助醫護人員或是主治醫生透過患者受傷的醫學影像中得到病情的訊息,準確的給予患者傷口治療的方法,有效的降低人力成本和人為誤判的情況,加上近年來利用電腦來做影像處理的技術日漸進步,透過電腦的各種影像處理方式,強化影像並分析影像,同時也因為醫療與每個人是密不可分的,因此,本計畫希望將影像處理技術結合至醫療處理上。加上有些傷患的傷勢過重,在離院返家後還要再回醫院回診十分困難,有些可能傷口在移動就會牽扯到的位置,而造成不便行走,亦或者是距離醫院太遠太浪費通勤的時間,造成了空間與時間上的障礙,而為了幫助這些病患能不用出門也可以達到復診的情形,本計畫希望能夠讓傷患在家自行拍攝自己的傷口影像,並回傳給在院的主治醫師,讓醫療人員可以即時的依照影像中患者的傷口大小,判斷傷口復原的程度,並給予有效的醫療診斷。如此一來,患者不必再冒著傷口被感染的風險回院治療,同時也可以減輕醫生的工作量,降低醫護人員的人力成本,讓醫療人員可以方便的使用電腦來準確的判斷出傷口的大小、位置,並觀察其復原程度,能更有效的追蹤病人後續的病況。
本計畫首先將原始影像藉由做白平衡的處理,將影像因為不同燈光的關係,造成膚色的顏色失真校正回來,再將膚色與傷口做區分,利用規範膚色的數值,分別讓膚色的地方呈現白色、傷口和背景則是呈現黑色,接著利用Erode(侵蝕)及Dilate(擴張)來消除影像中的雜點,利用flood fill(洪水填補法)把影像中傷口外的範圍進行填補,盡量只留下傷口的部分,使用findcontour函式將影像中的輪廓圈選出來,並以HSV方式判斷該條contour是否符合傷口顏色之條件,並用drowcontour將符合條件之contour顯示於影像中,且以不同的顏色對不同contour做區分,最後利用contourarea計算各條contour的像素點,並將處理後之最終結果影像顯示於使用者易使用的介面,並以文字方式顯示各條contour的像素點,讓醫療人員可以透過影像中傷口大小的輪廓線和像素點判斷出患者傷口的復原程度。
三、文獻探討與回顧
三、文獻探討與回顧
近年來,影像處理的技術不斷的在進步,而目前最常被使用的影像處理系統就是OpenCV。OpenCV的全稱是Open Source Computer Vision Library,是一個跨平台的電腦視覺庫。OpenCV是由Intel公司發起並參與開發,以BSD授權條款授權發行,可以在商業和研究領域中免費使用。OpenCV可用於開發實時的圖像處理、電腦視覺以及模式識別程式。OpenCV使用C++語言編寫,它的主要介面也是C++ 語言,但是依然保留了大量的C語言介面。該庫也有大量的Python, Java and MATLAB/OCTAVE (版本2.5)的介面。這些語言的API介面函式可以通過線上文件獲得。現在也提供對於C#, Ch, Ruby的支援。[2]
而本計畫使用的是EmguCV。EmguCV 是.NET 平台下對OpenCV 圖像處理函式庫的封装。也就是OpenCV的.NET 版。他是在.NET兼容的程式語言下使用OpenCV 的函数,如C#、VB、VC++、IronPython 等。這個函式庫可以在Mono 下編譯和在Linux / Mac OS X 上運作。
雖然影像處理的技術逐年在進步,但是影像不單只是我們表面所看到的這麼簡單,影像中除了顏色的不同,也有著許多不同的表示方法,像是:RGB、YCBCR、HSV……等等。而其中RGB是我們最常聽到及看到的影像空間種類。RGB是一種加色模型,將紅(Red)、綠(Green)、藍(Blue)三原色的色光以不同的比例相加,以產生多種多樣的色光,黑色表示為(0,0,0)、白色表示為(255,255,255)[3]。人類的視覺系統,對於亮度比較敏感,而對於彩度比較不敏感。所以就有了YCbCr這種影像空間的產生。「Y」表示明亮度(Luminance),「Cb」和「Cr」則是色差(chrominance),Cb是藍色色差,Cr 是紅色色差。
然而三原色所構成的向量空間無法對影像強度(亮度)做處理,例如柔和化、銳利化等等。因此此計畫在執行膚色偵測時,同時針對在RGB、YCbCr、HSV這三種影像空間下做膚色偵測的判斷,而首先我們必須先了解如何將RGB的格式藉由數學轉換成YCbCr的組合來做膚色偵測的判斷[4]。
RGB 與 YCbCr 之間的轉換公式為:

(1)
(2)
(3)
而相較於RGB 彩色空間,HSV彩色空間比較不容易受到光線的影響,所以將RGB轉換至HSV彩色空間,這樣的做法可以降低光線對影像所造成的影響,避免誤判的情況發生。其中:H(Hue)色調值:指的是顏色全彩的屬性,每種顏色對應到不同的色調值,範圍為0~360度的角度。S(Saturation)飽和值:定義為被白色稀釋的程度,稀釋越多表示飽和度越少,會較靠近中心點位置,範圍從0到1。V(Value)顏色明暗度:顏色越亮其明暗度越高,反之則較低,範圍從0到255[5]。
RGB與HSV之間的轉換關係公式如下所示:

(4)
(5)
(6)
(7)
影像中除了本身的類型不同之外,同時也會因為拍攝的地點和光線的不同,而產生出不同的影像,而這些亮度不同的影像,我們希望能夠使拍攝出的影像,能夠恢復成原有的正常光線下所拍攝而成的影像,為了校正這些因為光線或是其他原因所早成誤差的影像,我們用了兩個演算法來實驗自動白平衡的效果,一個是GWA演算法,這個演算法是把所拍到的影像設在一個色彩豐富的範圍裡,假設紅色、綠色和藍色出現在同一張影像裡的機率都相同,GWA演算法的優勢就是在色彩豐富的影像中有很好的還原能力。左邊圖(1)這張可看出是在偏黃色燈下所拍攝色彩鮮艷的影像,經過GWA演算法計算後,影像會被還原成右邊圖(2)的影像圖,可清楚看到左下原本偏黃的色塊,被還原成明顯的白色色塊。圖(1)為黃色光線下所拍攝出的影像,圖(2)為將圖(1)的影像利用GWA演算法所還原出的原始影像。

圖(1)
圖(1)

圖(2)
圖(2)
而相對的,在還原單一色彩的影像上,因為不符合GWA演算法的假設,所以還原出來的影像我們發現會有偏紅的現象,由下圖(3)單一色彩的海和天空來看, 經過GWA演算法後,從圖(4)看出海和天空這些白色部分都顯變得有點偏紅,可藉由此結果知道GWA演算法在單一色彩上還原效果較不佳。圖(3)為海和天空皆為藍色的影像,圖(4)為將圖(3)的影像利用GWA演算法所還原出的偏紅影像。

圖(3)

圖(4)
因此,藉由以上的結果,我們可以判斷GWA演算法在色彩豐富的影像中會有比較好的還原效果,而在單一色彩影像中還原結果會有偏紅的現象。
我們的另一種處理自動白平衡的演算法為PRA(Perfect Reflector Assumption)演算法,PRA演算法是假設在一張影像中,可以把完美反射體當作是一個標準白色,一個白色的物體,在任何色溫的影像中,其紅色、綠色、藍色皆為各自的通道(Channel)的極大值[6],我們分別利用上面所說的圖(1)和圖(3)來做測試,經過一系列的PRA運算後,會發現圖(1)的影像會被還原成帶有黃色的色偏,如下圖圖(5),可看到左下原本偏黃的色塊,被還原成帶有點黃色的色塊。圖(1)為黃色光線下所拍攝出的影像,圖(5)為將圖(1)的影像利用PRA演算法所還原出的偏黃影像。

圖(1)

圖(5)
接著,利用上面的圖(3)來做測試,經過PRA演算法的運算後,可知道海面的反光及白雲的部分都被有效的還原成白色,藉由此結果知道PRA演算法在單一色彩上還原效果較佳,圖(3)為海和天空皆為藍色的影像,圖(6)為將圖(3)的影像利用PRA演算法所還原出的原始影像。

圖(3)

圖(6)
藉由以上的結果來看,可知道PRA演算法的優點在於,當影像大多以單一顏色為主的時候,會有很好的還原能力,而在色 彩鮮艷的地方則會有偏黃的現象。
經過兩種演算法,GWA演算法和PRA演算法的實驗後,我們也利用圖(7)在偏黃的燈光下,所拍攝出的皮膚影像下去做影像的運算,轉換出來的結果分別為下圖圖(8)和圖(9)。圖(7)在黃色燈光下所拍攝的皮膚影像,圖(8)為將圖(7)經過GWA白平衡演算法運算結果,圖(9)將圖(7)經過PRA白平衡演算法運算結果。

圖(7)

圖(8)經GWA轉換

圖(9)經PRA轉換
由於傷口影像多為色彩分明的影像,在GWA白平衡演算法下具有較佳的結果,較能還原出原始影像的色彩,故本計畫皆使用GWA白平衡演算法對影像進行處理。
四、研究方法及步驟
(1)研究方法
由於在各種環境下所拍攝的影像會因光線或地點而有所不同,故須先將影像作光線的校正,此計畫中使用GWA演算法對影像進行白平衡之處理。將原始影像經過GWA演算法做白平衡的處理後,將白平衡後的影像做影像分割的處理,分割出膚色區域,使用膚色偵測來區分出膚色及傷口位置,將膚色區域設定為白色(255)、傷口和背景設定為黑色(0),而在膚色偵 測後的影像中,仍有許多小雜點的存在,為了估算出較準確的傷口面積,我們使用Emgu CV中CvInvoke類別下的Erode及Dilate來消除影像中的小雜點。再利用Emgu CV中Flood Fill(洪水填補法) 函式把影像中傷口外的範圍進行填補,凸顯傷口的部分,接者利用Findcontour將影像中的輪廓圈選出來,並以HSV判斷該條cotour是否符合傷口的顏色,並將符合之contour利用Drowcontour函式顯示於影像中,並將各條contour以不同的顏色做區分,最後以contourarea函式計算出符合條件之contour的像素點,而處理後之影像結果,顯示於易使用之介面中,並以文字顯示各條contour之像素點。下圖(a)為本計畫分析影像的流程圖。


圖(a)本計畫之流程圖
(2)研究步驟
2.1白平衡
此計畫首先利用GWA演算法對原始影像作白平衡的處理。GWA演算法是目前最常被使用的自動白平衡演算法之一,它提出一個假設:”