背景技術(shù):
基于分組的通信系統(tǒng)允許諸如個(gè)人計(jì)算機(jī)之類的設(shè)備的用戶使用諸如互聯(lián)網(wǎng)協(xié)議(ip)之類的分組協(xié)議而跨計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行通信。基于分組的通信系統(tǒng)可以用于各種類型的通信事件??梢越⒌耐ㄐ攀录ㄕZ(yǔ)音通話、視頻通話、即時(shí)消息傳遞、語(yǔ)音郵件、文件傳輸?shù)取_@些系統(tǒng)對(duì)用戶是有益的是因?yàn)樗鼈兣c固定線路或移動(dòng)網(wǎng)絡(luò)相比常常具有顯著更低的成本。長(zhǎng)途通信尤其是這樣的情況。為了使用基于分組的系統(tǒng),用戶在其設(shè)備上安裝并執(zhí)行客戶端軟件。所述客戶端軟件提供了基于分組的連接以及諸如注冊(cè)和認(rèn)證之類的其他功能。
通信系統(tǒng)允許設(shè)備的用戶跨諸如互聯(lián)網(wǎng)之類的計(jì)算機(jī)網(wǎng)絡(luò)來(lái)進(jìn)行通信??梢越⒌耐ㄐ攀录ㄕZ(yǔ)音通話、視頻通話、即時(shí)消息傳遞、語(yǔ)音郵件、文件傳輸?shù)?。利用視頻通話,除了語(yǔ)音信息之外,通話者還能夠查看另一方的視頻圖像。這使得各方之間能夠進(jìn)行更為自然的通信,因?yàn)槟槻勘砬橐脖粋魉?,由此使得視頻通話更加類似于面對(duì)面對(duì)話。
眾所周知的是,通信客戶端應(yīng)用提供了使得用戶能夠通過(guò)添加二維剪貼畫效果來(lái)在用戶設(shè)備處修改所捕獲的視頻的功能。例如,用戶可以選擇添加胡須效果,應(yīng)用檢測(cè)到用戶的臉部在所捕獲的幀中的位置,并且根據(jù)用戶的臉部在所捕獲的幀中的位置將所述胡須效果覆蓋在所述幀中的位置處。因此,胡須以二維方式隨著用戶臉部在所捕獲的視頻中改變位置而進(jìn)行移動(dòng)。
技術(shù)實(shí)現(xiàn)要素:
本公開(kāi)的實(shí)施例涉及在視頻通話期間向所顯示的視頻幀上進(jìn)行繪制。用戶所繪制的繪圖被映射到視頻幀中的用戶臉部的多個(gè)點(diǎn)上,以使得該繪圖以三維方式隨用戶臉部移動(dòng)。
發(fā)明人已經(jīng)認(rèn)識(shí)到,由于該繪圖是由用戶徒手輸入的,因此難以準(zhǔn)確地繪制到所顯示的視頻幀上,尤其是當(dāng)該視頻幀中的用戶的臉部正在移動(dòng)時(shí)。該問(wèn)題在用戶繪制到另一個(gè)用戶的臉部上,即無(wú)法控制所顯示的視頻幀中的臉部的移動(dòng)量時(shí)更加嚴(yán)重。
根據(jù)本公開(kāi)的第一方面,提供了一種在通過(guò)通信網(wǎng)絡(luò)與至少一個(gè)另外的用戶終端進(jìn)行視頻通話的期間在用戶終端處實(shí)現(xiàn)的方法,所述方法包括:在所述用戶終端的顯示器上顯示用戶界面,以用于顯示所接收的視頻幀;當(dāng)所接收的視頻幀被顯示在所述用戶界面中時(shí),檢測(cè)由用戶使用所述用戶終端的輸入設(shè)備對(duì)在所述用戶界面中所顯示的可選擇的按鈕的選擇;響應(yīng)于所述檢測(cè),禁用對(duì)所述所接收的視頻幀之后所接收的視頻幀的顯示;通過(guò)在所述用戶終端的處理器上執(zhí)行臉部追蹤算法來(lái)確定所述所接收的視頻幀中的用戶的臉部的位置;在所述可選擇的按鈕處于被選擇狀態(tài)時(shí)接收多個(gè)繪圖輸入,每個(gè)繪圖輸入定義了要應(yīng)用在顯示在所述臉部的臉部位置處的圖像數(shù)據(jù);通過(guò)將所述圖像數(shù)據(jù)應(yīng)用于所述臉部的所述臉部位置而根據(jù)所接收的多個(gè)繪圖輸入來(lái)修改所顯示的視頻幀;對(duì)條件進(jìn)行檢測(cè)并且響應(yīng)于檢測(cè)到所述條件,針對(duì)在檢測(cè)到所述條件之后所接收的每個(gè)視頻幀,所述方法還包括:通過(guò)執(zhí)行所述臉部追蹤器算法來(lái)確定在所述所接收的視頻幀中的所述臉部的位置,從而確定所述視頻幀中的所述臉部位置的定位;通過(guò)將所述圖像數(shù)據(jù)應(yīng)用于所述臉部上的所述位置中的每個(gè)位置來(lái)修改所述視頻幀;并且在所述用戶界面中顯示經(jīng)修改的視頻幀。
根據(jù)本公開(kāi)的另一個(gè)方面,提供了一種用戶終端,包括:顯示器;輸入設(shè)備;網(wǎng)絡(luò)接口,其被配置為在所述用戶終端與至少一個(gè)另外的用戶終端之間的視頻通話期間,發(fā)送和接收所述用戶終端與所述通信網(wǎng)絡(luò)之間的視頻數(shù)據(jù);處理器,其被配置為運(yùn)行在所述視頻通話期間用于執(zhí)行以下操作的應(yīng)用:在所述顯示器上顯示用戶界面,以用于顯示所接收的視頻幀;當(dāng)所接收的視頻幀被顯示在所述用戶界面上時(shí),檢測(cè)由用戶使用所述輸入設(shè)備對(duì)在所述用戶界面中所顯示的可選擇的按鈕的選擇;響應(yīng)于所述檢測(cè),禁用對(duì)所述所接收的視頻幀之后所接收的視頻幀的顯示;通過(guò)執(zhí)行臉部追蹤器算法來(lái)確定所述所接收的視頻幀中的用戶的臉部的位置;在所述可選擇的按鈕處于被選擇狀態(tài)時(shí)接收多個(gè)繪圖輸入,每個(gè)繪圖輸入定義了要應(yīng)用在所述臉部上的臉部位置處的圖像數(shù)據(jù);通過(guò)將所述圖像數(shù)據(jù)應(yīng)用至所述臉部上的所述臉部位置中的每個(gè)臉部位置上而根據(jù)所接收的多個(gè)繪圖輸入來(lái)修改所顯示的視頻幀;以及對(duì)條件進(jìn)行檢測(cè)并且響應(yīng)于檢測(cè)到所述條件,針對(duì)在檢測(cè)到所述條件之后所接收的每個(gè)視頻幀:通過(guò)執(zhí)行所述臉部追蹤器算法來(lái)確定在所述所接收的視頻幀中的所述臉部的位置,從而確定所述視頻幀中的所述臉部位置的定位;通過(guò)將所述圖像數(shù)據(jù)應(yīng)用于所述臉部上的所述位置中的每個(gè)位置來(lái)修改所述視頻幀;并且在所述用戶界面中顯示經(jīng)修改的視頻幀。
根據(jù)本公開(kāi)的另一個(gè)方面,提供了一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品被實(shí)施在計(jì)算機(jī)可讀介質(zhì)上,并且被配置為當(dāng)在用戶終端與至少一個(gè)另外的用戶終端之間的視頻通話期間在所述用戶終端的處理器上執(zhí)行時(shí),執(zhí)行以下在本文中所描述的方法中的任何方法。
提供了該發(fā)明內(nèi)容以用簡(jiǎn)化的形式引入了在以下的具體實(shí)施方式中進(jìn)一步描述的概念的選擇。該發(fā)明內(nèi)容不旨在標(biāo)識(shí)所要求保護(hù)主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要求保護(hù)的主題的范圍。
附圖說(shuō)明
為了更好地理解本公開(kāi)并且示出可以如何實(shí)現(xiàn)本公開(kāi),現(xiàn)在將作為示例來(lái)參考以下附圖,其中:
圖1示出了通信系統(tǒng);
圖2示出了用戶終端的示意圖;
圖3示出了在用戶終端上執(zhí)行的幀修改應(yīng)用與通信客戶端應(yīng)用之間的通信;
圖4示出了由幀修改應(yīng)用所提供的用戶界面;
圖5a和圖5b示出了針對(duì)修改視頻數(shù)據(jù)的過(guò)程的流程圖;
圖6示出了識(shí)別所捕獲的視頻幀中的臉部的多個(gè)點(diǎn)的三維三角網(wǎng)格;
圖7示出了二位紋理圖;和
圖8示出了通過(guò)幀修改應(yīng)用繪制到所接收的視頻幀的應(yīng)用。
具體實(shí)施方式
僅僅作為示例對(duì)本公開(kāi)的實(shí)施例進(jìn)行了描述。
圖1示出了通信系統(tǒng)100,其包括與用戶終端102相關(guān)聯(lián)的第一用戶104(用戶a)、與用戶終端108相關(guān)聯(lián)的第二用戶110(用戶b)。用戶終端102和108可以在通信系統(tǒng)100中通過(guò)通信網(wǎng)絡(luò)106進(jìn)行通信,從而允許用戶104和110通過(guò)通信網(wǎng)絡(luò)106與彼此通信。通信網(wǎng)絡(luò)106可以是具有在用戶終端102與第二用戶終端108之間提供通信信道的能力的任何合適的網(wǎng)絡(luò)。例如,通信網(wǎng)絡(luò)106可以是互聯(lián)網(wǎng)或者諸如高數(shù)據(jù)速率移動(dòng)網(wǎng)絡(luò)之類的另一種類型的網(wǎng)絡(luò),例如第三代(“3g”)移動(dòng)網(wǎng)絡(luò)。
應(yīng)當(dāng)注意的是,在可替代的實(shí)施例中,用戶終端可以經(jīng)由未在圖1中示出的額外的中間網(wǎng)絡(luò)而連接至通信網(wǎng)絡(luò)106。例如,如果用戶終端102是移動(dòng)設(shè)備,則其可以經(jīng)由諸如gsm或umts網(wǎng)絡(luò)之類的蜂窩移動(dòng)網(wǎng)絡(luò)(未在圖1中示出)而連接至通信網(wǎng)絡(luò)106。
用戶終端102可以是例如移動(dòng)電話、個(gè)人數(shù)字助理(“pda”)、個(gè)人計(jì)算機(jī)(“pc”)(包括,例如windowstm、macostm和linuxtmpc)、平板計(jì)算機(jī)、游戲設(shè)備、或者能夠連接至通信網(wǎng)絡(luò)106的其他嵌入式設(shè)備。用戶終端102被設(shè)置為從用戶a104接收信息或者向用戶a104輸出信息。
用戶終端102執(zhí)行由與通信系統(tǒng)100相關(guān)聯(lián)的軟件提供商所提供的通信客戶端應(yīng)用112。通信客戶端應(yīng)用112是在用戶終端102中的本地處理器上執(zhí)行的軟件程序。通信客戶端應(yīng)用112在用戶終端102處執(zhí)行所需的處理,以便使得用戶終端102通過(guò)通信系統(tǒng)100發(fā)送和接收數(shù)據(jù)。在用戶終端102處所執(zhí)行的通信客戶端應(yīng)用112可以通過(guò)數(shù)字證書(shū)的呈現(xiàn)(例如,證明用戶104是通信系統(tǒng)的真實(shí)訂閱者——在wo2005/009019中更加詳細(xì)地進(jìn)行了描述)而被認(rèn)證以通過(guò)通信系統(tǒng)進(jìn)行通信。
用戶終端108可以對(duì)應(yīng)于用戶終端102。用戶終端108在本地處理器上執(zhí)行與在用戶終端102處所執(zhí)行的通信客戶端應(yīng)用112相對(duì)應(yīng)的通信客戶端應(yīng)用114。在用戶終端108處的通信客戶端應(yīng)用114執(zhí)行所需要的處理以允許用戶110通過(guò)網(wǎng)絡(luò)106進(jìn)行通信。在圖1中所示出的用戶終端是通信系統(tǒng)中的末端。為了清楚起見(jiàn),圖1僅僅示出了兩個(gè)用戶(104和110)和兩個(gè)用戶終端(102和108),但是更多的用戶和用戶設(shè)備可以被包括在通信系統(tǒng)100中,并且可以使用在相應(yīng)的用戶設(shè)備上執(zhí)行的相應(yīng)的通信客戶端而通過(guò)通信系統(tǒng)100進(jìn)行通信,如在本領(lǐng)域中公知的。
圖2示出了其上執(zhí)行有用于通過(guò)通信系統(tǒng)100來(lái)進(jìn)行通信的通信客戶端應(yīng)用的用戶終端102的詳細(xì)視圖。用戶終端102包括連接有諸如屏幕或觸摸屏之類的顯示器204的中央處理單元(“cpu”)202、諸如小鍵盤206之類的輸入設(shè)備、相機(jī)208、和觸摸屏204。在下文中所描述的實(shí)施例中,相機(jī)208可以是集成到用戶終端102中或者經(jīng)由有線或無(wú)線連接耦合至用戶設(shè)備的常規(guī)網(wǎng)絡(luò)相機(jī)??商娲?,相機(jī)208可以是深度感知相機(jī),例如,飛行時(shí)間或結(jié)構(gòu)光相機(jī)。輸出音頻設(shè)備210(例如,揚(yáng)聲器)和輸入音頻設(shè)備212(例如,麥克風(fēng))連接至cpu202??梢詫@示器204、小鍵盤206、相機(jī)208、輸出音頻設(shè)備210、和輸入音頻設(shè)備212集成到如在圖2中所示出的用戶終端102中。在可替代用戶終端中,顯示器204、小鍵盤206、相機(jī)208、輸出音頻設(shè)備210、和輸入音頻設(shè)備212中的一個(gè)或多個(gè)可以不集成到用戶終端102中,并且可以經(jīng)由相應(yīng)的接口而連接至cpu202。這樣的接口的一個(gè)示例是usb接口。cpu202連接到網(wǎng)絡(luò)接口224,例如用于與通信網(wǎng)絡(luò)106進(jìn)行通信的調(diào)制解調(diào)器??梢詫⒕W(wǎng)絡(luò)接口224集成到如在圖2中所示出的用戶終端102中。在可替代用戶終端中,沒(méi)有將網(wǎng)絡(luò)接口224集成到用戶終端102中。用戶終端102還包括用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器226,如在本領(lǐng)域中公知的那樣。存儲(chǔ)器226可以是永久性存儲(chǔ)器,例如rom。存儲(chǔ)器226可以可替代是臨時(shí)性存儲(chǔ)器,例如ram。
用戶終端102安裝有通信客戶端應(yīng)用112,其中通信客戶端應(yīng)用112被存儲(chǔ)在存儲(chǔ)器226中并且被設(shè)置為在cpu202上執(zhí)行。圖2還示出了在cpu202上執(zhí)行的操作系統(tǒng)(“os”)214。在os214頂層運(yùn)行的是在上文中提到的通信客戶端應(yīng)用112的軟件堆棧216。軟件堆棧示出了i/o層218、客戶端引擎層220、和客戶端用戶界面層(“ui”)222。每一層負(fù)責(zé)具體的功能。因?yàn)槊恳粚油ǔEc兩個(gè)其他層進(jìn)行通信,所以這些層被認(rèn)為布置在堆棧中,如在圖2中所示。操作系統(tǒng)214管理計(jì)算機(jī)的硬件資源,并且處理經(jīng)由網(wǎng)絡(luò)接口224而往來(lái)于通信網(wǎng)絡(luò)106的數(shù)據(jù)。i/o層218包括音頻和/或視頻編碼解碼器,其接收到來(lái)的經(jīng)編碼的流并且對(duì)它們進(jìn)行解碼以適當(dāng)?shù)剌敵鲋翐P(yáng)聲器210和/或顯示器204,其還從麥克風(fēng)212和/或相機(jī)208接收未編碼的音頻和/或視頻數(shù)據(jù)并且對(duì)它們進(jìn)行編碼以作為流而傳輸至通信系統(tǒng)100的其他末端用戶終端??蛻舳艘鎸?20處理如在上文中所討論的voip系統(tǒng)的連接管理功能,例如通過(guò)基于服務(wù)器的或者p2p的地址查找和認(rèn)證來(lái)建立呼叫或其他連接??蛻舳艘孢€可以負(fù)責(zé)沒(méi)有在本文中討論的其他輔助功能??蛻舳艘?20還與客戶端用戶接口層222進(jìn)行通信??蛻舳艘?20還可以被設(shè)置為控制客戶端用戶接口層222以經(jīng)由在顯示器204上顯示的通信客戶端應(yīng)用112的用戶界面向用戶終端102的用戶呈現(xiàn)信息,并且經(jīng)由用戶界面從用戶終端102的用戶接收信息。
也在os214上運(yùn)行的是幀修改應(yīng)用230。以下參考作為分別的應(yīng)用的幀修改應(yīng)用230和通信客戶端應(yīng)用112來(lái)對(duì)實(shí)施例進(jìn)行描述,然而,在下文中更加詳細(xì)地描述的幀修改應(yīng)用230的功能可以被并入到通信客戶端應(yīng)用程序112之中。
圖3示出了幀修改應(yīng)用230如何與通信客戶端應(yīng)用112進(jìn)行交互。
如在圖3中所示,幀修改應(yīng)用230被設(shè)置成接收所捕獲的視頻以及繪圖指令。幀修改應(yīng)用230被配置為根據(jù)所述繪圖指令來(lái)修改所捕獲的視頻幀,并且將經(jīng)修改的視頻幀提供給通信客戶端應(yīng)用程序112。
在下文中所描述的實(shí)施例中,幀修改應(yīng)用230從相機(jī)208接收所捕獲的視頻幀,并且?guī)薷膽?yīng)用230從用戶a104接收繪圖指令。將已經(jīng)響應(yīng)于從用戶a104所接收的繪圖指令而被修改的視頻幀從幀修改應(yīng)用230供應(yīng)至通信客戶端應(yīng)用112,以用于通過(guò)網(wǎng)絡(luò)106而傳輸至用戶終端108。
幀修改應(yīng)用230經(jīng)由在顯示器204上所顯示的用戶界面向用戶a104呈現(xiàn)信息。
圖4示出了在顯示器204的可用區(qū)域400中顯示內(nèi)容的幀修改應(yīng)用230。盡管在圖4中顯示器的可用區(qū)域是整個(gè)顯示器,但顯示器的可用區(qū)域(即對(duì)幀修改應(yīng)用230可用的區(qū)域)可能僅構(gòu)成該顯示器的一部分,例如其中顯示器的其余部分由操作系統(tǒng)和/或在其上執(zhí)行的(多個(gè))其他應(yīng)用程序所使用以顯示其他內(nèi)容。
如在圖4中所示,幀修改應(yīng)用230所提供的用戶界面顯示相機(jī)208所捕獲的視頻數(shù)據(jù)(在圖4中,用戶a104正在查看相機(jī)208)。
如在圖4中所示,幀修改應(yīng)用230可以將至少一個(gè)可選擇的繪圖工具按鈕402覆蓋在所顯示的所捕獲的視頻上,以由用戶a104使用合適的輸入設(shè)備(例如,鼠標(biāo)、與觸摸屏交互的觸控筆、或者直接觸摸觸摸屏)來(lái)選擇??蛇x擇的繪圖工具按鈕402可以包括筆繪圖工具按鈕404a、口紅繪圖工具按鈕404b、和刷子繪圖工具按鈕404c。響應(yīng)于檢測(cè)到對(duì)可選擇的繪圖工具按鈕402中的一個(gè)繪圖工具按鈕的選擇,幀修改應(yīng)用230被設(shè)置為將調(diào)色板406覆蓋在所顯示的所捕獲的視頻上。覆蓋在所顯示的所捕獲的視頻上的調(diào)色板406與所選擇的繪圖工具按鈕相關(guān)聯(lián)。每個(gè)調(diào)色板406包括供用戶a104使用合適的輸入設(shè)備來(lái)選擇的至少一種可選擇的顏色。圖4示出了包括第一顏色408a、第二顏色408b、第三顏色408c、和第四顏色408d的調(diào)色板406。
繪圖工具按鈕404和顏色408的選擇使得用戶a104能夠在在由幀修改應(yīng)用230所提供的用戶界面中所顯示的所捕獲的視頻數(shù)據(jù)上進(jìn)行繪制。幀修改應(yīng)用230包括三維臉部追蹤器功能,其在所捕獲的視頻數(shù)據(jù)中識(shí)別用戶的臉部的多個(gè)點(diǎn),并且在用戶移動(dòng)時(shí)對(duì)這些點(diǎn)進(jìn)行追蹤。根據(jù)在下文中更加詳細(xì)地描述的實(shí)施例,將由用戶a104繪制到所顯示的所捕獲的視頻中的用戶a的臉部上的繪圖映射至由臉部追蹤器所識(shí)別的用戶臉部的點(diǎn)上,以使得繪圖以三維的方式隨著用戶的臉部進(jìn)行移動(dòng)。
幀修改應(yīng)用230可以將可選擇的幀渲染調(diào)節(jié)按鈕412覆蓋在所顯示的所捕獲的視頻上,以由用戶104a使用合適的輸入設(shè)備來(lái)選擇。響應(yīng)于檢測(cè)到對(duì)可選擇的幀渲染調(diào)節(jié)按鈕412的選擇,幀修改應(yīng)用230調(diào)節(jié)所接收的視頻幀在由幀修改應(yīng)用230所提供的用戶界面中被渲染的方式。
存儲(chǔ)器226包括用于在由幀修改應(yīng)用230所提供的用戶界面中被渲染之前存儲(chǔ)所接收的視頻幀的數(shù)據(jù)緩沖器228。
在一個(gè)實(shí)施例中,如果當(dāng)所接收的視頻幀在由幀修改應(yīng)用230所提供的用戶界面中被顯示時(shí),幀修改應(yīng)用230檢測(cè)到對(duì)可選擇的幀渲染調(diào)節(jié)按鈕412的選擇(可選擇的幀渲染調(diào)節(jié)按鈕412接著處于被選擇狀態(tài)),則幀修改應(yīng)用230阻止數(shù)據(jù)緩沖器228中的任何視頻幀從數(shù)據(jù)緩沖器228中被讀取以及在由幀修改應(yīng)用230所提供的用戶界面中被渲染,直到可選擇的幀渲染調(diào)節(jié)按鈕412再次被選擇為止。因此,可選擇的幀渲染調(diào)節(jié)按鈕用于暫停到來(lái)的實(shí)時(shí)視頻數(shù)據(jù)。
響應(yīng)于檢測(cè)到由用戶a104對(duì)可選擇的幀渲染調(diào)節(jié)按鈕412的再次選擇(可選擇的幀渲染調(diào)節(jié)按鈕412接著處于未選擇狀態(tài)),幀修改應(yīng)用230渲染在可選擇的幀渲染調(diào)節(jié)按鈕412被再次選擇之后在數(shù)據(jù)緩沖器228中所接收的第一視頻幀,并且繼續(xù)從數(shù)據(jù)緩沖器228讀取隨后接收的視頻幀以用于在由幀修改應(yīng)用230所提供的用戶界面中渲染。
應(yīng)當(dāng)理解的是,在第一次選擇可選擇的幀渲染調(diào)節(jié)按鈕412與第二次選擇可選擇的幀渲染調(diào)節(jié)按鈕412之間的時(shí)段期間,視頻幀仍然由幀修改應(yīng)用230接收,并且被存儲(chǔ)在數(shù)據(jù)緩沖器228中。
在第二實(shí)施例中,如果當(dāng)所接收的視頻幀在由幀修改應(yīng)用230所提供的用戶界面中被顯示時(shí),幀修改應(yīng)用230檢測(cè)到對(duì)可選擇的幀渲染調(diào)節(jié)按鈕412的選擇(可選擇的幀渲染調(diào)節(jié)按鈕412接著處于被選擇狀態(tài)),則幀修改應(yīng)用230阻止數(shù)據(jù)緩沖器228中的任何視頻幀從數(shù)據(jù)緩沖器228中被讀取以及在由幀修改應(yīng)用230所提供的用戶界面中被渲染,直到經(jīng)過(guò)了預(yù)先確定的時(shí)間段為止。因此,可選擇的幀渲染調(diào)節(jié)按鈕用于減緩到來(lái)的實(shí)時(shí)視頻數(shù)據(jù)。
響應(yīng)于檢測(cè)到從選擇了可選擇的幀渲染調(diào)節(jié)按鈕412開(kāi)始經(jīng)過(guò)了預(yù)先確定的時(shí)間段(可選擇的幀渲染調(diào)節(jié)按鈕412接著處于未選擇狀態(tài)),幀修改應(yīng)用230渲染從選擇了可選擇的幀渲染調(diào)節(jié)按鈕412開(kāi)始到預(yù)先確定的時(shí)間段過(guò)期之后在數(shù)據(jù)緩沖器228中所接收的第一視頻幀,并且繼續(xù)從數(shù)據(jù)緩沖器228讀取隨后接收的視頻幀以用于在由幀修改應(yīng)用230所提供的用戶界面中渲染。
應(yīng)當(dāng)理解的是,在選擇可選擇的幀渲染調(diào)節(jié)按鈕412與預(yù)先確定的時(shí)間段過(guò)期之間的時(shí)段期間,視頻幀仍然由幀修改應(yīng)用230接收,并且被存儲(chǔ)在數(shù)據(jù)緩沖器228中。
將參考圖5a和圖5b更加詳細(xì)地描述響應(yīng)于檢測(cè)到選擇了幀渲染調(diào)節(jié)按鈕412的幀修改應(yīng)用230的操作。
首先參考圖5a,其示出了當(dāng)?shù)谝挥脩艚K端102和第二用戶終端108之間正在進(jìn)行視頻通話時(shí)幀修改應(yīng)用230所執(zhí)行的方法的流程圖500。
過(guò)程從步驟s502開(kāi)始,由此幀修改應(yīng)用230在由幀修改應(yīng)用230所提供的用戶界面中顯示所接收的視頻幀。在示例性實(shí)施例中,幀修改應(yīng)用230從第一用戶終端102的相機(jī)208接收所捕獲的視頻幀。
在步驟s504處,幀修改應(yīng)用230檢測(cè)由用戶a104對(duì)可選擇的幀渲染調(diào)節(jié)按鈕412的選擇。
在步驟506處,幀修改應(yīng)用230檢測(cè)用戶的臉部在所接收到的視頻幀中的位置。幀修改應(yīng)用230可以通過(guò)執(zhí)行臉部追蹤器算法來(lái)執(zhí)行步驟s506。所述臉部追蹤器算法可以基于已知的活動(dòng)外觀模型(aam)方法。所述臉部追蹤器算法以二維方式追蹤臉部特征點(diǎn),并且將三維三角網(wǎng)格擬合至所追蹤的臉部特征點(diǎn)。所述臉部追蹤器算法確定被擬合至用戶的臉部的三維三角網(wǎng)格的每個(gè)頂點(diǎn)的三維像素坐標(biāo)(x,y,z)。所述三維三角網(wǎng)格包括定義了多個(gè)三角形的多個(gè)頂點(diǎn)。在圖6中示出了被擬合至(在視頻幀中所捕獲的)用戶臉部的示例三維三角網(wǎng)格。所述三維三角網(wǎng)格的每個(gè)頂點(diǎn)的坐標(biāo)定義了該頂點(diǎn)在幀中的位置,這可以根據(jù)像素?cái)?shù)量來(lái)定義。如上所述,相機(jī)208可以是常規(guī)相機(jī)或深度感知的相機(jī)。當(dāng)相機(jī)208是深度感知相機(jī)時(shí),由該深度感知相機(jī)所輸出的深度信息被用作對(duì)臉部追蹤器算法的額外的輸入,但無(wú)論相機(jī)208是常規(guī)相機(jī)還是深度感知相機(jī),所述臉部追蹤器算法的輸出都是相同的。
幀修改應(yīng)用230被配置為計(jì)算三維三角網(wǎng)格的二維表示。這在本文中被稱為二維紋理圖700,其在圖7中被示出。
用于計(jì)算三維三角網(wǎng)格的二維表示的各種可能技術(shù)對(duì)本領(lǐng)域技術(shù)人員而言是公知的,并且因此不在本文中詳細(xì)討論。一種示例性方法包括(i)將三維三角網(wǎng)格投影到橢球體上;以及(ii)將所述橢球體投影成二維(例如,使用gall-peters等面積圖投影)。
二維紋理圖700被覆蓋在像素網(wǎng)格上,該像素網(wǎng)格是多個(gè)像素寬和多個(gè)像素高。該像素寬度和像素高度定義了像素網(wǎng)格的分辨率。像素網(wǎng)格的分辨率可以例如是512×512。uv坐標(biāo)(被表達(dá)為像素網(wǎng)格的像素坐標(biāo))用于描述二維紋理圖700的表面。二維紋理圖700中的每個(gè)u,v坐標(biāo)在視頻幀中具有對(duì)應(yīng)的x,y像素坐標(biāo)。像素網(wǎng)格的像素分辨率是相當(dāng)隨意的。如果像素分辨率太小,則紋理映射(在下文中參考步驟s522描述)將在經(jīng)修改的圖像中引入平滑/模糊。如果像素分辨率太大,則紋理映射和效果渲染將會(huì)不必要地變慢。因此,對(duì)于本領(lǐng)域技術(shù)人員將顯而易見(jiàn)的是,選擇與所接收的圖像中的臉部的最大尺寸近似對(duì)應(yīng)的像素網(wǎng)格的像素分辨率是合適的。臉部網(wǎng)格的u,v坐標(biāo)對(duì)于臉部位置、表情、或姿態(tài)是恒定且不變的。在過(guò)程500開(kāi)始之前,u,v坐標(biāo)在離線預(yù)先計(jì)算步驟中被計(jì)算了一次。
在步驟s508處,幀修改應(yīng)用230執(zhí)行紋理映射過(guò)程,由此將在步驟s506處所計(jì)算的三維三角網(wǎng)格中的每個(gè)三角形的紋理復(fù)制到二維紋理圖700中的對(duì)應(yīng)的三角形。對(duì)三維三角網(wǎng)格中的三角形的“紋理”的引用在本文中用于指示三維三角網(wǎng)格中的特定三角形中的每個(gè)像素的顏色值。像素顏色值可以根據(jù)rgb顏色模型來(lái)定義。
在步驟s510處,幀修改應(yīng)用230檢測(cè)到已經(jīng)從用戶a104處接收了繪圖指令(在本文中另外被稱為繪圖輸入),所述繪圖指令定義了要應(yīng)用于在步驟s502處所接收的視頻幀修改。幀修改應(yīng)用230響應(yīng)于用戶a104在由幀修改應(yīng)用230所提供的區(qū)域中進(jìn)行繪制而接收繪圖指令,其中,所接收的視頻幀被顯示為已經(jīng)選擇了繪圖工具按鈕404和顏色408。繪圖指令定義了要應(yīng)用在所接收的視頻幀中的用戶的臉部上的位置處的圖像數(shù)據(jù)(例如,繪圖效果)。在步驟510處,幀修改應(yīng)用230確定由用戶a104進(jìn)行繪制的一組像素坐標(biāo)(x,y)。
在步驟s512處,幀修改應(yīng)用230確定與在步驟s510處所檢測(cè)到的繪圖指令的坐標(biāo)(x,y)相對(duì)應(yīng)的u,v坐標(biāo)。在步驟s514處,幀修改應(yīng)用230以(在步驟s510中所確定的)u,v坐標(biāo)與相關(guān)聯(lián)的效果信息的形式來(lái)將繪圖命令存儲(chǔ)在存儲(chǔ)器226中。與u,v坐標(biāo)相關(guān)聯(lián)的效果信息包括基于由用戶a104所選擇的繪圖工具按鈕404和顏色408而在該u,v坐標(biāo)處要應(yīng)用于二維紋理圖700的繪圖修改的指示。在一些實(shí)施例中,效果信息不包括絕對(duì)顏色值。替代地,該效果信息包括取決于所選擇顏色408的顏色修改因子。該顏色修改因子是根據(jù)乘法項(xiàng)和加法項(xiàng)來(lái)定義的。因此,具有原始顏色值(r,g,b)的像素根據(jù)以下方式而被修改為具有新的顏色值(r',g',b'):
r'=αrr+βr
g'=αgg+βg
b'=αbb+βb
從而,三個(gè)乘法項(xiàng)αr、αg、和αb以及三個(gè)加法項(xiàng)βr、βg、和βb描述了所要應(yīng)用的效果。所述三個(gè)乘法項(xiàng)和三個(gè)加法項(xiàng)的值是預(yù)先配置的,并且根據(jù)所選擇的顏色408而變化。通過(guò)以該方式應(yīng)用顏色修改因子,像素以與視頻幀中的未修改的像素保持一致的方式而被修改。例如,如果相機(jī)208正在捕獲視頻的房間中的光照水平改變,則顏色修改因子確保像素是基于其原始顏色值來(lái)修改的。實(shí)施例還擴(kuò)展到定義了絕對(duì)顏色值的顏色408。所存儲(chǔ)的效果信息還包括有關(guān)繪圖筆劃的寬度的信息,其給出了關(guān)于要修改的u,v坐標(biāo)處的像素周圍的像素的數(shù)量的指示。繪圖筆劃的寬度取決于所選擇的繪圖工具按鈕404。例如,在選擇刷子繪圖工具按鈕404c時(shí)所形成的繪圖筆劃的寬度可以比選擇口紅繪圖工具按鈕404b時(shí)所形成的繪圖筆劃更寬。類似地,在選擇口紅繪圖工具按鈕404b時(shí)所形成的繪圖筆劃的寬度可以比在選擇鋼筆繪圖工具按鈕404a時(shí)所形成的繪圖筆劃更寬。
在步驟s516處,幀修改應(yīng)用230根據(jù)在步驟s514處所存儲(chǔ)的繪制命令來(lái)修改二維紋理圖700。即,針對(duì)在步驟s512處所確定的u,v坐標(biāo),幀修改應(yīng)用230根據(jù)其相關(guān)聯(lián)的效果信息來(lái)修改二維紋理圖700的u,v坐標(biāo)。
在步驟518處,幀修改應(yīng)用230執(zhí)行與在步驟s508處所執(zhí)行的紋理映射相反的紋理映射過(guò)程。在步驟s518處,二維紋理圖700中的每個(gè)三角形的紋理被復(fù)制到在步驟s506處所確定的三維三角網(wǎng)格的對(duì)應(yīng)的三角形。對(duì)二維紋理圖700中的三角形的“紋理”的引用在本文中用于表示二維紋理圖700中的特定三角形中的每個(gè)像素的顏色值。
響應(yīng)于由幀修改應(yīng)用230所執(zhí)行的步驟s518,對(duì)在步驟s502處所顯示的視頻幀的修改在由幀修改應(yīng)用230所提供的用戶界面中進(jìn)行渲染。
步驟s518可以使用z緩沖來(lái)實(shí)現(xiàn)。如果三維三角網(wǎng)格中的三角形的一部分必須被渲染在視頻幀中與三維三角網(wǎng)格的另一個(gè)三角形的一部分相同的x,y像素中,則對(duì)這些部分的深度(z坐標(biāo))進(jìn)行比較,并且視頻幀的x,y像素從最接近于用戶終端102的顯示器204的觀看者(例如,用戶a)的三角形獲得其顏色。使用z緩沖來(lái)執(zhí)行步驟s518確保了屬于三維三角網(wǎng)格中的多于一個(gè)三角形的x,y像素從最接近于觀看者(例如,用戶a)的三角形獲得其顏色,即距離較遠(yuǎn)的三角形被最接近的一個(gè)三角形所遮擋。
z緩沖技術(shù)的替代物是確定在三維三角網(wǎng)格中的每個(gè)三角形的中點(diǎn)處的深度(z坐標(biāo))值,并且根據(jù)三維三角網(wǎng)格中的所有三角形的中點(diǎn)z值將它們排序成經(jīng)排序的列表。通過(guò)從距離顯示器204的觀看者最遠(yuǎn)的三維三角網(wǎng)格中的三角形開(kāi)始渲染,并且完成有序列表而以渲染距離顯示器204的觀看者最近的三維三角網(wǎng)格中的三角形結(jié)束,這也將正確地對(duì)遮擋進(jìn)行處理。
在步驟520處,幀修改應(yīng)用230將經(jīng)修改的視頻幀供應(yīng)至通信客戶端應(yīng)用112以便經(jīng)由網(wǎng)絡(luò)接口224通過(guò)網(wǎng)絡(luò)106傳輸至第二用戶終端108。本領(lǐng)域技術(shù)人員將意識(shí)到的是,可以在傳輸之前由通信客戶端應(yīng)用112對(duì)經(jīng)修改的視頻幀進(jìn)行處理(例如,進(jìn)行編碼和分組)。應(yīng)當(dāng)理解的是,在通過(guò)其可以將幀修改應(yīng)用230的功能并入到通信客戶端應(yīng)用112的實(shí)施例中,在步驟s518處,通信在由通信客戶端應(yīng)用112所提供的用戶界面中渲染經(jīng)修改的視頻幀,并且不執(zhí)行步驟s520。
在步驟s522處,幀修改應(yīng)用230確定是否檢測(cè)到條件。在第一實(shí)施例中,所述條件與可選擇的幀渲染調(diào)節(jié)按鈕412再次被選擇(在步驟s504處被選擇之后)相對(duì)應(yīng),即,可選擇的幀渲染調(diào)節(jié)按鈕412處于未選擇狀態(tài)。在第二實(shí)施例中,所述條件與從在步驟s504處選擇了可選擇的幀渲染調(diào)節(jié)按鈕412開(kāi)始已經(jīng)過(guò)了預(yù)先確定的時(shí)間段相對(duì)應(yīng)。
如果幀修改應(yīng)用230在步驟s522處確定沒(méi)有檢測(cè)到所述條件,則過(guò)程500進(jìn)行回步驟s510。在過(guò)程500在步驟s510-s522之間循環(huán)期間,用戶a能夠在步驟s502處所顯示的單個(gè)視頻幀中的用戶的臉部上進(jìn)行繪制。這使得與當(dāng)從數(shù)據(jù)緩沖器連續(xù)地讀取所接收的視頻幀,以用于在由幀修改應(yīng)用230所提供的用戶界面中渲染時(shí)用戶在移動(dòng)相比,用戶a104能夠在視頻幀中的臉部上精確地繪制。
如果幀修改應(yīng)用230在步驟522處確定已經(jīng)檢測(cè)到所述條件,則過(guò)程500進(jìn)行至在圖5b中所示出的步驟s524。
在步驟524處,幀修改應(yīng)用230從所述數(shù)據(jù)緩沖器接收視頻幀。
在第一實(shí)施例中,在步驟s524處所接收的視頻幀與第一視頻幀相對(duì)應(yīng),所述第一視頻幀是在可選擇的幀渲染調(diào)節(jié)按鈕412被選擇為處于未選擇狀態(tài)之后在所述數(shù)據(jù)緩沖器中所接收的。在第二實(shí)施例中,在步驟s524處所接收的視頻幀與第一視頻幀相對(duì)應(yīng),所述第一視頻幀是在從檢測(cè)到在s504處選擇了可選擇的幀渲染調(diào)節(jié)按鈕412開(kāi)始預(yù)先確定的時(shí)間段過(guò)期之后在所述數(shù)據(jù)緩沖器中所接收的。
在步驟s526處,幀修改應(yīng)用230檢測(cè)在步驟s522處所接收的視頻幀中的用戶的臉部的位置。已經(jīng)參考步驟s506描述了該過(guò)程,因此出于清楚的目的不再重復(fù)。
在步驟s528處,所述幀修改應(yīng)用230執(zhí)行紋理映射,從而將在步驟s526處所計(jì)算的三維三角網(wǎng)格中的每個(gè)三角形的紋理復(fù)制到二維紋理圖700中的對(duì)應(yīng)的三角形。
在步驟s530處,已經(jīng)響應(yīng)于每次過(guò)程500循環(huán)通過(guò)步驟s510-s522而步驟s514被執(zhí)行而被存儲(chǔ)在存儲(chǔ)器226中的所有繪圖命令是由幀修改應(yīng)用230接收的并且勇于修改二維紋理圖700。即,針對(duì)所接收的u,v坐標(biāo)中的每個(gè)u,v坐標(biāo),幀修改應(yīng)用230根據(jù)與所述u,v坐標(biāo)相關(guān)聯(lián)的效果信息來(lái)修改二維紋理圖700的u,v坐標(biāo)。
在步驟s532處,幀修改應(yīng)用230執(zhí)行與在步驟528處所執(zhí)行的紋理映射過(guò)程相反的紋理映射過(guò)程。已經(jīng)參考步驟s518描述了該過(guò)程,因此出于清楚的目的不再重復(fù)。
響應(yīng)于由幀修改應(yīng)用230執(zhí)行步驟s532,在步驟s524處所接收的視頻幀以經(jīng)修改的形式在由幀修改應(yīng)用230所提供的用戶界面中顯示。
在步驟s534處,幀修改應(yīng)用230將所述經(jīng)修改的視頻幀供應(yīng)至通信客戶端應(yīng)用112以用于經(jīng)由網(wǎng)絡(luò)接口224通過(guò)網(wǎng)絡(luò)106傳輸至第二用戶終端108。應(yīng)當(dāng)意識(shí)到的是,在幀修改應(yīng)用230的功能被并入到通信客戶端應(yīng)用112中的實(shí)施例中,在步驟s532處,通信在由通信客戶端應(yīng)用112所提供的用戶界面中渲染經(jīng)修改的視頻幀,并且不執(zhí)行步驟s534。
過(guò)程500接著進(jìn)行至步驟s536,其中,幀修改應(yīng)用230確定可選擇的幀渲染調(diào)節(jié)按鈕412是否被選擇。如果在步驟536處,幀修改應(yīng)用230確定可選擇的幀渲染調(diào)節(jié)按鈕412已經(jīng)被選擇,則過(guò)程500返回至s524,其中,幀修改應(yīng)用230從數(shù)據(jù)緩沖器接收接下來(lái)的視頻幀,并且重復(fù)步驟s524-s536的循環(huán)。
即,當(dāng)可選擇的幀渲染調(diào)節(jié)按鈕412處于被選擇狀態(tài)時(shí)對(duì)在步驟s502處所顯示的視頻幀進(jìn)行的所有繪制都被應(yīng)用于當(dāng)可選擇的幀渲染調(diào)節(jié)按鈕412處于未選擇狀態(tài)時(shí)在數(shù)據(jù)緩沖器中所接收的所有視頻幀。將由用戶a104繪制到視頻中的用戶a的臉部上的繪圖映射到由臉部追蹤器所識(shí)別的用戶的臉部的點(diǎn)上,以使得所述繪圖以三維的方式隨著用戶的臉部移動(dòng)。
如果在步驟s536處,幀修改應(yīng)用230確定可選擇的幀渲染調(diào)節(jié)按鈕412已經(jīng)被選擇,所述過(guò)程500進(jìn)行至步驟s506。
在上文中所描述的實(shí)施例中,將在由幀修改應(yīng)用230在顯示器204上所提供的用戶界面中所顯示的任何經(jīng)修改的幀由通信客戶端應(yīng)用112發(fā)送只第二用戶終端108。因此,用戶b110看到用戶a104看到的內(nèi)容。應(yīng)當(dāng)理解的是,在步驟s504處選擇了可選擇的幀渲染調(diào)節(jié)按鈕412與在步驟s522處檢測(cè)到所述條件之間的時(shí)間段期間,由幀修改應(yīng)用230所接收并且存儲(chǔ)在數(shù)據(jù)緩沖器228中的視頻幀不被發(fā)送至第二用戶終端108,并且可以從數(shù)據(jù)緩沖器228中丟棄。在該時(shí)間段中,在步驟s502處所顯示的所接收的視頻幀以及經(jīng)修改的形式被發(fā)送至第二用戶終端108。
在可替代的實(shí)施例中,在步驟s504處選擇了可選擇的幀渲染調(diào)節(jié)按鈕412與在步驟s522處檢測(cè)到所述條件之間的時(shí)間段期間,由幀修改應(yīng)用230所接收并且存儲(chǔ)在數(shù)據(jù)緩沖器228中的視頻幀被發(fā)送至第二用戶終端108。即,當(dāng)可選擇的幀渲染調(diào)節(jié)按鈕412處于被選擇的狀態(tài)時(shí),所捕獲的實(shí)時(shí)視頻被發(fā)送至第二用戶終端。此外,繪圖修改信息在每次其被確定時(shí)被發(fā)送至第二用戶終端。該繪圖修改信息是以在步驟s510處所確定的像素坐標(biāo)(x,y)或者在步驟s512處所確定的u,v坐標(biāo)為形式的。這允許在第二用戶終端上執(zhí)行的幀修改應(yīng)用根據(jù)所接收的繪圖修改信息來(lái)修改所接收的視頻幀。
在另外的可替代的實(shí)施例中,在步驟s504處選擇了可選擇的幀渲染調(diào)節(jié)按鈕412與在步驟s522處檢測(cè)到所述條件之間的時(shí)間段期間,由幀修改應(yīng)用230所接收并且存儲(chǔ)在數(shù)據(jù)緩沖器228中的視頻幀被發(fā)送至第二用戶終端108。即,當(dāng)可選擇的幀渲染調(diào)節(jié)按鈕412處于被選擇的狀態(tài)時(shí),所捕獲的實(shí)時(shí)視頻被發(fā)送至第二用戶終端。在該另外的可替代的實(shí)施例中,一旦在步驟s522處檢測(cè)到所述條件,則繪圖修改信息被發(fā)送至第二用戶終端。該繪圖修改信息是以每次執(zhí)行步驟s510時(shí)所確定的多個(gè)像素坐標(biāo)(x,y)或者每次執(zhí)行步驟s512時(shí)所確定的多個(gè)u,v坐標(biāo)為形式的。這允許在第二用戶終端上執(zhí)行的幀修改應(yīng)用在接收到繪圖修改信息之后根據(jù)所接收的繪圖修改信息來(lái)修改所接收的視頻幀。
必須針對(duì)每個(gè)視頻幀而重新渲染二維紋理圖700(在步驟s508和s526處),因?yàn)槠浔仨毎瑏?lái)自所捕獲圖像(在視頻幀中)的最新更新的紋理。在另一方面,可以將繪圖效果預(yù)先渲染成分別的uv圖(在本文中被稱為“效果圖”)。該“效果圖”保持不變直到用戶添加或刪除繪圖筆劃為止。將該效果圖混合到二維紋理圖700上以創(chuàng)建三維三角網(wǎng)格的經(jīng)混合的二維表示。通過(guò)將該效果圖的分辨率設(shè)置為等于二維紋理圖700的分辨率,該混合可以以簡(jiǎn)單的逐像素循環(huán)來(lái)完成,而不需要三維三角網(wǎng)格或遮擋的知識(shí)。三維三角網(wǎng)格的經(jīng)混合的二維表示的u,v坐標(biāo)中的每個(gè)從二維紋理圖700的對(duì)應(yīng)的u,v坐標(biāo)獲取紋理,除非該效果圖已經(jīng)在特定的u,v坐標(biāo)處被修改,在被修改的情況下,三維三角網(wǎng)格的經(jīng)混合的二維表示的u,v坐標(biāo)從所述效果圖獲取紋理。
圖8示出了由幀修改應(yīng)用230所提供的用戶界面,該用戶界面是在用戶a通過(guò)在可選擇的幀渲染調(diào)節(jié)按鈕412處于被選擇的狀態(tài)時(shí)移動(dòng)光標(biāo)802而繪制了刷子筆劃801a和801b之后提供的。
當(dāng)可選擇的幀渲染調(diào)節(jié)按鈕412處于未選擇狀態(tài)時(shí),繪圖801a和801b粘貼至所捕獲的視頻數(shù)據(jù)中的臉部的皮膚上,并且以三維方式隨著臉部移動(dòng)。例如,如果不同于如在圖8中所示出的直接看向相機(jī)208,而是用戶將他的頭部轉(zhuǎn)90度以側(cè)對(duì)相機(jī)208,則將筆劃801a、801b中的僅僅一個(gè)在由幀修改應(yīng)用230所供用戶界面中進(jìn)行渲染(取決于用戶是以順時(shí)針還是逆時(shí)針轉(zhuǎn)動(dòng)他的頭部的)。
繪圖時(shí)有多個(gè)繪圖指令來(lái)定義的。將每個(gè)繪圖的u,v坐標(biāo)以隊(duì)列存儲(chǔ)在存儲(chǔ)器226中,由此,最近的繪圖的u,v坐標(biāo)被存儲(chǔ)在隊(duì)列頂部而最早的繪圖的u,v坐標(biāo)被存儲(chǔ)在隊(duì)列底部。
如在圖4和8中所示,幀修改應(yīng)用230可以將可選擇的撤銷按鈕414覆蓋在所顯示的所捕獲的視頻上以供用戶a104使用合適的輸入設(shè)備來(lái)選擇。響應(yīng)于檢測(cè)到對(duì)可選擇的撤銷按鈕414的選擇,幀修改應(yīng)用230被設(shè)置為移除存儲(chǔ)器226中的隊(duì)列頂部的u,v坐標(biāo)。因此,當(dāng)執(zhí)行步驟s528時(shí),用戶a104所繪制的最新的繪圖不再被渲染(由幀修改應(yīng)用230所接收的隨后的視頻幀不利用該最新繪圖進(jìn)行修改)。
如在圖4和8中所示,幀修改應(yīng)用230可以將可選擇的新繪圖按鈕416覆蓋在所顯示的所捕獲的視頻上以供用戶a104使用合適的輸入設(shè)備來(lái)選擇。響應(yīng)于檢測(cè)到對(duì)可選擇的新繪圖按鈕416的選擇,幀修改應(yīng)用230被設(shè)置為移除存儲(chǔ)器226中的隊(duì)列中所存儲(chǔ)的所有繪圖的u,v坐標(biāo)。因此,用戶a104截止該時(shí)間點(diǎn)所繪制的所有繪圖都不再由幀修改應(yīng)用230來(lái)渲染。
如在圖4和8中所示,幀修改應(yīng)用230可以將可選擇的保存按鈕418覆蓋在所顯示的所捕獲的視頻上以供用戶a104使用合適的輸入設(shè)備來(lái)選擇。響應(yīng)于檢測(cè)到對(duì)可選擇的保存按鈕418的選擇,幀修改應(yīng)用230被設(shè)置為將繪圖文件保存至存儲(chǔ)器226。所保存的繪圖文件包括在保存按鈕418被選擇時(shí)存儲(chǔ)在存儲(chǔ)器226中的所有u,v坐標(biāo)(及其相關(guān)聯(lián)的效果信息)。因此,繪圖文件是以與臉部形狀以及相機(jī)208的分辨率和類型無(wú)關(guān)的格式來(lái)保存的。這使得所保存的繪圖文件能夠在通信系統(tǒng)100的用戶之間進(jìn)行分享。
盡管已經(jīng)參考由此幀修改應(yīng)用230從第一用戶終端102的相機(jī)208接收所捕獲的視頻幀的場(chǎng)景以及在這些所捕獲的視頻幀進(jìn)行繪制的用戶a104(從用戶a104接收的繪圖指令)而在上文中描述了示例性實(shí)施例,但本公開(kāi)的原理擴(kuò)展至其他場(chǎng)景。
在另一個(gè)場(chǎng)景中,由在第一用戶終端108上執(zhí)行的幀修改應(yīng)用230所接收的所捕獲的視頻(在圖3中所示)是通過(guò)網(wǎng)絡(luò)106從第二用戶終端108接收的(由第二用戶終端108的相機(jī)所捕獲),并且在由幀修改應(yīng)用230所提供的用戶界面中進(jìn)行顯示——繪圖指令(在圖3中所示)是響應(yīng)于用戶a104在這些所顯示的視頻幀上進(jìn)行繪制而從用戶a104接收的。因此,在該實(shí)施例中,用戶a104在第一用戶終端102上所顯示的用戶b的臉部上進(jìn)行繪制,并且該繪圖是在第一用戶終端102的顯示器204上渲染的。
盡管已經(jīng)參考通過(guò)用戶在到來(lái)的實(shí)時(shí)視頻的幀上繪制刷子筆劃繪制的繪圖而對(duì)實(shí)施例進(jìn)行了描述,但是本公開(kāi)的實(shí)施例擴(kuò)展到包括將預(yù)先計(jì)算的三維圖形對(duì)象應(yīng)用至到來(lái)的實(shí)時(shí)視頻的幀的繪圖指令。例如,用戶可以選擇將帽子圖形放置到臉上,因此根據(jù)在上文中所描述的實(shí)施例,該帽子圖形將與三維三角網(wǎng)格的頂點(diǎn)相關(guān)聯(lián),并且因此以三維方式隨著(在視頻中所捕獲的)用戶的移動(dòng)而移動(dòng)。
已經(jīng)在上文中描述了本公開(kāi)的第一方面。
檢測(cè)所述條件的步驟包括確定對(duì)在所述用戶界面中所顯示的可選擇的按鈕的另外的選擇。
檢測(cè)所述條件的步驟可以包括,檢測(cè)從選擇了在所述用戶界面中所顯示的可選擇的按鈕開(kāi)始已經(jīng)過(guò)了預(yù)先確定的時(shí)間段。
確定在所述所接收的視頻幀中的用戶的臉部的位置包括:以二維方式來(lái)識(shí)別所述臉部中的臉部特征點(diǎn),并且將三維三角網(wǎng)格擬合至所追蹤的臉部特征點(diǎn),其中每個(gè)繪圖輸入定義了要應(yīng)用在所述三維三角網(wǎng)格上的位置處的圖像數(shù)據(jù)。
修改所述所顯示的視頻幀的步驟包括將所述三維三角網(wǎng)格中的每個(gè)三角形的紋理映射到所述三維三角網(wǎng)格的二維表示上;并且針對(duì)所接收的每個(gè)繪圖輸入:確定在所述三維三角網(wǎng)格的二維表示中與所述三維三角網(wǎng)格上的所述位置相對(duì)應(yīng)的位置;將所述圖像數(shù)據(jù)應(yīng)用于所述三維三角網(wǎng)格的所述二維表示中的所確定的位置;并且將所述三維三角網(wǎng)格的所述二維表示中的每個(gè)三角形的紋理映射到所述三維三角網(wǎng)格上。
修改所述所顯示的視頻幀的步驟包括將所述三維三角網(wǎng)格中的每個(gè)三角形的紋理映射到所述三維三角網(wǎng)格的二維表示上;并且針對(duì)所接收的每個(gè)繪圖輸入:確定在所述三維三角網(wǎng)格的第二二維表示中與所述三維三角網(wǎng)格上的所述位置相對(duì)應(yīng)的位置;將所述圖像數(shù)據(jù)應(yīng)用于所述三維三角網(wǎng)格的所述第二二維表示中的所確定的位置;將所述三維三角網(wǎng)格的所述第二二維表示混合到所述三維三角網(wǎng)格的所述第一二維表示上,以創(chuàng)建所述三維三角網(wǎng)格的經(jīng)混合的二維表示;并且將所述三維三角網(wǎng)格的所述經(jīng)混合二維表示中的每個(gè)三角形的紋理映射到所述三維三角網(wǎng)格上。
確定在檢測(cè)到所述條件之后所接收到的每個(gè)視頻幀中的用戶的臉部的位置包括:以二維方式來(lái)識(shí)別所述臉部中的臉部特征點(diǎn),并且將三維三角網(wǎng)格擬合至所追蹤的臉部特征點(diǎn),其中每個(gè)繪圖輸入定義了要應(yīng)用在所述三維三角網(wǎng)格上的位置處的圖像數(shù)據(jù)。
修改在檢測(cè)到所述條件之后所接收到的每個(gè)視頻幀的步驟包括:將所述三維三角網(wǎng)格中的每個(gè)三角形的紋理映射到所述三維三角網(wǎng)格的二維表示上;并且針對(duì)所接收的每個(gè)繪圖輸入:確定在所述三維三角網(wǎng)格的二維表示中與所述三維三角網(wǎng)格上的所述位置相對(duì)應(yīng)的位置;將所述圖像數(shù)據(jù)應(yīng)用于所述三維三角網(wǎng)格的所述二維表示中的所確定的位置;并且將所述三維三角網(wǎng)格的所述二維表示中的每個(gè)三角形的紋理映射到所述三維三角網(wǎng)格上。
修改在檢測(cè)到所述條件之后所接收到的每個(gè)視頻幀的步驟包括:將所述三維三角網(wǎng)格中的每個(gè)三角形的紋理映射到所述三維三角網(wǎng)格的二維表示上;并且針對(duì)所接收的每個(gè)繪圖輸入:確定在所述三維三角網(wǎng)格的第二二維表示中與所述三維三角網(wǎng)格上的所述位置相對(duì)應(yīng)的位置;將所述圖像數(shù)據(jù)應(yīng)用于所述三維三角網(wǎng)格的所述第二二維表示中的所確定的位置;將所述三維三角網(wǎng)格的所述第二二維表示混合到所述三維三角網(wǎng)格的第一二維表示上,以創(chuàng)建所述三維三角網(wǎng)格的經(jīng)混合的二維表示;并且將所述三維三角網(wǎng)格的所述經(jīng)混合二維表示中的每個(gè)三角形的紋理映射到所述三維三角網(wǎng)格上。
所述方法還可以包括在所述用戶界面中顯示至少一個(gè)可選擇的繪圖工具按鈕。
所述至少一個(gè)可選擇的繪圖工具按鈕可以包括以下中的一個(gè)或其任何組合:筆繪圖工具按鈕、口紅繪圖工具按鈕、和刷子繪圖工具按鈕。
所述方法還可以包括響應(yīng)于檢測(cè)到由用戶使用所述用戶終端的輸入設(shè)備對(duì)所述至少一個(gè)可選擇的繪圖工具按鈕的選擇而顯示與所選擇的繪圖工具按鈕相關(guān)聯(lián)的多種可選擇的顏色。
所述圖像數(shù)據(jù)可以是基于所選擇的繪圖工具按鈕以及與所述所選擇的繪圖工具按鈕相關(guān)聯(lián)的所述多種可選擇的顏色中的所選擇顏色的。
所述視頻幀可以是從所述用戶終端的相機(jī)接收的。
所述方法還可以包括將每個(gè)經(jīng)修改的視頻幀通過(guò)所述通信網(wǎng)絡(luò)發(fā)送至所述至少一個(gè)另外的用戶終端。
所述方法還可以包括在顯示視頻幀時(shí)防止所述視頻幀被禁止通過(guò)所述通信網(wǎng)絡(luò)而發(fā)送至所述至少一個(gè)另外的用戶終端。
所述方法還包括將在視頻幀的顯示被禁用時(shí)所接收的視頻幀通過(guò)所述通信網(wǎng)絡(luò)發(fā)送至所述至少一個(gè)另外的用戶終端。
所述方法還包括:當(dāng)接收到每個(gè)繪圖輸入時(shí),將所述繪圖輸入的指示發(fā)送至所述至少一個(gè)另外的用戶終端。可替代地,所述方法還可以包括響應(yīng)于檢測(cè)到所述條件而發(fā)送多個(gè)繪圖輸入的指示。
在圖5a和圖5b中分別地示出的步驟可以或可以不被實(shí)現(xiàn)為分別的步驟,并且可以或可以不以所示出的順序來(lái)實(shí)現(xiàn)。
通常而言,在本文中所描述的任何功能都可以使用軟件、固件、硬件(例如,固定邏輯電路)、或這些實(shí)現(xiàn)的組合來(lái)實(shí)現(xiàn)。如在本文中所使用的術(shù)語(yǔ)“控制器”、“功能”、“組件”和“應(yīng)用”通常表示軟件、固件、硬件、或其組合。在軟件實(shí)現(xiàn)的情況下,控制器、功能、組件、或應(yīng)用表示當(dāng)在處理器(例如,一個(gè)或多個(gè)cpu)上執(zhí)行時(shí)執(zhí)行指定的任務(wù)的程序代碼??梢詫⑺龀绦虼a存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)器設(shè)備中。在下文中所描述的技術(shù)的特征是與平臺(tái)無(wú)關(guān)的,這意味著可以在具有多種處理器的多種商業(yè)計(jì)算平臺(tái)上實(shí)現(xiàn)所述技術(shù)。
例如,用戶終端還可以包括使得用戶終端的硬件執(zhí)行操作的實(shí)體(例如,軟件),例如,處理器功能塊等。例如,用戶設(shè)備可以包括計(jì)算機(jī)可讀介質(zhì),其可以被配置為保存使得用戶終端,并且更加特別地使得操作系統(tǒng)和用戶終端的相關(guān)聯(lián)的硬件執(zhí)行操作的指令。因此,指令用于配置操作系統(tǒng)和相關(guān)聯(lián)的硬件以執(zhí)行操作,并且以該方式引起操作系統(tǒng)的狀態(tài)的轉(zhuǎn)換并且使得相關(guān)聯(lián)的硬件執(zhí)行功能。可以由計(jì)算機(jī)可讀介質(zhì)通過(guò)多種不同的配置而將指令提供至用戶終端。
計(jì)算機(jī)可讀介質(zhì)的一種這樣的配置是信號(hào)承載介質(zhì),并且因此被配置為將指令(例如,作為載波)發(fā)送至計(jì)算設(shè)備,例如,經(jīng)由網(wǎng)絡(luò)。計(jì)算機(jī)可讀介質(zhì)還可以被配置為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),并且因此不是信號(hào)承載介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的示例包括:隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、光盤、閃速存儲(chǔ)器、硬盤存儲(chǔ)器、以及可以使用磁、光、和其他技術(shù)來(lái)存儲(chǔ)指令和其他數(shù)據(jù)的其他存儲(chǔ)器設(shè)備。
盡管已經(jīng)用特定于結(jié)構(gòu)特征和/或方法動(dòng)作的語(yǔ)言描述了主題,但是應(yīng)當(dāng)理解的是,在所附權(quán)利要求中所限定的主題不一定限于在上文中所描述的具體的特征或動(dòng)作。相反,在上文中所描述的具體的特征和動(dòng)作是作為實(shí)現(xiàn)所述權(quán)利要求的示例形式而公開(kāi)的。