董文敏
(聊城大學,山東 聊城252000)
據統計,我國網購用戶的規模于2020年大約達到7.1 億。同時,網上購物的發展沖擊了傳統的服裝產業,服裝行業的整體銷售水平下滑,大部分線下服裝店出現關門現象。與其相反的是,服裝類電商市場發展良好,規模逐漸拓展,發展迅速,2018年至2019年服裝類電商市場規模同比增長22.1%。經調查得知,我國消費者絕大多數愿意通過網絡購買衣服,更有超過七成的消費者已經有過網購服裝的經歷。
經數據分析,服裝行業由于科技的沖擊,正以一種新的形式蓬勃發展。在發展過程中,網上購買服裝已經逐漸成為新的購物方式。但在網購時,人們具有一定的盲目性和不確定性。比如,一些服裝的圖片因種種原因與真實情況有出入,網上購買無法試穿,無法確定用戶購買的服裝是否合身等等。種種情況導致退換貨現象頻繁發生,在電商熱點投訴問題統計中,因商品質量、是否合身等問題導致的退換貨現象等問題占比高達48.5%,給商家和消費者都帶來了損害和麻煩。
虛擬現實技術在社會發展需要、人們需求和計算機性能提高的推動下,在與計算機圖形學和計算機視覺等技術融合的條件下,逐漸得到發展,實現服裝的虛擬試穿。在過去幾十年,研究人員從不同的角度對虛擬試衣技術進行研究,虛擬試衣系統在國內外發展逐漸成熟,出現了Runway 3D、CLO 3D等多款虛擬試衣系統。但受技術發展限制,實現虛擬試衣需要用戶提供大量信息,對于使用的圖片也有較高要求,也正是因為這些問題,虛擬試衣發展受限,至今未能被大眾接受[2]。
根據上述問題,本文研究基于單張圖片[3],如何實現虛擬試衣。
針對二維虛擬試衣,本文提出一種試衣方式,用戶提供帶有服裝的圖片,和系統中根據用戶身材構建的虛擬模特,提取人體體形和服裝圖像的輪廓圖,利用像素點轉化實現二維虛擬試衣[4-5]。
服裝輪廓提取最主要的是得到人體和服裝圖像的邊緣輪廓圖,可通過Canny算法提取圖像的邊緣信息并處理篩選來生成。Canny邊緣檢測通過不同的對象提取信息、減少數據量,是目前邊緣檢測中最優的一套方法,具有較低錯誤率,定位的邊緣最可能的接近真實邊緣,并實現了單一的邊緣點響應,被廣泛應用。服裝輪廓提取一般分為五個步驟[6],如圖1所示。

圖1 利用Canny算法進行服裝輪廓提取流程圖
2.1.1 原始圖像處理
彩色圖像的算法處理復雜,通常在應用時將其轉化為灰度圖。在使用Canny算法之前,采用加權均值法,基于人們對不同顏色的敏感度設置不同的權值,對彩圖進行處理,經檢驗按下式能得到較合理地灰度圖像。


圖2 灰度化處理前

圖3 灰度化處理后
利用下列公式,求上步得到的平滑圖像I(x,y)的梯度方向和幅值,利用一階偏導的有限差分來計算:

M[i,j]為梯度幅值,θ [i,j]為梯度方向。
上一步中得到的梯度方向,與圖像中的每一個點都要進行比較,若被比較的點不是幅值最大的,就將它的邊緣標識賦為0,通過這種方式,對M[i,j]進行非極大值抑制,這種處理會對邊緣進行細化,找到真正的邊緣。
因為之前對圖像進行的處理并不能徹底減少圖像中的噪聲,因此會有假邊緣段的存在,為減少他們的數量,進行雙閾值的檢測處理和邊緣的連接,盡可能的消除影響。首先需設定高低閾值,將一個大于高閾值的梯度幅值確定為邊緣,小于低閾值的確定為非邊緣,介于這兩者之間的被認為是疑似邊緣點。定義為非邊緣點的灰度值被設置為0,疑似邊緣點將進行下一步的判斷。然后連接圖像中的邊緣節點,不斷收集邊緣,直到圖像邊緣完全閉合。
通過Canny算法,檢測出所有輪廓后,通過灰度值篩選,得到人體輪廓的外邊緣和服裝輪廓[8]。對服裝輪廓進行壓縮,定位在人體輪廓上,尋找人體對應的最佳位置,把該點像素點轉換為服裝圖像的像素。當連續轉化像素點時,對像素點進行不斷的優化以便達到最好的效果。同時,使用圖像增強對處理后的圖像進行銳化處理,增加試穿的立體感,使虛擬試衣有更好的貼合度,效果更加真實。
二維虛擬試衣具有算法復雜度低,處理技術成熟等優勢,但缺少對試穿效果的良好展示,無法反映真實的試穿情況。隨著計算機的發展,三維虛擬試衣順應出現。
三維虛擬試衣除去克服二維試衣的缺陷外,還對試衣功能進行了良好的豐富完善。但許多三維試衣系統必須基于用戶具有良好的專業素質或可以提供大量信息的前提下。才能進行服裝的建模。這也是三維試衣雖可以更好的展示試衣效果但卻得不到推廣發展的原因。大多數用戶不具備專業知識,也不愿意提供太多相關信息,且一些服裝網站也不會提供多視角的服裝圖片[9]。
基于上述情況,研究基于單張圖片,根據相關算法實現從圖片到服裝樣板自動匹配[10],實現三維虛擬試衣。
進行處理的圖片尺寸是不固定的,為方便處理,要對圖片進行縮放,選取500*700大小的圖片,作為系統的圖片輸入。
首先利用Faster R-CNN將不同背景的圖片作為研究對象,進行目標的快速檢測,框選出要檢測的區域,實現圖片服裝區域的有效識別[11-12]。避免因提供的照片背景復雜或有其它人物干擾等問題,影響GrabCut的分割解析。本文將Faster R-CNN與GrabCut分割算法相結合,將圖像中的人物部分提取出來,進行服裝解析,生成效果比較優秀的人物輪廓和服裝輪廓,不產生較大誤差。
通過Faster R-CNN識別服裝圖像的具體區域坐標后,GrabCut分割算法的具體實現步驟[13]:
首先通過GrabCut的分割模型簡單了解一下,如圖4所示。

圖4 GrabCut的分割模型
GrabCut算法是Graph Cut的改進版,其最大區別就是在計算區域項時采用了高斯混合模型。混合高斯概率公式為:

判斷該像素屬于目標或背景的概率。
在初始化之前,先求取后續需使用的區域項和邊界項,估算像素點的高斯模型參數,將x,μ,∑帶入上述概率公式,獲取區域項,通過確定區域項可以初步判斷某像素屬于背景或前景的概率。邊界項的求取利用了歐氏距離,通過比較相鄰像素點,并進行減法處理,通過差值的大小判斷被分割的可能性。該處理利用的公式如下所示:

GrabCut算法的分割主要分初始化和迭代兩部分:初始化時,利用mask掩膜處理圖像中的所有像素點,像素點生成含背景像素(GC_BGD)和可能的背景像素(GC_PR_BGD)的BGM模型,含前景像素(GC_FGD)和可能的前景像素(GC_PR_FGD)的BFM模型。定義的目標和背景像素被k-mean算法聚類為k個高斯模型。
初始化結束后,進行迭代處理,將GC_PR_BGD和GC_PR_BGD帶入已建立的高斯模型中,選取概率最大的進行計算,結合區域項和邊界項,通過最大流算法,將未知的像素點進行重新分配并更新參數,更新mask。未得到分配的部分GC_PR_BGD和GC_PR_BGD進行下一次的迭代,重新分配,反復迭代直至目標結果收斂。圖片分割之后,對邊界進行平滑處理,生成人體輪廓圖和服裝輪廓圖。
K鄰近(簡稱KNN)學習,是由Cover和Hart最早提出的一種常用的監督學習方法。使用KNN方法提取圖像的特征,選取區域特征點,以期達到最好的匹配效果。采用具有兩千多張已標注數據的常用數據庫Clothing Co-Parsing(CCP)Dataset,作為樣本數據集。通過KNN方法把請求學習的區域與數據庫中不同類型的服裝模型進行比對,解析提取出的服裝,實現從圖片到服裝樣板的匹配。
利用KNN方法進行綜合處理,提升處理效率,避免因有些模型的某些特征非常相近,或數據庫中同一類別的服裝在圖片中表現出的特征不盡相同等問題,影響解析結果。
電商的崛起給虛擬試衣的發展帶來了新的活力,不管是二維還是三維都有很大的發展進步空間。面對實現虛擬試衣的種種復雜前提,本文探索基于單張圖片實現虛擬試衣的算法。
簡單介紹了Canny邊緣檢測算法、Faster R-CNN算法、GrabCut算法和KNN學習幾種算法在二維和三維虛擬試衣系統中的應用。詳細介紹了Canny算法及GrabCut算法的實現步驟。據研究可知,邊緣檢測、圖像增強、目標定位等技術具有一定難度,但基于單張圖片的虛擬試衣系統具有很大的發展前景,相關技術也有很大的探索空間。本文主要對虛擬試衣技術中,從圖片到生成服裝樣板的過程進行了具體的闡述。但限于自身能力,對于前期用戶的虛擬建模、服裝樣板的參數化調整及虛擬縫合并未進行詳細介紹。同時,這也是虛擬試衣技術發展必須要攻克的難題,是需要花時間集中精力重點研究的。