胡新榮,劉嘉文,劉軍平,彭 濤,何儒漢,何 凱
(1.湖北省服裝信息化工程技術研究中心,武漢 430200; 2.武漢紡織大學 數學與計算機學院,武漢 430200)
隨著電子信息技術的迅速發展,虛擬試衣平臺逐漸受到人們的關注[1]。人體尺寸測量技術是虛擬試衣的關鍵技術之一,其在服裝定制領域有著不可替代的作用。目前,主要通過接觸式和非接觸式[2-4]方式對人體進行尺寸測量。對于前者而言,人體手工量體的優點是測量時具有交互性,在測量過程中可根據客戶的穿著習慣對尺寸數據進行動態調整,但在大規模測量時手工測量的效率低下,出錯率較高。后者相對于前者,在保證尺寸信息有效性的同時具有實時性高、魯棒性強等特點。
非接觸式測量通常使用的技術包括三維掃描法、模型重建法和圖像檢測法。文獻[5]使用三維掃描儀獲取人體部位的尺寸信息,然而三維掃描儀價格昂貴、測量地點不靈活等問題導致了該方法無法在市場上普遍適用。文獻[6-7]提出使用深度相機獲取人體深度信息,再通過SMPL模型[8]重建人體獲取尺寸信息,但由于東西方人體體型的差異性,以致于實際擬合的效果無法滿足人體著裝尺寸的誤差要求,并且在測試過程中,重塑人體模型耗時超過3 min,使得該方法無法應用于在線批量人體測量系統中。文獻[9-10]使用圖像檢測法[11-13],基于正交人體圖像獲取尺寸信息,但是他們都參考歐美CAESAR人體數據集提供的結構部位與身高的比例系數直接提取人體關鍵特征點,并沒有考慮東西方人體體型的差異性和自身體型的異構性問題,導致算法在實際測量過程中魯棒性不強,并且在測量極端體型用戶時提取的特征點通常會產生偏離,測量誤差較大。
針對上述問題,本文提出基于自適應人體結構分割(Adaptive Body Structure Segmentation,ABSS)的人體多特征點提取與尺寸測量算法Human pesm-abss,解決因體型異構產生的特征點定位不準的問題。對所提取正交圖像中的人體輪廓、人體結構關鍵區域自適應分割,針對不同部位區域采用特定算法快速、準確地提取特征點,最終通過身高比例法獲取各個部位的尺寸信息。
人體尺寸測量主要分為圖像預處理、人體結構關鍵區域自適應分割、特征點提取、尺寸獲取等步驟,系統流程如圖1所示。

圖1 人體尺寸測量系統流程Fig.1 Procedure of human bodies dimension measuremen system
人體尺寸測量系統流程如下:
1)在圖像預處理過程中,首先將源圖像進行規范化操作,然后將圖像從RGB空間轉換為HSV空間并分離S通道,然后在S通道基于多方向的Sobel算子和形態學操作提取完整的人體輪廓。
2)基于ABSS算法針對不同體型的用戶能夠自適應分割出人體結構關鍵部位的區域范圍。
3)在人體關鍵特征點提取過程中,分別用最小矩形包圍盒算法、最大距離法、局部最大曲率法、斷層掃描法在基于分割后的各個關鍵區域提取特征點。
4)運用身高比例法獲取人體各個部位的尺寸信息。
首先對相機的畸變進行矯正[14-15],并規定相機的擺放位置(本文經過多次測試,證實相機距離被測者4 m遠,距離地面高1.2 m時效果最好)。為獲取完整的人體尺寸信息,要求用戶提供特定姿勢下的正交圖像,雙手打開至30°~45°,姿勢測量示意圖如圖2所示。

圖2 姿勢測量示意圖Fig.2 Schematic diagram of posture measurement
顏色空間是圖像中最基本的特性之一。目前,計算機顯示的彩色圖像一般都是用RGB空間來表示和存儲像素點的顏色信息。由于RGB顏色空間中每個分量不僅代表像素的顏色還代表像素的明暗程度,因此各個分量的顏色值易受環境光強影響[16-17]。相比于RGB顏色空間,HSV顏色空間由H分量專門負責表示像素的色調,S和V分量表示像素的飽和度和亮度,由于常見的拍攝背景多為紅色、藍色,并且飽和度較高,因此將圖像從RGB顏色空間轉換為HSV顏色空間,然后在飽和度S通道圖像中利用多方向Sobel算子提取完整的人體輪廓,避免了引入環境光線的影響。
由于傳統多方向Sobel算子[18]提取輪廓采用均值融合,從而導致該算法在實際運用中提取人體輪廓的效果不佳,因此本文提出基于線性加權融合的算法對多方向梯度圖進行處理,算法步驟如下:
步驟1輸入源圖像。
步驟2將輸入的RGB圖像轉化為HSV色彩空間圖像。
步驟3提取HSV色彩空間中的飽和度S通道。
步驟4運用多方向Sobel算子獲取飽和度S通道4個方向的梯度圖像,如式(1)所示:

(1)
步驟5通過線性加權融合獲取圖像的絕對梯度,如式(2)所示:
G=|Gx|·α+|Gy|·β+|G45°|·χ+
|G135°|·λ+δ,δ>0
(2)
步驟6將圖像二值化后輸出最大輪廓:

(3)
其中,Gx、Gy、G45°、G135°分別為水平、豎直方向、45°和135°的梯度,S為HSV圖像中的S通道,G為輪廓提取結果,α、β、χ、λ分別為水平、豎直方向、45°和135°梯度矩陣圖的權重,δ為增強參數,Th為閾值,本文取0.5,D為二值化圖形,式(3)中的1代表人體部位,0代表背景。
輪廓提取結果如圖3所示,其中,圖3(a)為源圖像,飽和度S通道如圖3(b)所示,通過提取邊緣輪廓,并經多次實驗驗證,當權值α、β、χ、λ和δ分別為0.25、0.33、0.22、0.2和120時效果最好,如圖3(c)所示,篩選最大輪廓如圖3(d)所示。

圖3 輪廓提取結果Fig.3 Result of contour extraction
目前,傳統圖像檢測算法依據歐美CAESAR人體數據集[19]提供的人體結構關鍵部位與身高的比例關系,直接通過斷層掃描法提取特征點,并沒有考慮東西方人體的差異性。本文參考國際GB/T 10000—88《中國成年人人體尺寸》,以及2009年中國標準化研究院完成的中國成年人人體尺寸抽樣試點調查[20]工作中獲取的亞洲人體數據信息,并與國外數據進行對比,如表1所示,其中,表1中加粗字體為參數相差較大值。

表1 歐美與亞洲人體關鍵部位與身高的比例Table 1 Ratio of key body parts to height in Europe,America and Asia
從表1可以看出,東方人體結構關鍵部位在胸部和臀部的參數值相差較大。
如圖4所示,針對身材比例、體型不標準的用戶,通過傳統圖像檢測法結合亞洲人體參數提取的特征點仍然容易發生誤定位,其中圖4標出的點為準確特征點,橫線為表1中亞洲人(東方)體參數表示的比例線。

圖4 極端體型用戶測量結果Fig.4 Measurement results of extreme body type users
由圖4可見,將問題擴展到一般性,對于偏胖、正常、偏瘦體型的測量用戶,人體結構關鍵區域劃分無法達到一致。由于用戶的體型與輪廓的面積有著直接的關系,將人體正面、側面輪廓面積之和進行歸一化處理,原理如式(4)所示:
(4)
為了尋找不同體型分布規律,通過對實地測量的210組樣本中隨機選取150組樣本進行分析,依據BMI值將人體體型粗粒度分成3類,分類結果如圖5所示。為驗證體型分類閾值的有效性和準確性,使用另外60組樣本進行測試,測試結果如圖6所示(其中圓點為誤分類樣本)。

圖5 體型分類結果Fig.5 Results of body type classification

圖6 閾值測試結果Fig.6 Results of threshold test
由圖5可知,S偏胖∈(0.64,1],S偏瘦∈[0,0.40)。通過圖6實驗結果證實了該方法對人體體型粗粒度分類的準確性。
通過對人體體型分類的研究,依據ISO 85559-1《Size Designation of Clothes》作為人體尺寸特征選擇的標準,并結合表1中標準人體參數信息,提出了一種人體結構關鍵區域自適應分割算法,算法流程如圖7所示,其中迭代參數Δt=0.01。

圖7 人體結構關鍵區域自適應分割算法流程Fig.7 Procedure of adaptive segmentation algorithm for key regions of human body structure
人體特征點提取是獲取尺寸信息中最關鍵的步驟之一,目前現有特征點提取的算法都是基于圖像自身屬性,沒有考慮實際測量規范,從而導致算法提取尺寸誤差較大。
傳統算法在提取頸部特征點時,針對正面頸部提取頸部距離最小的響應點,從而造成了較大的誤差。為此,本文提出基于最大距離法提取正面頸部特征點,如圖8(a)所示(粗線條為頸部區域輪廓線)。
(5)
其中,l1、l2為左右手與頭頂連接后的兩條頸部特征直線,頸部輪廓線記為c1、c2,p1∈c1,p2∈c2。
針對側面頸部特征點,目前傳統算法是提取lA-第七椎點,但依據ISO 8599-1測量標準側面頸部尺寸應為lB-第七椎點,以至于通常會造成測量值偏小,本文依據實際測量規范,加入30°的偏移量以減小誤差,如圖8(b)所示。

圖8 頸部特征點Fig.8 Neck feature points
形狀曲線估計法[21]分別用30°和45°的直線作為肩膀手臂的形狀估計。由于每個用戶張開雙臂角度不同,且肩形不同,很難單用某個度數的直線進行形狀匹配。
肩部特征點提取步驟如下:
步驟1肩部輪廓線為l,建立點pi(pi∈l)的鄰域集合,即與pi點的歐式距離最近的k個點構成的集合Pi,大量實驗證實在k取8~10時效果最好,本文k取8[25]。
步驟2計算所有點pi的平均曲率Ci。


步驟5當σi≥σ時,保留點pi∈M,否則刪除。

實驗結果如圖9所示,其中圖9(b)點線為全局擬合曲線,對比圖9(a)可以明顯看出,其提取的曲率最大的點并不是真實的肩部特征點,根據局部最大曲率法提取的待選特征點如圖9(c)所示,圖9(d)中星型點為全局擬合曲線的最大曲率點,圓點為局部最大曲率法最終提取到的肩部特征點,結果表明,局部最大曲率法相對于傳統角點檢測方法提取特征點的精準度更高。

圖9 局部最大曲率法Fig.9 Local maximum curvature method
本文采用身高比例法測量人體尺寸,在測量時,被測量者提供自己的身高H,然后根據頭頂部fhead(x,y)和腳底f正面foot(x,y)特征點的歐式距離獲取比例系數ωs。
基于已提取的人體特征點信息,可以在圖片中獲取各個部位所占據像素點的個數p,在獲取到像素點個數之后結合比例系數ωs,即得到各個部位的尺寸信息:
(6)
pX=d(fX(x,y)left,fX(x,y)right)
(7)
LX=pX·ωs
(8)
其中,X表示人體不同的身體部位,L表示測量的尺寸信息。
本文實驗拍攝了210組實驗樣本,為了檢驗Human pesm-adss算法在檢測人體體型異構型時的魯棒性和精確性,對標準差較大的210組樣本(學生、警察、法院工作人員)進行測試特征點提取實驗,部分樣本特征點提取結果如圖10所示,人體各個部位測量數據分析如圖11所示。

圖10 人體特征點提取結果Fig.10 Extraction results of human bodies feature points

圖11 測量結果與誤差分析Fig.11 Measurement results and error analysis
為檢驗算法的性能優勢,本文將傳統比例法[10]、Simple-FCN-ASM模型[12]、非閉合Snake模型[22]和Human pesm-adss算法進行比較分析,特征點提取結果如圖12所示,性能分析如表2所示。

圖12 不同算法特征點提取結果Fig.12 Feature point extraction results of differebnt algorthms

表2 不同算法性能分析Table 2 Performance analysis of different algorithms
實驗環境為Window 10操作系統,E5-1620v4 3.50 GHz處理器,6 GB內存,NVIDIA 1080顯卡。
通過對210組標準差較大的樣本(學生、警察、法院人員)進行測量實驗,由圖10驗證了Human pesm-adss算法針對各種體型用戶時的魯棒性,并且由圖11證實了該算法測量的精準性,具體表現為實驗測量的尺寸信息與真實值的平均誤差為±1.3 cm,其中最大誤差為+1.98 cm。依據ISO 8559-1《Size Designation of Clothes》中規定人體著裝最大誤差為2 cm以內,所以Human pesm-adss算法誤差的大小完全滿足人體著裝尺寸誤差要求,并且單個樣本測量耗時為298 ms,顯著提升了在線批量測量系統的實時性。
從實驗結果可以看出,實際值與測量值之間仍然存在著一定的誤差,誤差的來源主要有以下3個部分:
1)人體站姿不標準,如測量時駝背會造成身高占據的像素偏小,使得比例系數ωs偏大,最后直接導致所有測量數據偏大。
2)由于客觀因素的影響,無法要求每位測量者穿著較為緊身的衣服,這是誤差的主要來源之一。
3)實際測量的尺寸都包含了一定的放松量,并且放松量一般根據測量師傅的經驗判定,沒有量化的標準,所以也在一定程上產生了誤差。未來會根據經驗總結各款式、材質衣服的放松量,加入機器視覺識別衣物類型并自適應修改尺寸數據,從而進一步減少測量誤差。
傳統比例算法提取結果如圖12(a)所示,由于僅通過單一特征根據人體比例關系提取關鍵特征點,在測量極端體型用戶時,測量結果的精確性較低,算法的魯棒性不強。非閉合Snake算法雖然無需手動設置初始輪廓,但仍需根據經驗手動調節關鍵參數。對于Simple-FCN-ASM模型而言,需要建立人體模板對測量用戶進行匹配并擬合。在針對標準差較大的樣本時,模板收斂的速度慢,并且由于下半身基于對稱原則提取特征點,通常模板容易發生單側偏移從而產生較大的誤差。
然而,這些算法都只涉及了人體正面尺寸信息的提取,并且是依據圖像本身的特性提取關鍵特征點,以至于實驗測量結果與實際值的誤差較大,無法滿足人體著裝尺寸的需求。
Human pesm-abss算法通過改進的多方向Sobel算子在HSV空間中提取人體輪廓,避免了非閉合Snake算法的手工調參。同時基于ABSS算法快速提取人體正面、側面關鍵結構區域,解決了Simple-FCN-ASM模型需要長時間迭代收斂的問題。針對人體關鍵的結構區域,提出符合ISO 85559-1《Size Designation of Clothes》規范的算法提取特征點,整個過程中無需手工操作,大幅提升了算法的適用性。
由表2可知,Human pesm-abss算法與傳統算法相比,雖然在時耗上增加了0.174 s,但在尺寸獲取的精確性上有著顯著的提升,使得誤差處于人體著衣尺寸誤差允許的范圍內。相對于非閉合Snake模型和Simple-FCN-ASM模型在平均誤差方面減少了2.2 cm和0.26 cm,并且在時耗方面,分別縮短了1.098 s和3.552 s,大幅提升了在線人體尺寸測量系統的實時性。
本文提出一種基于自適應人體結構分割的著裝人體多特征點提取與尺寸測量算法。該算法運用圖像預處理、人體結構關鍵區域自適應分割、人體關鍵特征點提取、身高比例法相結合的技術,解決傳統圖像檢測模型檢測時間長和極端體型特征點定位不準的問題,并選取210組標準差較大的樣本(包括學生、警察、法院工作人員)對此算法進行了論證。實驗結果表明,該算法測量的平均誤差為±1.3 cm,最大誤差為+1.98 cm,單個樣本測量耗時不超過0.3 s,相比目前傳統圖像檢測模型,無論在尺寸信息提取的精確度上,還是在時耗方面都有顯著的提升。雖然本文方法在具體應用中取得了一些成果,但在實際生活中,領圍、胸圍和臀圍這類具有三維屬性的圍度信息能夠更直觀地表示出人體體型狀態,因此,下一步將對人體二維尺寸信息轉化為三維尺寸信息的方法進行研究。