小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

使用自動(dòng)編碼器實(shí)現(xiàn)穿衣圖像分割 | 目標(biāo)檢測(cè)

 mediatv 2020-01-11

~~時(shí)裝業(yè)是人工智能領(lǐng)域很有前景的領(lǐng)域。研究人員可以開(kāi)發(fā)具有一定實(shí)用價(jià)值的應(yīng)用。我已經(jīng)在這里展示了我對(duì)這個(gè)領(lǐng)域的興趣,在那里我開(kāi)發(fā)了一個(gè)來(lái)自Zalando在線商店的推薦和標(biāo)記服裝的解決方案。~~

在這篇文章中,我們會(huì)開(kāi)發(fā)一個(gè)提取連衣裙的應(yīng)用。它輸入原始的圖像(從網(wǎng)絡(luò)上下載或用智能手機(jī)拍照),并提取圖像中的連衣裙。分割的難點(diǎn)在于原始圖像中存在了大量的噪聲,但是我們會(huì)在預(yù)處理期間通過(guò)一個(gè)技巧來(lái)解決這個(gè)問(wèn)題。

~~最后,您還可以嘗試將此解決方案與之前引用的解決方案合并。這允許您通過(guò)外出和拍攝時(shí)拍攝的照片,開(kāi)發(fā)一個(gè)實(shí)時(shí)推薦和標(biāo)記服裝的系統(tǒng)。~~

數(shù)據(jù)集

最近有一項(xiàng)關(guān)于服裝視覺(jué)分析和分割的Kaggle比賽。這是一個(gè)非常有趣的比賽,但它并不適合我們。我們的目標(biāo)是從圖像中提取連衣裙,因此這個(gè)數(shù)據(jù)集不太適合我們,因?yàn)樗吮容^多的冗余。我們需要的是包含連衣裙的圖像,因此最好自己來(lái)構(gòu)建數(shù)據(jù)集。

我收集了網(wǎng)絡(luò)上的一些圖片,其中包含了在不同場(chǎng)景穿著不同類(lèi)型的連衣裙的人。然后需要?jiǎng)?chuàng)建蒙版,它在每個(gè)對(duì)象分割任務(wù)中都是必要的。

下面是我們的數(shù)據(jù)樣本。我從互聯(lián)網(wǎng)上收集了一些原始圖像,經(jīng)過(guò)進(jìn)一步剪切,將人與衣服分開(kāi)。

圖像分割示例

因?yàn)槲覀円獙⒈尘?、皮膚和連衣裙進(jìn)行分離,首先要將它們區(qū)分出來(lái)。背景和皮膚是本問(wèn)題中最相關(guān)的噪聲源,我們要盡量減少它們的干擾。

通過(guò)手動(dòng)分割來(lái)創(chuàng)建蒙版,如下圖所示,簡(jiǎn)單的對(duì)蒙版進(jìn)行二值化。

蒙版示例

最后一步,我們將所有的蒙版圖像合并為三維的單個(gè)圖像。這張照片表示了原始圖像的相關(guān)特征。我們的目的主要是分離背景,皮膚和連衣裙,因此這個(gè)圖像非常適合!

最終蒙版

我們對(duì)數(shù)據(jù)集中的每個(gè)圖像重復(fù)這個(gè)過(guò)程,為每個(gè)原始圖像提供三維的對(duì)應(yīng)蒙版。

模型

我們可以很容易的建立模型,過(guò)程非常簡(jiǎn)單:

我們需要訓(xùn)練這樣一個(gè)模型,該模型輸入原始圖像,可以輸出它的三維蒙版,即分離皮膚、背景和衣服。訓(xùn)練完成之后,當(dāng)一個(gè)新的圖像輸入時(shí),我們就可以將它分成三個(gè)不同的部分:背景、皮膚和衣服。我們只關(guān)注感興趣區(qū)域(連衣裙),這樣蒙版結(jié)合原始圖像,就可以裁剪出我們需要的連衣裙。

我們使用UNet建立該模型,它經(jīng)常用于類(lèi)似的分割任務(wù),而且很容易在Keras中實(shí)現(xiàn)。

在開(kāi)始訓(xùn)練之前,要對(duì)所有的原始圖像進(jìn)行均值標(biāo)準(zhǔn)化。

結(jié)果和預(yù)測(cè)

在預(yù)測(cè)期間,當(dāng)遇到高噪聲的圖像(背景或皮膚模糊等)時(shí),模型開(kāi)始動(dòng)蕩。這種問(wèn)題可以簡(jiǎn)單地通過(guò)增加訓(xùn)練圖像的數(shù)量進(jìn)行解決。但我們也開(kāi)發(fā)了一個(gè)巧妙的方法來(lái)避免這種問(wèn)題。

我們使用 OpenCV 提供的 GrubCut 算法。該算法利用高斯混合模型分離前景和背景。通過(guò)它可以幫助我們找到圖像中的人物。

我們只實(shí)現(xiàn)了簡(jiǎn)單的功能。假設(shè)感興趣的人站在圖像的中間。

def cut(img):
img = cv.resize(img,(224,224))

mask = np.zeros(img.shape[:2],np.uint8)
bgdModel = np.zeros((1,65),np.float64)
fgdModel = np.zeros((1,65),np.float64)
height, width = img.shape[:2]
rect = (50,10,width-100,height-20)
cv.grabCut(img,mask,rect,bgdModel,fgdModel,5,
cv.GC_INIT_WITH_RECT)
mask2 = np.where((mask==2)|(mask==0),0,1).astype('uint8')
img2 = img*mask2[:,:,np.newaxis]
img2[mask2 == 0] = (255, 255, 255)

final = np.ones(img.shape,np.uint8)*0 + img2

return mask, final

執(zhí)行GrubCut結(jié)果

下面是結(jié)合使用GrubCut和UNet之后的結(jié)果:

GrubCut與UNet相結(jié)合得到了優(yōu)秀的結(jié)果。

總結(jié)

在這篇文章中,我們?yōu)檫B衣裙分割開(kāi)發(fā)了一套解決方案。為了達(dá)到這個(gè)目的,我們使用了GrubCut和UNet。我們計(jì)劃在真實(shí)照片中使用這個(gè)解決方案,并根據(jù)它構(gòu)建一個(gè)視覺(jué)推薦系統(tǒng)。

文章

代碼

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多