97国产精品自拍,成全动漫影视大全在线观看国语,亚洲色婷婷一区二区三区,欧美巨大巨粗黑人性aaaaaa

當前位置: 首頁 > 物聯網百科 > 產品百科 > 查看詳情
虛擬試衣鏡開發方案
來源:作者:日期:2019-12-27 09:33:28點擊:4518次

  本開發方案屬于圖像處理和虛擬現實技術領域,具體涉及一種虛擬試衣鏡的實現方法。

  背景技術:

  隨著物聯網的發展,網絡虛擬購物已經成了時代潮流。國內商家對于虛擬試衣技術不斷嘗試創新,以積極的態度迎接虛擬顯示技術時代的到來,但是現有的在線的試衣系統,或是基于移動終端的試衣軟件,其顯示效果仍然無法與實物相提并論,也因此影響了虛擬試衣鏡的發展與推廣。
 

虛擬試衣鏡開發方案
 

  技術實現要素:

  本發明的目的在于克服現有技術存在的問題,提供一種虛擬試衣鏡的實現方法。

  為實現上述技術目的,本發明采用如下技術方案:

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

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

  S2用戶人體圖像數據采集;所述用戶人體圖像數據為二維數據或三維數據;

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

  用戶上傳標準全身照片和身高體重數據,對用戶上傳標準全身照片進行圖像處理,提取四圍信息,將身高體重數據和四維信息導入訓練模型,獲取身材類型分類;

  S3將人體圖像數據和服裝建模數據關聯并顯示。

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

  本發明的方法,所述S2中,LibSVM訓練方法如下:

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

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

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

  用戶上傳圖像數據的處理步驟包括:

  S2.1用戶上傳標準全身照片,包括正面標準照,背面標準照和側面標準照;

  S2.2對標準照片進行圖像分割,將圖劃分為背景和前景兩部分,前景即為用戶人體圖像數據;

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

  所述S2.2中,采用GrabCut算法對標準照片進行圖像分割。

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

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

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

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

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

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

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

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

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

  斜率絕對值接近于零;

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

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

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

  所述S3中,根據模型訓練后確認的身材類型,選擇對應身材類型的服裝;服裝模型的長度與寬度確定方法為:

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

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

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

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

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

  具體實施方式

  實施例1

  本實施例用于說明本發明方法的具體技術方案。

  本發明的方法包括如下步驟:

  1)服裝建模;

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

  2)人體圖像數據采集;

  采集二維數據或三維數據的人體圖像數據;

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

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

  用戶上傳標準全身照片和身高體重數據,對用戶上傳標準全身照片進行圖像處理,提取四圍信息,將身高體重數據和四維信息導入訓練模型,獲取身材類型分類;

  LibSVM訓練方法如下:

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

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

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

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

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

  S2.1用戶上傳標準全身照片,包括正面標準照,背面標準照和側面標準照;

  標準照基于如下標準:

  正面標準照:用戶身體直立,手臂自然下垂;

  背面標準照:用戶身體直立,手臂水平伸展;

  側面標準照:用戶身體直立,手臂自然下垂。

  S2.2采用GrabCut算法對標準照片進行圖像分割,將圖劃分為背景和前景兩部分,前景即為用戶人體圖像數據;

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

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

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

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

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

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

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

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

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

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

  斜率絕對值接近于零;

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

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

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

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

  S3將人體圖像數據和服裝建模數據關聯,在顯示器上顯示;

  根據模型訓練后確認的身材類型,選擇對應身材類型的服裝;服裝模型的長度與寬度確定方法為:

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

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

  當服裝的匹配效果出現誤差或者不符合用戶的意圖時,可以手動微調服裝位置與大小。

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

商南县| 长白| 仪陇县| 股票| 丹东市| 墨江| 内江市| 仁寿县| 南汇区| 临湘市| 宁德市| 太原市| 武冈市| 临澧县| 察隅县| 湘潭县| 阿克陶县| 招远市| 乌鲁木齐县| 长沙市| 瓮安县| 临夏市| 金坛市| 长兴县| 潜江市| 曲水县| 景宁| 城口县| 保康县| 江北区| 志丹县| 桑植县| 巴彦淖尔市| 额尔古纳市| 阿拉尔市| 靖远县| 错那县| 秭归县| 沙河市| 长顺县| 绥化市|