阿卜杜杰力力·熱合麥提
(東華大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 上海 201600)
隨著時(shí)尚電商平臺(tái)的普及和圖像共享網(wǎng)站的快速發(fā)展,在線服裝貿(mào)易市場(chǎng)巨大,時(shí)尚物品日益多樣化,學(xué)術(shù)界和工業(yè)界越加關(guān)注相關(guān)的研究和應(yīng)用。僅僅提供文字檢索功能很難滿足用戶對(duì)物品更精細(xì)的查詢要求;而且隨著移動(dòng)計(jì)算以及互聯(lián)網(wǎng)的快速發(fā)展,街拍和社交網(wǎng)絡(luò)分享逐日流行?;趫D像的檢索可以幫助用戶通過(guò)街拍形式從品種繁雜、造型多樣的物品中快速而準(zhǔn)確地定位,大幅改善購(gòu)物體驗(yàn)。不過(guò)街拍圖像會(huì)受到背景、燈光、構(gòu)圖等影響,質(zhì)量上遠(yuǎn)不如電商平臺(tái)中較專業(yè)的圖片,在對(duì)跨場(chǎng)景的圖像進(jìn)行匹配時(shí)存在難度,街拍圖像的準(zhǔn)確處理和特征精確提取是匹配的關(guān)鍵所在[1]。
街拍時(shí)尚物品查詢模型一般分為以下步驟,用戶拍照,通過(guò)在線電商APP上傳,服務(wù)器對(duì)街拍圖像和物品庫(kù)圖像進(jìn)行相似性匹配,返回相似度最高的top-k個(gè)物品,如圖1所示。衡量時(shí)尚圖像的相似性是一個(gè)復(fù)雜的問(wèn)題,時(shí)尚圖像相似性不僅僅在于兩個(gè)圖像所對(duì)應(yīng)的像素矩陣數(shù)值的相似程度,更重要的在于人眼所感知的兩個(gè)物品的款式、色彩、花紋,以及其他細(xì)節(jié)是否相似??梢园烟卣鞣譃閮深悾赫w和局部。如兩張關(guān)于T恤衫的圖片,外表看上去很相似,但是其印花細(xì)節(jié)差別較大,或者兩者的細(xì)節(jié)相似度很高,但是款式不同,只有同時(shí)滿足整體(輪廓)和局部(細(xì)節(jié))的物品才能被認(rèn)為相似[2]。
跨場(chǎng)景的時(shí)尚物品的在線檢索存在幾個(gè)挑戰(zhàn):如何在保證整體和局部特征完整性的情況下滿足實(shí)時(shí)的特征提?。蝗绾卧谔卣魈崛『筮M(jìn)行快速的圖像檢索,找到相似度最高的top-k個(gè)物品[3]。
隨著深度學(xué)習(xí)的快速發(fā)展,利用卷積神經(jīng)網(wǎng)絡(luò)相關(guān)方法進(jìn)行圖像特征提取和表示已經(jīng)成為解決時(shí)尚領(lǐng)域圖像檢索和推薦的關(guān)鍵方法[4]。已有相關(guān)方法注重時(shí)尚圖片檢索的準(zhǔn)確性,包括結(jié)合視覺(jué)和非視覺(jué)特征的匹配[5],結(jié)合多模態(tài)的查詢[6],基于圖像分割和目標(biāo)檢測(cè)的匹配方法[7];或者以適當(dāng)降低精確度為代價(jià),提高在線處理速度[8]。
圖1 基于街拍的在線時(shí)尚圖像檢索示例
本文在設(shè)計(jì)在線時(shí)尚物品檢索框架時(shí),采用目標(biāo)檢測(cè)算法來(lái)避免圖片中目標(biāo)物體大小帶來(lái)的影響,采用圖像分割算法來(lái)避免圖片中復(fù)雜背景的影響,采用緩存提高匹配速度??蚣芗染哂性诰€檢索的實(shí)時(shí)性,也能兼顧檢索的準(zhǔn)確率,還能通過(guò)參數(shù)選擇及時(shí)調(diào)整檢索策略。
目前,國(guó)內(nèi)外基于內(nèi)容的圖像搜索相關(guān)的技術(shù)有很多,主要可以分為傳統(tǒng)方法和基于卷積神經(jīng)網(wǎng)絡(luò)的方法兩種。基于內(nèi)容的圖像檢索主要包括特征提取、相似性定義以及彌補(bǔ)語(yǔ)義鴻溝3個(gè)步驟。
在傳統(tǒng)方法中,使用SIFT、HOG、SURF等方法來(lái)進(jìn)行圖像特征的提取,這些方法提取的還是圖像像素級(jí)別的特征。如果提取的特征具有結(jié)構(gòu)性的時(shí),深度學(xué)習(xí)算法才能發(fā)揮作用。
隨著深度學(xué)習(xí)的發(fā)展,通過(guò)神經(jīng)網(wǎng)絡(luò)提取特征得到了廣泛的應(yīng)用,以卷積神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)的一系列深度神經(jīng)網(wǎng)絡(luò),諸如AlexNet、VGGNet、GoogLeNet、ResNet等,在計(jì)算機(jī)視覺(jué)領(lǐng)域也取得了卓越的成就。
在基于內(nèi)容的圖像查詢中,存在底層特征和上層理解之間的差異,主要原因是底層特征不能完全反映或者匹配查詢意圖。彌補(bǔ)這個(gè)鴻溝的技術(shù)手段主要有相關(guān)反饋(relevance feedback)、圖像分割(image segmentation)和建立復(fù)雜的分類模型。根據(jù)用戶對(duì)于查詢結(jié)果進(jìn)行評(píng)分來(lái)更新系統(tǒng),為每對(duì)圖片之間分配的相似性大小[9],在相關(guān)反饋技術(shù)的基礎(chǔ)上提出了核距離方法的應(yīng)用,將每個(gè)圖片向量映射到同一特征空間中,并使用one-class SVM核距離來(lái)計(jì)算2個(gè)向量之間的距離,最后建立M-tree來(lái)建立索引,用來(lái)查詢最后需要輸出的圖片[10]。對(duì)圖像進(jìn)行像素級(jí)的分類,從而解決了語(yǔ)義級(jí)別的圖像分割問(wèn)題,與傳統(tǒng)的CNN不同的是FCN可以接受任意尺寸的輸入圖像,并且最后輸出的是一張已經(jīng)標(biāo)簽好的圖片[11]。開(kāi)發(fā)了兩階段深度學(xué)習(xí)框架,根據(jù)輸入圖片推薦類似風(fēng)格的時(shí)尚圖像[12]。Hidayati S C等人從社交網(wǎng)絡(luò)大數(shù)據(jù)中學(xué)習(xí)服裝樣式和個(gè)體身材的兼容性,用來(lái)向用戶推薦符合其身體屬性的穿著服裝[13];周偉等人開(kāi)發(fā)了新穎的時(shí)尚推薦模型,通過(guò)整合基于文本的產(chǎn)品屬性和圖像提取功能來(lái)匹配相似的產(chǎn)品[14];Jaradat, Shatha使用深度學(xué)習(xí)技術(shù)來(lái)分析深像素級(jí)語(yǔ)義分割和文本集成對(duì)推薦質(zhì)量的影響[15];陳婉玉等人提出了用于檢索具有臉部形狀特征的時(shí)尚照片的一種新的方法[16]。
由于推薦系統(tǒng)計(jì)算量龐大,又對(duì)實(shí)時(shí)性要求高,將計(jì)算過(guò)程大致分為兩個(gè)部分,即離線部分和在線部分[17]。離線部分主要指系統(tǒng)離線構(gòu)建索引庫(kù)的流程,包括離線特征提取、索引構(gòu)建、數(shù)據(jù)存儲(chǔ)等環(huán)節(jié),這些環(huán)節(jié)計(jì)算量非常大,需要定期執(zhí)行一次,以保證系統(tǒng)的準(zhǔn)確率;在線流程主要指用戶提供一張圖片,到最終返回推薦結(jié)果的過(guò)程,包含噪聲去除、圖像定位及分割、在線特征提取、圖像匹配等過(guò)程。
跨場(chǎng)景時(shí)尚圖像檢索是一個(gè)復(fù)雜的課題,本文結(jié)合深度學(xué)習(xí)和度量學(xué)習(xí)等技術(shù),提出了一個(gè)完整的時(shí)尚商品檢索框架,包含了離線和在線二部分,通過(guò)二者的協(xié)作,極大地提高了檢索的精度和效率,如圖2所示。
(a) 離線數(shù)據(jù)處理 (b)時(shí)尚圖片的在線檢索
(1)離線部分。離線部分是在線檢索的基礎(chǔ),是決定在線檢索精度的保障。離線部分包含3個(gè)模塊。特征抽取模塊:是一個(gè)圖像表示學(xué)習(xí)的過(guò)程,本文采用fine-tuning的方式,基于現(xiàn)有成熟的模型進(jìn)一步訓(xùn)練以獲得更好的表示;索引構(gòu)建模塊:檢索的高效性離不開(kāi)索引的構(gòu)建,在特征抽取完成后,將圖像與特征映射,從而構(gòu)建索引;數(shù)據(jù)存儲(chǔ)模塊:數(shù)據(jù)存儲(chǔ)方式是影響數(shù)據(jù)檢索的一個(gè)重要因素,本文的數(shù)據(jù)采用spark分布式存儲(chǔ),從而提高整體檢索效率。
(2)在線部分。在線檢索存在二個(gè)問(wèn)題:①噪聲問(wèn)題,是由用戶上傳圖像的質(zhì)量導(dǎo)致的;②多實(shí)例問(wèn)題,是由于圖像中存在多個(gè)實(shí)例引起的。本文使用目標(biāo)檢測(cè)和圖像分割技術(shù)解決這些問(wèn)題,并根據(jù)不同需求提供了簡(jiǎn)單泛化搜索,精細(xì)搜索,以及基于標(biāo)簽的搜索。
深度學(xué)習(xí)在特征提取和圖像分類中應(yīng)用非常廣泛,在圖像搜索時(shí)使用預(yù)訓(xùn)練的ResNet來(lái)提取特征已被證明非常有效[18]。具體方法為:將完整的ResNet的最后一層SoftMax層去掉,增加一個(gè)全連接層,將最后的輸出特征向量修改成實(shí)際所需要的維度。該方法相較從零開(kāi)始訓(xùn)練一個(gè)完整的神經(jīng)網(wǎng)絡(luò),可以節(jié)省大量的資源,也避免了數(shù)據(jù)量不足和硬件條件不夠所引發(fā)的問(wèn)題。
通過(guò)亞馬遜數(shù)據(jù)集提供的源文件中的地址,下載圖片并將圖片命名為其ASIN ID(即亞馬遜商品統(tǒng)一編號(hào)),載入預(yù)訓(xùn)練ResNet模型,將每一張圖片轉(zhuǎn)換成所需要的輸入格式(在這里定義的為224*224*3)的彩色RGB格式。因?yàn)楸鞠到y(tǒng)選取的100萬(wàn)張圖片是亞馬遜總圖片數(shù)的一個(gè)子集,所以在這里系統(tǒng)使用目錄里的圖片和源文件中的商品信息進(jìn)行映射,并保存在一個(gè)二進(jìn)制文件中。ASIN_Idx保存編號(hào)的目錄,ASIN_Data保存編號(hào)所對(duì)應(yīng)的商品信息。信息完成以后,進(jìn)行批量的特征提取,將100萬(wàn)張圖片逐個(gè)放入預(yù)訓(xùn)練ResNet中,建立一個(gè)ASIN到特征的映射,存放所有的提取之后的特征。
在圖像存儲(chǔ)方面,一般將圖像特征量化成為數(shù)據(jù)存放在索引中,并存儲(chǔ)在外部存儲(chǔ)介質(zhì)中,進(jìn)行圖像搜索的時(shí)候僅僅需要搜索索引表中的圖像特征,按照匹配程度從高到低來(lái)查找類似的圖像。對(duì)于圖像尺寸分辨率不同的情況可以用下采樣或者歸一化的方法。
因?yàn)樯唐返谋尘皬?fù)雜,主體常常較小,所以為了減少大量背景干擾和多主體的影響,需要將搜索目標(biāo)從圖像中提取出來(lái),這就涉及到了目標(biāo)檢測(cè)技術(shù)。
物體檢測(cè)算法經(jīng)歷了傳統(tǒng)的人工設(shè)計(jì)特征+淺層分類器的框架,到基于大數(shù)據(jù)和深度神經(jīng)網(wǎng)絡(luò)的End-To-End的物體檢測(cè)框架,物體檢測(cè)愈加成熟,本文使用其中最有代表性的Faster-RCNN。
使用Mxnet框架下的Faster R-CNN進(jìn)行目標(biāo)檢測(cè)的測(cè)試。目標(biāo)檢測(cè)的主要功能有3個(gè):判斷圖片中物體屬于前景還是背景,判斷前景中每一個(gè)物體的類別(從預(yù)先保存的約300個(gè)類別中進(jìn)行判斷),將每一個(gè)類別的物體用方框圈起來(lái),并返回方框中4個(gè)角的坐標(biāo)。除了坐標(biāo)以外,該模型還返回了判斷屬于該類別的概率(僅僅返回可能性大于0.5的類別),本文使用一張街拍——含有常見(jiàn)背景的人物服裝照片來(lái)進(jìn)行測(cè)試,如圖3所示。
圖3 目標(biāo)檢測(cè)結(jié)果
從測(cè)試結(jié)果可以看出,雖然有多個(gè)人物和物體出現(xiàn)在圖像中,目標(biāo)識(shí)別還是能夠檢測(cè)出其中概率最大的那一個(gè),并且進(jìn)行圖像框定。但同時(shí)也看出現(xiàn)圖像背景還是有其他物品存在,此時(shí)可以通過(guò)圖像分割技術(shù)進(jìn)一步處理。
對(duì)成功識(shí)別出的圖像中最主要物體的輪廓識(shí)別和分割。在返回時(shí)需要選擇分割的主體,即,返回主體的類別編號(hào),本例返回以人物為輪廓進(jìn)行分割的圖片。使用FCN進(jìn)行圖像分割的效果明顯,絕大部分背景干擾因素已經(jīng)被去除,剩下的只有人物和其服裝圖片,如圖4所示。在后續(xù)的圖像索引中,能夠獲取更加匹配的目標(biāo)圖片。
圖4 FCN圖像分割后輪廓及其結(jié)果
本文使用一種基于圖的近似最近鄰搜索的方法叫做Hierarchical Navigable Small World graphs算法。這個(gè)算法基于先前的NSW(navigable small world)思想進(jìn)行了優(yōu)化,使用了一個(gè)跳表結(jié)構(gòu)將多個(gè)多維向量按照?qǐng)D的結(jié)構(gòu)劃分為許多層,從頂?shù)降讟?gòu)造一個(gè)層次化結(jié)構(gòu),最大的層數(shù)由以指數(shù)衰減的概率分布隨機(jī)選擇,在搜索時(shí)從最頂端的層級(jí)開(kāi)始,逐步向下延展,如圖5所示。這樣的方式極大的提高了高召回率和高度集群數(shù)據(jù)的性能。性能評(píng)估表明這種方法在通用的空間向量的搜索中能夠極大的優(yōu)于先前開(kāi)源的最先進(jìn)的向量搜索方法。
圖5 HNSWG算法示意圖
4.3.1 簡(jiǎn)單檢索和高級(jí)檢索
簡(jiǎn)單檢索提供了泛用性最強(qiáng)的圖像搜索引擎,可以對(duì)全部100萬(wàn)張商品圖片和信息進(jìn)行搜索,分類非常廣,能在近實(shí)時(shí)的基礎(chǔ)上完成Top10的搜索。
而精細(xì)檢索提供了最精細(xì)的自動(dòng)目標(biāo)檢測(cè)和輪廓剪切,對(duì)于需要精細(xì)度較高的商品,如服裝等,可以選擇這種搜索方式,自動(dòng)按照最精確的方式搜索,搜索時(shí)間會(huì)稍長(zhǎng),但是也能滿足一般的實(shí)時(shí)性要求。
4.3.2 基于標(biāo)簽的檢索
在許多情況下,有的商品雖然圖案相似、形狀相近,但是它們?cè)诒举|(zhì)上并不是同一類型的商品,這時(shí)候僅僅使用特征提取可能會(huì)出現(xiàn)誤判,所以本系統(tǒng)使用了另一種搜索方式——基于目標(biāo)檢測(cè)和倒排索引的圖像搜索方法。
倒排索引(Inverted index),也常被稱為反向索引、置入檔案或反向檔案,是一種索引方法,被用來(lái)存儲(chǔ)在全文搜索下某個(gè)單詞在一個(gè)文檔或者一組文檔中的存儲(chǔ)位置的映射,是文檔檢索系統(tǒng)中最常用的數(shù)據(jù)結(jié)構(gòu)。通過(guò)倒排索引,可以根據(jù)單詞快速獲取包含這個(gè)單詞的文檔列表。倒排索引主要由兩個(gè)部分組成即“單詞詞典”和“倒排文件”。倒排索引的主要形式為一條記錄的水平反向索引(或者反向檔案索引)包含每個(gè)引用單詞的文檔的列表。
使用商品檢測(cè)出的目標(biāo)標(biāo)簽當(dāng)作文檔,將所有的分類標(biāo)簽當(dāng)作單詞,建立目標(biāo)圖片集的完整倒排索引數(shù)據(jù)庫(kù),將每一張用戶上傳的圖片中檢測(cè)出來(lái)的詞匯視為新的文檔,檢測(cè)以后同樣查倒排索引,就可以得到總圖片的一個(gè)子集。
在電商的圖像搜索中同樣可以使用這種思路進(jìn)行圖像搜索。在搜索中,文檔就相當(dāng)于是一張圖片進(jìn)行目標(biāo)檢測(cè)中所有元素(如一張人的圖片中可以有帽子、襯衫、領(lǐng)帶、皮包等元素),而單詞就相當(dāng)于是搜索目標(biāo)商品的圖片識(shí)別出的關(guān)鍵詞,往往是單一的物品,搜索過(guò)程如圖6所示。在實(shí)際使用中,系統(tǒng)會(huì)自動(dòng)識(shí)別用戶上傳的圖片并進(jìn)行初步的目標(biāo)識(shí)別,在圖片集創(chuàng)建的文檔中搜索和匹配。
圖6 倒排索引的搜索過(guò)程
亞馬遜是網(wǎng)絡(luò)上最早的電子商務(wù)公司,經(jīng)過(guò)數(shù)十年的積累,其商品涵蓋各個(gè)種類達(dá)數(shù)百萬(wàn)之巨,是電商數(shù)據(jù)集的重要來(lái)源。 本文使用由Julian McAuley團(tuán)隊(duì)整理的Amazon product data,根據(jù)其唯一的ASIN ID便可獲取對(duì)應(yīng)圖像。
實(shí)驗(yàn)運(yùn)行的硬件平臺(tái),CPU為Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz,GPU為NVIDIA GeForce GTX 1050,內(nèi)存為20G, 系統(tǒng)為CentOS 7.4.1708。接口語(yǔ)言為python,代碼運(yùn)行在Mxnet平臺(tái)。
在系統(tǒng)中,實(shí)時(shí)性是非常重要的一項(xiàng)指標(biāo),實(shí)驗(yàn)測(cè)試了普通搜索和精細(xì)搜索的所需時(shí)間。測(cè)試結(jié)果見(jiàn)表1。即使是精細(xì)的搜索,系統(tǒng)也能夠完全達(dá)到在一秒內(nèi)返回所需要的結(jié)果。
表1 搜索所需時(shí)間
本文提出了一個(gè)實(shí)時(shí)圖像檢索系統(tǒng),用來(lái)檢索基于亞馬遜部分?jǐn)?shù)據(jù)集的時(shí)尚單品。采用三種檢索方式即簡(jiǎn)單搜索、精細(xì)搜索、基于標(biāo)簽的搜索。由于跨場(chǎng)景的不確定性,首先使用目標(biāo)檢測(cè)算法來(lái)進(jìn)行目標(biāo)定位,找出需要檢索的目標(biāo)商品,再進(jìn)行圖片分割,將目標(biāo)商品單獨(dú)分割出來(lái);然后使用卷積神經(jīng)網(wǎng)絡(luò)對(duì)圖片進(jìn)行特征提??;最后在圖片數(shù)據(jù)庫(kù)中找出與其最相似的數(shù)據(jù)圖片。本文提出的不同的檢索方式可以滿足不同用戶的不同需求,給予用戶更好的體驗(yàn)。將會(huì)在以后的研究中加入文本信息,實(shí)現(xiàn)多模態(tài)檢索,用文本信息來(lái)彌補(bǔ)圖片信息沒(méi)有滿足的部分,實(shí)現(xiàn)更高精度的檢索。