汪坤 史偉民 李建強 彭來湖
摘 要:針對織物圖像特征提取和檢測問題,研究了一種基于卷積神經(jīng)網(wǎng)絡(luò)U-net模型的織物印花分割算法,并根據(jù)織物印花的特點對原有模型進行改進,從而更精確地實現(xiàn)對織物印花圖像的分割。實驗選取100張原始織物印花圖像,并利用人工標注的方法標注出分割好的圖像,作為訓(xùn)練的標簽,將訓(xùn)練圖像和標簽通過翻轉(zhuǎn)、裁剪等數(shù)據(jù)增強算法得到1000張圖像和對應(yīng)標簽進行訓(xùn)練。實驗對比了本文算法和一些傳統(tǒng)分割算法,結(jié)果表明,本文的分割算法能夠更有效地分割出織物印花圖案。
關(guān)鍵詞:織物印花;圖像分割;U-net;深度學(xué)習
中圖分類號: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
織物印花是織物生產(chǎn)過程中重要的環(huán)節(jié),對于印花質(zhì)量的檢測必不可少。由于印花圖案復(fù)雜多樣,且大部分具有不規(guī)則性,印花花紋常為隨機分布,檢測其質(zhì)量有著很大的難度,而織物背景則相對簡單。因此,對于后續(xù)的織物質(zhì)量檢測(如疵點檢測等),印花部分和背景部分的檢測方法有時會有不同,有時只需考慮印花部分的檢測。如果能夠精確地將印花圖案從整體織物圖案中分割出來,對印花部分和背景部分分別檢測,那么無論是對于檢測效率還是檢測準確率都有著很大的幫助。
近年來,在圖像分割領(lǐng)域,有著很多不錯的成果。傳統(tǒng)圖像分割算法有很多,主要包括以下幾種。
基于閾值的分割,通過設(shè)置不同的灰度值閾值,將整體圖像按不同灰度等級分割為不同的區(qū)域。Otsu[1]提出閾值分割領(lǐng)域經(jīng)典的最大類間方差法。劉健莊等[2]在Otsu的基礎(chǔ)上提出一種二維閾值分割法,同時考慮當前點的和其相鄰區(qū)域像素點的灰度信息,從而達到更好的分割效果。
基于聚類的分割,將像素點按照一定規(guī)律分為幾個不同的區(qū)域,并對每個像素點進行分類,判斷每個點所屬的區(qū)域,從而進行分類。K均值[3]聚類通過分析圖像的顏色信息進行聚類。模糊C均值[4]算法引入模糊理論,使得算法能夠更好的收斂。
基于區(qū)域生長[5]的分割,先在圖像中找到若干個初始點,再將初始點鄰域的像素點根據(jù)一定準則合并形成新的區(qū)域,不斷合并區(qū)域,直到無法合并為止。
隨著深度學(xué)習[6]的發(fā)展,各類圖像檢測問題都應(yīng)用到深度學(xué)習,其中卷積神經(jīng)網(wǎng)絡(luò)(CNN)[7-8]仿造生物視知覺構(gòu)造,對于解決圖像處理問題有著很好的效果。本文采用卷積神經(jīng)網(wǎng)絡(luò)U-net[9]模型對織物印花進行分割,并根據(jù)織物印花圖片的特點以及實驗中遇到的問題對模型進行了一定的改進。經(jīng)過實驗,該分割算法效果很好。
1 改進U-net織物印花分割模型
1.1 改進U-net模型框架結(jié)構(gòu)
傳統(tǒng)U-net模型常用于語意分割,其模型結(jié)構(gòu)如圖1所示,其結(jié)構(gòu)形如字母“U”,因此該模型被命名為U-net。
如圖1所示,模型左邊為一個下采樣過程,可以理解為一個編碼的過程,將尺寸較大的原始圖片通過多層的卷積核卷積并池化壓縮到一個較小的尺寸,同時提取出圖像的特征。再通過右側(cè)上采樣過程解碼,通過反卷積將特征圖放大,同時為了得到更多原始圖像信息,將左側(cè)的一些淺層特征連接到反卷積后的特征圖上,最終將特征圖恢復(fù)到原圖尺寸,從而得到像素級的分割預(yù)測圖。
本文使用的織物印花圖案由于花型復(fù)雜多樣,且具有不規(guī)則性,印花大小也不相同,原始U-net模型結(jié)構(gòu)較淺,無法精確提取到織物印花的特征,得到的分割效果不夠理想,因此對U-net模型進行了一定的改進,利用更深的VGG16模型取代左側(cè)下采樣部分,并在模型中加入空洞卷積[10]以提高卷積核感受野。改進U-net模型整體結(jié)構(gòu)如圖2。
牛津大學(xué)在2014年提出了VGG16模型,該模型的突出特點是簡單實用,該模型在圖像分類和目標檢測上都有很好的效果。
VGG16模型常被用來提取圖像特征。圖2中左側(cè)藍色下采樣結(jié)構(gòu)即為VGG16模型,原VGG16模型共13個卷積層和3個全連接層,本文算法舍棄了最后3個全連接層,只通過多層卷積從輸入圖片中提取出32×48×512的特征圖作為右側(cè)上采樣的輸入。
相比原U-net左側(cè)下采樣部分,VGG16模型卷積層更多,結(jié)構(gòu)更深,因此能提取到更多輸入織物圖片的細節(jié)特征。
1.3 空洞卷積
感受野是卷積神經(jīng)網(wǎng)絡(luò)中一個重要的參數(shù),它表示經(jīng)過卷積池化后的特征圖中每個像素點映射到輸入圖片的區(qū)域的大小。很顯然,感受野越大,特征圖上每個點能蘊含越全局的特征。
空洞卷積相比普通卷積,在卷積核的每行每列之間加入空白的行和列,普通卷積和空洞卷積的卷積核如圖3所示。普通3×3卷積核每個點都表示一個參數(shù),3×3空洞卷積核只在奇數(shù)行和列有參數(shù),雙數(shù)行和列用零填充??梢钥吹娇斩淳矸e相比普通卷積在參數(shù)量不變的情況下增大了感受野,同為9個參數(shù)的3×3卷積核,空洞卷積的感受野增大到了5×5,從而提高了卷積模型的學(xué)習能力,同時減小了參數(shù)過多可能導(dǎo)致的過擬合問題。
改進模型在U-net模型左側(cè)增加了多個空洞卷積。
1.4 激活函數(shù)
卷積為線性過程,為了提高深層網(wǎng)絡(luò)的表達能力,需要引入非線性[11]的激活函數(shù)。
U-net常用的激活函數(shù)為ReLU[12]函數(shù),其表達式為式(1):
ReLU=max(0,x)(1)
ReLU函數(shù)具有計算速度和收斂速度快的優(yōu)點,但由于在輸入為負時,它的值為零,在某些情況下會導(dǎo)致一些神經(jīng)元永遠不會被激活,導(dǎo)致資源浪費。為了避免這個問題,模型采用PReLU[13]激活函數(shù),其表達式如式(2):
PReLU=max(αx,x)(2)
其中α值很小,一般取0.01,PReLU與ReLU右半部分圖像完全一致,不同點是左半部分不為零,而是一個很小的負值,理論上說,它具有ReLU的優(yōu)點,且不存在神經(jīng)元不會被激活的問題。
1.5 損失函數(shù)
分別使用L1損失和L2損失進行對比實驗。設(shè)標簽圖片每個點的標簽值為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 準確率評估
為了更好的評估花型分割結(jié)果的好壞,引入準確率評估如式(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)經(jīng)過二值化得到的結(jié)果。
式(5)表示準確率為標簽值和輸出值相同的像素點占總像素點的比率。
2 實驗與分析
2.1 數(shù)據(jù)集與數(shù)據(jù)增強
采用TILDA紡織紋理數(shù)據(jù)庫,并通過手動標注的方法對織物印花進行分割,得到訓(xùn)練標簽圖,圖4為兩組訓(xùn)練圖片和標簽圖。對原始數(shù)據(jù)集約100張圖片進行標注,之后通過翻轉(zhuǎn)、切割等數(shù)據(jù)增強方法將數(shù)據(jù)集擴充到1 000張,其中800張作為訓(xùn)練集進行訓(xùn)練,其余200張作為測試集測試模型預(yù)測結(jié)果。圖5為數(shù)據(jù)增強中裁剪和翻轉(zhuǎn)示意圖。
2.2 模型訓(xùn)練
2.2.1 實驗環(huán)境
實驗使用Inter(R)Core (TM)i58400 2.8 GHz處理器,GPU為英偉達GTX1060 6 GB,內(nèi)存為雙通道16 GB;軟件環(huán)境為WIN10 64位,python3.6,tensorflow1.10.0。
2.2.2 模型訓(xùn)練
在上述實驗環(huán)境下對訓(xùn)練圖片進行訓(xùn)練,總共進行約600輪迭代,初始學(xué)習率為0.001,并隨著訓(xùn)練的進行,不斷減小學(xué)習率。分別采用原U-net模型和改進U-net模型進行訓(xùn)練,同時比較不同損失函數(shù)對訓(xùn)練的影響,訓(xùn)練過程中利用tensorflow可視化工具tensorboard對訓(xùn)練可視化,監(jiān)測訓(xùn)練過程。
訓(xùn)練過程中學(xué)習率變化如圖6所示,隨著迭代次數(shù)增加,學(xué)習率不斷減小。
圖7表示分別使用L1損失函數(shù)和L2損失函數(shù)時,改進模型的準確率對比??梢钥吹?,隨著迭代次數(shù)增加,準確率不斷提升,到200輪迭代左右時準確率趨于穩(wěn)定,另外,使用L1損失函數(shù)能得到更好的分割結(jié)果。
圖8、圖9表示原U-net和改進U-net在訓(xùn)練過程中損失以及準確率變化對比。從圖中可以看到,由于原模型結(jié)構(gòu)較淺,收斂速度相對較快,但穩(wěn)定后最終結(jié)果無論是訓(xùn)練損失還是準確率,改進U-net模型相比原模型都有很大的優(yōu)勢。
2.3 結(jié)果和分析
對比了不同損失函數(shù)下的分割結(jié)果,同時對改進模型與原U-net模型的分割結(jié)果進行了比較。將測試集圖片通過訓(xùn)練好的模型得到輸出矩陣,將矩陣轉(zhuǎn)換為灰度圖像。
從測試集中選取幾張圖片展示分割結(jié)果,如圖10、圖11所示。
圖10(c)、(d)表示在L1、L2損失下部分測試圖片的輸出結(jié)果。
從圖9和表1可以看出,使用L1損失函數(shù)時得到的分割結(jié)果與標簽值基本相同,準確率達98.33%,而使用L2損失函數(shù)時分割結(jié)果與標簽結(jié)果有一定差距,準確率為93.55%。
從圖11和表2可以看到,由于原U-net模型網(wǎng)絡(luò)結(jié)構(gòu)較淺,無法完整提取織物印花信息,分割效果很不理想,分割準確率為88.67%。
3 結(jié) 論
采用改進U-net模型對織物印花進行分割,通過對U-net模型的改進以及訓(xùn)練參數(shù)的調(diào)節(jié),總體來說能得到比較好的分割結(jié)果。另外,如果有合適且足夠多的訓(xùn)練樣本,分割方法不僅對織物印花分割,在其他圖像的分割上都能有很好的效果。
當然,算法仍然有很多可以改進的地方,主要有以下幾點。
a)數(shù)據(jù)集較小,由于采用人工標定,人力有限,數(shù)據(jù)集圖片數(shù)量相對較少,容易產(chǎn)生過擬合,對不同種類織物圖片泛化能力較差。
b)分割只是對將印花從背景中分離出來,沒有對不同印花進行區(qū)分,接下來主要考慮研究多種類的分割。
參考文獻:
[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].自動化學(xué)報,1993,19(1):101-105.
[3]李鵬飛,張宏偉.基于k-means聚類的紡織品印花圖像區(qū)域分割[J].西安工程大學(xué)學(xué)報,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īng)網(wǎng)絡(luò)在計算機視覺中的應(yīng)用研究綜述[J].數(shù)據(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]李明威.圖像分類中的卷積神經(jīng)網(wǎng)絡(luò)方法研究[D].南京:南京郵電大學(xué),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.