趙檬檬
(北京工業(yè)大學(xué) 信息學(xué)部,北京 100124)
在網(wǎng)絡(luò)高速發(fā)展的今天,人們的通訊方式逐漸變成了短信、微信等,為了使交流更具趣味性,各種表情包、搞怪動(dòng)畫層出不窮.出于相同目的,中科院張松懋研究員創(chuàng)造性地提出了將3D 動(dòng)畫自動(dòng)生成技術(shù)應(yīng)用到手機(jī)短信上的想法,通過一段生動(dòng)的動(dòng)畫表達(dá)出短信內(nèi)容.4G、5G 通信技術(shù)的不斷發(fā)展為該系統(tǒng)的實(shí)現(xiàn)提供了保障.
手機(jī)3D 動(dòng)畫自動(dòng)生成系統(tǒng)主要依靠全過程計(jì)算機(jī)輔助動(dòng)畫自動(dòng)生成技術(shù)[1],旨在通過對(duì)中文短信文本的處理生成一段能夠表達(dá)短信內(nèi)容的動(dòng)畫.系統(tǒng)以中文短信文本作為輸入,利用哈爾濱工業(yè)大學(xué)自然語言處理系統(tǒng)對(duì)文本進(jìn)行分詞處理,進(jìn)而進(jìn)行命名實(shí)體識(shí)別、否定識(shí)別等操作,提取出短信中的主題、模板等信息,同時(shí)利用機(jī)器學(xué)習(xí)方法進(jìn)行短信話題檢測(cè)以及情感分析,并將其作為確定短信主題的參考值.將最終確定的主題、模板信息作為定性規(guī)劃部分的輸入,進(jìn)行下一步處理.定性部分首先要完成情節(jié)規(guī)劃,這也是整個(gè)動(dòng)畫開展的關(guān)鍵.情節(jié)規(guī)劃需要根據(jù)主題、模板選擇合適的場(chǎng)景、模型,并通過構(gòu)建事件來豐富動(dòng)畫情節(jié).其它子系統(tǒng)要分別實(shí)現(xiàn)布局規(guī)劃、動(dòng)作規(guī)劃、表情規(guī)劃等功能.定量計(jì)算是動(dòng)畫實(shí)現(xiàn)的真正部位,按照定性輸出結(jié)果,通過三維動(dòng)畫軟件Maya 完成動(dòng)畫場(chǎng)景的搭建,并最終渲染生成動(dòng)畫.
目前,系統(tǒng)已經(jīng)可以根據(jù)不同內(nèi)容的短信生成動(dòng)畫,但是人物面部表情呆板,僅通過動(dòng)作、環(huán)境烘托等來突出短信內(nèi)容略顯單薄,表達(dá)能力有限.相比于一個(gè)面無表情的人物在手舞足蹈,顯然一個(gè)大笑的人物在手舞足蹈更能表現(xiàn)出短信內(nèi)容.另外對(duì)于多個(gè)人物而言,即便表達(dá)的是同一個(gè)含義,表情也應(yīng)該是不盡相同的.因此,在手機(jī)動(dòng)畫自動(dòng)生成系統(tǒng)中研究人物表情規(guī)劃是十分有必要的.
整個(gè)動(dòng)畫自動(dòng)生成系統(tǒng)主要包括信息抽取、定性規(guī)劃、定量計(jì)算3 個(gè)部分,其中各子系統(tǒng)相對(duì)獨(dú)立,分別完成各自定性、定量部分的設(shè)計(jì)與實(shí)現(xiàn).情節(jié)規(guī)劃是定性規(guī)劃部分中最先完成的,主要利用信息抽取得到的結(jié)果確定出動(dòng)畫選擇哪個(gè)場(chǎng)景、添加哪些模型等,并通過規(guī)劃人物多動(dòng)作構(gòu)建動(dòng)畫情節(jié).在動(dòng)作規(guī)劃子系統(tǒng)中,需要對(duì)單動(dòng)作、交互動(dòng)作進(jìn)行規(guī)劃.表情規(guī)劃子系統(tǒng)完成對(duì)人物表情類型、個(gè)數(shù)等的規(guī)劃,其中由于動(dòng)作與表情在一定程度上需要保持一致,故表情規(guī)劃需要參考情節(jié)規(guī)劃和動(dòng)作規(guī)劃后的結(jié)果.所有子系統(tǒng)定性規(guī)劃結(jié)束后進(jìn)而完成相應(yīng)的定量計(jì)算:動(dòng)作規(guī)劃子系統(tǒng)要實(shí)現(xiàn)所有規(guī)劃的動(dòng)作類型的添加并計(jì)算人物模型運(yùn)動(dòng)軌跡等.表情規(guī)劃子系統(tǒng)確定出表情操控參數(shù)以及不同表情間過渡的方式等,實(shí)現(xiàn)表情的添加.各子系統(tǒng)定量計(jì)算完成后即得到最終的動(dòng)畫.
表情規(guī)劃整體流程如圖1所示.主要以信息抽取得到的主題和模板以及情節(jié)規(guī)劃和交互動(dòng)作規(guī)劃得到的動(dòng)作類型為依據(jù),通過知識(shí)推理得到相應(yīng)的表情組合.將包含表情添加對(duì)象、類型、實(shí)現(xiàn)方式等信息的表情定性描述語句轉(zhuǎn)化為Maya 中控制模型面部變化的表情控制器的具體參數(shù),并通過設(shè)置關(guān)鍵幀的方式生成表情動(dòng)畫.
圖1 表情規(guī)劃整體流程圖
表情定性規(guī)劃部分的主要任務(wù)是構(gòu)建表情本體庫并通過建立對(duì)象屬性、構(gòu)建公理實(shí)現(xiàn)從主題、模板等多種有效信息中推理得到最適合的表情種類.定量計(jì)算則是將對(duì)表情的客觀描述在人物模型上加以實(shí)現(xiàn),包括選擇適當(dāng)?shù)年P(guān)鍵幀位置及解決相鄰表情切換時(shí)的平滑過渡等問題.
表情定性規(guī)劃是表情實(shí)現(xiàn)的關(guān)鍵,它決定了適合表達(dá)短信的表情類型、個(gè)數(shù)、展示時(shí)間等,使表情動(dòng)畫有理可依.定性規(guī)劃主要包括構(gòu)建知識(shí)庫以及生成表情定性描述語句兩部分.
知識(shí)庫是以描述型方法來存貯和管理知識(shí)的機(jī)構(gòu),由知識(shí)和知識(shí)處理機(jī)構(gòu)組成[2].與數(shù)據(jù)庫系統(tǒng)不同,知識(shí)庫系統(tǒng)根據(jù)輸入的數(shù)據(jù)信息進(jìn)行推理后給出結(jié)果,而不單是為用戶提供可檢索的信息.目前系統(tǒng)已有主題庫、模板庫、事件庫、動(dòng)作庫等.主題庫和模板庫是系統(tǒng)定性部分的核心,可按是否含情感分為情緒主題(模板)、非情緒主題(模板).事件庫依托于動(dòng)作庫,按照一定規(guī)則規(guī)劃出動(dòng)作序列,而動(dòng)作庫也同樣包含情緒動(dòng)作,所以事件規(guī)劃和動(dòng)作規(guī)劃結(jié)果都會(huì)對(duì)表情規(guī)劃產(chǎn)生影響.
表情本體庫主要由運(yùn)動(dòng)單元類和表情類兩部分構(gòu)成.其中運(yùn)動(dòng)單元類建立的基礎(chǔ)是面部基本運(yùn)動(dòng)單元(Action Unit,AU).Paul Ekman 在分析不同表情與不同面部肌肉動(dòng)作的對(duì)應(yīng)關(guān)系后,提出了面部動(dòng)作編碼系統(tǒng)(Facial Action Coding System,FACS)[3].它以一種自下而上的方式將臉部分割成一系列基本運(yùn)動(dòng)單元,通過44 個(gè)獨(dú)立運(yùn)動(dòng)的表情單元來描述面部動(dòng)作,絕大多數(shù)的表情都可以由這些單元組合而成.根據(jù)動(dòng)畫人物表情的特點(diǎn),結(jié)合FACS 中定義的AU 類型,構(gòu)建運(yùn)動(dòng)單元類.該類包括眉、眼、嘴三個(gè)子類,每個(gè)子類分別包含相應(yīng)部位的常見運(yùn)動(dòng)方式,如圖2中mouth 子類包括嘴部向下(m_d o w n w a r d)、嘴巴張大(m_enlarge)等嘴部運(yùn)動(dòng)方式,另外通過建立實(shí)例描述不同運(yùn)動(dòng)方式的具體實(shí)現(xiàn)形式,如圖2中m_downward 子類包含下嘴唇完全下拉(m_alldown)、嘴角下拉(m_down)等實(shí)例.
圖2 運(yùn)動(dòng)單元類
表情類以Plutchik 提出的情感輪模型[4]為依據(jù)建立.Plutchik 將情感劃分為八個(gè)維度,包括信任、期待、喜悅、生氣、惡心、害怕、傷心、驚訝,在每個(gè)情感維度又按不同的情感強(qiáng)度劃分為3 組,以這24 個(gè)情感特征來描述情緒.利用情感輪模型分類結(jié)構(gòu),結(jié)合目前系統(tǒng)能夠處理的情緒類型,構(gòu)建出表情類(見圖3).通過分析表情種類建立不同的表情實(shí)例,如圖3中狂喜(ecstasy)含ecstacy_120、ecstacy_121 等5 個(gè)表情實(shí)例,表示該表情有5 種不同的表達(dá)方式.
圖3 表情類及其對(duì)象屬性
其中表情與AU 組合的對(duì)應(yīng)關(guān)系、主題與表情的對(duì)應(yīng)關(guān)系等是通過創(chuàng)建對(duì)象屬性并刻畫相應(yīng)公理建立起來的.對(duì)象屬性用以描述不同類之間的關(guān)系以及同一類下不同子類之間的關(guān)系,其中類包含的實(shí)例均滿足該關(guān)系.本文創(chuàng)建了hasAU、topicForFacialExpress、similarnext 及templateForFacialExpress 四個(gè)對(duì)象屬性,其中hasAU 屬性將運(yùn)動(dòng)單元類和表情類聯(lián)系在一起,描述不同表情對(duì)應(yīng)的AU 組合情況.similarnext 屬性在同一表情類下不同情感強(qiáng)度的子類之間建立關(guān)聯(lián),用以描述諸如微笑-大笑的漸進(jìn)式表情.另外通過topicForFacialExpress、templateForFacialExpress 屬性描述表情類與主題類/模板類的關(guān)系,表明該主題類/模板類對(duì)應(yīng)的表情類型.通過分析各類之間的相互關(guān)系建立公理,圖4展示了anger 子類滿足的公理,表示生氣的表情適合于爭(zhēng)執(zhí)模板(CollideTemplate)以及生氣主題(AngryTopic),存在漸進(jìn)表情-煩惱(annoy),能夠通過眉毛向下(b_down)、眼角低垂(e_downward)、嘴巴撅起(m_pout)或嘴部向下(m_downward)的方式展示.
本系統(tǒng)中,確定表情類型的依據(jù)除主題、模板外,還有動(dòng)作類型及情感分類結(jié)果等.其中情感分類結(jié)果只有喜、怒、哀、懼四類,種類較少.而基于事件的情節(jié)規(guī)劃是以動(dòng)作庫為基礎(chǔ),通過已有動(dòng)作劃分不同的事件類,然后構(gòu)建情節(jié),其結(jié)果以人物多動(dòng)作來體現(xiàn).故通過短信主題、模板以及動(dòng)作類型這三個(gè)參數(shù)即可確定表情.表情定性規(guī)劃流程如圖5所示.
圖4 anger 子類相應(yīng)公理
圖5 表情定性規(guī)劃流程圖
本模塊以信息抽取和情節(jié)規(guī)劃的結(jié)果作為輸入.信息抽取結(jié)果包括短信分詞結(jié)果、短信主題以及短信包含的模板信息,其中主題是能夠表達(dá)短信核心思想的關(guān)鍵詞,目前本系統(tǒng)中存在包括節(jié)日、運(yùn)動(dòng)、情緒等93 類不同的主題.模板為短信中包含的有效信息,包括地點(diǎn)、動(dòng)作、情緒、生活用品等多個(gè)類型.情節(jié)規(guī)劃結(jié)果主要包括選定場(chǎng)景、主題、動(dòng)畫總長(zhǎng)度、添加模型的信息以及添加動(dòng)作的類型等內(nèi)容.表情規(guī)劃以信息抽取結(jié)果得到的短信主題、模板信息以及情節(jié)規(guī)劃、動(dòng)作規(guī)劃得到的動(dòng)作類型作為表情判斷的依據(jù).其中以情緒主題為主,情緒模板次之,動(dòng)作類型比重最低.在確定出表情類型后,根據(jù)相應(yīng)的公理選擇適當(dāng)?shù)腁U 組合方式作為表情定性規(guī)劃的結(jié)果.
我們以短信“一起去吃飯吧”為例,詳細(xì)介紹表情定性規(guī)劃的整體流程.根據(jù)信息抽取結(jié)果(見圖6)中的topic 節(jié)點(diǎn)(包含主題信息)及root 節(jié)點(diǎn)(包含模板信息)可知,該短信以吃飯為主題,并提取出一個(gè)“走:去”的動(dòng)作模板,均不包含情緒,進(jìn)一步判斷動(dòng)作類型.情節(jié)規(guī)劃結(jié)果(見圖7)中maName 節(jié)點(diǎn)包含選定場(chǎng)景、主題、音樂及動(dòng)畫總長(zhǎng)度的信息,rule 節(jié)點(diǎn)為規(guī)劃規(guī)則,包括添加模型規(guī)則(addToMa)及添加動(dòng)作規(guī)則(addActionToMa),情節(jié)規(guī)劃選擇添加了一個(gè)人物模型M_girl 和一個(gè)物品模型M_teapot,并為該人物模型添加了兩個(gè)動(dòng)作ElatedWalk142_06 和eating80_24,構(gòu)建出“開心地走+吃飯”的情節(jié).由于該動(dòng)作包含情緒,故以動(dòng)作為依據(jù)進(jìn)行表情規(guī)劃.在知識(shí)庫中動(dòng)作庫與主題庫存在對(duì)應(yīng)關(guān)系,根據(jù)動(dòng)作可以找到相應(yīng)的的主題,根據(jù)已構(gòu)建好的公理可以通過主題找到相應(yīng)的表情實(shí)例,進(jìn)而找到每個(gè)表情實(shí)例對(duì)應(yīng)的AU 實(shí)例,得到最終規(guī)劃結(jié)果(見圖8).
圖6 信息抽取結(jié)果
圖7 情節(jié)規(guī)劃結(jié)果
圖8 表情規(guī)劃結(jié)果
表情定性結(jié)果各參數(shù)的描述如表1所示.
表1 表情定性規(guī)劃參數(shù)描述
其中usedModelInMa 取值為情節(jié)規(guī)劃確定出的需添加的人物模型,usedModelID 取值為該人物模型對(duì)應(yīng)的ID.source 參數(shù)表示得出表情規(guī)則的直接決定因素,如上述例子中source 取值為ac_topic,表示該表情規(guī)則以動(dòng)作類型為依據(jù)推出.除此之外還可取值為主題或模板.expression 參數(shù)取值范圍即為表情類中各子類的值,每個(gè)表情實(shí)例對(duì)應(yīng)的AU 組合用controller 表示,每一個(gè)controller 參數(shù)均包含眉、眼、嘴三部分的運(yùn)動(dòng)方式.對(duì)同一人物模型的多條表情添加規(guī)則表示當(dāng)前模型需實(shí)現(xiàn)多表情連續(xù)動(dòng)畫.
表情類中喜怒哀驚等子類是最常見的表情類型,相應(yīng)的表情方式也多樣,而諸如期待、信任等子類對(duì)應(yīng)的表情特點(diǎn)不突出,種類也就相對(duì)較少.為實(shí)現(xiàn)表情動(dòng)畫的多樣性,定性規(guī)劃確定出表情后,若該情緒子類對(duì)應(yīng)實(shí)例較多,則每次隨機(jī)選取若干實(shí)例進(jìn)行下一步規(guī)劃,若該情緒子類對(duì)應(yīng)實(shí)例較少,則將該子類與相近情緒子類的實(shí)例構(gòu)成漸進(jìn)式表情集合,從該集合中選擇若干實(shí)例進(jìn)行下一步規(guī)劃.圖9為上述短信的動(dòng)畫片段.
圖9 動(dòng)畫片段
表情定量計(jì)算是表情動(dòng)畫實(shí)現(xiàn)的部分.定性輸出是對(duì)表情的客觀描述,真正讓模型表情動(dòng)起來還需在Maya 中進(jìn)行相應(yīng)操作.Maya 中表情動(dòng)畫主要分為面部表情制作和關(guān)鍵幀動(dòng)畫制作兩部分.
Maya 中制作表情主要通過三種方式實(shí)現(xiàn):表情裝配、Maya 內(nèi)置語言語句(Maya Embedded Language,MEL)、表情捕捉[5].表情裝配主要通過建立骨骼系統(tǒng)控制頭部、下頜和口部的運(yùn)動(dòng)關(guān)系,依靠變形工具和融合變形方法調(diào)節(jié)五官變化,并利用非線性動(dòng)畫編輯器實(shí)現(xiàn)各表情之間的融合效果等方式在面部建立表情控制系統(tǒng).MEL 語言動(dòng)畫是通過Maya 內(nèi)置語言編寫動(dòng)作程序從而控制角色動(dòng)作生成,主要運(yùn)用于集群及動(dòng)力學(xué)動(dòng)畫制作中.表情捕捉則是通過動(dòng)態(tài)采集真人表情數(shù)據(jù)并映射到三維角色中從而生成極具真實(shí)感的表情動(dòng)畫.
本文主要利用表情裝配的方法制作表情.其中骨骼方向約束及建立父子關(guān)系的裝配手段主要用于受骨骼控制的部位,動(dòng)畫制作中常用于控制眼球、牙齒的運(yùn)動(dòng).簇及融合變形方法則主要用于對(duì)蒙皮的修改.
首先建立頭部骨骼、下頜骨骼及其與面部、眼睛、牙齒等蒙皮之間的關(guān)系,使得骨骼可以正確控制整個(gè)頭部各部位的運(yùn)動(dòng).其中下頜控制主要通過建立下頜骨骼并與頭部骨骼建立方向約束實(shí)現(xiàn),牙齒實(shí)質(zhì)是蒙皮,將其與下頜骨骼建立父子約束并調(diào)節(jié)權(quán)重即可通過骨骼控制牙齒運(yùn)動(dòng)(見圖10).進(jìn)而通過變形工具和融合變形方法調(diào)節(jié)五官變化,分別參照FACS 中定義的眉、眼、嘴三部分的常見運(yùn)動(dòng)方式做出各自的融合形狀,此時(shí)融合圖形窗口中每個(gè)參數(shù)對(duì)應(yīng)一種融合形狀,如圖11所示.
圖10 頭部骨骼系統(tǒng)
圖11 融合圖形窗口部分參數(shù)
由于融合圖形窗口內(nèi)的參數(shù)較多且互相獨(dú)立,導(dǎo)致創(chuàng)建表情過程繁瑣,故還需建立面部控制器來驅(qū)動(dòng)融合形狀.面部控制器實(shí)質(zhì)上是與頭部骨骼綁定的一組曲線,通過驅(qū)動(dòng)關(guān)鍵幀方法建立各曲線的屬性值如Y 軸位移(translateY 值)與融合圖形窗口中各參數(shù)之間的關(guān)系,實(shí)現(xiàn)控制器對(duì)融合形狀的直接控制.利用面部控制器能夠直觀地對(duì)面部進(jìn)行操控,極大地簡(jiǎn)化了表情制作流程[6].圖12展示了面部控制器與生氣表情的對(duì)應(yīng)關(guān)系,圖中加粗的部分為相應(yīng)調(diào)節(jié)的局部控制器(若未加說明,下文中提到的控制器均表示局部控制器).
為精細(xì)控制面部表情動(dòng)作,單一功能型控制器是必不可少的.單一功能型控制器是指該控制器控制同一部位的融和形狀,如圖12中內(nèi)側(cè)眉毛控制器可以控制內(nèi)側(cè)眉毛抬升、低垂.單一功能型控制器越多,角色表情設(shè)定就越自由,但其數(shù)量過多會(huì)降低動(dòng)畫制作效率.因此還需復(fù)合功能型控制器,該控制器可以同時(shí)控制多個(gè)部位的融和形狀,把應(yīng)用頻率較高的表情動(dòng)作設(shè)置為復(fù)合功能型控制器可以提高工作效率[7].部分表情控制器設(shè)計(jì)見表2.
圖12 控制器與表情對(duì)應(yīng)關(guān)系
表2 部分表情控制器設(shè)計(jì)
利用非線性動(dòng)畫編輯器可以實(shí)現(xiàn)多個(gè)表情之間的融合效果也可以實(shí)現(xiàn)不同表情之間的平滑過渡,但較強(qiáng)的依賴于手動(dòng)調(diào)節(jié).為此本文主要以關(guān)鍵幀動(dòng)畫為基礎(chǔ),針對(duì)相鄰表情過渡時(shí)可能出現(xiàn)的各種情況作出處理,自動(dòng)化生成表情動(dòng)畫.
關(guān)鍵幀動(dòng)畫是通過給出若干時(shí)間點(diǎn)(關(guān)鍵幀)處的狀態(tài)并由電腦完成中間狀態(tài)的變化和銜接的一種動(dòng)畫制作方法[8].表情動(dòng)畫中關(guān)鍵幀處的狀態(tài)即為不同的表情,而表情受面部控制器控制,故主要通過設(shè)置關(guān)鍵幀處的控制器參數(shù)(下文簡(jiǎn)稱為設(shè)置關(guān)鍵幀)完成表情動(dòng)畫制作.本文根據(jù)動(dòng)畫總時(shí)長(zhǎng)(T)和表情個(gè)數(shù)(n)初步確定每個(gè)表情的關(guān)鍵幀位置為Tk/n(0<k<=n).由于各表情之間相互獨(dú)立,除相鄰表情有相同部位運(yùn)動(dòng)方式一致的情況外,前一表情的面部各部位需在下一表情開始后回歸初始位置,但各部位運(yùn)動(dòng)由面部控制器控制,某些控制器可控制兩種運(yùn)動(dòng)方式,若這兩種運(yùn)動(dòng)方式相鄰,會(huì)導(dǎo)致控制器參數(shù)調(diào)節(jié)矛盾,表情規(guī)劃異常.針對(duì)相鄰控制器的不同情況需要采取不同的策略.
若相鄰兩個(gè)運(yùn)動(dòng)方式分別對(duì)應(yīng)不同控制器,則在時(shí)間軸Tk/n(0<k<=n)位置處置第一個(gè)控制器參數(shù)為最大值、T(k+1)/2n位置處將該值置零設(shè)置關(guān)鍵幀即可.若相鄰兩個(gè)運(yùn)動(dòng)方式完全一致,控制器不做歸零處理.若相鄰兩個(gè)運(yùn)動(dòng)方式不同但對(duì)應(yīng)同一控制器,為解決切換過程中的歸零問題,選擇在一個(gè)較小時(shí)間范圍內(nèi)對(duì)參數(shù)值取反設(shè)置關(guān)鍵幀.
通過調(diào)節(jié)控制器參數(shù)大小可以得到不同幅度的表情,但效果不明顯.實(shí)驗(yàn)發(fā)現(xiàn)通過同時(shí)調(diào)節(jié)使眼睛/嘴巴張大的控制器(統(tǒng)稱為open 控制器)可以得到情緒強(qiáng)度不同的表情,如嘴角抬升的動(dòng)作疊加嘴巴張大的動(dòng)作可以得到咧嘴笑的表情效果等.該混合控制器以mix 為前綴.其中open 控制器參數(shù)以0.5 為宜.由于此類控制器同時(shí)操縱open 控制器,在與單獨(dú)的open 控制器相鄰時(shí),同樣會(huì)遇到控制器參數(shù)設(shè)置矛盾的問題.對(duì)于open 控制器在前,混合控制器在后的情況,可在時(shí)間軸T(k+1)/2n位置處將open 控制器參數(shù)調(diào)至0.5 并設(shè)置關(guān)鍵幀.對(duì)于open 控制器在后,混合控制器在前的情況,由于不涉及控制器參數(shù)歸零的問題,故只需在T(k+1)/2n將參數(shù)調(diào)至最大即可.以眼部運(yùn)動(dòng)方式e_l_up-e_l_down-e_l_down-e_open-mix_e_up-e_opene_down 這組序列為例對(duì)控制器沖突問題的解決方法進(jìn)行說明(見圖13).
圖13 控制器沖突解決示意圖
假定動(dòng)畫總長(zhǎng)為210 幀.眼部表情個(gè)數(shù)為7 個(gè),故每個(gè)表情展示時(shí)長(zhǎng)為30 幀.基本處理方式為30 幀內(nèi)控制器參數(shù)達(dá)到最大(小),在下一表情開始后該表情參數(shù)逐漸歸零.
對(duì)于e_l_up-e_l_down-e_l_down,前兩個(gè)關(guān)系為同一控制器不同參數(shù),為解決切換過程中的歸零問題,選擇在40 幀處將此時(shí)的參數(shù)值取反并將該值設(shè)置為41 幀處控制器的參數(shù)值.而后兩個(gè)是完全相同的控制器,則該時(shí)間處無需設(shè)置關(guān)鍵幀.對(duì)于e_open- mix_e_up-e_open,關(guān)鍵在于open 控制器的設(shè)置,據(jù)上述分析,open 控制器整體變化為從最大值減少到0.5 最后升至最大值.具體見上圖藍(lán)色部分.對(duì)于e_opene_down,即為兩個(gè)完全不同控制器相鄰的情況,只需在后一控制器調(diào)節(jié)過程中將前一控制器歸零即可.
為了驗(yàn)證表情規(guī)劃的結(jié)果是否符合預(yù)期,現(xiàn)分別編輯3 條以生氣、害怕、傷心、喜悅、驚喜等八種情感為主題的短信以及不含情感因素的短信,每條短信測(cè)試10 遍,最后統(tǒng)計(jì)這270 條短信中不同表情規(guī)劃的結(jié)果(見圖14).其中有13 條未成功輸出規(guī)劃結(jié)果的短信,主要是人為啟動(dòng)程序不當(dāng)造成.由于情節(jié)規(guī)劃多樣性的需求,并不是所有短信都會(huì)在定性規(guī)劃過程中添加人物模型,故而導(dǎo)致59 條短信因?yàn)闆]有表情規(guī)劃對(duì)象而無法進(jìn)行規(guī)劃.另外還存在15 條由于沒有明顯的情緒主題、模板、動(dòng)作數(shù)據(jù)導(dǎo)致表情規(guī)劃失敗的短信.
圖14 表情規(guī)劃多樣性測(cè)試結(jié)果
從圖中可以看出,喜、怒、哀、驚四種最常見表情的多樣性結(jié)果較好,基本達(dá)到92.00%.贊成、期待、憎惡等表情以及非情緒表情的多樣性結(jié)果稍差,在80.72%左右.這是由于這些情緒之前粗分于上述四種情緒中,所以系統(tǒng)在單獨(dú)處理這些情緒時(shí)會(huì)有很大概率以不添加人物模型的簡(jiǎn)單方式處理,導(dǎo)致無法進(jìn)行表情規(guī)劃.另外,這些情緒對(duì)應(yīng)的表情數(shù)目也沒有以上四種情緒對(duì)應(yīng)的表情多,故而會(huì)對(duì)表情的多樣性展示造成一定局限性.
通過對(duì)以上信息的分析可知,本文提出的方法對(duì)大部分情緒可以做出較好的規(guī)劃,但仍存在一些無法規(guī)劃表情的情況,包括短信不含情感、情節(jié)規(guī)劃沒有添加人物模型等.這也使我們充分認(rèn)識(shí)到目前的表情庫并不完備,與其他各庫之間的關(guān)系亟待進(jìn)一步挖掘.我們將在以后的工作中繼續(xù)做出改進(jìn).
圖15是根據(jù)短信“一群人在開心地玩耍”對(duì)不同人物模型做出的不同表情規(guī)劃的展示.
在人物表情動(dòng)畫研究中的常用方法有:關(guān)鍵幀插值方法、參數(shù)化方法、基于肌肉模型的方法和行為驅(qū)動(dòng)的動(dòng)畫方法.其中關(guān)鍵幀插值方法[9,10]在早期動(dòng)畫制作中應(yīng)用較普遍,主要通過在關(guān)鍵幀處插入面部數(shù)據(jù),進(jìn)而采用插值算法在相鄰表情間插入若干經(jīng)過修改的面部網(wǎng)格點(diǎn)數(shù)據(jù)從而生成動(dòng)畫.關(guān)鍵幀插值方法能夠快速產(chǎn)生基本人臉動(dòng)畫,但大量依賴于樣本且產(chǎn)生動(dòng)畫種類有限,有一定的局限性.Parke[11]最早提出用表情參數(shù)和形狀參數(shù)來描述表情變化,通過調(diào)整這些參數(shù)獲得不同的人臉表情,在之后的30 多年不斷有研究人員加入到該方法的研究中,其中最成功的是1998年提出的MPEG-4 標(biāo)準(zhǔn)[12].MPEG-4 表中定義的臉定義參數(shù)(Face Definition Parameters,FDPs)和人臉動(dòng)畫參數(shù)(Face Animation Parameters,FAPs)分別用于代表人臉幾何特征和人臉基本運(yùn)動(dòng),同時(shí)定義了特定人無關(guān)的人臉動(dòng)畫參數(shù)單元(Facial Animation Parameter Unit,FAPU)用于在不同模型面部展現(xiàn)相同表情,目前表情動(dòng)畫的研究多依據(jù)MPEG-4 標(biāo)準(zhǔn)實(shí)現(xiàn)目標(biāo)模型的重定向[13,14].基于肌肉模型的方法是采用肌肉仿真技術(shù)來描述人臉上不同部位的肌肉運(yùn)動(dòng).上文中提到的Ekman P 所提出的面部動(dòng)作編碼系統(tǒng)就是基于該方法.Ahn S[15]等人進(jìn)一步研究了通過估計(jì)肌肉收縮參數(shù)生成面部表情的方法.該方法能夠?qū)崿F(xiàn)逼真自然的人臉動(dòng)畫,但模型制作過程中需要一定的解剖學(xué)知識(shí),不利于推廣.而行為驅(qū)動(dòng)方法是近幾年興起的技術(shù),主要通過動(dòng)態(tài)采集人臉面部數(shù)據(jù),利用特征提取方法得到人臉三維運(yùn)動(dòng)軌跡,再通過變形傳輸技術(shù)驅(qū)動(dòng)虛擬人臉產(chǎn)生同樣的表情動(dòng)畫[16,17].基于該方法主要有兩大研究方向:實(shí)時(shí)動(dòng)畫生成、音頻驅(qū)動(dòng)口型動(dòng)畫的實(shí)現(xiàn)[18].其中實(shí)時(shí)動(dòng)畫的研究包括利用深度攝像裝置采集三維面部數(shù)據(jù)實(shí)現(xiàn)面部的三維重構(gòu)(如真人CG 電影)、利用單目攝像裝置或根據(jù)視頻動(dòng)態(tài)采集面部數(shù)據(jù)驅(qū)動(dòng)表情生成[19]及通過靜態(tài)圖片實(shí)現(xiàn)相應(yīng)表情到三維模型的映射[20].
圖15 表情規(guī)劃多樣性展示
本文研究的重點(diǎn)是如何根據(jù)有限的信息生成多樣化的表情動(dòng)畫,由于系統(tǒng)中的人物模型拓?fù)浣Y(jié)構(gòu)復(fù)雜,將模型參數(shù)化比較困難且運(yùn)動(dòng)邊界很難劃分,故參數(shù)化方法不適宜采用.而行為驅(qū)動(dòng)的方法需要采集大量人臉數(shù)據(jù),解決特征提取、模型映射、表情解耦等問題,且表情種類受限于采集的人臉數(shù)據(jù).相較之下基于FACS 并利用Maya 融合變形技術(shù)能夠更簡(jiǎn)單、快速地生成表情動(dòng)畫.
手機(jī)3D 動(dòng)畫自動(dòng)生成系統(tǒng)旨在自動(dòng)化地生成能夠表達(dá)短信內(nèi)容的動(dòng)畫.在傳統(tǒng)動(dòng)畫制作過程中,人物表情都是需要?jiǎng)赢嫀煾鶕?jù)情境手繪出來,耗時(shí)費(fèi)力.在數(shù)字動(dòng)畫盛行的今天,表情動(dòng)畫制作除關(guān)鍵幀動(dòng)畫技術(shù)之外,廣泛采用了動(dòng)作捕捉技術(shù),通過動(dòng)態(tài)采集真人的面部數(shù)據(jù),驅(qū)動(dòng)模型人物做出相應(yīng)的面部表情.目前對(duì)表情動(dòng)畫的大部分研究都是基于該技術(shù)并利用機(jī)器學(xué)習(xí)方法開展的,包括人物表情仿真、聲音驅(qū)動(dòng)的面部表情自動(dòng)生成、表情識(shí)別等.但本系統(tǒng)不追求表情的逼真程度,也無需添加口型動(dòng)畫,重點(diǎn)在于生成與短信內(nèi)容相符的多種多樣的流暢的表情動(dòng)畫,故選擇通過基于知識(shí)庫的方法加以實(shí)現(xiàn).
我們動(dòng)畫系統(tǒng)的一個(gè)重要特點(diǎn)就是多樣性,對(duì)相同的內(nèi)容,生成的動(dòng)畫應(yīng)該有多樣化的展示效果.由于同一種情緒可以由很多種表情表現(xiàn),我們不可能將所有的表現(xiàn)形式一一列舉,只能在有限的范圍內(nèi)產(chǎn)生多種表情組合去表達(dá)該情緒,這也意味著本系統(tǒng)有一定的局限性.如何通過有限的信息產(chǎn)生出更豐富、準(zhǔn)確的表情動(dòng)畫將是以后研究的重點(diǎn).