0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一種用神經網絡從真實照片中生成蘋果Memoji表情的方法

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-11-05 15:19 ? 次閱讀

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

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

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

上圖是神經網絡生成的兩個結果。在實際操作過程中,我們的工作會受到以下幾點因素的影響:

人像卡通化

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

膚色和發(fā)色

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

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

No API

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

照片選擇

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

網絡設置

VGG

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

VGG Face

Torch

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

Torch可以自動下載VGG Face模型,并且只需幾行代碼就能運行一張圖片?;A流程如下:

-- 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圖像數據的Tensor,它應用了多種卷積、池化、權重和其他類型的變換,隨著每個圖層學習更多抽象特征,數據的“形狀”和維度都在變化。最終網絡會在最后一層生成一個一維的、有2622個元素的預測向量。該向量表示真人與網絡訓練結果匹配成功的概率。

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

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

雖然VGG16的標準是16層的框架,但實際上在Torch中實施后生成的是具有40個模塊的設置。

相似度

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

torch.dot(output1, output2)

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

對于這一測試,我們想將生成的Memoji和多張參考圖像對比,生成最終結果。所以我只需將每一對圖像的值進行正則化,取平均分數。

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

正則化表示將一張圖像和它本身相比的分數為1,那么之后的分數越接近于1,說明相似度越大。

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

首次測試——The Lineup

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

之后我選擇了一個Memoji,然后讓網絡選出前三名相似度最高的表情。

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

真實照片

現在我們要進行“真實性”檢測:我們讓網絡根據真實相片找到相似的Memoji,結果如下:

由于只能在有限的數據集中選擇,所以結果并不如我們期待的那樣好,可以看到分數都很低。

生成過程

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

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

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

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

結果

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

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

但是,奧巴馬耳朵的排名卻很靠譜,又大到小分數逐漸降低:

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

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

發(fā)色

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4730

    瀏覽量

    100360
  • 人臉識別
    +關注

    關注

    76

    文章

    4001

    瀏覽量

    81604

原文標題:用神經網絡根據照片創(chuàng)建專屬Memoji表情

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

收藏 人收藏

    評論

    相關推薦

    【PYNQ-Z2試用體驗】神經網絡基礎知識

    學習和認知科學領域,是一種模仿生物神經網絡(動物的中樞神經系統(tǒng),特別是大腦)的結構和功能的數學模型或計算模型,用于對函數進行估計或近似。神經網絡由大量的人工
    發(fā)表于 03-03 22:10

    一種基于經優(yōu)化算法優(yōu)化過的神經網絡設計FIR濾波器的方法介紹

    定程度上改善了傳統(tǒng)方法的局限性,但這些方法自身也存在著些不足。之后,曾喆昭等人提出了一種基于余弦基
    發(fā)表于 07-08 07:16

    人工神經網絡實現方法有哪些?

    人工神經網絡(Artificial Neural Network,ANN)是一種類似生物神經網絡的信息處理結構,它的提出是為了解決些非線性,非平穩(wěn),復雜的實際問題。那有哪些辦法能實現
    發(fā)表于 08-01 08:06

    如何構建神經網絡

    原文鏈接:http://tecdat.cn/?p=5725 神經網絡一種基于現有數據創(chuàng)建預測的計算系統(tǒng)。如何構建神經網絡神經網絡包括:輸入層:根據現有數據獲取輸入的層隱藏層:使用反
    發(fā)表于 07-12 08:02

    分享一種400×25×2的三層BP神經網絡

    本文首先簡單的選取了少量的樣本并進行樣本歸化,這樣就得到了可供訓練的訓練集和測試集。然后訓練了400×25×2的三層BP神經網絡,最后對最初步的模型進行了誤差分析并找到了一種效果顯著的提升
    發(fā)表于 07-12 06:49

    一種基于綜合幾何特征和概率神經網絡的HGU軸軌識別方法

    摘要故障診斷是保證水輪發(fā)電機組安全運行的重要環(huán)節(jié)。軸心軌跡辨識是HGU故障診斷的一種有效方法。提出了一種基于綜合幾何特征和概率神經網絡(CGC-PNN)的HGU軸軌識別
    發(fā)表于 09-15 08:18

    隱藏技術: 一種基于前沿神經網絡理論的新型人工智能處理器

    ,而且計算量較小。利用所提出的片上模型結構,即權重生成和“超級掩碼”擴展相結合,Hiddenite 芯片大大減少了外部存儲器訪問,提高了計算效率。深層神經網絡一種復雜的人工智能機器學習體系結構,需要
    發(fā)表于 03-17 19:15

    卷積神經網絡模型發(fā)展及應用

    十余年來快速發(fā)展的嶄新領域,越來越受到研究者的關注。卷積神經網絡(CNN)模型是深度學習模型中最重要的一種經典結構,其性能在近年來深度學習任務上逐步提高。由于可以自動學習樣本數據的特征表示,卷積
    發(fā)表于 08-02 10:39

    基于人工免疫網絡神經網絡集成方法

    提出基于人工免疫網絡神經網絡集成方法AINEN。在用Bagging生成神經網絡集成之后,將人工免疫網絡
    發(fā)表于 04-10 08:49 ?18次下載

    一種基于RBF神經網絡的傳感器故障診斷方法

    針對傳感器故障, 提出了一種基于RBF 神經網絡的集成故障診斷方法RBF 神經網絡建立傳感器故障模型, 對系統(tǒng)的狀態(tài)和故障參數進行在線估
    發(fā)表于 07-14 11:58 ?13次下載

    一種基于傅里葉基神經網絡的頻譜分析方法

    該文提出了一種遞推最小二乘法訓練傅里葉基神經網絡權值的頻譜分析方法。其主要思想是采用遞推最小二乘法訓練傅里葉基神經網絡權值,根據權值獲得信
    發(fā)表于 11-11 15:52 ?16次下載

    BP神經網絡的電路最優(yōu)測試集的生成設計

    BP神經網絡的電路最優(yōu)測試集的生成設計 1 引言   人工神經網絡是基于模仿生物大腦的結構和功能而構成的一種信息處理系統(tǒng)。國際著名 的神經網絡
    發(fā)表于 02-02 10:35 ?1262次閱讀
    BP<b class='flag-5'>神經網絡</b>的電路最優(yōu)測試集的<b class='flag-5'>生成</b>設計

    一種改進的深度神經網絡結構搜索方法

    為提升網絡結構的尋優(yōu)能力,提岀一種改進的深度神經網絡結構搜索方法。針對網絡結構間距難以度量的問題,結合
    發(fā)表于 03-16 14:05 ?3次下載
    <b class='flag-5'>一種</b>改進的深度<b class='flag-5'>神經網絡</b>結構搜索<b class='flag-5'>方法</b>

    cnn卷積神經網絡模型 卷積神經網絡預測模型 生成卷積神經網絡模型

    cnn卷積神經網絡模型 卷積神經網絡預測模型 生成卷積神經網絡模型? 卷積神經網絡(Convolutional Neural Network
    的頭像 發(fā)表于 08-21 17:11 ?1146次閱讀

    人工神經網絡模型是一種什么模型

    人工神經網絡(Artificial Neural Networks,簡稱ANNs)是一種受生物神經網絡啟發(fā)而產生的數學模型,用于模擬人腦處理信息的方式。它由大量的節(jié)點(或稱為神經元)相
    的頭像 發(fā)表于 07-04 16:57 ?619次閱讀