本發(fā)明涉及計(jì)算機(jī)圖形學(xué)技術(shù)領(lǐng)域,具體而言,涉及一種人臉模型構(gòu)建方法、裝置及電子設(shè)備。
背景技術(shù):
三維人臉表情合成是應(yīng)用于諸多領(lǐng)域的計(jì)算機(jī)圖形學(xué)技術(shù),基于單張照片的人臉動(dòng)畫是指從二維人臉圖像觸發(fā),合成出該人的動(dòng)畫表情。人臉動(dòng)畫具有廣闊的應(yīng)用前景,主要包括:三維游戲、影視制作、人機(jī)交互界面、遠(yuǎn)程呈現(xiàn)、教育等。
目前,比較常見(jiàn)的人臉表情動(dòng)畫生成方法有:
1.基于mpeg-4標(biāo)準(zhǔn)的表情動(dòng)畫方法,其定義了幾種常見(jiàn)表情下特征點(diǎn)的運(yùn)動(dòng)路徑,雖然簡(jiǎn)單,但缺陷是生成的表情不夠真實(shí)。
2.基于表情克隆的方法,通過(guò)掃描獲得帶表情的三維人臉模型,將該表情映射到目標(biāo)人臉模型上;這類方法能夠生成細(xì)微的表情,缺點(diǎn)是每個(gè)頂點(diǎn)均需要映射處理,計(jì)算量大導(dǎo)致無(wú)法實(shí)時(shí)處理。
3.第三大類是基于關(guān)鍵幀的插值技術(shù),這在影視制作中比較常見(jiàn),預(yù)先設(shè)計(jì)人臉的三維表情,過(guò)渡幀通過(guò)插值來(lái)獲得;但對(duì)于每一個(gè)人臉模型均需要重新設(shè)計(jì)其關(guān)鍵幀表情,并且需要專業(yè)美工人員的配合。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種人臉模型構(gòu)建方法、裝置及電子設(shè)備,用以改善上述問(wèn)題。
為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例采用的技術(shù)方案如下:
第一方面,本發(fā)明提供了一種人臉模型構(gòu)建方法,用于在單張人臉圖片上制作動(dòng)態(tài)效果,所述方法包括:獲取人臉的第一人臉圖像;約束第一人臉圖像的邊緣控制點(diǎn)的移動(dòng),通過(guò)移動(dòng)第一人臉圖像的非邊緣控制點(diǎn)在第一人臉圖像中的位置,生成多個(gè)第二人臉圖像;根據(jù)第一人臉圖像和多個(gè)第二人臉圖像構(gòu)建動(dòng)態(tài)人臉模型。
第二方面,本發(fā)明提供了一種人臉模型構(gòu)建裝置,用于在單張人臉圖片上制作動(dòng)態(tài)效果,所述裝置包括:圖像獲取模塊,用于獲取人臉的第一人臉圖像;圖像生成模塊,用于約束第一人臉圖像的邊緣控制點(diǎn)的移動(dòng),通過(guò)移動(dòng)第一人臉圖像的非邊緣控制點(diǎn)在第一人臉圖像中的位置,生成多個(gè)第二人臉圖像;人臉模型構(gòu)建模塊,用于根據(jù)第一人臉圖像和多個(gè)第二人臉圖像構(gòu)建動(dòng)態(tài)人臉模型。
第三方面,本發(fā)明提供了一種電子設(shè)備,所述電子設(shè)備包括存儲(chǔ)器、處理器、以及人臉模型構(gòu)建裝置,所述人臉模型構(gòu)建裝置存儲(chǔ)于所述存儲(chǔ)器中并包括一個(gè)或多個(gè)由所述處理器執(zhí)行的軟件功能模組,所述人臉模型構(gòu)建裝置包括:圖像獲取模塊,用于獲取人臉的第一人臉圖像;圖像生成模塊,用于約束第一人臉圖像的邊緣控制點(diǎn)的移動(dòng),通過(guò)移動(dòng)第一人臉圖像的非邊緣控制點(diǎn)在第一人臉圖像中的位置,生成多個(gè)第二人臉圖像;人臉模型構(gòu)建模塊,用于根據(jù)第一人臉圖像和多個(gè)第二人臉圖像構(gòu)建動(dòng)態(tài)人臉模型。
相對(duì)現(xiàn)有技術(shù),本發(fā)明具有以下有益效果:本發(fā)明提供的一種人臉模型構(gòu)建方法、裝置及電子設(shè)備,采用約束第一人臉圖像的邊緣控制點(diǎn)的移動(dòng),以及移動(dòng)第一人臉圖像的非邊緣控制點(diǎn)的位置生成多個(gè)第二人臉圖像的方法,從而在移動(dòng)第一人臉圖像的非邊緣控制點(diǎn)的時(shí)候,能夠保持人臉邊緣輪廓不變,從而能夠避免由于人臉模型動(dòng)作所產(chǎn)生的縫隙,另外,通過(guò)一張第一人臉圖像,便可以構(gòu)建虛擬的動(dòng)態(tài)人臉模型,生成人臉動(dòng)態(tài)效果,與現(xiàn)有技術(shù)中基于關(guān)鍵幀的插值技術(shù)相比,所需的設(shè)備簡(jiǎn)單、操作方便。
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說(shuō)明如下。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實(shí)施例,因此不應(yīng)被看作是對(duì)范圍的限定,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1示出了本發(fā)明較佳實(shí)施例提供的電子設(shè)備的方框示意圖。
圖2示出了本發(fā)明較佳實(shí)施例提供的人臉模型構(gòu)建方法流程圖。
圖3為圖2示出的步驟s102的子步驟流程圖。
圖4為圖3示出的子步驟s1023的子步驟流程圖。
圖5為圖3示出的子步驟s1024的子步驟流程圖。
圖6為圖2示出的步驟s104的子步驟流程圖。
圖7示出了本發(fā)明較佳實(shí)施例提供的人臉模型構(gòu)建裝置的方框示意圖。
圖8為圖7示出的人臉模型構(gòu)建裝置中圖像生成模塊的方框示意圖。
圖9為圖8示出的圖像生成模塊中網(wǎng)格圖像生成單元的方框示意圖。
圖10為圖8示出的圖像生成模塊中圖像渲染單元的方框示意圖。
圖11為圖7示出的人臉模型構(gòu)建裝置中人臉表情添加模塊的方框示意圖。
圖標(biāo):100-電子設(shè)備;110-存儲(chǔ)器;120-存儲(chǔ)控制器;130-處理器;200-人臉模型構(gòu)建裝置;201-圖像獲取模塊;202-圖像生成模塊;2021-特征控制點(diǎn)獲取模塊;2022-網(wǎng)格圖像獲取單元;2023-網(wǎng)格圖像生成單元;20231-第一子執(zhí)行單元;20232-第二子執(zhí)行單元;20233-第三子執(zhí)行單元;20234-第四子執(zhí)行單元;2024-圖像渲染單元;20241-第五子執(zhí)行單元;20242-第六子執(zhí)行單元;20243-第七子執(zhí)行單元;203-人臉模型構(gòu)建模塊;204-人臉表情添加模塊;2041-基礎(chǔ)圖像選擇單元;2042-圖像區(qū)域獲取單元;2043-新人臉圖像生成單元;2044-人臉表情生成單元。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來(lái)布置和設(shè)計(jì)。因此,以下對(duì)在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例?;诒景l(fā)明的實(shí)施例,本領(lǐng)域技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步定義和解釋。同時(shí),在本發(fā)明的描述中,術(shù)語(yǔ)“第一”、“第二”等僅用于區(qū)分描述,而不能理解為指示或暗示相對(duì)重要性。
請(qǐng)參照?qǐng)D1,圖1示出了本發(fā)明較佳實(shí)施例提供的電子設(shè)備100的方框示意圖。電子設(shè)備100可以是,但不限于智能手機(jī)、平板電腦、膝上型便攜計(jì)算機(jī)、車載電腦、個(gè)人數(shù)字助理(personaldigitalassistant,pda)、穿戴式移動(dòng)終端等等。所述電子設(shè)備100包括人臉模型構(gòu)建裝置200、存儲(chǔ)器110、存儲(chǔ)控制器120及處理器130。
所述存儲(chǔ)器110、存儲(chǔ)控制器120及處理器130各元件相互之間直接或間接地電性連接,以實(shí)現(xiàn)數(shù)據(jù)的傳輸或交互。例如,這些元件相互之間可通過(guò)一條或多條通訊總線或信號(hào)線實(shí)現(xiàn)電性連接。所述人臉模型構(gòu)建裝置200包括至少一個(gè)可以軟件或固件(firmware)的形式存儲(chǔ)于所述存儲(chǔ)器110中或固化在所述電子設(shè)備100的操作系統(tǒng)(operatingsystem,os)中的軟件功能模塊。所述處理器130用于執(zhí)行存儲(chǔ)器110中存儲(chǔ)的可執(zhí)行模塊,例如所述人臉模型構(gòu)建裝置200包括的軟件功能模塊或計(jì)算機(jī)程序。
其中,存儲(chǔ)器110可以是,但不限于,隨機(jī)存取存儲(chǔ)器(randomaccessmemory,ram),只讀存儲(chǔ)器(readonlymemory,rom),可編程只讀存儲(chǔ)器(programmableread-onlymemory,prom),可擦除只讀存儲(chǔ)器(erasableprogrammableread-onlymemory,eprom),電可擦除只讀存儲(chǔ)器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存儲(chǔ)器110用于存儲(chǔ)程序,所述處理器130在接收到執(zhí)行指令后,執(zhí)行所述程序,本發(fā)明任一實(shí)施例揭示的流程定義的服務(wù)器所執(zhí)行的方法可以應(yīng)用于處理器130中,或者由處理器130實(shí)現(xiàn)。
處理器130可以是一種集成電路芯片,具有信號(hào)處理能力。上述的處理器130可以是通用處理器,包括中央處理器(centralprocessingunit,cpu)、網(wǎng)絡(luò)處理器(networkprocessor,np)、語(yǔ)音處理器以及視頻處理器等;還可以是數(shù)字信號(hào)處理器、專用集成電路、現(xiàn)場(chǎng)可編程門陣列或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件??梢詫?shí)現(xiàn)或者執(zhí)行本發(fā)明實(shí)施例中的公開(kāi)的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器130也可以是任何常規(guī)的處理器等。
第一實(shí)施例
請(qǐng)參照?qǐng)D2,圖2示出了本發(fā)明較佳實(shí)施例提供的人臉模型構(gòu)建方法流程圖。人臉模型構(gòu)建方法包括以下步驟:
步驟s101,獲取人臉的第一人臉圖像。
在本發(fā)明實(shí)施例中,第一人臉圖像可以通過(guò)提示用戶自行輸入來(lái)獲得,例如人臉模型構(gòu)建方法開(kāi)始執(zhí)行時(shí),電子設(shè)備100的顯示屏顯示提示信息“上傳照片”,用戶可以選擇某一張存儲(chǔ)于電子設(shè)備100的本地圖片進(jìn)行上傳,第一人臉圖像可以為一張人臉正面的人臉圖片,人臉正面的人臉圖片可以是,但不限于該人臉圖片包括眉毛、眼睛、鼻子、嘴巴等部位的特征圖像。
作為一種實(shí)施方式,獲取到用戶上傳的第一人臉圖像之后,利用機(jī)器學(xué)習(xí)的方法檢測(cè)出人臉,機(jī)器學(xué)習(xí)的方法可以是,但不限于利用預(yù)先建立的人臉模板圖像,與第一人臉圖像進(jìn)行匹配從而檢測(cè)出人臉,人臉模板圖像中包含眉毛、眼睛、鼻子和嘴巴等特征區(qū)域,如果人臉檢測(cè)失敗,則電子設(shè)備100的顯示屏可以顯示提示信息“無(wú)法識(shí)別臉部”,此時(shí)用戶可以選擇重新上傳人臉圖片。
步驟s102,約束第一人臉圖像的邊緣控制點(diǎn)的移動(dòng),通過(guò)移動(dòng)第一人臉圖像的非邊緣控制點(diǎn)在第一人臉圖像中的位置,生成多個(gè)第二人臉圖像。
在本發(fā)明實(shí)施例中,檢測(cè)到第一人臉圖像中的人臉之后,首先檢測(cè)出該人臉的邊緣控制點(diǎn)和非邊緣控制點(diǎn),然后對(duì)第一人臉圖像進(jìn)行網(wǎng)格化,并保持邊緣控制點(diǎn)在第一人臉圖像中的位置不變,通過(guò)移動(dòng)非邊緣控制點(diǎn)在第一人臉圖像中的位置,使得受非邊緣控制點(diǎn)影響的網(wǎng)格頂點(diǎn)在第一人臉圖像中的位置發(fā)生變化,網(wǎng)格頂點(diǎn)的位置變化導(dǎo)致網(wǎng)格頂點(diǎn)對(duì)應(yīng)的網(wǎng)格發(fā)生形變,從而得到第二人臉圖像。
請(qǐng)參照?qǐng)D3,步驟s102還包括以下子步驟:
子步驟s1021,獲取第一人臉圖像的特征控制點(diǎn),特征控制點(diǎn)包括邊緣控制點(diǎn)和非邊緣控制點(diǎn)。
在本發(fā)明實(shí)施例中,特征控制點(diǎn)可以通過(guò)與人臉模板圖像進(jìn)行對(duì)比獲得,作為一種實(shí)施方式,特征控制點(diǎn)有68個(gè),包括人臉輪廓邊緣、眼睛邊緣、嘴巴邊緣、鼻梁以及鼻翼的特征點(diǎn),特征控制點(diǎn)包括邊緣控制點(diǎn)和非邊緣控制點(diǎn)。
作為一種實(shí)施方式,邊緣控制點(diǎn)可以是人臉輪廓邊緣的特征控制點(diǎn),檢測(cè)邊緣控制點(diǎn)的方法可以是:利用曲線將部分特征控制點(diǎn)連接起來(lái)形成一個(gè)連通區(qū)域a,檢測(cè)是否存在一個(gè)連通區(qū)域b的面積大于連通區(qū)域a,如果不存在這樣的連通區(qū)域b,則處在連通區(qū)域a的邊界上的特征控制點(diǎn)即為第一人臉圖像的邊緣控制點(diǎn);如果存在這樣的連通區(qū)域b,則檢測(cè)是否存在一個(gè)連通區(qū)域c的面積大于連通區(qū)域b,依次類推,直到找出邊緣控制點(diǎn)。
子步驟s1022,對(duì)第一人臉圖像進(jìn)行網(wǎng)格化,得到具有多個(gè)網(wǎng)格頂點(diǎn)的第一人臉網(wǎng)格圖像。
在本發(fā)明實(shí)施例中,網(wǎng)格化可以是對(duì)第一人臉圖像進(jìn)行二維網(wǎng)格化,二維網(wǎng)格化可以是,但不限于將第一人臉圖像等分為若干個(gè)三角形,得到具有多個(gè)三角形網(wǎng)格的第一人臉網(wǎng)格圖像,網(wǎng)格頂點(diǎn)可以為多個(gè)三角形網(wǎng)格的頂點(diǎn)。
子步驟s1023,約束邊緣控制點(diǎn),通過(guò)移動(dòng)非邊緣控制點(diǎn)在第一人臉網(wǎng)格圖像中的位置,控制網(wǎng)格頂點(diǎn)運(yùn)動(dòng)以得到多個(gè)第二人臉網(wǎng)格圖像。
在本發(fā)明實(shí)施例中,保持邊緣控制點(diǎn)在第一人臉圖像中的位置不變,邊緣控制點(diǎn)移動(dòng)之后,邊緣控制點(diǎn)移動(dòng)的位移矩陣和邊緣控制點(diǎn)對(duì)網(wǎng)格頂點(diǎn)的影響權(quán)重,計(jì)算受邊緣控制點(diǎn)影響的網(wǎng)格頂點(diǎn)的新坐標(biāo),將該網(wǎng)格頂點(diǎn)由原來(lái)的坐標(biāo)處移動(dòng)至新坐標(biāo)處,網(wǎng)格頂點(diǎn)的坐標(biāo)變化導(dǎo)致對(duì)應(yīng)的網(wǎng)格發(fā)生形變,從而得到第二人臉圖像。
請(qǐng)參照?qǐng)D4,步驟s1023還包括以下子步驟:
子步驟s10231,保持邊緣控制點(diǎn)的位置不變。
在本發(fā)明實(shí)施例中,保持邊緣控制點(diǎn)的位置不變可以是使邊緣控制點(diǎn)在第一人臉網(wǎng)格圖像中的坐標(biāo)不變。
子步驟s10232,對(duì)非邊緣控制點(diǎn)進(jìn)行位移,確定非邊緣控制點(diǎn)的位移矩陣。
在本發(fā)明實(shí)施例中,位移矩陣的確定可以包括兩種方法:
一種方法是首先通過(guò)人機(jī)交互的方式由研發(fā)人員手動(dòng)對(duì)非邊緣控制點(diǎn)進(jìn)行位移,然后再根據(jù)非邊緣控制點(diǎn)位移前的位置和位移后的位置計(jì)算位移矩陣,計(jì)算方法為:獲取非邊緣控制點(diǎn)位移前的位置c和位移后的位置c′;根據(jù)公式c′=mc,計(jì)算出非邊緣控制點(diǎn)由c到c′的位移矩陣m=c′c-1。
另一種方法是首先由電子設(shè)備100自動(dòng)設(shè)置非邊緣控制點(diǎn)的位移矩陣m的取值,然后利用非邊緣控制點(diǎn)位移前的位置c和非邊緣控制點(diǎn)的位移矩陣m,計(jì)算非邊緣控制點(diǎn)位移后的位置c′。
子步驟s10233,當(dāng)網(wǎng)格頂點(diǎn)未處于第一人臉網(wǎng)格圖像的邊緣時(shí),控制該網(wǎng)格頂點(diǎn)移動(dòng),當(dāng)網(wǎng)格頂點(diǎn)處于第一人臉網(wǎng)格圖像的邊緣時(shí),約束該網(wǎng)格頂點(diǎn)的移動(dòng)。
作為一種實(shí)施方式,利用前述步驟s1021中檢測(cè)邊緣控制點(diǎn)的方法,檢測(cè)網(wǎng)格頂點(diǎn)是否處于第一人臉網(wǎng)格圖像的邊緣,當(dāng)網(wǎng)格頂點(diǎn)未處于第一人臉網(wǎng)格圖像的邊緣時(shí),根據(jù)非邊緣控制點(diǎn)位移后的位置c′和非邊緣控制點(diǎn)對(duì)網(wǎng)格頂點(diǎn)的影響權(quán)重,移動(dòng)該網(wǎng)格頂點(diǎn);當(dāng)網(wǎng)格頂點(diǎn)處于第一人臉網(wǎng)格圖像的邊緣時(shí),保持該網(wǎng)格頂點(diǎn)的位置不變,這樣可以保證第二人臉圖像的邊緣像素點(diǎn)能夠和第一人臉圖像融合,避免產(chǎn)生縫隙。
子步驟s10234,根據(jù)非邊緣控制點(diǎn)的位移矩陣和該非邊緣控制點(diǎn)對(duì)網(wǎng)格頂點(diǎn)的影響權(quán)重,控制網(wǎng)格頂點(diǎn)由第一位置移動(dòng)至第二位置,其中,第一位置為網(wǎng)格頂點(diǎn)在第一人臉網(wǎng)格圖像上的坐標(biāo),第二位置為網(wǎng)格頂點(diǎn)在第二人臉網(wǎng)格圖像上的坐標(biāo)。
在本發(fā)明實(shí)施例中,對(duì)于一個(gè)網(wǎng)格,該網(wǎng)格的網(wǎng)格頂點(diǎn)的位置變化會(huì)導(dǎo)致該網(wǎng)格發(fā)生變形,而網(wǎng)格頂點(diǎn)的移動(dòng)又是由影響該網(wǎng)格頂點(diǎn)的非邊緣控制點(diǎn)決定的,例如,對(duì)于第一人臉網(wǎng)格圖像中的某一網(wǎng)格頂點(diǎn)v,當(dāng)影響該網(wǎng)格頂點(diǎn)v的n個(gè)非邊緣控制點(diǎn)c1,c2,...,cn的位置發(fā)生變化時(shí),網(wǎng)格頂點(diǎn)v的位置也會(huì)發(fā)生變化,由第一人臉網(wǎng)格圖像中的網(wǎng)格頂點(diǎn)v變化到第二人臉網(wǎng)格圖像中的網(wǎng)格頂點(diǎn)v′,網(wǎng)格頂點(diǎn)v′的計(jì)算方法可以為
作為一種實(shí)施方式,非邊緣控制點(diǎn)c對(duì)網(wǎng)格頂點(diǎn)v的影響權(quán)重w(v,c)可以由該邊緣控制點(diǎn)c到網(wǎng)格頂點(diǎn)v的歐拉距離來(lái)確定,也就是說(shuō),w(v,c)與邊緣控制點(diǎn)c到網(wǎng)格頂點(diǎn)v的歐拉距離成反比。
作為一種實(shí)施方式,對(duì)于影響網(wǎng)格頂點(diǎn)v的任意一個(gè)非邊緣控制點(diǎn)c,該非邊緣控制點(diǎn)c對(duì)網(wǎng)格頂點(diǎn)的影響權(quán)重為:
作為一種實(shí)施方式,對(duì)于影響網(wǎng)格頂點(diǎn)v的若干個(gè)非邊緣控制點(diǎn)c1,c2,...,cn,該若干個(gè)非邊緣控制點(diǎn)c1,c2,...,cn對(duì)網(wǎng)格頂點(diǎn)的影響權(quán)重分別為:
其中,k為一個(gè)常數(shù)系數(shù),影響網(wǎng)格頂點(diǎn)v的若干個(gè)非邊緣控制點(diǎn)c1,c2,...,cn的選取滿足約束條件
子步驟s1024,對(duì)每個(gè)第二人臉網(wǎng)格圖像進(jìn)行渲染,生成多個(gè)第二人臉圖像。
在本發(fā)明實(shí)施例中,對(duì)于構(gòu)建出的動(dòng)態(tài)人臉模型,需要確保人臉模型中的uv坐標(biāo)能夠映射到第一人臉圖像上,也就是說(shuō),人臉模型經(jīng)過(guò)正交投影后能夠和用戶上傳的原始圖片中人臉區(qū)域的像素基本重合,因此,需要確保第二人臉圖像中任意一個(gè)像素點(diǎn)的像素值,要與該像素點(diǎn)對(duì)應(yīng)的第一人臉圖像中的像素點(diǎn)的像素值相等,對(duì)第二人臉網(wǎng)格圖像進(jìn)行渲染就是將第一人臉圖像中的像素點(diǎn)的像素值賦值到第二人臉圖像對(duì)應(yīng)的像素點(diǎn)。
請(qǐng)參照?qǐng)D5,子步驟s1024還包括以下子步驟:
子步驟s10241,獲取第一人臉網(wǎng)格圖像中每個(gè)網(wǎng)格頂點(diǎn)的第一像素值。
作為一種實(shí)施方式,選取第二人臉網(wǎng)格圖像中的任意一個(gè)形變?nèi)切尉W(wǎng)格,并找到該形變?nèi)切尉W(wǎng)格的三個(gè)網(wǎng)格頂點(diǎn)v1′、v2′、v3′分別對(duì)應(yīng)在第一人臉網(wǎng)格圖像中的三個(gè)網(wǎng)格頂點(diǎn)v1、v2、v3,假設(shè)三個(gè)網(wǎng)格頂點(diǎn)v1、v2、v3的像素值分別為i(v1)、i(v2)、i(v3)。
子步驟s10242,設(shè)置第二人臉網(wǎng)格圖像中與該網(wǎng)格頂點(diǎn)對(duì)應(yīng)的網(wǎng)格頂點(diǎn)的第二像素值等于第一像素值。
在本發(fā)明實(shí)施例中,假設(shè)三個(gè)網(wǎng)格頂點(diǎn)v1′、v2′、v3′的像素值分別為i(v1′)、i(v2′)、i(v3′),則將三個(gè)網(wǎng)格頂點(diǎn)v1、v2、v3的像素值一一對(duì)應(yīng)賦值給三個(gè)網(wǎng)格頂點(diǎn)v1′、v2′、v3′,也就是說(shuō),使得像素值i(v1′)=i(v1),i(v2′)=i(v2),i(v3′)=i(v3)。
子步驟s10243,根據(jù)第二人臉網(wǎng)格圖像中該網(wǎng)格頂點(diǎn)的第二像素點(diǎn),確定與該網(wǎng)格頂點(diǎn)對(duì)應(yīng)的網(wǎng)格的其他像素點(diǎn)的像素值。
在本發(fā)明實(shí)施例中,獲得形變?nèi)切尉W(wǎng)格的三個(gè)網(wǎng)格頂點(diǎn)v1′、v2′、v3′的像素值之后,可以利用該形變?nèi)切尉W(wǎng)格的三個(gè)網(wǎng)格頂點(diǎn)的像素值進(jìn)行線性擬合得到該形變?nèi)切尉W(wǎng)格的其他像素點(diǎn)像素值。對(duì)于該形變?nèi)切尉W(wǎng)格邊上任意一個(gè)像素點(diǎn),擬合方法可以為:假設(shè)該形變?nèi)切尉W(wǎng)格的三個(gè)網(wǎng)格頂點(diǎn)v1′(x1,y1),v2′(x2,y2),v3′(x3,y3)對(duì)應(yīng)的像素值分別為i(x1,y1),i(x2,y2),i(x3,y3),則形變?nèi)切尉W(wǎng)格的三條網(wǎng)格邊l1,l2,l3分別為:
則這三條網(wǎng)格邊上任意一個(gè)像素點(diǎn)(xi,yi)的像素值分別為:
對(duì)于該形變?nèi)切尉W(wǎng)格內(nèi)的任意一個(gè)像素點(diǎn)的像素值,擬合方法可以為:假設(shè)該形變?nèi)切尉W(wǎng)格內(nèi)任意一個(gè)像素點(diǎn)p(ui,vi),該像素點(diǎn)p(ui,vi)的像素值i(ui,vi)由與該像素點(diǎn)在同一水平線上的該形變?nèi)切蔚倪吘夵c(diǎn)的像素值擬合得到,邊緣點(diǎn)包括三個(gè)網(wǎng)格頂點(diǎn)v1′(x1,y1),v2′(x2,y2),v3′(x3,y3)和三條網(wǎng)格邊上任意一個(gè)像素點(diǎn)(xi,yi):
其中,像素點(diǎn)(u2′,v2′),(u1′,v1′)分別為該形變?nèi)切蔚膬蓷l網(wǎng)格邊上的點(diǎn),且滿足v=v2′=v1′。根據(jù)上述方法,遍歷第二人臉網(wǎng)格圖像,直到第二人臉網(wǎng)格圖像中的每一個(gè)像素點(diǎn)都具有像素值。
作為一種實(shí)施方式,還可以根據(jù)該形變?nèi)切尉W(wǎng)格的面積和三個(gè)網(wǎng)格頂點(diǎn)的像素值的權(quán)重,計(jì)算該形變?nèi)切尉W(wǎng)格內(nèi)任意一個(gè)像素點(diǎn)p(ui,vi)的像素值i(ui,vi),計(jì)算方法如下:
根據(jù)三個(gè)網(wǎng)格頂點(diǎn)v1′(x1,y1),v2′(x2,y2),v3′(x3,y3)計(jì)算該形變?nèi)切尉W(wǎng)格的面積:
計(jì)算網(wǎng)格頂點(diǎn)v1′(x1,y1),v2′(x2,y2),v3′(x3,y3)的像素值的權(quán)重:
計(jì)算該形變?nèi)切尉W(wǎng)格內(nèi)任意一個(gè)像素點(diǎn)p(ui,vi)的像素值i(ui,vi):
其中,i(u0,v0)=i(x1,y1),i(u1,v1)=i(x2,y2),i(u2,v2)=i(x3,y3)。
步驟s103,根據(jù)第一人臉圖像和多個(gè)第二人臉圖像構(gòu)建動(dòng)態(tài)人臉模型。
在本發(fā)明實(shí)施例中,將第一人臉圖像和多個(gè)第二人臉圖像進(jìn)行融合,構(gòu)建出動(dòng)態(tài)人臉模型,該動(dòng)態(tài)人臉模型能夠?qū)崿F(xiàn)人臉上下點(diǎn)頭、左右搖頭等各種不同的動(dòng)作。
步驟s104,在動(dòng)態(tài)人臉模型的基礎(chǔ)上,添加人臉表情。
在本發(fā)明實(shí)施例中,構(gòu)建出動(dòng)態(tài)人臉模型之后,為該動(dòng)態(tài)人臉模型中的特定區(qū)域添加表情,特征區(qū)域可以是,但不限于眼睛、嘴巴、眉毛等,例如,在眼睛區(qū)域添加眨眼表情、在嘴巴區(qū)域添加微笑表情等,可以使得動(dòng)態(tài)人臉模型更加生動(dòng)、逼真。
請(qǐng)參照?qǐng)D6,步驟s104還包括以下子步驟:
子步驟s1041,從動(dòng)態(tài)人臉模型中任意選擇一張人臉圖像作為基礎(chǔ)人臉網(wǎng)格圖像。
在本發(fā)明實(shí)施例中,從動(dòng)態(tài)人臉模型中任意選擇一張基礎(chǔ)人臉圖像,根據(jù)子步驟s1022介紹的方法,對(duì)該基礎(chǔ)人臉圖像進(jìn)行網(wǎng)格化,基礎(chǔ)人臉網(wǎng)格圖像。
子步驟s1042,獲取基礎(chǔ)人臉網(wǎng)格圖像中需要產(chǎn)生動(dòng)作的特征圖像區(qū)域。
在本發(fā)明實(shí)施例中,特征圖像區(qū)域可以是基礎(chǔ)人臉圖像中的眼睛、嘴巴、眉毛等能夠產(chǎn)生人臉表情的圖像區(qū)域。
子步驟s1043,約束基礎(chǔ)人臉網(wǎng)格圖像中其他圖像區(qū)域的移動(dòng),通過(guò)控制特征圖像區(qū)域內(nèi)網(wǎng)格頂點(diǎn)的移動(dòng),實(shí)現(xiàn)該特征圖像區(qū)域的形變,得到新人臉圖像。
在本發(fā)明實(shí)施例中,根據(jù)子步驟s1023和子步驟s1023介紹的方法,實(shí)現(xiàn)該特征圖像區(qū)域的形變,得到新人臉圖像。
子步驟s1044,將新人臉圖像加入至動(dòng)態(tài)人臉模型中,與基礎(chǔ)人臉圖像順序排列,且新人臉圖像在基礎(chǔ)人臉圖像之后以生成人臉表情。
在本發(fā)明實(shí)施例中,如果要獲得眨眼表情,則獲取的基礎(chǔ)人臉圖像中的特征圖像區(qū)域?yàn)楸犻_(kāi)的眼睛,該特征圖像區(qū)域形變之后,得到的新人臉圖像中為閉合的眼睛,將新人臉圖像加入至動(dòng)態(tài)人臉模型中的基礎(chǔ)人臉圖像之后,動(dòng)態(tài)人臉模型就會(huì)出現(xiàn)眨眼的表情,通過(guò)不同非邊緣控制點(diǎn)具有的不同的運(yùn)動(dòng)矩陣,能夠制作各種各樣的表情和動(dòng)作。
在本發(fā)明實(shí)施例中,首先,通過(guò)約束第一人臉圖像中的邊緣控制點(diǎn)、以及處在第一人臉網(wǎng)格圖像的邊緣的網(wǎng)格圖像,使得最終構(gòu)建的動(dòng)態(tài)人臉模型在動(dòng)作時(shí)不會(huì)出現(xiàn)縫隙;其次,通過(guò)移動(dòng)第一人臉圖像的非邊緣控制點(diǎn)在第一人臉圖像中的位置,生成第二人臉圖像,最終構(gòu)建動(dòng)態(tài)人臉模型的方法,使得該動(dòng)態(tài)人臉模型能夠?qū)崿F(xiàn)人臉上下點(diǎn)頭、左右搖頭等各種不同的動(dòng)作;最后,通過(guò)不同非邊緣控制點(diǎn)具有的不同的運(yùn)動(dòng)矩陣,能夠制作各種各樣的表情和動(dòng)作。
第二實(shí)施例
請(qǐng)參照?qǐng)D7,圖7示出了本發(fā)明較佳實(shí)施例提供的人臉模型構(gòu)建裝置200的方框示意圖。人臉模型構(gòu)建裝置200包括圖像獲取模塊201、圖像生成模塊202、人臉模型構(gòu)建模塊203及人臉表情添加模塊204。
圖像獲取模塊201,用于獲取人臉的第一人臉圖像。
在本發(fā)明實(shí)施例中,圖像獲取模塊201可以用于執(zhí)行步驟s101。
圖像生成模塊202,用于約束第一人臉圖像的邊緣控制點(diǎn)的移動(dòng),通過(guò)移動(dòng)第一人臉圖像的非邊緣控制點(diǎn)在第一人臉圖像中的位置,生成多個(gè)第二人臉圖像。
在本發(fā)明實(shí)施例中,圖像生成模塊202可以用于執(zhí)行步驟s102。
請(qǐng)參照?qǐng)D8,圖8為圖7示出的人臉模型構(gòu)建裝置200中圖像生成模塊202的方框示意圖。圖像生成模塊202包括特征控制點(diǎn)獲取模塊2021、網(wǎng)格圖像獲取單元2022、網(wǎng)格圖像生成單元2023及圖像渲染單元2024。
特征控制點(diǎn)獲取模塊2021,用于獲取第一人臉圖像的特征控制點(diǎn),特征控制點(diǎn)包括邊緣控制點(diǎn)和非邊緣控制點(diǎn)。
在本發(fā)明實(shí)施例中,特征控制點(diǎn)獲取模塊2021可以用于執(zhí)行子步驟s1021。
網(wǎng)格圖像獲取單元2022,用于對(duì)第一人臉圖像進(jìn)行網(wǎng)格化,得到具有多個(gè)網(wǎng)格頂點(diǎn)的第一人臉網(wǎng)格圖像。
在本發(fā)明實(shí)施例中,網(wǎng)格圖像獲取單元2022可以用于執(zhí)行子步驟s1022。
網(wǎng)格圖像生成單元2023,用于約束邊緣控制點(diǎn),通過(guò)移動(dòng)非邊緣控制點(diǎn)在第一人臉網(wǎng)格圖像中的位置,控制網(wǎng)格頂點(diǎn)運(yùn)動(dòng)以得到多個(gè)第二人臉網(wǎng)格圖像。
在本發(fā)明實(shí)施例中,網(wǎng)格圖像生成單元2023可以用于執(zhí)行子步驟s1023。
請(qǐng)參照?qǐng)D9,圖9為圖8示出的圖像生成模塊202中網(wǎng)格圖像生成單元2023的方框示意圖。網(wǎng)格圖像生成單元2023包括第一子執(zhí)行單元20231、第二子執(zhí)行單元20232、第三子執(zhí)行單元20233及第四子執(zhí)行單元20234。
第一子執(zhí)行單元20231,用于保持邊緣控制點(diǎn)的位置不變。
在本發(fā)明實(shí)施例中,第一子執(zhí)行單元20231可以用于執(zhí)行子步驟s10231。
第二子執(zhí)行單元20232,用于對(duì)非邊緣控制點(diǎn)進(jìn)行位移,確定非邊緣控制點(diǎn)的位移矩陣。
在本發(fā)明實(shí)施例中,第二子執(zhí)行單元20232可以用于執(zhí)行子步驟s10232。
第三子執(zhí)行單元20233,用于當(dāng)網(wǎng)格頂點(diǎn)未處于第一人臉網(wǎng)格圖像的邊緣時(shí),控制該網(wǎng)格頂點(diǎn)移動(dòng),當(dāng)網(wǎng)格頂點(diǎn)處于第一人臉網(wǎng)格圖像的邊緣時(shí),約束該網(wǎng)格頂點(diǎn)的移動(dòng)。
在本發(fā)明實(shí)施例中,第三子執(zhí)行單元20233可以用于執(zhí)行子步驟s10233。
第四子執(zhí)行單元20234,用于根據(jù)非邊緣控制點(diǎn)的位移矩陣和該非邊緣控制點(diǎn)對(duì)網(wǎng)格頂點(diǎn)的影響權(quán)重,控制網(wǎng)格頂點(diǎn)由第一位置移動(dòng)至第二位置,其中,第一位置為網(wǎng)格頂點(diǎn)在第一人臉網(wǎng)格圖像上的坐標(biāo),第二位置為網(wǎng)格頂點(diǎn)在第二人臉網(wǎng)格圖像上的坐標(biāo)。
在本發(fā)明實(shí)施例中,第四子執(zhí)行單元20234可以用于執(zhí)行子步驟s10234。
圖像渲染單元2024,用于對(duì)每個(gè)第二人臉網(wǎng)格圖像進(jìn)行渲染,生成多個(gè)第二人臉圖像。
在本發(fā)明實(shí)施例中,圖像渲染單元2024可以用于執(zhí)行子步驟s1024。
請(qǐng)參照?qǐng)D10,圖10為圖8示出的圖像生成模塊202中圖像渲染單元2024的方框示意圖。圖像渲染單元2024包括第五子執(zhí)行單元20241、第六子執(zhí)行單元20242及第七子執(zhí)行單元20243。
第五子執(zhí)行單元20241,用于獲取第一人臉網(wǎng)格圖像中每個(gè)網(wǎng)格頂點(diǎn)的第一像素值。
在本發(fā)明實(shí)施例中,第五子執(zhí)行單元20241可以用于執(zhí)行子步驟s10241。
第六子執(zhí)行單元20242,用于設(shè)置第二人臉網(wǎng)格圖像中與該網(wǎng)格頂點(diǎn)對(duì)應(yīng)的網(wǎng)格頂點(diǎn)的第二像素值等于第一像素值。
在本發(fā)明實(shí)施例中,第六子執(zhí)行單元20242可以用于執(zhí)行子步驟s10242。
第七子執(zhí)行單元20243,用于根據(jù)第二人臉網(wǎng)格圖像中該網(wǎng)格頂點(diǎn)的第二像素點(diǎn),確定與該網(wǎng)格頂點(diǎn)對(duì)應(yīng)的網(wǎng)格的其他像素點(diǎn)的像素值。
在本發(fā)明實(shí)施例中,第七子執(zhí)行單元20243可以用于執(zhí)行子步驟s10243。
人臉模型構(gòu)建模塊203,用于根據(jù)第一人臉圖像和多個(gè)第二人臉圖像構(gòu)建動(dòng)態(tài)人臉模型。
在本發(fā)明實(shí)施例中,人臉模型構(gòu)建模塊203可以用于執(zhí)行步驟s103。
人臉表情添加模塊204,用于在動(dòng)態(tài)人臉模型的基礎(chǔ)上,添加人臉表情。
在本發(fā)明實(shí)施例中,人臉表情添加模塊204可以用于執(zhí)行步驟s104。
請(qǐng)參照?qǐng)D11,圖11為圖7示出的人臉模型構(gòu)建裝置200中人臉表情添加模塊204的方框示意圖。人臉表情添加模塊204包括基礎(chǔ)圖像選擇單元2041、圖像區(qū)域獲取單元2042、新人臉圖像生成單元2043及人臉表情生成單元2044。
基礎(chǔ)圖像選擇單元2041,用于從動(dòng)態(tài)人臉模型中任意選擇一張人臉圖像作為基礎(chǔ)人臉網(wǎng)格圖像。
在本發(fā)明實(shí)施例中,基礎(chǔ)圖像選擇單元2041可以用于執(zhí)行步驟s1041。
圖像區(qū)域獲取單元2042,用于獲取基礎(chǔ)人臉網(wǎng)格圖像中需要產(chǎn)生動(dòng)作的特征圖像區(qū)域。
在本發(fā)明實(shí)施例中,圖像區(qū)域獲取單元2042可以用于執(zhí)行步驟s1042。
新人臉圖像生成單元2043,用于約束基礎(chǔ)人臉網(wǎng)格圖像中其他圖像區(qū)域的移動(dòng),通過(guò)控制特征圖像區(qū)域內(nèi)網(wǎng)格頂點(diǎn)的移動(dòng),實(shí)現(xiàn)該特征圖像區(qū)域的形變,得到新人臉圖像。
在本發(fā)明實(shí)施例中,新人臉圖像生成單元2043可以用于執(zhí)行步驟s1043。
人臉表情生成單元2044,用于將新人臉圖像加入至動(dòng)態(tài)人臉模型中,與基礎(chǔ)人臉圖像順序排列,且新人臉圖像在基礎(chǔ)人臉圖像之后以生成人臉表情。
在本發(fā)明實(shí)施例中,人臉表情生成單元2044可以用于執(zhí)行步驟s1044。
綜上所述,本發(fā)明提供的一種人臉模型構(gòu)建方法、裝置及電子設(shè)備,用于在單張人臉圖片上制作動(dòng)態(tài)效果,所述方法包括:獲取人臉的第一人臉圖像;約束第一人臉圖像的邊緣控制點(diǎn)的移動(dòng),通過(guò)移動(dòng)第一人臉圖像的非邊緣控制點(diǎn)在第一人臉圖像中的位置,生成多個(gè)第二人臉圖像;根據(jù)第一人臉圖像和多個(gè)第二人臉圖像構(gòu)建動(dòng)態(tài)人臉模型。本發(fā)明提供的人臉模型構(gòu)建方法相對(duì)于現(xiàn)有技術(shù),具有以下優(yōu)點(diǎn):首先,通過(guò)約束第一人臉圖像中的邊緣控制點(diǎn)、以及處在第一人臉網(wǎng)格圖像的邊緣的網(wǎng)格圖像,使得最終構(gòu)建的動(dòng)態(tài)人臉模型在動(dòng)作時(shí)不會(huì)出現(xiàn)縫隙;其次,通過(guò)移動(dòng)第一人臉圖像的非邊緣控制點(diǎn)在第一人臉圖像中的位置,生成第二人臉圖像,最終構(gòu)建動(dòng)態(tài)人臉模型的方法,使得該動(dòng)態(tài)人臉模型能夠?qū)崿F(xiàn)人臉上下點(diǎn)頭、左右搖頭等各種不同的動(dòng)作;最后,通過(guò)不同非邊緣控制點(diǎn)具有的不同的運(yùn)動(dòng)矩陣,能夠制作各種各樣的表情和動(dòng)作。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,也可以通過(guò)其它的方式實(shí)現(xiàn)。以上所描述的裝置實(shí)施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的裝置、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)方式中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能模塊可以集成在一起形成一個(gè)獨(dú)立的部分,也可以是各個(gè)模塊單獨(dú)存在,也可以兩個(gè)或兩個(gè)以上模塊集成形成一個(gè)獨(dú)立的部分。
所述功能如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、移動(dòng)硬盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步定義和解釋。