譚 銳,曾曉莉
(西藏大學信息科學技術學院,拉薩 850011)
服裝銷售在電子商務銷售中占有很大比重,各種材質、風格、價位的服裝在各大電商平臺每天以指數級的量在增加,對終端用戶來說,怎樣在琳瑯滿目的商品中快速選擇到合心意的服裝,需要依賴關鍵字搜索或者平臺的推薦系統,而這兩種操作都需要首先完成對服裝的標簽分類。人工標簽的工作量繁重而且標記不準確。
在研究當前電商的分類系統的基礎上,本文提出開發一個快速藏民族識別模型,對西藏社會的維穩安全具有重要意義。中國是一個多民族國家,各民族各具特色,在服裝、飾品、裝扮上更是特色分明。怎樣自動通過服裝識別民族,對我們來說具有重要意義。藏族主要聚集生活在西藏自治區,對于這個中國邊疆地區,結合行為檢測等技術快速識別藏族服裝,從而識別藏族人民,對推進西藏邊疆地區的長治久安更是意義重大。
近幾年來,深度學習在圖像識別領域的應用越來越廣,越來越深入,基于深度學習的圖像識別技術的效率遠遠高于傳統圖像檢測識別效率。
傳統的圖像檢測方法,首先需要人工進行大量邏輯特征處理和特征設定,然后根據人工設定好的邏輯以及模板進行對應的數據匹配,這種圖像檢測方式雖然能起到一定的效果,但是由于特征和邏輯均為人為設定,導致最終的檢測和分類效果受到了極大的限制,檢測的結果無法跳出人為設定的框架以及本身的準確率一直不高[1]。這也是神經網絡興起之前圖像識別領域遠遠沒有現在這般關注度的主要原因,但神經網絡算法的出現,使得圖像識別在短短幾年內興起。神經網絡本身在進行圖像識別的時候,相對于傳統圖像識別就省去了繁重而又復雜的邏輯設定和特征標注,僅僅只需要將圖片歸類,然后將該類別的特征提取出來傳輸給神經網絡,讓其自行學習,并在學習的過程中不斷調整每一層神經網絡的權值,使模型在識別和檢測方面的準確率越來越高,這個權重調整的過程即為模型訓練的過程,模型最終調整完成的結果的好壞決定了最終識別和檢測的準確率的高低[2]。
服裝檢測本身屬于目標識別的一種。為了在神經網絡算法中實現檢測和識別的目的,早期的神經網絡主要以faster R-CNN、FPN、MSCNN、OHEM等為主,這些網絡均為two-stage目標檢測算法,在目標檢測和識別的時候分為兩步,第一步先生成Region Proposal,在生成了Region Proposal之后,進行第二步,也就是送入分類器進行最終的識別和分類,而這兩步通常由不同的神經網絡算法來完成。兩步識別的方式使得在檢測和識別目標時準確率相對較高,但兩步識別通常也伴隨著另一個問題,那就是識別速度的大幅度下降,即便R-CNN后續推出了fast R-CNN以及faster R-CNN,都只能在一定程度上緩解該問題,其檢測速度仍然不夠理想。
由上可以得到一個結論,即two-stage目標檢測算法因為在速度方面不占優勢,所以其在即時識別這樣需要速度的場景中并不適用。為了解決在該場合下的目標檢測識別問題,業界提出并完成了另一類目標檢測識別算法:one-stage,該算法直接省去生成Region Proposal的這一步驟,直接產生物體的類別概率和位置坐標值,經過單次檢測即可直接得到最終的檢測結果,因此該算法比two-stage快得多,能夠達到即時目標檢測的效果[3],YOLO作為one-stage中的代表算法,在經過了不斷的改進之后,形成了YOLOv3,已成為即時目標檢測方面的首選算法[4]。
YOLOv3算法是Redmon等[5]完成的最后一版基于Darknet53網絡的算法(后續的YOLOv4和YOLOv5由Alexey編寫),作為一個one_stage目標檢測算法,YOLOv3與RetinaNet和SSD檢測效果相當,但速度卻比后兩者快了好幾倍。相比于其上一代YOLOv2,作者對Darknet進行了改進,將網絡深度擴展到了53層,并在imagenet上進行了預訓練,因此該主干網絡也叫做Darknet-53。
Darknet53的網絡結構如圖1所示,每個殘差塊由一個殘差層、一個1×1的卷積核和一個3×3的卷積核構成,在3×3卷積核進行還原操作之前,先用1×1卷積核進行通道收縮,通過矩陣分解的思路來減少參數量。
此外,Redmon等[5]還借鑒了DSSD的做法,加入了跳躍連接和上采樣,實現了高層特征和底層特征融合。和DSSD一樣,使用多尺度的特征圖來預測結果。這帶來兩個變化:①新的網絡結構預測更多的anchor框;②由于使用了更底層的特征,YOLOv3對小物體的效果更好。在使用416×416輸出的情況下,YOLOv2預測輸出845(13×13×5)個anchor框。同樣的圖片輸入情況下,每個cell預測3個anchor框,共有10647(13×13×3+26×26×3+52×52×3)個,是原來的12.6倍。
在多尺度預測方面,YOLOv3采用多個scale融合的方式,相比于YOLOv2,YOLOv3設定的是每個網格單元預測3個box,所以每個box需要 有(x,y,w,h,confidence)五 個 基 本 參 數。YOLOv3輸出了3個不同尺度的feature map,y1,y2和y3的 深 度 都 是255,邊 長 的 規 律 是13∶26∶52[5]。
YOLOv3用上采樣的方法來實現這種多尺度的特征圖。共進行三次預測,第一次預測比較簡單,在Darknet-53得到的特征圖上,再通過六個DBL結構以及一個卷積層的加工,就可以得到一個新的特征圖譜,在這個特征圖譜上進行預測就可以得到第一次預測結果。上采樣部分主要是在第二次和第三次預測,總的來說都是先從卷積層輸出結果,經過一個DBL處理之后,再進行一次(2,2)上采樣,然后將上采樣特征與一個Res8結構輸出的特征進行張量鏈接,之后再通過六個DBL處理以及一個卷積層,在這個結果之上進行預測,得到第二、第三次預測結果。
為了使YOLOv3對中小目標的識別準確率進一步提升,在原有的三個YOLO層上額外新增一個YOLO層,即把104×104那一層加入輸出,這個多出來的YOLO層能夠更加有效地提取藏族服飾的中小目標,例如發飾等的特征。將52×52層的輸出結果進行一次上采樣連接到104×104層完成多尺度特征融合,但因為多了一個輸出,所以需要根據數據集重新計算anchors。改進后的YOLOv3預測框數量為43095(13×13×3+26×26×3+52×52×3+104×104×3),是改進前的4倍。具體改進結構如圖2所示。
由于本文數據集的特殊性,在互聯網上難以找到現有的數據集,因此采用網上以及外出兩種方式搜集圖片。同時使用藏族服飾數據以及非藏族服飾數據,非藏族服飾數據集來自github上的開源數據集(https://github.com/bearpaw/clothing-co-parsing),一共1977張圖像,兩種類別各占一半的數量,每一張圖像都提供了完整的藏族服飾信息。由于藏族服飾構成的數據集是通過技術手段進行收集,所以需要進行人工二次篩選,將未包含完整服飾特征,以及特征細節過于模糊的圖片剔除。
本文使用Labelimg標注工具對數據集進行了標注(在標注時切換模式至YOLO就可以直接得到txt格式的標簽文件),在開始標注前將Labelimg的默認標簽文件修改為自己的標簽類別,以防止標簽序號的錯誤。
標注工作前的軟件準備已經完成,接下來再開始標注前的最后一步,也是最重要的一步,那就是分析藏族服飾的特征部位,只有標注在特征部位上才能夠有效地起到識別藏族服飾的作用。藏裝的構成分衣領、衣襟、后身、腰帶等,衣領有兩種,最常見的是交領,點驚領直接連左右襟,衣襟在胸前相交,領子也就相交;另一種是直領,即在衣服上垂直安領,從頸后繞到頸前[6]。通過這些特征就可以對拉薩地區的藏族服飾進行初步識別,但是對于細小飾品繁多的其他地區的藏族服飾則顯得有所欠缺[7],所以需要通過改進算法結構來有針對性地提升這些細小目標信息的提取能力。
最后將已經標注好的藏族服飾數據集劃分為90%的訓練集和10%的測試集,也就是使用788張圖片來進行訓練,87張圖片來測試準確率。
首先從該網址(http://pjreddie.com/media/files/darknet53.conv.74)下載Darknet-53的的預訓練模型參數,預訓練模型能有效提高訓練出來的最終模型的識別成功率,然后對模型參數進行適當的調整,具體如圖3所示。
本文采用mAP這種常用于目標檢測的識別的參數作為模型好壞的總評價指標,在mAP之前 應 先 說 明IoU、precision、recall、F1-Score、PR曲線以及AP的意義。
IoU的全稱為交并比,即預測邊框與真實邊框的交集與并集的比值。在目標檢測中,IoU大于設定的閾值時即為正樣本,改變閾值會直接影響檢測結果。而這個機制又引出了TP、FP、FN、TN這幾個參數,TP即為IoU>閾值的檢測結果數量;FP即為IoU<閾值的檢測結果數量;FN即為存在目標但是未檢測到目標的結果數量;TN即為樣本錯誤并且未出現檢測框的結果的數量。precision為查準率,即TP/(TP+FP);recall為召回率,即TP/(TP+FN)。F1-Score又稱F1分數,是分類問題的一個衡量指標,它是精度和召回率的調和平均數。PR曲線是一條分別以Precision和Recall為橫縱坐標的曲線,而AP是PR曲線下的面積,mAP則是各類別AP的平均值。
采用兩個模型分別對數據集進行測試,得到的結果見表1。從表1可以看出,改進的YOLOv3對應的AP相較于YOLOv3有所提高,FP相較于改進之前明顯減少,從這幾項數據可以看出,改進后的模型在識別的精確度方面有所提高,尤其大幅度地減少了將錯誤目標識別為藏族服飾的概率,因此precision相較于改進前上升了0.08。同時以recall下降換取了AP的提高。

表1 模型測試結果
本文在YOLOv3的三層YOLO層輸出的基礎上,再添加了一層YOLO層,對藏族服飾中的小目標有著更好的感受力,使其對藏族服飾的整體特征提取效果變得更好。
由于本文數據集的不足,以及只是對模型進行了初步改進,導致模型識別的指標提升不夠明顯,但其指明了在識別藏族服飾方面所遇到的問題以及應該去修改的方向,本文結果能夠為進一步提高藏族服飾識別準確率提供一個初步的參考。