8x福利精品第一导航,国产在线播放微拍视频,国产jk好大好硬的视频,久久天天丁香婷婷中文字幕

  • 服務(wù)熱線:13728883399
  • wangyp@shangeai.com

一種用神經(jīng)網(wǎng)絡(luò)從真實(shí)照片中生成蘋果Memoji表情的方法

時(shí)間:2018-11-05 15:19:04點(diǎn)擊:1128次

在今年六月份舉行的WWDC18大會(huì)上,蘋果介紹了全新的升級(jí)版“Animoji”——Memoji,用戶可以選擇不同的發(fā)型、五官和膚色來(lái)定制自己專屬的表情符號(hào),例如選擇不同的膚色、發(fā)型甚至雀斑,并且有多種顏色。

但是,選擇畢竟是有限的,在多種樣式中對(duì)比查找也有一定難度,那么是否有一種算法可以根據(jù)照片生成Memoji呢?

在這篇博文中,我們將介紹一種用神經(jīng)網(wǎng)絡(luò)從真實(shí)照片中生成蘋果Memoji表情的方法。具體來(lái)說(shuō),我測(cè)試了用于人臉識(shí)別的網(wǎng)絡(luò)VGG16 Face,將真實(shí)照片與Memoji進(jìn)行對(duì)比。之后我用它選擇各種特征,為新目標(biāo)創(chuàng)造Memoji表情。本文原作者為Pat Niemeyer,以下是論智的編譯。

上圖是神經(jīng)網(wǎng)絡(luò)生成的兩個(gè)結(jié)果。在實(shí)際操作過(guò)程中,我們的工作會(huì)受到以下幾點(diǎn)因素的影響:

人像卡通化

第一個(gè)問(wèn)題就是:某人的“卡通版本”是什么樣的。卡通漫畫通常會(huì)放大某人最明顯的特征,但是類似發(fā)型之類的其他特征區(qū)別不是很明顯,并且發(fā)型的類型非常多。經(jīng)過(guò)訓(xùn)練辨認(rèn)人臉的神經(jīng)網(wǎng)絡(luò)會(huì)以抽象方式捕捉到某人的發(fā)型信息,從而進(jìn)行轉(zhuǎn)化。反過(guò)來(lái)說(shuō),這也意味著從抽象信息中生成發(fā)型并不是一個(gè)理想的好方法。

膚色和發(fā)色

在不同光線條件下推測(cè)照片中人物的膚色非常困難,在我的測(cè)試中,網(wǎng)絡(luò)通常會(huì)選擇膚色更淺的區(qū)域,并且不能區(qū)分現(xiàn)實(shí)和非現(xiàn)實(shí)情況。同樣,雖然測(cè)試設(shè)備在分辨暗色和亮色頭發(fā)的任務(wù)中表現(xiàn)不錯(cuò),但是當(dāng)照片中的頭發(fā)顏色更鮮艷,這一方法或多或少地可能失敗。

這里推薦一篇文章,其中用到的對(duì)人臉特征和膚色進(jìn)行規(guī)范化的工具非常酷:Synthesizing Normalized Faces from Facial Identity Features。

No API

想用Memoji做實(shí)驗(yàn)遇到的最大挑戰(zhàn)就是,目前沒(méi)有可用的API能夠程序化創(chuàng)造它們(沒(méi)有直接的方法可以讓我們?cè)趇OS中自動(dòng)進(jìn)行創(chuàng)造)。所以,當(dāng)我們想搜索可能的Memoji作為生成過(guò)程的一部分時(shí),這一過(guò)程變得極為低效。理想狀態(tài)下,我們想用一個(gè)通用算法徹底調(diào)整各特征的組合,而不是獨(dú)立處理,但這在簡(jiǎn)單的實(shí)驗(yàn)上是無(wú)法做到的。

照片選擇

選擇哪張照片作為參考材料對(duì)結(jié)果有很大的影響,在有些情況下,一些照片會(huì)比其他的生成更好的結(jié)果。理想的照片應(yīng)該是裁剪合理、臉朝向前方、最具代表性的照片。對(duì)于每一特征,我都會(huì)根據(jù)至少四張人臉圖像進(jìn)行打分。

網(wǎng)絡(luò)設(shè)置

VGG

VGG是圖像識(shí)別中常用的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu),VGG Face是該架構(gòu)經(jīng)過(guò)人臉識(shí)別訓(xùn)練后的工具。它的創(chuàng)作者已將完全訓(xùn)練后的網(wǎng)絡(luò)開(kāi)源,大大方便了我們的實(shí)驗(yàn),因?yàn)閺牧阌?xùn)練一個(gè)這樣的網(wǎng)絡(luò)通常需要大量數(shù)據(jù)和計(jì)算時(shí)間。

VGG Face

Torch

另外在測(cè)試時(shí),我用到了Torch科學(xué)計(jì)算框架。Torch提供了運(yùn)行VGG模型所需要的環(huán)境,并且基于Lua提供了腳本環(huán)境,同時(shí)還有用于數(shù)學(xué)計(jì)算的庫(kù)和基礎(chǔ)搭建模塊,可用于神經(jīng)網(wǎng)絡(luò)的圖層。

Torch可以自動(dòng)下載VGG Face模型,并且只需幾行代碼就能運(yùn)行一張圖片?;A(chǔ)流程如下:

-- Load the network

net = torch.load('./torch_model/VGG_FACE.t7')

net:evaluate()

-- Apply an image

img = load_image(my_file)

output = net:forward(img)

其中下載圖像和對(duì)圖像規(guī)范化的步驟代碼可以在源代碼中找到。

圖層

如上圖所示,VGG有很多不同類型的圖層,首先是一個(gè)能保存RGB圖像數(shù)據(jù)的Tensor,它應(yīng)用了多種卷積、池化、權(quán)重和其他類型的變換,隨著每個(gè)圖層學(xué)習(xí)更多抽象特征,數(shù)據(jù)的“形狀”和維度都在變化。最終網(wǎng)絡(luò)會(huì)在最后一層生成一個(gè)一維的、有2622個(gè)元素的預(yù)測(cè)向量。該向量表示真人與網(wǎng)絡(luò)訓(xùn)練結(jié)果匹配成功的概率。

在我們的案例中,我們不關(guān)心這些預(yù)測(cè)結(jié)果,而是想利用網(wǎng)絡(luò)比較自己數(shù)據(jù)集中的抽象人臉。為了做到這一點(diǎn),我們可以利用預(yù)測(cè)圖層下的圖層的輸出,該圖層包括了4096個(gè)元素向量,對(duì)人臉特征進(jìn)行組合定制。

output = net.modules[selectedLayer].output:clone()

雖然VGG16的標(biāo)準(zhǔn)是16層的框架,但實(shí)際上在Torch中實(shí)施后生成的是具有40個(gè)模塊的設(shè)置。

相似度

接下來(lái),我們會(huì)向網(wǎng)絡(luò)中輸入成對(duì)的圖片,然后用一種簡(jiǎn)單的相似度尺度比較它們的輸出。其中比較兩個(gè)大型數(shù)字向量的方法是利用點(diǎn)積:

torch.dot(output1, output2)

這就生成了一個(gè)表示向量在高維空間中“對(duì)齊”程度的標(biāo)量值。

對(duì)于這一測(cè)試,我們想將生成的Memoji和多張參考圖像對(duì)比,生成最終結(jié)果。所以我只需將每一對(duì)圖像的值進(jìn)行正則化,取平均分?jǐn)?shù)。

sum = 0

for i = 1, #refs do

localref = refs[i]

local dotself = torch.dot(ref , ref)

sum = sum + torch.dot(ref, target) / dotself

end

...

return sum / #refs

正則化表示將一張圖像和它本身相比的分?jǐn)?shù)為1,那么之后的分?jǐn)?shù)越接近于1,說(shuō)明相似度越大。

除此之外,我們還能用到很多其他類型的衡量尺度。常用的兩種可能是歐幾里得距離或計(jì)算兩輸入之間的平均方差。

首次測(cè)試——The Lineup

首先我想知道,這一人臉網(wǎng)絡(luò)能否在所有照片上生成對(duì)應(yīng)的Memoji。首先,我隨機(jī)收集了63張Memoji圖像,大部分是蘋果的設(shè)計(jì)原型。

之后我選擇了一個(gè)Memoji,然后讓網(wǎng)絡(luò)選出前三名相似度最高的表情。

結(jié)果非常不錯(cuò)!不僅僅它能找到完全一樣的Memoji(得分為1),第二第三名看起來(lái)也很相像。

真實(shí)照片

現(xiàn)在我們要進(jìn)行“真實(shí)性”檢測(cè):我們讓網(wǎng)絡(luò)根據(jù)真實(shí)相片找到相似的Memoji,結(jié)果如下:

由于只能在有限的數(shù)據(jù)集中選擇,所以結(jié)果并不如我們期待的那樣好,可以看到分?jǐn)?shù)都很低。

生成過(guò)程

接下來(lái),我嘗試讓網(wǎng)絡(luò)挑選特征創(chuàng)造全新的Memoji。正如上文提到的,在iOS中并沒(méi)有能自動(dòng)創(chuàng)建Memoji的途徑,所以我決定編寫腳本促進(jìn)Memoji的生成。

我將手機(jī)和電腦連接,用QuickTime Player的錄制功能將這一過(guò)程保留下來(lái)。

但這一方法并不理想。首先,操作起來(lái)很復(fù)雜,光發(fā)型就有93種,運(yùn)行一遍需要大量時(shí)間。更重要的是,我們每次只能評(píng)估一個(gè)特征的不同。理論上,我們可以不斷地重復(fù)選擇樹(shù),進(jìn)行迭代,知道網(wǎng)絡(luò)認(rèn)為沒(méi)有什么變化時(shí)才能停止。但是這種方法也不完美,很有可能只是一個(gè)“部分最小值”。

另外,照片中人物頭像細(xì)微的移動(dòng)就會(huì)影響分?jǐn)?shù)。最后,我發(fā)現(xiàn)了一個(gè)簡(jiǎn)單的解決方法。

結(jié)果

在文章未完成前,我其實(shí)沒(méi)有采用網(wǎng)絡(luò)得出的川普中的發(fā)型,而是手動(dòng)選擇了一個(gè)分?jǐn)?shù)最高的,覺(jué)得那個(gè)更適合他。但是最后我還是堅(jiān)持展示出所有網(wǎng)絡(luò)得出的結(jié)果。

所以,有的時(shí)候排名前三的將結(jié)果并不總是相似的。例如,以下就是川普發(fā)型的排名:

但是,奧巴馬耳朵的排名卻很靠譜,又大到小分?jǐn)?shù)逐漸降低:

不過(guò)眼睛的選擇卻有些不同:

但是川普的眼睛就比較一致了:

發(fā)色

前面說(shuō)到,頭發(fā)的顏色因?yàn)楣饩€問(wèn)題會(huì)難以確定。川普和奧巴馬的頭發(fā)還比較好確定,但是有些情況下,網(wǎng)絡(luò)總會(huì)把很亮的顏色看作灰色:

原文標(biāo)題:用神經(jīng)網(wǎng)絡(luò)根據(jù)照片創(chuàng)建專屬M(fèi)emoji表情

文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

  • 標(biāo)簽: