于振中,秦 嶺
(江南大學物聯(lián)網(wǎng)工程學院,江蘇 無錫 214122)
隨著計算機技術的快速發(fā)展,圖像數(shù)據(jù)正在以火箭般的速度飛速增長,相應的對圖像數(shù)據(jù)的處理技術需求也在快速上漲。尤其是在紡織品布料行業(yè),例如布料外觀的檢測、測量布料密度等。對于服裝設計師而言,當他們根據(jù)偶然看到的服裝發(fā)布會的布料時,想要在布料庫中找尋到這一面料,或是在設計過程中突發(fā)奇想需要一款特定的面料時,如何從成千上萬的布料數(shù)據(jù)庫中快速準確地查找到這一特定的面料,則需要采用計算機圖像檢索技術。
紡織品行業(yè)對于“查詢布料”這樣的需求由來已久,但“找料慢”“找料難”“找料煩”等問題一直尚未得到解決,目前市場上也并沒有切實可行的完整的布料檢索的系統(tǒng),解決這一技術難題成為了整個紡織品行業(yè)都期望的事情。以往布料圖像的檢索工作往往通過有經(jīng)驗的工人手動完成,但是人工的操作方式不僅耗時很長,而且準確率也很難讓人滿意[1]。因此,如何快速、準確地從浩瀚如海的布料圖像數(shù)據(jù)資源中找尋到目標圖像是值得研究的,基于深度學習的布料圖像檢索為這一問題提供了解決方法。
傳統(tǒng)的圖像檢索方法根據(jù)檢索內(nèi)容可分為兩類,一類是基于文本的圖像檢索[2](TBIR,Text Based Image Retrieval),另一類是基于內(nèi)容的圖像檢索[3-4](CBIR,Content Based Image Retrieval)。這兩種檢索方法已經(jīng)在很多行業(yè)得到了廣泛應用,前者主要運用于電子商務等工業(yè)領域,最著名的便是電子商業(yè)平臺搜索產(chǎn)品,后者則在紅外探測、醫(yī)療診斷等方面多有應用。其中基于文本的圖像檢索依賴于人工進行標注,這種由專人憑借個人經(jīng)驗完成的查詢方式不僅檢索效率極低,而且檢索時往往依靠于工人的主觀經(jīng)驗判斷,而對于布料圖像特征來說,每個人觀察到的直觀圖像也存在視覺差異。目前市場上較為常見的便是基于內(nèi)容的圖像檢索,其中基于特征的圖像匹配技術能夠通過計算機技術提取圖像特征,替代了人工檢索的傳統(tǒng)方式,大大提升了檢索的效率和準確率,成為了圖像檢索領域的熱門趨勢,如CM-DC[5]、CM-gist、SURF[6]算子等。盡管這些方法都實現(xiàn)了檢索的目的,但提取出的特征簡單,缺少學習能力,檢索精度低,難以滿足實際應用中復雜環(huán)境多變的要求。尤其是在紡織品行業(yè),設計師不僅僅只是想要“看起來類似”的布料,而是想要找到最為精確的那一種面料,顯然這種傳統(tǒng)方法難以解決這個問題。
一種新的基于深度學習的方法被提出用于紡織品布料圖像檢索。通過對數(shù)據(jù)集圖像數(shù)據(jù)進行特征提取,獲取到能夠表示這些圖像的特征,然后對特征進行相似性度量,根據(jù)度量結果得到相似性排序,于是得到了最為相似的兩個特征,其分別代表的便是與待查詢布料圖像最相似的布料圖像[7-8]。
圖像預處理指的是將圖像中與特征無關的、影響機器判斷的無效信息剔除,在保留關鍵信息的同時,突出并強化布料圖像的關鍵特征,也方便后續(xù)的特征提取,提高特征的準確性和圖像匹配的可靠性。
2.1.1 圖像裁剪
紡織廠商提供的布料原型圖卡往往包含著毛邊和標簽等無關信息,這些無關信息在計算機進行模型訓練或者學習時往往會造成很高的誤差影響,所以我們首先需要做的便是將這些布料原型圖卡(如圖1 所示)的無關信息切除,得到僅包含布料信息的圖像(如圖2 所示)[9]。
圖1 布料原型
圖2 布料圖
2.1.2 圖像灰度化
圖像的灰度化是指圖像本身包含有多種顏色,而將其轉化為僅包含一種顏色的圖像。例如,在RGB 顏色模型中,圖像在R、G、B 三個通道分別有不同的數(shù)值,而當這三個通道的數(shù)值變換為一致時,圖像的直觀視覺便成了只有一種顏色,此時RGB 三個通道的數(shù)值相等且等于灰度值,因此圖像灰度圖的像素便可以通過一個灰度值占據(jù)一個字節(jié)存放。
圖像的灰度化是一種重要的圖像預處理技術。當圖像的色彩信息量比較大,但是用戶并不十分關注布料圖像的顏色特征,或用戶期望檢索到的圖像的色彩大致相同時,顏色特征便不再重要,可以通過圖像灰度化大大縮減圖像的顏色特征數(shù)據(jù),著重于其他特征,提高特征提取的準確度[10-11]。
常用的將圖像轉化為灰度圖有四種方法,分別為分量法、最大值法、平均值法和加權平均法。分量法就是在實際使用過程中,對圖像的多個顏色通道中僅選取其中一個通道的數(shù)值,而將其他通道的數(shù)值都轉換為相同的數(shù)值,按照這一通道的數(shù)值作為灰度值。最大值法就是將多個顏色通道中數(shù)值最大的作為灰度圖的灰度值。而平均值法,顧名思義就是將多個通道的顏色通道值求平均,將平均值作為灰度值。加權平均法根據(jù)顏色通道的重要性,將三個值以不同的權值進行加權平均。在實際使用過程中,我們可以根據(jù)具體的需求選取不同的灰度處理方法。
特征指的是圖像數(shù)據(jù)中包含并能具體表征該圖像的關鍵數(shù)據(jù),特征提取便是將這些關鍵信息從圖像數(shù)據(jù)中提取出來用于簡便計算或匹配的過程。在進行圖像匹配檢索的過程中,我們可以通過對圖像的特征進行匹配檢索,在降低了圖像的其他無關信息的比對的同時,還可以將精力著重于關鍵信息部分,從而提高檢索的速度和準確率。圖像的特征多種多樣,通常受到人們關注的有顏色特征、紋理特征、空間信息特征和角點局部信息特征等[12]。特征提取作為機器視覺圖像識別的一個重要環(huán)節(jié),特征提取的質量與精度直接決定了后續(xù)圖像識別的速度與準確度。因此,從繁復無章的布料圖像數(shù)據(jù)中提取出鮮明獨特的特征變得至關重要。而基于深度學習的卷積神經(jīng)網(wǎng)絡很好地完成了這一工作。
卷積神經(jīng)網(wǎng)絡的每一層的輸出都可以作為圖像的特征進行輸出,但每一層輸出的特征并不相同,其表達圖像的能力也不一樣,不同的特征也會導致不同的檢索結果,因此要對卷積神經(jīng)網(wǎng)絡不同層進行篩選組合[13-14]。首先建立卷積層提取出圖像的初步特征,這些初步特征僅能表征圖像的局部信息,然后建立池化層提取出圖像的主要特征,在卷積層和池化層的共同作用下,不僅可以提取出圖像的特征,還可以大大過濾掉原始圖像中無關的參數(shù),最后通過完全連接層把所有的局部特征通過權值矩陣。最后需要匹配的圖像的特征就提取出來了,就可以從特征的相似和不同來識別圖像了。
最經(jīng)典的卷積神經(jīng)網(wǎng)絡模型是LeNet[15],主要分為卷積層和全連接層兩個部分,這是最早用于數(shù)字識別的卷積神經(jīng)網(wǎng)絡[16-17]。隨后AlexNet 在2012 年橫空出世并在比賽中奪冠,它使用了8 層神經(jīng)網(wǎng)絡,比LeNet 更深,用多層小卷積層疊加替換了單大卷積層。2014 年牛津大學提出了VggNet[18],相較于前面兩個,VggNet 將網(wǎng)絡層數(shù)增加到了16~19 層,并且將卷積層提升到了卷積塊的概念,每個卷積塊由兩三個卷積層構成,使得網(wǎng)絡有更加寬廣的感受野的同時降低了網(wǎng)絡參數(shù)。雖然更深的網(wǎng)絡層,帶來了更加高的精確度,但是當網(wǎng)絡層級增加到一定數(shù)目時,模型變得難以訓練,測試卷積神經(jīng)網(wǎng)絡的速度以及準確度都會下降。為了解決這一網(wǎng)絡層不斷加深帶來的梯度爆炸的問題,ResNet[19-20]便被提出。ResNet 采用殘差塊使得輸入層直接連接到輸出層,整個網(wǎng)絡只需要學習殘差,大大簡化了學習目標和難度。殘差神經(jīng)網(wǎng)絡使得超級深的網(wǎng)絡層成為可能,避免了不斷加深的網(wǎng)絡層導致的準確率飽和的問題。因此,目前在圖像分類領域中,殘差神經(jīng)網(wǎng)絡運用最為廣泛。
相似性度量,即綜合計算特征向量之間相似程度的一種度量方法。相似性度量的數(shù)值反映了不同特征向量的相似程度,且二者成正比關系,即特征之間越相似,其特征相似性度量越大。相似性度量方法有很多,在特征向量相似性度量中距離度量使用的較多,常用的特征相似性度量方法有以下兩種:BruteForce[21]和FLANN[6],分別對應于BFMatcher 和FlannBasedMatcher。BFMatcher 是將待檢索的特征與數(shù)據(jù)庫中的每一個特征都進行計算,遍歷特征庫中的所有值,得到的也是所有特征之間相似性度量最大的一個結果,正如它的名字“暴力法”,但相應的,運算量極大,運算速度很慢。FlannBasedMatcher 中 FLANN 的全稱是 Fast Library for Approximate Nearest Neighbors,也就是快速臨近檢索。這是一種近似算法,檢索到的結果是鄰近待檢索特征的相關特征,雖然它并不能找到最準確的那一個,但是檢索速度得到了大大提升,當我們并不需要找到最相似的唯一一個,而是允許在一個誤差范圍內(nèi)時,便可以選擇這種相似性度量方法。當然也可以通過調(diào)整FlannBasedMatcher 的參數(shù)來提高匹配的精度或者提高算法的速度,但是相應的算法速度或算法精度也會受影響。
圖3 為用戶實際上進行布料檢索的過程,首先用戶將采集到的布料圖像在電腦上進行預處理,隨后通過服務器使用CNN 模型進行特征提取,獲取待檢索布料圖像的特征向量,然后將該特征向量與特征索引庫中的每一個特征進行相似性計算,并按照相似性計算結果輸出最為接近的幾張圖片,最后將結果經(jīng)過服務器返回給用戶,完成檢索結果。
圖3 基于深度學習的布料檢索整體流程
相較于傳統(tǒng)的布料圖像檢索方法中存在的檢索速度慢、檢索準確度低等問題,本文提出的基于深度學習的布料圖像檢索方法,通過機器學習獲取特征,然后根據(jù)特征進行相似性計算完成檢索的方法,無論是在速度、準確度或是學習能力上均強于傳統(tǒng)的方法。日后卷積神經(jīng)網(wǎng)絡將會越來越多地運用到處理更多圖像領域的難題中去。