本發(fā)明屬于珍惜動物海豚的身份檢測與識別領(lǐng)域,本發(fā)明具體涉及一種基于聚類的彩色圖像區(qū)域分割以及手動目標分割,使用SIFT算法進行特征提取,建立海豚生長模型,利用關(guān)鍵點匹配進行身份識別的基于圖像處理的海豚身份識別的方法。
背景技術(shù):
雖然數(shù)字圖像處理方面的算法有了長足的發(fā)展,但主要集中在醫(yī)學,太空,以及人臉識別方面,在這些領(lǐng)域中一些圖像處理算法能夠取得不錯的處理效果,但是在其他領(lǐng)域仍有需要進一步研究改進,比如的珍稀動物海豚,海豚在國內(nèi)是野生動物保護研究所重點跟蹤保護的對象,在對海豚的研究保護過程中,對海豚數(shù)量的變化情況以及生長變化趨勢的研究是非常重要的,因此在本項目中主要針對海豚的身份識別進行研究。利用圖像識別技術(shù)對海豚的身份識別的研究可以從以下幾方面進行考慮。
(1)圖像的預處理中的一項:目標分割?,F(xiàn)實中的圖像大多是使用移動設(shè)備拍攝的,拍攝的圖像中除了包含目標信息外還有很多復雜的背景信息。海豚圖像時使用移動設(shè)備拍攝的高分辨率圖像,但是當需要將海豚目標從圖像中分割出來時,雖然背景只有海水,但是需要考慮到還是在光照的影響下和海豚體表的色彩的近似度,這個在使用閾值分割時尤為重要;當需要使用邊緣提取來分割海豚圖像時,需要考慮海水表明的波痕與其鄰域像素的梯度與海豚體表色彩與其鄰域梯度的近似度。
(2)對于圖像中的小目標,如何將它的特征信息進行準確的描述,在很多圖像處理中,小的目標很容易在圖像濾波中被當作噪聲點過濾掉了。海豚體表的斑點時作為海豚身份識別的一個重要的因素,如何在圖像處理中成功的保存下這些斑點的同時去除噪聲點的干擾。
(3)人們設(shè)計機器識別時希望機器識別能夠像人眼一樣,識別的結(jié)果不因距離、角度以及光線的變化而改變識別的結(jié)果,因此需要在對圖像的特征的描述時使用能夠不因圖像的模糊度,角度所影響的描述矢量來描述圖像的信息,在這方面值得研究。
在對海豚進行身份識別的方法研究中,根據(jù)每條海豚都擁有可以它進行分辨的特征,可以以此作為區(qū)分不同海豚的依據(jù),根據(jù)海豚體表特征的分布規(guī)律,利用圖像識別技術(shù),通過自動目標分割,建立海豚識別模型和生長模型來對野外拍攝的海豚圖片進行自動識別比對,并且對海豚的圖像進行自動管理,這樣就大大減少了海洋保護者們的重復工作量,減少了人為誤差,提高了海豚身份識別的識別效率。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種通過基于聚類算法的彩色圖像目標分割算法和手動目標分割 算法對海豚圖片進行分割的基于圖像處理的海豚身份識別的方法。
本發(fā)明的目的是這樣實現(xiàn)的:
(1)確定聚類中心;
(2)自適應的確定聚類中心,根據(jù)聚類策略對海豚圖像進行分類;海水背景作為Ⅰ類,將海豚目標作為Ⅱ類;
(3)將Ⅰ類從海豚圖像中分離,得出海豚目標Ⅱ類;
手動目標分割首先在原海豚圖像中標記出需要的分割區(qū)域,之后將這個區(qū)域內(nèi)的像素均設(shè)置為1,其他的區(qū)域的像素點均為0,得出左側(cè)的模板圖像;再將得出的模板圖像與原圖像相乘,由于目標圖像中的像素值只有0和1,與原圖像的像素相乘時,與像素值為1對應的區(qū)域得以保存下來,與像素值為0對應區(qū)域的像素則置0,變成黑色區(qū)域;即可得到分割后的目標圖像。
所述得出海豚目標Ⅱ類,在海豚圖像上對海豚體表的斑點進行處理,得到清晰的海豚體表的斑點分布,統(tǒng)計這些斑點;使用Prewitt算法對分割后的海豚圖像進行了邊緣檢測,檢測出海豚體表的斑點邊緣,同時也檢測出來手動目標分割后的海豚圖像的手動分割的區(qū)域輪廓邊緣,通過腐蝕算法將海豚的的輪廓邊緣去除;經(jīng)過邊緣檢測后的海豚圖像,其體表的斑點被準確的標記了出來,將一些小的斑點聚合在一起,作為新的特征點。
所述的通過圖像預處理后,使用特征提取算法對海豚體表的特征點進行提取,并且歸納關(guān)鍵的數(shù)量與海豚的年齡段的關(guān)系,提出海豚生長模型,通過海豚體表斑點的大,數(shù)量來標識一條海豚年齡以及身份,通過對海豚體表斑點的數(shù)量的統(tǒng)計來完成對海豚年齡的統(tǒng)計,將特征點的數(shù)量作為海豚生長模型的參數(shù)。
對已經(jīng)進行識別的海豚建立三維模型,當進行身份識別,識別出某海豚時,對應將其三維模型顯示出來。
本發(fā)明的有益效果在于:
在實施過程中發(fā)現(xiàn),本發(fā)明構(gòu)造的基于圖像處理的海豚身份識別方法能夠?qū)Σ煌暮k鄨D像進行識別比對具有很高的適用性。
附圖說明
圖1為自動目標分割流程圖;
圖2為聚類范圍圖;
圖3為海豚斑點變化圖;
圖4為海豚年齡分布圖;
圖5為SIFT算法的種子點梯度;
圖6為SIFT流程圖;
圖7為系統(tǒng)流程圖;
圖8為特征提取與比對流程圖;
圖9為特征比對界面;
圖10為抽樣坐標;
圖11為不同年齡段的標準;
圖12為第一次系統(tǒng)測試;
圖13為二次系統(tǒng)測試;
圖14為三次系統(tǒng)測試;
圖15為四次系統(tǒng)測試;
圖16為五次系統(tǒng)測試。
具體實施方式
下面結(jié)合附圖對本發(fā)明做進一步描述。
隨著計算機性能的不斷提高,圖像處理的應用也越來越深入到各行各業(yè)。圖像識別技術(shù)在海洋動物保護領(lǐng)域同樣有著廣泛的應用前景和高效的識別效果。
海洋生物中海豚的種類很多,分布也很廣,但是在大量捕殺的情況下數(shù)量也在不斷的下降,成為了全球的重點保護動物,因此加強對海豚種群的保護不僅保護了物種的多樣性,并且也將為我國保留了一份寶貴的自然財富。野生海豚研究保護專家在對野生海豚種群進行研究時,一般是通過拍攝海豚的照片,之后根據(jù)照片中的海豚的體表的特征來人為的估算海豚的年齡與個體。這種人工的識別方法工作量大,錯誤率高,不利于海豚研究,因此,需要探求一種新的機器識別的方法來解決這些問題。將拍攝的野生海豚的圖像利用圖像識別技術(shù)進行識別,將大大提高海洋保護人員的工作效率。
海豚身份識別的實現(xiàn)主要是對海豚圖片進行目標分割,通過特征提取建立海豚生長模型。海豚圖像的目標分割主要有兩方面的方法:基于灰度圖像的分割和基于彩色圖像的分割?;诨叶葓D像的分割應用很廣泛,有很多成熟的算法,如基于閾值的灰度圖像分割算法有分水嶺分割算法,自適應閾值分割算法等算法?;谶吘墮z測的灰度圖像分割時通過對灰度變換較大的區(qū)域進行各像素與其鄰域的梯度的變化規(guī)律來判斷邊緣的,可以通過一階導數(shù)或二階導數(shù)來應對不同的圖像分割。而彩色圖像分割時通過其各個維度的色彩空間的不同,對圖像信息的表述的不同,在這些色彩空間中去尋找目標所代表的色彩信息。色彩空間有RGB色彩空間、HSV色彩空間等,在不同的色彩空間中的側(cè)重表示的圖像的信息是不同的,不同的圖像可以根據(jù)需要選擇不同的色彩空間。
本發(fā)明使用基于灰度圖像的分割算法進行分割,對分割后的結(jié)果進行特征提取,然后對海豚圖像在灰度圖像中的分割的特點進行分析,提出了基于聚類算法的彩色圖像目標分割算法。同時,在面對更復雜的圖像,目標分割要求跟高的情況,提出了一種手動目標分割算法。針對海豚體表的小目標識別問題,使用形態(tài)學方法將小目標進行處理,在之后的特征提取中能夠準確的表述出來。使用SIFT算法對海豚體表的的特征進行了準確的表述,具備旋轉(zhuǎn),模糊,平移不變型。最后將提出的算法應用到了海豚身份識別系統(tǒng)中,設(shè)計出能夠自動對海豚圖像進行識別分類整理的系統(tǒng)。海豚身份識別方法可以劃分為以下四個步驟:
然后對目標分割后的圖像進行預處理,將海豚圖像中的干擾信息去除,并且對斑點進行處理,突出斑點的特征分布。之后使用SIFT算法對處理后的圖像進行特征提取,利用提取出的關(guān)鍵點與海豚年齡段分布的對應關(guān)系,建立海豚生長模型,經(jīng)過實驗,使用海豚生長模型能夠有效地從海豚圖像中判斷出海豚所處的年齡段。
步驟1:提出了基于聚類的彩色圖像區(qū)域分割算法以及手動目標分割算法。彩色圖像目標分割技術(shù)利用了一種均值聚類的思想。將海豚圖像背景作為一類,將海豚目標作為一類。在RGB色彩空間中利用均值聚類將海豚圖像中的海水聚類,之后進行去除,那么得到的就是目標海豚圖像。
步驟2:對目標分割后的圖像進行預處理,將海豚圖像中的干擾信息去除,并且對斑點進行處理,突出斑點的特征分布。通過Prewitt算子進行邊緣檢測,并通過去邊緣;斑點膨脹;斑點聚合進行形態(tài)學處理。
步驟3:使用SIFT算法對處理后的圖像進行特征提取,利用提取出的關(guān)鍵點與海豚年齡段分布的對應關(guān)系,建立海豚生長模型,利用關(guān)鍵點匹配進行身份識別,使用海豚生長模型能夠有效地從海豚圖像中判斷出海豚所處的年齡段。
步驟4:結(jié)合三維模型結(jié)合目標分割算法和特征提取算法,利用MATLAB平臺開發(fā)了海豚身份識別系統(tǒng),并進行試驗。
使用SIFT算法對海豚體表的特征進行特征提取以及身份識別匹配。最后將提出的算法應用到了海豚身份識別系統(tǒng)中,設(shè)計出能夠自動對海豚圖像進行識別分類整理的系統(tǒng)。
海豚身份識別的實現(xiàn)首先進行海豚圖片目標分割,本發(fā)明中提出基于聚類算法的彩色圖像目標分割算法以及手動目標分割算法。
基于聚類算法的彩色圖像目標分割算法依據(jù)是圖像在不同的色彩空間中所表現(xiàn)出的信息是不同的,通過觀察在不同的色彩空間中的圖像信息,可以從多個方面來完成對圖像的處理,最后達到我們的目的。最常見的是RGB色彩空間,即通過紅綠藍(Red,Green,Blue)色彩空間來完成,通過分析圖像對應的三維矩陣可以得到圖像在灰度矩陣中得不到的信息。
彩色圖像的海豚目標分割,在RGB色彩空間中進行目標分割,同時通過R、G、B三種基色進行分割,能有效提高分割的效果。RGB色彩分量在海豚圖像中的分布是相似的度圖像的貢獻率都很大?;叶葓D像時將三個分量按照不同的貢獻率設(shè)置不同的權(quán)重進行變化過來的。
gray=0.2990*R+0.5870*G+0.1140*B
由于在轉(zhuǎn)換公式中R、G、B各個分量所占的比例是不同的,在轉(zhuǎn)換為灰度圖像時就會對一些色彩分量所代表的信息忽略。而往往在這三個色彩分量中包含一些很重要的特征信息,在RGB色彩空間的彩色圖像分割能夠更充分的對這些特征信息進行利用。
本發(fā)明提出的彩色圖像目標分割技術(shù)利用了一種均值聚類的思想。將海豚圖像背景作為一類,將海豚目標作為一類。在RGB色彩空間中利用均值聚類將海豚圖像中的海水聚類,之后進行去除,那么得到的就是目標海豚圖像。
具體的實施步驟如下:
①確定聚類中心
②自適應的確定聚類中心,根據(jù)聚類策略對海豚圖像進行分類。海水背景作為Ⅰ類,將海豚目標作為Ⅱ類。
③將Ⅰ類從海豚圖像中分離,得出海豚目標Ⅱ類。
算法的流程圖為圖1。從圖1中可以看出,海水背景的顏色差別不是很大,即使有個別的也不會超出太大的范圍,對海水背景的聚類中心可以通過分析海水像素的分布情況來確定。
通過分析海豚圖像我們可以得出,圖像中三角形所圍區(qū)域以及其下部的矩形區(qū)域一般為海豚圖像中海豚目標的分布區(qū)域,而剩余區(qū)域為海水的分布區(qū)域。我們只需要在剩余區(qū)域中分析海水的像素范圍。因此在本文在海水的分布區(qū)域選取了8個抽樣區(qū)域如圖所示,每個區(qū)域為50*50的像素矩陣,每個矩陣的左上角的具體坐標見圖10。將抽樣的像素矩陣進行分析,可以得出三種色彩分量的分布都很集中,且都分布在0.5附近,因此,在聚類的時候可以將聚類的范圍縮小,減小誤差。
使用RGB三種色彩分量的分布規(guī)律作為聚類的標準,需要對三種分量在聚類的評價函數(shù)中表現(xiàn)形式有一個適用的體現(xiàn)。如圖2所示。RGB三個分量的取值范圍都是0到255的整數(shù)。將R、G、B三個分量作為三維坐標系中的xyz坐標軸,而圖像矩陣中的像素點對應的三個分量的值就是這個坐標系中的一個點對應的坐標點,這些點都包含在r=255的1/4球內(nèi)。海豚圖像所在的像素范圍在線1條與線4條所圍的區(qū)域內(nèi),而線2條與線3條所圍的區(qū)域為海水像素所在的范圍。從圖中可以看出,對圖像中的每個像素點的歐式距離可以作為一個評價聚類的函數(shù):
求出每個抽樣矩陣的最大和最小的歐式距離:
Lmaxi=max(L)
Lmini=min(L)
將求出的最大距離以及最小距離均值:
并以此求出聚類范圍:
H=μmax-μmin
同樣利用歐式距離求出圖像的彩色聚類中心為:
其中μi是每個抽樣矩陣歐式距離的均值。
之后,對圖像中的所有像素點求歐式距離,并與聚類范圍比較,在這個范圍內(nèi)的作為海水背景置0,不在這個范圍內(nèi)的則保持原來的像素分布不變。
彩色圖像的自動目標分割算法,在對于圖像的目標分布位置的圖形的分割中具有很好的適應性。由于背景的分布區(qū)域固定,因此只需要分析出固定的背景像素分布規(guī)律,那么就可以利用聚類的方法確定聚類中心,并進行分割。
手動目標分割首先在原海豚圖像中標記出需要的分割區(qū)域,之后將這個區(qū)域內(nèi)的像素均設(shè)置為1,其他的區(qū)域的像素點均為0,得出左側(cè)的模板圖像。再將得出的模板圖像與原圖像相乘,由于目標圖像中的像素值只有0和1,那么與原圖像的像素相乘時,那么與像素值為1對應的區(qū)域得以保存下來,而與像素值為0對應區(qū)域的像素則置0,變成黑色區(qū)域。即可得到分割后的目標圖像。
自動目標分割的有點在于自動化高,人為誤差小,在處理圖像質(zhì)量高或?qū)D像的細節(jié)要求不高的情況下很實用。而在處理圖像的質(zhì)量不高或者對圖像細節(jié)的要求較高的圖像,如需要根據(jù)海豚體表斑點對海豚年齡進行估算時,需要使用手動目標分割來完成。而手動目標分割雖然速度慢,但是能夠有效地分割出圖像微小的特征信息。
之后使用Prewitt算法邊緣檢測,其實現(xiàn)是目標圖像與算子模板的卷積的過程,假設(shè)有兩個矩陣A,B,其中A代表源圖像,另外B代表矩陣的卷積模板,那么模板B的大小以及取值決定最后的運算結(jié)果。卷積的運算公式如下:
通過對模板的選擇可以完成不同的加權(quán)的梯度運算。采用1范數(shù)衡量梯度的幅度
|G(1,2)|=|Gx(1,2)|+|Gy(1,2)|=2+1=3
之后對圖像進行形態(tài)學學處理,對海豚體表的斑點進行膨脹,具體實現(xiàn)為:函數(shù)b對函數(shù)f進行灰度膨脹可定義為運算式如下:
其中Df和Db分別是函數(shù)f和函數(shù)b的定義域,同樣b是形態(tài)學的結(jié)構(gòu)元素,不過此處b是一個函數(shù)而不是一個集合。
位移參數(shù)(s-x)和(t-y)必須在函數(shù)f的定義域內(nèi)才能有意義,此時它模仿二值膨脹運算定義。函數(shù)函數(shù)b對函數(shù)f進行膨脹后原函數(shù)的形狀大小比原來更大了,相當于要每個部分相加了一部分b:f(s1)+b(s2-x)。
經(jīng)過邊緣檢測后的海豚圖像,其體表的斑點被準確的標記了出來,但是這些斑點的大小不一,分布也是部分十分密集,而部分又十分稀疏,這樣的斑點讓之后的統(tǒng)計以及識別都容易出項誤差,因此,對斑點采用膨脹處理,將一些過小的斑點聚合在一起,作為一個新的特征點。膨脹使用菱形的結(jié)構(gòu)元素,具有各向同向性,不會因為進行了膨脹而將斑點的分布方向改變,而影響之后的身份識別。本發(fā)明對斑點進行了三次膨脹操作。
之后建立海豚的生長模型,根據(jù)不同的年齡段的識別標準如圖11。白海豚一生的斑點變化與其年齡的變化規(guī)律為如圖3。
從圖中可以看出,在海豚出生到20個月大時海豚的體表的斑點較少,并且隨著時間的推移,小海豚體表的斑點數(shù)量漸漸增多,但是當海豚的進入青少年時期時海豚的體表斑點的增加速度會大幅度提升,當海豚達到頂峰時,又會迅速下降,因為海豚告訴的生長時間只有1到2年,在這期間海豚發(fā)育成熟,最后海豚發(fā)育成熟的標志就是斑點消失或者只存在極少數(shù)量的斑點。
因此可以通過對海豚體表斑點的數(shù)量的統(tǒng)計來完成對海豚年齡的統(tǒng)計。但是海豚體表的斑點的分布有的大,有的小,那些過于下的斑點在使用圖像處理的方法進行統(tǒng)計時容易對最后的結(jié)果產(chǎn)生影響。因此,在之前的圖像預處理中對圖像中的小斑點作了膨脹處理,將小的斑點聚合在一起的同時不改變斑點的形狀特征。
本發(fā)明所使用的海豚的圖像時由珠江口海豚保護基地提供的190張海豚圖像。從這些圖 像中隨機抽取100張圖像,將這些圖像進行自動目標分割處理,圖像預處理,以及特征點提取,得到它們的特征點分布,再將圖像與他們的年齡相對應,結(jié)果如圖4。
圖中的橫軸為海豚的年齡,單位為月,縱軸為海豚的圖像中檢測出的特征點的數(shù)目。從中可以看出:
(1)當海豚的年齡在0到12個月大時,海豚體表檢測出的關(guān)鍵點的數(shù)量為200到760間。
(2)當海豚的年齡在15到38個月大時,海豚體表檢測出的關(guān)鍵點的數(shù)量為800到1200間。
(3)當海豚的年齡在大于40個月時,海豚體表檢測出的關(guān)鍵點的數(shù)量為0到200將間
綜上所述,在不同年齡段的海豚的關(guān)鍵點的檢測數(shù)量是不同的,當海豚在幼年時海豚的關(guān)鍵點數(shù)量為200到760之間;當海豚的關(guān)鍵點數(shù)量在800到1200之間時海豚的年齡為青年;當海豚成年以后,體表的膚色將轉(zhuǎn)變?yōu)榘咨?,關(guān)鍵點的數(shù)量檢測為0到200間。因此,可以根據(jù)海豚圖像檢測的關(guān)鍵點的數(shù)量來估計海豚的年齡,或者根據(jù)海豚的年齡來估計海豚體表關(guān)鍵點的數(shù)量。
建立完生長模型之后,使用SIFT算法提取特征點,進行特征匹配,SIFT算法的主要思路是:首先對圖像進行降采樣建立新的采樣金字塔,之后使用不同方差的高斯模板對每層的圖像建立尺度空,然后通過對金字塔中的相鄰的圖像相減建立差分金字塔,并且在差分金字塔中的圖像中尋找極值點,最后建立描述符將極值點表述出來。SIFT特征還具有高度的不同性,可識別性,能夠在一個具有大量特征的數(shù)據(jù)庫中進行相似度匹配。該算法具有3個步驟:尺度空間構(gòu)造、尺度空間極值檢測、SIFT特征描述。
SIFT算法要做的是不同的尺度空間中尋找圖像中存在的被隱藏了的關(guān)鍵點,SIFT算法中圖像尺度空間的建立是通過不同參數(shù)的高斯模糊模板來建立的。高斯模糊是通過以服從二維高斯分布的離散的高斯模板與源圖像進行卷積,以此來達到圖像模糊的效果。
N維空間正太分布方程為:
其中σ是高斯模板的標準差,σ值越大,圖像越模糊(平滑)。r為模糊半徑,模糊半徑是指模板元素到模板中心的距離。如二維模板大小為m*n,則模板上的的元素(x,y)對應的高斯計算公式為:
在二維空間中,這個公式繪制的圖像即一維的正太分布旋轉(zhuǎn)360度后的圖像,最高點為均值所在位置。
所謂尺度空間的構(gòu)造,也就是說通過使用不同的方差σ的高斯函數(shù)對源圖像進行卷積以達到不同的圖像。σ的值越大,那么經(jīng)過模糊后的尺度圖像越模糊,σ的值越小則模糊后的圖像相對清晰。這個不同尺度空間的圖像模擬了人眼在看一幅圖像時遠近變化的情況,當人眼距離圖像遠時,即σ大時,看到的圖像模糊度大,隨著距離的漸漸變小,也就是σ漸漸變小,圖像的模糊度也不斷變小。在本文中高斯模糊采用σ為0.5的高斯模糊模板構(gòu)造尺度空間。
一、尺度空間極值檢測
在尺度空間中分布的的像素點,在這些像素點中有些點是不因圖像的旋轉(zhuǎn)和平移而改變的,這些點可以作為圖像的特征點來對圖像就那些描述,當特征點大于3個時,就可以在對圖像進行粗略的描述了。因此尺度空間極值檢測就是為了通過對圖像中的極值點進行遍歷檢測出這些點,要完成對尺度空間的極值檢測需要一下步驟:構(gòu)建高斯金字塔、構(gòu)建高斯差分金字塔和極值檢測、方向賦值。
1、高斯金字塔
首先對原圖像中的像素點進行隔點的降采樣,得出圖像后,再對該圖像進行采樣,采樣的層數(shù)根據(jù)公式:
n=log2{min(M,N)}-t,t∈[0,log2{min(M,N)}]
n為采樣的層數(shù),其中M,N為原圖像的大小,t為塔頂圖像的最小維數(shù)的對數(shù)。本文的圖像的t為64,min(M,N)=1024,那么n為4.
將降采樣后的4幅圖像依次進行不同尺度的高斯模糊,構(gòu)建尺度空間,每一幅圖像將構(gòu)建由8個尺度的尺度空間。
2、構(gòu)建高斯差分金字塔
高斯差分金字塔的構(gòu)造即是通過在高斯金字塔中的相鄰的兩層圖像進行相減得到的。
3、極值檢測
關(guān)鍵點在高斯差分金字塔中檢測出所在位置即是圖像中的極值點所在的位置。極值點的尋找按照以下步驟:首先利用高斯差分金字塔尋找出一幅圖像中的極值點,并記錄。然后,將尋找到的局部極值點與該圖像相鄰的兩幅圖像中對應位置點的像素進行比較,如果依然為極值點,那么改點可以作為極值點。
4、方向賦值
SIFT算法中的關(guān)鍵點需要滿足旋轉(zhuǎn)不變性,因此需要選擇合適的方式來對關(guān)鍵點賦值, 賦值依據(jù)則是關(guān)鍵點的局部圖像結(jié)構(gòu)。關(guān)鍵點的方向是通過其領(lǐng)域像素的梯度分布特性來確定,再使用圖像的梯度直方圖法來求關(guān)鍵點局部結(jié)構(gòu)的穩(wěn)定方向,這樣由于是通過鄰域共同確定的,可以再圖像發(fā)生旋轉(zhuǎn)時方向不變。每個點L(x,y)的梯度的模m(x,y)與方向θ(x,y)可以通過下面的公式得到:
其中L(x,y)所用的尺度為關(guān)鍵的所用的尺度。
將關(guān)鍵點領(lǐng)域的像素點的梯度以及方向均計算出來后,SIFT算法使用直方圖統(tǒng)計出在不同方向上的梯度的累加值。在直方圖中不同的梯度方向,梯度的累加統(tǒng)計值是不同的,其中梯度累加值最大的柱對應的梯度方向即可作為關(guān)鍵點的方向。但是在統(tǒng)計圖中容易出現(xiàn)方向的累加值是相近的,因此SIFT算法規(guī)定,當其他方向的柱的大小大于等于最大值的80%時,并且其對應的梯度方向也可以作為關(guān)鍵點的另一個梯度方向,也就是或一個關(guān)鍵點可以擁有不只一個方向,但是都是和領(lǐng)域的像素有關(guān)的。
二、SIFT特征描述
在上面的圖像特征的處理中,已經(jīng)找到關(guān)鍵點,并且給關(guān)鍵點賦予了位置、尺度和方向信息。但是需要有一組特殊的關(guān)鍵點向量來對圖像的關(guān)鍵點進行描述,這個關(guān)鍵點不但包括關(guān)鍵點,也包括關(guān)鍵點周圍對其有貢獻的像素點。描述子將被用來作為目標匹配的依據(jù)(所以描述子應該具有較高的獨特性,以保證匹配率)。
以關(guān)鍵點為中心取8*8的窗口。如圖5所示,圖5a中的圓心即為關(guān)鍵點所在的位置,而在圓中每個小的基本方格所代表的為一個像素點,方格中的箭頭的方向代表該像素點的方向,而箭頭的長度的模值代表的是該像素點的梯度大小。將這些方格劃分為4*4個組,在每組中使用統(tǒng)計的方法得出每組的梯度方向和梯度大小,最后這些不同的組的梯度,方向共同組成一組向量,這組向量即可用來對關(guān)鍵點進行描述,即為描述符。由于是根據(jù)關(guān)鍵點領(lǐng)域像素點生成的描述符,因此對噪聲具有較強的抑制能力。綜上所述,提取圖像SIFT特征點機器特征向量的流程如圖6。
由于SIFT算法在特征點提取方面的特點,關(guān)鍵點能夠準確的描述出圖像的信息,并且不因圖像的旋轉(zhuǎn)和平移而影響,因此,本文采用的匹配策略是通過關(guān)鍵點的匹配數(shù)來判定圖像中海豚的身份。本文采用的是有珠江口海豚保護基地提供的海豚圖像。并且在提前已經(jīng)將經(jīng)過處理后的圖像進行了存儲,列為比對的模板。關(guān)于海豚圖像匹配實驗,分為三組來進行: 正常圖像匹配實驗、部分圖像遮擋實驗、旋轉(zhuǎn)圖像實驗。設(shè)輸入圖像檢測到的關(guān)鍵點數(shù)為M,模板的關(guān)鍵點數(shù)為N,匹配成功的關(guān)鍵點數(shù)為K,那么匹配率為δ,
最后在匹配上提出與三位模型結(jié)合的方案進行識別,根據(jù)三維模型的三維性,從三個坐標系不同角度對海豚體表的斑點數(shù)已經(jīng)分布進行識別。
隨著計算機性能的不斷提高,圖像處理的應用也越來越深入到各行各業(yè)。圖像識別技術(shù)在海洋動物保護領(lǐng)域同樣有著廣泛的應用前景和高效的識別效果。
海洋生物中海豚的種類很多,分布也很廣,但是在大量捕殺的情況下數(shù)量也在不斷的下降,成為了全球的重點保護動物,因此加強對海豚種群的保護不僅保護了物種的多樣性,并且也將為我國保留了一份寶貴的自然財富。野生海豚研究保護專家在對野生海豚種群進行研究時,一般是通過拍攝海豚的照片,之后根據(jù)照片中的海豚的體表的特征來人為的估算海豚的年齡與個體。這種人工的識別方法工作量大,錯誤率高,不利于海豚研究,因此,需要探求一種新的機器識別的方法來解決這些問題。將拍攝的野生海豚的圖像利用圖像識別技術(shù)進行識別,將大大提高海洋保護人員的工作效率。
海豚身份識別的實現(xiàn)主要是對海豚圖片進行目標分割,通過特征提取建立海豚生長模型。海豚圖像的目標分割主要有兩方面的方法:基于灰度圖像的分割和基于彩色圖像的分割。基于灰度圖像的分割應用很廣泛,有很多成熟的算法,如基于閾值的灰度圖像分割算法有分水嶺分割算法,自適應閾值分割算法等算法?;谶吘墮z測的灰度圖像分割時通過對灰度變換較大的區(qū)域進行各像素與其鄰域的梯度的變化規(guī)律來判斷邊緣的,可以通過一階導數(shù)或二階導數(shù)來應對不同的圖像分割。而彩色圖像分割時通過其各個維度的色彩空間的不同,對圖像信息的表述的不同,在這些色彩空間中去尋找目標所代表的色彩信息。色彩空間有RGB色彩空間、HSV色彩空間等,在不同的色彩空間中的側(cè)重表示的圖像的信息是不同的,不同的圖像可以根據(jù)需要選擇不同的色彩空間。
本發(fā)明使用基于灰度圖像的分割算法進行分割,對分割后的結(jié)果進行特征提取,然后對海豚圖像在灰度圖像中的分割的特點進行分析,提出了基于聚類算法的彩色圖像目標分割算法。同時,在面對更復雜的圖像,目標分割要求跟高的情況,提出了一種手動目標分割算法。針對海豚體表的小目標識別問題,使用形態(tài)學方法將小目標進行處理,在之后的特征提取中能夠準確的表述出來。使用SIFT算法對海豚體表的的特征進行了準確的表述,具備旋轉(zhuǎn),模糊,平移不變型。最后將提出的算法應用到了海豚身份識別系統(tǒng)中,設(shè)計出能夠自動對海豚圖像進行識別分類整理的系統(tǒng)。海豚身份識別方法可以劃分為以下四個步驟:
然后對目標分割后的圖像進行預處理,將海豚圖像中的干擾信息去除,并且對斑點進行處理,突出斑點的特征分布。之后使用SIFT算法對處理后的圖像進行特征提取,利用提取出的關(guān)鍵點與海豚年齡段分布的對應關(guān)系,建立海豚生長模型,經(jīng)過實驗,使用海豚生長模型能夠有效地從海豚圖像中判斷出海豚所處的年齡段。
步驟1:提出了基于聚類的彩色圖像區(qū)域分割算法以及手動目標分割算法。彩色圖像目標分割技術(shù)利用了一種均值聚類的思想。將海豚圖像背景作為一類,將海豚目標作為一類。在RGB色彩空間中利用均值聚類將海豚圖像中的海水聚類,之后進行去除,那么得到的就是目標海豚圖像。
步驟2:對目標分割后的圖像進行預處理,將海豚圖像中的干擾信息去除,并且對斑點進行處理,突出斑點的特征分布。通過Prewitt算子進行邊緣檢測,并通過去邊緣;斑點膨脹;斑點聚合進行形態(tài)學處理。
步驟3:使用SIFT算法對處理后的圖像進行特征提取,利用提取出的關(guān)鍵點與海豚年齡段分布的對應關(guān)系,建立海豚生長模型,利用關(guān)鍵點匹配進行身份識別,使用海豚生長模型能夠有效地從海豚圖像中判斷出海豚所處的年齡段。
步驟4:結(jié)合三維模型結(jié)合目標分割算法和特征提取算法,利用MATLAB平臺開發(fā)了海豚身份識別系統(tǒng),并進行試驗。
本實施所需要的軟件仿真環(huán)境使用MATLAB,在MATLAB上設(shè)計編寫交互操作界面(GUI)。
海豚身份識別系統(tǒng)可以劃分為以下幾個重要的模塊:自動目標分割模塊、手動目標分割模塊、邊緣檢測模塊、去除邊緣模塊、斑點膨脹模塊、特征提取模塊、特征比對模塊、斑點統(tǒng)計模塊。各個功能模塊間的運行是相對獨立的,通過消息進行各個模塊間的交互通信。圖7為系統(tǒng)流程圖。
系統(tǒng)的目標是實現(xiàn)對海豚圖像的自動識別,歸類存儲,那么自動目標分割則是在整個系統(tǒng)中至關(guān)重要的一環(huán)。自動目標分割模塊能夠?qū)斎氲膱D像,自動的檢測出背景海水的色彩的分布范圍,進行抽樣并計算出聚類中心和聚類范圍。自動目標分割后的圖像能夠準確的得到海豚目標,且海水背景以及浪花的影響較小,對之后的處理不影響。自動目標分割模塊的流程圖為圖1。
手動目標分割時對自動目標分割的一個補充,對于一些背景十分復雜,且光線的影響作用過大時或?qū)k嗄繕说姆指罹珳识纫筮^高時,使用手動目標分割。手動目標分割,只需要使用鼠標在源圖像中用藍色的線條畫出需要分割的區(qū)域,起始點與終止點重合后,雙擊鼠標左鍵即可完成手動目標分割。
由于自動目標分割后的圖像時二值圖像,并且斑點處為黑色,而手動目標分割后的圖像 為灰度圖像,因此,邊緣檢測模塊的作用就是將海豚體表的斑點的邊緣檢測出來。但是對于分割后的圖像存在海豚的輪廓邊緣需要在之后的去邊緣模塊中去除。另外,在邊緣檢測模塊中預留了手動操作部分,可以手動的旋轉(zhuǎn)不同的邊緣檢測算法,以此來應對特殊的海豚圖像。去除邊緣模塊,通過形態(tài)學的腐蝕操作與矩陣相乘,在去除海豚輪廓的同時避免了對小的斑點的影響。
斑點膨脹模塊的作用是通過形態(tài)學的處理,對海豚體表的斑點進行處理。通過膨脹操作使得海豚體表的小斑點聚合聚合為一個較大的斑點,由于采用的菱形的結(jié)構(gòu)元素,所以膨脹后的斑點的特征信息得以最大可能的保存。
在本發(fā)明中,海豚體表的斑點除了可以可以作為海豚身份識別的依據(jù)外,還可以作為海豚年齡判斷的依據(jù),通過對體表斑點的聯(lián)通分量的統(tǒng)計,可以根據(jù)圖11估算出海豚所在的年齡段。
本發(fā)明采用的是8連通分量,8連通分量能夠盡可能的將海豚體表的斑點進行統(tǒng)計,并且,能夠進一步彌補在斑點膨脹操作中沒有融合到一起的小斑點的融合問題。
特征提取模塊使用SIFT算法對海豚的斑點進行提取,提取的斑點特征具有旋轉(zhuǎn)、平移不變性,在這個模塊中,完整的實現(xiàn)了SIFT算法,在對海豚體表的斑點特征的關(guān)鍵點的選取中,關(guān)鍵點的梯度以及方向是根據(jù)鄰域的像素的梯度以及方向來共同決定的,這樣就避免了在圖像發(fā)生旋轉(zhuǎn)或平移時出現(xiàn)關(guān)鍵點的方向和梯度模值發(fā)生變化。之后再根據(jù)這些關(guān)鍵的信息進行關(guān)鍵的匹配,當關(guān)鍵點匹配成功率大于0.5時,可以判斷兩幅圖像時對同一條海豚的拍攝。特征提取模塊與特征比對模塊的流程圖為圖8。
在特征提取模塊中,共進行了4次的降采樣,形成了4幅經(jīng)過降采樣的圖像。對每一幅將采樣的圖像建立了不同σ的尺度空間,尺度從σ到8σ。之后對不同尺度下的圖像進行相減,以此建立高斯差分金字塔,最后進行關(guān)鍵點的檢測以及計算出關(guān)鍵點描述矢量。圖9為圖像的比對圖像。
(1)測試結(jié)果:
本發(fā)明采用的是由珠江口海豚保護基地提供的190張中華白海豚的圖像進行實驗,以此來評價海豚識別系統(tǒng)中的海豚圖像目標分割以及海豚生長模型在海豚身份識別系統(tǒng)中的性能。在這190張海豚圖像中,均標注了海豚的編號,以便于最后對系統(tǒng)的識別結(jié)果進行判斷。
系統(tǒng)在第一次初始化后,由于系統(tǒng)還沒有對圖像進行識別,因此需要首先使用一部分圖像在系統(tǒng)中建立識別模板。本發(fā)明使用了100張圖像效果的圖像首先進行系統(tǒng)識別建立了系統(tǒng)的初步識別模板。系統(tǒng)的模板是根據(jù)檢測出的海豚的額年齡段進行分組的,利用年齡段的分組可以提高系統(tǒng)的識別效率。在系統(tǒng)測試中,將系統(tǒng)的功能分為兩種:A是一種是采用了 海豚生長模型作為加快身份識別系統(tǒng)效率的;B是一種沒有加入海豚生長模型的。其中隨機選取了30張圖像作為測試的數(shù)據(jù)集。并且進行了5次測試。測試的結(jié)果圖12至圖16所示。
(2)結(jié)果分析:
從測試結(jié)果中可以看出,使用了海豚生長模型作為輔助判斷海豚的身份的系統(tǒng)的識別率高于沒有使用海豚生長模型的系統(tǒng),并且由于在識別的時間上也低于沒有使用海豚生長模型的系統(tǒng)。本發(fā)明對不同的海豚圖像進行識別比對具有很高的適用性。