<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          借助TensorFlow.js,手把手教你把會(huì)動(dòng)的蒙娜麗莎帶回家!

          共 2636字,需瀏覽 6分鐘

           ·

          2020-10-21 09:26

          大數(shù)據(jù)文摘出品

          來(lái)源:tensorflowblog

          編譯:Fisher、coolboy

          ?

          據(jù)說(shuō),當(dāng)你在盧浮宮博物館踱步游覽的時(shí)候,你會(huì)感到油畫(huà)中的蒙娜麗莎視線隨你而動(dòng)。這就是《蒙娜麗莎》這幅畫(huà)的神奇之處。出于好玩,TensorFlow軟件工程師Emily Xie最近開(kāi)發(fā)了一個(gè)互動(dòng)數(shù)字肖像,只需要瀏覽器和攝像頭,你就能把會(huì)動(dòng)的蒙娜麗莎帶回家了!


          這個(gè)項(xiàng)目的核心利用了TensorFlow.js,深度學(xué)習(xí),還有一些圖像處理技術(shù)。大體想法如下:首先,要生成一系列蒙娜麗莎的頭像,這些頭像注視的方向由左到右。有了這個(gè)頭像集,我們就可以在其中連續(xù)選取圖像,從而根據(jù)觀看者的位置產(chǎn)生一幅實(shí)時(shí)畫(huà)面。

          ?

          在這個(gè)帖子里,作者詳細(xì)介紹了項(xiàng)目設(shè)計(jì)和實(shí)現(xiàn)的細(xì)節(jié)。

          ?

          用深度學(xué)習(xí)讓蒙娜麗莎動(dòng)起來(lái)


          圖片動(dòng)畫(huà)化技術(shù)可以讓一張靜態(tài)圖片參考一個(gè)“驅(qū)動(dòng)視頻”的運(yùn)動(dòng)模式而活動(dòng)起來(lái)。使用基于深度學(xué)習(xí)的方法,作者?得以生成一段非常逼真的動(dòng)畫(huà)——“蒙娜麗莎的注視”。


          具體來(lái)說(shuō),Emily?使用了Aliaksandr Siarohin等人在2019年發(fā)布的First Order Motion Model(FOMM)這一模型??偟膩?lái)說(shuō),這個(gè)方法由兩個(gè)模塊組成,分別負(fù)責(zé)運(yùn)動(dòng)抽取和圖像生成。運(yùn)動(dòng)抽取模塊會(huì)檢測(cè)“驅(qū)動(dòng)視頻”中的關(guān)鍵點(diǎn)和局部仿射變換。這些值在相鄰幀間的差將輸入神經(jīng)網(wǎng)絡(luò)以預(yù)測(cè)一個(gè)稠密運(yùn)動(dòng)場(chǎng)(dense motion field)以及一個(gè)閉合遮罩(mask),該遮罩指定了需要修飾或者需要做上下文推斷的圖像區(qū)域。負(fù)責(zé)圖像生成的神經(jīng)網(wǎng)絡(luò)會(huì)繼而檢測(cè)人臉特征點(diǎn),并根據(jù)運(yùn)動(dòng)抽取模塊的結(jié)果對(duì)源圖像進(jìn)行變形和著色,最后輸出處理后的圖像。

          ?

          Emily選擇FOMM是因?yàn)樗貏e易用。作為對(duì)比,圖片動(dòng)畫(huà)化領(lǐng)域的先驗(yàn)?zāi)P投际恰耙蕾囉趯?duì)象”的,要求獲取所要?jiǎng)赢?huà)化的對(duì)象的詳盡數(shù)據(jù)。相反,F(xiàn)OMM不依賴先驗(yàn)知識(shí)。更重要的是,F(xiàn)OMM的作者們發(fā)布了一個(gè)開(kāi)源的人臉動(dòng)畫(huà)化方案——自帶預(yù)訓(xùn)練權(quán)重,拿來(lái)就能用。這使得把FOMM模型應(yīng)用在蒙娜麗莎上變得相當(dāng)簡(jiǎn)單:只要把代碼倉(cāng)庫(kù)克隆到Colab notebook上,再拿自己做模特生成一小段眼部來(lái)回移動(dòng)的“驅(qū)動(dòng)視頻”提供給模型,同時(shí)提供一張蒙娜麗莎的頭部截圖就可以了。模型生成的視頻效果很好,Emily從中選取了33幀用于構(gòu)成最終的動(dòng)畫(huà)。


          FOMM生成的視頻和圖像動(dòng)畫(huà)預(yù)測(cè)示例


          使用一階運(yùn)動(dòng)模型生成的最終動(dòng)畫(huà)幀的子樣本


          圖像拼接


          盡管可以針對(duì)自己的項(xiàng)目重新訓(xùn)練模型,Emily還是決定就用Siarohin等作者給出的神經(jīng)網(wǎng)絡(luò)權(quán)重。這樣可以節(jié)省時(shí)間,也節(jié)省計(jì)算資源。不過(guò),這意味著輸出的圖像分辨率低于期望,而且只包含人物的頭部區(qū)域。Emily想要的最終視覺(jué)效果是蒙娜麗莎的整體,包括頭部、軀干和背景。因此,他打算把得到的頭部圖像簡(jiǎn)單地疊放在完整的肖像畫(huà)上。

          ?

          這又帶來(lái)了一系列挑戰(zhàn)。如果你仔細(xì)看上面的例圖,你會(huì)注意到頭部區(qū)域的分辨率比較低,而且有一些變形,看起來(lái)像是浮在背景圖之上。換句話說(shuō),這打補(bǔ)丁的痕跡也太明顯了!為了解決這個(gè)問(wèn)題,作者用Pyt?hon做了一些處理來(lái)把頭部區(qū)域和背景“拼接”起來(lái)。


          ?

          ?頭部框架覆蓋在基礎(chǔ)圖像上方的示例。為了更好地說(shuō)明問(wèn)題,此處顯示的版本來(lái)自項(xiàng)目的早期迭代,其中頭部框架中的分辨率進(jìn)一步降低。?


          首先,他調(diào)整了頭部圖像的分辨率,通過(guò)像素的模糊化,讓分辨率增加到跟背景圖一致。然后,通過(guò)頭部圖像和背景圖像的像素加權(quán)平均來(lái)做一張新圖,思路也很簡(jiǎn)單,頭部圖像的像素權(quán)重在它的中點(diǎn)位置取得最大,遠(yuǎn)離中點(diǎn)逐漸變小。

          ?

          權(quán)重分布由一個(gè)二維的S形函數(shù)決定,表達(dá)式為:


          ?

          ?

          這里j決定了S形函數(shù)的陡度,k是拐點(diǎn),m是坐標(biāo)中點(diǎn)值。函數(shù)畫(huà)出來(lái)如下:



          Emily把動(dòng)畫(huà)集中的33幀圖像都做了如上處理,結(jié)果每一張看起來(lái)都渾然一體:

          ?


          用BlazeFace跟蹤觀看者的頭部


          到此,剩下的任務(wù)就是決定如何通過(guò)攝像頭跟蹤用戶,以顯示相應(yīng)的畫(huà)面。


          自然,他用TensorFlow.js來(lái)處理這項(xiàng)任務(wù)。TensorFlow庫(kù)提供了一系列相當(dāng)健壯的模型用于檢測(cè)視頻中的人像。經(jīng)過(guò)調(diào)研,他選擇了BlazeFace。

          ?

          BlazeFace是一個(gè)基于深度學(xué)習(xí)的目標(biāo)識(shí)別模型,能夠檢測(cè)人臉和臉部特征點(diǎn)。該模型經(jīng)過(guò)專門訓(xùn)練,以適應(yīng)移動(dòng)攝像頭作為輸入源。這非常適合他的情況,因?yàn)樽髡哳A(yù)期大部分使用者用類似的方式使用他們的攝像頭——頭部入鏡,正面朝向攝像頭,距離較近——不管是用移動(dòng)設(shè)備還是筆記本電腦。


          不過(guò),他選擇BlazeFace的最主要考量是它出色的檢測(cè)速度。這個(gè)項(xiàng)目要成功,就得把整個(gè)動(dòng)畫(huà)實(shí)時(shí)跑起來(lái),這包括了人臉識(shí)別的時(shí)間開(kāi)銷。BlazeFace改編了single-shot detection (SSD)模型——一種基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法,能夠在一次網(wǎng)絡(luò)前向傳遞中同時(shí)定位邊框和發(fā)現(xiàn)目標(biāo)。BlazeFace的輕量級(jí)檢測(cè)器能夠達(dá)到每秒200幀的人臉識(shí)別速度。


          給定輸入圖像,BlazeFace可以捕獲的內(nèi)容的演示:人頭的邊界框以及面部標(biāo)志。


          選定模型之后,Emily又寫(xiě)了一些代碼用于把用戶的攝像頭數(shù)據(jù)對(duì)接到BlazeFace。程序每跑一次,模型會(huì)輸出一個(gè)包含人臉特征點(diǎn)的數(shù)組,以及特征點(diǎn)對(duì)應(yīng)的2維坐標(biāo)。用這些數(shù)據(jù)可以計(jì)算用戶兩眼的中點(diǎn)位置,這樣就近似得到了臉部中心的X坐標(biāo)。


          最后,Emily把結(jié)果離散映射到整數(shù)0到32,每一個(gè)數(shù)字對(duì)應(yīng)動(dòng)畫(huà)序列中的一幀(如果你還記得的話,動(dòng)畫(huà)集里有33幀)——0代表蒙娜麗莎的視線轉(zhuǎn)向最左,32則在最右。接下來(lái),只要在屏幕上顯示相應(yīng)的畫(huà)面就可以了。


          來(lái)試一下吧!


          相關(guān)報(bào)道:

          https://blog.tensorflow.org/2020/09/bringing-mona-lisa-effect-to-life-tensorflow-js.html

          ?



          實(shí)習(xí)/全職編輯記者招聘ing

          加入我們,親身體驗(yàn)一家專業(yè)科技媒體采寫(xiě)的每個(gè)細(xì)節(jié),在最有前景的行業(yè),和一群遍布全球最優(yōu)秀的人一起成長(zhǎng)。坐標(biāo)北京·清華東門,在大數(shù)據(jù)文摘主頁(yè)對(duì)話頁(yè)回復(fù)“招聘”了解詳情。簡(jiǎn)歷請(qǐng)直接發(fā)送至[email protected]



          志愿者介紹
          后臺(tái)回復(fù)志愿者”加入我們


          點(diǎn)「在看」的人都變好看了哦!
          瀏覽 97
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄片在线播放免费观看a | 国产女人黄片 | 成人A级黄色毛片 | 女人18片毛片60分钟视频 | 国产三级三级三级看三级囯产亚洲 |