国产精品无码永久视频免费看_日韩精品久久中文人妻一区_国产?在线?a_97精品人妻一区二区三区香蕉_亚洲视频一区中文字幕在线视频

虛擬試衣鏡開發(fā)方案
來源:作者:日期:2019-12-27 09:33:28點(diǎn)擊:4617次

  本開發(fā)方案屬于圖像處理和虛擬現(xiàn)實技術(shù)領(lǐng)域,具體涉及一種虛擬試衣鏡的實現(xiàn)方法。

  背景技術(shù):

  隨著物聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)虛擬購物已經(jīng)成了時代潮流。國內(nèi)商家對于虛擬試衣技術(shù)不斷嘗試創(chuàng)新,以積極的態(tài)度迎接虛擬顯示技術(shù)時代的到來,但是現(xiàn)有的在線的試衣系統(tǒng),或是基于移動終端的試衣軟件,其顯示效果仍然無法與實物相提并論,也因此影響了虛擬試衣鏡的發(fā)展與推廣。
 

虛擬試衣鏡開發(fā)方案
 

  技術(shù)實現(xiàn)要素:

  本發(fā)明的目的在于克服現(xiàn)有技術(shù)存在的問題,提供一種虛擬試衣鏡的實現(xiàn)方法。

  為實現(xiàn)上述技術(shù)目的,本發(fā)明采用如下技術(shù)方案:

  一種虛擬試衣鏡的實現(xiàn)方法,包括如下步驟:

  S1服裝建模,并對服裝根據(jù)身材類型分類,包括Y型、A型、H型和X型;

  S2用戶人體圖像數(shù)據(jù)采集;所述用戶人體圖像數(shù)據(jù)為二維數(shù)據(jù)或三維數(shù)據(jù);

  所述二維數(shù)據(jù)獲取方式包括:采用LibSVM訓(xùn)練進(jìn)行數(shù)據(jù)訓(xùn)練,獲取訓(xùn)練模型;LibSVM訓(xùn)練的訓(xùn)練集數(shù)據(jù)包括用戶身高體重、四圍信息和身材類型信息;所述四維信息包括胸圍、腰圍、臀圍、肩圍;

  用戶上傳標(biāo)準(zhǔn)全身照片和身高體重數(shù)據(jù),對用戶上傳標(biāo)準(zhǔn)全身照片進(jìn)行圖像處理,提取四圍信息,將身高體重數(shù)據(jù)和四維信息導(dǎo)入訓(xùn)練模型,獲取身材類型分類;

  S3將人體圖像數(shù)據(jù)和服裝建模數(shù)據(jù)關(guān)聯(lián)并顯示。

  用戶不在現(xiàn)場的時候,可以由用戶提供影像采集二維數(shù)據(jù),在軟件上顯示試衣效果;用戶在現(xiàn)場時,可以采集三維數(shù)據(jù)。所述三維數(shù)據(jù)基于kinect體感機(jī)通過骨骼識別定位獲取。

  本發(fā)明的方法,所述S2中,LibSVM訓(xùn)練方法如下:

  將單個用戶的數(shù)據(jù)作為一個樣本,表示為Di(xi,yi),其中yi為樣本標(biāo)簽,xi為六維的數(shù)據(jù)點(diǎn)xi(x身高+x體重+x肩圍+x臀圍+x胸圍+x腰圍),設(shè)所求SVM空間的超平面方程為g(x)=+b,w由樣本決定,將w寫成a1y1x1+a2y2x2+...+anynxn,式中a為拉格朗日乘子,式中對最終所求的結(jié)果產(chǎn)生影響的樣本點(diǎn)即所需樣本點(diǎn),即支持向量:

  設(shè)核函數(shù)形式為K(xi,x),則所求的超平面形式變化為:

  LibSVM訓(xùn)練選擇的svm類型為c_svm類型,核函數(shù)為多項式核,迭代次數(shù)選擇3,gamma選擇0.166667,分類類別數(shù)為60,獲取訓(xùn)練模型。

  用戶上傳圖像數(shù)據(jù)的處理步驟包括:

  S2.1用戶上傳標(biāo)準(zhǔn)全身照片,包括正面標(biāo)準(zhǔn)照,背面標(biāo)準(zhǔn)照和側(cè)面標(biāo)準(zhǔn)照;

  S2.2對標(biāo)準(zhǔn)照片進(jìn)行圖像分割,將圖劃分為背景和前景兩部分,前景即為用戶人體圖像數(shù)據(jù);

  S2.3對用戶三圍進(jìn)行定位,包括胸部、腰部、臀部定位,從用戶人體圖像數(shù)據(jù)中提取三圍信息;并對用戶肩部進(jìn)行定位。

  所述S2.2中,采用GrabCut算法對標(biāo)準(zhǔn)照片進(jìn)行圖像分割。

  所述S2.3中,基于分割后的用戶背面標(biāo)準(zhǔn)照獲取胸部定位,識別出手臂后,對手臂下方位置,占人體高度5%長度的位置處取得人體寬度信息取均值,計算得到胸部位置寬度Bo:

  其中Bo為胸部位置寬度,Ho為人體高度,Bp為檢測到胸部位置的水平高度,Bwi為所在行人體寬度;

  識別出手臂后,通過寬度檢測,檢測到第一個寬度最小值時將其作為腰部中點(diǎn),對上下取人體高度5%長度取平均值:

  其中Wo為腰部位置寬度,Wp為檢測到腰部位置的水平高度,Wwi為所在行人體寬度;

  在識別出腰部所在位置后,向下檢測至第一個寬度峰值,將其定位為臀部中心點(diǎn);根據(jù)人體高度5%長度的位置取得人體寬度信息取均值,計算出臀部寬度信息Co:

  其中Co為臀部位置寬度,Cp為檢測到臀部位置的水平高度,Cwi為所在行人體寬度。

  所述S2.3中,基于人體輪廓信息定位肩部:

  S2.2.1基于人體輪廓線檢測人體寬度,從上至下掃描前景圖,掃描線寬度大小第二個峰值處為肩部,掃描線寬度大小第一個谷值處為脖頸;

  S2.2.2對人體輪廓線計算斜率,取如下輪廓線:

  斜率絕對值接近于零;

  向肩部定位下方檢測到手臂,斜率開始增加直到接近于正無窮;

  向肩部定位上方檢測到脖頸,斜率開始增加直到接近于正無窮;

  取滿足上述要求的輪廓線,限制肩部定位點(diǎn)范圍,確定肩部定位。

  所述S3中,根據(jù)模型訓(xùn)練后確認(rèn)的身材類型,選擇對應(yīng)身材類型的服裝;服裝模型的長度與寬度確定方法為:

  服裝長度cL=(sH-Cp)/(ho/Ho);服裝寬度bW=(fB+Co)/2;

  其中cL為合成圖中服裝長度,sH為合成圖中肩部高度,Cp為圖中臀部高度,ho為用戶真實身高,Ho為圖中人體身高;bW為圖中服裝寬度,fB為圖中正面胸部寬度,Co為圖中胸部位置寬度。

  所述S2中,所述三維數(shù)據(jù)基于kinect體感機(jī)通過骨骼識別定位獲取。

  所述S3中,還包括手勢控制,所述人體圖像數(shù)據(jù)采集過程中,利用LibSVM進(jìn)行特征訓(xùn)練,實現(xiàn)手勢識別;或通過kinect體感機(jī)進(jìn)行指尖判定,實現(xiàn)手勢識別。

  本發(fā)明的方法可以方便實現(xiàn)虛擬試衣,并在用戶到場或不到場兩種情況下均可以實現(xiàn),并且操作方便,尺寸匹配效果好,顯示效果好。

  具體實施方式

  實施例1

  本實施例用于說明本發(fā)明方法的具體技術(shù)方案。

  本發(fā)明的方法包括如下步驟:

  1)服裝建模;

  采用已有建模軟件,如3DMAX對服裝進(jìn)行建模;并對服裝根據(jù)身材類型分類,包括Y型、A型、H型和X型;

  2)人體圖像數(shù)據(jù)采集;

  采集二維數(shù)據(jù)或三維數(shù)據(jù)的人體圖像數(shù)據(jù);

  用戶不在現(xiàn)場的時候,可以由用戶提供影像采集二維數(shù)據(jù),用戶在現(xiàn)場時,可以采集三維數(shù)據(jù)。其中,所述二維數(shù)據(jù)基于SVM分類和圖像處理獲取。所述三維數(shù)據(jù)基于kinect體感機(jī)通過骨骼識別定位獲取;

  所述二維數(shù)據(jù)獲取方式包括:采用LibSVM訓(xùn)練進(jìn)行數(shù)據(jù)訓(xùn)練,獲取訓(xùn)練模型;LibSVM訓(xùn)練的訓(xùn)練集數(shù)據(jù)包括用戶身高體重、四圍信息和身材類型信息;所述四維信息包括胸圍、腰圍、臀圍、肩圍;

  用戶上傳標(biāo)準(zhǔn)全身照片和身高體重數(shù)據(jù),對用戶上傳標(biāo)準(zhǔn)全身照片進(jìn)行圖像處理,提取四圍信息,將身高體重數(shù)據(jù)和四維信息導(dǎo)入訓(xùn)練模型,獲取身材類型分類;

  LibSVM訓(xùn)練方法如下:

  將單個用戶的數(shù)據(jù)作為一個樣本,表示為Di(xi,yi),其中yi為樣本標(biāo)簽,xi為六維的數(shù)據(jù)點(diǎn)xi(x身高+x體重+x肩圍+x臀圍+x胸圍+x腰圍),設(shè)所求SVM空間的超平面方程為g(x)=+b,w由樣本決定,將w寫成a1y1x1+a2y2x2+...+anynxn,式中a為拉格朗日乘子,式中對最終所求的結(jié)果產(chǎn)生影響的樣本點(diǎn)即所需樣本點(diǎn),即支持向量:

  設(shè)核函數(shù)形式為K(xi,x),則所求的超平面形式變化為:

  LibSVM訓(xùn)練選擇的svm類型為c_svm類型,核函數(shù)為多項式核,迭代次數(shù)選擇3,gamma選擇0.166667,分類類別數(shù)為60,獲取訓(xùn)練模型。

  本發(fā)明中在核函數(shù)的選擇中,分別試驗了線性核,多項式核,RBF核,sigmoid核,參數(shù)gamma均為0.166667,在用測試樣本進(jìn)行檢驗時,發(fā)現(xiàn)平均召回率分別為82.121%,80.7%,8.65%,8.575%。同時發(fā)現(xiàn),在使用原始樣本代回測試時,召回率分別為99.1%,100%,100%,8.4%。因此選擇使用多項式核作為核函數(shù)。本發(fā)明的SVM分類平均準(zhǔn)確率可達(dá)82。

  所述S2中,用戶上傳圖像數(shù)據(jù)的處理步驟包括:

  S2.1用戶上傳標(biāo)準(zhǔn)全身照片,包括正面標(biāo)準(zhǔn)照,背面標(biāo)準(zhǔn)照和側(cè)面標(biāo)準(zhǔn)照;

  標(biāo)準(zhǔn)照基于如下標(biāo)準(zhǔn):

  正面標(biāo)準(zhǔn)照:用戶身體直立,手臂自然下垂;

  背面標(biāo)準(zhǔn)照:用戶身體直立,手臂水平伸展;

  側(cè)面標(biāo)準(zhǔn)照:用戶身體直立,手臂自然下垂。

  S2.2采用GrabCut算法對標(biāo)準(zhǔn)照片進(jìn)行圖像分割,將圖劃分為背景和前景兩部分,前景即為用戶人體圖像數(shù)據(jù);

  S2.3對用戶三圍進(jìn)行定位,包括胸部、腰部、臀部定位,從用戶人體圖像數(shù)據(jù)中提取三圍信息;并對用戶肩部進(jìn)行定位。

  首先,基于分割后的用戶背面標(biāo)準(zhǔn)照獲取胸部定位,識別出手臂后,對手臂下方位置,占人體高度5%長度的位置處取得人體寬度信息取均值,計算得到胸部位置寬度Bo:

  其中Bo為胸部位置寬度,Ho為人體高度,Bp為檢測到胸部位置的水平高度,Bwi為所在行人體寬度;

  識別出手臂后,通過寬度檢測,檢測到第一個寬度最小值時將其作為腰部中點(diǎn),對上下取人體高度5%長度取平均值:

  其中Wo為腰部位置寬度,Wp為檢測到腰部位置的水平高度,Wwi為所在行人體寬度;

  在識別出腰部所在位置后,向下檢測至第一個寬度峰值,將其定位為臀部中心點(diǎn);根據(jù)人體高度5%長度的位置取得人體寬度信息取均值,計算出臀部寬度信息Co:

  其中Co為臀部位置寬度,Cp為檢測到臀部位置的水平高度,Cwi為所在行人體寬度。

  基于人體輪廓信息定位肩部:

  S2.2.1基于人體輪廓線檢測人體寬度,從上至下掃描前景圖,掃描線寬度大小第二個峰值處為肩部,掃描線寬度大小第一個谷值處為脖頸;

  S2.2.2對人體輪廓線計算斜率,取如下輪廓線:

  斜率絕對值接近于零;

  向肩部定位下方檢測到手臂,斜率開始增加直到接近于正無窮;

  向肩部定位上方檢測到脖頸,斜率開始增加直到接近于正無窮;

  取滿足上述要求的輪廓線,限制肩部定位點(diǎn)范圍,確定肩部定位。

  為實現(xiàn)通過手勢控制進(jìn)行衣服的篩選,在人體圖像數(shù)據(jù)采集過程中可,利用SVM進(jìn)行特征訓(xùn)練,實現(xiàn)手勢識別;或通過kinect體感機(jī)進(jìn)行指尖判定,實現(xiàn)手勢識別;

  S3將人體圖像數(shù)據(jù)和服裝建模數(shù)據(jù)關(guān)聯(lián),在顯示器上顯示;

  根據(jù)模型訓(xùn)練后確認(rèn)的身材類型,選擇對應(yīng)身材類型的服裝;服裝模型的長度與寬度確定方法為:

  服裝長度cL=(sH-Cp)/(ho/Ho);服裝寬度bW=(fB+Co)/2;

  其中cL為圖中服裝長度,sH為圖中肩部高度,Cp為圖中臀部高度,ho為用戶真實身高,Ho為圖中人體身高;bW為圖中服裝寬度,fB為圖中正面胸部寬度,Co為圖中胸部位置寬度。

  當(dāng)服裝的匹配效果出現(xiàn)誤差或者不符合用戶的意圖時,可以手動微調(diào)服裝位置與大小。

  服裝與人體的肩部定位點(diǎn)的區(qū)域大小不一致的,因此本發(fā)明中對用戶調(diào)整的范圍進(jìn)行了限制,以防止用戶的誤操作。限定方法是:用戶對服裝的位置進(jìn)行調(diào)節(jié)時兩者的匹配區(qū)域必須有重合區(qū)域,否則不能調(diào)整。對于服裝的大小可以通過手指對屏幕的觸控調(diào)整。