劉瑞昊 于振中 孫 強(qiáng)
[1.江南大學(xué),江蘇無(wú)錫,214122;2.哈工大機(jī)器人(合肥)國(guó)際創(chuàng)新研究院,安徽合肥,230601]
在紡織行業(yè)中,檢索織物圖像的工作一般是依賴個(gè)人經(jīng)驗(yàn)查找完成的。此種策略不僅耗費(fèi)大量的人力、物力,而且在速度和準(zhǔn)確率上都有人為的主觀性,不能滿足用戶對(duì)檢索到相同或類似圖片的實(shí)時(shí)性和準(zhǔn)確性要求[1]。市場(chǎng)上存在檢索圖片的方法和系統(tǒng),但是不完全適用于織物圖像的檢索需要,仍需要較大的改進(jìn)。
針對(duì)圖像檢索領(lǐng)域,主要有兩方面技術(shù):基于文本內(nèi)容的檢索(Text-based Image Retrieval,TBIR)和基于內(nèi)容的圖像檢索(Content-based Image Retrieval,CBIR)技術(shù)[2-5]。TBIR 是通過使用關(guān)鍵字表述圖像,將圖像檢索轉(zhuǎn)化為文字匹配問題,TBIR 需要人工對(duì)大量的圖片文字標(biāo)注,耗費(fèi)許多人力資源,此外人工標(biāo)注的主觀性也會(huì)造成錯(cuò)誤的檢索結(jié)果。CBIR 是分析提取圖像的視覺或語(yǔ)義特征,結(jié)合相似度度量算法,在檢索庫(kù)中檢索和目標(biāo)最為相似的圖片,并排序輸出,這是目前國(guó)內(nèi)外研究的熱點(diǎn)。
在織物圖像的檢索方面,早期傳統(tǒng)的檢索方法是依靠手工設(shè)計(jì)的特征。劉立等[6]提出的簡(jiǎn)化SIFT(Scale-invariant Feature Transform)算法實(shí)現(xiàn)快速圖像匹配,但是忽略了色彩信息;YANG L F 等[7]提出在圖像檢測(cè)中使用主顏色矩匹配實(shí)現(xiàn)相似度測(cè)量,但是運(yùn)行的速度較慢。有一些研究是將幾種特征表示融合,再與圖像檢索的功能組合起來。JING J F 等[8]提出了一種基于多特征融合的印刷織物圖像檢索的方法,其中顏色描述表示顏色特征,GIST 表示空間形狀特征,此方法提高了檢索精度,但計(jì)算量大、運(yùn)行速度不快;ZHANG L J 等[9]提出基于旋轉(zhuǎn)不變性和多尺寸LBP(Local Binary Patterns)的一種織物圖像檢索方法,其運(yùn)行的效率也不是很高。近年來,將深度學(xué)習(xí)的特征表示引入圖像檢索也有很多成果。段文靜等[10]提出了基于深度學(xué)習(xí)有監(jiān)督的離散哈希算法,提高了檢索的精度;任夏荔等[11]在主成分分析算法的基礎(chǔ)上對(duì)特征進(jìn)行哈希編碼然后檢索,雙層檢索提高了模型的檢索能力;曾凡鋒等[12]提出一種改進(jìn)傳統(tǒng)哈希編碼的雙線性模型網(wǎng)絡(luò)結(jié)構(gòu)的圖像檢索方法,在哈希編碼的基礎(chǔ)上做了進(jìn)一步改進(jìn);王妙[13]提出基于深度學(xué)習(xí)的印花織物圖像檢索系統(tǒng)設(shè)計(jì),采用哈希算法的粗檢索和卷積神經(jīng)網(wǎng)絡(luò)的細(xì)致檢索相結(jié)合的分級(jí)檢索,在提高精度的基礎(chǔ)上進(jìn)一步提高了速度;XIANG J 等[14]提出的卷積神經(jīng)網(wǎng)絡(luò)針對(duì)織物圖片分級(jí)檢索也取得很好的效果。
雖然在織物檢索方面取得了很好的成果,但是通過深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)方法用來學(xué)習(xí)圖像特征表示,仍具有明顯的優(yōu)勢(shì),而且將其應(yīng)用在織物圖像檢索方面,在速度和準(zhǔn)確率上仍有較大的提升空間。本研究主要針對(duì)當(dāng)前傳統(tǒng)人工整理的庫(kù)存織物進(jìn)行檢索,通過結(jié)合深度學(xué)習(xí)技術(shù)以及分級(jí)檢索的策略解決市場(chǎng)上存在檢索方法難以滿足需求,以及檢索耗時(shí)久、檢索精度低的問題,為紡織行業(yè)管理提供更加高效的策略。
織物圖像的檢索系統(tǒng)是依據(jù)實(shí)際紡織行業(yè)的需求,對(duì)織物圖像進(jìn)行特征學(xué)習(xí)、表示及相似性匹配等,最后完成檢索目標(biāo)。系統(tǒng)有圖像預(yù)處理、圖像模型訓(xùn)練、圖像索引庫(kù)和檢索模塊4 個(gè)部分。圖像預(yù)處理主要包括圖像數(shù)據(jù)的分類及篩檢、圖像變換均衡化等操作;圖像模型訓(xùn)練中特征表達(dá)是檢索系統(tǒng)的重點(diǎn),主要涉及模型的參數(shù)設(shè)置以及將訓(xùn)練好的合適模型導(dǎo)出;圖像索引庫(kù)是利用訓(xùn)練好的模型對(duì)數(shù)據(jù)庫(kù)中的圖像進(jìn)行特征提取,并保存起來,構(gòu)建成圖像特征索引庫(kù);檢索模塊是將待檢索圖像與數(shù)據(jù)庫(kù)圖像進(jìn)行相似度匹配,排序后輸出檢索結(jié)果。
基于深度學(xué)習(xí)的織物圖像檢索系統(tǒng)框架結(jié)構(gòu)如圖1 所示。
圖1 圖像檢索整體框架流程
該系統(tǒng)將圖像檢索技術(shù)與深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合。首先利用CNN 對(duì)數(shù)據(jù)庫(kù)中分好的4 類圖像分別進(jìn)行訓(xùn)練,得到提取4 類織物特征的CNN 模型,將數(shù)據(jù)庫(kù)中其他圖片根據(jù)其類別分別通過4 類CNN 模型提取到各自的特征向量,并根據(jù)類別分別保存至對(duì)應(yīng)的特征索引數(shù)據(jù)庫(kù)中;然后將待檢索圖像輸入到檢索系統(tǒng)中,使用相同類別的CNN 模型對(duì)輸入的圖像進(jìn)行特征提取,得到能夠表達(dá)圖像信息的特征向量,同時(shí)提取出相同類別的圖像特征索引數(shù)據(jù)庫(kù),選擇歐氏距離匹配算法完成待檢索圖像的特征向量與檢索庫(kù)中數(shù)據(jù)的特征向量之間的相似性匹配;最后再將相似度最高的topk檢索結(jié)果經(jīng)服務(wù)器返回,完成檢索過程。
對(duì)于少量的待測(cè)圖片,可采用人工分類,在相同的類中進(jìn)行檢測(cè),由于4 類庫(kù)中評(píng)價(jià)標(biāo)準(zhǔn)相同均采用相似度計(jì)算,若待測(cè)圖片在一類中得分很低,可在其他庫(kù)中再檢測(cè),輸出相似的圖片;對(duì)于大量的待測(cè)圖片,可采用深度學(xué)習(xí)方法,先訓(xùn)練出分類模型,再將分好類的圖片分別放入相應(yīng)的庫(kù)中檢測(cè),輸出結(jié)果。
織物圖片數(shù)據(jù)集是從紡織廠收集得到的真實(shí)織物卡片數(shù)據(jù)集,獲得26 065 張圖片,并根據(jù)卡片外觀將其分為4 類,分別是純色(11 272 張)、條紋(6 775 張)、網(wǎng)格(6 614 張)、圖案(1 404 張),如圖2 所示。
圖2 4 類圖片的劃分
為避免因織物類別中數(shù)量差異導(dǎo)致訓(xùn)練效果有偏差,保持各類訓(xùn)練數(shù)據(jù)集數(shù)量相同,每類取4 000 張作訓(xùn)練數(shù)據(jù)集,剩余圖片均作為模型的測(cè)試集,由于圖案織物的數(shù)量較少,且圖案圖像多為不規(guī)則圖像,而檢索主要需要是紋理特征的提取,故隨機(jī)抽取圖案訓(xùn)練集的1 000 張,網(wǎng)格訓(xùn)練集的2 000 張,條紋訓(xùn)練集的1 000 張,制作成訓(xùn)練圖案提取紋理特征的數(shù)據(jù)集。
針對(duì)訓(xùn)練數(shù)據(jù)集,對(duì)于每一張?jiān)紙D420 像素×570 像素的織物卡片,對(duì)其隨機(jī)切割、旋轉(zhuǎn)、對(duì)比度、亮度等變化的數(shù)據(jù)增強(qiáng)用來擴(kuò)大模型的魯棒性,獲得28 張420 像素×285 像素的大小圖片,將其壓縮至112 像素×112 像素的大小,并放入同一文件夾,將其視作1 個(gè)小類,對(duì)于每一大類圖片,目標(biāo)是訓(xùn)練出能夠分辨出4 000 張圖片差異的特征提取模型,且在同一大類圖片中,每張圖片之間的差異很小,對(duì)模型要求更高。在訓(xùn)練數(shù)據(jù)集中,以10∶1 比例進(jìn)行訓(xùn)練,得到模型后,在測(cè)試集中測(cè)試檢索的效果。
針對(duì)測(cè)試數(shù)據(jù),本研究創(chuàng)新處理數(shù)據(jù)集,使其更加符合實(shí)際檢索情況,將測(cè)試集的每一張?jiān)紙D片平均分割成2 份,大小均為420 像素×285 像素,一份通過相同類別的特征提取模型得到紋理特征,將其作為檢索的索引數(shù)據(jù)庫(kù);另一份均作為待檢測(cè)圖片,通過在相同類別的索引庫(kù)中,用半張待測(cè)圖片檢索出另一半,測(cè)試網(wǎng)絡(luò)的檢索效果。
針對(duì)檢索的策略,本研究將此圖片先分類再檢索,以整體的檢索時(shí)間、topk和mAP作為評(píng)價(jià)依據(jù)。同時(shí)研究深度學(xué)習(xí)模型與數(shù)據(jù)集的關(guān)系,增加對(duì)比試驗(yàn),將4 類圖片訓(xùn)練數(shù)據(jù)集放在一起進(jìn)行整體訓(xùn)練和分類別驗(yàn)證。
特征提取是織物圖像檢索最重要的環(huán)節(jié),每一張圖片經(jīng)過訓(xùn)練的模型提取,得到的特征是獨(dú)特的,也是其識(shí)別的依據(jù),更是后續(xù)特征匹配的關(guān)鍵,所以優(yōu)秀的網(wǎng)絡(luò)模型和訓(xùn)練策略使得模型更加完善。ResNet[15]網(wǎng)絡(luò)自出現(xiàn)后,其表現(xiàn)就非常優(yōu)秀,可作為提高檢索識(shí)別的模型,通過進(jìn)一步優(yōu)化其網(wǎng)絡(luò)結(jié)構(gòu),使其更加符合織物這一研究對(duì)象,讓模型從織物數(shù)據(jù)中學(xué)習(xí)到更多有用的信息。本研究使用修改后的LResNet50E-IR 網(wǎng)絡(luò),來源于Arcface[16],遷移學(xué)習(xí)其網(wǎng)絡(luò)結(jié)構(gòu),由于檢索的目標(biāo)是織物,檢測(cè)的重點(diǎn)是角點(diǎn)信息,淺層網(wǎng)絡(luò)提取的細(xì)節(jié)特征更符合織物檢索的特點(diǎn),而ResNet 網(wǎng)絡(luò)隨著圖層的加深,圖像特征逐漸變得更復(fù)雜,計(jì)算量也會(huì)增加,所以使用的模型在ResNet50 基礎(chǔ)上做出以下改進(jìn)。一是替換第一個(gè)7×7 的卷積改為3×3 的卷積。二是在Layer5 的卷積層后續(xù)相繼使用批量歸一化層(BN),丟棄層(Dropout),全連接層(FC)和批量歸一化層,用來優(yōu)化輸出。三是將批量歸一化→卷積層→批量歸一化→PReLU→卷積層→批量歸一化結(jié)構(gòu)作為殘差塊,激活函數(shù)不使用ReLU,改為PReLU。四是將LResNet50E-IR 的最后兩個(gè)卷積模塊各自減少一層,在保證特征提取能力的情況下,減少模型的計(jì)算量,加快模型的訓(xùn)練速度,既可以保證特征提取的能力,也一定程度避免了過擬合問題,增加了模型的魯棒性。
faiss 是Facebook AI 團(tuán)隊(duì)開源的針對(duì)聚類和相似性搜索庫(kù),將高效相似度搜索和聚類方法用來解決稠密向量問題,能夠達(dá)到任意大小向量集甚至數(shù)十億級(jí)別向量的搜索[17]。以檢索圖片為例,相似度搜索就是在給定的一堆圖片中,尋找出與待測(cè)的目標(biāo)最像的K張圖片,簡(jiǎn)稱為K 近鄰方法[18]。本研究使用faiss 索引,faiss 為每一張輸入圖片的向量記錄一個(gè)索引,然后向索引中添加特征向量,search 方法提供搜索,通過相似度計(jì)算,輸出結(jié)果。
2.4.1 相似性計(jì)算
相似性度量是用于判斷兩幅圖片的相似程度,通過距離函數(shù)計(jì)算兩幅圖像特征向量之間的距離差,距離數(shù)值越小意味著兩幅圖像相似度越高。本研究采用歐氏距離[19],歐氏距離表示為兩個(gè)坐標(biāo)點(diǎn)的直線距離。
2.4.2 評(píng)價(jià)標(biāo)準(zhǔn)
對(duì)于查詢圖像,將其與相同類別的索引庫(kù)中保存的特征向量進(jìn)行匹配,歐氏距離測(cè)量相應(yīng)的兩個(gè)特征向量的距離,并選擇相似度排名較高的前k名圖像輸出[20]。
本研究根據(jù)傳統(tǒng)的topk思路,重新定義了檢索的評(píng)估方法Ptopk,計(jì)算見式(1)。
式中:對(duì)于每一張查詢圖片Ci,在檢索輸出排名前k中的圖片中,若是與查詢圖片屬于同一張圖的兩個(gè)不同部分,即排名前k數(shù)據(jù)庫(kù)中圖片的名稱含有被查詢圖片的名稱,則認(rèn)為此圖片的對(duì)應(yīng)的topk查詢到,Ci=1,否則Ci=0。有m張查詢圖像,統(tǒng)計(jì)對(duì)應(yīng)的topk檢索到的準(zhǔn)確率。
本研究使用mAP作為綜合評(píng)價(jià)指標(biāo),對(duì)于m張圖片,計(jì)算其mAP值,計(jì)算公式見(2)。
式中:APi是每一張待測(cè)圖的前10 個(gè)預(yù)測(cè)圖的精度。
使用的計(jì)算機(jī)為windows10,64 位操作系統(tǒng),處理 器 為Inter(R)Core(TM)i7-7700 CPU @3.60 GHz、16 G RAM。
在后續(xù)的深度學(xué)習(xí)算法的改進(jìn)與運(yùn)行主要是在服務(wù)器上進(jìn)行,服務(wù)器使用的是Intel Xeon E5-2680 v3,CPU 運(yùn)行內(nèi)存64 G,GPU(RTX2080Ti)顯存11 G,開發(fā)語(yǔ)言python。
使用深度學(xué)習(xí)框架MXNet[21]訓(xùn)練模型,ADAM[22]被用作優(yōu)化器,代替了傳統(tǒng)的隨機(jī)梯度下降的優(yōu)化算法。根據(jù)織物檢索的實(shí)際情況,修改網(wǎng)絡(luò)層數(shù)和參數(shù),調(diào)整網(wǎng)絡(luò)尺寸112 像素×112 像素,迭代次數(shù)5 000 次,學(xué)習(xí)率0.001,batchsize 為64。訓(xùn)練過程中驗(yàn)證集的準(zhǔn)確率如圖3 所示。
圖3 訓(xùn)練過程中準(zhǔn)確率變化
對(duì)比算法采用多特征融合檢索方式的傳統(tǒng)算法,即采用基于顏色矩(Color Moments,CM)和要點(diǎn)特征(Gist Feature,GF)相結(jié)合方式提取圖片的特征,相似度計(jì)算采用歐氏距離進(jìn)行對(duì)比,試驗(yàn)的準(zhǔn)確率結(jié)果如圖4 所示。CM+GIST 全檢索、CM+GIST 分級(jí)檢索、深度學(xué)習(xí)+faiss 全檢索、深度學(xué)習(xí)+faiss 分級(jí)檢索的Top10mAP值分別為84.45%、86.68%、98.92%、99.22%。
從圖4 可見,在傳統(tǒng)的多特征融合檢索算法中,分級(jí)檢索策略表現(xiàn)更好;與傳統(tǒng)檢索算法相比,深度學(xué)習(xí)分級(jí)檢索top10 的檢索準(zhǔn)確率提高5個(gè)百分點(diǎn)以上,效果更突出;深度學(xué)習(xí)結(jié)合faiss索引方法的top10 準(zhǔn)確率99%左右,雖然基于深度學(xué)習(xí)分級(jí)策略和全檢索在準(zhǔn)確率相差不大,但分級(jí)檢索對(duì)資源的消耗卻是最少的,表1 顯示4 種檢索方法分別檢索完2 614 張網(wǎng)格,2 775 張條紋,7 272 張純色以及404 張圖案圖片的時(shí)間??梢钥闯?,在同一硬件設(shè)備下,傳統(tǒng)檢索方法耗時(shí)較多,資源占用比較大,而分級(jí)檢索在資源消耗和時(shí)間響應(yīng)上占據(jù)優(yōu)勢(shì),在深度學(xué)習(xí)中也呈現(xiàn)此種情況。
圖4 不同算法和策略中的準(zhǔn)確率
表1 不同算法和策略時(shí)間消耗
理論上深度學(xué)習(xí)是數(shù)據(jù)量越多,其訓(xùn)練的效果也越好,但是其缺點(diǎn)也明顯,訓(xùn)練時(shí)間過長(zhǎng),軟硬件資源消耗比較大。由top10mAP的測(cè)試結(jié)果可知,深度學(xué)習(xí)+faiss 分級(jí)檢索的top10mAP比全檢索提高了0.30 個(gè)百分點(diǎn),比CM+GIST 分級(jí)檢索提高了12.54 個(gè)百分點(diǎn),但全檢索的資源消耗比較大,耗時(shí)較多。
深度學(xué)習(xí)+faiss 全檢索和分級(jí)檢索詳細(xì)結(jié)果如表2 所示??梢钥闯觯旨?jí)檢索策略在有紋理類別檢索上普遍比全檢索好,部分類別top10 的準(zhǔn)確率100%,即對(duì)于每一張待檢測(cè)圖片,在索引庫(kù)中輸出相似度最高的10 張圖中一定有待測(cè)圖的另一半。有紋理類別分級(jí)檢索策略表現(xiàn)更好,原因是在訓(xùn)練集數(shù)量合適情況下,迭代足夠數(shù)量,模型盡可能提取到同類圖片間的紋理差異,特征表示更有針對(duì)性;此外,分類訓(xùn)練和檢索縮小了檢索范圍,所以在正確率和速度上有所提升。但純色類別可提取的紋理信息等特征較少,主要是顏色信息,在只有純色的訓(xùn)練集中訓(xùn)練,網(wǎng)絡(luò)結(jié)構(gòu)不能提取到更多的織物間的差異,容易過擬合,而全檢索是將不同類別數(shù)據(jù)集堆在一起訓(xùn)練,增大了訓(xùn)練集數(shù)量和織物的差異性,故純色的整體訓(xùn)練和檢索效果優(yōu)于分類訓(xùn)練。此外,由于4 類庫(kù)中評(píng)價(jià)標(biāo)準(zhǔn)相同均采用相似度計(jì)算,若待測(cè)圖片在一類中得分很低,可在其他庫(kù)中再檢測(cè),按照相似度排序輸出檢索到的圖片。綜合考慮經(jīng)濟(jì)效益,分級(jí)檢索策略在圖像提取、檢索及資源消耗是有優(yōu)勢(shì)的。
表2 深度學(xué)習(xí)中不同策略詳細(xì)試驗(yàn)準(zhǔn)確率結(jié)果
本研究研發(fā)了一種基于深度學(xué)習(xí)的織物圖像檢索系統(tǒng),解決了織物檢索耗時(shí)久、檢索精度低等問題。通過改進(jìn)后的LResNet50E-IR 網(wǎng)絡(luò)結(jié)構(gòu)模型遷移學(xué)習(xí)到織物檢索上,利用卷積神經(jīng)網(wǎng)絡(luò)強(qiáng)大的特征表示能力,結(jié)合faiss 索引進(jìn)行織物圖像檢索可以取得很好的效果。同時(shí),運(yùn)用分級(jí)檢索的策略,先對(duì)待檢索圖片分類,將分類后的圖片輸入相同類別的模型進(jìn)行特征提取,再與對(duì)應(yīng)的特征索引庫(kù)進(jìn)行相似度匹配檢索,進(jìn)一步縮短了檢索時(shí)間,提高了準(zhǔn)確率。本系統(tǒng)提出的模型及檢索策略在織物圖像上的top10 準(zhǔn)確率能達(dá)到99%,mAP達(dá)到99.22%,比傳統(tǒng)檢索方法分別提高5.00 個(gè)百分點(diǎn)和12.54 個(gè)百分點(diǎn)。將此先進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)創(chuàng)新應(yīng)用于紡織行業(yè),能進(jìn)一步推動(dòng)紡織行業(yè)快速發(fā)展。在實(shí)際測(cè)試中,該系統(tǒng)可達(dá)到工程應(yīng)用的要求,能夠進(jìn)一步推廣,下一步可在現(xiàn)工作的基礎(chǔ)上進(jìn)一步優(yōu)化,在降低運(yùn)算資源成本同時(shí),研發(fā)出實(shí)用性更強(qiáng)、速度更快的織物圖像檢索系統(tǒng)。