圖像算法助力提效轉(zhuǎn)轉(zhuǎn)商品審核
一、商品審核背景介紹
轉(zhuǎn)轉(zhuǎn)是一家主營二手商品交易的電商平臺。根據(jù)交易主體的不同,可以形成C2C、C2B、B2C等交易關(guān)系。比如個人用戶在轉(zhuǎn)轉(zhuǎn)app的自由市場發(fā)布商品進行售賣屬于C2C模式、轉(zhuǎn)轉(zhuǎn)公司提供手機和其他電子產(chǎn)品的郵寄與上門回收C2B服務(wù),轉(zhuǎn)轉(zhuǎn)app還提供官方驗和質(zhì)保與售后的二手B2C商品。本文將重點介紹轉(zhuǎn)轉(zhuǎn) B2C 賣場商品上架審核過程中圖像算法的應(yīng)用。
由于二手商品的非標品性質(zhì),即便同一sku下的不同庫存商品間也存在著成色差異。平臺為了提升用戶體驗,增加商品信息的透明度,在展示二手商品時全部采用實拍商品圖,避免使用渲染的標品圖片。這就涉及到對每個上架商品的相關(guān)展示圖片進行信息準確性、圖片質(zhì)量等各方面的審核問題。
業(yè)務(wù)發(fā)展初期,上架商品的相關(guān)展示圖片均由人工審核來保證圖片的質(zhì)量和準確性,審核的內(nèi)容主要有以下幾個方面:
- 展示圖與實際商品是否一致,避免“貨不對板”的情況出現(xiàn);
- 展示圖照片是否清晰,流水化作業(yè)的商品圖拍攝過程中偶爾會出現(xiàn)相機對焦失誤的情況;
- 手機、平板電腦等電子產(chǎn)品需要保證沒有臟污,并在重點部位貼防拆標;
- 為了商品圖片在app中的展示效果,要對商品圖進行適當剪裁使得商品在圖片中居中。
隨著業(yè)務(wù)的發(fā)展,每日上架商品日益增多,人工審核在審核效率和準確性上逐漸暴露出了一些問題:
- 審核工作枯燥、易疲勞,人工審核出錯概率較高;
- 圖片清晰度的判斷偏主觀,不同審核人員之間的審核標準很難拉齊;
- 人工審核處理量已經(jīng)逐漸落后于商品上架量,對于賣場商品的發(fā)布造成了瓶頸。
針對審核內(nèi)容里面的重復(fù)性工作,我們使用了圖像領(lǐng)域相關(guān)的分類、回歸、檢測等技術(shù),用算法模型輸出輔助人工判斷,在提升了審核結(jié)果的準確度的同時大幅提升了審核流程的效率。
二、自動審核方案
上架審核需要審核的內(nèi)容包括以下幾點:
- 商品展示圖和對應(yīng)的sku信息是否一致。
- 商品拍攝是否清晰。
- 商品是否貼了防拆標。
- 商品是否臟污。
- 商品是否處于圖像中心區(qū)域。
針對需要審核需要,我們設(shè)計了如下解決方案:
需要審核的項目解決方案商品展示圖和對應(yīng)的sku是否一致圖像匹配商品拍攝是否清晰回歸方案商品是否貼了防拆標檢測方案商品是否臟污檢測方案商品是否處于圖像中心區(qū)域檢測方案
下圖給出了B2C商品上架審核主要的審核項示意圖:
審核示例圖
2.1、商品展示圖和對應(yīng)的sku信息是否一致
商城售賣商品都需要對商品進行實物拍照展示,但是在商品上架到商城的過程中,由于人工失誤等情況,會出現(xiàn)商品展示圖和對應(yīng)的sku信息不匹配的情況。舉個簡單的例子,商品的sku信息是iphone11-紅色,但是展示圖卻是iphoneX-綠色。這個問題可以和圖像分類問題對應(yīng)上,相當于根據(jù)圖像信息,判斷商品類別。但是簡單的使用分類算法無法很好的解決我們的問題,直接使用分類存在以下問題:
類別是有限的,不管輸入圖像是否在類別中,都一定會輸出一個類別。
由于類別的固定,導(dǎo)致無法處理新增的sku。
由于分類方法存在上面的問題,我們改變了策略,使用圖像匹配的方案。我們訓練一個較好的特征提取器,再使用圖像匹配方案,就可以較好的解決新加類別的問題。我們選取的方案和學術(shù)中的Face Recognition 、Person Re-Identification、Image Retrieval等方向的解決方案基本一致,主要流程包括圖像特征提取、圖像相似度計算、排序、輸出結(jié)果。其中圖像特征提取這塊是大家研究的重點方向,傳統(tǒng)圖像匹配特征包括SIFT、SURF、ORB特征等,基于深度學習的圖像特征提取主要是CNN神經(jīng)網(wǎng)絡(luò)進行特征提取。下圖給出了我們的方案:
商品suk審核方案
?訓練階段:訓練階段主要是使用交叉熵損失聯(lián)合三元組損失訓練一個分類網(wǎng)絡(luò),其中骨干網(wǎng)絡(luò)嘗試了MobileNet、ResNet、ShuffleNet、OSNet等。我們的實驗結(jié)果顯示ResNet模型的精度略高,因此選取了ResNet作為我們的骨干網(wǎng)絡(luò)。
三元組示例
公式1給出的是二分類交叉熵損失函數(shù),其中表示樣本的輸出值,表示樣本對應(yīng)的標簽。公式2給出了三元組損失函數(shù),表示錨點樣本對應(yīng)的特征向量,表示與錨點樣本類別相同的樣本對應(yīng)的特征向量,表示與錨點樣本不同類別的樣本對應(yīng)的特征向量。特征空間內(nèi),負樣本距離錨點樣本的距離減去正樣本到錨點的距離應(yīng)大于。
交叉熵損失函數(shù)是常見的分類損失函數(shù),三元組損失函數(shù)是人臉識別、行人重識別中常用的損失函數(shù)。三元組損失函數(shù),可以使特征在特征空間呈現(xiàn)一簇一簇的特征,其帶來的好處就是可以得到更加魯棒的特征。若單獨使用三元組損失函數(shù),模型的收斂速度較慢,因此我們使用交叉熵損失和三元組損失進行聯(lián)合監(jiān)督學習,以加速模型收斂,同時提升模型精度。
測試階段:測試階段選取訓練好的backbone做特征提取器,用來提取embedding特征。提取查詢圖像特征并與gallery庫中的特征計算余弦相似度,得到相似性排序列表,再選取排序列表中top1圖像對應(yīng)的類別作為查詢圖像的類別輸出。但是我們在構(gòu)建gallery時,一個sku存放了三張圖像,對應(yīng)著不同的拍攝場景,因此我們對top5輸出進行knn后得到查詢圖像對應(yīng)的sku。
上線運行:為了保證匹配算法輸出的sku一定是準確的,我們輸出了排序列表中的top1相似度,當相似度小于一定值threshold時,會輸出報警信息,進行人工審核。這個策略保證了算法輸出的sku信息準確性。
2.2、商品拍攝是否清晰
拍攝商品的過程中,由于商品移動或者沒對好焦距,導(dǎo)致拍攝出的商品較為模糊。為了給用戶帶更好的購物體驗,我們會在審核的過程中打回這些商品,重新拍出符合要求的商品圖后才能上架。單純針對圖像拍照是否清晰,可以理解為圖像分類問題。由于圖像是否模糊的標注具有主觀性,同時二分類無法很好的刻畫出圖像的模糊度,因此在實際的審核過程中,一線審核人員對于輕微模糊的圖像往往會給出不同的判定結(jié)果,這類情況大大的影響了審核結(jié)果的一致性,導(dǎo)致商城中的商品展示效果有好有壞。
為了解決上面的問題,我們把圖像的模糊度分為三個級別,模糊度由高到低分別是明顯模糊、輕微模糊、清晰。并給出對應(yīng)的分值,分別為2,1,0分。多人對同一張圖進行打分,并去掉同時出現(xiàn)打分為明顯模糊和清晰的圖像,剩余的圖像進行數(shù)值歸一化,得到圖像的模糊度分值。當然,我們可以把模糊程度細分為四類,比如明顯模糊,輕微模糊、細微模糊、清晰,并且讓更多的標注人員標注同一張圖,這樣我們可以得到更加細膩的標簽值,這樣也能帶來更好的預(yù)測結(jié)果。但是鑒于資源有限,我們只把模糊度劃分為三個級別,讓三個同學進行標注。由此,我們把二分類問題轉(zhuǎn)化為了回歸問題,并且可以很好的隔離開業(yè)務(wù)標準。下面的表格給出了我們?nèi)绾伟逊诸惾蝿?wù)變成回歸任務(wù)。
圖片名同學一打分同學二打分同學三打分總分(0-6)歸一化得分圖片1明顯模糊輕微模糊明顯模糊55/6=0.83圖片2輕微模糊輕微模糊明顯模糊44/6=0.67圖片3清晰輕微模糊清晰10.17..................
同樣的,我們還是使用卷積神經(jīng)網(wǎng)絡(luò),然后把分類損失函數(shù)變成回歸損失函數(shù),我們選用了MSE作為回歸任務(wù)的損失函數(shù),其中表示樣本的預(yù)測值,表示樣本的標簽。
模型的輸出值代表圖像的模糊程度,我們把二分類任務(wù)變成回歸任務(wù)后,可以帶來諸多好處。首先就是算法開發(fā)與業(yè)務(wù)解耦合,不會因為業(yè)務(wù)標準的變更導(dǎo)致算法模型失效;同時業(yè)務(wù)方可以根據(jù)業(yè)務(wù)需求設(shè)置不同的模糊度閾值用來控制商城圖像的清晰程度。
2.3、商品是否貼了防拆標、是否臟污、是否處于中心區(qū)域
針對商品是否貼了防拆標、是否臟污、是否處于中心區(qū)域問題,我們使用檢測方案。這三個項中,防拆標和物品的檢測都較為簡單。防拆標檢測中的防拆標特征單一,因此比較容易訓練出一個檢測準確率相當模型;商品是否居中檢測中,物品較大,且數(shù)據(jù)好收集,也能訓練出一個準確率相當高的商品檢測模型。
臟污的檢測則比較困難,因為部分臟污目標較小,且樣本不易獲取。針對這個問題,我們在數(shù)據(jù)收集的過程中選取主動學習的策略去尋找到更多正樣本(檢測任務(wù)中的正樣本指的是我們需要檢測的樣本類)。其方式也很簡單,我們在初期使用一批數(shù)據(jù)訓練檢測模型,隨后用該模型以非常低的置信度在大批量未標注的數(shù)據(jù)中選取可疑正樣本,再讓人工對該批數(shù)據(jù)進行標注,隨后再用新數(shù)據(jù)更新訓練模型,這便是一輪循環(huán)。我們可以多次重復(fù)該步驟,最后可以得到一個媲美人工的檢測模型。
2.4、算法的應(yīng)用策略
對于計算機視覺中常見的分類、檢測等任務(wù),我們無法同時保證模型的召回和精度同時達到100%的指標,因此在實際的應(yīng)用過程中,需要結(jié)合實際業(yè)務(wù),考慮選取模型是采用高精度還是高召回的狀態(tài)。下圖給出了召回率和精度關(guān)系的曲線圖(圖片來源于周志華老師的<機器學習>一書)
PR曲線圖
針對我們的審核業(yè)務(wù),我們采取的是高召回策略,也就是保證模型可以盡可能把不符合要求的商品圖都找出來,其代價就是精度會相應(yīng)的降低。我們召回有拍攝有問題商品后,會人工介入審核,因此那些被誤召回的例子不會對業(yè)務(wù)造成影響。
在算法的輔助下,目前上架審核同學的工作量降低了50%。經(jīng)過算法的商品圖像中,有50%的商品通過算法,可以直接上架到商城app,剩余的疑似有問題的商品都會被算法識別出來,然后再人工復(fù)審。
三、總結(jié)
我們在第一節(jié)介紹了商品上架審核的背景,我們?yōu)槭裁匆獙徍艘约皩徍说膬?nèi)容,同時分析了當前業(yè)務(wù)中人工審核面臨的一些問題,然后給出了算法賦能業(yè)務(wù)帶來的好處。
在第二節(jié),我們詳細的介紹了算法模塊。根據(jù)上架審核項的不同,我們采用了三種方式分別去解決三個不同的任務(wù)。并介紹了算法應(yīng)用落地所選取的高召回率犧牲預(yù)測精度的方案,以及這種方案的可行性,最后給出了算法上線取得的效果。