鄧中民, 王健愷, 靳曉凝, 魏宛彤, 于東洋, 柯 薇
(1. 武漢紡織大學(xué) 省部共建紡織新材料與先進(jìn)加工技術(shù)國家重點實驗室, 湖北 武漢 430200;2. 武漢紡織大學(xué) 服裝學(xué)院, 湖北 武漢 430200)
傳統(tǒng)的手工測量人體尺寸的方法費時費力[1],三維的物理測量方法如掃描法,光、機、電法又成本過高[2],測量繁瑣。隨著計算機技術(shù)的不斷發(fā)展,出現(xiàn)了許多基于二維圖像的非接觸式人體尺寸檢測方法。在二維圖像測量人體尺寸的方法中,人體特征點的選取影響著最終的檢測結(jié)果,因而特征點選取的準(zhǔn)確性是十分重要的。
肩部特征點是人體特征點的重要組成部分之一,對于服裝的廓形選取具有較大影響。人體肩部存在肩高點和肩峰點2個生理特征點,肩高點為肩部與頸部連接處的點,肩峰點為肩胛骨的肩峰外側(cè)上最突出的點。本文主要研究肩峰點(下文以肩部特征點代指)的檢測以及肩寬的測量方法。目前對于肩部特征點的檢測方法主要有基于人體比例的特征點檢測方法[3]、基于腋下特征點平移近似替代方法[4-5]、基于肩部形狀估計的檢測方法[6-7]、基于人體輪廓編碼的特征點檢測方法[8]。前面3種檢測方法通過劃分人體的各個區(qū)域,在肩部區(qū)域中粗略檢測肩部關(guān)鍵點,這些方法速度快,但適應(yīng)性差,容易受體型影響導(dǎo)致肩部特征點偏移,從而產(chǎn)生較大的誤差?;谌梭w輪廓編碼的特征點檢測方法則是將肩部輪廓轉(zhuǎn)化為一串鏈碼,并按指定的鏈碼規(guī)則提取特征點,該方法提取的肩部特征點具有良好的獨立性,但特征點過多,容易造成誤檢或漏檢[9]。
本文基于人體輪廓編碼的思想提出了一種改進(jìn)的肩部特征點檢測算法,通過人物在圖像中的大小確定特征鏈碼串長度,在以人體比例劃分出的肩部區(qū)域中,由上至下動態(tài)搜索鏈碼規(guī)則的特征鏈碼串,并在符合鏈碼規(guī)則的特征鏈碼串中根據(jù)特征碼值規(guī)則進(jìn)行篩選,得到最終的肩部特征點。本文方法在快速和具有良好獨立性的基礎(chǔ)上,極大地減少了誤檢和漏檢的情況,提高了特征點檢測的準(zhǔn)確性。
本文提出的肩部特征點檢測方法流程如下:
圖像采集→弱化陰影→分離背景→閾值分割→肩寬計算→特征點檢測→輪廓提取→形態(tài)學(xué)運算。
圖像的選取決定了后續(xù)的檢測結(jié)果,為獲得完整的人體輪廓,圖像的采集需要在一定的環(huán)境條件下進(jìn)行,具體選擇條件如下:
1)白色墻面為背景,被拍者身穿與背景色差較明顯的衣服,且被拍攝者距離背景墻一定距離以減弱陰影對圖像的影響;
2)拍照時,被拍者兩腳與肩同寬,雙手張開,與身體形成一定的夾角。
1.2.1 圖像陰影的弱化
獲取圖像后,為減小陰影對圖像處理造成的影響[10],將圖像轉(zhuǎn)化到hsv空間,通過高斯濾波對圖像明度進(jìn)行平滑調(diào)整,進(jìn)一步減弱光照不勻帶來的影響,效果如圖1所示。
圖1 高斯濾波平滑處理前后效果對比圖Fig. 1 Comparison diagram of effects before (a) and after (b) Gaussian filter smoothing
1.2.2 人物背景分離
在去除光照不勻帶來的影響后,將圖像進(jìn)行R、G、B單通道提取。三通道圖像中某種顏色在某個通道上顯示越亮,代表該顏色在該通道顏色分量越重。由于背景為白色,因而選取B通道提取圖像為目標(biāo)圖像,在該通道下,淺色衣服和皮膚由于顏色分量較小而呈深色,雖然深色衣服會變得更亮,但人物整體與背景的色差仍比較明顯(見圖2)。實驗結(jié)果表明,圖像提取能夠?qū)θ说钠つw和背景進(jìn)行有效分離,從而達(dá)到后續(xù)操作圖像分割的最佳分割效果。
圖2 單通道提取效果圖Fig. 2 Single channel extraction rendering. (a) Treatment of uneven illumination; (b) R channel extraction; (c) G channel extraction; (d) B channel extraction
圖3為閾值分割效果圖??煽闯?沒有進(jìn)行單通道提取時,皮膚因光線照射使得與背景墻的色差不明顯,導(dǎo)致分割得到的結(jié)果存在較大誤差,而B通道提取后的圖片,人物與背景的色差明顯,得到的分割效果較好。
圖3 閾值分割效果圖Fig. 3 Threshold segmentation rendering. (a) Original drawing; (b) Direct segmentation; (c) Segmentation by B channel extraction
1.2.3 輪廓提取
分割后的圖像經(jīng)過形態(tài)學(xué)運算、圖像填充、最大面積圖像提取和邊緣提取操作后,得到最終的人體輪廓圖(見圖4)。
圖4 人體輪廓圖Fig. 4 Outline of human body
在得到人體輪廓圖中,仍會存在一定數(shù)量的像素角(某個白色像素的橫向和縱向都存在與之相鄰的白色像素點,且3個像素點組成了1個白色像素角),如圖5所示。而像素角的存在會影響鏈碼遍歷操作,使得遍歷的特征鏈碼串中增加冗余的碼值,從而使特征不明顯。為解決這個問題,對圖像進(jìn)行細(xì)化操作,并對八鏈碼的方向進(jìn)行了優(yōu)先級設(shè)置(見圖6)。
圖5 像素角Fig. 5 Pixel angle
圖6 遍歷優(yōu)先級設(shè)置Fig. 6 Traversal priority setting
對得到的人體輪廓圖進(jìn)行八鏈碼編碼,對原有的人體輪廓編碼的人體關(guān)鍵點檢測方法進(jìn)行改進(jìn),使用改進(jìn)的鏈碼檢測算法,對肩部特征點進(jìn)行搜索。改進(jìn)的鏈碼檢測算法如下:
首先采取人體頭身比例定位的方法粗略定位頭身分界點A(x,y),并從該點逐步向下遍歷,創(chuàng)建特征鏈碼串M用于存儲遍歷得到的鏈碼。通過測試得知,所取得的特征鏈碼串長度i與人像大小有關(guān)。
i=Iwαx+Ihαy
式中:Iw、Ih為人物外接矩形的長和寬;αx、αy為橫向和縱向的比例因子。
初始的特征鏈碼串為
M(m1,m2,…,mi)=0
在遍歷像素點時,引入偏移量Δxn和Δyn來記錄當(dāng)前像素點(從初始點遍歷n次得到,且n
設(shè)符合特征的碼值集合為Q1,不符合特征的碼值集合為Q2,當(dāng)前(從初始點遍歷n次得到,且n
當(dāng)搜索到的特征鏈碼串中每個鏈碼都屬于Q1時,停止搜索,并對特征鏈碼串進(jìn)行遍歷,找到鏈碼串中有快速下降趨勢特征的第1個特征鏈碼,且將初始點移至具有該特征鏈碼的第1個點。設(shè)該鏈碼為特征鏈碼串中的第n個,則有:
執(zhí)行完該算法后,得到選取點(x,y),則點(x,y)為所找到的單邊肩部特征點,同理可得另一邊肩部特征點(x′,y′)。
確定肩部特征點后,肩寬的定義有2種:線段長度的計算和兩點之間的距離計算,本文采用兩點之間的距離計算肩寬為
由上述算法檢測到的肩部特征點效果圖如圖7所示。且在實驗過程中,還可通過人物的側(cè)面照得到人物身高數(shù)據(jù),以輔助驗證人物肩寬數(shù)據(jù)的可靠性。在拍攝正面人體圖像的同時,對同一位置進(jìn)行側(cè)面人體圖像的拍攝(腳后跟點在同一位置),進(jìn)而檢測出被拍攝者的身高。本文對100名測試者(50男/50女)拍攝樣本圖片并進(jìn)行肩部關(guān)鍵點提取和肩寬計算,并隨機抽取10條實驗結(jié)果(見表1)。
表1 肩部特征點檢測Tab. 1 Shoulder feature point detection
圖7 肩部特征點檢測效果圖Fig. 7 Shoulder feature point detection rendering
從圖7和表1可看出,本文改進(jìn)的肩部特征點檢測算法最大誤差在3%左右,考慮到被測者穿著服裝等影響,該誤差在合理范圍內(nèi),即表明本文改進(jìn)算法能夠很好地檢測到人體的肩部特征點,且在檢測速度快的基礎(chǔ)上,又能很好保證檢測結(jié)果的準(zhǔn)確性,做到不誤檢、不漏檢。
本文通過對被拍攝者的拍攝姿勢進(jìn)行調(diào)整、高斯濾波平滑去除光照不勻影響、單通道提取、形態(tài)學(xué)運算和輪廓提取等一系列操作提取出完整的人體輪廓,并提出了一種基于八鏈碼改進(jìn)的肩部特征點檢測算法,通過判斷部位特征結(jié)合下降趨勢的判斷方法,提取了人體肩部特征點,對人體肩寬進(jìn)行了計算。在實驗中,對100人進(jìn)行測試,在誤差允許的范圍內(nèi)準(zhǔn)確檢測到了人體肩部特征點,表明本文方法具有良好的魯棒性且檢測數(shù)據(jù)準(zhǔn)確度高,能適用于人體圍度的計算。隨著信息技術(shù)的發(fā)展,線上購物的形式越來越受到人們的歡迎,但是對于服裝尺碼沒有推薦的標(biāo)準(zhǔn),本文提出的肩部測量方法,可通過照片測量人體肩部關(guān)鍵數(shù)據(jù),為上衣的個性化定制提供準(zhǔn)確參考,提高消費者的網(wǎng)上購物信心,為服裝銷售提供技術(shù)支持。