日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
零門檻人像轉(zhuǎn)卡通、GIF表情包,這個項目不僅開源,還做成了小程序

 之前開源的「人臉變卡通」項目往往可以提供很多鬼畜素材,要么嘴歪眼斜,要么臉型扭曲,甚至讓你的五官看上去是隨便放到臉盤里的,完全不像陽間該有的畫風(fēng)……但小視科技最近開源的一個項目似乎改變了這種印象,不僅可以生成逼真的卡通頭像,還能利用微信小程序做成動圖表情包,普通人也可以零門檻上手。

這個項目名叫「人像卡通化 (Photo to Cartoon)」,已經(jīng)在 GitHub 上開源。但對于不想動手下載各種軟件、數(shù)據(jù)集、訓(xùn)練模型的普通用戶,該公司開放了一個名為「AI 卡通秀」的小程序,可以生成各種風(fēng)格的卡通照片、gif 表情包,完全可以滿足社交需求。

先來看一下小程序的生成效果:

看上去好像還不錯。但考慮到明星照可能會被用作訓(xùn)練數(shù)據(jù),機(jī)器之心小編決定用自己的照片試一下:

效果依然傳神!而且,除了常規(guī)卡通頭像之外,你還可以選擇生成圖像的濾鏡和風(fēng)格,如懷舊、字云、素描、剪紙、豹紋等。

小姐姐能完美轉(zhuǎn)換,那小哥哥呢?我們拿象牙山 F4 之一的謝廣坤測試了一下(眾所周知,廣坤叔的顏值還是很能打的):

由于照片中人物右側(cè)下巴的邊界不太明顯,生成的卡通頭像略有瑕疵,但還是一眼就能看出人物特征。當(dāng)然,這還不是最歡樂的。接下來,你還可以做表情包!

 

話說回來,這種需要上傳照片的應(yīng)用常常引發(fā)大家對于隱私問題的擔(dān)憂。有了「Zao」的前車之鑒,「AI 卡通秀」在《用戶協(xié)議》中表示,「除非為了改善我們?yōu)槟峁┑姆?wù)或另行取得您的再次同意,否則我們不會以其他形式或目的使用上述內(nèi)容(頭像照片等)」。

如果你還是擔(dān)心隱私問題,可以直接去 GitHub 上獲取開源數(shù)據(jù)和代碼,訓(xùn)練自己的模型進(jìn)行測試。

項目地址:https://github.com/minivision-ai/photo2cartoon

接下來,我們就來看看這一應(yīng)用背后的技術(shù)細(xì)節(jié)。

這么好玩的效果是怎么做到的呢?

人像卡通風(fēng)格渲染的目標(biāo)是,在保持原圖像 ID 信息和紋理細(xì)節(jié)的同時,將真實照片轉(zhuǎn)換為卡通風(fēng)格的非真實感圖像。

但是圖像卡通化任務(wù)面臨著一些難題:

  1. 卡通圖像往往有清晰的邊緣,平滑的色塊和經(jīng)過簡化的紋理,與其他藝術(shù)風(fēng)格有很大區(qū)別。使用傳統(tǒng)圖像處理技術(shù)生成的卡通圖無法自適應(yīng)地處理復(fù)雜的光照和紋理,效果較差;基于風(fēng)格遷移的方法無法對細(xì)節(jié)進(jìn)行準(zhǔn)確地勾勒。
  2. 數(shù)據(jù)獲取難度大。繪制風(fēng)格精美且統(tǒng)一的卡通畫耗時較多、成本較高,且轉(zhuǎn)換后的卡通畫和原照片的臉型及五官形狀有差異,因此不構(gòu)成像素級的成對數(shù)據(jù),難以采用基于成對數(shù)據(jù)的圖像翻譯(Paired Image Translation)方法。
  3. 照片卡通化后容易丟失身份信息?;诜浅蓪?shù)據(jù)的圖像翻譯(Unpaired Image Translation)方法中的循環(huán)一致性損失(Cycle Loss)無法對輸入輸出的 id 進(jìn)行有效約束。

那么如何解決這些問題呢?

小視科技的研究團(tuán)隊提出了一種基于生成對抗網(wǎng)絡(luò)的卡通化模型,只需少量非成對訓(xùn)練數(shù)據(jù),就能獲得漂亮的結(jié)果??ㄍL(fēng)格渲染網(wǎng)絡(luò)是該解決方案的核心,它主要由特征提取、特征融合和特征重建三部分組成。

整體框架由下圖所示,該框架基于近期研究 U-GAT-IT(論文《U-GAT-IT: Unsupervised Generative Attentional Networks with Adaptive Layer-Instance Normalization for Image-to-Image Translation》。

模型結(jié)構(gòu)方面,在 U-GAT-IT 的基礎(chǔ)上,研究者在編碼器之前和解碼器之后各增加了 2 個 hourglass 模塊,漸進(jìn)地提升模型特征抽象和重建能力。

特征提取

特征提取部分包含堆疊的 Hourglass 模塊、下采樣模塊和殘差模塊。

Hourglass 模塊常用于姿態(tài)估計,它能夠在特征提取的同時保持語義信息位置不變。該方法采用堆疊的 Hourglass 模塊,漸進(jìn)地將輸入圖像抽象成易于編碼的形式。4 個殘差模塊則用于編碼特征并提取統(tǒng)計信息,用于后續(xù)的特征融合。

特征融合

近期論文 U-GAT-IT 提出了一種歸一化方法——AdaLIN,能夠自動調(diào)節(jié) Instance Norm 和 Layer Norm 的比重,再結(jié)合注意力機(jī)制實現(xiàn)人像日漫風(fēng)格轉(zhuǎn)換。

研究人員基于此提出了 Soft-AdaLIN(Soft Adaptive Layer-Instance Normalization)歸一化方法。先將輸入圖像的編碼特征統(tǒng)計信息和卡通特征統(tǒng)計信息融合,再以 AdaLIN 的方式反歸一化解碼特征,使卡通畫結(jié)果更好地保持輸入圖像的語義內(nèi)容。

不同于原始的 AdaLIN,這里的「Soft」體現(xiàn)在不直接使用卡通特征統(tǒng)計量來反歸一化解碼特征,而是通過可學(xué)習(xí)的權(quán)重 w_μ 和 w_σ 來加權(quán)平均卡通特征和編碼特征的統(tǒng)計量,并以此對歸一化后的解碼特征進(jìn)行反歸一化。

編碼特征統(tǒng)計量 μ_en 和 σ_en 提取自特征提取階段中各 Resblock 的輸出特征,卡通特征統(tǒng)計量則通過全連接層提取自 CAM(Class Activation Mapping)模塊輸出的特征圖。加權(quán)后的統(tǒng)計量為:

Soft-AdaLIN 操作可以表示為:

特征重建

特征重建部分負(fù)責(zé)從編碼特征生成對應(yīng)的卡通圖像。

這部分采用與特征提取部分對稱的結(jié)構(gòu),通過解碼模塊、上采樣模塊和 Hourglass 模塊生成卡通畫結(jié)果。

損失函數(shù)

如上所述,照片卡通化后容易丟失身份信息。為了使輸出結(jié)果體現(xiàn)人物信息,除了常規(guī)的 Cycle Loss 和 GAN Loss,研究人員還引入了 ID Loss:使用預(yù)訓(xùn)練的人臉識別模型來提取輸入真人照和生成卡通畫的 id 特征,并用余弦距離來約束,使卡通畫的 id 信息與輸入照片盡可能相似。

如何實現(xiàn)?

安裝依賴庫

項目所需的主要依賴庫如下:

  • python 3.6
  • pytorch 1.4
  • tensorflow-gpu 1.14
  • face-alignment
  • dlib

Clone

 
 
 
 
  1. git clone https://github.com/minivision-ailab/photo2cartoon.git 
  2.  
  3. cd ./photo2cartoon 

下載資源

資源地址:

  • https://drive.google.com/open?id=1eDNGZT3jszHLXQ9XGIUPtcu72HdBmHuX
  • https://pan.baidu.com/s/1DxWWBAoaBpsei_rynZUZzw 提取碼:z2nm
  1. 人像卡通化預(yù)訓(xùn)練模型:photo2cartoon_weights.pt,存放在 models 路徑下。
  2. 頭像分割模型:seg_model_384.pb,存放在 utils 路徑下。
  3. 人臉識別預(yù)訓(xùn)練模型:model_mobilefacenet.pth,存放在 models 路徑下。(From: InsightFace_Pytorch)
  4. 卡通畫開源數(shù)據(jù):cartoon_data,包含 trainB 和 testB。

測試

將一張測試照片(亞洲年輕女性)轉(zhuǎn)換為卡通風(fēng)格:

 
 
 
 
  1. python test.py --photo_path ./images/photo_test.jpg --save_path ./images/cartoon_result.png 

訓(xùn)練

1. 數(shù)據(jù)準(zhǔn)備

訓(xùn)練數(shù)據(jù)包括真實照片和卡通畫像,為降低訓(xùn)練復(fù)雜度,團(tuán)隊對兩類數(shù)據(jù)進(jìn)行了如下預(yù)處理:

  • 檢測人臉及關(guān)鍵點。
  • 根據(jù)關(guān)鍵點旋轉(zhuǎn)校正人臉。
  • 將關(guān)鍵點邊界框按固定的比例擴(kuò)張并裁剪出人臉區(qū)域。
  • 使用人像分割模型將背景置白。

團(tuán)隊開源了 204 張?zhí)幚砗蟮目ㄍó嫈?shù)據(jù),用戶還需準(zhǔn)備約 1000 張人像照片(為匹配卡通數(shù)據(jù),盡量使用亞洲年輕女性照片,人臉大小最好超過 200x200 像素),使用以下命令進(jìn)行預(yù)處理:

 
 
 
 
  1. python data_process.py --data_path YourPhotoFolderPath --save_path YourSaveFolderPath 

將處理后的數(shù)據(jù)按照以下層級存放,trainA、testA 中存放照片頭像數(shù)據(jù),trainB、testB 中存放卡通頭像數(shù)據(jù)。

 
 
 
 
  1. ├── dataset 
  2.  
  3.     └── photo2cartoon 
  4.  
  5.         ├── trainA 
  6.  
  7.             ├── xxx.jpg 
  8.  
  9.             ├── yyy.png 
  10.  
  11.             └── ... 
  12.  
  13.         ├── trainB 
  14.  
  15.             ├── zzz.jpg 
  16.  
  17.             ├── www.png 
  18.  
  19.             └── ... 
  20.  
  21.         ├── testA 
  22.  
  23.             ├── aaa.jpg  
  24.  
  25.             ├── bbb.png 
  26.  
  27.             └── ... 
  28.  
  29.         └── testB 
  30.  
  31.             ├── ccc.jpg  
  32.  
  33.             ├── ddd.png 
  34.  
  35.             └── ... 

2. 訓(xùn)練

重新訓(xùn)練:

 
 
 
 
  1. python train.py --dataset photo2cartoon 

加載預(yù)訓(xùn)練參數(shù):

 
 
 
 
  1. python train.py --dataset photo2cartoon --pretrained_weights models/photo2cartoon_weights.pt 

分享題目:零門檻人像轉(zhuǎn)卡通、GIF表情包,這個項目不僅開源,還做成了小程序
當(dāng)前URL:http://m.5511xx.com/article/coihdcs.html