伊人久久大香线蕉综合BD高清,变态另类天堂无码,大又大又粗又硬又爽少妇毛片,中文字幕有码一区二区三区

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

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

時間:2018-11-05 15:19:04點擊:1077次

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

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

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

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

人像卡通化

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

膚色和發(fā)色

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

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

No API

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

照片選擇

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

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

VGG

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

VGG Face

Torch

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

Torch可以自動下載VGG Face模型,并且只需幾行代碼就能運行一張圖片?;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)

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

圖層

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

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

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

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

相似度

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

torch.dot(output1, output2)

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

對于這一測試,我們想將生成的Memoji和多張參考圖像對比,生成最終結(jié)果。所以我只需將每一對圖像的值進行正則化,取平均分?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,說明相似度越大。

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

首次測試——The Lineup

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

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

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

真實照片

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

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

生成過程

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

我將手機和電腦連接,用QuickTime Player的錄制功能將這一過程保留下來。

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

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

結(jié)果

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

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

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

不過眼睛的選擇卻有些不同:

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

發(fā)色

前面說到,頭發(fā)的顏色因為光線問題會難以確定。川普和奧巴馬的頭發(fā)還比較好確定,但是有些情況下,網(wǎng)絡(luò)總會把很亮的顏色看作灰色:

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

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

  • 標(biāo)簽: