張侃弘,周欣然,欒曉宇,2,李敏剛
(1.上海煙草集團有限責(zé)任公司 信息中心,上海 200082;2.上海煙草集團有限責(zé)任公司 營銷中心,上海 200082)
隨著卷煙精準(zhǔn)營銷工作不斷升級,及時準(zhǔn)確地掌握零售終端的店面貨架陳列情況,對卷煙陳列分析和投放策略制定具有顯著價值。目前已經(jīng)采集了海量的卷煙終端陳列圖像信息,但是缺少有效的手段將其有效轉(zhuǎn)換為數(shù)值信息,以便實施自動化的數(shù)據(jù)挖掘。因此,研究一套在線智能陳列識別方法,十分必要。
針對卷煙品牌培育策略,孫晶[1]提出了使用圖像識別技術(shù)分析柜臺陳列,建立消費者與卷煙品牌的信息關(guān)聯(lián)。馮軍平等[2]也就AI技術(shù)在卷煙營銷的應(yīng)用做了展望。但文獻[1-2]均未對技術(shù)實現(xiàn)提供可執(zhí)行的系統(tǒng)方案。早期研究人員大多利用傳統(tǒng)的圖像處理技術(shù)對貨架陳列商品進行識別。陳哲凡等[3]在SURF(Speeded Up Robust Features)算法基礎(chǔ)上提出了一種基于匹配角度聚類的匹配算法。鄭建彬等[4]提出了一種改進的SIFT(Scale-invariant feature transform)誤匹配點剔除方法。這類方法都是通過模板圖和待檢測目標(biāo)的匹配度得出識別結(jié)果,由于無法針對待檢測目標(biāo)建立模型,識別效果很容易達到瓶頸。通過Haar、LBP、HOG結(jié)合SVM,也可以實現(xiàn)檢測識別功能,但僅依賴人工設(shè)計的特征無法利用海量數(shù)據(jù)優(yōu)化特征提取質(zhì)量,難以應(yīng)對越來越多樣復(fù)雜的環(huán)境。
近十年來,深度學(xué)習(xí)開始廣泛應(yīng)用,F(xiàn)aster R-CNN[5]是一個經(jīng)典的二階段目標(biāo)檢測器,調(diào)節(jié)其預(yù)設(shè)錨框的比例可以適應(yīng)真實場景下的不同尺寸比例的商品目標(biāo)。此外一種單階段高效并具有在線難易樣本平衡的檢測器RetinaNet[6]被較廣泛地應(yīng)用。另一種廣泛應(yīng)用的算法YoloV4[7],結(jié)合了大量的有效策略且兼顧速度和性能的平衡。然而利用單一的檢測手段,無法對柜臺的陳列情況做出準(zhǔn)確分析,對香煙相似細品類識別能力也不足。本文結(jié)合目標(biāo)檢測、度量學(xué)習(xí)等技術(shù),提出了一種融合標(biāo)簽平滑策略和經(jīng)緯度信息的陳列識別方法,大大提升了陳列識別準(zhǔn)確率,為后續(xù)數(shù)據(jù)分析和挖掘提供了可靠的依據(jù)。
陳列分析系統(tǒng)的整體流程主要分為圖像采集、煙盒檢測、煙盒對齊、煙盒細分類和陳列分析5個部分,如圖1所示。
圖1 柜臺陳列分析流程示意圖
圖像采集的質(zhì)量高低對最終的識別效果有重大影響,通過制定圖像采集規(guī)范和強化采集前端預(yù)處理兩類措施來提高圖像采集質(zhì)量。圖像采集人員應(yīng)該按照表1的規(guī)范要求來采集圖像。
表1 數(shù)據(jù)標(biāo)準(zhǔn)表
前端預(yù)處理程序安裝在采集設(shè)備上,主要通過調(diào)用OpenCV的圖像處理接口實現(xiàn),重點檢測以下幾類問題:(1)非煙盒狀物體的判別;(2)清晰度的檢測;(3)防作弊。一旦發(fā)現(xiàn)這些問題,程序就會提示采集人員進行重新采集。
煙盒檢測即檢測出煙盒的圖像坐標(biāo)位置,這是煙盒識別的前提,其結(jié)果直接影響煙盒識別的效果??紤]到柜臺陳列場景中煙盒的尺度多變且光線復(fù)雜,本文選擇兼顧速度和性能的YoloV4網(wǎng)絡(luò)作為煙盒檢測網(wǎng)絡(luò)。然而YoloV4網(wǎng)絡(luò)原有的錨框是針對COCO數(shù)據(jù)集設(shè)計的,不太適合長寬比較為固定的煙盒物體。為此,通過K-means聚類算法針對煙盒數(shù)據(jù)重新聚類,得到合適的九種錨框:[28,45]、[36,75]、[51,89]、[60,127]、[93,91]、[91,165]、[131,217]、[179,294]、[465,458]。
1.3.1 錨框(anchor box)的作用
YoloV4通過3個不同尺度的特征層預(yù)測目標(biāo),每個特征層在基于預(yù)設(shè)的3個錨框回歸目標(biāo)尺寸和確定類別。錨框的尺寸越靠近真實樣本尺寸分布的聚類中心,網(wǎng)絡(luò)初始時便具備更高的回歸精度,有利于網(wǎng)絡(luò)收斂。
1.3.2 K-means聚類
K-means均值聚類算法(K-means clustering algorithm)是一種迭代求解的聚類分析算法,本文使用步驟如下。
(1)統(tǒng)計訓(xùn)練數(shù)據(jù)集中所有的檢測對象的寬高。
(2)從所有樣本中隨機選擇k個框作為二維聚類中心點。
(3)計算每個真實框(ground truth)和每個聚類中心點的距離,將所有的ground truth分配給距離最近的聚類中心。
(4)所有真實框分配完畢以后,對每個簇重新計算聚類中心點,方式為對該簇中所有真實框取均值。
(5)重復(fù)步驟(3)和(4),直到聚類中心改變量足夠小,得到k個聚類中心即為目標(biāo)錨框,此處k為9。
(6)考慮到K-means的收斂結(jié)果受到初始隨機影響,容易收斂到局部最優(yōu)值。故多次調(diào)整隨機數(shù)種子,重復(fù)(1)到(5)步驟得到多組結(jié)果。然后計算每組錨框的距離、求和以及排序,選擇居中的那一組作為最終選擇。
采集圖像時采集設(shè)備鏡頭和柜臺陳列面會存在傾斜和俯仰角,這會使煙盒在圖像中呈現(xiàn)出姿態(tài)差異性,影響識別效果。本文采用相似變換技術(shù)做煙盒姿態(tài)對齊操作,以降低姿態(tài)差異影響。首先對分辨率固定為200×300像素的煙盒圖片,人工標(biāo)注煙盒4個角點(簡稱原始角點),并從左上角按順時針排序,設(shè)置其對應(yīng)目標(biāo)角點坐標(biāo)為(10,10)、(190,10)、(190,290)、(10,290);然后利用Opencv求解原始角點到目標(biāo)角點的相似變換矩陣M,M的公式可表示為:
其中(x,y)代表原始點位,(x′,y′)代表目標(biāo)點位,s為縮放因子,θ為旋轉(zhuǎn)因子,tx和ty為平移因子。設(shè)計卷積網(wǎng)絡(luò)并以此為監(jiān)督加以訓(xùn)練,網(wǎng)絡(luò)預(yù)測變換矩陣內(nèi)的變換因子,以實現(xiàn)對齊目的,網(wǎng)絡(luò)圖如圖2所示。
圖2 煙盒對齊網(wǎng)絡(luò)圖
該網(wǎng)絡(luò)的輸入為(300,200,3)尺寸的煙盒圖片,輸出4維向量值[θ,s,tx,ty]。在煙盒對齊網(wǎng)絡(luò)中采用Smooth_L1 loss作為回歸損失,它收斂快、對離群點和異常值不敏感、不易發(fā)散,公式如下:
其中x表示網(wǎng)絡(luò)預(yù)測值與真實值的差值。
煙盒對齊之后,可以將其判別為三種大類:已入庫的煙盒類別(簡稱已知類別)、未入庫的煙盒類別(簡稱未知煙盒)、非煙盒物體。硬標(biāo)簽將所有類別的距離都置于相同距離,以三類為例:中華軟、中華硬、鉆石荷花三類硬標(biāo)簽分別表示為[1,0,0]、[0,1,0]、[0,0,1],兩兩之間的距離均為1,顯然不太合理。而軟標(biāo)簽[0.9,0.1,0]、[0.1,0.9,0]、[0,0,1]更利于表達相似關(guān)系,對未知煙盒及非煙盒的度量也更具區(qū)分性。標(biāo)簽平滑[8]將硬標(biāo)簽轉(zhuǎn)為軟標(biāo)簽,屬于正則化策略。做法是首先將訓(xùn)練集隨機分為兩部分,一部分通過圖3的Efficient-Net骨干網(wǎng)絡(luò)[9]訓(xùn)練一個細分類模型,利用模型對另一部分數(shù)據(jù)做Top-N投票(投票值即模型預(yù)估相似度);然后將人工標(biāo)注的one-hot向量更換為人工標(biāo)注和基礎(chǔ)模型預(yù)估相似度的加權(quán)融合標(biāo)簽,公式如下:
其中?∈(0,1)為融合系數(shù),yhi為硬標(biāo)簽向量;ysi為軟標(biāo)簽向量;i表示第i類煙盒。
為提高細粒度度量學(xué)習(xí)網(wǎng)絡(luò)的識別率,將經(jīng)緯度值特征與圖像特征拼接作為融合特征,改進特征提取效果。首先將煙盒圖片以及相對應(yīng)的經(jīng)緯度坐標(biāo)值作為網(wǎng)絡(luò)輸入;之后用Efficientnet作為骨干網(wǎng)絡(luò)提取特征,其中圖像經(jīng)過該網(wǎng)絡(luò)映射為N維特征向量,經(jīng)緯度值經(jīng)多層全連接映射為M維特征向量;接著對N維特征向量和M維特征向量做Concate操作,得到(N+M)維的特征向量Embeddings;最后采用Arcface度量損失解決細粒度分類問題。其網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 煙盒細粒度度量網(wǎng)絡(luò)結(jié)構(gòu)
在度量網(wǎng)絡(luò)中融合圖像特征和經(jīng)緯度特征,并以經(jīng)緯度信息作為部分先驗信息,其意義為:樣本的經(jīng)緯度體現(xiàn)為樣本附加屬性,如果樣本的經(jīng)緯度分支向量度量距離近,在整個向量距離的閾值約束下,便體現(xiàn)為放松對紋理相似性的要求。反之,如果經(jīng)緯度分支向量距離較遠,體現(xiàn)了樣本采集點和庫中數(shù)據(jù)分布特征差距大,則要加重對紋理相似性的驗證。經(jīng)緯度分支網(wǎng)絡(luò)起到了挖掘樣本分布的作用。考慮到實際推理時,存在經(jīng)緯度超出訓(xùn)練數(shù)據(jù)集的采集范圍以及未采集到經(jīng)緯度的情況,此時統(tǒng)一將經(jīng)緯度置為[-1,-1],特征融合示意圖如圖4所示。
圖4 圖像和經(jīng)緯度特征融合示意圖
本文中采用Arcface作為基礎(chǔ)度量損失函數(shù)[10],其主要優(yōu)點是:同類問題的人臉識別領(lǐng)域表現(xiàn)良好,在公開數(shù)據(jù)集LFW上達到了99.53%的準(zhǔn)確率。并且復(fù)雜性低、易于編程實現(xiàn)、訓(xùn)練效率高、直接優(yōu)化弧度(Geodesic distance margin)與余弦度量方式目標(biāo)一致。其工作流程圖如圖5所示。
圖5 Arcface工作流程圖
Arcface的損失可用以下公式表示:
其中N為訓(xùn)練批次數(shù),i為網(wǎng)絡(luò)輸出Embeddings,s為特征尺度,cosθj為每類權(quán)重,θyi為i與類別權(quán)重的角度。
軟件環(huán)境為:Ubuntu16.04的操作系統(tǒng)、Pycharm2019的IDE工具、python3.7(64位)的開發(fā)環(huán)境以及模型訓(xùn)練時使用的并行計算平臺CUDA10.0、CUDNN7.5。硬件環(huán)境為:Inter Xeon(R)Silver 4114@2.2 GHz×40、125.6 GB內(nèi) 存、4×Quadro RTX 6000顯卡(24 G顯存)。
本文采用rp2k公開數(shù)據(jù)集和采自A省的煙盒陳列圖像進行試驗,包含351個品規(guī),共計71 062張圖像。將此數(shù)據(jù)集劃分為兩份訓(xùn)練集,分別為17 094張、17 110張,驗證集16 525張(包含樣本平衡后多余數(shù)據(jù))和測試集20 333張。
(1)圖片預(yù)處理
所有訓(xùn)練樣本均歸一化到[0,1]之間、白化操作。
(2)基準(zhǔn)網(wǎng)絡(luò)和預(yù)訓(xùn)練權(quán)重
為了便于對比實驗結(jié)果,基準(zhǔn)網(wǎng)絡(luò)采用ImageNet預(yù)訓(xùn)練分類網(wǎng)絡(luò)EfficientNet-b3作為骨干網(wǎng),同時修改最后全連接層輸出維度作為嵌入向量,并對此向量進行L2正則化[11]。
(3)訓(xùn)練參數(shù)配置
每次實驗均采用相同的超參數(shù)配置。本文中使用Adam優(yōu)化器,最大訓(xùn)練批次為15,BatchSize為128,初始學(xué)習(xí)率為0.001且學(xué)習(xí)率分別在8、10、12批次時依次衰減10%。在整個網(wǎng)絡(luò)迭代過程中,輸入的每個batch樣本都做隨機采樣處理。
本文實驗主要分為三部分:標(biāo)簽平滑實驗、經(jīng)緯度融合實驗和優(yōu)化策略消融實驗。
2.4.1 標(biāo)簽平滑實驗
(1)本文把加入標(biāo)簽平滑策略的基準(zhǔn)網(wǎng)絡(luò)作為實驗網(wǎng)絡(luò),在數(shù)據(jù)、訓(xùn)練超參數(shù)和網(wǎng)絡(luò)結(jié)構(gòu)等完全相同的條件下,修改標(biāo)簽平滑中融合系數(shù)?,?=0.0時表示基準(zhǔn)網(wǎng)絡(luò)。做了以下對比實驗。實驗結(jié)果如圖6所示。
由圖6可知:當(dāng)融合系數(shù)?=0.1時,網(wǎng)絡(luò)在Top1和Top5的準(zhǔn)確率分別為92.7%和98.2%,比基準(zhǔn)網(wǎng)絡(luò)的準(zhǔn)確率在Top1和Top5上分別高出0.5%和1.9%;當(dāng)融合系數(shù)?分別為0.2、0.3和0.4時,準(zhǔn)確率都低于?=0.1的準(zhǔn)確率;實驗發(fā)現(xiàn)當(dāng)融合系數(shù)?=0.1時網(wǎng)絡(luò)最佳。
圖6 不同權(quán)重的標(biāo)簽平滑實驗結(jié)果
(2)為驗證引入標(biāo)簽平滑策略對未知煙盒及非煙盒的識別有效,本文保證數(shù)據(jù)和訓(xùn)練參數(shù)不變的條件下,分別訓(xùn)練基準(zhǔn)網(wǎng)絡(luò)和基準(zhǔn)網(wǎng)絡(luò)+標(biāo)簽平滑網(wǎng)絡(luò),并在rp2k商品數(shù)據(jù)集上測試,統(tǒng)計模型對未知煙盒及非煙盒的識別率。實驗結(jié)果見表2。
由表2可知:基準(zhǔn)網(wǎng)絡(luò)+標(biāo)簽平滑模型在rp2k商品數(shù)據(jù)測試集上測試,在未知煙盒與非煙盒物體的區(qū)分上準(zhǔn)確率提高了4.5%,表明引入標(biāo)簽平滑策略對未知煙盒及非煙盒的識別有效。
2.4.2 經(jīng)緯度融合實驗
(1)本文把加入經(jīng)緯度策略的基準(zhǔn)網(wǎng)絡(luò)作為實驗網(wǎng)絡(luò),在數(shù)據(jù)、訓(xùn)練超參數(shù)等完全相同的條件下,只改變多層感知機的層數(shù),做了以下對比實驗,實驗結(jié)果如圖7所示。
在圖7中,橫坐標(biāo)BL代表基準(zhǔn)網(wǎng)絡(luò);橫坐標(biāo)M1代表基準(zhǔn)網(wǎng)絡(luò)+3層FC經(jīng)緯度網(wǎng)絡(luò);橫坐標(biāo)M2代表基準(zhǔn)網(wǎng)絡(luò)+5層FC經(jīng)緯度網(wǎng)絡(luò);橫坐標(biāo)M3代表基準(zhǔn)網(wǎng)絡(luò)+7層FC經(jīng)緯度網(wǎng)絡(luò)。由實驗結(jié)果可得出:使用基準(zhǔn)網(wǎng)絡(luò)+7層FC經(jīng)緯度網(wǎng)絡(luò)的準(zhǔn)確率最高、效果最好。
圖7 不同數(shù)量FC層的實驗結(jié)果
(2)本文把加入經(jīng)緯度策略的基準(zhǔn)網(wǎng)絡(luò)作為實驗網(wǎng)絡(luò),在訓(xùn)練超參數(shù)和網(wǎng)絡(luò)結(jié)構(gòu)等完全相同的條件下,只改變帶有經(jīng)緯度的樣本占訓(xùn)練集的百分比,做了以下對比實驗,實驗結(jié)果如圖8所示。
圖8 樣本帶有不同經(jīng)緯度量的實驗結(jié)果
在圖8中,橫坐標(biāo)數(shù)值表示帶有經(jīng)緯度信息的樣本占總樣本的比率,縱坐標(biāo)數(shù)值表示細分類準(zhǔn)確率。由實驗數(shù)據(jù)可得:當(dāng)帶有經(jīng)緯度信息的樣本占總樣本的比率為100%時,模型的識別效果最好,在Top1和Top5上準(zhǔn)確率分別為92.6%和96.7%,比基準(zhǔn)網(wǎng)絡(luò)在Top1和Top5上都高出0.4%。
(3)為驗證經(jīng)緯度融合對基準(zhǔn)網(wǎng)絡(luò)的影響,做了以下對比實驗,實驗結(jié)果如圖9所示。
在圖9中橫坐標(biāo)M1為基準(zhǔn)網(wǎng)絡(luò);橫坐標(biāo)M2為基準(zhǔn)網(wǎng)絡(luò)+經(jīng)緯度融合(FC=7)網(wǎng)絡(luò),訓(xùn)練時使用的數(shù)據(jù)與M1相同,都是不帶有經(jīng)緯度信息的數(shù)據(jù)。由圖可知:M2與M1相比,經(jīng)緯度模塊加入基準(zhǔn)網(wǎng)絡(luò)時,不使用帶有經(jīng)緯度信息的樣本訓(xùn)練,不影響基準(zhǔn)網(wǎng)絡(luò)的精度。
圖9 經(jīng)緯度信息對基準(zhǔn)網(wǎng)絡(luò)的影響
2.4.3優(yōu)化策略消融實驗
本文以基準(zhǔn)網(wǎng)絡(luò)為基礎(chǔ),加入標(biāo)簽平滑和經(jīng)緯度融合策略做了以下消融實驗。實驗一為不使用標(biāo)簽平滑或經(jīng)緯度融合策略的基準(zhǔn)網(wǎng)絡(luò);實驗二為基準(zhǔn)網(wǎng)絡(luò)+標(biāo)簽平滑的實驗,標(biāo)簽平滑的融合系數(shù)α=0.1;實驗三為基準(zhǔn)網(wǎng)絡(luò)+經(jīng)緯度融合的實驗,其中提取經(jīng)緯度特征的多層感知機為5層,帶有經(jīng)緯度的樣本占訓(xùn)練樣本的50%;試驗四為基準(zhǔn)網(wǎng)絡(luò)+標(biāo)簽平滑+經(jīng)緯度融合的實驗,其中標(biāo)簽平滑的融合系數(shù)與實驗二相同,經(jīng)緯度融合的信息與實驗三相同。實驗結(jié)果見表3。
表3 實驗結(jié)果
由表3可知:標(biāo)簽平滑策略在Top1和Top5的準(zhǔn)確率上分別比基準(zhǔn)網(wǎng)絡(luò)高0.5%和1.9%;經(jīng)緯度融合策略在Top1和Top5的準(zhǔn)確率上均比基準(zhǔn)網(wǎng)絡(luò)高0.4%;標(biāo)簽融合+經(jīng)緯度融合策略在Top1準(zhǔn)確率上比基準(zhǔn)網(wǎng)絡(luò)高1.5%。由實驗結(jié)果可得:本文提出的標(biāo)簽平滑+經(jīng)緯度融合策略對基準(zhǔn)網(wǎng)絡(luò)的優(yōu)化有效,比基準(zhǔn)網(wǎng)絡(luò)的識別精確率高1.5%。
模型訓(xùn)練和調(diào)優(yōu)后,將其部署到Ubuntu服務(wù)器,對A省的9個地市跟蹤運行了3個月。在這期間,安排采集人員每周拜訪門店1次,每次采集約5張照片。采集的照片數(shù)量和模型檢出效果見表4。
表4 樣本采集情況和模型檢出結(jié)果
在表4中,“合格照片數(shù)”是由人工根據(jù)表1所述質(zhì)量標(biāo)準(zhǔn)篩選出來的;“檢出煙盒總數(shù)”是指模型從對應(yīng)的圖像數(shù)據(jù)集中識別出的煙盒總數(shù)(個別識別出的煙盒有可能是非煙盒物體);“檢出非煙盒總數(shù)”是模型從對應(yīng)數(shù)據(jù)集中識別出的非煙盒總數(shù)(個別識別出的非煙盒有可能是煙盒物體)。
從每個地市隨機抽取10張合格的照片,進行人工核對,結(jié)果見表5。
在表5中,“實際煙盒總數(shù)”是人工統(tǒng)計出的結(jié)果,“識別正確煙盒總數(shù)”是人工核對模型識別結(jié)果后得到的數(shù)量。實際檢出率=正確檢出煙盒總數(shù)/實際煙盒總數(shù);細分類準(zhǔn)確率=識別正確煙盒總數(shù)/正確檢出煙盒總數(shù);總的準(zhǔn)確率=識別正確煙盒總數(shù)/實際煙盒總數(shù)。從表中數(shù)據(jù)可以看出,平均總的準(zhǔn)確率為92.0%,其中平均細分類準(zhǔn)確率為96.7%,表明該模型在實際應(yīng)用中有效。
表5 人工核對結(jié)果
本文提出了一種卷煙終端陳列分析方法,特別對煙盒細類識別進行了改進,實驗結(jié)果表明:本文方法在實驗條件下的Top1準(zhǔn)確率為93.7%,高于基準(zhǔn)方法1.5%,在應(yīng)用環(huán)境下的識別準(zhǔn)確率為92%,能夠有效區(qū)分煙盒細品類,為柜臺陳列模型分析提供了可靠數(shù)據(jù)支撐,有助于分析門店陳列和產(chǎn)品銷售的關(guān)系,為市場人員提供改善品牌卷煙陳列建議。其貢獻如下。
(1)該方法提出一種完整的卷煙終端識別流程。
(2)針對煙盒細類高相似度,設(shè)計了針對性的標(biāo)簽平滑策略。
(3)根據(jù)煙盒的地區(qū)分布差異,提出經(jīng)緯度信息的融合網(wǎng)絡(luò)結(jié)構(gòu),有效約束了嵌入空間的搜索范圍,進一步提高識別精度。
(4)應(yīng)用環(huán)境下的卷煙陳列識別的準(zhǔn)確率達到92%,可以用于改善業(yè)務(wù)分析,比如提高上柜率分析的效率。