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