莊建軍, 石瀟愉
(南京信息工程大學電子與信息工程學院, 南京 210044)
互聯網的普及和智能手機的大眾化使人們的購物方式產生了巨大的變革。在年輕一代中,傳統線下購物幾乎已經被線上購物所取代。根據中國互聯網絡信息中心的數據,中國線上購物人數達到8.42億人,已超過總人數的1/2。一方面,互聯網帶來的海量產品令人目不暇接,用戶無法快速定位自己想要的物品,商標檢測方法可以幫助用戶實現即拍即搜的效果,獲得極大便利;另一方面,大量的商標侵權行為滋生,2022年,中國商標異議裁定數量達1.7×105。巨大的數據量面前,由于商標的圖片屬性,人工排查侵權行為效率低下,而使用商標檢測方法則只需拍攝一張照片即可從數據庫中索引到相關產品,隨后再由人員進行裁定,極大提高了工作效率。
王一海[1]提出了使用反向傳播(back propagation BP)神經網絡來進行商標識別,但這種靠全連接層的網絡效率過低。Leng等[2]引入主流的目標檢測模型YOLOv3,在Flickrlogos-32數據集上取得了73.9%的mAP(mean average precision)。林軼等[3]基于YOLOv3得到一種交通標志的識別方法,與商標識別類似,但是商標所在場景更為復雜。丁明宇等[4]把YOLO(you only look once)與文字識別技術相結合,進行商品參數的提取。總的來看,原有的商標識別方法,其覆蓋面不廣,使用的模型則相對落后,方法不夠有效。
隨著科技的不斷革新,對商標識別方法提出了更高的要求,需要設計一種更準、更小、更快的模型??v觀當下使用較多的目標檢測算法[5],一類是以區域卷積神經網絡(region convolutional neural networks R-CNN)系列算法為典型的雙階段(two-stage)檢測算法,這類算法的實現需要先進行區域生成,再對區域進行檢測達到由粗到細的整個過程。該類算法的第一階段不但導致了總體計算量的增加,也給訓練帶來很大的壓力。最后,該類模型在普通硬件條件下無法達到實時檢測的要求,檢測速度較慢。另一類單階段(one-stage)目標檢測算法以YOLO為典型,它們的主要特點是實現了端到端操作,不需要多余的工作就能達到輸入圖片輸出結果的效果。其中YOLOv7是當前最新的版本,相較之前的YOLO版本進步顯著,其速度和精度在5FPS-160FPS的范圍內達到了業內最高[6]。
商標識別存在以下難點,首先,商標在產品中出現的形式多樣,有標志也有文字,因此在樣本相對較少的情況下想要得到較高的精度存在著一定的困難,對模型的泛化能力提出了更高要求。其次,電商產品中商標大小差異大,這對模型的多尺度檢測能力提出了的嚴峻挑戰。再者,數據集中商標出現的位置及方向不同,這也會對檢測造成一定的困擾。鑒于此,兼顧檢測精度和檢測速度的提升,選用YOLOv7作為基礎模型并對其進行針對商標檢測的改進。研究成果可做到商標的智能化實時檢測,解放人們在分辨商標時付出的勞動力。
數據集取自天池平臺,從整個數據集中篩選出其中74類商標共6 673張從線上購物平臺中截取的圖片。其中不但有實物拍攝圖,也有商家提供的在干凈背景下的獨立商標,這有利于模型訓練初期對特征的提取,加快收斂速度。挑選出來的圖片中只有少部分已被標注的COCO(common objects in context)結構標簽,而研究所采用的是VOC(visual object classes)結構的標簽,因此通過文件處理將這部分json文件轉化為所需的xml文件。剩余圖片則通過LabelImg軟件進行手動標注,直接獲得所需的xml文件。標簽文件和對應的圖片同名,信息包括各圖片中商標的類別名稱和位置信息,其中位置信息包括左上坐標(xmin,ymin)以及右下坐標(xmax,ymin)。
為得到訓練過程中需要的先驗框,訓練前使用K-means[7]算法對數據集進行聚類。該階段可繪制可視化結果,觀察得到商標大小的分布,聚類結果如圖1所示。

圖1 數據集聚類結果Fig.1 Results of data clustering
由于類別較多,每一類商標擁有的樣本數并不多。因此采用數據增強來擴充數據集,增強模型的泛化能力。現在比較流行的數據增強方法有Mosaic(馬賽克數據增強)和Mixup(混類數據增強)。Mosaic通過圖像的縮放和拼接合成新的圖像進行訓練,Mixup則是將圖像設置透明度后重疊成新的圖像。兩者在不同的數據集上表現不一,因此需要通過實驗來決定具體如何使用以達到最好的效果。
從數據集取出10%作為測試集,再將剩余部分以9∶1的比例分為訓練集和驗證集。得到訓練集共5 404張,每一類大致有70張圖片可用作訓練。為直觀表示不同方法對訓練結果的影響,本文選擇每訓練5輪在驗證集上進行一次驗證,用當前訓練結果計算mAP,由此來觀察其收斂速度和最終效果。實驗方法如表1所示。

表1 數據增強對比方法Table 1 Comparison of data augmentation methods
圖2為數據增強階段的實驗結果,可以看出,Mosaic數據增強對訓練的影響最大,極大地加快了收斂速度,并且最后的結果出現明顯提升。而Mixup則表現不佳,單獨使用時甚至降低了訓練效果。初步分析是因為網購的實物圖由于各種活動信息導致元素雜亂,使用Mixup會讓雜亂加劇,導致關鍵信息變得模糊,降低了提取效果。但是在和Mosaic共同使用時可以達到一定的提升效果。

mAP為各類商標平均檢測精確度的平均值圖2 數據增強實驗結果Fig.2 Result of data augmentation experiments
根據實驗結果,最終選擇Mosaic和Mixup共同使用以達到更快地收斂速度和更高的精度。數據增強可以很好地避免模型訓練過程中過擬合現象的出現,有效地提高了模型的泛化能力,也緩解了樣本數量較少的問題。
YOLOv7由YOLOv1逐步改進而來,從開始建立起將圖片分成S×S的網格(S為網格的數量),再由每個網格負責預測的想法[8],到改進成為anchor-based模型[9]。YOLOv3版本中,首次在網絡中加入Neck部分,采用特征金字塔(feature pyramid network FPN)來解決小目標檢測問題[10];YOLOv4版本中,加入大量的tricks以提高性能[11],其中,Mosaic數據增強的使用,增加了數據量,使得背景多樣化,一定程度上降低了過擬合的危害;YOLOv5版本中,在Yolox中提出anchor-free模型,并且將檢測頭解耦,但這也帶來了參數量增加模型變大的問題;美團發布的YOLOv6版本更多的是在硬件上的加速。YOLOv7版本更專注于推理速度,在精度和速度上都超過目前主流的目標檢測器,模型總體結構沒有發生變化,但是改進了網絡中各個具體模塊,如將CSP(cross stage partial network)替換成了創新的多分支堆疊結構,SPP(spatial pyramid pooling)中也加入CSP結構以擴大感受野。因此,采用tiny版本的YOLOv7作為基礎模型進行針對性改進。
YOLOv7算法已經在公用數據集上達到SOTA,但是具體到特定數據集中,則尚存在改進空間,在提高其精度的同時減少模型的參數。74類商標中絕大部分都存在樣式多樣的情況,并且有圖案也有文字,這對模型的泛化能力提出了較高的要求。其次,商標的大小各異,有的出現在衣領上,目標很小,而有的則出現在是衣身上,目標很大,因此需要提高模型的多尺度特征融合能力。針對以上問題,模型做出下述改進,并且取到了較好的結果。
2.2.1 SimBiFPN
為了達到模型輕量化的目的,從Neck層入手,將PANet替換成了在主打輕量化的模型EfficientDet[12]中被提出的雙向特征金字塔網絡(bi-directional feature pyramid network BiFPN),并且做出了一定的改進。
由于各個不同的輸入特征對于最后的輸出所產生的貢獻是不等的,He等[13]在普通金字塔的基礎上加入了簡單的注意力機制,在各個特征輸入上加入權值,從而讓網絡自行選擇更加重要的輸入特征。隨后去除了金字塔上下邊緣的節點,由于這些節點只有一個輸入邊,對特征融合的貢獻度相對較小,因此這對最后的結果不會產生太大的影響,卻能減少參數量。并且除了進行不同特征圖之間的特征融合,該結構還創新性地增加了同一特征圖上前后不同層的特征融合。由于新增的連接處于同一條路,因此并不會增加太多的計算成本。處理過后的特征圖不僅擁有更高層次的語義信息,同時也融合了較低層次的位置信息。原版BiFPN結構如圖3所示。原文中還提到使用符合縮放方法來確定該結構的重復次數。考慮到盡量節省資源,只重復一次。

P1~P7為特征提取層中不同的輸出層圖3 BiFPN結構Fig.3 BiFPN structure
權重計算公式為
(1)
式(1)中:ωi、ωj為不同節點的權重大小,歸一化后與輸入特征Ii相乘;O為加權后的輸出特征;ε為一個很小的數,取值為10-4,用于防止出現分母為0的情況導致權重爆炸。
為了使該結構能夠完美融入YOLO,對其進行一定的改動。將其輸入輸出節點均減少為3個,并且更改了通道設置,從原本的全過程通道保持一致變為了有通道增減的融合機制。這樣會造成兩個邊緣節點權值不多,且根據K-means聚類得到的結果可以發現本數據集中等大小的商標占據了相當一部分數量。因此這樣做是相對科學的。將簡化后的結構命名為SimBiFPN,其結構如圖4所示。給出加權信息最多的P4輸出計算公式[式(2)、式(3)][14]。該方法首先通過逐通道卷積,再進行逐點卷積。在使用相同計算量和參數量的情況下,深度可分離卷積能讓神經網絡層數做的更深。Resize操作表示使用1*1卷積進行通道數的改變以及上下采樣。

為第n個輸入層;為第n個輸出層;Conv為卷積;Wmn為第m輪加權的第n個權重;Add為矩陣相加;SpConv為深度可分離卷積;UpSampling2D為2D維度的上采樣;DownSampling2D為2D維度的下采樣圖4 SimBiFPN結構圖Fig.4 SimBiFPN construction
淺層特征圖的感受野比較小,包含的是位置信息,而語義信息不足,易受到干擾,因此只適合檢測小目標;而在深層特征圖中,其感受野逐漸變大,包含豐富的語義信息,但是細節信息丟失嚴重。使用了簡化的雙向特征金字塔網絡后,很好地提升了網絡的特征融合能力,對于形狀大小各異的商標具有了更好的識別能力。

(2)
(3)
y=(αw1⊙αf1⊙αc1⊙αs1⊙W1+
αw2⊙αf2⊙αc2⊙αs2⊙W2+…+
αwn⊙αfn⊙αcn⊙αsn⊙Wn)*x
(4)
2.2.2 注意力機制
在商標識別的過程中,會遇到同一商標出現多種藝術形態的情況,這時候就需要模型更多地去關注關鍵性語義信息,防止預測結果被無關的細節改動影響。因此引入帶有注意力機制的動態卷積。
近年來,針對動態卷積的研究較多,較新的是全維度動態卷積(omni-dimensional dynamic convolution,ODConv)[16]。動態卷積主要受益于注意力機制的使用,因此選擇在網絡中添加ODConv進行嘗試。
動態卷積有兩個基本元素:卷積核和用于計算注意力的注意力函數。它對多個卷積核進行線性加權,權值與輸入掛鉤,使得動態卷積依賴于輸入特征。ODConv具有多維注意力機制,使用并行策略將卷積核空間的4個維度均帶上權值,分別是輸入輸出通道數、空間核尺寸和卷積核個數,計算公式如式(4)所示。
采用的YOLOv7結構中,在Neck和head之間有一個Conv連接塊對網絡影響不大且處于關鍵位置,因此考慮將這3個Conv改為ODConv模塊。加入動態卷積使網絡具有注意力機制,強化有用信息,抑制無關信息,根據不同的輸入來調整參數,加強了特征提取能力,使模型更加關注整體語義信息。
2.2.3 小目標檢測
當前市場上存在許多的商品將商標打在后面的衣領下,該類商標往往十分細小,屬于小目標。因此需要為模型提供像素級建模的能力,以提升其對小目標的檢測能力。
Funnel激活函數FRelu[17]在近兩年被提出,與傳統的激活函數實現方式不同,它的實現形式如式(5)所示。
y=max[x,T(x)]
(5)
式(5)中:函數T(x)表示二維空間的條件;y為輸出特征張量;x為輸入特征張量。
該激活函數的實現非常簡單,并且計算開銷的增加幾乎可以忽略不計。在使用了空間條件后,該激活函數具備了像素級的建模能力。其具體實現方式如圖5所示。

圖5 Funnel激活函數Fig.5 FRelu activation function
這種激活函數是專門為計算機視覺任務而設計的,從圖5中可以看到,激活函數的條件值變成了一個依賴于空間上下文的二維漏斗狀條件,可以為提取精細空間信息作出貢獻。
深度學習的訓練是一個相當耗時的過程,因此使用GPU進行加速運算來提高迭代效率很有必要。采用的實驗平臺是個人計算機,具體配置如表2所示。

表2 實驗環境配置Table 2 Experimental environment configuration
模型訓練時從0開始訓練,batchsize設置為8,采用adam優化器[18],動量設置為0.937,初始學習率為10-3,并且使用余弦退火[19],無權值衰減。最終訓練模型時的損失下降情況如圖6所示??梢钥闯?在150輪模型已經區域收斂,因此決定將訓練輪數定為150。

圖6 損失下降情況Fig.6 Loss decline
目標檢測類任務通常采用mAP作為評價模型性能的指標,代表著對目標的類別信息以及位置信息的預測準確程度。位置信息通常采用各類IoU來進行計算。該指標中包括了查全率R和查準率P,AP的值就是由P-R曲線與坐標軸圍成的面積計算得來的,平均各類的AP得到mAP,計算公式為
(6)
式(6)中:c為商標類別數;Pc(R)為第c類查準率關于查全率的曲線。
此外,還關注模型的浮點運算次數(GFLOPs)和參數量,用于衡量模型的計算復雜度。
對YOLOv7網絡采用3種改進策略,為此單獨及綜合考察3種策略帶來的預測效果。為區分不同模型,對其進行命名,如表3所示。

表3 模型改進策略Table 3 Strategies of model improvement
如圖7所示,根據消融實驗得出這5個模型在相同條件下訓練150輪后的mAP,并且計算其各自的浮點計算次數和參數量,對比數據發現3種策略單獨并未起到太大的效果,只是在保持結果基本不變的情況下減少了模型的浮點計算次數以及參數量。當三者共同使用時,mAP到達了85.84%,相較于原始模型提升了約2個百分點,并且將參數量和浮點運算次數控制在相對較低的水平。

圖7 消融實驗對比Fig.7 Comparison of ablation experiments
為了進一步驗證方法的有效性,將改進模型與其他常用模型進行對比試驗,實驗結果如表4所示。相較于原模型,本文算法將mAP提高了近兩個點的同時,極大地降低了參數量和浮點計算次數,分別降低了41%和92.9%。且經過實驗得到該算法的FPS在60幀以上,達到了實時檢測的水平。

表4 不同檢測算法對比Table 4 Comparison of different detection algorithms
在實際表現方面,挑選相對復雜的圖片讓原始模型和改進模型進行預測,對比發現,改進后的模型識別出了原版未檢測到的領口商標,這得益于FRelu的使用,讓模型具備了像素級建模能力,提升了小目標檢測準確率。改進后的算法識別出了更多的鏡像商標,此處得益于ODConv的使用,其中的注意力機制使模型更加注重關鍵特征,不會因為簡單的變形就導致無法識別。
從提高線上購物效率及打擊商標侵權場景中的關鍵性技術出發,提出一種基于YOLOv7的商標檢測算法。得出如下結論。
(1)在數據方面,采用Mosaic和Mixup兩種數據增強方式共同使用的方法以提高模型的泛化能力。
(2)在模型本身方面,為了適應商標識別的特點,增強算法性能,做以下改進措施:一是通過改進金字塔結構,將PANet更改為SimBiFPN,提升了模型的多尺度特征檢測能力;二是修改關鍵節點的卷積成為ODCov來給模型加入注意力機制,以便于提取關鍵語義信息;三是更新激活函數為FRelu,使算法具備像素級建模能力。根據實驗結果可以看出,采用的方法在明顯提高精度的同時控制了參數量和浮點運算次數。改進模型在檢測任務中可以成功識別出大部分細小商標和扭曲變形商標,算法的泛化能力具有一定的保障,且算法運行的FPS在60幀以上,能夠實現快速檢測的目的。
(3)該研究尚有進一步改進的空間,未來將在識別速度、識別精度以及泛化能力上繼續提升算法性能。