乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      使用自動編碼器實現(xiàn)穿衣圖像分割 | 目標檢測

       mediatv 2020-01-11

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

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

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

      數(shù)據(jù)集

      最近有一項關于服裝視覺分析和分割的Kaggle比賽。這是一個非常有趣的比賽,但它并不適合我們。我們的目標是從圖像中提取連衣裙,因此這個數(shù)據(jù)集不太適合我們,因為它包含了比較多的冗余。我們需要的是包含連衣裙的圖像,因此最好自己來構建數(shù)據(jù)集。

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

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

      圖像分割示例

      因為我們要將背景、皮膚和連衣裙進行分離,首先要將它們區(qū)分出來。背景和皮膚是本問題中最相關的噪聲源,我們要盡量減少它們的干擾。

      通過手動分割來創(chuàng)建蒙版,如下圖所示,簡單的對蒙版進行二值化。

      蒙版示例

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

      最終蒙版

      我們對數(shù)據(jù)集中的每個圖像重復這個過程,為每個原始圖像提供三維的對應蒙版。

      模型

      我們可以很容易的建立模型,過程非常簡單:

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

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

      在開始訓練之前,要對所有的原始圖像進行均值標準化。

      結果和預測

      在預測期間,當遇到高噪聲的圖像(背景或皮膚模糊等)時,模型開始動蕩。這種問題可以簡單地通過增加訓練圖像的數(shù)量進行解決。但我們也開發(fā)了一個巧妙的方法來避免這種問題。

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

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

      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結果

      下面是結合使用GrubCut和UNet之后的結果:

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

      總結

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

      文章

      代碼

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多