吳 帆,鄧作杰,尚書妃
(1.湖南工程學(xué)院 計算機與通信學(xué)院,湘潭411104;2.湖南工程學(xué)院 管理學(xué)院,湘潭411104)
伴隨著電子商務(wù)蓬勃發(fā)展,服裝圖像數(shù)據(jù)量呈突飛猛進的增長趨勢,使用互聯(lián)網(wǎng)在線上對服裝圖像進行快速又準(zhǔn)確地檢索受到廣大關(guān)注.為了幫助客戶在電商平臺上快速準(zhǔn)確地搜索自己想要的服裝,大量的服裝圖像搜索引擎軟件層出不窮.傳統(tǒng)的通過語義文字等進行查找圖像的方式已經(jīng)不能滿足時代的發(fā)展潮流,并且基于顏色、紋理、輪廓等主觀性的低層視覺特征進行檢索時常伴隨著語義鴻溝的現(xiàn)象.其后發(fā)展起來的“以圖搜圖”在一定程度上提升了服裝圖像的檢索精度,但不同的人對同一幅圖片往往會有不同的理解,這種主觀性以及不確定性會影響檢索的效果.針對這些問題,大量的人員對此進行了研究.Yang 等[1]人通過特征點的信息進行全局表述得到了一個SCSPM 模型,其稀疏編碼在進行量化過程中依賴于手工設(shè)計的底層特征,然而其在進行特征信息提取時耗時且困難.薛培培等[2]在圖片顏色特征和尺度不變特征基礎(chǔ)上通過支持向量機來提高圖像的檢索率,但是該計算量繁瑣冗長.Tang 等[3]提出了進行矩陣分解訓(xùn)練后的跨模態(tài)哈希算法,在監(jiān)督的基礎(chǔ)上,此算法克服了小數(shù)據(jù)集對特征信息表達不夠的問題,使圖文數(shù)據(jù)對的標(biāo)簽信息在大規(guī)模的數(shù)據(jù)集中所達到的效果也比較樂觀,但是其忽略了跨模態(tài)數(shù)據(jù)之間的語義一致性,使得檢索出來的結(jié)果不如人意.
為了解決圖像檢索精度不理想和匹配時間較長等問題,本文提出了一種新型基于卷積神經(jīng)網(wǎng)絡(luò)的多特征服裝圖像檢索方法.首先,通過神經(jīng)網(wǎng)絡(luò)的最后一個卷積層作為特征層用來捕獲服裝圖像樣式、圖案、輪廓等特征信息;再利用多尺度特征新型最大池化層輸出固定維度的特征向量;最后融合哈希函數(shù)的相似度信息來降低算法運行時間,有效地提升檢索的準(zhǔn)確度.
隨著深度的加深,卷積神經(jīng)網(wǎng)絡(luò)能準(zhǔn)確地提取出圖像細節(jié)特征,與此同時,深層次的卷積神經(jīng)網(wǎng)絡(luò)常伴隨著梯度消失的問題,在反向傳播的過程中,導(dǎo)致網(wǎng)絡(luò)特征參數(shù)或權(quán)值更新緩慢,因此本文通過融合殘差學(xué)習(xí)的思想來優(yōu)化卷積神經(jīng)網(wǎng)絡(luò)模型性能,如圖1 所示,相對于普通的卷積神經(jīng)網(wǎng)絡(luò)[4],引入快捷連接,有效避免了網(wǎng)絡(luò)不斷加深過程中導(dǎo)致的梯度消失等問題,并且在恒等映射過程中快捷連接不會產(chǎn)生額外的參數(shù)和增加計算復(fù)雜度.殘差神經(jīng)網(wǎng)絡(luò)旁路的支線將把特征信息以跳層連接的形式輸入到后面的層,得到映射函數(shù):
其中F(x)表示殘差,H(x)表示的是網(wǎng)絡(luò)的映射輸出.
圖1 ResNet結(jié)構(gòu)示意圖
為了實現(xiàn)對大規(guī)模服裝圖像的快速、高效檢索,本文采用ResNet-34 這個預(yù)測模型作為提取服裝圖像的卷積子網(wǎng)絡(luò)[5],將原始的ResNet-34 最后一個卷積層后的平均池化層和全連接層去掉,將其替換成適應(yīng)哈希函數(shù)需求的一些層.
傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)把圖像輸入全連接層時,圖像的維度必須是固定的[6],因此在輸入全連接層前,圖像會被裁剪或者縮放[7],在固定其維度等操作過程中容易丟失特征信息.因此,本文設(shè)計了一種新型池化方法,使不同維度的圖像經(jīng)過池化后得到固定的維度輸出. 這種池化方法示意圖如圖2 所示,是在最后一個卷積層后連接該池化層.其具體過程如下:首先把最后一個卷積層輸出的圖像信息復(fù)制4 份,然后按照不同尺度進行劃分區(qū)域的計算公式如下所示:
其中,按照尺度均勻進行劃分區(qū)域l =1,2,3,4.
圖2 一種基于多尺度特征的新型最大池化層示意圖
劃分完區(qū)域后進行最大池化計算,設(shè)最后一個卷積層輸出的k 個特征信息圖尺寸為W ×H,表示為X=(Xi),i=1,2,3???,k,則方形區(qū)域R ?[1,W]×[1,H ]的特征向量定義如下:
其中,gR,i=maxp∈R,Xi(p)表示在特征通道R區(qū)域第i 個位置中的最大值.
特征圖片按照幾種不同的尺寸被最大池化后,會相應(yīng)得到K 個區(qū)域特征向量gR,通過交叉匹配的方式把區(qū)域中相同尺度的向量歸為一列,最后將這些區(qū)域所有尺度向量串聯(lián)成一列4×k 維的多尺度向量.
表1 給出了一個本文池化過程的例子,l =1×1 ???,l =4×4 為池化的4 種尺寸,最后一個卷積層輸出256 個尺寸為6×6 的特征圖,將這些區(qū)域的向量分別簡單相加為4 列長度為256 維度的特征向量,最后串聯(lián)為一列4×256=1024 維度的多尺度特征向量,通過該池化后,不用裁剪圖片尺寸也能得到固定維度的向量,解決了圖像信息損失的問題.
表1 池化結(jié)構(gòu)示例
圖像經(jīng)過哈希層后將高維特征映射到低維空間中,然后生成相應(yīng)的二進制哈希編碼,最后用海明距離計算查詢圖片哈希編碼到其他圖片的哈希編碼距離,同類別圖像中,漢明距離越小,不同類別的圖像中,漢明距離越大[8].如圖3 所示,本文使用兩種損失函數(shù)得出兩種分類損失,在優(yōu)化損失函數(shù)過程中學(xué)習(xí)哈希函數(shù)的參數(shù),從而快速的進行圖片檢索.假設(shè)哈希函數(shù)集合為{ f1,f2,???fn},得出多個編碼為f:Rd→{-1,1}的哈希函數(shù),通過最優(yōu)化目標(biāo)函數(shù)策略學(xué)習(xí)哈希函數(shù)的參數(shù)w1,w2,???wb,一對點(xi,xj).
方差損失函數(shù)定義如下:
為了提高算法的高效性并且控制量化誤差,需要對其進行優(yōu)化:
使用梯度下降的方法進行迭代,每迭代一次便隨機選取一對點,則更新的權(quán)重公式如下:
為了使更新的漢明距離誤差更小,基于平方誤差損失的更新采用鉸鏈損失函數(shù)替代.
引進鉸鏈損失函數(shù):
其中,dH=//f(xi)-f(xj)//α ∈[0,1].
其中α 是閾值參數(shù),T 是所有三元組的集合,損失函數(shù)表達式為:
因此,本文算法的損失函數(shù)L 表示為:
參數(shù)w 是權(quán)重系數(shù).
圖3 給出了一個損失函數(shù)示意圖,圖像經(jīng)多尺度特征的最大池化層輸出后連接隱含層fc1(節(jié)點數(shù)為500)和哈希層fc2(節(jié)點數(shù)等于哈希長度q),通過哈希層,得出中間特征向量后分為兩路進行特征向量傳輸.其具體過程如下:
圖3 損失函數(shù)示意圖
(1)第一路,將經(jīng)過哈希層出來的圖像特征中間向量作為近似哈希二進制編碼輸入鉸鏈損失函數(shù)層.
(2)另外一路,將經(jīng)過哈希層出來的圖像特征中間向量傳輸?shù)椒诸悓觙c3(節(jié)點數(shù)為圖像類的數(shù)量),再計算三元組損失函數(shù).
由于普通卷積神經(jīng)網(wǎng)絡(luò)特征提取能力較差,不能準(zhǔn)確地提取出圖像細節(jié)特征,會導(dǎo)致檢索不理想,本文基于融合殘差思想的神經(jīng)網(wǎng)絡(luò)、多尺度特征的新型最大池化層和損失函數(shù)設(shè)計了一種基于卷積神經(jīng)網(wǎng)絡(luò)的多特征服裝圖像檢索方法,如圖4所示,其具體步驟如下:
步驟1:本文融合殘差學(xué)習(xí)的思想來優(yōu)化CNN網(wǎng)絡(luò)模型性能,采用最后一個卷積層提取服裝圖像樣式、圖像、輪廓等特征信息.
步驟2:為了保證圖片維度的固定性,特征信息的完整性,采用了多尺度融合池化層替代了傳統(tǒng)的池化層的方法,進而避免了圖像特征信息損失的現(xiàn)象.
步驟3:將最后一個卷積層后的平均池化層和全連接層去掉,將其替換成適應(yīng)哈希函數(shù)需求的一些層,神經(jīng)網(wǎng)絡(luò)提取到的服裝特征之后,再融合哈希函數(shù)計算圖像間的相似度,以此來提升檢索的準(zhǔn)確度.
圖4 基于卷積神經(jīng)網(wǎng)絡(luò)的多特征服裝圖像檢索流程
本文的硬件環(huán)境是Windows10,CPU 頻率為2GHz,內(nèi)存4GB,Python3.59 軟件,仿真實驗基于開源深度學(xué)習(xí)框架TensorFlow 實現(xiàn),在訓(xùn)練使權(quán)重系數(shù)α、β和λ 取值均為1,三元組損失函數(shù)學(xué)習(xí)速率的初始值取0.01,動量取值0.9,權(quán)重衰減系數(shù)取值0.0002.實驗所用數(shù)據(jù)集源于香港中文大學(xué)開放的一個large-scale 數(shù)據(jù)集,總共289222 張衣服圖片,213642 張圖片用作訓(xùn)練集,75580 張圖片用作測試集,主要對服裝3 類語義屬性進行預(yù)測,圖片分為11 個類別,每個類別代表一種數(shù)字(數(shù)字0~10),如表2 所示.
表2 服裝的語義屬性
在性能的比較上,實驗所選擇的KSH、CNNH、DLBHC 等算法都具有代表性,所選擇的這些對比算法都是基于卷積神經(jīng)網(wǎng)絡(luò)算法和哈希算法的主流算法[11].可由實驗數(shù)據(jù)分析得出:本文提出的算法相比無監(jiān)督哈希算法的特征提取更加靈活,與基于普通的卷積神經(jīng)網(wǎng)絡(luò)的算法相比,本文所提的算法將圖像的相似度信息和分類信息充分地結(jié)合了起來,使檢索效果得到大幅度提高.在數(shù)據(jù)集上48位編碼時得到的PR 曲線如圖5 所示.
圖5 48位編碼時的PR曲線
為了驗證基于多尺度特征的新型最大池化方法的有效性,本文與SPP 池化方法進行了對比,除了池化層結(jié)構(gòu)不同,其他網(wǎng)絡(luò)結(jié)構(gòu)均保持不變,表3是實驗對比的結(jié)果.
表3 不同池化方法的MAP對比
經(jīng)過兩種方法的對比可知,本文的池化方法跟SPP 池化方法都是在區(qū)域上進行多種尺度的特征信息提取[12],但是本文的池化方法使各個區(qū)域相同的尺度向量通過簡單的交叉匹配歸為了一類K維特征向量,最后將這些區(qū)域所有尺度向量串聯(lián)成一列固定維度的多尺度特征向量,這種池化操作不僅大幅度減少了池化層的模型參數(shù),而且還保證了圖像特征信息向量維度的固定,大幅度提高了檢索精度.
本文利用殘差神經(jīng)網(wǎng)絡(luò)在圖像特征提取上具有的層次性,準(zhǔn)確地提取出圖像細節(jié)特征,再利用多尺度特征新型最大池化層輸出固定維度的特征向量,同時減少網(wǎng)絡(luò)模型的參數(shù),并融合哈希算法來找到同類特征信息的最大相似度,以此提高檢索效率和準(zhǔn)確度.后續(xù)我們將研究如何有效地進行三維服裝圖像檢索.