每天資訊幾分鐘讓小孩的人物塗鴉「動起來」,Meta AI建立了一個奇妙的火柴人世界

菜單

幾分鐘讓小孩的人物塗鴉「動起來」,Meta AI建立了一個奇妙的火柴人世界

機器之心報道

編輯:杜偉、陳萍

Meta AI 讓兒童手繪「活」了起來。

你有沒有想過將一張兒童繪畫製作成動畫?就如下圖,兒童能夠繪製出獨特和富有創造力的人物和動物:長著雙腳的星星、腿超級長的鳥……

幾分鐘讓小孩的人物塗鴉「動起來」,Meta AI建立了一個奇妙的火柴人世界

父母和老師可以很容易地理解孩子繪畫想要表達什麼,但 AI 很難完成這項任務,因為兒童繪畫通常以抽象、奇特的方式構建,就以兒童繪畫中的「人」來說,繪畫中的「人」有許多不同的形式、顏色、大小和比例,在身體對稱性、形態和視角方面幾乎沒有相似之處。對 AI 來說,識別兒童繪畫還存在一定的困難。

目前,出現了許多 AI 工具和技術來處理逼真的繪圖,但兒童繪畫增加了一定程度的多樣性和不可預測性,這使得識別所描繪的內容變得更加複雜。

許多 AI 研究人員正在試圖克服這一挑戰,以便 AI 系統能夠更好地識別兒童創作的各種人物繪畫。

近日,Meta 宣佈首創了一種 AI 系統,該系統可以在沒有任何人工指導的情況下,高成功率的自動為兒童手繪人物和類人角色(即有兩條胳膊、兩條腿、一個頭等的角色)製作動畫,幾分鐘就可以實現從一張靜態圖到動畫的轉變。

例如,兒童繪製的小貓咪和小蜜蜂,上傳到 Meta AI,你就會看到繪畫變成會跳舞的角色,動作非常逼真。

幾分鐘讓小孩的人物塗鴉「動起來」,Meta AI建立了一個奇妙的火柴人世界

試玩地址:https://sketch。metademolab。com/

透過將繪畫上傳到 Meta 原型系統,使用者就可以體驗繪畫變成會跳躍的角色。此外,使用者還可以下載動畫與朋友家人分享。如果使用者願意,他們也可以提交這些繪畫以幫助改進 AI 模型。

Meta 透過四個步驟來完成從繪畫到動畫的轉變:目標檢測識別人形;使用角色 mask 從場景中提升人形;透過「rigging」為動畫做準備;使用 3D 動作捕捉製作 3D 人形動畫。

幾分鐘讓小孩的人物塗鴉「動起來」,Meta AI建立了一個奇妙的火柴人世界

目標檢測識別人形圖

第一步是將繪畫中的人物與背景以及繪畫中的其他型別的角色區分開來。使用現有的目標檢測方法在兒童繪畫上識別效果較好,但分割掩碼不夠準確,無法用於動畫。為了解決這個問題,Meta 改為使用從目標檢測器獲得的邊界框(bounding boxes),並應用一系列形態學操作和影象處理步驟來獲得掩碼。

Meta AI 採用基於卷積神經網路的目標檢測模型 Mask R-CNN 來提取兒童繪畫中的人物。雖然 Mask R-CNN 是在最大的分割資料集上進行了預訓練,但該資料集是由真實世界物體照片組成,而不是繪畫。為了讓模型能夠處理繪圖,需要對模型進行微調,Meta AI 使用 ResNet-50+FPN 進行了微調,以預測單個類別「人形圖」。 Meta AI 在大約 1,000 幅繪畫上微調了模型。

微調後,模型很好地檢測到了測試資料集中的人形圖。但是也有失敗的案例,如下圖可分為四類:檢測到的人形圖沒有包含整個影象(例如圖中尾巴沒有包含);沒有把人形圖和背景分開;沒有把幾個湊在一起的人形圖分開;錯誤地識別非人類人物(例如樹)。

幾分鐘讓小孩的人物塗鴉「動起來」,Meta AI建立了一個奇妙的火柴人世界

使用角色 mask 從場景中提升人形

從畫作中識別和提取人物後,生成動畫的下一步是將其與場景的其他部分和背景分離,該過程被稱為 masking。mask 必須準確對映人物的輪廓,因為它將被用於建立網格,然後變形以生成動畫。一切妥當後,mask 將包含角色的所有元件,而消除任何背景內容。

儘管 Mask R-CNN 可以輸出 mask,但 Meta AI 發現它們並不適合動畫。當身體部位的外觀變化很大時,預測的 mask 通常無法捕捉到整個人物。如下圖下行圖例所示,一個大的黃色三角形代表身體,一個鉛筆筆畫代表手臂,使用 Mask R-CNN 預測 mask 時,通常會漏掉連線雙手的鉛筆筆畫部分。

基於此,Meta AI 開發了一種基於經典影象處理的方法,該方法對人物變化具有更強的穩健性。基於這種方法,Meta AI 使用預測到的人形邊界框來裁剪影象。然後,使用自適應閾值和形態學 closing/dialating 操作,從邊界框邊緣填充,並假設 mask 是未被填充的最大多邊形。

幾分鐘讓小孩的人物塗鴉「動起來」,Meta AI建立了一個奇妙的火柴人世界

Mask R-CNN 與基於經典影象處理方法的效果比較。

然而,這種方法雖然對於提取適合動畫的準確 mask 來說簡單有效,但當背景雜亂、人物靠得太近或者紙張頁面上有褶皺撕裂或陰影時,也有可能會失敗。

透過「rigging」為動畫做準備

兒童會畫出千奇百怪的身體形狀,遠遠超出了具有完整頭部、手臂、腿和軀幹的傳統人形概念。一些兒童畫出來的火柴人沒有軀幹,只有手臂和腿直接與頭部相連。另一些兒童畫下的人形更詭異,腿從頭部延伸出來,手臂從大腿眼神出來。

因此,Meta AI 需要找到一種能夠出來身形變化的 rigging 方法。

幾分鐘讓小孩的人物塗鴉「動起來」,Meta AI建立了一個奇妙的火柴人世界

他們選擇使用了人體姿態檢測模型 AlphaPose,用來識別人畫中作為臀部、肩膀、肘部、膝蓋、手腕和腳踝的關鍵點。該模型是在真人影象上訓練的,因此在將它調整以檢測兒童畫作中人形姿勢之前,Meta AI 必須重新訓練以處理兒童畫作中存在的變化(variation)型別。

具體地,Meta AI 透過內部收集和註釋兒童人形畫面的小資料集實現了上述目標。然後,使用這些初始資料集上訓練的姿態檢測器建立了一個內部工具,使得父母可以上傳並對他們孩子的畫作進行動畫處理。隨著更多資料的加入,Meta AI 迭代地對模型進行再訓練,直到達到較高的準確度。

使用 3D 動作捕捉製作 3D 人形動畫

有了蒙版和聯合預測,就有了製作動畫所需要的一切。Meta AI 首先使用提取的蒙版生成網格,並使用原始畫作進行紋理化處理。利用預測到的關節位置,他們為角色建立骨骼。之後,透過旋轉骨骼並使用新的關節位置使網格變形,將角色移植到各種姿態中。透過將角色移植到一系列連續的姿態中,然後就可以建立動畫了。

兒童作畫時很常見的一種情況是從他們最容易辨認的角度來畫身體部位,比如傾向於從側面畫腿和腳,從正面畫頭部和軀幹。Meta AI 在動作重定位步驟中利用到了這一現象。對於下半身和生半身,他們會自動確定是從正面還是側面來對動作進行識別。

具體地,他們將動作對映到單個 2D 平面並使用它來驅動角色,並使用 Mechanical Turk 執行的感知使用者研究來對這種動作重定位的結果進行驗證。分段檢測流程如下圖所示:

幾分鐘讓小孩的人物塗鴉「動起來」,Meta AI建立了一個奇妙的火柴人世界

Meta AI 表示,將扭曲視角考慮在內是有幫助的,因為很多型別的動作並不會完成落在單個投影平面上。比如跳繩時,手臂和手腕主要在額平面內運動,彎曲的腿則傾向於在矢狀平面內運動。因此,Meta AI 並沒有為動作捕捉姿態確定單個動作平臺,而是分別確定上半身和下半身的投影平面。

與此同時,有了 AR 眼睛,畫作中的故事可以在現實世界中栩栩如生,畫中的角色更可以與畫出它的兒童一起跳舞或說話。

2021年度騰訊light論壇即將於12月23日在廈門舉辦。屆時活動將邀請技術大咖,公益代表,學術大拿齊聚一堂,共同尋找科技持續向善的方向。