汪坤 史偉民 李建強 彭來湖



摘 要:針對織物圖像特征提取和檢測問題,研究了一種基于卷積神經網絡U-net模型的織物印花分割算法,并根據織物印花的特點對原有模型進行改進,從而更精確地實現對織物印花圖像的分割。實驗選取100張原始織物印花圖像,并利用人工標注的方法標注出分割好的圖像,作為訓練的標簽,將訓練圖像和標簽通過翻轉、裁剪等數據增強算法得到1000張圖像和對應標簽進行訓練。實驗對比了本文算法和一些傳統分割算法,結果表明,本文的分割算法能夠更有效地分割出織物印花圖案。
關鍵詞:織物印花;圖像分割;U-net;深度學習
中圖分類號:TS101 ?文獻標志碼:A
文章編號:1009-265X(2021)03-0045-06
Abstract: Aiming at the problem of fabric image feature extraction and detection, this paper studies a fabric printing segmentation algorithm based on U-net model of convolutional neural network, and improves the original model according to the characteristics of fabric printing so as to more accurately segment the fabric printed image. In the experiment, 100 original fabric printing images were selected, and the segmented images were marked by manual labeling as the training labels. 1000 images and corresponding labels obtained by data enhancement algorithms such as flipping and clipping were trained. The experiment was conducted to compare this algorithm and some traditional segmentation algorithms. The results show that the segmentation algorithm could more effectively segment the fabric printed pattern.
Key words: fabric printing; image segmentation; U-net; deep learning
織物印花是織物生產過程中重要的環節,對于印花質量的檢測必不可少。由于印花圖案復雜多樣,且大部分具有不規則性,印花花紋常為隨機分布,檢測其質量有著很大的難度,而織物背景則相對簡單。因此,對于后續的織物質量檢測(如疵點檢測等),印花部分和背景部分的檢測方法有時會有不同,有時只需考慮印花部分的檢測。如果能夠精確地將印花圖案從整體織物圖案中分割出來,對印花部分和背景部分分別檢測,那么無論是對于檢測效率還是檢測準確率都有著很大的幫助。
近年來,在圖像分割領域,有著很多不錯的成果。傳統圖像分割算法有很多,主要包括以下幾種。
基于閾值的分割,通過設置不同的灰度值閾值,將整體圖像按不同灰度等級分割為不同的區域。Otsu[1]提出閾值分割領域經典的最大類間方差法。劉健莊等[2]在Otsu的基礎上提出一種二維閾值分割法,同時考慮當前點的和其相鄰區域像素點的灰度信息,從而達到更好的分割效果。
基于聚類的分割,將像素點按照一定規律分為幾個不同的區域,并對每個像素點進行分類,判斷每個點所屬的區域,從而進行分類。K均值[3]聚類通過分析圖像的顏色信息進行聚類。模糊C均值[4]算法引入模糊理論,使得算法能夠更好的收斂。
基于區域生長[5]的分割,先在圖像中找到若干個初始點,再將初始點鄰域的像素點根據一定準則合并形成新的區域,不斷合并區域,直到無法合并為止。
隨著深度學習[6]的發展,各類圖像檢測問題都應用到深度學習,其中卷積神經網絡(CNN)[7-8]仿造生物視知覺構造,對于解決圖像處理問題有著很好的效果。本文采用卷積神經網絡U-net[9]模型對織物印花進行分割,并根據織物印花圖片的特點以及實驗中遇到的問題對模型進行了一定的改進。經過實驗,該分割算法效果很好。
1 改進U-net織物印花分割模型
1.1 改進U-net模型框架結構
傳統U-net模型常用于語意分割,其模型結構如圖1所示,其結構形如字母“U”,因此該模型被命名為U-net。
如圖1所示,模型左邊為一個下采樣過程,可以理解為一個編碼的過程,將尺寸較大的原始圖片通過多層的卷積核卷積并池化壓縮到一個較小的尺寸,同時提取出圖像的特征。再通過右側上采樣過程解碼,通過反卷積將特征圖放大,同時為了得到更多原始圖像信息,將左側的一些淺層特征連接到反卷積后的特征圖上,最終將特征圖恢復到原圖尺寸,從而得到像素級的分割預測圖。
本文使用的織物印花圖案由于花型復雜多樣,且具有不規則性,印花大小也不相同,原始U-net模型結構較淺,無法精確提取到織物印花的特征,得到的分割效果不夠理想,因此對U-net模型進行了一定的改進,利用更深的VGG16模型取代左側下采樣部分,并在模型中加入空洞卷積[10]以提高卷積核感受野。改進U-net模型整體結構如圖2。
牛津大學在2014年提出了VGG16模型,該模型的突出特點是簡單實用,該模型在圖像分類和目標檢測上都有很好的效果。
VGG16模型常被用來提取圖像特征。圖2中左側藍色下采樣結構即為VGG16模型,原VGG16模型共13個卷積層和3個全連接層,本文算法舍棄了最后3個全連接層,只通過多層卷積從輸入圖片中提取出32×48×512的特征圖作為右側上采樣的輸入。
相比原U-net左側下采樣部分,VGG16模型卷積層更多,結構更深,因此能提取到更多輸入織物圖片的細節特征。
1.3 空洞卷積
感受野是卷積神經網絡中一個重要的參數,它表示經過卷積池化后的特征圖中每個像素點映射到輸入圖片的區域的大小。很顯然,感受野越大,特征圖上每個點能蘊含越全局的特征。
空洞卷積相比普通卷積,在卷積核的每行每列之間加入空白的行和列,普通卷積和空洞卷積的卷積核如圖3所示。普通3×3卷積核每個點都表示一個參數,3×3空洞卷積核只在奇數行和列有參數,雙數行和列用零填充。可以看到空洞卷積相比普通卷積在參數量不變的情況下增大了感受野,同為9個參數的3×3卷積核,空洞卷積的感受野增大到了5×5,從而提高了卷積模型的學習能力,同時減小了參數過多可能導致的過擬合問題。
改進模型在U-net模型左側增加了多個空洞卷積。
1.4 激活函數
卷積為線性過程,為了提高深層網絡的表達能力,需要引入非線性[11]的激活函數。
U-net常用的激活函數為ReLU[12]函數,其表達式為式(1):
ReLU=max(0,x)(1)
ReLU函數具有計算速度和收斂速度快的優點,但由于在輸入為負時,它的值為零,在某些情況下會導致一些神經元永遠不會被激活,導致資源浪費。為了避免這個問題,模型采用PReLU[13]激活函數,其表達式如式(2):
PReLU=max(αx,x)(2)
其中α值很小,一般取0.01,PReLU與ReLU右半部分圖像完全一致,不同點是左半部分不為零,而是一個很小的負值,理論上說,它具有ReLU的優點,且不存在神經元不會被激活的問題。
1.5 損失函數
分別使用L1損失和L2損失進行對比實驗。設標簽圖片每個點的標簽值為g(i,j),模型輸出圖片每個點的值為y(i,j),其中i,j分別為像素點的寬和高。w,h分別為圖片的寬和高。
L1損失為:
lossL1=1w·h∑w,hi,jyi,j-gi,j(3)
L2損失為:
lossL2=1w·h∑w,hi,jyi,j-gi,j2(4)
1.6 準確率評估
為了更好的評估花型分割結果的好壞,引入準確率評估如式(5)、式(6)。
acc=1w·h∑w,hi,joi,j⊙g(i,j)(5)
oi,j=1yi,j>0.50yi,j<0.5(6)
g(i,j)為點(i,j)的標簽值,屬于前景時為1,屬于背景時為0,o(i,j)為輸出y(i,j)經過二值化得到的結果。
式(5)表示準確率為標簽值和輸出值相同的像素點占總像素點的比率。
2 實驗與分析
2.1 數據集與數據增強
采用TILDA紡織紋理數據庫,并通過手動標注的方法對織物印花進行分割,得到訓練標簽圖,圖4為兩組訓練圖片和標簽圖。對原始數據集約100張圖片進行標注,之后通過翻轉、切割等數據增強方法將數據集擴充到1 000張,其中800張作為訓練集進行訓練,其余200張作為測試集測試模型預測結果。圖5為數據增強中裁剪和翻轉示意圖。
2.2 模型訓練
2.2.1 實驗環境
實驗使用Inter(R)Core (TM)i58400 2.8 GHz處理器,GPU為英偉達GTX1060 6 GB,內存為雙通道16 GB;軟件環境為WIN10 64位,python3.6,tensorflow1.10.0。
2.2.2 模型訓練
在上述實驗環境下對訓練圖片進行訓練,總共進行約600輪迭代,初始學習率為0.001,并隨著訓練的進行,不斷減小學習率。分別采用原U-net模型和改進U-net模型進行訓練,同時比較不同損失函數對訓練的影響,訓練過程中利用tensorflow可視化工具tensorboard對訓練可視化,監測訓練過程。
訓練過程中學習率變化如圖6所示,隨著迭代次數增加,學習率不斷減小。
圖7表示分別使用L1損失函數和L2損失函數時,改進模型的準確率對比。可以看到,隨著迭代次數增加,準確率不斷提升,到200輪迭代左右時準確率趨于穩定,另外,使用L1損失函數能得到更好的分割結果。
圖8、圖9表示原U-net和改進U-net在訓練過程中損失以及準確率變化對比。從圖中可以看到,由于原模型結構較淺,收斂速度相對較快,但穩定后最終結果無論是訓練損失還是準確率,改進U-net模型相比原模型都有很大的優勢。
2.3 結果和分析
對比了不同損失函數下的分割結果,同時對改進模型與原U-net模型的分割結果進行了比較。將測試集圖片通過訓練好的模型得到輸出矩陣,將矩陣轉換為灰度圖像。
從測試集中選取幾張圖片展示分割結果,如圖10、圖11所示。
圖10(c)、(d)表示在L1、L2損失下部分測試圖片的輸出結果。
從圖9和表1可以看出,使用L1損失函數時得到的分割結果與標簽值基本相同,準確率達98.33%,而使用L2損失函數時分割結果與標簽結果有一定差距,準確率為93.55%。
從圖11和表2可以看到,由于原U-net模型網絡結構較淺,無法完整提取織物印花信息,分割效果很不理想,分割準確率為88.67%。
3 結 論
采用改進U-net模型對織物印花進行分割,通過對U-net模型的改進以及訓練參數的調節,總體來說能得到比較好的分割結果。另外,如果有合適且足夠多的訓練樣本,分割方法不僅對織物印花分割,在其他圖像的分割上都能有很好的效果。
當然,算法仍然有很多可以改進的地方,主要有以下幾點。
a)數據集較小,由于采用人工標定,人力有限,數據集圖片數量相對較少,容易產生過擬合,對不同種類織物圖片泛化能力較差。
b)分割只是對將印花從背景中分離出來,沒有對不同印花進行區分,接下來主要考慮研究多種類的分割。
參考文獻:
[1]OTSU N. A Threshold Selection Method from Gray Level Histogram[J].IEEE Trans on System Man and Cybernetics,1979,9(1):62-66.
[2]劉健莊,栗文青.灰度圖像的二維Otsu自動閾值分割[J].自動化學報,1993,19(1):101-105.
[3]李鵬飛,張宏偉.基于k-means聚類的紡織品印花圖像區域分割[J].西安工程大學學報,2008,22(5):551-554
[4]SARKAR J P, SAHA I, MAULIK U. Rough possibilistic type-2 fuzzy c-means clustering for MR brain image segmentation[J].Applied Soft Computing,2016(46):527-536.
[5]FAN JIANPING, ZENG GUIHUA, Body M, et al. Seeded region growing: an extensive and comparative study[J].Pattern Recognition Letters,2017,26(8):1139-1156.
[6]LECUN Y, BENGIO Y, HINTON G. Deep learning[J].Nature,2015,521(7553):436-444.
[7]SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale lmage recognition[J].Computer Science,2014,9(4):23-31.
[8]盧宏濤,張秦川.深度卷積神經網絡在計算機視覺中的應用研究綜述[J].數據采集與處理,2016,31(1):1-17.
[9]RONNEBERGER O, FISCHER P, BROX T. U-net: Convolutional networks for biomedical image segmentation[C]//International conference on medical image computing and computer-assisted intervention. Springer, Cham,2015:234-241.
[10]YU F, KOLTUN V. Multi-scale context aggregation by dilated convolutions[J].arXiv preprint arXiv:1511.07122,2015.
[11]李明威.圖像分類中的卷積神經網絡方法研究[D].南京:南京郵電大學,2016.
[12]GLOROT X, BORDES A, BENGIO Y. Deep sparse rectifier neural networks[C]//Proceedings of the fourteenth international conference on artificial intelligence and statistics.2011:315-323.
[13]HE K, ZHAN X, REN S, et al. Delving deep into rectifiers: surpassing human-level performance on image net classification[C].IEEE. International Conference on Computer Vision,2015:1026-1034.