吳 濤, 王倫武, 王倫文, 朱敬成
(國防科技大學電子對抗學院,合肥,230037)
圖像分割一直是計算機視覺領域研究的重要內容之一,通過對圖像中的像素根據其共有特征進行分類,從而實現對不同的物體進行分割,在無人駕駛、人機交互和醫學等領域[1-2]具有重要應用。
對圖像的分割方法大多是基于深度神經網絡的方法[3-5]進行端到端的有監督訓練,能夠自動學習圖像的特征,分割的精度很高,分割效果較為理想。與此同時,其耗費時間長,訓練樣本標記成本高,而且神經網絡的訓練往往需要大量的高質量樣本作為輸入數據集,這些問題的存在成為分割技術在部分領域落地應用的一大阻礙。
由此一些無監督的圖像分割方法被提了出來[6]。文獻[7]提出了一種元學習的方式進行圖像分割,通過探索特定視覺效果的網絡豐富圖像,以無監督的方式學習視覺效果的內部表征,并利用這一知識來區分出圖片中的不同含義。文獻[8]提出的深度模型,通過完全無監督的方式,將兩個完全卷積網絡連接到自動編碼和解碼器中,并進行包括條件隨機場平滑和分層分割等后處理,在Berkeley分割數據集上取得了良好的分割結果。文獻[9]提出了一種基于深度圖像聚類的無監督分割框架,由特征變換子網絡和可訓練深度聚類子網絡組成,在現有的網絡架構基礎上,通過迭代更新簇與簇之間的關聯和簇中心來分配不同簇數的像素。在Berkely數據集上同樣展現了良好的分割性能。文獻[10]提出了一種兩步自監督域自適應方法,使用基于熵的排序進行模型的域間自適應,該方法在大量數據集上取得了較好的分割效果。文獻[11~13]則都是在形成超像素的基礎上對輸入的圖像進行超像素分割,實驗中都展現出了良好的分割性能。
本文針對數據集中目標與背景高度融合的特點,為了提高對一些偽裝特性的識別效果,在不同色域空間上對圖像分割進行了實驗。利用機器學習分割方法對圖片進行預分割,形成空間上連續的超像素結構,并結合深度神經網絡良好的特征提取能力,在預分割的基礎上,對像素進行再次聚類,最終實現分割的效果。
顏色空間實際上是一個三維模型,在顏色的三維空間中,不同的坐標對應著不同顏色。
RGB顏色空間利用三基色紅綠藍作為基準色,通過不同的比例進行疊加混合而成,是根據人眼識別物體的顏色而定義,因此對人類感官的分辨比較友好,見圖1。

圖1 RGB顏色空間
在RGB顏色空間中,大部分顏色C都可以用rgb分量表示出來:
C[r,g,b]r,g,b∈[0,255]
(1)
HLS或HIS顏色空間是用色調、強度或明度、飽和度3個分量表示的顏色空間,能夠更好地對顏色進行數字化處理,見圖2。

圖2 HIS顏色空間
HLS或HIS在空間上是一個圓錐模型,縱軸方向代表的是顏色亮度,RGB轉HIS公式如下:
(2)
(3)
s=1-3min(r,g,b)
(4)
i=(R+G+B)/3×255
(5)
上面將HIS進行了歸一化處理。可以通過式(6)的變化將HIS轉化到正常的范圍。
H=180h/π,S=100s,I=255i
(6)
LAB空間是通過顏色的幾何度量來進行顏色區分,RGB不能直接轉化到LAB空間,需要首先轉換到XYZ空間,轉換過程如下:

(7)
L=116f(Y/Yn)-16
(8)
A=500[f(X/Xn)-f(Y/Yn)]
(9)
B=200[f(Y/Yn)-f(Z/Zn)]
(10)
(11)
式中:Xn、Yn、Zn分別取0.950 456、1.0、1.088 754。
利用圖像的顏色、紋理和亮度等淺層特征,將圖像分割成在空間上連續的不規則像素塊,這種分類的方式是一種粗糙分類,形成的不規則像素塊也被稱為超像素。超像素是一類像素的集合,形成超像素的方式有slic,felzenszwalb和quickshift等方式。
slic是基于k均值聚類,利用一組帶有坐標的五維特征向量,選擇顏色和空間的距離度量進行迭代聚類的超像素圖像分割方式[14]。felzenszwalb[15]是一種最小生成樹的聚類算法,felzenswalb算法并不需要指定算法的聚類個數,會在分割的過程中根據像素的均值不斷進行迭代運算,并不斷進行合適的分割。quickshift[16]是一種基于尋模的聚類方法,該算法將所有的點連接成一棵樹,將每個點都移動到距離最近的高密度鄰域,增加Parzen密度估計[17],從而實現鄰近區域的分割,具有很好的邊界黏附性[18]。
深度神經網絡能夠挖掘圖像的深層次特征,捕捉到圖像的其他細節特征。結合神經網絡和機器學習方式,將基于機器學習粗分類的結果作為標簽值,輸入到神經網絡中進行特征的進一步劃分,能夠提高模型的分割精度。文獻[19]采用了slic算法進行了區域的初步劃分,形成了超像素。本文實驗采用了felzenswalb和quickshift超像素分割方法,并在圖片進入網絡訓練之前進行顏色空間的轉換,在大量數據集上進行實驗后發現,改進的方法具有更高的精度和更少的平均用時。圖3為用于訓練的神經網絡模型。

圖3 深度神經網絡模型
模型的輸入是維度為(3,256,256)的彩色圖像,分別經過1×1、3×3、5×5的卷積進行卷積運算,利用不同尺度的卷積層進行特征的提取,最后對提取到的特征進行融合,得到模型的輸出結果。
算法流程如下:
輸入:input=I #輸入RGB圖片
輸出:output=O #輸出語義分割結果
labels=skimage.segmentation(img) #傳統的機器學習方法得到粗分類標簽
model =Model() #神經網絡初始化
for epoch in epochs:
output=model(image)
target=argmax(output) #根據神經網絡訓練結果,去數值最大者為相應元素的標簽
loss=Cross_entropy(output, target) #交叉熵損失函數
optimizer.SGD(model.parameters) #優化器進行迭代計算
模型實施細節見圖4。在圖4中,原圖片在進行了不同顏色空間轉換后,分為了2個步驟來實施。機器學習分割算法對輸入的數據形成初步分割結果,然后將圖片數據送入神經網絡中進行訓練,通過對不同通道索引出該像素點最大值,得到該像素點的數值標簽,通過在預分割基礎上進行比較,形成更加精細的微調結果,在設置的標簽范圍內進行迭代循環,并得到最終的訓練結果。

圖4 無監督分割模型
實驗計算機配置如下:Inter(R) Core(TM) i7-9700 CPU @3.00 GHz, GeForce 1060Ti GPU(6 GB 顯存)的Windows操作系統。實驗采用pytorch架構,在訓練過程中,采用SGD優化器進行優化,采用交叉熵損失函數進行參數反向傳播。
本次實驗采用公開的圖像數據集COD10K[20]、CHAMELEON[21]和CAMO[22]進行無監督實驗,該數據是包含了海洋、陸地、天空等空間,具有十分豐富的物種類別,圖像構成復雜,背景元素較多,對分割來說具有很大挑戰。
實驗采用交叉熵損失函數,表達式如下:
(1-yi)log(1-pi)]
(12)
采用F1測量作為對單張圖片分割精度的衡量指標。F1測量值是PR曲線的一個平衡點,F1越大,訓練模型的性能越好,計算表達式如下:
(13)
式中:P是準確率;R是召回率。
3.3.1 傳統算法粗分類
傳統的分割算法可以根據圖片中物體的顏色、紋理和亮度等特征,對圖片中像素進行初步聚類,形成大塊區域的超像素圖像,但簡單通過淺層特征進行分類十分容易產生像素分類錯誤的現象。在slic、felz和quickshift經典分割算法中,對圖像進行了實驗,實驗結果見圖5~7。

圖5 slic算法下的粗分類結果

圖6 felz算法下的粗分類結果

圖7 quickshift算法下的粗分類結果
slic是對包含了xy坐標的五維特征的k-means聚類,算法包含有多個參數,具體含義為:
1)n_segments:可選分段輸出圖像中標簽的近似數量;
2)n_compactness(緊湊性):平衡色彩接近度和空間接近度,數值越高,空間接近度越重,使得超像素形狀更加平方。
felz算法是基于有效圖的圖像分割,基于圖像的網絡圖,通過最小生成樹聚類生成多通道的圖像區域。
1)scale是設置觀察級別,規模越大意味著分割的圖像越來越小;對于RGB圖像,該算法使用的是顏色空間的歐式距離進行聚類;
2)min_size是最小分割單元的。
quickshift算法通過將初始數據向量移動到具有更高能級的最近領域模態實現模式搜索。
1)ratio:介于0和1之間平衡色彩空間接近度和圖像空間接近度。較高的值會增加色彩空間的權重;
2)kernel_size:用于平滑樣本密度的高斯內核寬度,越高以為這越少的集群;
3)max_dist:可選數據距離的切點,越高意味著越少的群集。
在上述算法對比中,slic方法對與背景高度相似的圖像分割效果相對較差,許多相鄰像素都存在被錯分和漏分的情況,且對數據的調整也很難對與背景高度的圖像做細致的分割,說明基于k-means方法的分類效果存在局限性,通過顏色進行聚類,使得邊緣像素產生了較大偏差;felz算法能夠對圖像做一個較為精確的分割,但受參數影響較大,在參數選取不合理時,并不能產生較為準確的聚類標簽,屬于不同物體的像素被歸為了同一類標簽;相比slic算法和felz算法,quickshift具有分割結果相對較好,從圖7給出的結果可以看出,quickshift算法對物體的邊緣進行了較為準確地劃分,基本上將待分割物體完整的與周圍環境區分開來。
3.3.2 神經網絡細分類
在經過機器學習的方法粗分類之后,選取了較為準確的分割結果,將其產生的標簽作為聚類的標準。然后將圖像通過神經網絡,利用神經網絡優秀的特征提取能力,提取圖像更深層次的特征,對經過傳統方法分類之后的結果進行微調,做出更精準的分類。對相近且相似的元素進行合并處理,得到更接近真實物體的分割效果。為了充分體現出結合了神經網絡分類算法的分割性能,在3個算法上重復進行了1 000次實驗,original方法是文獻[13]提出的基于slic超像素分割的方法,上述方法的基礎上,使用了felz方法和quickshift方法代替slic方法進行超像素分割。實驗效果見圖8~9和表1。

圖8 訓練損失曲線

圖9 不同算法的f1_score和時間分布圖

表1 結合了神經網絡的算法的訓練耗時和f1_score
從圖9和表1中可以看出,original的效果相對穩定,大部分實驗結果比較集中分布在一定的區域,但總體性能與改進后的算法相比,相對差一些。基于felz的改進算法的穩定性最差,卻能達到最好的分割效果,且平均用時最短,說明能在較短的時間內實現對物體的分割;基于quickshift的改進算法穩定性也相對較差,但對圖片的分割效果上顯得較為集中,大部分實驗數據都集中到小提琴圖的上層區域,體現出其良好的分割性能。
為了進一步探究無監督分割的分割效果,在不同的顏色空間進行了分割實驗。不同的顏色空間之間存在矩陣的相互轉換,在一定程度上,不同的顏色空間對顏色的識別度存在不同的區分,不同色彩分布圖片的分割效果會有所不同。實驗結果見圖10~12和表2~4。

圖10 結合神經網絡的slic算法在不同色域模式下的性能對比

表2 結合神經網絡的slic算法在不同的色域模式下耗時和f1_score

圖11 結合神經網絡的felz算法在不同色域模式下的性能對比

表3 結合神經網絡的felz算法在不同色域模式下的耗時和f1_score

圖12 結合神經網絡的quickshift算法在不同色域模式下的性能對比

表4 結合神經網絡的quickshift算法在不同的色域空間下耗時和f1_score
以上數據顯示,結合了神經網絡提取特征的felz、slic和quickshift算法在不同色域空間表現出不同的性能。在luv空間中,改進后的felz分割算法體現出較好的分割性能,而在slic算法中和quickshift算法中,則最佳的分割效果表現在不同的顏色空間。但不同的顏色空間,在不同算法中性能的體現并不具有偏向性,而是具有的不同的優勢,部分顏色空間能夠實現快速分割,但分割精度不是很高,部分顏色空間分割精度較高,但分割時間不穩定。
本文選取了部分圖片進行了分割測試,從f1_score和訓練消耗時間對算法分割性能進行評判,實驗結果見圖13~15。

圖13 不同顏色空間的測試集在基于slic上的性能對比

圖14 不同顏色空間的測試集在改進的felz上的性能對比

圖15 不同顏色空間的測試集在改進的quickshift上的性能對比
可以看出,提出的算法能夠進行較好的分割,且在運算時間上,大部分分割過程滿足分割實時性的要求。但由于圖片類型的不同和場景帶來的差異,仍還存在部分圖片分割時間過長、分割效果不好的情況,見圖16。

圖16 部分顏色模式下的分割效果
本文針對圖像分割有監督訓練耗時長、訓練成本高的問題,提出了在不同色域空間下對圖像無監督分割方法。由于不同圖像在不同顏色空間中其顏色、紋理和亮度表現出不同差異性。將圖像變換到不同顏色空間,利用felz,slic和quickshift 3種經典的分割算法對圖像進行粗分割,結合一個簡單的神經網絡模型對圖像特征進行再融合、再提取,進一步提高了模型的分割性能。在CAMO,CHAMELEON和COD10K提供的數據集上進行了實驗,結果表明,所提出的方法能夠進行很好地分割,對單張圖片的分割精度最高能達到97.31%。