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