讓剁手更便捷,蘑菇街視覺(jué)搜索技術(shù)架構(gòu)實(shí)踐
原創(chuàng)【51CTO.com原創(chuàng)稿件】眾所周知,圖像檢索屬于計(jì)算機(jī)視覺(jué)領(lǐng)域被研究得較早、且較為廣泛的方向。按照描述圖像內(nèi)容方式的不同,一般可以分為兩大類:基于文本的圖像檢索(TBIR)和基于內(nèi)容的圖像檢索(CBIR)。
2018 年 11 月 30 日-12 月 1 日,由 51CTO 主辦的 WOT 全球人工智能技術(shù)峰會(huì)在北京粵財(cái) JW 萬(wàn)豪酒店隆重舉行。
本次峰會(huì)以人工智能為主題,來(lái)自于美麗聯(lián)合集團(tuán)的宋宏亮給大家介紹《視覺(jué)搜索技術(shù)系統(tǒng)與業(yè)務(wù)應(yīng)用》。
本次分享將從如下三個(gè)部分展開(kāi):
- 視覺(jué)分享的背景與現(xiàn)狀
- 蘑菇街視覺(jué)搜索技術(shù)架構(gòu)與研發(fā)
- 系統(tǒng)及業(yè)務(wù)應(yīng)用
視覺(jué)分享的背景與現(xiàn)狀
基于文本的圖像檢索方法始于上世紀(jì)70年代,它利用文本標(biāo)注的方式對(duì)圖像中的內(nèi)容進(jìn)行描述,從而為每張圖像產(chǎn)生內(nèi)容描述的關(guān)鍵詞,包括圖像中的物體和場(chǎng)景等。
這種方式既可以采用人工標(biāo)注,也可以通過(guò)圖像識(shí)別技術(shù),來(lái)實(shí)現(xiàn)半自動(dòng)化的標(biāo)注。在檢索時(shí),系統(tǒng)可以根據(jù)用戶所提供的查詢關(guān)鍵字,找出那些與關(guān)鍵字相對(duì)應(yīng)的圖片,并返回給用戶。
由于具有易于實(shí)現(xiàn)的優(yōu)點(diǎn),因此在一些中小型規(guī)模的圖像搜索應(yīng)用中,該方法仍在被繼續(xù)使用著。
當(dāng)然,該方式也存在著如下缺陷:
- 對(duì)于大規(guī)模的圖像數(shù)據(jù)而言,由于在標(biāo)注過(guò)程中需要有人工的介入,因此不但耗時(shí)耗力,而且持續(xù)涌入的新圖像也會(huì)干擾到人工標(biāo)注。
- 在需要精確查詢時(shí),用戶可能很難用簡(jiǎn)短的關(guān)鍵字,來(lái)描述出自己真正想要獲取的圖像。
- 人工標(biāo)注的過(guò)程,不可避免地會(huì)受到標(biāo)注者的認(rèn)知水平、言語(yǔ)使用、以及主觀判斷等方面的影響,因此會(huì)產(chǎn)生文字描述的差異性。
隨著圖像數(shù)據(jù)的快速增長(zhǎng),上述針對(duì)基于文本檢索方法的問(wèn)題日益凸現(xiàn)。因此,業(yè)界普遍認(rèn)為:索引圖像信息的最有效方式應(yīng)該基于圖像內(nèi)容自身。
此類方式是將對(duì)于圖像內(nèi)容的表達(dá)和相似性,交給計(jì)算機(jī)自行處理,充分發(fā)揮其計(jì)算優(yōu)勢(shì),并大幅提升檢索的效率。
不過(guò),基于內(nèi)容檢索方法也存在著一項(xiàng)主要缺點(diǎn):特征描述與高層語(yǔ)義之間存在著難以填補(bǔ)的鴻溝。
由于受到環(huán)境的干擾較大,因此我們需要選擇那些抗干擾性較強(qiáng)的、具有不變性局部特征的方法,如SIFT。同時(shí),我們也要求此類方法應(yīng)具有較高的特征維度。
近年來(lái),以深度學(xué)習(xí)(尤其是卷積神經(jīng)網(wǎng)絡(luò)CNN)為主的自動(dòng)化圖像特征檢索方法,得以廣泛應(yīng)用。
它能夠極大地提高檢索的精度。而且,我們可以使用PCA等降維手段,來(lái)構(gòu)建出高效合理的快速檢索機(jī)制,以適應(yīng)大規(guī)?;蚝A繄D像的檢索任務(wù)。
上圖是基于內(nèi)容圖像檢索的基本框架。我們可以事先建立好圖像特征矢量的描述,并存入圖像特征庫(kù)中。
當(dāng)用戶輸入一張待查詢的圖像時(shí),它會(huì)使用相同的方法,提取待查詢圖像的特征,并得到查詢的向量。
然后在某種相似性的度量準(zhǔn)則下,計(jì)算查詢向量與特征庫(kù)中各個(gè)特征的相似性大小。最后按照相似性的大小進(jìn)行排序,并順次輸出對(duì)應(yīng)的圖片。
對(duì)于我們的電商場(chǎng)景而言,各種數(shù)據(jù)的來(lái)源一般分成兩塊:
- 賣(mài)家端:普通賣(mài)家,上傳商品主圖、附圖、SKU圖、以及各種詳情圖。主播,生產(chǎn)直播內(nèi)容,包含商品截圖和視頻等。
- 用戶端:普通用戶,上傳對(duì)應(yīng)的UGC內(nèi)容、以及買(mǎi)家秀圖片等。達(dá)人,產(chǎn)生PGC之類的內(nèi)容。
這些圖像數(shù)據(jù)不但體量龐大,而且具有“天然”的結(jié)構(gòu)化信息。商家在上傳時(shí),便能通過(guò)填寫(xiě)圖片所對(duì)應(yīng)的類目和屬性,完成明晰的標(biāo)注。
而有了基礎(chǔ)的數(shù)據(jù)來(lái)源,我們就能通過(guò)構(gòu)建后臺(tái)圖像數(shù)據(jù)庫(kù),來(lái)進(jìn)行款式屬性的識(shí)別,OCR文字的識(shí)別、以及圖像特征的檢索等操作。
在此基礎(chǔ)上,結(jié)合各種運(yùn)營(yíng)活動(dòng)與策略,我們就能夠在前端將商品展現(xiàn)出去,對(duì)便用戶進(jìn)行瀏覽和購(gòu)買(mǎi)。
眾所周知,物體容易受拍攝環(huán)境的影響。比如:光照變化、尺度變化、視角變化、遮擋以及背景雜亂等因素,都會(huì)對(duì)檢索結(jié)果造成較大的影響。
此外,電商還面臨著來(lái)自如下方面的挑戰(zhàn):
- 電商平臺(tái)每天都有頻繁的上、下架商品,它們給索引的整體構(gòu)建帶來(lái)了巨大挑戰(zhàn)。
- 規(guī)模是把雙刃劍,雖然我們擁有了足夠多的數(shù)據(jù)進(jìn)行模型訓(xùn)練,但是龐大的數(shù)據(jù)也對(duì)整體搜索構(gòu)成了巨大的壓力。
- 數(shù)據(jù)質(zhì)量無(wú)法保障,尤其是那些用戶上傳的各種買(mǎi)家show圖片,以及商家打錯(cuò)類目標(biāo)簽的問(wèn)題。
- 用戶的查詢也會(huì)存在著多樣性,包括對(duì)于各種上傳商品圖、視頻截圖、以及實(shí)拍圖的需求。
蘑菇街視覺(jué)搜索技術(shù)架構(gòu)與研發(fā)
基于上面提到的數(shù)據(jù)特點(diǎn)與挑戰(zhàn),我們研發(fā)了自己的視覺(jué)搜索技術(shù)架構(gòu)。如上圖所示,其流程為:
- 在接到用戶的查詢請(qǐng)求之后,我們會(huì)對(duì)類目進(jìn)行預(yù)測(cè)。
- 通過(guò)目標(biāo)檢測(cè),我們得到所需的內(nèi)容。
- 通過(guò)特征提取器,提取圖像的特征表達(dá)。
- 基于ANN檢索,得到充分的檢索結(jié)果。
- 通過(guò)Rerank方式,得到檢索的最終結(jié)果。
基于上述流程,我們來(lái)依次介紹其不同的環(huán)節(jié)。對(duì)于類目預(yù)測(cè)而言,我們分為三個(gè)方向:
- 由于輸入數(shù)據(jù)較為雜亂,因此我們需要對(duì)圖像進(jìn)行質(zhì)量評(píng)估,處理掉質(zhì)量較差、或不宜于展示的圖片,以提升用戶的體驗(yàn)。
- 基于同圖的過(guò)濾方式,處理掉數(shù)據(jù)庫(kù)中的同圖。
- 進(jìn)行各種類目的分類工作。
圖像質(zhì)量評(píng)估
圖像質(zhì)量評(píng)估實(shí)際上是對(duì)圖像美觀度的識(shí)別。目前市面上的大部分圖像質(zhì)量分析,主要是在粗粒度層面上給出質(zhì)量的分級(jí),如:好的、中等的、差的。
因此,它們只是將問(wèn)題歸成了分類問(wèn)題,并沒(méi)有從細(xì)節(jié)上去模擬人類的審美,給出圖像的優(yōu)劣判定。
在此,我們借鑒了“Photo Aesthetics Ranking Network with Attributes and Content Adaptation”一文的思想,采用了文中提到的前兩種網(wǎng)絡(luò)結(jié)構(gòu)。
首先,我們通過(guò)人工標(biāo)注,從上圖右側(cè)所展示的多緯度屬性方向去對(duì)數(shù)據(jù)進(jìn)行打標(biāo),進(jìn)而得出美觀度的總體分值。接著,我們采用了單支和多分支兩種回歸網(wǎng)絡(luò)。
單支回歸網(wǎng)絡(luò)訓(xùn)練的是一個(gè)回歸模型的Reg,其lable為圖片的總評(píng)分(score)。通過(guò)對(duì)某個(gè)圖片上11個(gè)評(píng)分點(diǎn)的相加,構(gòu)造出一個(gè)多分支,進(jìn)而融合成一個(gè)得分制的回歸網(wǎng)絡(luò)Reg+Att。
在訓(xùn)練時(shí),label的11個(gè)屬性評(píng)分與最終的score,會(huì)將Reg所訓(xùn)練好的權(quán)重遷移到Reg+Att之中,并最終使用Reg+Att網(wǎng)絡(luò)來(lái)進(jìn)行預(yù)測(cè)。
有了該網(wǎng)絡(luò)之后,我們便可以對(duì)于數(shù)據(jù)庫(kù)中的圖片數(shù)據(jù)進(jìn)行美觀度評(píng)分,進(jìn)而過(guò)濾掉美觀度分值較差的圖片。
同圖過(guò)濾
如果我們搜索出來(lái)的結(jié)果存在大量同圖的話,勢(shì)必會(huì)降低用戶的體驗(yàn)度。因此,我們采用輕量化的pHash方式進(jìn)行快速地同圖過(guò)濾。
該方式的基本思想是:為每一張圖片形成一個(gè)哈希值。整個(gè)計(jì)算過(guò)程為:
- 對(duì)一張圖片進(jìn)行resize,將其縮放成8×8的尺度,共有64個(gè)像素。
- 轉(zhuǎn)成灰度圖片,計(jì)算灰度平均值。
- 將每個(gè)像素的灰度值和平均值進(jìn)行比較。如果是大于或者是等于該平均值,則記為1;若小于平均值,則記做0。
- 將這些0、1的結(jié)果進(jìn)行串聯(lián),得到二進(jìn)制的表達(dá)。
- 通過(guò)漢明距離進(jìn)行距離計(jì)算,籍此判斷是否為同一張圖片。
- 結(jié)合包括銷(xiāo)量、價(jià)格、上店時(shí)間、以及店鋪星級(jí)在內(nèi)的業(yè)務(wù)邏輯,進(jìn)行同圖的合并或過(guò)濾。
類目分類
類目分類的主要目的是縮小待檢索的數(shù)據(jù)量,提升檢索的精度。在電商的場(chǎng)景中,有著“類目數(shù)”的概念。例如:服飾鞋包、女裝、上裝、以及T恤,就構(gòu)成了類目數(shù)的不同分支。
其中,服飾鞋包是一級(jí)類目,女裝是二級(jí)類目,上裝是三級(jí)類目,T恤則對(duì)應(yīng)的是四級(jí)類目。如上圖所示,我們針對(duì)于不同類目數(shù)的數(shù)據(jù)分布情況,以及用戶對(duì)于類目的認(rèn)知,整理出了上述十個(gè)大類,它們基本覆蓋了我們系統(tǒng)中的所有葉子類目。
除了上述橫向的十個(gè)大類,我們也結(jié)合了縱向的四級(jí)類目(共504個(gè)),以便在后續(xù)的結(jié)果召回上實(shí)現(xiàn)彌補(bǔ)。
同時(shí),由于各個(gè)任務(wù)之間存在著相關(guān)性,因此我們采用的是基于多任務(wù)的學(xué)習(xí)方式,通過(guò)彼此之間的促進(jìn),讓模型具有更好的泛化能力。
如上圖所示,此處的底層網(wǎng)絡(luò)是ResNet18,后面的兩個(gè)FC分支分別對(duì)應(yīng)著兩個(gè)不同的具體任務(wù)。通過(guò)迭代,該模型的top1,在十大類層面上可達(dá)92%,而在四級(jí)類目上則為84%。
主體檢測(cè)
對(duì)于一張圖片,我們可以采用兩種主流的目標(biāo)檢測(cè)方式:
- Faster R-CNN之類的two-stages的方式
- SSD之類的one-stage的方式
由于是基于RNN,因此two-stages方式的精度更高些;同時(shí),由于是串聯(lián)方式,所以其計(jì)算性能略差。而one-stage方式則恰恰與此相反。
鑒于兩類方法的優(yōu)缺點(diǎn),最終我們采用了基于Refinement網(wǎng)絡(luò)的模型訓(xùn)練。其中,Anchor refine module類似于Faster R-CNN中的RPN,而Object detect module則類似于SSD。中間通過(guò)TCB模塊進(jìn)行特征轉(zhuǎn)換,將上層的ARM特征上傳到某個(gè)檢測(cè)模塊中。
同時(shí),TCB具有一個(gè)類似于FPN金字塔形式的向前傳遞過(guò)程。因此,該網(wǎng)絡(luò)相當(dāng)于將RPN與后面的檢測(cè)模塊并行處理,進(jìn)而保證了檢索的性能。
而且,由于接入了FPN的特定制,因此它對(duì)于一些小目標(biāo)的檢測(cè)來(lái)說(shuō),會(huì)有比較好的效果。
我們基于該網(wǎng)絡(luò)也制定了一些檢測(cè)目標(biāo),例如:我們會(huì)檢測(cè)某張圖片中出現(xiàn)的上服、褲子、裙裝、鞋子、包包和人臉等區(qū)域部分。
通過(guò)迭代訓(xùn)練,我們最終可以達(dá)到0.95的MAP,而在K40上的檢索性能則為25FPS,同時(shí)在P100上,會(huì)達(dá)到50多的FPS效果。
上面四張圖展示的是我們?cè)诓煌瑘?chǎng)景下目標(biāo)檢測(cè)的結(jié)果:第一張圖來(lái)自商品搜索的結(jié)果;第二張圖來(lái)自用戶的實(shí)拍;第三張截圖來(lái)自直播場(chǎng)景;最后一張圖來(lái)自線下數(shù)據(jù)的實(shí)測(cè)情況。
圖像特征學(xué)習(xí)
針對(duì)在真實(shí)的電商場(chǎng)景中存在著圖像特征提取的需求,我們整理出了一套多位的標(biāo)簽體系。其中包括:類目的CID、SKU的顏色、圖像本身的圖案信息、Shape信息、以及其他擴(kuò)展信息。
雖然在制定標(biāo)簽時(shí),我們難免要進(jìn)行大量的數(shù)據(jù)清洗和整理工作,但是,由于商家在上傳圖片時(shí),已經(jīng)給商品打上了Title等屬性信息,因此我們可以直接通過(guò)這些文本描述,來(lái)拿到一些“天然”的標(biāo)簽。
另外,我們也可以通過(guò)諸如:款式屬性模型、元素圖案模型、以及一些細(xì)粒度的顏色模型,來(lái)對(duì)這些數(shù)據(jù)進(jìn)行重新打標(biāo)或予以校驗(yàn)。
有了上述兩方面的基礎(chǔ),我們?cè)俳Y(jié)合一些人工的審核方式,最后就能得出相對(duì)完善的標(biāo)簽。如上圖的右側(cè)兩行文字所示,它們分別代表了標(biāo)簽的具體含義。
在標(biāo)簽體系建成之后,我們就可以開(kāi)始整理數(shù)據(jù)了。一般而言,類別應(yīng)當(dāng)越細(xì)越好,每類的數(shù)據(jù)也是越多越好。
但是在實(shí)踐中,我們需要將每一類數(shù)據(jù)的體量設(shè)置為:上限2萬(wàn)、下限1千,以避免出現(xiàn)樣本不均衡的問(wèn)題。因此,在整理完成后,我們最終得到了2319個(gè)標(biāo)簽、約1000萬(wàn)個(gè)訓(xùn)練樣本。
有了數(shù)據(jù)標(biāo)簽和可供訓(xùn)練的數(shù)據(jù),下面我們便可以通過(guò)基于CNN網(wǎng)絡(luò)的分類模型,來(lái)訓(xùn)練特征了。
為了得到更好的分類效果,我們引入了Triplet的網(wǎng)絡(luò)結(jié)構(gòu)。如上圖所示,右側(cè)圖共有三個(gè)分支:中間為query、上面是positive、下面為negative。
而在最后,我們采用了兩種loss:一種是分類的loss、另一種是基于Triplet的loss。通過(guò)此方式,我們既可以縮減類內(nèi)距離,又能夠拉大類間距離,進(jìn)而增強(qiáng)特征學(xué)習(xí)的效果??梢?jiàn),在基于Triplet loss的學(xué)習(xí)中,關(guān)鍵問(wèn)題是對(duì)于上述三個(gè)分支的選擇。
對(duì)于positive樣本,我們會(huì)選擇同一個(gè)標(biāo)簽的樣本;而對(duì)于negative樣本,則盡量選擇那些移位不同所對(duì)應(yīng)的標(biāo)簽圖片。因此,通過(guò)迭代式訓(xùn)練,我們最終的分類效果(即top1)為68%。
有了上述基本特征的提取網(wǎng)絡(luò),我們接著需要考慮具體應(yīng)選用哪些特征。如上圖所示,我們分別對(duì)于res所對(duì)應(yīng)的5a、5b、5c、以及res4的一些層(如fc層)進(jìn)行了特征提取。通過(guò)驗(yàn)證,我們最終認(rèn)為:基于res 5a層所得到的結(jié)果最好。
在res 5a層上,我們會(huì)結(jié)合GAP(全局平均池化,Global Average Pooling)的方式,進(jìn)行特征的聚合。GAP主要被用來(lái)解決全連接的問(wèn)題。
如上圖,通過(guò)基于res 5a的512×7×7 feature map的處理,我們能得到一個(gè)1×512的512個(gè)特征。接著,我們進(jìn)行各種平方與歸一化的操作,進(jìn)而得到最終的檢索特征。
近似最近鄰檢索
接著,我們需要通過(guò)乘積量化的方式來(lái)進(jìn)行近鄰檢索。乘積量化是在內(nèi)存和效率之間實(shí)現(xiàn)平衡的一種方式。它既能為圖像的檢索結(jié)構(gòu)提供足夠的內(nèi)存,又能保證檢索的質(zhì)量與速度。
其核心思想是對(duì)特征進(jìn)行分組量化,即:將某個(gè)特征分成M組,對(duì)每一組進(jìn)行細(xì)致的量化,進(jìn)而通過(guò)每一組量化中心的卡爾積,得到最終的碼本。
在檢索過(guò)程中,我們需要構(gòu)建索引的結(jié)構(gòu)。上面左側(cè)圖是我們對(duì)于數(shù)據(jù)庫(kù)采用的檢索結(jié)構(gòu)。輸入Y對(duì)應(yīng)的是數(shù)據(jù)庫(kù)中某一張圖片。
通過(guò)粗量化的中心計(jì)算,我們能夠得到一個(gè)粗量化的QC,該QC即為對(duì)應(yīng)的倒排文件入口。通過(guò)計(jì)算Y和QC之間的殘差向量,我們便可得出一個(gè)RY。
RY再通過(guò)M分組,讓每個(gè)分組對(duì)應(yīng)一個(gè)細(xì)量化的中心。籍此,我們便可將該圖片加入其對(duì)應(yīng)的粗量化倒排鏈了。
如上面右側(cè)圖所示,在查詢圖像時(shí),我們會(huì)先通過(guò)粗的量化,給X找到對(duì)應(yīng)的檢索入口,接著計(jì)算其殘差,并根據(jù)既有的侯選查詢集合,計(jì)算出該殘差和集合的具體距離,最后再通過(guò)排序,以得到檢索結(jié)果。
Reranking
為了得到更為全局的特征,我們需要采用Reranking,來(lái)挖掘圖像的局部特征。此處,我們是通過(guò)結(jié)合RMAC特征,以及Attention方式來(lái)實(shí)現(xiàn)的。
RMAC方式是通過(guò)變窗口的方式來(lái)進(jìn)行滑窗的。該滑窗過(guò)程不是在圖像本身上進(jìn)行的,而是在某個(gè)feature map上實(shí)現(xiàn)的。因此,它保障了特征提取的速度。
不過(guò),雖然RMAC可以提取許多局部區(qū)域特征,但是它并未考慮到不同region之間的重要性。而且在某些情況下,由于某些圖片包含了較多的背景區(qū)域,從而干擾了檢索效果。因此,我們需要結(jié)合Regional attention來(lái)進(jìn)行學(xué)習(xí),以得出特征的重要性。
具體做法如上圖所示:通過(guò)前面訓(xùn)練出來(lái)的網(wǎng)絡(luò)結(jié)構(gòu),我們可以得出圖像的Res維特征。接著,我們基于不同的scale,進(jìn)行局部特征的提取。
通過(guò)該四個(gè)scale的特征選取,我們能夠保證相鄰窗口具有40%的overlap。之后,會(huì)配有兩個(gè)分支:
- R-MAC模塊。其中包含了Max spooling和后處理過(guò)程(Post-processing)。該后處理過(guò)程包括:L2-normalization和PCA-whitening。此后通過(guò)sum-pooling和L2-normalization得到Global feature vector的表達(dá)。
- Regional attention模塊。鑒于這些局部特征的重要性,我們需要結(jié)合Regional attention模塊,來(lái)學(xué)習(xí)不同的權(quán)重。具體過(guò)程是:我們將區(qū)域特征(Regional feature)和全局特征(Global feature)進(jìn)行融合(Mean pooled),以實(shí)現(xiàn)對(duì)上下文的感知(Context-aware)。在Attention模塊中,我們?cè)贑hannel space中進(jìn)行了Concat,之后進(jìn)入Attention network(其中包括兩個(gè)線性層和兩個(gè)非線性層),以得到Attention的權(quán)重。
結(jié)合上述RMAC的特征,我們通過(guò)加權(quán),以得到基于局部特征的表達(dá)。接著,我們會(huì)基于topN的結(jié)果執(zhí)行Reranking。當(dāng)然,我們也會(huì)結(jié)合擴(kuò)展查詢(Query expansion)的方式,以進(jìn)一步提升檢索的效果。
如上圖所示,左側(cè)是RNN網(wǎng)絡(luò)提取的全局的特征,右側(cè)是RMAC+Attention網(wǎng)絡(luò)提取的局部特征。
評(píng)測(cè)集及指標(biāo)
為了評(píng)測(cè)效果,我們準(zhǔn)備了如下評(píng)測(cè)數(shù)據(jù):
- Query圖片,包括:商品主圖、買(mǎi)家秀、以及直播截圖。
- Similar圖片,包括:商品附圖和詳情圖。
- 共2000組、1對(duì)1形式(商品的主圖對(duì)應(yīng)著商品的詳情圖)和1對(duì)N形式(一張主圖片對(duì)應(yīng)N張?jiān)敿?xì)圖片)。
- 搜索測(cè)試DB:200萬(wàn)。
在結(jié)果上,我們分別設(shè)置了兩個(gè)算法測(cè)試指標(biāo):TopN的召回結(jié)果和TopN的mAP結(jié)果。
上圖展示了可視化搜索的效果。
系統(tǒng)及業(yè)務(wù)應(yīng)用
上面是蘑菇街視覺(jué)搜索的系統(tǒng)架構(gòu)圖。它分為四個(gè)層級(jí):
- 基礎(chǔ)網(wǎng)絡(luò)模型,包括:類目的識(shí)別、目標(biāo)的檢測(cè)和特征提取的深度學(xué)習(xí)。同時(shí)它也包括基于PQ量化的模型。
- 算法模塊,分為離線和線上兩個(gè)部分:
- 離線數(shù)據(jù)的處理,包括:目標(biāo)檢測(cè)、特征提取、生成索引庫(kù)、以及通過(guò)Dump過(guò)程生成一些echo文件和數(shù)據(jù)。
- 線上的搜索過(guò)程,對(duì)應(yīng)了前面提到的那張表。
- 中間接口層,灰色為Dump數(shù)據(jù)的生成,右邊白色在線部分是針對(duì)不同算法模塊所給出接口。
- 業(yè)務(wù)應(yīng)用層,此處羅列了各種業(yè)務(wù)。目前,除了http接口,我們還接入了ZSerach和推薦引擎,以豐富推送結(jié)果。
下面具體介紹幾個(gè)業(yè)務(wù)應(yīng)用:
運(yùn)營(yíng)選品業(yè)務(wù):導(dǎo)購(gòu)運(yùn)營(yíng)基于流行服飾等圖片,利用視覺(jué)搜索技術(shù),查找到蘑菇街相應(yīng)的商品。通過(guò)接入選品的后臺(tái),我們根據(jù)運(yùn)營(yíng)輸入的圖片,搜索出來(lái)各種相似的商品圖片。
這些圖片附帶有價(jià)格、銷(xiāo)量、折扣、上架時(shí)間等商品信息。運(yùn)營(yíng)篩選需要的商品,通過(guò)APP前端推給用戶,從而避免了人工找圖的工作量,同時(shí)提升了運(yùn)營(yíng)效率。
同款審核:電商的基礎(chǔ)業(yè)務(wù)需要對(duì)商家上傳的商品圖片進(jìn)行同款審核,并提供商家對(duì)于審核結(jié)果的在線查詢。
因此,在接入了視覺(jué)搜索技術(shù)之后,我們通過(guò)識(shí)別系統(tǒng)來(lái)判斷同款商品,并返回結(jié)果數(shù)據(jù)。在該算法上線之后,我們通過(guò)結(jié)合業(yè)務(wù)數(shù)據(jù)的實(shí)測(cè),整體系統(tǒng)的準(zhǔn)確率達(dá)到了99.06%,而漏檢率僅有3%。
搜圖購(gòu)類產(chǎn)品:我們?cè)?017年底上線了該產(chǎn)品的App端,而在2018年初上線了微信女裝小程序。該產(chǎn)品的整體情況為:日均UV可達(dá)50萬(wàn)左右。
搭配TAB:為了給用戶推薦各種搭配商品,我們基于現(xiàn)有圖像數(shù)據(jù)庫(kù),結(jié)合目標(biāo)檢測(cè)算法,對(duì)全身圖商品進(jìn)行了檢測(cè)。系統(tǒng)通過(guò)區(qū)分不同區(qū)塊,以獲取相似商品的搜索結(jié)果。
如上圖所示,用戶在點(diǎn)擊了首頁(yè)里的搭配圖之后,便可獲取詳細(xì)的展示信息,進(jìn)而在第三層的頁(yè)面上,看到不同區(qū)塊的相似性推薦結(jié)果。
Buy The Look:在內(nèi)容分享場(chǎng)景中,達(dá)人們會(huì)曬出自己的服飾自拍圖,我們根據(jù)這些圖片進(jìn)行目標(biāo)檢測(cè),并通過(guò)每個(gè)區(qū)塊實(shí)施相似搜索,最終給用戶推送對(duì)應(yīng)的相似商品。
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】