TWI752494B - 虛擬對象的變形處理方法、裝置、設備及儲存媒體 - Google Patents

虛擬對象的變形處理方法、裝置、設備及儲存媒體 Download PDF

Info

Publication number
TWI752494B
TWI752494B TW109115911A TW109115911A TWI752494B TW I752494 B TWI752494 B TW I752494B TW 109115911 A TW109115911 A TW 109115911A TW 109115911 A TW109115911 A TW 109115911A TW I752494 B TWI752494 B TW I752494B
Authority
TW
Taiwan
Prior art keywords
bone
virtual object
parameter
object model
parameters
Prior art date
Application number
TW109115911A
Other languages
English (en)
Other versions
TW202046250A (zh
Inventor
陳呈舉
梁興侖
王韌志
章國鋒
Original Assignee
大陸商浙江商湯科技開發有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 大陸商浙江商湯科技開發有限公司 filed Critical 大陸商浙江商湯科技開發有限公司
Publication of TW202046250A publication Critical patent/TW202046250A/zh
Application granted granted Critical
Publication of TWI752494B publication Critical patent/TWI752494B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/04Context-preserving transformations, e.g. by using an importance map
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/97Determining parameters from multiple pictures
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5546Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
    • A63F2300/5553Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history user representation in the game field, e.g. avatar
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6607Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20048Transform domain processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30004Biomedical image processing
    • G06T2207/30008Bone
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/44Morphing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2021Shape modification

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Architecture (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本說明書實施例提供一種虛擬對象變形處理方法、裝置、設備及儲存媒體,其中,所述虛擬對象變形處理方法包括:獲取包括多根骨骼的三維預設虛擬對象模型對應的第一骨骼參數和第一融合變形數據,所述第一融合變形數據用於表徵預設虛擬對象的變形程度;獲取三維目標虛擬對象模型對應的第二骨骼參數,確定第二骨骼參數和所述第一骨骼參數之間的變換關係;根據所述第二骨骼參數和所述第一骨骼參數之間的變換關係與所述第一融合變形數據,確定與所述三維虛擬對象人臉模型對應的第二融合變形數據。

Description

虛擬對象的變形處理方法、裝置、設備及儲存媒體
本公開涉及虛擬現實領域,具體涉及一種虛擬對象的變形處理方法、裝置、設備及儲存媒體。
在遊戲行業和虛擬現實的推動下,數位化虛擬角色得到了大量的應用。對於虛擬角色,已經從單一的虛擬形象演變為玩家自主設計的角色,包括創造出獨具個性的形象、自動運行表情等等。
目前,在用戶自行定制虛擬對象模型後,通常使用原有的融合變形器(blendshape)的數據來驅動虛擬對象的表情,在定制模型變形較大的情況下,如果繼續使用原有的融合變形數據來運行表情則會產生較大誤差。
本說明書一個或多個實施例的目的,即提供一種虛擬對象變形處理方法、裝置、設備及儲存媒體。
第一方面,提供一種虛擬對象變形處理方法,所述方法包括:
獲取包括多根骨骼的三維預設虛擬對象模型對應的第一骨骼參數和第一融合變形數據,所述第一融合變形數據用於表徵預設虛擬對象的變形程度;
獲取三維目標虛擬對象模型對應的第二骨骼參數,確定第二骨骼參數和所述第一骨骼參數之間的變換關係;
根據所述第二骨骼參數和所述第一骨骼參數之間的變換關係與所述第一融合變形數據,確定與所述三維目標虛擬對象模型對應的第二融合變形數據。
結合本公開提供的任一實施方式,根據所述第二骨骼參數和所述第一骨骼參數之間的變換關係與所述第一融合變形數據,確定與三維目標虛擬對象模型對應的第二融合變形數據,包括:
獲取所述三維預設虛擬對象模型對應的第一網格數據;
獲取所述三維目標虛擬對象模型對應的第二網格數據;
根據所述第二網格數據和所述第一網格數據,確定所述三維目標虛擬對象模型對應的第二融合變形數據。
結合本公開提供的任一實施方式,獲取所述三維預設虛擬對象模型對應的第一網格數據,包括:
獲取所述第一骨骼參數對應的標準網格數據;
根據所述標準網格數據和所述第一融合變形數據,得到所述第一融合變形數據相對應的第一網格數據。
結合本公開提供的任一實施方式,獲取所述三維目標虛擬對象模型對應的第二網格數據,包括:
根據所述第二骨骼參數與所述第一骨骼參數,確定所述三維目標虛擬對象模型中所有骨骼的變換矩陣;
通過將所述變換矩陣應用於所述第一網格數據,確定所述三維目標虛擬對象模型對應的第二網格數據。
結合本公開提供的任一實施方式,根據所述第二骨骼參數與所述第一骨骼參數,確定所述三維目標虛擬對象模型中所有骨骼的變換矩陣,包括:
根據所述預設虛擬對象對應的第一骨骼參數,獲取預設虛擬對象模型中每個骨骼的第一位置矩陣;
根據虛擬對象模型所對應的第二骨骼參數,獲取三維目標虛擬對象模型中每個骨骼的第二位置矩陣;
根據所述第二位置矩陣和所述第一位置矩陣,獲得每個骨骼的變換矩陣。
結合本公開提供的任一實施方式,所述虛擬對象模型為人臉模型,所述虛擬對象模型包括的骨骼為頭部骨骼,三維目標虛擬對象模型,通過以下步驟生成:
獲取三維目標人臉模型的骨骼參數調整信息;
根據所述骨骼參數調整信息,調整所述三維目標人臉模型對應的頭部骨骼參數;
根據調整後的所述頭部骨骼參數,生成三維目標人臉模型。
結合本公開提供的任一實施方式,所述獲取三維目標人臉模型的骨骼參數調整信息包括:
接收骨骼參數調整指令;
根據所述骨骼參數調整指令確定所述骨骼參數調整信息。
結合本公開提供的任一實施方式,根據所述骨骼參數調整信息,調整所述三維目標人臉模型對應的頭部骨骼參數,包括:
獲取所述頭部骨骼參數中,與所述骨骼參數調整信息相關聯的至少一根頭部骨骼的骨骼參數,根據所述骨骼參數調整信息調整所述至少一根頭部骨骼的骨骼參數。
結合本公開提供的任一實施方式,至少一根頭部骨骼為多根頭部骨骼,根據所述骨骼參數調整信息調整所述至少一根頭部骨骼的骨骼參數,包括:
根據所述骨骼參數調整信息同時調整所述多根頭部骨骼的骨骼參數。
結合本公開提供的任一實施方式,根據所述骨骼參數調整信息調整所述至少一根頭部骨骼的骨骼參數,包括:
獲取所述骨骼參數調整信息的調節範圍;
獲取與所述骨骼參數調整信息相關聯的每個骨骼參數的調節範圍;
根據所述骨骼參數調整信息在調節範圍內的變化比例調整與所述骨骼參數調整信息相關聯的所述至少一根頭部骨骼的骨骼參數。
結合本公開提供的任一實施方式,根據所述骨骼參數調整指令確定所述骨骼參數調整信息,包括:
獲取針對所述骨骼參數調整指令設置的控件的輸出變化量,根據所述輸出變化量確定所述骨骼參數調整信息。
第二方面,提供一種虛擬對象變形處理裝置,所述裝置包括:
第一獲取單元,用於獲取包括多根骨骼的三維預設虛擬對象模型對應的第一骨骼參數和第一融合變形數據,所述第一融合變形數據用於表徵預設虛擬對象的變形程度;
第二獲取單元,用於獲取三維目標虛擬對象模型對應的第二骨骼參數,確定第二骨骼參數和所述第一骨骼參數之間的變換關係;
確定單元,用於根據所述第二骨骼參數和所述第一骨骼參數之間的變換關係與所述第一融合變形數據,確定與所述三維目標虛擬對象模型對應的第二融合變形數據。
第三方面,提供一種虛擬對象變形處理設備,所述設備包括儲存媒體、處理器,所述儲存媒體用於儲存可在處理器上運行的機器可執行指令,所述處理器用於在執行所述機器可執行指令時實現本說明書任一所述的虛擬對象變形處理方法。
第四方面,提供一種機器可讀儲存媒體,其上儲存有機器可執行指令,所述機器可執行指令被處理器執行時實現本說明書任一所述的虛擬對象變形處理方法。
本說明書一個或多個實施例的虛擬對象變形處理方法、裝置、設備及儲存媒體,對於通過對虛擬對象模型進行調整生成的三維目標虛擬對象模型,根據預先獲得的預設虛擬對象模型的骨骼參數和第一融合變形數據,以及目標虛擬對象模型對應的骨骼參數,獲取目標虛擬對象模型所對應的第二融合變形數據,以能夠針對預設虛擬對象模型的調整同步更新融合變形器的數據,使融合變形器與新的虛擬對象模型(即,目標虛擬對象模型)相適配。示例性的,在融合變形數據用於製作表情時,能夠提高表情驅動的準確性。
為了使本技術領域的人員更好地理解本說明書一個或多個實施例中的技術方案,下面將結合本說明書一個或多個實施例中的附圖,對本說明書一個或多個實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本說明書一部分實施例,而不是全部的實施例。基於本說明書一個或多個實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都應當屬於本公開保護的範圍。
本說明書中的虛擬對象模型可以是利用電腦模擬出的三維動物模型或三維人體模型等,並不進行限制,在下文中主要以人臉模型為例來描述虛擬對象的變形處理。用戶可自行定制虛擬對象模型,例如,可以通過對預設虛擬對象模型的結構參數(例如,骨骼參數)進行調整以改變模型的外觀。
在虛擬對象的變形處理中會利用到融合變形數據。融合變形數據是融合變形器中儲存的數據,其用於表徵虛擬對象(例如,人臉)的變形程度,其可以是模型從一個形狀融合到另一個形狀時,所對應的網格數據之間的差值。由於標準融合變形數據是針對預設虛擬對象模型製作的,因此在對預設虛擬對象模型進行調整(例如,捏臉)後,存在能否適配標準融合變形數據的問題,因而需要對標準融合變形數據進行更新。在以下的描述中以虛擬對象為人臉為例,預設人臉可以是標準人臉,使用相關技術中通常使用的默認參數生成。
為了便於區分描述,在下文中,將該預設虛擬對象模型對應的骨骼參數稱為第一骨骼參數、其所對應的融合變形數據稱為第一融合變形數據,並將目標虛擬對象模型對應的骨骼參數稱為第二骨骼參數,其所對應的融合變形數據稱為第二融合變形數據。
基於上述問題,本說明書至少一個實施例提供了一種虛擬對象的變形處理方法。如圖1所示,為該方法的一個實施例流程,該方法可以包括以下步驟。
在步驟101中,獲取包括多根骨骼的三維預設虛擬對象模型對應的第一骨骼參數和第一融合變形數據。
在本步驟中,第一融合變形數據用於表徵預設虛擬對象(例如,人臉)的變形程度。也即,將所述第一融合變形數據應用於預設人臉模型時,可以使所述預設人臉模型產生相應的變形。
在基於骨骼(bones)生成的預設虛擬對象模型中,每個骨骼可以具有多個參數。例如,可以包括以下中的至少一種:位移參數t、旋轉參數r、縮放參數s。對於預設虛擬對象模型,例如預設人臉模型來說,該人臉模型包括的骨骼為頭部骨骼,每個骨骼的骨骼參數通常包括x軸、y軸、z軸的數值,因而可以使用Bi=(tx,ty,tz,rx,ry,rz,sx,sy,sz)來表示預設人臉模型的骨骼參數,其中,i=1、2、…、Nb,Nb為模型中所包含的骨骼數目。
圖2A示出了基於骨骼建立的預設人臉模型的示意圖。該預設人臉模型是通過基於48根骨骼建立骨架,並且在骨架的基礎上進行了蒙皮處理所得到的模型,圖2A中的白色線條表示骨骼。
本領域技術人員應當理解,基於預設虛擬對象模型,還可以獲得其他類型的數據,並不限於以上所述。
在步驟102中,獲取三維目標虛擬對象模型對應的第二骨骼參數,確定第二骨骼參數和所述第一骨骼參數之間的變換關係。
在本步驟中,目標虛擬對象模型可以是相對於預設虛擬對象模型進行了調整而獲得的,此處的調整可以是調整了預設虛擬對象模型的第一骨骼參數,從而得到了目標虛擬對象模型的第二骨骼參數。該第二骨骼參數與第一骨骼參數在數據格式上相同,在數值上存在差別。通過所獲得的第二骨骼參數和第一骨骼參數,可以確定出二者之間的變換關係。
在步驟103中,根據所述第二骨骼參數和所述第一骨骼參數之間的變換關係與所述第一融合變形數據,確定與所述三維目標虛擬對象模型對應的第二融合變形數據。
由於第二骨骼參數是在第一骨骼參數的基礎上進行調整獲得的,因此二者之間存在變換關係。將第二骨骼參數與第一骨骼參數之間的變換關係應用於第一融合變形數據,可以獲得第二骨骼參數所對應的,也即三維目標虛擬對象模型所對應的第二融合變形數據。
在本實施例中,可以通過對預設虛擬對象模型進行調整而生成三維目標虛擬對象模型。根據預先獲得的預設虛擬對象模型的第一骨骼參數和第一融合變形數據,以及目標虛擬對象模型對應的第二骨骼參數,獲取目標虛擬對象模型所對應的第二融合變形數據。這樣,能夠針對預設虛擬對象模型的調整來同步更新融合變形器的數據,使融合變形器與新的虛擬對象模型(即,目標虛擬對象模型)相適配。示例性的,在融合變形數據用於製作表情時,能夠提高表情驅動的準確性。
在融合變形數據用於製作表情的情況下,預設虛擬對象模型的第一融合變形數據可以是表情所對應的網格數據與標準網格數據之間的差值。此處的標準網格數據可以包括預設虛擬對象模型的骨骼所對應的網格頂點數據。
在對預設虛擬對象模型進行了調整後,骨骼參數發生了變化,尤其是在變動較大的情況下,如果仍以標準融合變形數據運行表情則會出現不適配的問題,表情誤差較大,影響了模型的真實性和生動性。因此,需要對融合變形數據進行更新,以使其與調整得到的三維目標虛擬對象模型相適配,能夠更準確地運行表情。
在一個示例中,獲得第二融合變形數據的方法如圖3所示,可以包括:
在步驟301中,獲取所述三維預設虛擬對象模型對應的第一網格數據。
在一個示例中,獲取所述三維預設虛擬對象模型對應的第一網格數據可以包括:
獲取所述第一骨骼參數對應的標準網格數據;根據所述標準網格數據和所述第一融合變形數據,得到所述第一融合變形數據相對應的第一網格數據。
獲取了預設虛擬對象模型所對應的第一骨骼參數,即可獲得其骨骼參數所對應的標準網格數據。圖2B示出了預設人臉模型(沒有運行表情)的骨骼參數所對應的標準網格數據的示例,該標準網格數據可以包括預設人臉模型在沒有運行表情時骨骼所對應的網格頂點數據。
由於融合變形器中儲存的是表情所對應的網格數據與標準網格數據之間的差值,因此,在獲得了標準網格數據之後,通過將其與第一融合變形器(第一融合變形數據所對應的融合變形器)中所儲存的差值相加,即能夠還原出第一融合變形數據所對應的第一網格數據。
舉例來說,假設預設人臉模型所對應的標準網格數據,可以是向量[1,1,1,…,1,1];一個用於控制眼睛大小的融合變形器,其所儲存的融合變形數據可以是向量[0,0,0.5,…,0,0](兩個向量尺寸相同)。當運行該融合變形器時,通過將所儲存的第一融合變形數據與標準網格數據相加,即能夠在預設人臉上得到眼睛變大的效果。也即,標準網格數據與第一融合變形數據相加所得到的向量[1,1,1.5,…,1,1]即是眼睛變大這一表情所對應的第一網格數據。本領域技術人員應當理解,以上網格數據格式僅用於示意,並不限於本公開中網格數據格式。
在步驟302中,獲取所述三維目標虛擬對象模型對應的第二網格數據。
在一個示例中,獲取所述三維目標虛擬對象模型對應的第二網格數據可以包括:
根據所述第二骨骼參數與所述第一骨骼參數,確定所述三維目標虛擬對象模型中所有或部分骨骼的變換矩陣;
通過將所述變換矩陣應用於所述第一網格數據,確定所述三維目標虛擬對象模型對應的第二網格數據。
在前述目標虛擬對象模型與預設虛擬對象模型之間遍歷所有或部分骨骼,可以獲得各個骨骼的變換矩陣,也即第二骨骼參數和第一骨骼參數之間的變換關係。
圖4示出了獲得每個骨骼的變換矩陣的方法的一個實施例流程。如圖4所示,該方法可以包括以下步驟。
在步驟401中,根據所述預設虛擬對象模型對應的第一骨骼參數,獲取預設虛擬對象模型中每個骨骼的第一位置矩陣。
在步驟402中,根據目標虛擬對象模型所對應的第二骨骼參數,獲取三維目標虛擬對象模型中每個骨骼的第二位置矩陣。
在步驟403中,根據所述第二位置矩陣和所述第一位置矩陣,獲得每個骨骼的變換矩陣。
在一個示例中,通過將所述第二位置矩陣除以所述第一位置矩陣,可以獲得每個骨骼的變換矩陣。
例如,可以通過以下公式計算獲得骨骼的變換矩陣:
T =T new *inverse(T normal )      (1)
其中,T 表示骨骼的變換矩陣,Tnew 表示預設虛擬對象模型對應的骨骼的第一位置矩陣,Tnormal 表示目標虛擬對象模型對應的骨骼的第二位置矩陣,inverse( ) 表示對矩陣求逆。
將骨骼的變換矩陣應用於第一網格數據,可以得到新的網格頂點數據。其主要利用了骨架蒙皮的思想,根據骨架的變化狀態以及各網格頂點的綁定信息計算出新的網格頂點座標,即目標虛擬對象模型所對應的第二網格數據。例如可以利用如下公式進行計算:
Figure 02_image001
(2)
其中,Vertexnew Vertexori 分別表示新的網格頂點和初始的網格頂點,k 表示該頂點受k 個骨骼影響,Ti weighti 分別表示骨骼變換矩陣和對應的權重。
在步驟303中,根據所述第二網格數據和所述第一網格數據,確定所述三維目標虛擬對象模型對應的第二融合變形數據。
在一個示例中,通過將所述第二網格數據減去所述第一網格數據,可以得到目標虛擬對象模型對應的第二融合變形數據。
仍以用於控制眼睛大小的融合變形器為例,在步驟301中所得到的第一網格數據,對應於在預設人臉模型上獲得眼睛變大效果所對應的網格數據。步驟302中得到的第二網格數據,對應於在目標人臉模型上獲得眼睛變大效果的網格數據。通過將該第二網格數據減去該第一網格數據,所得到的第二融合變形數據,即是目標人臉模型所對應的融合變形器中儲存的數據。
在本實施例中,在生成目標虛擬對象模型後,通過將骨骼的變換矩陣同步應用到預設虛擬對象模型對應的融合變形器進行更新,使其與目標虛擬對象模型相適配,從而提高了表情驅動的準確性。
本領域技術人員應當理解,本實施例中的虛擬對象變形處理方法,不限於應用於前文所述的目標虛擬對象模型的生成方法所生成的人臉模型,其可以用於對預設虛擬對象模型進行任意定制時融合變形數據的更新。對於定制後模型的融合變形數據更新,在其變換矩陣中,Tnew 表示定制後模型對應的骨骼的位置矩陣,Tnormal 表示定制前模型對應的骨骼的位置矩陣。
前述虛擬對象變形處理方法,所應用於的目標虛擬對象模型可以是人臉模型,該人臉模型包括的骨骼是頭部骨骼,並且該人臉模型可以通過以下方式生成。圖5示出生成目標人臉模型的方法的一個實施例流程,如圖5所示,該方法可以包括以下步驟。
在步驟501中,獲取三維目標人臉模型的骨骼參數調整信息。
在本實施例中,可以通過接收骨骼參數調整指令,並根據所述骨骼參數調整指令確定所述骨骼參數調整信息。
獲取的骨骼參數調整信息,至少可以是以下中的一種:變化量、或者相對變化量或者變化比例。
在步驟502中,根據所述骨骼參數調整信息,調整所述三維目標人臉模型對應的頭部骨骼參數。
在本步驟中,基於所述骨骼參數調整信息中所包含的變化量、或者相對變化量或者變化比例,對頭部骨骼參數進行調整,以使所述頭部骨骼參數發生對應的變化,例如增加/減少相應的變化量或相對變化量,或者增加/減少相應的變化比例。在對頭部骨骼參數進行調整後,可以得到調整後的一組骨骼參數。
在步驟503中,根據調整後的所述頭部骨骼參數,生成三維目標人臉模型。
頭部骨骼參數得到了調整,也即三維目標人臉模型的骨骼得到了調整,從而改變了模型的骨骼結構,得到了想要的三維目標人臉模型。
在本實施例中,通過骨骼參數調整信息,調整頭部骨骼參數,實現對頭部中至少一個骨骼參數的同時調整,從而能夠實現對模型的整體形狀和局部細節的同時調整,既可以達到快速調整的目的,同時也能夠進行精細調整。如下的描述中,將對三維目標人臉模型的生成方法進行更詳細的描述。
在應用本實施例的方法進行三維目標虛擬對象模型的生成時,可以預先設置用於調節三維目標虛擬對象模型的骨骼參數的調節參數。該調節參數是上述骨骼參數調整信息的一種具體實施方式。
該調節參數是基於三維目標虛擬對象模型的骨骼參數設置的,因此,首先可以獲得三維目標虛擬對象模型的骨骼參數(即頭部骨骼參數)。
三維目標虛擬對象模型的骨骼參數例如可以為Bi=(tx,ty,tz,rx,ry,rz,sx,sy,sz),其中,i=1、2、…、Nb,Nb為三維目標虛擬對象模型中所包含的骨骼數目。通過調整骨骼參數Bi,可以使骨骼的位置、方向、大小中的一項或多項發生變化,從而能夠改變三維目標虛擬對象模型的骨骼結構。但由於可調節參數的自由度過高時,會導致用戶調節局部細節的難度過高。因此,在本實施例中設置三維目標虛擬對象模型的骨骼參數的調節參數,以對骨骼結構進行調整。
該調節參數與頭部中的至少一根骨骼的參數相關聯。此處的相關聯是指,改變調節參數時,所述至少一根骨骼的一個或多個參數可以同時發生變化。因此,該調節參數可以看作是與其相關聯的骨骼參數的調節器(controller)。該至少一根骨骼,可以是屬頭部中的至少一個局部區域的骨骼。
在一個示例中,可以通過以下方法實現上述調節參數的設置。該方法可以包括:
首先,獲取與所述調節參數相關聯的骨骼。
每一個調節參數與哪些骨骼相關聯,可以是預先設定的。在調節該調節參數時,與該調節參數相關聯的骨骼的參數也會同時得到調整。
對於每一個調節參數,可以將一個局部區域內的多根骨骼的參數與該調節參數建立關聯。其可以是該局部區域內的全部骨骼,也可以是其中的部分骨骼。例如,對於用於調整雙眼整體大小的眼部骨骼調節器,假設眼部區域共有E1個骨骼,但只需要對其中的E2個骨骼進行調整(E2>E1),即能夠控制眼睛大小的變化,那麼該眼部骨骼調節器只需控制這E2個骨骼。如圖7A所示,通過將用於調整雙眼整體大小的眼部骨骼調節器與骨骼eye_01、eye_02、eye_03(eye_01、eye_02、eye_03表示眼部區域的骨骼)的參數相關聯,使該眼部骨骼調節器能夠控制這三個骨骼。接下來,獲取每個所述骨骼的骨骼參數中,與所述調節參數相關聯的骨骼參數。
對於與上述調節參數相關聯的每一個骨骼,調節參數可以控制其全部9個參數,也可以控制其中的一個或多個參數。對於各個骨骼的哪些參數與調節參數相關聯,可以是預先設定的。
以圖6所示為例,調節器1、調節器2、…、調節器M為各個調節器,其中,M是調節器的數目,其中的調節器1可以控制三個骨骼-骨骼1、骨骼2、骨骼3,調節器1可以控制的每個骨骼的參數如下:骨骼1的平移參數(tx,ty),骨骼2的縮放參數(sx,sy,sz),骨骼3的旋轉參數(rx)。也即,通過調整調節器1的調節參數,可以同時調整這三個骨骼的上述參數。
最後,對與所述調節參數相關聯的各個骨骼參數進行設置,以使得:根據所述調節參數的變化,同時調整所述骨骼參數。
在確定了與調節參數相關聯的一個或多個骨骼參數後,通過對各個相關聯的骨骼參數進行設置,以使得根據該調節參數的變化而同時調整該骨骼參數,從而實現了調節參數對相關聯的骨骼參數的控制。示例性的,可以以與調節參數相同的變化比例,對與該調節參數相關聯的一個或多個骨骼參數進行調整。例如,調節參數的值的調整幅度為增加1/10,與其相關聯的一個或多個骨骼參數的值的調整幅度也同時增加1/10。
在一個示例中,可以通過以下方法實現調節參數對骨骼參數的調整。該方法包括以下步驟。
首先,獲取所述調節參數的變化範圍。該變化範圍可以是預先設定的,由於該範圍用於確定調節參數的相對變化量,因此其具體範圍的設定對本公開技術方案的實現並沒有影響。
接下來,獲取與所述調節參數相關聯的每個骨骼參數的變化範圍。該變化範圍可以是預先設定的,其可以根據實際需要調節的骨骼的位移、方向、距離等,具體設置骨骼參數的變化範圍。示例性的,如果一個骨骼參數的變化範圍是0,則表明這個參數是不能調整的,也即不受該調節參數的控制。
之後,對與所述調節參數相關聯的各個骨骼參數進行設置,以使得:根據所述調節參數在變化範圍內的變化比例,在骨骼參數的變化範圍內同時進行相同變化比例的變化。此處所說的變化比例,也可以用相對變化量來表示。舉例來說,對於圖6中的調節器1,如果其調節參數的變化範圍是[0,1],當調節參數值從0.2變化到0.3,那麼相對變化量即為即是1/10,也即變化比例為1/10。那麼,與調節器1相關聯的骨骼1、骨骼2、骨骼3的骨骼參數的值則同時上浮調整1/10。由此,實現調節參數以及與該調節參數相關聯的骨骼參數的同時調整。示例性的,以上骨骼參數隨調節參數的等比例變化,可以通過線性插值算法來實現。
本領域技術人員應當理解,也可以針對不同骨骼參數設置不同的變化方式,例如,當調節器1的調節參數值從0.2變化到0.3,其可以將骨骼1的骨骼參數向上調整1/10,而將骨骼2和骨骼3的骨骼參數向上調整1/5。也就是說,可以使不同的骨骼參數產生不同的變化趨勢。應當理解的是,當調節參數值從0變化到1時,各個骨骼參數也相應地在各自的變化區間內從最小值變化到最大值,只是各個骨骼參數的變化過程可以是不同的。示例性的,以上不同骨骼參數隨調節參數以不同趨勢進行變化,可以通過非線性插值算法來實現。
在本公開的至少一個實施例中,獲取所述骨骼參數調整信息包括:
接收骨骼參數調整指令;
根據所述骨骼參數調整指令確定所述骨骼參數調整信息。
其中,所述骨骼參數調整指令可以指對所述調節參數的調整指令。根據所述調節參數的調整指令,可以確定所述骨骼參數調整信息。
在獲取所述骨骼參數調整信息後,獲取與所述骨骼參數調整信息相關聯的至少一根頭部骨骼的骨骼參數,也即獲取與所述調節參數相關聯的至少一根頭部骨骼的骨骼參數,根據所述骨骼參數調整信息調整所述至少一根頭部骨骼的骨骼參數。
在所述至少一根頭部骨骼為一根骨骼的情況下,根據所述骨骼參數調整信息調整該骨骼的骨骼參數;在所述至少一根頭部骨骼為多根骨骼的情況下,根據所述骨骼參數調整信息同時調整所述多根頭部骨骼的骨骼參數。
在一個示例中,根據所述骨骼參數調整信息調整所述至少一根頭部骨骼的骨骼參數,可以包括:
獲取所述骨骼參數調整信息的調節範圍;
獲取與所述骨骼參數調整信息相關聯的每個骨骼參數的調節範圍;
根據所述骨骼參數調整信息在調節範圍內的變化比例調整與所述骨骼參數調整信息相關聯的所述至少一根頭部骨骼的骨骼參數,其中,對骨骼參數的調整在該骨骼參數的調節範圍內進行。
在一個示例中,可以預先針對骨骼參數調整指令設置控件,例如滑杆,通過操作該控件來產生調節參數的調整指令。在生成模型時,通過獲取該控件的輸出變化量,即獲取了與調整指令對應的骨骼參數調整信息,從而能夠對相關聯的骨骼參數進行調整。
下面以圖7A調節雙眼整體大小為例具體說明調節參數對人臉模型的控制。
例如,將用於調節雙眼整體大小的調節器的參數變化範圍設置為[0,1],也即其調節參數值可以是[0,1]間的任意值,通過操作滑杆可以使其調節參數值在此區間發生變化,如圖7B所示。
調節雙眼整體大小的調節器可以控制眼部區域的三個骨骼-骨骼eye_01、骨骼eye_02、骨骼eye_03,調節雙眼整體大小的調節器可以控制的每個骨骼的參數如下:骨骼eye_01的縮放參數(sx,sy,sz)、骨骼eye_02的縮放參數(sx,sy,sz)、骨骼eye_03的縮放參數(sx,sy,sz),示例性的,每個參數的調節範圍均為[-1,1],也即各個參數值可以是該區間內的任意數值。示例性的,這三個骨骼的其他參數的調節範圍為0,也即不能通過調節雙眼整體大小的調節器進行調整,並且不顯示在控制列表中。
通過操縱調節雙眼整體大小的調節器的滑杆,使其調節參數值發生變化,並獲取該數值。然後利用該數值將調節雙眼整體大小的調節器對應的上述三個骨骼的參數在對應的調節範圍內進行線性插值,得到每個參數調節後的數值。也即,基於調節雙眼整體大小的調節器的調節參數值在其參數範圍內的變化,使關聯的骨骼參數值在其調節範圍內發生等比例的變化。由此則實現了對雙眼整體大小的調節。圖7C示出了原雙眼整體大小示意圖,其中,左部各個邊框表示骨骼參數,分別為頭部整體參數(head_all_p_N)、左部臉頰整體參數(cheek_p_L)、左部臉頰參數(cheek_01_p_L、cheek_02_p_L、cheek_03_p_L)、右部臉頰整體參數(cheek_p_R)、右部臉頰參數(cheek_01_p_R、cheek_02_p_R、cheek_03_p_R)、眼部整體參數(eye_p_L)、眼部參數(eye_01_p_L、eye_02_p_L、eye_03_p_L、eye_04_p_L),右部為各個調節器的滑杆控件。例如通過操縱圖7B所示的滑杆,使其調節參數值變小,得出了圖7D所示的雙眼整體變小的效果。本領域技術人員應當知曉,圖7C~圖7D顯示的是在骨架圖的基礎上進行了蒙皮得到的三維模型,但從中可以體現出骨骼變化所產生的效果。
在一個示例中,在得到調整的骨骼是對稱骨骼的情況下,與所調整的骨骼對稱的骨骼的參數對應地變化。如圖2A所示,人臉的骨骼大部分是對稱的,對於對稱骨骼,在對一邊進行調整的情況下,另一邊的骨骼也會隨之變化。也就是說,對稱骨骼的參數之間是相關聯的,其中一個的參數發生了變化,另一個的參數也會對應地變化。
通過使對稱骨骼對應地變化,在減少了調節步驟的情況下,有利於保持人臉的對稱性。
本公開中所說的局部區域,可以是一個區域,也可以是調節參數為了實現某一些效果需要控制的多個區域。可以基於調節參數所能實現的效果,對該調節參數所對應的控件進行命名。如圖7C~圖7D所示,包含了「眉毛左右」、「眉毛上下」等命名的控件,直觀地體現了該控件能夠實現的效果,便於用戶進行操作。
對於所生成的人臉模型,通常採用模型分割的方式生成自定義妝容,在角色模型的基礎上為每個可更換部件分離出一個單獨的模型,但由於這種方式渲染階段導致多個CPU繪製呼叫(draw call),因此會嚴重影響程式的性能。
基於此,以下實施例中,提出一種對於所生成的人臉模型生成臉部妝容的方法,如圖8所示,可以包括以下步驟。
在步驟801中,基於所述人臉模型的骨骼參數生成臉部貼圖。
在本步驟中,可以根據所述人臉模型的骨骼參數生成臉部貼圖。該臉部貼圖可以包括多個與妝容對應的區域,對於不同的骨骼參數,各個矩形區域的大小和位置通常是不同的。此處所說的妝容,指對於人臉模型來說可更換的臉部部件,例如,眉毛、腮紅、嘴唇、鬍子等等,而非所生成的模型中已具有的、不可替換的臉部部位。本領域技術人員應當理解,可更換的臉部部件不限於以上所述,還可以包括其他的臉部妝容。
本領域技術人員應當理解,該臉部貼圖也可以是其他方式製作、生成的臉部貼圖,並不限於基於上述人臉模型的骨骼參數生成。
如圖9A所示,在該臉部貼圖中包括了眉毛、腮紅、嘴唇和鬍子所對應的矩形區域。其中,每個矩形區域可以包括以下參數中的至少一個:寬度、高度、座標橫向偏移值、座標縱向偏移值。
在步驟802中,針對所述區域獲取相應妝容的可更換部件貼圖。
以矩形區域為例,在本步驟中,可以根據矩形區域的參數製作、生成相應妝容的可更換部件貼圖,也可調用、導入相應的貼圖。貼圖的示例參見圖9B所示,其中,各個可更換部件的貼圖與相應矩形區域的寬度和高度一致。
其中,各個可更換部件的貼圖的顏色可以改變,並且,也可以使貼圖附加一層細節紋理。
在一個示例中,可以通過將可更換部件貼圖的透明度信息和紋理信息進行混合,生成所述可更換部件貼圖的紋理。該紋理信息是針對可更換部件的貼圖所選擇的紋理信息,其混合公式如下:
Figure 02_image003
(3)
其中,Colorfinal 表示貼圖最終表現出的顏色,Colorbase 表示Alpha! =1時顯示臉部貼圖的顏色,Colordetail 表示Alpha ==1時顯示可更換部件貼圖的顏色。
在步驟803中,將針對各個妝容獲取的可更換部件貼圖與所述臉部貼圖進行合併,得到合併後的貼圖。
在一個示例中,可以通過以下方式將各個妝容的可更換部件貼圖與臉部貼圖進行合併:
按照可更換部件貼圖對應的矩形區域的座標橫向偏移值和座標縱向偏移值,將所述可更換部件貼圖拷貝到臉部貼圖相應的矩形區域;將臉部貼圖與所述可更換部件貼圖按照透明度信息進行混合。所述透明度信息為所述可更換部件貼圖的透明度信息。
在一個示例中,可以首先將臉部貼圖拷貝到渲染紋理(RenderTexture)中,之後將各個可更換部件貼圖拷貝到臉部貼圖相應的矩形區域,利用渲染紋理實現可更換部件貼圖與臉部貼圖的合併。
在一個示例中,可以將臉部貼圖及其對應的光照模型(shader)共同拷貝到渲染紋理中。
可更換部件貼圖與臉部貼圖合併後的結果如圖9C所示。
在步驟804中,將所述合併後的貼圖映射到所述人臉模型上,生成所述人臉模型的臉部妝容。
在一個示例中,可以首先將所述臉部貼圖渲染到一個幀緩衝對象(FrameBufferObject)上,根據所述人臉模型的紋理座標UV,將該幀緩衝對象關聯到GPU上人臉模型所對應的貼圖對象上,從而實現所述合併後的貼圖到所述人臉模型的映射。
圖10A示出了初始的人臉模型,圖10B示出了通過上述方法生成臉妝容後的人臉模型。
在本實施例中,通過生成臉部貼圖和與臉部貼圖各矩形區域對應的妝容的可更換貼圖,利用先合併再繪製的方法,提高了渲染效率。
圖11A提供了一種虛擬對象變形處理裝置,如圖11A所示,該裝置可以包括:
第一獲取單元1101,用於獲取包括多根骨骼的三維預設虛擬對象模型對應的第一骨骼參數和第一融合變形數據,所述第一融合變形數據用於表徵預設虛擬對象的變形程度;
第二獲取單元1102,用於獲取三維目標虛擬對象模型對應的第二骨骼參數,確定第二骨骼參數和所述第一骨骼參數之間的變換關係;
確定單元1103,用於根據所述第二骨骼參數和所述第一骨骼參數之間的變換關係與所述第一融合變形數據,確定與所述三維目標虛擬對象臉模型對應的第二融合變形數據。
圖11B提供了另一種虛擬對象變形處理裝置,如圖11B所示,第二獲取單元1102中包括人臉模型生成子單元1102_1,用於生成目標人臉模型,具體用於:
獲取三維目標人臉模型的骨骼參數調整信息;
根據所述骨骼參數調整信息,調整所述三維目標人臉模型對應的頭部骨骼參數;
根據調整後的所述頭部骨骼參數,生成三維目標人臉模型。
圖12為本說明書至少一個實施例提供的虛擬對象變形處理設備,如圖12所示,該設備可以包括儲存媒體1201、處理器1202,所述儲存媒體1201用於儲存可在處理器上運行的機器可執行指令,所述處理器1202用於在執行所述機器可執行指令時實現本說明書任一實施例所述的虛擬對象變形處理方法。
本說明書至少一個實施例還提供了一種機器可讀儲存媒體,其上儲存有機器可執行指令,所述機器可執行指令被處理器執行時實現本說明書任一所述的虛擬對象變形處理方法。
本領域技術人員應明白,本說明書一個或多個實施例可提供為方法、系統或電腦程式產品。因此,本說明書一個或多個實施例可採用完全硬體實施例、完全軟體實施例或結合軟體和硬體方面的實施例的形式。而且,本說明書一個或多個實施例可採用在一個或多個其中包含有電腦可用程式代碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於數據處理設備實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
上述對本說明書特定實施例進行了描述。其它實施例在所附申請專利範圍內。在一些情況下,在申請專利範圍中記載的行為或步驟可以按照不同於實施例中的順序來執行並且仍然可以實現期望的結果。另外,在附圖中描繪的過程不一定要求示出的特定順序或者連續順序才能實現期望的結果。在某些實施方式中,多任務處理和並行處理也是可以的或者可能是有利的。
本說明書中描述的主題及功能操作的實施例可以在以下中實現:數位電子電路、有形體現的電腦軟體或韌體、包括本說明書中公開的結構及其結構性等同物的電腦硬體、或者它們中的一個或多個的組合。本說明書中描述的主題的實施例可以實現為一個或多個電腦程式,即編碼在有形非暫時性程式載體上以被數據處理裝置執行或控制數據處理裝置的操作的電腦程式指令中的一個或多個模組。可替代地或附加地,程式指令可以被編碼在人工生成的傳播信號上,例如機器生成的電、光或電磁信號,該信號被生成以將信息編碼並傳輸到合適的接收機裝置以由數據處理裝置執行。電腦儲存媒體可以是機器可讀儲存設備、機器可讀儲存基板、隨機或串列存取記憶體設備、或它們中的一個或多個的組合。
本說明書中描述的處理及邏輯流程可以由執行一個或多個電腦程式的一個或多個可編程電腦執行,以通過根據輸入數據進行操作並生成輸出來執行相應的功能。所述處理及邏輯流程還可以由專用邏輯電路—例如場效可程式閘陣列(Field Programmable Gate Array,FPGA)或專用積體電路(Application Specific IC,ASIC)來執行,並且裝置也可以實現為專用邏輯電路。
適合用於執行電腦程式的電腦包括,例如通用和/或專用微處理器,或任何其他類型的中央處理單元。通常,中央處理單元將從唯讀記憶體和/或隨機存取記憶體接收指令和數據。電腦的基本組件包括用於實施或執行指令的中央處理單元以及用於儲存指令和數據的一個或多個記憶體設備。通常,電腦還將包括用於儲存數據的一個或多個大容量儲存設備,例如磁碟、磁光盤或光碟等,或者電腦將可操作地與此大容量儲存設備耦接以從其接收數據或向其傳送數據,抑或兩種情況兼而有之。然而,電腦不是必須具有這樣的設備。此外,電腦可以嵌入在另一設備中,例如移動電話、個人數位助理(PDA)、移動音頻或視頻播放器、遊戲操縱臺、全球定位系統(GPS)接收機、或例如通用序列匯流排(Universal Serial Bus,USB)閃存驅動器的便攜式儲存設備,僅舉幾例。
適合於儲存電腦程式指令和數據的電腦可讀介質包括所有形式的非暫態記憶體、媒介和記憶體設備,例如包括半導體記憶體設備(例如EPROM、EEPROM和閃存設備)、磁碟(例如內部硬碟或移動式硬碟)、磁光盤以及CD-ROM和DVD-ROM盤。處理器和記憶體可由專用邏輯電路補充或併入專用邏輯電路中。
雖然本說明書包含許多具體實施細節,但是這些不應被解釋為限制本公開的範圍或所要求保護的範圍,而是主要用於描述具體實施例的特徵。本說明書內在多個實施例中描述的某些特徵也可以在單個實施例中被組合實施。另一方面,在單個實施例中描述的各種特徵也可以在多個實施例中分開實施或以任何合適的子組合來實施。此外,雖然特徵可以如上所述在某些組合中起作用並且甚至最初如此要求保護,但是來自所要求保護的組合中的一個或多個特徵在一些情況下可以從該組合中去除,並且所要求保護的組合可以指向子組合或子組合的變型。
類似地,雖然在附圖中以特定順序描繪了操作,但是這不應被理解為要求這些操作以所示的特定順序執行或順次執行、或者要求所有例示的操作被執行,以實現期望的結果。在某些情況下,多任務和並行處理可能是有利的。此外,上述實施例中的各種系統模組和組件的分離不應被理解為在所有實施例中均需要這樣的分離,並且應當理解,所描述的程序組件和系統通常可以一起積體在單個軟體產品中,或者封裝成多個軟體產品。
101~103、301~303、401~403、501~503、801~804、:步驟 1101:第一獲取單元 1102:第二獲取單元 1102_1:人臉模型生成子單元 1103:確定單元 1201:儲存媒體 1202:處理器 cheek_p_L:左部臉頰整體參數 cheek_01_p_L、cheek_02_p_L、cheek_03_p_L:左部臉頰參數 cheek_p_R:右部臉頰整體參數 cheek_01_p_R、cheek_02_p_R、cheek_03_p_R:右部臉頰參數 eye_01、eye_02、eye_03:骨骼 eye_p_L:眼部整體參數 eye_01_p_L、eye_02_p_L、eye_03_p_L、eye_04_p_L:眼部參數 head_all_p_N:頭部整體參數 rx:旋轉參數 sx、sy、sz:縮放參數 tx、ty:平移參數
為了更清楚地說明本說明書一個或多個實施例的技術方案,下面將對實施例所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本說明書所記載的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。 圖1為本說明書至少一個實施例提供的一種虛擬對象變形處理方法示例。 圖2A示出了基於骨骼建立的預設人臉模型的示意圖。 圖2B為圖2A中的預設人臉模型對應的網格的示例。 圖3為本說明書至少一個實施例提供的一種獲得第二融合變形數據的方法示例。 圖4為本說明書至少一個實施例提供的一種獲得骨骼的變換矩陣的方法示例。 圖5為本說明書至少一個實施例提供的一種生成目標人臉模型的方法示例。 圖6為本說明書至少一個實施例提供的調節參數的設置示例。 圖7A為本說明書至少一個實施例提供的用於調節雙眼整體大小的二層參數設置方法示例。 圖7B為本說明書至少一個實施例提供的用於調節雙眼整體大小的控件示例。 圖7C和圖7D為本說明書至少一個實施例提供的調整前的人臉模型示例和目標人臉模型示例。 圖8為本說明書至少一個實施例提供的生成臉部妝容的方法示例。 圖9A為本說明書至少一個實施例提供的臉部貼圖示例。 圖9B為本說明書至少一個實施例提供的可更換部件的貼圖示例。 圖9C為本說明書至少一個實施例提供的生成貼圖紋理的示例。 圖10A和圖10B為本說明書至少一個實施例提供的生成妝容前的人臉模型和生成妝容後的人臉模型。 圖11A為本說明書至少一個實施例提供的一種虛擬對象變形處理裝置示例。 圖11B為本說明書至少一個實施例提供的另一種虛擬對象變形處理裝置示例。 圖12為本說明書至少一個實施例提供的一種虛擬對象變形處理設備示例。
101~103:步驟

Claims (15)

  1. 一種虛擬對象變形處理方法,包括:獲取包括多根骨骼的三維預設虛擬對象模型對應的第一骨骼參數和第一融合變形數據,所述第一融合變形數據為融合變形器中的數據,用於表徵預設虛擬對象的變形程度;獲取三維目標虛擬對象模型對應的第二骨骼參數,確定所述第二骨骼參數和所述第一骨骼參數之間的變換關係;以及根據所述第二骨骼參數和所述第一骨骼參數之間的變換關係與所述第一融合變形數據,確定與所述三維目標虛擬對象模型對應的第二融合變形數據。
  2. 如請求項1所述的方法,其中所述根據所述第二骨骼參數和所述第一骨骼參數之間的變換關係與所述第一融合變形數據,確定與所述三維目標虛擬對象模型對應的第二融合變形數據的步驟包括:獲取所述三維預設虛擬對象模型對應的第一網格數據;獲取所述三維目標虛擬對象模型對應的第二網格數據;以及根據所述第二網格數據和所述第一網格數據,確定所述三維目標虛擬對象模型對應的第二融合變形數據。
  3. 如請求項2所述的方法,其中所述獲取所述三維預設虛擬對象模型對應的第一網格數據的步驟包括:獲取所述第一骨骼參數對應的標準網格數據;以及根據所述標準網格數據和所述第一融合變形數據,得到所述 第一融合變形數據相對應的第一網格數據。
  4. 如請求項2所述的方法,其中所述獲取所述三維目標虛擬對象模型對應的第二網格數據的步驟包括:根據所述第二骨骼參數與所述第一骨骼參數,確定所述三維目標虛擬對象模型中所有骨骼的變換矩陣;以及通過將所述變換矩陣應用於所述第一網格數據,確定所述三維目標虛擬對象模型對應的第二網格數據。
  5. 如請求項4所述的方法,其中所述根據所述第二骨骼參數與所述第一骨骼參數,確定所述三維目標虛擬對象模型中所有骨骼的變換矩陣的步驟包括:根據所述三維預設虛擬對象模型對應的第一骨骼參數,獲取所述三維預設虛擬對象模型中每個骨骼的第一位置矩陣;根據所述三維目標虛擬對象模型所對應的第二骨骼參數,獲取所述三維目標虛擬對象模型中每個骨骼的第二位置矩陣;以及根據所述第二位置矩陣和所述第一位置矩陣,獲得每個骨骼的變換矩陣。
  6. 如請求項1所述的方法,其中所述虛擬對象模型為人臉模型,所述虛擬對象模型包括的骨骼為頭部骨骼,所述三維目標虛擬對象模型通過以下步驟生成:獲取三維目標人臉模型的骨骼參數調整信息;根據所述骨骼參數調整信息,調整所述三維目標人臉模型對應的頭部骨骼參數;以及 根據調整後的所述頭部骨骼參數,生成三維目標人臉模型。
  7. 根據請求項6所述的方法,其中所述獲取三維目標人臉模型的骨骼參數調整信息包括:接收骨骼參數調整指令;以及根據所述骨骼參數調整指令確定所述骨骼參數調整信息。
  8. 如請求項6所述的方法,其中所述根據所述骨骼參數調整信息,調整所述三維目標人臉模型對應的頭部骨骼參數的步驟包括:獲取所述頭部骨骼參數中,與所述骨骼參數調整信息相關聯的至少一根頭部骨骼的骨骼參數,根據所述骨骼參數調整信息調整所述至少一根頭部骨骼的骨骼參數。
  9. 如請求項8所述的方法,其中至少一根頭部骨骼為多根頭部骨骼,所述根據所述骨骼參數調整信息調整所述至少一根頭部骨骼的骨骼參數的步驟包括:根據所述骨骼參數調整信息同時調整所述多根頭部骨骼的骨骼參數。
  10. 如請求項8所述的方法,其中所述根據所述骨骼參數調整信息調整所述至少一根頭部骨骼的骨骼參數的步驟包括:獲取所述骨骼參數調整信息的調節範圍;獲取與所述骨骼參數調整信息相關聯的每個骨骼參數的調節範圍;以及 根據所述骨骼參數調整信息在調節範圍內的變化比例調整與所述骨骼參數調整信息相關聯的所述至少一根頭部骨骼的骨骼參數。
  11. 如請求項7所述的方法,其中所述根據所述骨骼參數調整指令確定所述骨骼參數調整信息的步驟包括:獲取針對所述骨骼參數調整指令設置的控件的輸出變化量,根據所述輸出變化量確定所述骨骼參數調整信息。
  12. 如請求項6所述的方法,更包括:基於所述三維目標人臉模型的骨骼參數生成臉部貼圖,其中,所述臉部貼圖包括多個與妝容對應的區域;針對所述區域獲取相應妝容的可更換部件貼圖;將針對各個妝容獲取的可更換部件貼圖與所述臉部貼圖進行合併,得到合併後的貼圖;以及將所述合併後的貼圖映射到所述三維目標人臉模型上,生成所述三維目標人臉模型的臉部妝容。
  13. 一種虛擬對象變形處理裝置,包括:第一獲取單元,用於獲取包括多根骨骼的三維預設虛擬對象模型對應的第一骨骼參數和第一融合變形數據,所述第一融合變形數據為融合變形器中的數據,用於表徵預設虛擬對象的變形程度;第二獲取單元,用於獲取三維目標虛擬對象模型對應的第二骨骼參數,確定所述第二骨骼參數和所述第一骨骼參數之間的變 換關係;以及確定單元,用於根據所述第二骨骼參數和所述第一骨骼參數之間的變換關係與所述第一融合變形數據,確定與所述三維目標虛擬對象模型對應的第二融合變形數據。
  14. 一種虛擬對象變形處理設備,其中所述虛擬對象變形處理設備包括儲存媒體以及處理器,所述儲存媒體用於儲存可在處理器上運行的機器可執行指令,所述處理器用於在執行所述機器可執行指令時實現請求項1至12中任一項所述的方法。
  15. 一種機器可讀儲存媒體,其上儲存有機器可執行指令,其中所述機器可執行指令被處理器執行時實現請求項1至12中任一項所述的方法。
TW109115911A 2019-05-15 2020-05-13 虛擬對象的變形處理方法、裝置、設備及儲存媒體 TWI752494B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910403876.3 2019-05-15
CN201910403876.3A CN110111247B (zh) 2019-05-15 2019-05-15 人脸变形处理方法、装置及设备

Publications (2)

Publication Number Publication Date
TW202046250A TW202046250A (zh) 2020-12-16
TWI752494B true TWI752494B (zh) 2022-01-11

Family

ID=67490278

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109115911A TWI752494B (zh) 2019-05-15 2020-05-13 虛擬對象的變形處理方法、裝置、設備及儲存媒體

Country Status (8)

Country Link
US (1) US11100709B2 (zh)
EP (1) EP3971819A4 (zh)
JP (1) JP7126001B2 (zh)
KR (1) KR20200139240A (zh)
CN (1) CN110111247B (zh)
SG (1) SG11202010607UA (zh)
TW (1) TWI752494B (zh)
WO (1) WO2020228385A1 (zh)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110111247B (zh) * 2019-05-15 2022-06-24 浙江商汤科技开发有限公司 人脸变形处理方法、装置及设备
GB2585078B (en) * 2019-06-28 2023-08-09 Sony Interactive Entertainment Inc Content generation system and method
CN110624244B (zh) * 2019-10-24 2023-04-18 网易(杭州)网络有限公司 游戏中脸部模型的编辑方法、装置和终端设备
CN110766777B (zh) * 2019-10-31 2023-09-29 北京字节跳动网络技术有限公司 虚拟形象的生成方法、装置、电子设备及存储介质
CN111651152A (zh) * 2020-04-27 2020-09-11 北京编程猫科技有限公司 一种基于图形化编程的变换人物图画的方法及装置
CN111714885A (zh) * 2020-06-22 2020-09-29 网易(杭州)网络有限公司 游戏角色模型生成、角色调整方法、装置、设备及介质
CN112017295B (zh) * 2020-08-28 2024-02-09 重庆灵翎互娱科技有限公司 一种可调节动态头模型生成方法、终端和计算机存储介质
CN112107865A (zh) * 2020-09-27 2020-12-22 完美世界(北京)软件科技发展有限公司 一种面部动画模型处理方法、装置、电子设备及存储介质
CN112330805B (zh) * 2020-11-25 2023-08-08 北京百度网讯科技有限公司 人脸3d模型生成方法、装置、设备及可读存储介质
CN112419454B (zh) * 2020-11-25 2023-11-28 北京市商汤科技开发有限公司 一种人脸重建方法、装置、计算机设备及存储介质
CN112419485B (zh) * 2020-11-25 2023-11-24 北京市商汤科技开发有限公司 一种人脸重建方法、装置、计算机设备及存储介质
CN112562043B (zh) * 2020-12-08 2023-08-08 北京百度网讯科技有限公司 图像处理方法、装置和电子设备
CN112581573B (zh) * 2020-12-15 2023-08-04 北京百度网讯科技有限公司 虚拟形象驱动方法、装置、设备、介质和程序产品
CN112967212A (zh) * 2021-02-01 2021-06-15 北京字节跳动网络技术有限公司 一种虚拟人物的合成方法、装置、设备及存储介质
CN112967364A (zh) * 2021-02-09 2021-06-15 咪咕文化科技有限公司 一种图像处理方法、装置及设备
CN113050795A (zh) * 2021-03-24 2021-06-29 北京百度网讯科技有限公司 虚拟形象的生成方法及装置
CN113298948B (zh) * 2021-05-07 2022-08-02 中国科学院深圳先进技术研究院 三维网格重建方法、装置、设备及存储介质
CN113350792B (zh) * 2021-06-16 2024-04-09 网易(杭州)网络有限公司 虚拟模型的轮廓处理方法、装置、计算机设备及存储介质
CN113362435B (zh) * 2021-06-16 2023-08-08 网易(杭州)网络有限公司 虚拟对象模型的虚拟部件变化方法、装置、设备及介质
CN113470148B (zh) * 2021-06-30 2022-09-23 完美世界(北京)软件科技发展有限公司 表情动画制作方法及装置、存储介质、计算机设备
CN113379880B (zh) * 2021-07-02 2023-08-11 福建天晴在线互动科技有限公司 一种表情自动化生产方法及其装置
CN113450452B (zh) * 2021-07-05 2023-05-26 网易(杭州)网络有限公司 三维模型文件的转换方法和装置
CN113422977B (zh) * 2021-07-07 2023-03-14 上海商汤智能科技有限公司 直播方法、装置、计算机设备以及存储介质
CN113546420B (zh) * 2021-07-23 2024-04-09 网易(杭州)网络有限公司 虚拟对象的控制方法、装置、存储介质及电子设备
CN113610992B (zh) * 2021-08-04 2022-05-20 北京百度网讯科技有限公司 骨骼驱动系数确定方法、装置、电子设备及可读存储介质
CN113658307A (zh) * 2021-08-23 2021-11-16 北京百度网讯科技有限公司 图像处理方法及装置
CN113986015B (zh) * 2021-11-08 2024-04-30 北京字节跳动网络技术有限公司 虚拟道具的处理方法、装置、设备和存储介质
CN114565512A (zh) * 2022-03-03 2022-05-31 广州虎牙科技有限公司 眉形变形方法、装置、电子设备及可读存储介质
CN114677476A (zh) * 2022-03-30 2022-06-28 北京字跳网络技术有限公司 一种脸部处理方法、装置、计算机设备及存储介质
CN115601484B (zh) * 2022-11-07 2023-03-28 广州趣丸网络科技有限公司 虚拟人物面部驱动方法、装置、终端设备和可读存储介质
KR102652652B1 (ko) * 2022-11-29 2024-03-29 주식회사 일루니 아바타 생성 장치 및 방법
CN115937373B (zh) * 2022-12-23 2023-10-03 北京百度网讯科技有限公司 虚拟形象驱动方法、装置、设备以及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107633542A (zh) * 2016-07-19 2018-01-26 珠海金山网络游戏科技有限公司 一种捏脸编辑和动画附加融合方法和系统
CN107705365A (zh) * 2017-09-08 2018-02-16 郭睿 可编辑的三维人体模型创建方法、装置、电子设备及计算机程序产品
US20180308276A1 (en) * 2017-04-21 2018-10-25 Mug Life, LLC Systems and methods for automatically creating and animating a photorealistic three-dimensional character from a two-dimensional image
CN109395390A (zh) * 2018-10-26 2019-03-01 网易(杭州)网络有限公司 游戏角色脸部模型的处理方法、装置、处理器及终端

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100545871C (zh) * 2006-05-12 2009-09-30 中国科学院自动化研究所 一种直接传递三维模型姿态的方法
GB2450757A (en) 2007-07-06 2009-01-07 Sony Comp Entertainment Europe Avatar customisation, transmission and reception
JP4977742B2 (ja) 2008-10-17 2012-07-18 株式会社スクウェア・エニックス 3次元モデル表示システム
CN101968891A (zh) * 2009-07-28 2011-02-09 上海冰动信息技术有限公司 用于游戏的照片自动生成三维图形系统
CN101783026B (zh) * 2010-02-03 2011-12-07 北京航空航天大学 三维人脸肌肉模型的自动构造方法
CN101833788B (zh) * 2010-05-18 2011-09-07 南京大学 一种采用手绘草图的三维人体建模方法
CN102054296A (zh) * 2011-01-20 2011-05-11 西北大学 一种局部刚性网格变形方法
US8922553B1 (en) * 2011-04-19 2014-12-30 Disney Enterprises, Inc. Interactive region-based linear 3D face models
CN102157010A (zh) * 2011-05-25 2011-08-17 上海大学 基于分层建模及多体驱动的三维人脸动画实现方法
JP6207210B2 (ja) 2013-04-17 2017-10-04 キヤノン株式会社 情報処理装置およびその方法
US9378576B2 (en) * 2013-06-07 2016-06-28 Faceshift Ag Online modeling for real-time facial animation
US9202300B2 (en) * 2013-06-20 2015-12-01 Marza Animation Planet, Inc Smooth facial blendshapes transfer
CN104978764B (zh) * 2014-04-10 2017-11-17 华为技术有限公司 三维人脸网格模型处理方法和设备
CN104376594B (zh) * 2014-11-25 2017-09-29 福建天晴数码有限公司 三维人脸建模方法和装置
CN104537630A (zh) * 2015-01-22 2015-04-22 厦门美图之家科技有限公司 一种基于年龄估计的图像美颜方法和装置
EP3335195A2 (en) * 2015-08-14 2018-06-20 Metail Limited Methods of generating personalized 3d head models or 3d body models
CN105654537B (zh) * 2015-12-30 2018-09-21 中国科学院自动化研究所 一种实现与虚拟角色实时互动的表情克隆方法及装置
CN106846499B (zh) * 2017-02-09 2020-04-03 腾讯科技(深圳)有限公司 一种虚拟模型的生成方法及装置
CN107146199B (zh) * 2017-05-02 2020-01-17 厦门美图之家科技有限公司 一种人脸图像的融合方法、装置及计算设备
CN109191570B (zh) * 2018-09-29 2023-08-22 网易(杭州)网络有限公司 游戏角色脸部模型的调整方法、装置、处理器及终端
CN109711335A (zh) * 2018-12-26 2019-05-03 北京百度网讯科技有限公司 通过人体特征对目标图片进行驱动的方法及装置
CN109727302B (zh) * 2018-12-28 2023-08-08 网易(杭州)网络有限公司 骨骼创建方法、装置、电子设备及存储介质
CN110111247B (zh) * 2019-05-15 2022-06-24 浙江商汤科技开发有限公司 人脸变形处理方法、装置及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107633542A (zh) * 2016-07-19 2018-01-26 珠海金山网络游戏科技有限公司 一种捏脸编辑和动画附加融合方法和系统
US20180308276A1 (en) * 2017-04-21 2018-10-25 Mug Life, LLC Systems and methods for automatically creating and animating a photorealistic three-dimensional character from a two-dimensional image
CN107705365A (zh) * 2017-09-08 2018-02-16 郭睿 可编辑的三维人体模型创建方法、装置、电子设备及计算机程序产品
CN109395390A (zh) * 2018-10-26 2019-03-01 网易(杭州)网络有限公司 游戏角色脸部模型的处理方法、装置、处理器及终端

Also Published As

Publication number Publication date
EP3971819A1 (en) 2022-03-23
JP7126001B2 (ja) 2022-08-25
WO2020228385A1 (zh) 2020-11-19
TW202046250A (zh) 2020-12-16
JP2021527862A (ja) 2021-10-14
CN110111247B (zh) 2022-06-24
KR20200139240A (ko) 2020-12-11
EP3971819A4 (en) 2022-07-20
CN110111247A (zh) 2019-08-09
US20210043000A1 (en) 2021-02-11
SG11202010607UA (en) 2020-12-30
US11100709B2 (en) 2021-08-24

Similar Documents

Publication Publication Date Title
TWI752494B (zh) 虛擬對象的變形處理方法、裝置、設備及儲存媒體
TWI748432B (zh) 三維局部人體模型的生成方法、裝置、設備及電腦可讀儲存介質
US9639914B2 (en) Portrait deformation method and apparatus
CN106710003B (zh) 一种基于OpenGL ES的三维拍照方法和系统
JP2024522287A (ja) 三次元人体再構成方法、装置、デバイスおよび記憶媒体
CN109151540A (zh) 视频图像的交互处理方法及装置
CN104050708A (zh) 一种3d游戏引擎lod系统的实现方法
CN112288665A (zh) 图像融合的方法、装置、存储介质及电子设备
EP3422709A1 (en) Stereo rendering
US11107267B2 (en) Image generation apparatus, image generation method, and program
JP2020532022A (ja) 全視角方向の球体ライトフィールドレンダリング方法
CN115965735B (zh) 纹理贴图的生成方法和装置
CN116958344A (zh) 虚拟形象的动画生成方法、装置、计算机设备及存储介质
CN109829963A (zh) 一种图像绘制方法及装置、计算设备和存储介质
WO2022183723A1 (zh) 特效控制方法及装置
US11645813B2 (en) Techniques for sculpting digital faces based on anatomical modeling
CN114022616A (zh) 模型处理方法及装置、电子设备及存储介质
JP4717624B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2012164152A5 (zh)
TWI844180B (zh) 影像處理方法和虛擬實境顯示系統
WO2022062570A1 (zh) 图像处理方法和装置
CN111625093B (zh) 一种海量数字点云数据在mr眼镜中的动态调度显示方法
TW202418043A (zh) 影像處理方法和虛擬實境顯示系統
CN117132713A (zh) 模型训练方法、数字人驱动方法及相关装置
WO2023075681A2 (zh) 图像处理方法、装置、电子设备和计算机可读存储介质