TW202433242A - 用於虛擬表示呼叫的通信框架 - Google Patents
用於虛擬表示呼叫的通信框架 Download PDFInfo
- Publication number
- TW202433242A TW202433242A TW112149100A TW112149100A TW202433242A TW 202433242 A TW202433242 A TW 202433242A TW 112149100 A TW112149100 A TW 112149100A TW 112149100 A TW112149100 A TW 112149100A TW 202433242 A TW202433242 A TW 202433242A
- Authority
- TW
- Taiwan
- Prior art keywords
- user
- virtual
- client device
- information
- grid
- Prior art date
Links
- 238000004891 communication Methods 0.000 title claims description 71
- 238000000034 method Methods 0.000 claims abstract description 208
- 230000004044 response Effects 0.000 claims description 12
- 238000009877 rendering Methods 0.000 description 167
- 239000010410 layer Substances 0.000 description 121
- 230000036544 posture Effects 0.000 description 98
- 238000010586 diagram Methods 0.000 description 97
- 230000001815 facial effect Effects 0.000 description 74
- 230000006870 function Effects 0.000 description 64
- 210000003128 head Anatomy 0.000 description 59
- 238000013528 artificial neural network Methods 0.000 description 50
- 230000001419 dependent effect Effects 0.000 description 44
- 239000000203 mixture Substances 0.000 description 42
- 238000011176 pooling Methods 0.000 description 42
- 210000004209 hair Anatomy 0.000 description 36
- 230000008569 process Effects 0.000 description 36
- 230000011664 signaling Effects 0.000 description 34
- 238000012549 training Methods 0.000 description 31
- 230000015572 biosynthetic process Effects 0.000 description 28
- 238000012545 processing Methods 0.000 description 28
- 238000003786 synthesis reaction Methods 0.000 description 28
- 239000013598 vector Substances 0.000 description 27
- 238000007781 pre-processing Methods 0.000 description 24
- 230000004913 activation Effects 0.000 description 21
- 238000001994 activation Methods 0.000 description 21
- 239000000463 material Substances 0.000 description 19
- 230000008054 signal transmission Effects 0.000 description 19
- 239000000872 buffer Substances 0.000 description 18
- 238000013527 convolutional neural network Methods 0.000 description 18
- 230000033001 locomotion Effects 0.000 description 17
- 230000003190 augmentative effect Effects 0.000 description 15
- 239000011521 glass Substances 0.000 description 15
- 230000008921 facial expression Effects 0.000 description 13
- 210000002478 hand joint Anatomy 0.000 description 13
- 238000010801 machine learning Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 11
- 238000013135 deep learning Methods 0.000 description 9
- 210000000887 face Anatomy 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 238000006073 displacement reaction Methods 0.000 description 7
- 102100038126 Tenascin Human genes 0.000 description 6
- 108010008125 Tenascin Proteins 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000005259 measurement Methods 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 239000004984 smart glass Substances 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000002156 mixing Methods 0.000 description 3
- 230000007935 neutral effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000004886 head movement Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 1
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 1
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 241000289581 Macropus sp. Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 206010044565 Tremor Diseases 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 210000004709 eyebrow Anatomy 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000005304 optical glass Substances 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000016776 visual perception Effects 0.000 description 1
Images
Abstract
描述了用於在用戶之間建立一個或多個虛擬對話的系統和技術。例如,第一設備可以向第二設備發送針對虛擬對話的虛擬表示呼叫的呼叫建立請求,並且可以從第二設備接收指示接受呼叫建立請求的呼叫接受。第一設備可以向第二設備發送針對第一設備的第一用戶的第一虛擬表示的第一網格資訊和針對第一虛擬表示的第一網格動畫參數。第一設備可以從第二設備接收針對第二設備的第二用戶的第二虛擬表示的第二網格資訊和針對第二虛擬表示的第二網格動畫參數。第一設備可以基於第二網格資訊和第二網格動畫參數來產生第二用戶的第二虛擬表示。
Description
本申請主張於2023年1月19日提交的美國暫時申請63/480,677的權益,其全部內容透過引用併入本文並用於所有目的。
本公開內容總體上涉及用於虛擬環境或部分虛擬環境的虛擬內容。例如,本公開內容的各方面包括用於提供虛擬內容的分布式產生的系統和技術。
延展實境(XR)(例如,虛擬實境、擴增實境、混合實境)系統可以透過將用戶沉浸在(由虛擬內容組成的)完全虛擬環境中來向用戶提供虛擬體驗,和/或可以透過將真實世界或實體環境與虛擬環境組合來向用戶提供擴增或混合實境體驗。
用於向用戶提供虛擬、擴增或混合實境的XR內容的一個示例用例是向用戶呈現“虛擬實境(metaverse)”體驗。虛擬實境實質上是包括一個或多個三維(3D)虛擬世界的虛擬世界。例如,虛擬實境虛擬環境可以允許用戶與其他用戶虛擬地互動(例如,在社交環境中、在虛擬會議中等)、虛擬地購買商品、服務、財產或其他項目、玩計算機遊戲和/或體驗其他服務。
在一些情況下,用戶可以在虛擬環境(例如,虛擬實境虛擬環境)中被表示為用戶的虛擬表示,其有時被稱為化身。在任何虛擬環境中,重要的是系統能夠以有效的方式建立對具有表示人的高品質化身的虛擬表示的呼叫。
描述了用於為虛擬環境(例如,虛擬實境虛擬環境)提供虛擬內容的分布式產生的系統和技術。根據至少一個示例,提供了一種用於在分布式系統中的第一設備處產生虛擬內容的方法。 該方法包括:從與虛擬對話相關聯的第二設備接收與第二設備或第二設備的用戶中的至少一個相關聯的輸入資訊;基於輸入資訊產生第二設備的用戶的虛擬表示;從與虛擬對話相關聯的第三設備的用戶的視角產生虛擬場景,其中虛擬場景包括第二設備的用戶的虛擬表示;以及向第三設備發送從第三設備的用戶的視角描繪虛擬場景的一個或多個幀。
在另一示例中,提供一種用於在分布式系統中的第一設備處產生虛擬內容的裝置,其包含至少一個記憶體及耦接到所述至少一個記憶體的至少一個處理器(例如,配置於電路中)。至少一個處理器被配置為:從與虛擬對話相關聯的第二設備接收與第二設備或第二設備的用戶中的至少一個相關聯的輸入資訊;基於輸入資訊產生第二設備的用戶的虛擬表示;從與虛擬對話相關聯的第三設備的用戶的視角產生虛擬場景,其中虛擬場景包括第二設備的用戶的虛擬表示;以及輸出從第三設備的用戶的視角描繪虛擬場景的一個或多個幀以用於傳輸到第三設備。
在另一示例中,提供了一種其上儲存有指令的非暫時性計算機可讀媒體,所述指令在由一個或多個處理器執行時使所述一個或多個處理器進行以下操作:從與虛擬對話相關聯的第二設備接收與第二設備或第二設備的用戶中的至少一個相關聯的輸入資訊;基於輸入資訊產生第二設備的用戶的虛擬表示;從與虛擬對話相關聯的第三設備的用戶的視角產生虛擬場景,其中虛擬場景包括第二設備的用戶的虛擬表示;以及輸出從第三設備的用戶的視角描繪虛擬場景的一個或多個幀以用於傳輸到第三設備。
在另一示例中,提供了一種用於在分布式系統中的第一設備處產生虛擬內容的裝置。所述裝置包括:用於從與虛擬對話相關聯的第二設備接收與第二設備或第二設備的用戶中的至少一個相關聯的輸入資訊的單元;用於基於輸入資訊產生第二設備的用戶的虛擬表示的單元;用於從與虛擬對話相關聯的第三設備的用戶的視角產生虛擬場景的單元,其中虛擬場景包括第二設備的用戶的虛擬表示;以及用於向第三設備發送從第三設備的用戶的視角描繪虛擬場景的一個或多個幀的單元。
作為另一示例,提供了一種用於在用戶之間建立一個或多個虛擬對話的方法。 該方法包括:由第一設備向第二設備發送針對虛擬對話的虛擬表示呼叫的呼叫建立請求;在第一設備處從第二設備接收指示接受呼叫建立請求的呼叫接受;由第一設備向第二設備發送針對第一設備的第一用戶的第一虛擬表示的第一網格資訊;由第一設備向第二設備發送針對第一設備的第一用戶的第一虛擬表示的第一網格動畫參數;在第一設備處從第二設備接收針對第二設備的第二用戶的第二虛擬表示的第二網格資訊;在第一設備處從第二設備接收針對第二設備的第二用戶的第二虛擬表示的第二網格動畫參數;以及在第一設備處基於第二網格資訊和第二網格動畫參數產生第二設備的第二用戶的第二虛擬表示。
在另一示例中,提供了一種用於在用戶之間建立一個或多個虛擬對話的第一設備,其包括至少一個記憶體和耦接到至少一個記憶體的至少一個處理器(例如,配置在電路中)。 該至少一個處理器被配置為:向第二設備發送針對虛擬對話的虛擬表示呼叫的呼叫建立請求;從第二設備接收指示接受呼叫建立請求的呼叫接受;向第二設備發送針對第一設備的第一用戶的第一虛擬表示的第一網格資訊;向第二設備發送針對第一設備的第一用戶的第一虛擬表示的第一網格動畫參數;從第二設備接收針對第二設備的第二用戶的第二虛擬表示的第二網格資訊;從第二設備接收針對第二設備的第二用戶的第二虛擬表示的第二網格動畫參數;以及基於第二網格資訊和第二網格動畫參數來產生第二設備的第二用戶的第二虛擬表示。
在另一示例中,提供了一種其上儲存有指令的第一設備的非暫時性計算機可讀媒體,這些指令在由一個或多個處理器執行時使該一個或多個處理器進行以下操作:向第二設備發送針對虛擬對話的虛擬表示呼叫的呼叫建立請求;從第二設備接收指示接受呼叫建立請求的呼叫接受;向第二設備發送針對第一設備的第一用戶的第一虛擬表示的第一網格資訊;向第二設備發送針對第一設備的第一用戶的第一虛擬表示的第一網格動畫參數;從第二設備接收針對第二設備的第二用戶的第二虛擬表示的第二網格資訊;從第二設備接收針對第二設備的第二用戶的第二虛擬表示的第二網格動畫參數;以及基於第二網格資訊和第二網格動畫參數來產生第二設備的第二用戶的第二虛擬表示。
在另一示例中,提供了用於在用戶之間建立一個或多個虛擬對話的第一設備。該裝置包括:用於向第二設備發送針對虛擬對話的虛擬表示呼叫的呼叫建立請求的單元;用於從第二設備接收指示接受呼叫建立請求的呼叫接受的單元;用於向第二設備發送針對第一設備的第一用戶的第一虛擬表示的第一網格資訊的單元;用於向第二設備發送針對第一設備的第一用戶的第一虛擬表示的第一網格動畫參數的單元;用於從第二設備接收針對第二設備的第二用戶的第二虛擬表示的第二網格資訊的單元;用於從第二設備接收針對第二設備的第二用戶的第二虛擬表示的第二網格動畫參數的單元;以及用於基於第二網格資訊和第二網格動畫參數來產生第二設備的第二用戶的第二虛擬表示的單元。
在另一示例中,提供了一種用於在用戶之間建立一個或多個虛擬對話的方法。該方法包括:由伺服器設備從第一客戶端設備接收針對虛擬對話的虛擬表示呼叫的呼叫建立請求;由伺服器設備向第二客戶端設備發送呼叫建立請求;由伺服器設備從第二客戶端設備接收指示接受呼叫建立請求的呼叫接受;由伺服器設備向第一客戶端設備發送呼叫接受;基於呼叫接受從第一客戶端設備接收針對第一客戶端設備的第一用戶的第一虛擬表示的第一網格資訊;由伺服器設備發送針對第一客戶端設備的第一用戶的第一虛擬表示的第一網格動畫參數;由伺服器設備基於第一網格資訊和第一網格動畫參數產生針對第一客戶端設備的第一用戶的第一虛擬表示;以及由伺服器設備向第二客戶端設備發送第一客戶端設備的第一用戶的第一虛擬表示。
在另一示例中,提供了一種用於在用戶之間建立一個或多個虛擬對話的伺服器設備,其包括至少一個記憶體和耦接到至少一個記憶體的至少一個處理器(例如,配置在電路中)。所述至少一個處理器被配置為:從第一客戶端設備接收針對虛擬對話的虛擬表示呼叫的呼叫建立請求;將所述呼叫建立請求發送到第二客戶端設備;從第二客戶端設備接收指示接受呼叫建立請求的呼叫接受;向第一客戶端設備發送呼叫接受;基於呼叫接受從第一客戶端設備接收針對第一客戶端設備的第一用戶的第一虛擬表示的第一網格資訊;發送針對第一客戶端設備的第一用戶的第一虛擬表示的第一網格動畫參數;基於第一網格資訊和第一網格動畫參數產生針對第一客戶端設備的第一用戶的第一虛擬表示;以及向第二客戶端設備發送第一客戶端設備的第一用戶的第一虛擬表示。
在另一示例中,提供一種伺服器設備的非暫時性計算機可讀媒體,其上儲存有指令,所述指令在由一個或多個處理器執行時使得所述一個或多個處理器進行以下操作:從第一客戶端設備接收針對虛擬對話的虛擬表示呼叫的呼叫建立請求;將所述呼叫建立請求發送到第二客戶端設備;從第二客戶端設備接收指示接受呼叫建立請求的呼叫接受;向第一客戶端設備發送呼叫接受;基於呼叫接受從第一客戶端設備接收針對第一客戶端設備的第一用戶的第一虛擬表示的第一網格資訊;發送針對第一客戶端設備的第一用戶的第一虛擬表示的第一網格動畫參數;基於第一網格資訊和第一網格動畫參數產生針對第一客戶端設備的第一用戶的第一虛擬表示;以及向第二客戶端設備發送第一客戶端設備的第一用戶的第一虛擬表示。
在另一示例中,提供了一種用於在用戶之間建立一個或多個虛擬對話的伺服器設備。所述裝置包括:用於從第一客戶端設備接收針對虛擬對話的虛擬表示呼叫的呼叫建立請求的單元;用於將所述呼叫建立請求發送到第二客戶端設備的單元;用於從第二客戶端設備接收指示接受呼叫建立請求的呼叫接受的單元;用於向第一客戶端設備發送呼叫接受的單元;用於基於呼叫接受從第一客戶端設備接收針對第一客戶端設備的第一用戶的第一虛擬表示的第一網格資訊的單元;用於發送針對第一客戶端設備的第一用戶的第一虛擬表示的第一網格動畫參數的單元;用於基於第一網格資訊和第一網格動畫參數產生第一客戶端設備的第一用戶的第一虛擬表示的單元;以及用於向第二客戶端設備發送第一客戶端設備的第一用戶的第一虛擬表示的單元。
在另一示例中,提供了一種用於在用戶之間建立一個或多個虛擬對話的方法。該方法包括:由第一設備向第二設備發送針對虛擬對話的虛擬表示呼叫的呼叫建立請求;在第一設備處從第二設備接收指示接受呼叫建立請求的呼叫接受;由第一設備向第三設備發送與第一設備或第一設備的用戶中的至少一個相關聯的輸入資訊,該輸入資訊用於從第二設備的用戶的視角產生第二設備的用戶的虛擬表示和虛擬場景;以及從第三設備接收用於虛擬場景的資訊。
作為另一示例,提供了一種用於在用戶之間建立一個或多個虛擬對話的裝置。該裝置包括至少一個記憶體和耦接到其上儲存有指令的至少一個記憶體的至少一個處理器。所述指令在由所述至少一個處理器執行時使所述至少一個處理器進行以下操作:由第一設備向第二設備發送針對虛擬對話的虛擬表示呼叫的呼叫建立請求;在第一設備處從第二設備接收指示接受呼叫建立請求的呼叫接受;由第一設備向第三設備發送與第一設備或第一設備的用戶中的至少一個相關聯的輸入資訊,該輸入資訊用於從第二設備的用戶的視角產生第二設備的用戶的虛擬表示和虛擬場景;以及從第三設備接收用於虛擬場景的資訊。
在另一示例,提供了一種非暫時性計算機可讀媒體,其上儲存有指令。所述指令在由一個或多個處理器執行時使所述一個或多個處理器進行以下操作:由第一設備向第二設備發送針對虛擬對話的虛擬表示呼叫的呼叫建立請求;在第一設備處從第二設備接收指示接受呼叫建立請求的呼叫接受;由第一設備向第三設備發送與第一設備或第一設備的用戶中的至少一個相關聯的輸入資訊,該輸入資訊用於從第二設備的用戶的視角產生第二設備的用戶的虛擬表示和虛擬場景;以及從第三設備接收用於虛擬場景的資訊。
作為另一示例,一種用於在用戶之間建立一個或多個虛擬對話的裝置,所述方法包括:由第一設備向第二設備發送針對虛擬對話的虛擬表示呼叫的呼叫建立請求;在第一設備處從第二設備接收指示接受呼叫建立請求的呼叫接受;由第一設備向第三設備發送與第一設備或第一設備的用戶中的至少一個相關聯的輸入資訊,該輸入資訊用於從第二設備的用戶的視角產生第二設備的用戶的虛擬表示和虛擬場景;以及從第三設備接收用於虛擬場景的資訊。
在一些方面,本文描述的裝置中的一個或多個裝置是以下各項、是以下各項的一部分和/或包括以下各項:延展實境(XR)設備或系統(例如,虛擬實境(VR)設備、擴增實境(AR)設備或混合實境(MR)設備)、行動設備(例如,行動電話或其他行動設備)、可穿戴設備、無線通信設備、相機、個人計算機、膝上型計算機、車輛或車輛的計算設備或組件、伺服器計算機或伺服器設備(例如,邊緣或基於雲端的伺服器、基於雲端的伺服器的任何組件、充當伺服器設備的個人計算機、行動設備(諸如充當伺服器設備的行動電話、充當伺服器設備的XR設備、充當伺服器設備的車輛、網路路由器、或充當伺服器設備的其他設備)、另一設備、或其組合。在一些方面中,所述裝置包括用於擷取一個或多個影像的一個或多個相機。在一些方面中,所述裝置還包括用於顯示一個或多個影像、通知和/或其它可顯示資料的顯示器。在一些方面,上述裝置可以包括一個或多個感測器(例如,一個或多個慣性測量單元(IMU),諸如一個或多個陀螺儀、一個或多個陀螺測試儀、一個或多個加速度計、其任何組合和/或其他感測器。
該發明內容既不旨在識別所要求保護的標的的關鍵或必要特徵,也不旨在單獨用於決定所要求保護的標的的範圍。應當透過參考本專利的整個說明書的適當部分、任何或全部圖式以及每個申請專利範圍來理解該標的。
在參考以下說明書、申請專利範圍和圖式時,上述內容以及其它特徵和方面將變得更加顯而易見。
下面提供本公開內容內容的某些方面。如對於本領域技術人員將顯而易見的,這些方面中的一些可以獨立地應用,並且它們中的一些可以相結合地應用。在下文的描述中,出於解釋的目的,闡述了具體細節以便提供對本申請的方面的全面理解。然而,將顯而易見的是,可以在沒有這些具體細節的情況下實踐各個方面。圖式和描述不旨在是限制性的。
隨後的描述僅提供了示例方面,並且不旨在限制本公開內容的範圍、適用性或配置。確切而言,對示例方面的隨後描述將向本領域技術人員提供用於實現示例方面的可行描述。應當理解的是,在不脫離如在所附的申請專利範圍中闡述的本申請的精神和範圍的情況下,可以對元素的功能和佈置進行各種改變。
如前所述,延展實境(XR)系統或設備可以透過向用戶呈現虛擬內容(例如,用於完全沉浸式體驗)來向用戶提供XR體驗,和/或可以將實境世界或實體環境的視圖與(由虛擬內容組成的)虛擬環境的顯示組合。實境世界環境可以包括實境世界對象(也稱為實體對象),例如,人、車輛、建築物、桌子、椅子和/或其他實境世界或實體對象。如本文所用,術語XR系統和XR設備可互換地使用。XR系統或設備的示例包括頭戴式顯示器(HMD)、智慧型眼鏡(例如,AR眼鏡、MR眼鏡等)等。
XR系統可以包括促進與虛擬實境(VR)環境互動的VR系統、促進與擴增實境(AR)環境互動的AR系統、促進與混合實境(MR)環境互動的MR系統和/或其他XR系統。例如,VR在三維(3D)計算機產生的VR環境或用於描繪虛擬版本的實境世界環境的視頻中提供完整的沉浸式體驗。在一些情況下,VR內容可以包括VR視頻,其可以以非常高的品質被擷取和渲染,潛在地提供真正沉浸式虛擬實境體驗。虛擬實境應用可以包括遊戲、訓練、教育、體育視頻、在線購物等。可以使用VR系統或設備(諸如VR HMD或其他VR頭戴設備)來渲染和顯示VR內容,所述VR系統或設備在VR體驗期間完全覆蓋用戶的眼睛。
AR是在實體、實境世界場景或環境的用戶視圖上提供虛擬或計算機產生的內容(稱為AR內容)的技術。AR內容可以包括任何虛擬內容,諸如視頻、影像、圖形內容、位置資料(例如,全球定位系統(GPS)資料或其他位置資料)、聲音、其任何組合和/或其他擴增內容。AR系統被設計為提升(或擴增)人對實境的當前感知,而不是替換人對實境的當前感知。例如,用戶可以透過AR設備顯示器看到真實的靜止或移動的實體對象,但是用戶對實體對象的視覺感知可以透過該對象的虛擬影像(例如,由DeLorean的虛擬影像替換的實境世界汽車)、透過添加到實體對象的AR內容(例如,添加到活的動物的虛擬翅膀)、透過相對於實體對象顯示的AR內容(例如,在建築物上的標誌附近顯示的資訊性虛擬內容、在一個或多個影像中虛擬地錨定到實境世界桌子(例如,放置在其頂部)的虛擬咖啡杯等)和/或透過顯示其他類型的AR內容,來被擴增或提升。各種類型的AR系統可以用於遊戲、娛樂和/或其他應用。
MR技術可以組合VR和AR的各方面以針對用戶提供沉浸式體驗。例如,在MR環境中,真實世界和計算機產生的對象可以互動(例如,真實的人可以與虛擬的人互動,就好像該虛擬的人是真實的人一樣)。
XR環境可以以看似真實或實體的方式進行互動。當體驗XR環境(例如,沉浸式VR環境)的用戶在實境世界中移動時,渲染的虛擬內容(例如,在VR體驗中的虛擬環境中渲染的影像)也改變,從而給予用戶關於用戶在XR環境內移動的感知。例如,用戶可以左轉或右轉、向上或向下看,和/或向前或向後移動,從而改變用戶對XR環境的視點。呈現給用戶的XR內容可以相對應地改變,使得用戶在XR環境中的體驗與在實境世界中的體驗一樣無縫。
在一些情況下,XR系統可以匹配實體世界中的對象和設備的相對姿態和移動。例如,XR系統可以使用追蹤資訊來計算設備、對象和/或實境世界環境的特徵的相對姿態,以便匹配設備、對象和/或實境世界環境的相對位置和移動。在一些示例中,XR系統可以使用一個或多個設備、對象和/或實境世界環境的姿態和移動來以一致的方式渲染相對於實境世界環境的內容。相對姿態資訊可以用於將虛擬內容與設備、對象和實境世界環境的用戶所感知動態和時空狀態進行匹配。在一些情況下,XR系統可以追蹤用戶的部分(例如,用戶的手和/或指尖)以允許用戶與虛擬內容項互動。
XR系統或設備可以促進與不同類型的XR環境的互動(例如,用戶可以使用XR系統或設備來與XR環境互動)。XR環境的一個示例是虛擬實境虛擬環境。用戶可以透過與其他用戶虛擬地互動(例如,在社交環境中、在虛擬會議中等)、虛擬地購買物品(例如,商品、服務、財產等)、虛擬地玩計算機遊戲和/或在虛擬實境虛擬環境中體驗其他服務來參與與其他用戶的一個或多個虛擬對話。在一個說明性示例中,由XR系統提供的虛擬對話可以包括用於一組用戶的3D協作虛擬環境。用戶可以經由虛擬環境中的用戶的虛擬表示彼此互動。用戶可以在視覺上、聽覺上、觸覺上或以其他方式體驗虛擬環境,同時與其他用戶的虛擬表示互動。
用戶的虛擬表示可以用於在虛擬環境中表示用戶。用戶的虛擬表示在本文中也被稱為化身。表示用戶的化身可以模仿用戶的外觀、移動、冒險和/或其他特徵。可以基於從用戶設備擷取的輸入,即時產生/動畫化虛擬表示(或化身)。化身的範圍可以從基本的合成3D表示到對用戶的更逼真的表示。在一些示例中,用戶可能期望在虛擬環境中表示人的化身表現為用戶的數位孿生。在任何虛擬環境中,重要的是XR系統以低延遲方式高效地產生高品質化身(例如,真實地表示人的外觀、移動等)。對於XR系統而言,以有效的方式呈現音頻以擴增XR體驗也是重要的。
例如,在以上3D協作虛擬環境的示例中,來自用戶組的用戶的XR系統可以顯示坐在虛擬桌子處或虛擬房間中的特定位置處的其他用戶的虛擬表示(或化身)。用戶的虛擬表示和虛擬環境的背景應當以實境的方式顯示(例如,好像用戶在實境世界中坐在一起)。當用戶在實境世界中移動時,用戶的頭部、身體、手臂和手可以被動畫化。音頻可能需要在空間上渲染或者可以單點性地渲染。為了維持高品質的用戶體驗,在渲染和動畫化虛擬表示時的延遲應該是最小的。
由XR系統產生虛擬環境的計算複雜度可能施加顯著的功率和資源需求,這可能是實現XR體驗的限制因素(例如,降低XR設備以低延遲方式高效地產生和動畫化虛擬內容的能力)。例如,渲染和動畫化用戶的虛擬表示以及組成虛擬場景的計算複雜度可能在實現XR應用時對設備施加大量的功率和資源需求。此類功率和資源需求由於在移動和可穿戴設備(例如,HMD、XR眼鏡等)中實現此類技術並使此類設備更小、更輕且更舒適(例如,透過減少設備發出的熱量)以由用戶穿戴更長的時間段的最近趨勢而加劇。鑒於此類因素,用戶的XR設備(例如,HMD)可能難以渲染和動畫化其他用戶的虛擬表示並且難以合成場景並產生虛擬環境的目標視圖以顯示給XR設備的用戶。
本文描述了用於為虛擬環境(例如,虛擬實境虛擬環境)提供虛擬內容的分布式產生的系統、裝置、電子設備、方法(也稱為程序)和計算機可讀媒體(在本文中統稱為“系統和技術”)。在一些方面,動畫和場景渲染系統可以接收與參與虛擬對話(例如,虛擬實境環境、計算機或虛擬遊戲或其他虛擬對話中的3D協作虛擬會議)或與虛擬對話相關聯的相對應用戶的一個或多個設備(例如,至少一個XR設備)相關聯的輸入資訊。例如,從第一設備接收的輸入資訊可以包括表示第一設備的第一用戶的面部的資訊(例如,表示面部的外觀、或其他資訊的碼或特徵)、表示第一設備的第一用戶的身體的資訊(例如,表示身體的外觀、身體的姿態或其他資訊的碼或特徵)、表示設備的第一用戶的一隻或多隻手的資訊(例如,表示手的外觀、手的姿態或其他資訊的碼或特徵)、第一設備的姿態資訊(例如,六自由度(6-DOF)中的姿態,稱為6-DOF姿態)、與第一設備所處的環境相關聯的音頻和/或其他資訊。
動畫和場景渲染系統可以處理輸入資訊以產生和/或動畫化一個或多個設備中的每個設備的每個用戶的相對應虛擬表示。例如,動畫和場景渲染系統可以處理來自第一設備的輸入資訊以產生和/或動畫化第一設備的第一用戶的虛擬表示(或化身)。虛擬表示的動畫是指修改虛擬表示的位置、移動、習性或其他特徵,諸如以匹配對應用戶在實境世界或實體空間中的對應位置、移動、習性等。在一些方面,為了產生和/或動畫化第一用戶的虛擬表示,動畫和場景渲染系統可以產生和/或動畫化第一用戶的面部的虛擬表示(稱為面部表示),產生和/或動畫化第一用戶的身體的虛擬表示(稱為身體表示),並且產生和/或動畫化第一用戶的頭髮的虛擬表示(稱為頭髮表示)。在一些情況下,動畫和場景渲染系統可以將面部表示與身體表示組合或將面部表示附加到身體表示以產生組合的虛擬表示。然後,動畫和場景渲染系統可以將頭髮表示添加到組合的虛擬表示,以針對一個或多個內容幀產生用戶的最終虛擬表示。
動畫和場景渲染系統然後可以組成虛擬對話的虛擬場景或環境,並且從虛擬場景或環境中的每個設備或用戶的相對應視角為每個設備產生相對應的目標視圖(例如,內容幀,諸如虛擬內容或真實世界和虛擬內容的組合)。合成的虛擬場景包括虛擬對話中涉及的用戶的虛擬表示和場景的任何虛擬背景。在一個示例中,使用從第一設備接收的資訊和從與虛擬對話相關聯的一個或多個設備中的其他設備接收的資訊,動畫和場景渲染系統可以組成虛擬場景(包括用戶的虛擬表示和背景資訊),並且產生表示從與虛擬對話相關聯的一個或多個設備中的第二設備的第二用戶的視角(表示第二用戶在實境或實體世界中的視圖)來看的虛擬場景的視圖的幀。在一些方面,可以基於第一設備的姿態(對應於第一用戶的姿態)和任何其他用戶/設備的姿態並且還基於第二設備的姿態(對應於第二用戶的姿態)從第二用戶的視角產生虛擬場景的視圖。例如,可以基於第二設備的姿態與第一設備和其他設備的每個相對應姿態之間的相對差異從第二用戶的視角產生虛擬場景的視圖。
在一些情況下,當組成虛擬場景時,動畫和場景渲染系統可以執行一個或多個用戶的每個相對應虛擬表示的重新照明。例如,動畫和場景渲染系統可以決定第一用戶所在的虛擬場景或實境世界環境中的照明。動畫和場景渲染系統可以修改第一用戶的虛擬表示的照明以考慮所決定的照明,使得第一用戶的虛擬表示在被虛擬場景中的其他用戶查看時看起來盡可能逼真。
動畫和場景渲染系統可以將幀發送(例如,在編碼或壓縮幀之後)到第二設備。第二設備可以(例如,在解碼或解壓縮幀之後)顯示幀,使得第二用戶可以從第二用戶的視角觀看虛擬場景。
在一些情況下,具有對應材料的一個或多個網格(例如,包括三維空間中的多個頂點、邊和/或面)可用於表示化身。材料可以包括正常紋理、漫射或反照率紋理、鏡面反射紋理、其任何組合和/或其他材料或紋理。各種材料或紋理可能需要從註冊或離線重建中獲得。
為用戶產生虛擬表示或化身的目標是產生具有表示用戶的各種材料(例如,正常、反照率、鏡面反射等)的網格。在一些情況下,網格必須具有已知的拓撲。然而,來自掃描儀的網格(例如,LightCage、3DMD等)可能不滿足這種限制。為了解決這樣的問題,可以在掃描之後對網格進行重新拓撲化,這將使得網格被參數化。結果,化身的網格可以與定義化身將如何在虛擬對話期間被動畫化的多個動畫參數相關聯。在一些方面,動畫參數可以包括來自神經網路的編碼的參數(例如,碼或特徵),其中的一些或全部可以用於產生動畫化的化身。在一些情況下,動畫參數可以包括面部部分碼或特徵、表示面部混合形狀的碼或特徵、表示手關節的碼或特徵、表示身體關節的碼或特徵、表示頭部姿態的碼或特徵、音頻串流(或音頻串流的編碼的表示)、其任何組合和/或其他參數。
為了在設備之間發送用於化身網格的資料以用於用戶之間的互動式虛擬體驗,用於動畫化網格的參數可能需要大的資料傳輸速率。例如,可能需要以每秒30-60幀(FPS)的幀速率針對每個幀將參數從第一用戶的一個設備發送到第二用戶的第二設備,使得第二設備可以以幀速率動畫化化身。需要能夠以有效的方式建立對虛擬表示或化身的呼叫。
在一些方面,本文描述了用於為虛擬環境(例如,虛擬實境虛擬環境)的虛擬表示呼叫提供高效通信框架的系統和技術。在一些方面,用於建立化身呼叫的流程可以直接在用戶設備之間執行,或者可以經由伺服器執行。為了建立呼叫,第一用戶的第一設備可以(例如,直接地或經由伺服器)發送網格資訊以供第二用戶的第二設備接收,該網格資訊定義第一用戶的虛擬表示或化身以用於參與第一和第二用戶(並且在一些情況下,一個或多個其他用戶)之間的虛擬對話(例如,虛擬實境環境中的3D協作虛擬會議、計算機或虛擬遊戲或其他虛擬對話)。網格資訊可以包括定義網格的資訊(例如,包括網格的頂點、邊和/或面)以及定義網格的紋理和/或材料的資訊(例如,定義網格的法線紋理的法線圖、定義網格的漫射或反照率紋理的反照率圖、定義網格的鏡面反射紋理的鏡面反射圖、其任何組合和/或其他材料或紋理)。第二設備還可以發送(例如,直接地或經由伺服器)定義第二用戶的虛擬表示或化身的網格資訊以供第一用戶的第一設備接收。在一些情況下,可能僅需要在呼叫開始時發送一次網格資訊,之後僅交換網格動畫參數,如下所述。在一些方面,網格資訊可被壓縮。
一旦在第一設備和第二設備之間建立了呼叫,第一設備和第二設備就可以在呼叫期間交換(例如,直接或經由伺服器)網格動畫參數,使得相對應設備可以在虛擬對話期間動畫化虛擬表示。網格動畫參數可以包括表示第一設備的第一用戶的面部的資訊(例如,表示面部的外觀或其他資訊的碼或特徵)、表示第一設備的第一用戶的身體的資訊(例如,表示身體的外觀、身體的姿態或其他資訊的碼或特徵)、表示第一設備的第一用戶的一隻或多隻手的資訊(例如,表示手的外觀、手的姿態或其他資訊的碼或特徵)、第一設備的姿態資訊(例如,六自由度(6-DOF)中的姿態,稱為6-DOF姿態)、與第一設備所處的環境相關聯的音頻和/或其他資訊。例如,參與虛擬對話的第二用戶的設備的動畫和場景渲染系統可以處理來自第一設備的網格資訊和動畫參數,以在虛擬對話期間產生和/或動畫化第一設備的第一用戶的虛擬表示或化身。在一些方面,網格動畫參數可被壓縮。
透過使用這樣的呼叫流並在呼叫期間發送表示用戶的虛擬表示(或化身)的動畫的碼或特徵,提供動畫化虛擬表示所需的資訊所需的傳輸資料速率大大降低。在一些方面,網格資訊和/或網格動畫參數可被壓縮,這可進一步降低傳輸資料率。
其他示例包括流,諸如沒有邊緣伺服器並且在目標或接收客戶端設備上具有(例如,針對視圖相關紋理和視圖無關紋理的)解碼器的設備對設備流、沒有邊緣伺服器並且在源或發送/傳送客戶端設備上具有(例如,針對視圖相關紋理和視圖無關紋理的)所有處理(例如,解碼、化身動畫化等)的設備對設備流、具有邊緣伺服器並且在伺服器設備上具有(例如,用於視圖相關紋理和視圖無關紋理的)解碼器的設備對設備流、以及具有邊緣伺服器並且在源或發送/傳送客戶端設備上具有(例如,用於視圖相關紋理和視圖無關紋理的)所有處理(例如,解碼、化身動畫化等)的設備對設備流。
如本文所討論的,這樣的解決方案可以為虛擬環境(例如,針對元空間)中的用戶的虛擬表示(例如,化身)提供照片逼真的框架。
將參考圖式描述本申請的各個方面。
圖1示出了延展實境系統100的示例。如圖所示,延展實境系統100包括設備105、網路120和通信鏈路125。在一些情況下,設備105可以是延展實境(XR)設備,其通常可以實現延展實境的各方面,包括虛擬實境(VR)、擴增實境(AR)、混合實境(MR)等。包括設備105、網路120或延展實境系統100中的其他元件的系統可以被稱為延展實境系統。
設備105可以在視圖130中用實境世界對象覆蓋虛擬對象。例如,視圖130通常可以指經由設備105的到用戶110的視覺輸入、由設備105產生的顯示、由設備105產生的虛擬對象的配置等。例如,視圖130-A可以指在某個初始時間覆蓋在真實世界對象上或與真實世界對象共存的可見真實世界對象(也被稱為實體對象)和可見虛擬對象。視圖130-B可以指可見實境世界對象和可見虛擬對象,其在稍後的某個時間覆蓋在實境世界對象上或與實境世界對象共存。如本文所討論的,實境世界對象(例如,並且因此覆蓋的虛擬對象)中的位置差異可能由於頭部動態115來從視圖130-A在135處移位到視圖130-B而引起。在另一示例中,視圖130-A可以指初始時間處的完全虛擬環境或場景,並且視圖130-B可以指稍後時間處的虛擬環境或場景。
通常,設備105可以產生、顯示、投影等要由用戶110查看的虛擬對象和/或虛擬環境(例如,其中可以根據本文描述的技術基於用戶110頭部姿態預測來顯示虛擬對象和/或虛擬環境的一部分)。在一些示例中,設備105可以包括透明表面(例如,光學玻璃),使得虛擬對象可以顯示在透明表面上,以將虛擬對象覆蓋在透過透明表面觀看的真實單詞對象上。額外地或替代地,設備105可以將虛擬對象投影到真實世界環境上。在一些情況下,設備105可以包括相機並且可以顯示真實世界對象(例如,作為由相機擷取的幀或影像)和覆蓋在所顯示的真實世界對象上的虛擬對象兩者。在各種示例中,設備105可以包括虛擬實境頭戴式裝置、智慧型眼鏡、實況饋送視頻相機、GPU、一個或多個感測器(例如,諸如一個或多個IMU、影像感測器、麥克風等)、一個或多個輸出設備(例如,諸如揚聲器、顯示器、智慧型眼鏡等)等的各方面。
在一些情況下,頭部動態115可以包括用戶110頭部旋轉、平移頭部移動等。設備105可以根據頭部動態115更新用戶110的視圖130。例如,設備105可以在頭部動態115之前為用戶110顯示視圖130-A。在一些情況下,在頭部動態115之後,設備105可以向用戶110顯示視圖130-B。隨著視圖130-A移位到視圖130-B,延展實境系統(例如,設備105)可以渲染或更新虛擬環境的虛擬對象和/或其他部分以用於顯示。
在一些情況下,延展實境系統100可以提供各種類型的虛擬體驗,諸如用於一組用戶(例如,包括用戶110)的三維(3D)協作虛擬環境。圖2是示出3D協作虛擬環境200的示例的圖,其中各種用戶經由虛擬環境200中的用戶的虛擬表示(或化身)在虛擬對話中彼此互動。虛擬表示包括第一用戶的虛擬表示202、第二用戶的虛擬表示204、第三用戶的虛擬表示206、第四用戶的虛擬表示208和第五用戶的虛擬表示210。還示出了虛擬環境200的其他背景資訊,包括虛擬日曆212、虛擬網頁214和虛擬視頻會議界面216。用戶可以在與其他用戶的虛擬表示互動的同時從每個用戶的角度可視地、可聽地、觸覺地或以其他方式體驗虛擬環境。例如,從第一用戶的角度示出虛擬環境200(由虛擬表示202表示)。
重要的是XR系統有效地產生具有低延遲的高品質虛擬表示(或化身)。對於XR系統而言,以有效的方式呈現音頻以擴增XR體驗也是重要的。例如,在圖2的3D協作虛擬環境200的示例中,第一用戶的XR系統(例如,XR系統100)顯示參與虛擬對話的其他用戶的虛擬表示204-210。用戶的虛擬表示204-210和虛擬環境200的背景應當以逼真的方式顯示(例如,好像用戶在實境世界環境中會面),諸如透過在用戶在實境世界中移動時使其他用戶的虛擬表示204-210的頭部、身體、手臂和手動畫化。由其他用戶的XR系統擷取的音頻可能需要在空間上渲染或可以單點性地渲染以輸出到第一用戶的XR系統。渲染和動畫化虛擬表示204-210的延遲應當是最小的,使得第一用戶的用戶體驗好像用戶正在與實境世界環境中的其他用途互動。
延展實境系統通常涉及XR設備(例如,HMD、諸如AR眼鏡的智慧型眼鏡等)渲染和動畫化用戶的虛擬表示並組成虛擬場景。圖3是示出延展實境系統300的示例的圖,其中兩個客戶端設備(客戶端設備302和客戶端設備304)交換用於產生(例如,渲染和/或動畫化)用戶的虛擬表示並組成包括用戶的虛擬表示的虛擬場景(例如,虛擬環境200)的資訊。例如,客戶端設備302可以向客戶端設備304發送姿態資訊。客戶端設備304可以使用姿態資訊來從客戶端設備304的角度產生客戶端設備302的用戶的虛擬表示的渲染。
然而,產生虛擬環境的計算複雜度可能在客戶端設備302、304上引入顯著的功率和資源需求,從而在實現XR應用時導致客戶端設備上的功率和資源需求。這種複雜性可能限制客戶端設備以高品質和低延遲的方式產生XR體驗的能力。這些功率和資源需求由於通常在移動和可穿戴設備(例如,HMD、XR眼鏡等)中實現的XR技術而擴增,這些移動和可穿戴設備被製造為具有更小、更輕和更舒適的形狀因子(例如,透過減少設備發出的熱量),其思想是用戶可能長時間穿戴XR設備。 鑒於此類問題,諸如圖3所示的XR系統300可能難以提供高品質的XR體驗。
如前所述,本文描述了用於為虛擬環境或場景(例如,虛擬實境虛擬環境)提供虛擬內容的分布式產生的系統和技術。圖4是示出了根據本公開內容的各方面的系統400的示例的圖。如圖所示,系統400包括客戶端設備405、動畫和場景渲染系統410以及儲存415。儘管系統400示出了兩個設備405、單個動畫和場景渲染系統410、單個儲存415和單個網路420,但是本公開內容適用於具有一個或多個設備405、動畫和場景渲染系統410、儲存415和網路420的任何系統架構。在一些情況下,儲存415可以是動畫和場景渲染系統410的一部分。設備405、動畫和場景渲染系統410以及儲存415可以彼此通信並且經由網路420,使用通信鏈路425交換支援產生用於XR的虛擬內容的資訊,諸如多媒體封包、多媒體資料、多媒體控制資訊、姿態預測參數。在一些情況下,本文描述的用於提供對虛擬內容的分布式產生的技術的一部分可以由設備405中的一個或多個設備執行,並且技術的一部分可以由動畫和場景渲染系統410執行,或兩者。
設備405可以是XR設備(例如,頭戴式顯示器(HMD)、諸如虛擬實境(VR)眼鏡、擴增實境(AR)眼鏡等的XR眼鏡)、行動設備(例如,蜂巢式電話、智慧型電話、個人數位助理(PDA)等)、無線通信設備、平板計算機、膝上型計算機和/或支援與多媒體相關的各種類型的通信和功能特徵(例如,發送、接收、廣播、串流式傳輸、接收、擷取、儲存和記錄多媒體資料)的其他設備。額外地或替換地,設備405可以被本領域技術人員稱為用戶裝備(UE)、用戶設備、智慧型電話、藍牙設備、Wi-Fi設備、行動站、訂戶站、行動單元、訂戶單元、無線單元、遠程單元、行動設備、無線設備、無線通信設備、遠程設備、存取終端、行動終端、無線終端、遠程終端、手持機、用戶代理、行動客戶端、客戶端、和/或某個其他合適的術語。在一些情形中,設備405還能夠直接與另一設備通信(例如,使用點對點(P2P)或設備對設備(D2D)協定,諸如使用側行鏈路通信)。例如,設備405能夠從另一設備405接收或向另一設備405發送各種資訊,諸如指令或命令(例如,多媒體相關資訊)。
設備405可以包括應用430和多媒體管理器435。雖然系統400示出了包括應用430和多媒體管理器435兩者的設備405,但是應用430和多媒體管理器435可以是針對設備405的可選特徵。在一些情況下,應用430可以是基於多媒體的應用,經由使用通信鏈路425,所述應用430可以從動畫和場景渲染系統410、儲存415或另一設備405接收(例如,下載、串流式傳輸、廣播)多媒體資料,或者將多媒體資料發送(例如,上傳)到動畫和場景渲染系統410、儲存415或另一設備405。
多媒體管理器435可以是通用處理器、數位信號處理器(DSP)、影像信號處理器(ISP)、中央處理單元(CPU)、圖形處理單元(GPU)、微控制器、特殊應用積體電路(ASIC)、現場可程式化閘陣列(FPGA)、離散閘或電晶體邏輯組件、離散硬體組件、或其任何組合、或設計成執行本公開內容中描述的功能的其他可程式化邏輯器件、離散閘或電晶體邏輯、離散硬體組件、或其任何組合等的一部分。例如,多媒體管理器435可以處理來自設備405的本地記憶體或儲存415的多媒體(例如,影像資料、視頻資料、音頻資料)和/或將多媒體資料寫入到設備405的本地記憶體或儲存415。
多媒體管理器435還可以被配置為提供多媒體擴增、多媒體恢復、多媒體分析、多媒體壓縮、多媒體流和多媒體合成以及其他功能。舉例來說,多媒體管理器435可以執行白平衡、裁剪、縮放(例如,多媒體壓縮)、調整解析度、多媒體拼接、色彩處理、多媒體濾波、空間多媒體濾波、偽影移除、幀速率調整、多媒體編碼、多媒體解碼和多媒體濾波。透過進一步示例,根據本文中所描述的技術,多媒體管理器435可以處理多媒體資料以支援針對XR的基於伺服器的姿態預測。
動畫和場景渲染系統410可以是伺服器設備,諸如資料伺服器、雲端伺服器、與多媒體訂閱提供者相關聯的伺服器、代理伺服器、web伺服器、應用伺服器、通信伺服器、家庭伺服器、行動伺服器、基於邊緣或雲端的伺服器、充當伺服器設備的個人計算機、諸如充當伺服器設備的行動電話的行動設備、充當伺服器設備的XR設備、網路路由器、其任何組合、或其他伺服器設備。在一些情況下,動畫和場景渲染系統410可以包括多媒體分發平台440。在一些情況下,多媒體分發平台440可以是與動畫和場景渲染系統410分開的設備或系統。多媒體分發平台440可以允許設備405使用通信鏈路425經由網路420發現、瀏覽、共用和下載多媒體,並且因此提供對來自多媒體分發平台440的多媒體的數位分發。因此,數位分發可以是不使用實體媒介而是透過諸如網際網路的在線傳遞媒體,來傳遞諸如音頻、視頻、影像的媒體內容的形式。例如,設備405可以上傳或下載多媒體相關的應用以用於串流式傳輸、下載、上傳、處理、擴增等多媒體(例如,影像、音頻、視頻)。動畫和場景渲染系統410或多媒體分發平台440還可以向設備405發送各種資訊,諸如用於在設備405上下載多媒體相關的應用的指令或命令(例如,多媒體相關資訊)。
儲存415可以儲存各種資訊,諸如指令或命令(例如,多媒體相關的資訊)。例如,儲存415可以儲存多媒體445、來自設備405的資訊(例如,姿態資訊、針對用戶的虛擬表示或化身的表示資訊,諸如與面部表示、身體表示、手部表示等相關的碼或特徵,和/或其他資訊)。設備405和/或動畫和場景渲染系統410可以使用通信鏈路425,經由網路420從儲存415取回儲存的資料和/或更多地將資料發送到儲存415。在一些示例中,儲存415可以是儲存各種資訊(諸如指令或命令(例如,多媒體相關的資訊))的記憶體設備(例如,唯讀記憶體(ROM)、隨機存取記憶體(RAM)、快取記憶體、緩衝記憶體等)、關係型資料庫(例如,關係型資料庫管理系統(RDBMS)或結構化查詢語言(SQL)資料庫)、非關係型資料庫、網路資料庫、面向對象的資料庫或其他類型的資料庫。
網路420可以提供加密、存取授權、追蹤、網際網路協定(IP)連接以及其他存取、計算、修改和/或功能。網路420的示例可以包括雲端網路、區域網路(LAN)、廣域網路(WAN)、虛擬專用網路(VPN)、無線網路(例如,使用802.11)、蜂巢式網路(使用第三代(3G)、第四代(4G)、長期演進(LTE)或新無線電(NR)系統(例如,第五代(5G))等的任何組合。網路420可以包括網際網路。
系統400中所示的通信鏈路425可以包括從設備405到動畫和場景渲染系統410和儲存415的上行鏈路傳輸,和/或從動畫和場景渲染系統410和儲存415到設備405的下行鏈路傳輸。無線鏈路425可以發送雙向通信和/或單向通信。在一些示例中,通信鏈路425可以是有線連接或無線連接或兩者。例如,通信鏈路425可以包括一個或多個連接,包括但不限於Wi-Fi、藍牙、低功耗藍牙(BLE)、蜂巢式、Z-WAVE、802.11、對等、LAN、無線區域網路(WLAN)、乙太網路、火線、光纖和/或與無線通信系統相關的其他連接類型。
在一些方面,設備405的用戶(被稱為第一用戶)可以參與與一個或多個其他用戶(包括額外設備的第二用戶)的虛擬對話。在這樣的示例中,動畫和場景渲染系統410可以處理從設備405接收的資訊(例如,直接從設備405接收、從儲存415接收的等),以產生和/或動畫化針對第一用戶的虛擬表示(或化身)。動畫和場景渲染系統410可以構成虛擬場景,該虛擬場景包括用戶的虛擬表示,並且在一些情況下包括來自額外設備的第二用戶的視角的背景虛擬資訊。動畫和場景渲染系統410可以將虛擬場景的幀(例如,經由網路120)發送到額外設備。下文提供關於此類方面的進一步細節。
圖5是示出設備500的示例的圖。設備500可以被實現為客戶端設備(例如,圖4的設備405)或動畫和場景渲染系統(例如,動畫和場景渲染系統410)。如圖所示,設備500包括具有中央處理單元(CPU)記憶體515的CPU 510、具有GPU記憶體530的GPU 525、顯示器545、儲存與渲染相關聯的資料的顯示緩衝器535、用戶介面單元505和系統記憶體540。例如,系統記憶體540可以儲存具有編譯器、GPU程式、本地編譯的GPU程式等的GPU驅動器520(示出為包含在CPU 510內,如下所述)。用戶介面單元505、CPU 510、GPU 525、系統記憶體540、顯示器545和延展實境管理器550可以彼此通信(例如,使用系統匯流排)。
CPU 510的示例包括但不限於數位信號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、現場可程式化邏輯陣列(FPGA)或其他等效的整合或離散邏輯電路。儘管CPU 510和GPU 525在圖5的示例中說明為分別的單元,但在一些示例中,CPU 510和GPU 525可整合到單個單元中。CPU 510可以執行一個或多個軟體應用。應用的示例可以包括操作系統、文字處理器、web瀏覽器、電子郵件應用、電子表格、視頻遊戲、音頻和/或視頻擷取、回放或編輯應用、或發起對要經由顯示器545呈現的影像資料的產生的其他這樣的應用。如圖所示,CPU 510可以包括CPU記憶體515。例如,CPU記憶體515可以表示用於執行機器或目標碼的晶片上儲存或記憶體。CPU記憶體515可以包括一個或多個揮發性或非揮發性記憶體或儲存設備,諸如快閃記憶體、磁資料媒體、光儲存媒體等。CPU 510可能能夠比從系統記憶體540讀取值或向系統記憶體540寫入值更快速地從CPU記憶體515讀取值或向其寫入值,所述系統記憶體540可例如透過系統匯流排存取。
GPU 525可以表示用於執行圖形操作的一個或多個專用處理器。例如,GPU 525可以是具有用於渲染圖形和執行GPU應用的固定功能和可程式化組件的專用硬體單元。GPU 525還可包含DSP、通用微處理器、ASIC、FPGA或其它等效整合或離散邏輯電路。GPU 525可以構建有高度並行的結構,其提供比CPU 510更高效的對複雜圖形相關的操作的處理。例如,GPU 525可以包括被配置為以並行方式對多個頂點或像素進行操作的多個處理元件。GPU 525的高度並行性質可以允許GPU 525比CPU 510更快地產生用於顯示器545的圖形影像(例如,圖形用戶界面和二維或三維圖形場景)。
在一些情況下,GPU 525可整合到設備500的母板中。在其他情況下,GPU 525可以存在於安裝在設備500的母板中的埠中的圖形卡或其他設備或部件上,或者可以以其他方式結合在被配置為與設備500互操作的週邊設備內。如圖所示,GPU 525可以包括GPU記憶體530。例如,GPU記憶體530可以表示用於執行機器或目標碼的片上儲存或記憶體。GPU記憶體530可以包括一個或多個揮發性或非揮發性記憶體或儲存設備,諸如快閃記憶體、磁資料媒體、光儲存媒體等。GPU 525可能能夠比從系統記憶體540讀取值或向系統記憶體540寫入值更快速地從GPU記憶體530讀取值或向GPU記憶體530寫入值,所述系統記憶體540可例如經由系統匯流排存取。也就是說,GPU 525可以從GPU記憶體530讀取資料和向GPU記憶體530寫入資料,而不使用系統匯流排來存取晶片外記憶體。此操作可以允許GPU 525透過減少GPU 525經由系統匯流排讀取和寫入資料(其可能經歷繁重的匯流排流量)的需要來以更高效的方式操作。
顯示器545表示能夠顯示視頻、影像、文字或任何其他類型的資料以供觀看者消費的單元。在一些情況下,諸如當設備500被實現為動畫和場景渲染系統時,設備500可以不包括顯示器545。顯示器545可以包括液晶顯示器(LCD)、發光二極體(LED)顯示器、有機LED(OLED)、主動矩陣OLED(AMOLED)等。顯示緩衝器535表示專用於儲存用於呈現影像的資料(諸如用於顯示器545的計算機產生的圖形、靜止影像、視頻幀等)的記憶體或儲存設備。顯示緩衝器535可以表示包括多個儲存位置的二維緩衝器。在一些情況下,顯示緩衝器535內的儲存位置的數量可以通常對應於將在顯示器545上要顯示的像素的數量。例如,如果顯示器545被配置為包括640x480個像素,則顯示緩衝器535可以包括儲存像素顏色和強度資訊(諸如紅色、綠色和藍色像素值或其他顏色值)的640x480個儲存位置。顯示緩衝器535可以儲存由GPU 525針對像素中的每一者處理的最終像素值。顯示器545可以從顯示緩衝器535取回最終像素值,並且基於儲存在顯示緩衝器535中的像素值來顯示最終影像。
用戶介面單元505表示用戶可與其互動或以其它方式對接以與設備500的其它單元(例如CPU 510)通信的單元。用戶介面單元505的示例包括但不限於軌跡球、滑鼠、鍵盤和其他類型的輸入設備。用戶介面單元505還可以是或包括觸控螢幕,並且觸控螢幕可以被併入作為顯示器545的一部分。
系統記憶體540可以包括一個或多個計算機可讀儲存媒體。系統記憶體540的示例包括但不限於隨機存取記憶體(RAM)、靜態RAM(SRAM)、動態RAM(DRAM)、唯讀記憶體(ROM)、電可擦除可程式化唯讀記憶體(EEPROM)、光碟唯讀記憶體(CD-ROM)或其他光碟儲存、磁碟儲存、或其他磁儲存設備、快閃記憶體、或可用於以指令或資料結構的形式儲存期望的程式碼並且可由計算機或處理器存取的任何其他媒體。系統記憶體540可以儲存可存取以供CPU 510執行的程式模組和/或指令。另外,系統記憶體540可以儲存用戶應用和與應用相關聯的應用表面資料。在一些情況下,系統記憶體540可以儲存供設備500的其它組件使用的資訊及/或由設備500的其它組件產生的資訊。例如,系統記憶體540可以充當針對GPU 525的設備記憶體,並且可以儲存要由GPU 555操作的資料以及由GPU 525執行的操作產生的資料。
在一些示例中,系統記憶體540可以包括致使CPU 510或GPU 525執行歸因於本發明的方面中的CPU 510或GPU 525的功能的指令。在一些示例中,系統記憶體540可以被視為非暫時性儲存媒體。術語“非暫時性”不應被解釋為意味著系統記憶體540是不可移動的。舉一個示例,系統記憶體540可以從設備500移除,並且移動到另一設備。舉另一個示例,可以將與系統記憶體540實質上相似的記憶體插入到設備500中。在某些示例中,非暫時性儲存媒體可以儲存隨著時間變化的資料(例如,在RAM中)。
系統記憶體540可以儲存GPU驅動器520和編譯器、GPU程式和本地編譯的GPU程式。GPU驅動器520可以表示用於提供介面以存取GPU 525的計算機程式或可執行碼。CPU 510可以執行GPU驅動器520或其部分以與GPU 525對接,並且出於此原因,在圖5的示例中,在CPU 510內示出GPU驅動器520。GPU驅動器520可以由CPU 510執行的程式或其他可執行檔存取,包括儲存在系統記憶體540中的GPU程式。因此,當在CPU 510上執行的軟體應用程式中的一者需要圖形處理時,CPU 510可以將圖形命令和圖形資料提供到GPU 525以用於渲染到顯示器545(例如,經由GPU驅動器520)。
在一些情況下,GPU程式可以包括例如使用應用程式化介面(API),以高級(HL)程式化語言編寫的碼。API的示例包括開放圖形庫(“OpenGL”)、DirectX、Render-Man、WebGL或任何其他公共或專屬標準圖形API。指令還可以符合所謂的異質計算庫,諸如開放計算語言(“OpenCL”)、DirectCompute等。通常,API包括由相關聯的硬體執行的預定的標準化命令集。API命令允許用戶指示GPU 525的硬體組件執行命令,而無需用戶知道硬體組件的細節。為了處理圖形渲染指令,CPU 510可以向GPU 525發出一個或多個渲染命令(例如,透過GPU驅動器520),以使GPU 525執行圖形資料的一些或全部渲染。在一些示例中,待渲染的圖形資料可以包含圖形基元(例如,點、線、三角形、四邊形等)的列表。
儲存在系統記憶體540中的GPU程式可以呼叫或以其他方式包括由GPU驅動器520提供的一個或多個功能。CPU 510通常執行其中嵌入GPU程式的程式,並且在遇到GPU程式時,將GPU程式傳遞到GPU驅動器520。CPU 510在此上下文中執行GPU驅動器520以處理GPU程式。也就是說,例如,GPU驅動器520可以透過將GPU程式編譯成可由GPU 525執行的對象或機器碼來處理GPU程式。該目標碼可以被稱為本地編譯的GPU程式。在一些示例中,與GPU驅動器520相關聯的編譯器可以即時或接近即時地操作,以在其中嵌入GPU程式的程式的執行期間編譯GPU程式。例如,編譯器通常表示用於將根據HL程式化語言定義的HL指令減少到低級(LL)程式化語言的LL指令的單元。在編譯之後,這些LL指令能夠由特定類型的處理器或其他類型的硬體執行,諸如FPGA、ASIC等(包括但不限於CPU 510和GPU 525)。
在圖5的示例中,編譯器可以在執行包括GPU程式的HL碼時從CPU 510接收GPU程式。也就是說,由CPU 510執行的軟體應用程式可以呼叫GPU驅動器520(例如,經由圖形API)向GPU 525發出一個或多個命令,以用於將一個或多個圖形基元渲染成可顯示的圖形影像。編譯器可以編譯GPU程式以產生符合LL程式化語言的本地編譯的GPU程式。編譯器然後可以輸出包括LL指令的本地編譯的GPU程式。在一些示例中,LL指令可以以繪圖基元(例如,三角形、矩形等)的列表的形式提供到GPU 525。
LL指令(例如,其可替代地稱為基元定義)可以包括用於指定與待渲染的基元相關聯的一或多個頂點的頂點規範。頂點規範可以包含針對每一頂點的位置座標,並且在一些情況下,包含與頂點相關聯的其它屬性,例如色彩座標、法向量和紋理座標。基元定義可以包括基元類型資訊、縮放資訊、旋轉資訊等。基於由軟體應用(例如,其中嵌入GPU程式的程式)發出的指令,GPU驅動器520可以制定一個或多個命令,該一個或多個命令指定供GPU 525執行以便渲染基元的一個或多個操作。當GPU 525從CPU 510接收到命令時,其可以解碼該命令並配置一個或多個處理元件以執行指定操作,並且可以將所渲染的資料輸出到顯示緩衝器535。
GPU 525可以接收本地編譯的GPU程式,並且然後在一些情況下,GPU 525渲染一個或多個影像並將渲染的影像輸出到顯示緩衝器535。例如,GPU 525可以產生要在顯示器545處顯示的數個基元。基元可以包含線(包含曲線、樣條線等)、點、圓、橢圓、多邊形(例如,三角形)或任何其它二維基元中的一者或多者。術語“基元”還可指代三維基元,例如立方體、圓柱體、球體、錐體、金字塔、環面等。通常,術語“基元”是指能夠由GPU 525渲染以經由顯示器545顯示為影像(或視頻資料的上下文中的幀)的任何基本幾何形狀或元素。GPU 525可以透過應用一個或多個模型轉換(其也可以在狀態資料中指定)將基元和基元的(例如,用於定義顏色、紋理、照明、相機配置或其他方面的)其他屬性轉換成所謂的“世界空間”。一旦被轉換,GPU 525可以對活動相機應用視圖轉換(其也可以在用於定義相機的狀態資料中指定)以將基元的座標和光轉換到相機或眼睛空間中。GPU 525還可以執行頂點著色以根據任何活動燈渲染基元的外觀。GPU 525可以在上述模型、世界或視圖空間中的一者或多者中執行頂點著色。
一旦基元被著色,GPU 525就可以執行投影以將影像投影到規範視體中。在將模型從眼睛空間轉換到規範視體之後,GPU 525可以執行裁剪以移除至少部分地不駐留在規範視體內的任何基元。舉例來說,GPU 525可以移除不在相機的幀內的任何基元。GPU 525然後可以將基元的座標從視體映射到螢幕空間,從而有效地將基元的三維座標減小到螢幕的二維座標。給定用於定義具有其相關聯著色資料的基元的經轉換和經投影的頂點,GPU 525可以接著光柵化基元。通常,光柵化可以指拍攝以向量圖形格式描述的影像並將其轉換為光柵影像(例如,像素化影像)以在視頻顯示器上輸出或以位元圖檔案格式儲存的任務。
GPU 525可以包含專用快速倉緩衝器(例如,快速記憶體緩衝器,例如GMEM,其可以透過GPU記憶體530指代)。如本文所討論的,渲染表面可以被劃分成倉。在一些情況下,倉大小由格式(例如,像素顏色和深度資訊)和渲染目標解析度除以GMEM的總量來決定。倉的數量可以基於設備500硬體、目標解析度大小和目標顯示格式而變化。渲染編次可以將像素繪製(例如,渲染、寫入等)到GMEM中(例如,具有匹配GPU的能力的高頻寬)。GPU 525然後可以解析GMEM(例如,將混合像素值作為單層從GMEM突發寫入到顯示緩衝器535或系統記憶體540中的幀緩衝器)。這可以被稱為基於倉的或基於圖塊的渲染。當所有倉完成時,驅動器可以交換緩衝器且針對下一幀再次開始分倉程序。
例如,GPU 525可以實現基於圖塊的架構,其透過將影像分成多個部分(其被稱為圖塊或倉)來渲染影像或渲染目標。可以基於GPU記憶體530的大小(例如,其在本文中可以替代地稱為GMEM或快取)、顯示器545的解析度、渲染目標的顏色或Z精度等來決定箱的大小。當實施基於圖塊的渲染時,GPU 525可執行分箱流程和一或多個渲染流程。舉例來說,關於分倉遍次,GPU 525可以處理整個影像以及將光柵化的基元分類到倉中。
設備500可以使用感測器資料、感測器統計或來自一個或多個感測器的其他資料。所監測的感測器的一些示例可以包括IMU、眼睛追蹤器、震顫感測器、心率感測器等。在一些情況下,IMU可以包括在設備500中,並且可以使用加速度計、陀螺儀或磁力計的某種組合來測量和報告身體的特定力、角速率以及有時身體的方位。
如圖所示,設備500可以包括延展實境管理器550。延展實境管理器550可以實現延展實境、擴增實境、虛擬實境等的各方面。在一些情況下,諸如當設備500被實現為客戶端設備(例如,圖4的設備405)時,延展實境管理器550可以決定與設備的用戶和/或設備500所在的實體環境相關聯的資訊,諸如面部資訊、身體資訊、手部資訊、設備姿態資訊、音頻資訊等。設備500可以將資訊發送到動畫和場景渲染系統(例如,動畫和場景渲染系統410)。在一些情況下,諸如當設備500被實現為動畫和場景渲染系統(例如,圖4的動畫和場景渲染系統410)時,延展實境管理器550可以處理由客戶端設備提供的資訊作為輸入資訊,以為產生和/或動畫化針對客戶端設備的用戶的虛擬表示。
圖6是示出包括與動畫和場景渲染系統610通信的客戶端設備602、客戶端設備604和客戶端設備606的XR系統600的另一示例的圖。如圖所示,客戶端設備602、604和606中的每一個向動畫和場景渲染系統610提供輸入資訊。在一些示例中,來自客戶端設備602的輸入資訊可以包括:表示客戶端設備602的用戶的面部的資訊(例如,表示面部的外觀的碼或特徵或其他資訊)、表示客戶端設備602的用戶的身體的資訊(例如,表示身體的外觀、身體的姿態的碼或特徵或其他資訊)、表示客戶端設備602的用戶的一隻或多隻手的資訊(例如,表示手的外觀、手的姿態的碼或特徵或其他資訊)、客戶端設備602的姿態資訊(例如,以六自由度(6-DOF)的姿態,稱為6-DOF姿態)、與客戶端設備602所處的環境相關聯的音頻、其任何組合和/或其他資訊。可以從客戶端設備604和客戶端設備606提供類似的資訊。
動畫和場景渲染系統610的用戶虛擬表示系統620可以處理從客戶端設備602、604、606中的每一個提供的資訊(例如,面部表示、身體表示、姿態資訊等),並且可以為客戶端設備602、604、606的每個相對應用戶產生和/或動畫化虛擬表示(或化身)。如本文所使用的,用戶的虛擬表示(或化身)的動畫是指修改虛擬表示的位置、移動、習性或其他特徵,使得動畫匹配對應用戶在實境世界環境或空間中的對應位置、移動、習性等。在一些方面,如下面關於圖8更詳細地描述的,為了產生和/或動畫化第一用戶的虛擬表示,用戶虛擬表示系統620可以產生和/或動畫化客戶端設備602的用戶的面部的虛擬表示(面部表示),產生和/或動畫化客戶端設備602的用戶的身體的虛擬表示(身體表示),並且產生和/或動畫化客戶端設備602的用戶的頭髮的虛擬表示(頭髮表示)。在一些情況下,用戶虛擬表示系統620可以將面部表示與身體表示組合或附加以產生組合的虛擬表示。用戶虛擬表示系統620然後可以將頭髮表示添加到組合的虛擬表示,以針對一個或多個內容幀(在圖6中示為虛擬內容幀)產生用戶的最終虛擬表示。場景渲染系統可以將一個或多個幀發送到客戶端設備602、604、606。
動畫和場景渲染系統610的場景合成系統622然後可以合成虛擬對話的虛擬場景或環境,並且從虛擬場景或環境中的每個設備或用戶的相對應視角為客戶端設備602、604、606中的每一個產生相對應的目標視圖(例如,內容幀,諸如虛擬內容或實境世界和虛擬內容的組合)。由場景合成系統622合成的虛擬場景包括虛擬對話中涉及的用戶的虛擬表示和場景的任何虛擬背景。在一個示例中,使用從其他客戶端設備604、606接收的資訊,場景合成系統622可以合成虛擬場景(包括用戶的虛擬表示和背景資訊)並且產生表示從客戶端設備602的用戶的視角來看的虛擬場景的視圖的幀。
圖7是示出被配置成執行本文描述的各方面的XR系統700的示例的圖。XR 700系統包括客戶端設備702和參與虛擬對話的客戶端設備704(在一些情況下,與圖7中未示出的其他客戶端設備)。客戶端設備702可以經由網路(例如,即時通信(RTC)網路或其他無線網路)向動畫和場景渲染系統710發送資訊。動畫和場景渲染系統710可以從客戶端設備704的用戶的視角產生虛擬場景的幀,並且可以經由網路將幀或影像(稱為目標視圖幀或影像)發送到客戶端設備704。客戶端設備702可以包括第一XR設備(例如,虛擬實境(VR)頭戴式顯示器(HMD)、擴增實境(AR)或混合(MR)眼鏡等),並且客戶端設備704可以包括第二XR設備。
發送到客戶端設備704的幀包括基於客戶端設備704的姿態與客戶端設備702和向動畫和場景渲染系統710提供資訊的任何其他設備的每個相對應姿態之間的相對差異的從客戶端設備704的用戶的視角的虛擬場景的視圖(例如,用戶可以查看虛擬場景中的其他用戶的虛擬表示,好像用戶一起在實體空間中)。在圖7的示例中,客戶端設備702可以被認為是源(例如,用於產生針對虛擬場景的至少一個幀的資訊的源),並且客戶端設備704可以被認為是目標(例如,用於接收針對虛擬場景產生的至少一個幀的目標)。
如上所述,由客戶端設備發送到動畫和場景渲染系統(例如,從客戶端設備702到動畫和場景渲染系統710)的資訊可以包括:表示客戶端設備702的用戶的面部的資訊(例如,表示面部的外觀的碼或特徵或其他資訊)、表示客戶端設備702的用戶的身體的資訊(例如,表示身體的外觀、身體的姿態的碼或特徵或其他資訊)、表示客戶端設備702的用戶的一隻或多隻手的資訊(例如,表示手的外觀、手的姿態的碼或特徵或其他資訊)、客戶端設備702的姿態資訊(例如,以六自由度(6-DOF)的姿態,稱為6-DOF姿態)、與客戶端設備702所處的環境相關聯的音頻、其任何組合和/或其他資訊。
例如,計算設備702可以包括面部引擎709、姿態引擎712、身體引擎714、手部引擎716和音頻編碼器718。在一些方面,計算設備702可以包括被配置為產生用戶身體的虛擬表示的身體引擎。計算設備702可以包括除了圖7中所示的那些之外的其他組件或引擎(例如,圖5的設備500上的一個或多個組件、圖43的計算系統4300的一個或多個組件等)。計算設備704被示出為包括視頻解碼器732、重投影引擎734、顯示器736和未來姿態預測引擎738。在一些情況下,每個客戶端設備(例如,圖6的客戶端設備702、客戶端設備702、客戶端設備602、圖6的客戶端設備604、圖6的客戶端設備606等)可以包括面部引擎、姿態引擎、主體引擎、手部引擎、音頻編碼器(並且在一些情況下是音頻解碼器或組合音頻編碼器-解碼器)、視頻解碼器(並且在一些情況下是視頻編碼器或組合視頻編碼器-解碼器)、重投影引擎、顯示器和未來姿態預測引擎。在圖7中關於客戶端設備702和客戶端設備704未示出這些引擎或組件,因為在圖7的示例中,客戶端設備702是源設備並且客戶端設備704是目標設備。
客戶端設備702的面部引擎709可以從客戶端設備702的一個或多個相機接收一個或多個輸入幀715。例如,由面部引擎709接收的輸入幀715可以包括由具有客戶端設備702的用戶的嘴部、用戶的左眼和用戶的右眼的視場的一個或多個相機擷取的幀(或影像)。其他影像也可以由面部引擎709處理。在一些情況下,輸入幀715可以被包括在幀序列(例如,視頻、獨立或靜止影像序列等)中。面部引擎709可以產生並輸出用於表示客戶端設備702的用戶的面部的碼(例如,一個或多個特徵向量)。面部引擎709可以將表示用戶面部的碼發送到動畫和場景渲染系統710。在一個說明性示例中,面部引擎709可以包括包含一個或多個機器學習系統(例如,深度學習網路,諸如深度神經網路)的一個或多個面部編碼器,所述一個或多個機器學習系統被訓練為利用碼或特徵向量來表示用戶的面部。在一些情況下,面部引擎709可以包括用於面部引擎709處理的每種類型的影像的分別的編碼器,諸如用於嘴部的幀或影像的第一編碼器、用於右眼的幀或影像的第二編碼器以及用於左眼的幀或影像的第三編碼器。訓練可以包括監督學習(例如,使用標記影像和一個或多個損失函數,諸如均方誤差MSE)、半監督學習、無監督學習等)。例如,深度神經網路可以產生並輸出用於表示客戶端設備702的用戶的面部的碼(例如,一個或多個特徵向量)。碼可以是可以由動畫和場景渲染系統710的面部解碼器(未示出)解碼的隱藏碼(或位元串流),所述面部解碼器被訓練為解碼用於表示用戶的面部的碼(或特徵向量),以便產生面部的虛擬表示(例如,面部網格)。例如,動畫和場景渲染系統710的面部解碼器可以對從客戶端設備702接收的碼進行解碼以產生用戶面部的虛擬表示。
姿態引擎712可以決定3D環境中的客戶端設備702的姿態(例如,6-DOF姿態)(並且因此決定客戶端設備702的用戶的頭部姿態)。6-DOF姿態可以是絕對姿態。在一些情況下,姿態引擎712可以包括6-DOF追蹤器,其可以追蹤三度的旋轉資料(例如,包括俯仰、滾動和偏航)和三度的平移資料(例如,相對於參考點的水平位移、垂直位移和深度位移)。姿態引擎712(例如,6-DOF追蹤器)可以從一個或多個感測器接收感測器資料作為輸入。在一些情況下,姿態引擎712包括一個或多個感測器。在一些示例中,一個或多個感測器可以包括一個或多個慣性測量單元(IMU)(例如,加速度計、陀螺儀等),並且感測器資料可以包括來自一個或多個IMU的IMU樣本。姿態引擎712可以基於感測器資料來決定原始姿態資料。原始姿態資料可以包括表示客戶端設備702的姿態的6DOF資料,諸如三維旋轉資料(例如,包括俯仰、滾轉和偏航)和三維平移資料(例如,相對於參考點的水平位移、垂直位移和深度位移)。
身體引擎714可以從客戶端設備702的一個或多個相機接收一個或多個輸入幀715。由身體引擎714和用於擷取幀的相機接收的幀可以與由面部引擎709和用於擷取那些幀的相機接收的幀相同或不同。例如,由身體引擎714接收的輸入幀可以包括由一個或多個相機擷取的具有客戶端設備702的用戶的身體(例如,除了面部之外的部分,諸如用戶的頸部、肩部、軀幹、下身、腳等)的視場的幀(或影像)。身體引擎714可以執行一種或多種技術以輸出客戶端設備702的用戶的身體的表示。在一個示例中,身體引擎714可以產生並輸出表示身體的形狀的3D網格(例如,包括3D空間中的多個頂點、邊和/或面)。在另一示例中,身體引擎714可以產生並輸出用於表示客戶端設備702的用戶的身體的碼(例如,一個特徵向量或多個特徵向量)。在一個說明性示例中,身體引擎714可以包括包含一個或多個機器學習系統(例如,深度學習網路,諸如深度神經網路)的一個或多個身體編碼器,所述一個或多個機器學習系統被訓練為利用碼或特徵向量來表示用戶的身體。訓練可以包括監督學習(例如,使用標記影像和一個或多個損失函數,諸如MSE)、半監督學習、無監督學習等)。例如,深度神經網路可以產生並輸出用於表示客戶端設備702的用戶的身體的碼(例如,一個或多個特徵向量)。碼可以是可以由動畫和場景渲染系統710的身體解碼器(未示出)解碼的隱藏碼(或位元串流),所述身體解碼器被訓練為解碼用於表示用戶的虛擬身體的碼(或特徵向量),以便產生身體的虛擬表示(例如,身體網格)。例如,動畫和場景渲染系統710的面部解碼器可以對從客戶端設備702接收的碼進行解碼以產生用戶身體的虛擬表示。
手部引擎716可以從客戶端設備702的一個或多個相機接收一個或多個輸入幀715。由手部引擎716和用於擷取幀的相機接收的幀可以與由面部引擎709和/或身體引擎714以及用於擷取那些幀的相機接收的幀相同或不同。例如,由手部引擎716接收的輸入幀可以包括由一個或多個相機擷取的具有客戶端設備702的用戶的手部的視場的幀(或影像)。手部引擎716可以執行一種或多種技術以輸出客戶端設備702的用戶的一個或多個手的表示。在一個示例中,手部引擎716可以產生並輸出表示手部的形狀的3D網格(例如,包括3D空間中的多個頂點、邊和/或面)。在另一示例中,手部引擎716可以輸出表示一個或多個手部的碼(例如,一個或多個特徵向量)。例如,手部引擎716可以包括包含一個或多個機器學習系統(例如,深度學習網路,諸如深度神經網路)的一個或多個身體編碼器,所述一個或多個機器學習系統被訓練(例如,使用監督學習、半監督學習、無監督學習等)為用碼或特徵向量表示用戶的手。碼可以是可以由動畫和場景渲染系統710的手部解碼器(未示出)解碼的隱藏碼(或位元串流),所述手部解碼器被訓練為解碼用於表示用戶的虛擬手部的碼(或特徵向量),以便產生身體的虛擬表示(例如,身體網格)。例如,動畫和場景渲染系統710的手解碼器可以對從客戶端設備702接收的碼進行解碼,以產生用戶的手的虛擬表示(或者在一些情況下,一隻手)。
音頻編碼器718(例如,音頻編碼器或組合音頻編碼器-解碼器)可以接收音頻資料717,諸如使用客戶端設備702的一個或多個麥克風獲得的音頻。音頻編碼器718可以編碼或壓縮音頻資料並將編碼的音頻發送到動畫和場景渲染系統710。音頻譯碼器718可以執行任何類型的音頻譯碼以壓縮音頻資料,例如基於經修改離散餘弦轉換(MDCT)的編碼技術。經編碼音頻可由動畫和場景渲染系統710的音頻解碼器(未示出)解碼,所述音頻解碼器被配置為執行由音頻譯碼器718執行的音頻編碼程序的逆程序以獲得經解碼(或經解壓縮)音頻。
動畫和場景渲染系統710的用戶虛擬表示系統720可以接收從客戶端設備702接收的輸入資訊,並且使用輸入資訊來產生和/或動畫化客戶端設備702的用戶的虛擬表示(或化身)。在一些方面,用戶虛擬表示系統720還可以使用客戶端設備704的未來預測姿態來產生和/或動畫化客戶端設備702的用戶的虛擬表示。在這樣的方面中,客戶端設備704的未來姿態預測引擎738可以基於目標姿態(例如,目標姿態737)來預測客戶端設備704的姿態(例如,對應於用戶的預測頭部姿態、身體姿態、手部姿態等),並且將預測姿態發送到用戶虛擬表示系統720。例如,未來姿態預測引擎738可以根據模型,預測客戶端設備704在未來時間(例如,可以是預測時間的時間 )內的未來姿態(例如,對應於客戶端設備704的用戶的頭部位置、頭部方位、視線(諸如圖1的視圖130-A或130-B等))。未來時間T可以對應於客戶端設備704將輸出或顯示目標視圖幀(例如,目標視圖幀757)的時間。如本文所使用的,對客戶端設備(例如,客戶端設備704)的姿態和對客戶端設備的用戶的頭部姿態、身體姿態等的引用可以互換使用。
預測姿態在產生虛擬表示時可能是有用的,因為在一些情況下,當與對象對用戶的預期視圖相比或與用戶(例如,在AR、MR或VR透視場景中)正在觀看的實境世界對象相比時,虛擬對象可能對用戶看起來被延遲。參考圖1作為說明性示例,在沒有頭部動態或姿態預測的情況下,從先前視圖130-A更新視圖130-B中的虛擬對象可能被延遲,直到進行頭部姿態測量為止,使得可以相對應地更新虛擬對象的位置、方位、尺寸等。在一些情況下,延遲可能是由於系統延遲(例如,客戶端設備704與渲染虛擬內容的系統或設備(諸如動畫和場景渲染系統710)之間的端對端系統延遲),這可能是由渲染、時間扭曲或兩者引起的。在一些情形中,此類延遲可以被稱為往返時間延遲或動態註冊誤差。在一些情況下,誤差可能足夠大,使得客戶端設備704的用戶可能在時間姿態測量可以準備好顯示之前執行頭部動態(例如,圖1所示的頭部動態115)。因此,預測頭部動態115使得可以基於頭部動態115中的預測(例如,模式)來即時決定和更新與視圖130-B相關聯的虛擬對象可能是有益的。
如上所述,用戶虛擬表示系統720可以使用從客戶端設備702接收的輸入資訊和來自未來姿態預測引擎738的未來預測姿態資訊,來產生和/或動畫化客戶端設備702的用戶的虛擬表示。如本文所述,對用戶的虛擬表示的動畫化可以包括修改虛擬表示的位置、移動、習慣或其他特徵,以匹配用戶在實境世界或實體空間中的對應位置、移動、習慣等。下面參考圖8描述用戶虛擬表示系統720的示例。在一些方面,用戶虛擬表示系統720可以被實現為使用監督學習、半監督學習、無監督學習等的深度學習網路(諸如基於輸入訓練資料(例如,表示用戶的面部的碼、表示用戶的身體的碼、表示用戶的手部的碼、姿態資訊(諸如用戶的客戶端設備的6-DOF姿態資訊、逆動態學資訊等)訓練的神經網路(例如,卷積神經網路(CNN)、自動編碼器或其他類型的神經網路)),以產生和/或動畫化客戶端設備的用戶的虛擬表示。
圖8是示出用戶虛擬表示系統720的說明性示例的圖。用戶虛擬表示系統720的面部表示動畫引擎842可以產生和/或動畫化客戶端設備702的第一用戶的面部(或整個頭部)的虛擬表示(稱為面部表示)。面部表示可以包括表示客戶端設備702的用戶的面部或頭部的形狀的3D網格(包括3D空間中的多個頂點、邊和/或面部)以及表示面部的特徵的紋理資訊。
如圖8所示,面部表示動畫引擎842可以獲得(例如,接收、檢索等)從面部引擎709輸出的面部碼(例如,一個特徵向量或多個特徵向量)、客戶端設備702的源姿態(例如,由姿態引擎712輸出的6-DOF姿態)和客戶端設備704的目標姿態(例如,目標姿態737)(例如,由客戶端設備704的姿態引擎輸出並由動畫和場景渲染系統710接收的6-DOF姿態)。面部表示動畫引擎842還可以獲得紋理資訊(例如,面部的顏色和表面細節)和深度資訊(示出為註冊的紋理和深度資訊841)。可以在註冊階段期間獲得紋理資訊和深度資訊,其中用戶使用客戶端設備(例如,客戶端設備702、704等)的一個或多個相機來擷取用戶的一個或多個影像。可以處理影像以決定用戶面部(以及在一些情況下用戶身體和/或頭髮)的文字和深度資訊。使用面部碼、源姿態和目標姿態以及註冊的紋理和深度資訊841,面部表示動畫引擎842可以從客戶端設備704的用戶的視角(例如,基於客戶端設備704的姿態與客戶端設備702和向動畫和場景渲染系統710提供資訊的任何其他設備的每個相對應姿態之間的相對差異)產生(或動畫化)處於姿態的客戶端設備702的用戶的面部,並且具有與用戶的面部的特徵相對應的面部特徵。例如,面部表示動畫引擎842可以基於面部碼、源姿態和目標姿態以及註冊的紋理和深度資訊841來計算映射。可以使用離線訓練資料(例如,使用監督訓練、無監督訓練、半監督訓練等)來學習映射。面部表示動畫引擎842可以使用映射來基於輸入和註冊資料決定用戶的面部的動畫應當如何出現。
用戶虛擬表示系統720的面部-身體組合器引擎844可以獲得、產生和/或動畫化客戶端設備702的用戶的身體的虛擬表示(稱為身體表示)。例如,如圖8所示,面部-身體組合器引擎844可以獲得由手部引擎716輸出的客戶端設備702的用戶的一隻或多隻手的姿態、客戶端設備702的源姿態和客戶端設備704的目標姿態。在一些方面,面部-身體組合器引擎844還可以獲得由身體引擎714輸出的客戶端設備702的用戶的身體的姿態。在其他方面,可以使用逆動態學來估計身體的姿態。例如,使用來自姿態引擎712的頭部姿態(例如,6DOF頭部姿態或設備姿態)和來自手部引擎716的手部姿態,面部-身體組合器引擎844可以估計用戶身體的關節參數以操縱身體、手臂、腿等。面部-身體組合器引擎844可以使用任何合適的動態學方程式(例如,逆動態學方程式或方程式組,諸如前向和後向遞歸逆動態學(FABRIK)啟發式方法)來估計關節參數。使用手部的姿態、源姿態和目標姿態以及身體姿態或逆動態學的結果,面部-身體組合器引擎844可以從客戶端設備704的用戶的視角決定客戶端設備702的用戶的身體的姿態(例如,基於客戶端設備704的姿態與客戶端設備702和向動畫和場景渲染系統710提供資訊的任何其他設備的每個相對應姿態之間的相對差異)。
面部-身體組合器引擎844可以將面部表示與身體表示組合或附加以產生組合的虛擬表示。例如,如上所述,面部表示可以包括客戶端設備702的用戶的面部或頭部的3D網格以及表示面部的特徵的紋理資訊。身體表示可以包括客戶端設備702的用戶的身體的3D網格和表示身體的特徵的紋理資訊。面部-身體組合器引擎844可以將面部表示(或完整頭部)的先前合成的3D網格與身體表示(包括一隻或多隻手)的3D網格組合或合併,以產生組合的虛擬表示(例如,面部/頭部和身體的組合的3D網格)。在一些情況下,身體表示的3D網格可以是男性或女性的通用3D網格(對應於用戶是男性還是女性)。在一個示例中,面部/頭部3D網格和身體3D網格的對應於用戶的頸部的頂點被合併(例如,接合在一起)以在面部/頭部和用戶的身體之間進行無縫過渡。在將面部表示/頭部的3D網格與身體表示的3D網格組合或合併之後,兩個3D網格將是一個聯合3D網格。面部-身體組合器引擎844然後可以確保身體網格的膚色與面部/頭部網格的皮膚漫射顏色(例如,反照率)和其他材料匹配。例如,面部-身體組合器引擎844可以估計頭部的皮膚參數並且可以將皮膚參數傳遞到身體的皮膚。在一個說明性示例中,面部-身體組合器引擎844可以使用轉移圖(例如,由AutodeskTM提供)來將表示面部/頭部網格的漫射顏色的漫射圖轉移到身體網格。
用戶虛擬表示系統720的頭髮動畫引擎846可以產生和/或動畫化客戶端設備702的用戶的頭髮的虛擬表示(稱為頭髮表示)。頭髮表示可以包括表示頭髮形狀的3D網格(包括3D空間中的多個頂點、邊和/或面)和表示頭髮特徵的紋理資訊。頭髮動畫引擎846可以使用任何合適的技術來執行頭髮動畫。在一個示例中,頭髮動畫引擎846可以基於頭部的動態進行動畫化的髮卡或髮束來獲得或接收參考3D網格。在另一示例中,頭髮動畫引擎846可以透過基於頭部和/或身體的動態或姿態在用戶的虛擬表示(或化身)的2D影像輸出(由用戶虛擬表示系統720輸出)上添加顏色來執行影像修復技術。頭髮動畫引擎846可以用來產生和/或動畫化用戶頭髮的虛擬表示的演算法的一個說明性示例包括多輸入有條件頭髮影像產生對抗網路(GAN)(Mici GAN)。
在一些方面,面部表示動畫引擎842還可以獲得註冊的紋理和深度資訊841,其可以包括客戶端設備702的用戶的頭髮的文字和深度資訊。動畫和場景渲染系統720然後可以將頭髮表示組合或添加到組合的虛擬表示,以產生客戶端設備702的用戶的最終用戶虛擬表示847。例如,動畫和場景渲染系統720可以將組合的3D網格(包括面部網格和包括一隻或多隻手的身體網格的組合)與頭髮的3D網格組合以產生最終的用戶虛擬表示847。
返回圖7,用戶虛擬表示系統720可以將客戶端設備702的用戶的虛擬表示輸出到動畫和場景渲染系統710的場景合成系統722。背景場景資訊719和參與虛擬對話的其他用戶的其它用戶虛擬表示724(如果存在的話)也被提供給場景合成系統722。背景場景資訊719可以包括虛擬場景的照明、場景中的虛擬對象(例如,虛擬建築物、虛擬街道、虛擬動物等)和/或與虛擬場景相關的其他細節(例如,天空、雲端等)。在一些情況下,諸如在AR、MR或VR透視設置(其中真實世界環境的視頻幀被顯示給用戶)中,照明資訊可以包括客戶端設備702和/或客戶端設備704(和/或參與虛擬對話的其他客戶端設備)所在的真實世界環境的照明。在一些情況下,來自客戶端設備704的未來姿勢預測引擎738的未來預測姿勢也可以被輸入到場景合成系統722。
使用客戶端設備702的用戶的虛擬表示、背景場景資訊719和其他用戶(如果存在的話)的虛擬表示(並且在一些情況下,未來預測姿勢),場景合成系統722可以基於在客戶端設備704的姿勢與客戶端設備702和參與虛擬對話的用戶的任何其他客戶端設備的每個相對應姿勢之間的相對差異,利用從客戶端設備704的用戶的視角的虛擬場景的視圖,來合成針對虛擬場景的目標視圖幀。例如,合成的目標視圖幀可以包括客戶端設備702的用戶的虛擬表示、背景場景資訊719(例如,照明、背景對象、天空等)以及可能涉及虛擬對話的其他用戶的虛擬表示的混合。任何其他用戶的虛擬表示的姿勢也基於客戶端設備704的姿勢(對應於客戶端設備704的用戶的姿勢)。
圖9是示出場景合成系統722的示例的圖。如上所述,背景場景資訊719可以包括虛擬場景的照明資訊(或在一些情況下的真實世界環境的照明資訊)。場景合成系統722的照明提取引擎952可以獲得背景場景資訊719並且從背景場景資訊719提取或決定虛擬場景(或真實世界場景)的照明資訊。例如,場景的高動態範圍(HDR)圖(例如,包括360度影像的高動態範圍影像(HDRI)圖)可以透過在多個方向上(例如,在所有方向上)從單個視點圍繞場景旋轉相機來擷取。HDR圖或影像透過儲存場景中每個位置處的光和反射的真實世界值來映射場景的照明特性。場景合成系統722然後可以從HDR圖或影像提取光(例如,使用一個或多個卷積核)。
照明提取引擎952可以將提取的照明資訊輸出到場景合成系統722的重新照明引擎950。當產生虛擬場景的目標視圖影像時,重新照明引擎950可以使用從背景場景資訊719提取的照明資訊來執行用戶虛擬表示A 947、表示參與虛擬對話的用戶的用戶虛擬表示i 948至用戶虛擬表示N 949(其中總共有N個用戶虛擬表示,其中N大於或等於0)的重新照明。用戶虛擬表示A 947可以表示意圖7的客戶端設備702的用戶,並且用戶虛擬表示i 948至用戶虛擬表示N 949可以表示參與虛擬對話的一個或多個其他用戶。重新照明引擎950可以修改虛擬表示A 947、用戶虛擬表示i 948至用戶虛擬表示N 949的照明,使得虛擬表示在被客戶端設備704的用戶查看時看起來盡可能真實。由重新照明引擎950執行的重新照明的結果包括被重新照明的用戶虛擬表示A 951、被重新照明的用戶虛擬表示i 953到被重新照明的用戶虛擬表示N 955。
在一些示例中,重新照明引擎950可以包括一個或多個神經網路,其被訓練(例如,使用監督訓練、無監督訓練、半監督訓練等)以使用提取的光資訊重新照明虛擬場景的前景(並且在一些情況下是背景)。例如,重新照明引擎950可以從場景的一個或多個影像分割前景(例如,用戶),並且可以估計用戶的幾何和/或法線圖。重新照明引擎950可以使用來自照明提取引擎952的法線圖和照明資訊(例如,HDRI圖或用戶的當前環境)來估計包括用戶的反照率資訊的反照率圖。然後,重新照明引擎950可以使用反照率資訊以及來自照明提取引擎952的照明資訊(例如,HDRI圖)來重新照明場景。在一些情況下,重新照明引擎950可以使用除了機器學習之外的技術。
場景合成系統722的混合引擎956可以將被重新照明的用戶虛擬表示951、953和955混合到由背景場景資訊719表示的背景場景中以產生目標視圖幀757。在一個說明性示例中,混合引擎956可以應用帕松影像混合(例如,使用影像梯度)以將被重新照明的用戶虛擬表示951、953和955混合到背景場景中。在另一說明性示例中,混合引擎956可以包括被訓練(例如,使用監督訓練、無監督訓練、半監督訓練等)以將被重新照明的用戶虛擬表示951、953和955混合到背景場景中的一個或多個神經網路。
返回圖7,空間音頻引擎726可以接收由音頻編碼器718產生的編碼音頻作為輸入,並且在一些情況下接收來自未來姿勢預測引擎738的未來預測姿勢資訊。使用輸入來產生根據客戶端設備704的用戶的姿勢來在空間上定向的音頻。唇部同步引擎728可以使目標視圖幀757中描繪的客戶端設備702的用戶的虛擬表示的唇部的動畫與空間音頻引擎726輸出的空間音頻同步。目標視圖幀757(在由唇部同步引擎728同步之後)可以被輸出到視頻編碼器730。視頻編碼器730可以使用視頻譯碼技術(例如,根據任何合適的視頻編解碼器,諸如高級視頻譯碼(AVC)、高效視頻譯碼(HEVC)、通用視頻譯碼(VVC)、動態影像專家組(MPEG)等),對目標視圖幀757進行編碼(或壓縮)。動畫和場景渲染系統710然後可以經由網路將目標視圖幀757發送到客戶端設備704。
客戶端設備704的視頻解碼器732可以使用由視頻編碼器730執行的視頻譯碼技術的逆程序(例如,根據視頻編解碼器,諸如AVC、HEVC、VVC等)來解碼經編碼的目標視圖幀757。重投影引擎734可以執行重投影以根據由未來姿態預測引擎738決定的預測姿態來重投影解碼的目標視圖幀的虛擬內容。重投影的目標視圖幀然後可以顯示在顯示器736上,使得客戶端設備704的用戶可以從該用戶的視角觀看虛擬場景。
圖10示出了被配置為執行本文所描述的各方面的XR系統1000的另一示例。如圖10所示,XR系統1000包括與圖7的XR系統700相同的一些組件(具有相同的圖式標記),並且與XR系統700相比還包括額外的或替代的組件。面部引擎709、姿態引擎712、手部引擎716、音頻編碼器718、空間音頻引擎726、場景合成系統722、唇部同步引擎728、視頻編碼器、視頻解碼器、重投影引擎734、顯示器736和未來姿態投影引擎738被配置為執行與圖7的XR系統700的相同或類似的操作。在一些方面,XR系統1000可以包括被配置為產生用戶的身體的虛擬表示的身體引擎。類似地,面部-身體組合器引擎844和頭髮動畫引擎846被配置為執行與圖8的相同組件相同或類似的操作。
類似於圖7的XR系統700,XR系統1000系統包括參與虛擬對話的客戶端設備1002和客戶端設備1004(在一些情況下,與圖10中未示出的其他客戶端設備)。客戶端設備1002可以經由網路(例如,即時通信(RTC)網路或其他無線網路)向動畫和場景渲染系統1010發送資訊。動畫和場景渲染系統1010可以從客戶端設備1004的用戶的視角產生虛擬場景的目標視圖幀,並且可以經由網路將目標視圖幀發送到客戶端設備1004。客戶端設備1002可以包括第一XR設備(例如,VR HMD、AR或MR眼鏡等),並且客戶端設備1004可以包括第二XR設備。動畫和場景渲染系統1010被示出為包括音頻解碼器1025,其被配置為對從音頻編碼器718接收的音頻位元串流進行解碼。
在圖10中,面部引擎被示出為面部引擎709。客戶端設備1002的面部引擎709可以從客戶端設備1002的一個或多個相機接收一個或多個輸入幀715。在一些示例中,由面部引擎709接收的輸入幀715可以包括由具有客戶端設備1002的用戶的嘴部、用戶的左眼和用戶的右眼的視場的一個或多個相機擷取的幀(或影像)。面部引擎709可以產生並輸出用於表示客戶端設備1002的用戶的面部的碼(例如,一個或多個特徵向量)。面部引擎709可以將表示用戶面部的碼發送到動畫和場景渲染系統1010。如上所述,面部引擎709可以包括一個或多個機器學習系統(例如,深度學習網路,諸如深度神經網路),其被訓練為利用碼或特徵向量來表示用戶的面部。如圖10中的“3x”符號所示,面部引擎709可以包括用於面部引擎709處理的每種類型的影像的單獨的編碼器(例如,單獨的編碼器神經網路),諸如用於客戶端設備1002的用戶的嘴部的幀或影像的第一編碼器、用於客戶端設備1002的用戶的右眼的幀或影像的第二編碼器、以及用於客戶端設備1002的用戶的左眼的幀或影像的第三編碼器。
訓練動畫和場景渲染系統1010的面部解碼器1013以解碼表示用戶面部的碼(或特徵向量),以便產生面部的虛擬表示(例如,面部網格)。面部解碼器1013可以從面部引擎709接收碼(例如,隱藏碼或位元串流),並且可以對從客戶端設備1002接收的碼進行解碼以產生用戶面部的虛擬表示(例如,用戶面部的3D網格)。用戶面部的虛擬表示可以輸出到動畫和場景渲染系統1010的視圖相關紋理合成引擎1021,如下所述。在一些情況下,視圖相關紋理合成引擎1021可以是先前描述的用戶虛擬表示系統720的一部分。
客戶端設備1002的幾何編碼器引擎1011可以基於一個或多個幀715產生用戶的頭部或面部的3D模型(例如,3D可變形模型或3DMM)。在一些方面,3D模型可以包括來自一個或多個幀715的幀中的面部表情的表示。在一個說明性示例中,面部表情表示可以由混合形狀形成。混合形狀可以在語義上表示肌肉或面部特徵的部分的移動(例如,頜的打開/閉合、眉毛的升高/降低、眼睛的打開/閉合等)。在一些情況下,每個混合形狀可以由與對應的混合形狀向量配對的混合形狀係數表示。在一些示例中,面部模型可以包括幀中的用戶的面部形狀的表示。在一些情況下,可以透過與對應的面部形狀向量配對的面部形狀係數來表示面部形狀。在一些實施方式中,幾何編碼器引擎1011(例如,機器學習模型)可以(例如,在訓練程序期間)被訓練為針對3D面部模型實施一致的面部形狀(例如,一致的面部形狀係數),而不管與3D面部模型相關聯的姿態(例如,俯仰、偏航和滾轉)如何。例如,當3D面部模型被渲染成2D影像或幀以供顯示時,可以使用投影技術將3D面部模型投影到2D影像或幀上。
在一些方面,可以透過另外引入在客戶端設備1002和客戶端設備1004之間的相對姿勢,來進一步細化混合形狀係數。例如,可以使用神經網路來處理相對姿態資訊,以產生近似基礎事實(ground truth)幾何形狀的與視圖相關的3DMM幾何形狀。在另一示例中,可以直接從輸入幀715決定面部幾何形狀,諸如透過從輸入幀715估計加性頂點殘差並產生用於紋理合成的更準確的面部表情細節。
用戶頭部的3D模型(或3D模型的經編碼的表示,諸如表示3D模型的潛在表示或特徵向量)可以從幾何編碼器引擎1011輸出並由動畫和場景渲染系統1010的預處理引擎1019接收。預處理引擎1019還可以接收由客戶端設備1004的未來姿態預測引擎738預測的未來姿態和由姿態引擎712提供的客戶端設備1002的姿態(例如,6-DOF姿態),如上所述。預處理引擎1019可以處理用戶頭部的3D模型和客戶端設備1002、1004的姿態,以產生客戶端設備1004的用戶的面部,該面部具有特定姿態的詳細面部表情(例如,從客戶端設備1004的用戶相對於客戶端設備1002的用戶的姿態的姿態的角度)。可以執行預處理,因為在一些情況下,動畫和場景渲染系統1010被配置為修改客戶端設備1002的用戶的中性面部表情(例如,透過擷取用戶面部的影像或掃描離線獲得為註冊的中性面部),以在不同視點下以不同表情動畫化客戶端設備1002的用戶的虛擬表示(或化身)。為此,動畫和場景渲染系統1010可能需要理解如何修改中性表情,以便用正確的表情和姿態動畫化客戶端設備1002的用戶的虛擬表示。預處理引擎1019可以編碼由幾何編碼器引擎1011提供的表達資訊(並且在一些情況下,由姿態引擎712提供的姿態資訊和/或來自未來姿態預測引擎738的未來姿態資訊),使得動畫和場景渲染系統1010(例如,視圖相關紋理合成引擎1021和/或非剛性對準引擎1023)可以理解要合成的客戶端設備1002的用戶的虛擬表示的表達和姿態。
在一個說明性示例中,3D模型(其可以是如上所述的3DMM)包括定義3D模型的每個點的位置的位置圖和定義位置圖上的每個點的法線的法線資訊。預處理引擎1019可以將法線資訊和位置圖延展或轉換到座標UV空間(其可以被稱為UV面部位置圖)。在一些情況下,UV面部位置圖可以提供和/或表示在輸入幀715中擷取的客戶端設備1004的用戶的面部的2D圖。例如,UV面部位置圖可以是記錄和/或映射UV空間(例如,2D紋理座標系)中的點(例如,像素)的3D位置的2D影像。UV空間中的U和UV空間中的V可以表示UV面部位置圖的軸(例如,面部的2D紋理的軸)。在一個說明性示例中,UV空間中的U可以表示UV面部位置圖的第一軸(例如,水平X軸),並且UV空間中的V可以表示UV面部位置圖的第二軸(例如,垂直Y軸)。在一些示例中,UV位置圖可以記錄、建模、識別、表示和/或計算面部(和/或頭部的面部區域)的3D形狀、結構、輪廓、深度和/或其他細節。在一些實施方式中,機器學習模型(例如,神經網路)可以用於產生UV面部位置圖。
因此,UV面部位置圖可以對面部的表情(以及在一些情況下,頭部的姿態)進行編碼,提供可以由動畫和場景渲染系統1010(例如,視圖相關紋理合成引擎1021和/或非剛性對準引擎1023)使用的資訊,以為客戶端設備1002的用戶動畫化面部表示。預處理引擎1019可以將用戶頭部的經預處理的3D模型輸出到視圖相關紋理合成引擎1021和非剛性對準引擎1023。在一些情況下,非剛性對準引擎1023可以是先前描述的用戶虛擬表示系統720的一部分。
如上所述,視圖相關紋理合成引擎1021從面部解碼器1013接收用戶面部的虛擬表示(面部表示)並且從預處理引擎1019接收預處理的3D模型資訊。視圖相關紋理合成引擎1021可以將與用戶頭部的3D模型(從預處理引擎1019輸出)相關聯的資訊與用戶的面部表示(從面部解碼器1013輸出)組合,以產生具有客戶端設備1002的用戶的面部特徵的完整頭部模型。在一些情況下,與來自預處理引擎1019的用戶的頭部輸出的3D模型相關聯的資訊可以包括先前描述的UV面部位置圖。視圖相關紋理合成引擎1021還可獲得上文關於圖8所論述的註冊的紋理和深度資訊841。視圖相關紋理合成引擎1021可以將來自註冊的紋理和深度資訊841的紋理和深度添加到客戶端設備1002的用戶的完整頭部模型。在一些情況下,視圖相關紋理合成引擎1021可以包括深度學習網路,諸如神經網路(例如,卷積神經網路(CNN)、自動編碼器或其他類型的神經網路)。例如,視圖相關紋理合成引擎1021可以是神經網路,該神經網路被訓練(例如,使用監督學習、半監督學習、無監督學習等)以處理UV面部位置圖(並且在一些情況下,面部資訊,例如由面部解碼器1013輸出的面部資訊)以產生用戶的完整頭部模型。
非剛性對準引擎1023可以在平移方向上移動客戶端設備1002的用戶的頭部的3D模型,以便確保幾何形狀和紋理對準或重疊,這可以減少幾何形狀和紋理之間的間隙。面部-身體組合器引擎844然後可以組合身體模型(圖10中未示出)和由視圖相關紋理合成引擎1021輸出的面部表示,以產生客戶端設備702的用戶的組合虛擬表示。頭髮動畫引擎846可以產生頭髮模型,該頭髮模型可以與用戶的組合虛擬表示組合以產生客戶端設備1002的用戶的最終用戶虛擬表示(例如,最終用戶虛擬表示847)。場景合成系統722然後可以產生目標視圖幀757,如上所述的處理目標視圖幀757,並且將目標視圖幀757(例如,在由視頻編碼器730編碼之後)發送到客戶端設備1004。
如上面關於圖7所討論的,客戶端設備1004的視頻解碼器732可以使用由視頻編碼器730執行的視頻譯碼技術的逆程序(例如,根據視頻編解碼器,諸如AVC、HEVC、VVC等)來解碼經編碼的目標視圖幀757。重投影引擎734可以執行重投影以根據由未來姿態預測引擎738決定的預測姿態,來重投影經解碼的目標視圖幀的虛擬內容。重投影的目標視圖幀然後可以顯示在顯示器736上,使得客戶端設備1004的用戶可以從該用戶的視角觀看虛擬場景。
圖11示出了被配置為執行本文所描述的各方面的XR系統1100的另一示例。如圖11所示,XR系統1100包括與圖7的XR系統700和/或圖10的XR系統1000相同的一些部件(具有相同的圖式標記),並且與XR系統700和XR系統1000相比還包括額外的或替代的部件。面部引擎709、面部解碼器1013、幾何編碼器引擎1011、姿態引擎712、預處理引擎1019、視圖相關紋理合成引擎1021、非剛性對準引擎1023、面部身體組合器引擎844、頭髮動畫引擎846、音頻編碼器718和其他類似組件被配置為執行與圖7的XR系統700或圖10的XR系統1000的相同組件的相同或類似的操作。
XR系統1100可以類似於XR系統700和1000,因為客戶端設備1102和客戶端設備1104參與虛擬對話(在一些情況下,與圖11中未示出的其他客戶端設備)。XR系統1100可以不同於XR系統700和1000,因為客戶端設備1104可以在動畫和場景渲染系統1110本地。例如,客戶端設備1104可以使用諸如有線連接(例如,高清晰度多媒體介面(HDMI)電纜等)的本地連接來通信地連接到動畫和場景渲染系統1110。在一個說明性示例中,客戶端設備1104可以是電視、計算機監視器或除了XR設備之外的其他設備。在一些情況下,客戶端設備1104(例如,電視、計算機監視器等)可以被配置為顯示3D內容。
客戶端設備1102可以經由網路(例如,本地網路、RTC網路或其他無線網路)向動畫和場景渲染系統1110發送資訊。動畫和場景渲染系統1110可以從客戶端設備1104的用戶的視角為虛擬場景產生客戶端設備1102的用戶的動畫虛擬表示(或化身),並且可以經由本地連接將動畫虛擬表示輸出到客戶端設備1104。
在一些方面,動畫和場景渲染系統1110可以包括單聲道音頻引擎1126,而不是圖7和圖10的空間音頻引擎726。在一些情況下,動畫和場景渲染系統1110可以包括空間音頻引擎。在一些情況下,動畫和場景渲染系統1110可以包括空間音頻引擎726。
圖12示出了用於在分布式系統的第一設備處產生虛擬內容的程序1200的示例。根據本文描述的各方面,第一設備可以包括動畫和場景渲染系統(例如,邊緣或基於雲端的伺服器、充當伺服器設備的個人計算機、行動設備(諸如充當伺服器設備的行動電話)、充當伺服器設備的XR設備、網路路由器、或充當伺服器或其他設備的其他設備)。動畫和場景渲染系統的說明性示例包括圖7的動畫和場景渲染系統710、圖10的動畫和場景渲染系統1010以及圖11的動畫和場景渲染系統1110。在一些示例中,組件(例如,晶片組、處理器、記憶體、其任何組合和/或其他組件可以執行程序1200的一個或多個操作)。
在方塊1202處,第一設備(或其組件)可以從與虛擬對話相關聯的第二設備接收與第二設備或第二設備的用戶中的至少一個相關聯的輸入資訊。在一些方面,輸入資訊包括表示第二設備的用戶的面部的資訊、表示第二設備的用戶的身體的資訊、表示第二設備的用戶的一隻或多隻手的資訊、第二設備的姿態資訊、與第二設備所處的環境相關聯的音頻、其任何組合、和/或其他資訊。在一些情況下,表示第二設備的用戶的身體的資訊包括身體的姿態。在一些示例中,表示第二設備的用戶的一隻或多隻手的資訊包括一隻或多隻手中的每只手的相對應姿態。
在方塊1204處,第一設備(或其組件)可以基於輸入資訊產生第二設備的用戶的虛擬表示。在一些方面,為了產生虛擬表示,第一設備(或其組件)可以使用表示用戶的面部的資訊、第二設備的姿態資訊和第三設備的姿態資訊來產生第二設備的用戶的面部的虛擬表示。第一設備(或其組件)還可以使用第二設備的姿態資訊和第三設備的姿態資訊來產生第二設備的用戶的身體的虛擬表示。第一設備(或其組件)可以產生第二設備的用戶的頭髮的虛擬表示。在一些情況下,第一設備(或其組件)被配置為進一步使用表示用戶的身體的資訊來產生第二設備的用戶的身體的虛擬表示。在一些示例中,第一設備(或其組件)被配置為進一步使用逆動態學來產生第二設備的用戶的身體的虛擬表示。在一些情況下,第一設備(或其組件)被配置為進一步使用表示用戶的一隻或多隻手的資訊來產生第二設備的用戶的身體的虛擬表示。在一些方面,第一設備(或其組件)可以將面部的虛擬表示與身體的虛擬表示組合以產生組合的虛擬表示。第一設備(或其組件)可以將頭髮的虛擬表示添加到組合的虛擬表示。
在方塊1206處,第一設備(或其組件)可以從與虛擬對話相關聯的第三設備的用戶的視角產生虛擬場景。虛擬場景包括第二設備的用戶的虛擬表示。在一些方面,為了產生虛擬場景,第一設備(或其組件)可以獲得虛擬場景的背景表示,並且基於虛擬場景的背景表示來調整第二設備的用戶的虛擬表示的照明,以產生用戶的經修改的虛擬表示。為了產生虛擬場景,第一設備(或其組件)可以將虛擬場景的背景表示與用戶的經修改的虛擬表示組合。
在方塊1208處,第一設備可將從第三設備的用戶的視角描繪虛擬場景的一個或多個幀發送(或其組件可輸出以供發送)到第三設備。
在一些方面,第一設備(或其組件)可以基於來自第三設備的輸入資訊來產生第三設備的用戶的虛擬表示。第一設備(或其組件)可以從第二設備的用戶的視角產生包括第三設備的用戶的虛擬表示的虛擬場景。第一設備可進一步向第二設備發送(或其組件可輸出以供發送)從第二設備的用戶的視角描繪虛擬場景的一個或多個幀。
在一些情況下,被配置為執行程序1200和/或本文中所描述的其它程序的操作的設備或裝置可以包括處理器、微處理器、微型計算機或被配置為執行程序1200和/或其它程序的步驟的設備的其它組件。在一些實例中,此類設備或裝置可以包括被配置為擷取影像資料和/或其它感測器測量的一或多個感測器。在一些示例中,此類計算設備或裝置可以包括被配置為擷取一個或多個影像或視頻的一個或多個感測器和/或相機。在一些情況下,這樣的設備或裝置可以包括用於顯示影像的顯示器。在一些示例中,一個或多個感測器和/或相機與設備或裝置分離,在這種情況下,設備或裝置接收感測到的資料。這樣的設備或裝置可以進一步包括被配置為傳送資料的網路介面。
被配置為執行本文描述的程序1200和/或其它程序的一個或多個操作的設備或裝置的組件可以在電路中實現。例如,組件可以包括電子電路或其它電子硬體,和/或者可以使用電子電路或其它電子硬體來實施,所述電子電路或其它電子硬體可以包括一個或多個可程式化電子電路(例如,微處理器、圖形處理單元(GPU)、數位信號處理器(DSP)、中央處理單元(CPU)、和/或其它合適的電子電路),和/或者組件可以包括用於執行本文中描述的各種操作的計算機軟體、韌體或其組合和/或者可以使用用於執行本文中描述的各種操作的計算機軟體、韌體或其組合來實現。計算設備還可以包括顯示器(作為輸出設備的示例或除了輸出設備之外)、被配置為通信和/或接收資料的網路介面、其任何組合和/或其他組件。網路介面可以被配置為傳送和/或接收基於網際網路協定(IP)的資料或其它類型的資料。
程序1200被示為邏輯流程圖,邏輯流程圖的操作表示可以用硬體、計算機指令或其組合來實現的操作序列。在計算機指令的背景下,操作表示被儲存在一個或多個計算機可讀儲存媒體上的計算機可執行指令,所述計算機可執行指令在由一個或多個處理器執行時執行所記載的操作。通常,計算機可執行指令包括執行特定功能或實施特定資料類型的例程、程式、對象、組件、資料結構、等等。操作以其描述的順序不旨在被解釋為限制,並且任何數量個所描述的操作可以以任何順序和/或並行地組合以實施所述程序。
另外,本文所述的程序(例如,程序1200和/或其它程序)可以在被配置有可執行指令的一個或多個計算機系統的控制下執行,以及可以作為在一個或多個處理器上共同執行的碼(例如,可執行指令、一個或多個計算機程式、或一個或多個應用)來實現,透過硬體來實現,或其組合。如上面所指出的,碼可以例如以包括可由一個或多個處理器執行的多個指令的計算機程式的形式儲存在計算機可讀或機器可讀儲存媒體上。計算機可讀或機器可讀儲存媒體可以是非暫時性的。
如上所述,虛擬表示(例如,化身)是虛擬環境的重要組件。虛擬表示(或化身)是用戶的3D表示,並且允許用戶與虛擬場景互動。存在不同的方式來表示用戶的虛擬表示(例如,化身)和對應的動畫資料。例如,化身可以是純合成的或者可以是用戶的準確表示(例如,如圖2的3D協作虛擬環境200中所示的虛擬表示202、204等所示)。虛擬表示(或化身)可能需要即時擷取或重定向以反映用戶的實際動態、身體姿態、面部表情等。
可能需要各種動畫資產來對虛擬表示或化身建模和/或產生虛擬表示或化身的動畫。例如,具有對應材料的一個或多個網格(例如,包括三維空間中的多個頂點、邊和/或面)可用於表示用戶的化身。材料可以包括法線紋理(例如,由法線圖表示)、漫射或反照率紋理、鏡面反射紋理、其任何組合和/或其他材料或紋理。例如,動畫化身是動畫化的網格和每個幀的對應資產(例如,法線、反照率、鏡面反射等)。圖13是示出用戶的網格1301的示例、用戶的法線圖1302的示例、用戶的反照率圖1304的示例、用戶的鏡面反射圖1306的示例以及用戶的個性化參數1308的示例的圖。例如,個性化參數1308可以是可以由用戶預先重新訓練、微調或設置的神經網路參數(例如,權重、偏差等)。各種材料或紋理可能需要從註冊或離線重建中獲得。
在一些方面中,資產可為視圖相關的(例如,針對某一視圖姿態產生)或可為視圖無關的(例如,針對所有可能視圖姿態產生)。在一些情況下,對於視圖無關的資產,真實性可能受到損害。
為用戶產生化身的目標是為用戶產生具有各種材料(例如,法線、反照率、鏡面反射等)的網格。在一些情況下,網格必須具有已知的拓撲。然而,來自掃描儀的網格(例如,LightCage、3DMD等)可能不滿足這種限制。為了解決這樣的問題,可以在掃描之後對網格進行重新拓撲化,這將使得網格被參數化。圖14A是示出原始(非拓撲化)網格1402的示例的圖。圖14B是示出重新拓撲化網格1404的示例的圖。重新拓撲虛擬表示或化身的網格導致網格變得用定義化身將如何在虛擬對話期間被動畫化的多個動畫參數來參數化。
可以使用各種技術來執行對虛擬表示(例如,化身)的動畫化。圖15是示出用於執行化身動畫的一種技術的示例的圖1500。如圖所示,頭戴式顯示器(HMD)的相機感測器用於擷取用戶面部的影像,包括用於擷取用戶眼睛的影像的眼睛相機、用於擷取面部的可見部分(例如,嘴、下巴、臉頰、鼻子的一部分等)的面部相機、以及用於擷取其他感測器資料(例如,音頻等)的其他感測器。機器學習(ML)模型(例如,神經網路模型)可以處理影像以產生3D面部頭像的3D網格和紋理。然後可以由渲染引擎渲染網格和紋理以產生經渲染的影像(例如,視圖相關渲染,如圖15所示)。
可能需要大的資料傳輸速率來在設備之間發送網格的網格資訊和動畫參數以用於化身的動畫化,以促進用戶之間的互動式虛擬體驗。例如,可能需要以每秒30-60幀(FPS)的幀速率針對每個幀將參數從第一用戶的一個設備發送到第二用戶的第二設備,使得第二設備可以使該幀速率渲染的每個幀的化身動畫化。
如前所述,本文還描述了用於為虛擬環境(例如,虛擬實境虛擬環境)的虛擬表示呼叫提供高效通信框架的系統和技術。在一些方面,用於建立化身呼叫的流程可以直接在客戶端設備(也稱為用戶設備)之間執行,或者可以經由伺服器執行。
圖16是直接在客戶端設備之間的化身呼叫流程的示例,客戶端設備包括第一用戶的第一客戶端設備1602(被示為客戶端設備A,也稱為用戶A)和第二用戶的第二客戶端設備1604(被示為客戶端設備B,也稱為用戶B)。在一個說明性示例中,第一客戶端設備1602是第一XR設備(例如,被配置為顯示VR、AR和/或其他XR內容的HMD),並且第二客戶端設備1604是第二XR設備(例如,被配置為顯示VR、AR和/或其他XR內容的HMD)。雖然在圖16中示出了兩個客戶端設備,但是圖16的呼叫流程可以在第一客戶端設備1602和多個其他客戶端設備之間。如圖所示,第一客戶端設備1602可以透過向第二客戶端設備1604發送呼叫建立請求1606以建立化身呼叫來在第一客戶端設備1602和第二客戶端設備1604之間建立化身呼叫。第二客戶端設備1604可以接受化身呼叫,諸如基於來自第二用戶的用戶輸入接受參與與第一用戶(並且在一些情況下是一個或多個其他用戶)的虛擬對話(例如,虛擬實境環境中的3D協作虛擬會議、計算機或虛擬遊戲或其他虛擬對話)的邀請。第二客戶端設備1604可以發送指示接受化身呼叫的呼叫接受器1608。
在接受化身呼叫時,第一客戶端設備1602可以向第二客戶端設備1604(例如,向第二客戶端設備1604上的安全位置)提供(例如,發送等)網格資訊1610。網格資訊定義第一用戶的化身(或其他虛擬表示)以用於參與第一用戶和第二用戶(並且在一些情況下一個或多個其他用戶)之間的虛擬對話(例如,3D協作虛擬會議、計算機或虛擬遊戲等)。在一些情況下,網格資訊可以包括定義第一用戶的化身的網格(或幾何形狀)的資訊,諸如網格的頂點、邊和/或面。網格資訊還可以包括資產,諸如定義網格的紋理和/或材料的資訊。例如,資產可以包括定義網格的法線紋理的法線圖(例如,圖13的法線圖1302)、定義網格的漫射或反照率紋理的反照率圖(例如,圖13的反照率圖1304)、定義網格的鏡面反射紋理的鏡面反射圖(例如,圖13的鏡面反射圖1306)、其任何組合和/或其他材料或紋理。在一些情況下,可以在註冊程序期間獲得資產,在此期間可以(例如,經由一個或多個擷取的影像)為用戶獲得資產資訊(例如,法線、反照率、鏡面反射等)。
第二客戶端設備1604還可以向第一客戶端設備1602(例如,向第一客戶端設備1602上的安全位置)提供(例如,發送等)定義第二用戶的化身(或其他虛擬表示)的網格資訊1612。類似於網格資訊1610,第二用戶的網格資訊1612可以包括定義化身的網格和與第二用戶的化身相關聯的其他資產(例如,法線圖、反照率圖、鏡面反射圖等)的資訊。在一些方面,網格資訊可被壓縮。
在一些方面,網格資訊1610和網格資訊1612可以僅在呼叫開始時被提供(例如,發送等)一次。在第一客戶端設備1602獲得第二用戶的網格資訊1612並且第二客戶端設備1604獲得第一用戶的網格資訊1610之後,第一客戶端設備1602和第二客戶端設備1604可以僅需要在化身呼叫期間交換網格動畫參數1614。例如,一旦在第一客戶端設備1602和第二客戶端設備1604之間建立了呼叫,第一客戶端設備1602和第二客戶端設備1604就可以在呼叫期間交換網格動畫參數,使得第一客戶端設備1602可以動畫化第二用戶的化身,並且第二客戶端設備1604可以在虛擬對話期間動畫化第一用戶的化身。
虛擬對話可以被渲染為多個幀。針對構成虛擬對話的多個幀中的每個幀,網格動畫參數可以包括表示第一客戶端設備1602的第一用戶的面部的資訊(例如,表示面部的外觀或其他資訊的碼或特徵,諸如關於圖7、圖10等描述的)、表示第一客戶端設備1602的第一用戶的身體的資訊(例如,表示身體的外觀、身體的姿態或其他資訊的碼或特徵,諸如關於圖7、圖10等描述的)、表示第一客戶端設備1602的第一用戶的一隻或多隻手的資訊(例如,表示手的外觀、手的姿態或其他資訊的碼或特徵,諸如關於圖7、圖10等描述的)、第一客戶端設備1602的姿態資訊(例如,六自由度(6-DOF)中的姿態,稱為6-DOF姿態,諸如關於圖7、圖10等描述的)、與第一客戶端設備1602所處的環境相關聯的音頻(諸如關於圖7、圖10等描述的)和/或其他資訊。在一些方面,網格動畫參數可被壓縮。
在一些方面,第二客戶端設備1604的動畫和場景渲染系統(例如,類似於圖7的動畫和場景渲染系統710、圖10的動畫和場景渲染系統1010、圖11的動畫和場景渲染系統1110等)可以處理來自第一客戶端設備1602的網格資訊1610和動畫參數,以在虛擬對話期間為第一用戶產生和/或動畫化化身。類似地,第一客戶端設備1602的動畫和場景渲染系統可以處理網格資訊1612和來自第二客戶端設備1604的動畫參數,以在虛擬對話期間為第二用戶產生和/或動畫化化身。
一旦虛擬對話完成,化身呼叫就結束1616。在一些情況下,在化身呼叫結束時,網格資訊可以由第一客戶端設備1602和第二客戶端設備1604刪除。
圖17是示出被配置成執行本文所描述的各方面(諸如與圖16和/或圖25的化身呼叫流相關聯的操作)的XR系統1700的示例的圖。如圖17所示,XR系統1700包括與圖7的XR系統700和圖10的XR系統1000相同的一些組件(具有相同的圖式標記)。面部編碼器709、姿態引擎712、手部引擎716、音頻編碼器718、用戶虛擬表示系統720、空間音頻引擎726、唇部同步引擎728、重投影引擎734、顯示器736、未來姿態投影引擎738、幾何編碼器引擎1011和音頻解碼器1025被配置為執行與圖7的XR系統700和/或圖10的XR系統1000的相同組件相同或類似的操作。XR系統1700還可以包括來自圖7、圖10、圖11和/或圖12的未在圖17中示出的組件,諸如場景合成系統722、預處理引擎1019和/或其他組件。
如圖17所示,用戶虛擬表示系統720可以使用第一客戶端設備1602的第一用戶(用戶A)的註冊資料1750,以產生針對第一用戶的虛擬表示(例如,化身)。第一用戶的註冊資料1750可以包括圖16的網格資訊1610。如關於圖16所描述的,網格資訊1610可以包括定義第一客戶端設備1602的第一用戶的化身的網格和與化身相關聯的其他資產(例如,法線圖、反照率圖、鏡面反射圖等)的資訊。關於圖16描述的網格動畫參數1614可以包括來自圖17的面部編碼器709的面部部分碼、來自圖17的幾何編碼器引擎1011(在一些情況下,其可以包括3DMM頭部編碼器)的面部混合形狀、來自圖17的手部引擎716的手部關節碼、來自圖17的姿態引擎712的頭部姿態、以及在一些情況下來自圖17的音頻編碼器718的音頻串流。
圖18是用於利用伺服器設備1805在客戶端設備之間建立化身呼叫的化身呼叫流程的示例。圖18的通信被示出在第一客戶端設備1802(被示為客戶端設備A,也稱為用戶A)和伺服器設備1805之間。雖然未示出,但是伺服器設備1805還與參與與第一客戶端設備1802的虛擬對話的一個或多個其他客戶端設備通信。一個或多個其他客戶端設備可以至少包括第二用戶的第二客戶端設備。在一個說明性示例中,第一客戶端設備1802是第一XR設備(例如,被配置為顯示VR、AR和/或其他XR內容的HMD),並且第二客戶端設備是第二XR設備(例如,被配置為顯示VR、AR和/或其他XR內容的HMD)。伺服器設備1805可以包括安全或受信伺服器或多個安全或受信伺服器。
如圖所示,第一客戶端設備1802可以透過向伺服器設備1805發送呼叫建立請求1806以建立化身呼叫來在第一客戶端設備1802與一個或多個其他客戶端設備之間建立化身呼叫。雖然圖18的呼叫流程包括第一客戶端設備1802發起呼叫,但是客戶端設備中的任一個可以向伺服器設備1805發送呼叫建立請求1806以建立化身呼叫。伺服器設備1805可以向一個或多個其他客戶端設備發送呼叫建立請求1806。
一個或多個其他客戶端設備中的任何一個(例如,第二客戶端設備)可以接受化身呼叫。例如,第二客戶端設備可以基於來自接受參與與第一用戶的虛擬對話(例如,虛擬實境環境中的3D協作虛擬會議、計算機或虛擬遊戲或其他虛擬對話)的邀請的第二用戶的用戶輸入以及在一些情況下來自一個或多個其他設備的一個或多個其他用戶的用戶輸入來接受化身呼叫。接受化身呼叫的一個或多個其他設備中的任何一個可以向伺服器設備1805發送呼叫接受,並且伺服器設備1805可以向第一客戶端設備1802發送指示接受化身呼叫的呼叫接受1808。
在接受化身呼叫時,第一客戶端設備1802可以將網格資訊1810發送到伺服器設備1805(例如,發送到伺服器設備1805上的安全位置)。伺服器設備1805可以向一個或多個其他客戶端設備提供(例如,發送、上傳以進行存取等)網格資訊。網格資訊定義第一用戶的化身(或其他虛擬表示)以用於參與第一用戶與一個或多個其他用戶之間的虛擬對話(例如,3D協作虛擬會議、計算機或虛擬遊戲等)。在一些情況下,網格資訊可以包括定義第一用戶的化身的網格(或幾何形狀)的資訊,諸如網格的頂點、邊和/或面。網格資訊還可以包括資產,諸如定義網格的紋理和/或材料的資訊。例如,資產可以包括定義網格的法線紋理的法線圖(例如,圖13的法線圖1302)、定義網格的漫射或反照率紋理的反照率圖(例如,圖13的反照率圖1304)、定義網格的鏡面反射紋理的鏡面反射圖(例如,圖13的鏡面反射圖1306)、其任何組合和/或其他材料或紋理。在一些情況下,可以在註冊程序期間獲得資產,在此期間可以(例如,經由一個或多個擷取的影像)為用戶獲得資產資訊(例如,法線、反照率、鏡面反射等)。
接受針對虛擬對話的呼叫建立請求1806的一個或多個客戶端設備中的每個客戶端設備可以向伺服器設備1805提供它們各自的網格資訊。例如,第二客戶端設備可以將定義第二用戶的化身(或其他虛擬表示)的網格資訊發送到伺服器設備1805(例如,發送到伺服器設備1805上的安全位置)。在一些情況下,伺服器設備1805可以向參與虛擬對話的其他客戶端設備提供每個客戶端設備的相對應網格資訊。在其他情況下,伺服器設備1805可以使用網格資訊來渲染虛擬對話的場景。
在一些方面,第一客戶端設備1802(並且在一些情況下,一個或多個其他客戶端設備)可以使用註冊/設置程序向伺服器設備1805註冊帳戶。在這樣的方面,第一客戶端設備1802可以向伺服器設備1805提供一次網格資訊1810。例如,第一客戶端設備1802可以提供網格資訊1810作為註冊/設置程序的一部分。該註冊/建立程序可以在建立呼叫之前完成。在一些情況下,網格資訊1810可以在呼叫建立期間提供一次,並且網格資訊1810可以在帳戶期間/之後與帳戶相關聯。例如,帳戶註冊/建立可以在第一呼叫結束時完成。網格資訊1810可以由伺服器設備1805儲存。在一些情況下,網格資訊1810可以與客戶端設備1802的第一用戶的帳戶相關聯。在設置帳戶並將網格資訊1810提供給伺服器設備1805之後,第一客戶端設備1802的第一用戶可以登錄到帳戶以供伺服器設備1805認證以用於將來的化身呼叫,而不必將網格資訊1810重新提供(例如,重新上傳、重新發送等)給伺服器設備1805。例如,如果網格資訊1810先前被提供給伺服器設備1805並由伺服器設備1805儲存,則客戶端設備1802在建立呼叫時可以不向伺服器設備1805提供網格資訊1810。相反,客戶端設備1802可以在建立呼叫時與伺服器設備1805進行認證,並且伺服器設備1805可以檢索所儲存的網格資訊1810以用於呼叫。值得注意的是,提供給伺服器設備1805的網格資訊1810可以不儲存在伺服器設備1805本身上,而是可以儲存在伺服器設備1805可存取的另一伺服器設備/受信伺服器/雲端儲存/其他儲存設備/服務等上。在一些情況下,第一客戶端設備1802可以向伺服器設備1805提供對網格資訊1810的任何更新。
在一些方面,對於特定化身呼叫,網格資訊1810(以及來自一個或多個其他客戶端設備的網格資訊)可以在化身呼叫開始時被提供給伺服器設備1805一次。在第一客戶端設備1802和一個或多個其他設備向伺服器設備1805提供它們各自的網格資訊之後,第一客戶端設備1802和一個或多個其他設備可能僅需要在化身呼叫期間向伺服器設備1805提供網格動畫參數1814。在一些情況下,一旦在第一客戶端設備1802和第二客戶端設備之間建立了呼叫,第一客戶端設備1802和第二客戶端設備就可以在呼叫期間經由伺服器設備1805交換網格動畫參數,使得第一客戶端設備1802可以動畫化第二用戶的化身,並且第二客戶端設備可以在虛擬對話期間動畫化第一用戶的化身。在其他情況下,伺服器設備1805可以使用各種客戶端設備的動畫參數(和網格資訊)來從各種客戶端設備的角度渲染第一客戶端設備1802和一個或多個其他客戶端設備的化身以及虛擬對話的場景。
虛擬對話可以被渲染為多個幀。針對構成虛擬對話的多個幀中的每個幀,網格動畫參數可以包括表示第一客戶端設備1802的第一用戶的面部的資訊(例如,表示面部的外觀或其他資訊的碼或特徵,諸如關於圖7、圖10等描述的)、表示第一客戶端設備1802的第一用戶的身體的資訊(例如,表示身體的外觀、身體的姿態或其他資訊的碼或特徵,諸如關於圖7、圖10等描述的)、表示第一客戶端設備1802的第一用戶的一隻或多隻手的資訊(例如,表示手的外觀、手的姿態或其他資訊的碼或特徵,諸如關於圖7、圖10等描述的)、第一客戶端設備1802的姿態資訊(例如,六自由度(6-DOF)中的姿態,稱為6-DOF姿態,諸如關於圖7、圖10等描述的)、與第一客戶端設備1802所處的環境相關聯的音頻(諸如關於圖7、圖10等描述的)和/或其他資訊。在一些方面,網格動畫參數可被壓縮。
在一些方面,如上所述,伺服器設備1805可以使用各種客戶端設備的動畫參數(和網格資訊)來從各種客戶端設備的角度渲染第一客戶端設備1802和一個或多個其他客戶端設備的化身以及虛擬對話的場景。例如,如圖18所示,伺服器設備1805可以經由分割渲染1815向第一客戶端設備1802和一個或多個其他客戶端設備提供(例如,發送、上傳以供存取等)由伺服器設備1805產生的特定場景。例如,使用網格資訊1810和第一客戶端設備1802的網格動畫參數,伺服器設備1805可以從第二客戶端設備的第二用戶的角度產生第一客戶端設備1802的第一用戶的化身的渲染。在其他方面,每個客戶端設備可以渲染一個或多個其他客戶端設備的一個或多個其他用戶的化身。例如,在這樣的方面,第一客戶端設備1802的動畫和場景渲染系統(例如,類似於圖7的動畫和場景渲染系統710、圖10的動畫和場景渲染系統1010、圖11的動畫和場景渲染系統1110等)可以處理網格資訊1812和來自一個或多個其他客戶端設備的動畫參數,以在虛擬對話期間為一個或多個其他用戶產生和/或動畫化化身。
一旦虛擬對話完成,化身呼叫就結束1816。在一些情況下,在化身呼叫結束時,網格資訊可以由伺服器設備1605刪除。
圖19是示出被配置為執行本文所描述的各方面(諸如與圖18的化身呼叫流相關聯的操作)的XR系統1900的示例的示意圖。如圖19所示,XR系統1900包括與圖7的XR系統700和圖10的XR系統1000相同的一些組件(具有相同的圖式標記)。面部編碼器709、姿態引擎712、手部引擎716、音頻編碼器718、背景場景資訊719、用戶虛擬表示系統720、場景合成系統722、空間音頻引擎726、唇部同步引擎728、視頻編碼器730、視頻解碼器732、重投影引擎734、顯示器736、未來姿態投影引擎738、幾何編碼器引擎1011和音頻解碼器1025被配置為執行與圖7的XR系統700和/或圖10的XR系統1000的相同組件相同或相似的操作。XR系統1900還可以包括來自圖7、圖10、圖11和/或圖12的未在圖19中示出的組件,諸如預處理引擎1019和/或其他組件。
如圖19所示,用戶虛擬表示系統720可以使用第一客戶端設備1802的第一用戶(用戶A)的註冊資料1950,以產生針對第一用戶的虛擬表示(例如,化身)。第一用戶的註冊資料1950可以包括圖18的網格資訊1810。如前所述,網格資訊1810可以包括定義第一客戶端設備1802的第一用戶的化身的網格和與化身相關聯的其他資產(例如,法線圖、反照率圖、鏡面反射圖等,諸如圖13的網格1301、法線圖1302、反照率圖1304、鏡面反射圖1306和/或個性化參數1308)的資訊。關於圖18描述的網格動畫參數可以包括來自圖19的面部編碼器709的面部部分碼、來自圖19的幾何編碼器引擎1011(其在一些情況下可以包括3DMM頭部編碼器)的面部混合形狀、來自圖19的手部引擎716的手部關節碼、來自圖19的姿態引擎712的頭部姿態、以及在一些情況下來自圖19的音頻編碼器718的音頻串流。
圖20是示出被配置為執行本文所描述的各方面(諸如與圖18的化身呼叫流相關聯的操作)的XR系統2000的示例的示意圖。當存在一個或多個視圖相關紋理時,可以使用XR系統2000。例如,視圖相關紋理是僅可以在某些姿態內查看的影像,而視圖無關紋理是不管人的姿態如何都可以查看的影像。例如,使用視圖相關紋理產生的影像在某一姿態範圍內(例如,從某一姿態開始一定度數)可以是有效的(例如,可以是可見的)。如果人的姿態偏移超過該範圍,則影像可能具有品質問題或不再可見。在一些情況下,當產生視圖相關紋理時可以使用更精確的姿態估計,因為視圖相關紋理可能僅在特定姿態範圍內有效。雖然視圖相關紋理可能限於一定範圍的姿態,但是與視圖無關紋理相比,視圖相關紋理的尺寸可能更小,並且這允許潛在的記憶體、頻寬和/或計算節省。
如圖20所示,XR系統2000包括與圖7的XR系統700和圖10的XR系統1000相同的一些組件(具有相同的圖式標記)。面部編碼器709、姿態引擎712、手部引擎716、音頻編碼器718、用戶虛擬表示系統720、空間音頻引擎726、唇部同步引擎728、視頻編碼器730、視頻解碼器732、重投影引擎734、顯示器736、未來姿態投影引擎738、幾何編碼器引擎1011和音頻解碼器1025被配置為執行與圖7的XR系統700和/或圖10的XR系統1000的相同組件相同或類似的操作。如圖所示,XR系統2000可以使用資訊2019來由用戶虛擬表示系統720產生一個或多個虛擬表示(例如,化身)和/或由用戶視圖渲染引擎2075從用戶的視角渲染場景的視圖,其包括背景資訊(例如,在一些情況下類似於圖7的背景場景資訊719)和其他用戶(包括一個或多個其他用戶)更新動畫參數和註冊資料。如圖20所示,用戶虛擬表示系統720可以使用第一用戶(用戶A)的註冊資料2050來產生第一用戶的虛擬表示(例如,化身)。第一用戶的註冊資料2050可以包括圖18的網格資訊1810,並且網格資訊1810可以包括定義第一客戶端設備1802的第一用戶的化身的網格和與化身相關聯的其他資產的資訊(例如,法線圖、反照率圖、鏡面反射圖等,諸如圖13的網格1301、法線圖1302、反照率圖1304、鏡面反射圖1306和/或個性化參數1308)。XR系統2000還包括可用於合成和/或定義虛擬環境或對話的場景的場景定義/合成系統2022。XR系統2000被示出為包括可信邊緣伺服器,該可信邊緣伺服器包括某些組件。在一些情況下,XR系統2000可以不包括邊緣伺服器。在一些示例中,圖7、圖10、圖11和/或圖17和/或圖19的XR系統中的任一個可以包括如圖20所示的邊緣伺服器。XR系統2000還可以包括來自圖7、圖10和/或圖11的未在圖20中示出的組件,諸如預處理引擎1019和/或其他組件。
圖21是示出被配置為執行本文所描述的各方面(諸如與圖18的化身呼叫流相關聯的操作)的XR系統2100的示例的示意圖。當存在一個或多個視圖無關紋理時,可以使用XR系統2100。如上所述,視圖無關紋理是可以被查看而不管人的姿態如何的影像。如圖21所示,XR系統2100包括與圖7的XR系統700和圖10的XR系統1000相同的一些組件(具有相同的圖式標記)。面部編碼器709、姿態引擎712、手部引擎716、音頻編碼器718、用戶虛擬表示系統720、空間音頻引擎726、唇部同步引擎728、視頻編碼器730、視頻解碼器732、重投影引擎734、顯示器736、幾何編碼器引擎1011和音頻解碼器1025被配置為執行與圖7的XR系統700和/或圖10的XR系統1000的相同部件相同或相似的操作。如圖所示,XR系統2100可以使用資訊2119來由用戶虛擬表示系統720產生一個或多個虛擬表示(例如,化身)和/或由用戶視圖渲染引擎2175從用戶的視角渲染場景的視圖,其包括背景資訊(例如,在一些情況下類似於圖7的背景場景資訊719)和其他用戶(包括一個或多個其他用戶)更新動畫參數和註冊資料。XR系統2100還包括可用於合成和/或定義虛擬環境或對話的場景的場景定義/合成系統2122。XR系統2100被示出為包括可信邊緣伺服器,該可信邊緣伺服器包括某些組件,諸如場景定義/合成系統2122。在一些情況下,可信雲端伺服器可以被配置為設置和/或控制/指導可以由可信邊緣伺服器執行的計算操作。例如,在可信雲端伺服器上執行的場景定義/合成系統2122可以控制/指導可信邊緣伺服器上的系統,諸如用戶虛擬表示系統720和/或用戶視圖渲染系統2175。在一些情況下,XR系統2100可以不包括邊緣伺服器。在一些示例中,圖7、圖10、圖11和/或圖17和/或圖19的XR系統中的任一個可以包括如圖21所示的邊緣伺服器。XR系統2100還可以包括來自圖7、圖10、圖11和/或圖12的未在圖21中示出的組件,諸如預處理引擎1019和/或其他組件。
如上所述,其他示例呼叫流可以基於沒有邊緣伺服器並且在目標或接收客戶端設備上具有(例如,針對視圖相關紋理和視圖無關紋理的)解碼器的設備對設備流、沒有邊緣伺服器並且在源或發送/傳送客戶端設備上具有(例如,針對視圖相關紋理和視圖無關紋理的)所有處理(例如,解碼、化身動畫化等)的設備對設備流、具有邊緣伺服器並且在伺服器設備上具有(例如,用於視圖相關紋理和視圖無關紋理的)解碼器的設備對設備流、以及具有邊緣伺服器並且在源或發送/傳送客戶端設備上具有(例如,用於視圖相關紋理和視圖無關紋理的)所有處理(例如,解碼、化身動畫化等)的設備對設備流。如先前所描述,可針對某一視圖姿態產生視圖相依紋理且可針對所有可能視圖姿態產生視圖獨立紋理。
圖22是示出被配置為執行本文描述的各方面的XR系統2200的示例的圖,諸如與沒有邊緣伺服器並且在目標設備(例如,目標HMD)上具有針對視圖相關紋理的解碼器的設備對設備流相關聯的操作。如圖22所示,XR系統2200包括與圖7的XR系統700、圖10的XR系統1000、圖20的XR系統2000、圖21的XR系統2100等相同的組件(具有相同的圖式標記)中的一些組件,類似的組件(例如,面部編碼器709、身體引擎714、手部引擎716、未來姿態預測引擎738等)被配置為執行與圖7的XR系統700、圖10的XR系統1000、圖20的XR系統2000、圖21的XR系統2100等的相同組件相同或類似的操作。如圖所示,XR系統2200可以使用資訊2119來由用戶虛擬表示系統720產生一個或多個虛擬表示(例如,化身)和/或由用戶視圖渲染引擎2175從用戶的視角渲染場景的視圖,用戶視圖渲染引擎2175包括背景資訊(例如,在一些情況下類似於圖7的背景場景資訊719),並且其他用戶的(包括一個或多個其他用戶)更新動畫參數和註冊資料。用戶虛擬表示系統720可以將視圖相關紋理傳遞給用戶視圖渲染系統2175。傳遞視圖相關紋理可以幫助減少用於發送紋理的記憶體和/或頻寬的量。XR系統2200還包括可用於合成和/或定義虛擬環境或對話的場景的場景定義/合成系統2122。XR系統2200被示出為包括可信雲端伺服器,該可信雲端伺服器包括某些組件,諸如場景定義/合成系統2122。在一些情況下,在可信雲端伺服器上執行的場景定義/合成系統2122可以控制/指導可信邊緣伺服器上的系統,諸如用戶虛擬表示系統720和/或用戶視圖渲染系統2175。在一些情況下,XR系統2200可以不包括雲端伺服器。XR系統2200還可以包括來自圖7、圖10、圖11和/或圖12的未在圖22中示出的組件,諸如預處理引擎1019和/或其他組件。
圖23是示出被配置為執行本文描述的各方面的XR系統2300的示例的圖,諸如與沒有邊緣伺服器並且在目標設備(例如,目標HMD)上具有用於視圖無關紋理的解碼器的設備對設備流相關聯的操作。如圖23所示,XR系統2300包括與圖7的XR系統700、圖10的XR系統1000、圖20的XR系統2000、圖21的XR系統2100等相同的一些組件(具有相同的圖式標記)。類似組件(例如,面部編碼器709、主體引擎714、手部引擎716等)被配置為執行與圖7的XR系統700、圖10的XR系統1000、圖20的XR系統2000、圖21的XR系統2100等的相同組件相同或類似的操作。如圖所示,XR系統2300可以使用資訊2119來由用戶虛擬表示系統720產生一個或多個虛擬表示(例如,化身)和/或由用戶視圖渲染引擎2175從用戶的視角渲染場景的視圖,用戶視圖渲染引擎2175包括背景資訊(例如,在一些情況下類似於圖7的背景場景資訊719),並且其他用戶的(包括一個或多個其他用戶)更新動畫參數和註冊資料。XR系統2300的用戶虛擬表示系統720可以將視圖無關紋理傳遞給用戶視圖渲染系統2175。XR系統2300還包括可用於合成和/或定義虛擬環境或對話的場景的場景定義/合成系統2122。XR系統2300被示出為包括可信雲端伺服器,該可信雲端伺服器包括某些組件。在一些情況下,XR系統2300可以不包括雲端伺服器。XR系統2300還可以包括來自圖7、圖10、圖11和/或圖12的未在圖23中示出的組件,諸如預處理引擎1019和/或其他組件。
圖24是示出第一用戶設備(UE)(示為UE1 2402)、代理呼叫建立和控制功能(P-CSCF)、服務呼叫建立和控制功能(S-CSCF)、詢問呼叫建立和控制功能(I-CSCF)(統稱為P/S/I-CSCF 2404)、媒體資源功能(MRF)2406、多媒體電話應用伺服器(MMTel AS)2408和第二UE(示為UE2 2410)之間的通信以建立XR對話的信令圖2400。信令圖2400的操作可由圖22的XR系統2200和/或圖23的XR系統2300執行。在一些情況下,可以根據3GPP技術規範組服務和系統方面(SA)WG4(SA4)來執行信令圖2400的操作。
如圖所示,可以執行呼叫建立程序2412以在第一UE 2402和第二UE 2410之間建立呼叫。在建立呼叫之後,可以執行場景描述檢索程序2414。在一些情況下,在場景描述檢索程序2414期間,在可信雲端伺服器上的場景定義/合成系統(例如,圖22-23的場景定義/合成系統2022)可以檢索關於在XR對話中呈現的場景的資訊,諸如用戶註冊資料(例如,圖22-23的用戶A註冊資料2150)以及背景資訊(例如,圖22-23的資訊2119)。在一些情況下,場景定義/合成系統還可以在可信邊緣伺服器上設置/建立計算程序,諸如用戶虛擬表示系統(例如,用戶虛擬表示系統720)和用戶視圖渲染系統(例如,圖22-23的用戶視圖渲染系統2175等)。場景描述更新程序2416可以根據需要將更新應用於關於場景的資訊。在第一UE 2402與第二UE 2410之間的擴增實境(AR)媒體和元資料交換程序2418期間,第一UE 2402向第二UE 2410發送2420(例如,發送)所儲存的化身資料(例如,發送一次資料)。在一些情況下,化身資料(例如,從第一UE向第二UE發送2420的所儲存的化身資料)也可以被稱為用戶註冊資料(例如,諸如圖22-23的用戶A註冊資料2150等的資料)。第一UE向第二UE 2410發送2422(例如,發送)基於面部表情、姿態等的資訊(例如,動畫參數,諸如圖21或圖22的面部部分碼、面部混合形狀、手關節、頭部姿態和/或音頻串流)。第二UE 2410(例如,使用圖21或圖22的用戶虛擬表示系統720)執行化身動畫2424。第二UE 2410(例如,使用圖21或圖22的用戶視圖渲染系統2175)渲染用戶視圖2426。
圖25是用於在客戶端設備之間建立化身呼叫的、不具有邊緣伺服器並且在目標設備(例如,目標HMD)上具有用於視圖相關和/或視圖無關紋理的解碼器的設備對設備呼叫流的示例。圖25的通信示出在第一客戶端設備2502(示出為客戶端設備A,也稱為用戶A,其可以是HMD、AR眼鏡等)和第二客戶端設備2505(示出為客戶端設備B,也稱為用戶B,其可以是HMD、AR眼鏡等)之間。在一些情況下,圖25的呼叫流程的通信可由圖17的XR系統1700、圖22的XR系統2200和/或圖23的XR系統2300執行。
如圖25所示,第一客戶端設備2502建立呼叫(例如,透過向第二客戶端設備2504發送請求訊息2506),並且第二客戶端設備2504接受該呼叫(例如,透過向第一客戶端設備2502發送響應2508或確認訊息)。在一些情況下,第一客戶端設備2502然後可以將用戶A的網格和資產2510(例如,註冊資料、圖16的網格資訊1610等,如上面關於圖18所討論的)傳送到第二客戶端設備2504上的安全位置。在其他情況下,第二客戶端設備2504可以從第二客戶端設備2504的記憶體或儲存裝置(例如,快取)獲取網格和/或資產,諸如如果第一客戶端設備2502和第二客戶端設備2505經常涉及呼叫。在一些情況下,第二客戶端設備2504可以將網格和/或資產2512(例如,註冊資料)發送到第一客戶端設備2502上的安全位置。在其他情況下,第一客戶端設備2502可以從第一客戶端設備2502的記憶體或儲存裝置(例如,快取)獲取網格和/或資產。然後可以建立2514呼叫,並且第一客戶端設備2502和第二客戶端設備2504可以在呼叫期間交換網格動畫參數。然後,呼叫可以結束2516,在這種情況下,可以從第一客戶端設備2502和第二客戶端設備2504上的安全位置刪除網格和資產,或者如果用戶是可信的,則可以維護網格和資產以供進一步使用。
圖26是示出了XR系統2600的示例的圖,該XR系統2600被配置為執行本文描述的各方面,諸如沒有邊緣伺服器並且在源或發送/傳送客戶端設備(被示為源HMD和協處理器)上具有針對視圖相關紋理的所有處理(例如,解碼、化身動畫化等)的設備對設備流相關聯的操作。如圖26所示,XR系統2600包括與圖7的XR系統700、圖10的XR系統1000、圖20的XR系統2000、圖21的XR系統2100等相同的組件(具有相同的圖式標記)中的一些組件。類似組件(例如,面部編碼器709、身體引擎714、手部引擎716、未來姿態預測引擎738等)被配置為執行與圖7的XR系統700、圖10的XR系統1000、圖20的XR系統2000、圖21的XR系統2100等的相同組件相同或類似的操作。如圖所示,發送/傳送客戶端設備的用戶虛擬表示系統720可以使用發送/傳送客戶端設備(示出為用戶A)的用戶的註冊資料2150來產生用戶A的虛擬表示(例如,化身)。編碼器2630可以對用戶A的虛擬表示進行編碼,並且將經編碼的資訊發送到目標或接收客戶端設備(示出為目標HMD和協處理器)的用戶視圖渲染引擎2175。用戶視圖渲染引擎2175可以使用經編碼的資訊和資訊2619(例如,背景資訊,在一些情況下類似於圖7的背景場景資訊719,以及一個或多個其他用戶的網格,並且在一些情況下更新動畫參數和註冊資料)來從目標/接收設備的用戶的視角渲染場景的視圖(包括視圖相關紋理)。XR系統2600還包括可用於合成和/或定義虛擬環境或對話的場景的場景定義/合成系統2122。在一些情況下,接收客戶端設備(目標HMD和協處理器)可以不包括視頻編碼器730,諸如基於具有編碼器2630的發送/傳送客戶端設備(源HMD和協處理器)。XR系統2600被示出為包括可信雲端伺服器,該可信雲端伺服器包括某些組件。在一些情況下,XR系統2600可以不包括雲端伺服器。XR系統2600還可以包括來自圖7、圖10、圖11和/或圖12的未在圖26中示出的組件,諸如預處理引擎1019和/或其他組件。
圖27是示出XR系統2700的示例的圖,該XR系統2700被配置為執行本文描述的各方面,諸如沒有邊緣伺服器並且在源或發送/傳送客戶端設備(被示為源HMD和協處理器)上具有針對視圖無關紋理的所有處理(例如,解碼、化身動畫化等)的設備對設備流相關聯的操作。如圖27所示,XR系統2700包括與圖7的XR系統700、圖10的XR系統1000、圖20的XR系統2000、圖21的XR系統2100等相同的一些組件(具有相同的圖式標記)。類似組件(例如,面部編碼器709、主體引擎714、手部引擎716等)被配置為執行與圖7的XR系統700、圖10的XR系統1000、圖20的XR系統2000、圖21的XR系統2100等的相同組件相同或類似的操作。如圖所示,發送/傳送客戶端設備的用戶虛擬表示系統720可以使用發送/傳送客戶端設備(被示出為用戶A)的用戶的註冊資料2150來產生用戶A的虛擬表示(例如,化身)。編碼器2730可以對用戶A的虛擬表示進行編碼,並且將經編碼的資訊發送到目標或接收設備(示出為目標HMD和協處理器)的用戶視圖渲染引擎2175。用戶視圖渲染引擎2175可以使用經編碼的資訊和資訊2719(例如,背景資訊,在一些情況下類似於圖7的背景場景資訊719,以及一個或多個其他用戶的網格,並且在一些情況下更新動畫參數和註冊資料)來從目標/接收設備的用戶的視角渲染場景的視圖(包括視圖無關紋理)。XR系統2700還包括可用於合成和/或定義虛擬環境或對話的場景的場景定義/合成系統2122。XR系統2700被示出為包括可信雲端伺服器,該可信雲端伺服器包括某些組件。在一些情況下,XR系統2700可以不包括雲端伺服器。XR系統2700還可以包括來自圖7、圖10、圖11和/或圖12的未在圖27中示出的組件,諸如預處理引擎1019和/或其他組件。
圖28是示出第一UE(示為UE1)、P-CSCF、S-CSCF、I-CSCF、MRF、MMTel AS和第二UE(示為UE2)之間的通信的信令圖2800。信令圖2800的操作可由圖26的XR系統2600和/或圖27的XR系統2700執行。在一些情況下,可以根據3GPP SA4來執行信令圖2800的操作。如圖所示,在操作13處,在第一UE和第二UE之間的AR媒體和元資料交換期間,第一UE(例如,使用圖26或圖27的用戶虛擬表示系統720)存取儲存的化身資料(例如,來自圖26或圖27的用戶A註冊資料2150),並獲得關於用戶的面部表情、姿態等的資訊(例如,動畫參數,諸如來自面部編碼器709的面部部分碼、來自手部引擎716的手關節等,如圖26或圖27所示)。在操作14處,第一UE執行動畫化(例如,使用圖26或圖27的用戶虛擬表示系統720)。在操作15處,第一UE向第二UE傳送(例如,發送)第一UE的用戶的網格。在操作16處,第二UE渲染用戶視圖(例如,使用圖26或圖27的用戶視圖渲染系統2175)。
圖29是用於在客戶端設備之間建立化身呼叫的、沒有邊緣伺服器並且在源或發送/傳送客戶端設備上具有針對視圖相關和/或視圖無關紋理的所有處理(例如,解碼、化身動畫化等)的設備對設備呼叫流程的示例。圖29的通信被示出在第一客戶端設備2902(被示出為客戶端設備A,也稱為用戶A,其可以是HMD、AR眼鏡等)和一個或多個其他客戶端設備2905(其可以是單個其他客戶端設備或多個其他客戶端設備)之間。在一些情況下,圖29的呼叫流的通信可以由圖26的XR系統2600和/或圖27的XR系統2700執行。
如圖29所示,第一客戶端設備2902建立呼叫(例如,透過向一個或多個其他客戶端設備2905發送請求訊息2906),並且來自一個或多個其他客戶端設備2905的至少一個客戶端設備(或至少一個客戶端設備的用戶)接受呼叫(例如,透過向第一客戶端設備2902發送響應2908或確認訊息)。然後建立2910呼叫,並且每個客戶端設備(包括第一客戶端設備2902和接受呼叫的一個或多個其他客戶端設備2905中的每個客戶端設備)可以向其他用戶發送相對應用戶的虛擬表示(或化身)的三維(3D)視頻或3D視頻更新。然後,呼叫可以結束2912。
圖30是示出被配置為執行本文描述的各方面的XR系統3000的示例的圖,諸如與具有邊緣伺服器並且在伺服器設備(例如,圖30的可信邊緣伺服器和/或可信雲端伺服器)上具有針對視圖相關紋理的解碼器的設備對設備流相關聯的操作。如圖30所示,XR系統3000包括與圖7的XR系統700、圖10的XR系統1000、圖20的XR系統2000、圖21的XR系統2100等相同的一些組件(具有相同的圖式標記)。類似組件(例如,面部編碼器709、幾何編碼器引擎1011、手部引擎716、未來姿勢預測引擎738等)被配置為執行與圖7的XR系統700、圖10的XR系統1000、圖20的XR系統2000、圖21的XR系統2100等的相同組件相同或類似的操作。如圖所示,可信邊緣伺服器的用戶虛擬表示系統720可以使用發送/傳送客戶端設備的用戶的註冊資料2150(示出為用戶A)來產生用戶A的(具有視圖相關紋理的)虛擬表示(例如,化身)。第一用戶的註冊資料2150可以包括圖18的網格資訊1810,並且網格資訊1810可以包括定義第一客戶端設備1802的第一用戶的化身的網格和與化身相關聯的其他資產的資訊(例如,法線圖、反照率圖、鏡面反射圖等,諸如圖13的網格1301、法線圖1302、反照率圖1304、鏡面反射圖1306和/或個性化參數1308)。可信邊緣伺服器上的用戶視圖渲染引擎2175可以使用視圖相關紋理資訊和資訊2119(例如,背景資訊,在一些情況下類似於圖7的背景場景資訊719,以及一個或多個其他用戶的更新動畫參數和註冊資料)來從目標/接收設備(被示為目標HMD)的用戶的視角渲染場景的視圖。XR系統3000還包括可以用於合成和/或定義虛擬環境或對話的場景的場景定義/合成系統2122(其可以在雲端伺服器上)。XR系統3000被示出為包括可信雲端伺服器,該可信雲端伺服器包括某些組件。在一些情況下,XR系統3000可以不包括雲端伺服器。XR系統3000還可以包括來自圖7、圖10、圖11和/或圖12的未在圖30中示出的組件,諸如預處理引擎1019和/或其他組件。
圖31是示出被配置為執行本文描述的各方面的XR系統3100的示例的圖,諸如與具有邊緣伺服器並且在伺服器設備(例如,圖31的可信邊緣伺服器和/或可信雲端伺服器)上具有針對視圖相關紋理的解碼器的設備對設備流相關聯的操作。如圖31所示,XR系統3100包括與圖7的XR系統700、圖10的XR系統1000、圖20的XR系統2000、圖21的XR系統2100等相同的一些組件(具有相同的圖式標記)。類似組件(例如,面部編碼器709、幾何編碼器引擎1011、手引擎716等)被配置為執行與圖7的XR系統700、圖10的XR系統1000、圖20的XR系統2000、圖21的XR系統2100等的相同組件相同或類似的操作。如圖所示,受信任邊緣伺服器的用戶虛擬表示系統720可以使用發送/傳送客戶端設備(被示出為用戶A)的用戶的註冊資料2150來產生用戶A的(具有與視圖無關的紋理的)虛擬表示(例如,化身)。可信邊緣伺服器上的用戶視圖渲染引擎2175可以使用視圖無關紋理資訊和資訊2119(例如,背景資訊,在一些情況下類似於圖7的背景場景資訊719,以及一個或多個其他用戶的更新動畫參數和註冊資料)來從目標/接收設備(示出為目標HMD)的用戶的視角渲染場景的視圖。XR系統3100還包括可以用於合成和/或定義虛擬環境或對話的場景的場景定義/合成系統2122(其可以在雲端伺服器上)。XR系統3100被示出為包括可信雲端伺服器,該可信雲端伺服器包括某些組件。在一些情況下,XR系統3100可以不包括雲端伺服器。XR系統3100還可以包括來自圖7、圖10、圖11和/或圖12的未在圖31中示出的組件,諸如預處理引擎1019和/或其他組件。
圖32是示出第一UE(示為UE1 3202)、P-CSCF、S-CSCF、I-CSCF(統稱為P/S/I-CSCF 3204)、MRF 3206、MMTel AS 3208和第二UE(示為UE2 3210)之間的通信的信令圖3200。信令圖3200的操作可由圖30的XR系統3000和/或圖31的XR系統3100執行。在一些情況下,可以根據3GPP SA4來執行信令圖3200的操作。在一些情形中,呼叫建立程序2412、場景描述檢索程序2414、以及場景描述更新程序2416可基於圖30和圖31的類似編號的組件以基本上類似於以上關於圖24所討論的方式來執行。如圖所示,在第一UE 3202、MRF 3206和第二UE 3210之間的AR媒體和元資料交換期間,第一UE 3202向擴增MRF 3206(例如,其可以是圖30和/或圖31的邊緣伺服器的一部分)傳送3220(例如,發送)儲存的化身資料(例如,傳送一次資料)。第一UE 3202基於面部表情、姿態等向MRF 3206傳送3222(例如,發送)資訊(例如,動畫參數,諸如圖30或圖31的面部部分碼、面部混合形狀、手關節、頭部姿態和/或音頻串流)。MRF 3206執行化身動畫化3224(例如,使用圖30或圖31的用戶虛擬表示系統720)。MRF 3206呈現用戶視圖3226(例如,使用圖30或圖31的用戶視圖呈現系統2175)。MRF 3206將渲染的用戶視圖發送3228到第二UE 3210。
圖33是根據本公開內容的各方面的用於在客戶端設備之間建立化身呼叫的、具有邊緣伺服器並且在伺服器設備(例如,圖30和/或圖31的可信邊緣伺服器和/或可信雲端伺服器)上具有針對視圖相關和/或視圖無關紋理的解碼器的設備對設備呼叫流程的示例。圖33的通信被示出在第一客戶端設備3302(被示出為客戶端設備A,也稱為用戶A,其可以是HMD、AR眼鏡等)和一個或多個其他客戶端設備3305(其可以是單個其他客戶端設備或多個其他客戶端設備)之間。在一些情況下,圖33的呼叫流的通信可以由圖30的XR系統3000和/或圖31的XR系統3100執行。
如圖33所示,第一客戶端設備3302建立呼叫(例如,透過向一個或多個其他客戶端設備3305發送請求訊息3306),並且來自一個或多個其他客戶端設備3305的至少一個客戶端設備(或至少一個客戶端設備的用戶)接受呼叫(例如,透過向第一客戶端設備3302發送響應3308或確認訊息)。在一些情況下,第一客戶端設備3302和接受呼叫的一個或多個其他客戶端設備3305中的每個客戶端設備可以向諸如受信伺服器上的安全位置或儲存裝置的受信伺服器(例如,圖30和/或圖31的邊緣伺服器)傳送(例如,發送)相對應網格、資產(例如,反照率圖、法線圖、鏡面反射圖等)、機器學習參數3310(例如,神經網路權重),其可以是註冊資料的一部分。在其他情況下,如果相對應客戶端設備具有受信伺服器(或使用受信伺服器的服務提供商)的帳戶,則客戶端設備可以從相對應客戶端設備的記憶體或儲存裝置(例如,快取)獲取網格、資產等。在這種情況下,相對應的客戶端設備可以由受信伺服器認證,以便允許客戶端設備獲取資料。
然後建立3312呼叫,並且每個客戶端設備(包括第一客戶端設備3302和接受呼叫的一個或多個其他客戶端設備3305中的每個客戶端設備)可以在呼叫期間向受信伺服器發送網格動畫化參數。受信伺服器然後可以向每個客戶端設備傳送由受信伺服器產生的特定場景3314(例如,使用圖30或圖31的用戶虛擬表示系統720和/或用戶視圖渲染系統2175)。
然後,呼叫可以結束3316,在這種情況下,網格和資產可以從受信伺服器刪除(例如,受信伺服器上的安全位置或儲存裝置),或者客戶端設備可以從其相對應帳戶注銷。
圖34是示出了XR系統3400的示例的圖,該XR系統3400被配置為執行本文描述的方面,諸如與具有邊緣伺服器並且在源或發送/傳送客戶端設備(被示為源HMD和協處理器)上具有針對視圖相關紋理的所有處理(例如,解碼、化身動畫化等)的設備對設備流相關聯的操作。如圖34所示,XR系統3400包括與圖7的XR系統700、圖10的XR系統1000、圖20的XR系統2000、圖21的XR系統2100等相同的一些組件(具有相同的圖式標記)。類似組件(例如,面部編碼器709、幾何編碼器引擎1011、手部引擎716、未來姿態預測引擎738等)被配置為執行與圖7的XR系統700、圖10的XR系統1000、圖20的XR系統2000、圖21的XR系統2100等的相同組件相同或類似的操作。如圖所示,發送/傳送客戶端設備的用戶虛擬表示系統720可以使用發送/傳送客戶端設備(示出為用戶A)的用戶的註冊資料2150來產生用戶A的虛擬表示(例如,化身)。編碼器3430可以對用戶A的虛擬表示進行編碼,並且將經編碼的資訊發送到邊緣伺服器上的用戶視圖渲染引擎2175。用戶視圖渲染引擎2175可以使用經編碼的資訊和資訊3419(例如,背景資訊,在一些情況下類似於圖7的背景場景資訊719,以及一個或多個其他用戶的網格,並且在一些情況下更新動畫參數和註冊資料)來從目標/接收設備的用戶的視角渲染場景的視圖(包括視圖相關紋理)。XR系統3400還包括可用於合成和/或定義虛擬環境或對話的場景的場景定義/合成系統2122。在一些情況下,接收客戶端設備(目標HMD和協處理器)可以不包括視頻編碼器730,諸如基於具有編碼器3430的發送/傳送客戶端設備(源HMD和協處理器)。XR系統3400被示出為包括可信雲端伺服器,該可信雲端伺服器包括某些組件。在一些情況下,XR系統3400可以不包括雲端伺服器。XR系統3400還可以包括來自圖7、圖10、圖11和/或圖12的未在圖34中示出的組件,諸如預處理引擎1019和/或其他組件。
圖35是示出了XR系統3500的示例的圖,該XR系統3500被配置為執行本文描述的方面,諸如與具有邊緣伺服器並且在源或發送/發送客戶端設備(被示為源HMD和協處理器)上具有針對視圖無關紋理的所有處理(例如,解碼、化身動畫化等)的設備對設備流相關聯的操作。如圖35所示,XR系統3500包括與圖7的XR系統700、圖10的XR系統1000、圖20的XR系統2000、圖21的XR系統2100等相同的一些組件(具有相同的圖式標記)。類似組件(例如,面部編碼器709、幾何編碼器引擎1011、手部引擎716等)被配置為執行與圖7的XR系統700、圖10的XR系統1000、圖20的XR系統2000、圖21的XR系統2100等的相同組件相同或類似的操作,如圖所示,發送/傳送客戶端設備的用戶虛擬表示系統720可以使用發送/傳送客戶端設備(示出為用戶A)的用戶的註冊資料2150來產生用戶A的虛擬表示(例如,頭像)。編碼器3530可以對用戶A的虛擬表示進行編碼,並且將經編碼的資訊傳送到邊緣伺服器上的用戶視圖渲染引擎2175。
用戶視圖渲染引擎2175可以使用經編碼的資訊和資訊3519(例如,背景資訊,在一些情況下類似於圖7的背景場景資訊719,以及一個或多個其他用戶的網格,並且在一些情況下更新動畫參數和註冊資料)來從目標/接收設備的用戶的視角渲染場景的視圖(包括視圖無關紋理)。XR系統3500還包括可用於合成和/或定義虛擬環境或對話的場景的場景定義/合成系統2122。XR系統3500被示出為包括可信雲端伺服器,該可信雲端伺服器包括某些組件。在一些情況下,XR系統3500可以不包括雲端伺服器。XR系統3500還可以包括來自圖7、圖10、圖11和/或圖12的未在圖35中示出的組件,諸如預處理引擎1019和/或其他組件。
圖36是示出第一UE(示為UE1)、P-CSCF、S-CSCF、I-CSCF、MRF、MMTel AS和第二UE(示為UE2)之間的通信的信令圖3600。信令圖3600的操作可由圖34的XR系統3400和/或圖35的XR系統3500執行。在一些情況下,可以根據3GPP SA4來執行信令圖3600的操作。如圖所示,在操作13處,在第一UE、MRF和第二UE之間的AR媒體和元資料交換期間,第一UE(例如,使用圖34或圖35的用戶虛擬表示系統720)存取儲存的化身資料(例如,來自圖34或圖35的用戶A註冊資料2150)並獲得關於用戶的面部表情、姿態等的資訊(例如,動畫參數,諸如來自面部編碼器709的面部部分碼、來自手部引擎716的手關節等,如圖34或圖35所示)。在操作14處,第一UE執行動畫化(例如,使用圖34或圖35的用戶虛擬表示系統720)。在操作15處,第一UE向MRF(例如,其可以是圖30和/或圖31的邊緣伺服器的一部分)傳送(例如,發送)第一UE的用戶的網格。在操作16處,MRF渲染用戶視圖(例如,使用圖34或圖35的用戶視圖渲染系統2175)。在操作17處,MRF將渲染的用戶視圖發送到第二UE。
圖37是用於客戶端設備之間建立化身呼叫的、具有邊緣伺服器並且在源或發送/傳送客戶端設備上具有針對視圖相關和/或視圖無關紋理的所有處理(例如,解碼、化身動畫化等)的設備對設備呼叫流程的示例。圖37的通信被示出在第一客戶端設備3702(被示出為客戶端設備A,也稱為用戶A,其可以是HMD、AR眼鏡等)和一個或多個其他客戶端設備3705(其可以是單個其他客戶端設備或多個其他客戶端設備)之間。在一些情況下,圖37的呼叫流的通信可以由圖34的XR系統3400和/或圖35的XR系統3500執行。
如圖37所示,第一客戶端設備3702建立呼叫(例如,透過向一個或多個其他客戶端設備3705發送請求訊息3706),並且來自一個或多個其他客戶端設備3705的至少一個客戶端設備(或至少一個客戶端設備的用戶)接受呼叫(例如,透過向第一客戶端設備3702發送響應3708或確認訊息)。然後建立3710呼叫,並且每個客戶端設備(包括第一客戶端設備3702和接受呼叫的一個或多個其他客戶端設備3705中的每個客戶端設備)可以在呼叫期間向受信伺服器發送相對應用戶的虛擬表示(或化身)的三維(3D)視頻或3D視頻更新。受信伺服器然後可以向每個客戶端設備傳送由受信伺服器產生的特定場景3712(例如,使用圖30或圖31的用戶虛擬表示系統720和/或用戶視圖渲染系統2175)。
然後,呼叫可以結束3714,在這種情況下,網格和資產可以從受信伺服器刪除(例如,受信伺服器上的安全位置或儲存裝置),或者客戶端設備可以從其相對應帳戶注銷。
圖38是示出第一UE(示為UE1)、P-CSCF、S-CSCF、I-CSCF、MRF、MMTel AS和第二UE(示為UE2)之間的通信的另一示例的信令圖3800,諸如在包括邊緣伺服器和具有解碼器的目標設備(例如,目標HMD)的XR系統中。在一些情況下,可以根據3GPP SA4來執行信令圖3800的操作。如圖所示,在操作13處,在第一UE、MRF(例如,其可以是圖30、圖31和/或本文描述的其他圖的邊緣伺服器的一部分)和第二UE之間的AR媒體和元資料交換期間,第一UE可以向MRF傳送(例如,發送)儲存的化身資料(例如,來自圖34或圖35的用戶A註冊資料2150)。在操作14處,第一UE可以向MRF傳送(例如,發送)關於用戶的面部表情、姿態等的資訊(例如,動畫參數,諸如來自面部編碼器709的面部部分碼、來自手部引擎716的手部關節等)。在操作15處,MRF執行化身動畫化(例如,使用用戶虛擬表示系統720)。在操作16處,MRF向第二UE傳送(例如,發送)第一UE的用戶的網格。在操作17處,UE2渲染用戶視圖(例如,使用用戶視圖渲染系統2175)。在一些情形中,UE2可執行以上關於UE1描述的操作以允許UE1渲染用戶視圖。
圖39是示出第一UE(示為UE1 3902)、P-CSCF、S-CSCF、I-CSCF(統稱為P/S/I-CSCF 3904)、MRF 3906、MMTel AS 3908和第二UE(示為UE2 3910)之間的通信的信令圖3900。信令圖3900的操作可由圖30的XR系統3000和/或圖31的XR系統3100執行。在一些情況下,可以根據3GPP SA4來執行信令圖3900的操作。在一些情形中,呼叫建立程序2412、場景描述檢索程序2414、以及場景描述更新程序2416可基於圖30和圖31的類似編號的組件以基本上類似於以上關於圖24所討論的方式來執行。如圖所示,在第一UE 3902、MRF 3906和第二UE 3910之間的AR媒體和元資料交換3918期間,第一UE 3902向擴增型MRF 3906(例如,其可以是圖30和/或圖31的邊緣伺服器的一部分)傳送3920(例如,發送)用戶的影像或視頻(例如,傳送一次資料)。MRF 3906可以基於用戶的影像或視圖來產生化身的3D模型3922。第一UE 3902基於面部表情、姿態等向MRF 3906傳送3924(例如,發送)資訊(例如,動畫參數,諸如圖30或圖31的面部部分碼、面部混合形狀、手關節、頭部姿態和/或音頻串流)。MRF 3906執行化身動畫化3926(例如,使用圖30或圖31的用戶虛擬表示系統720)。MRF 3906呈現用戶視圖4028(例如,使用圖30或圖31的用戶視圖呈現系統2175)。MRF 3906將渲染的用戶視圖發送3930到第二UE 3910。在一些情況下,UE2 3910可以執行上面關於UE1 3902描述的操作,以允許UE1 3902從MRF 3906接收渲染的用戶視圖。
圖40是示出第一UE(示為UE1 4002)、P-CSCF、S-CSCF、I-CSCF(統稱為P/S/I-CSCF 4004)、MRF 4006、MMTel AS 4008和第二UE(示為UE2 4010)之間的通信的信令圖4000。信令圖4000的操作可由圖30的XR系統3000和/或圖31的XR系統3100執行。在一些情況下,可以根據3GPP SA4來執行信令圖4000的操作。在一些情形中,呼叫建立程序2412、場景描述檢索程序2414、以及場景描述更新程序2416可基於圖30和圖31的類似編號的組件以基本上類似於以上關於圖24所討論的方式來執行。如圖所示,在第一UE 4002、MRF 4006和第二UE 4010之間的AR媒體和元資料交換4018期間,第一UE 4002可以產生或以其他方式(例如,從伺服器)獲得4020化身的3D模型。然後,第一UE 4002向擴增型MRF 4006(例如,其可以是圖30和/或圖31的邊緣伺服器的一部分)傳送4022(例如,發送)化身的3D模型(例如,傳送一次資料)。第一UE 4002基於面部表情、姿態等向MRF 4006傳送4024(例如,發送)資訊(例如,動畫參數,諸如圖30或圖31的面部部分碼、面部混合形狀、手關節、頭部姿態和/或音頻串流)。MRF 4006執行化身動畫化4026(例如,使用圖30或圖31的用戶虛擬表示系統720)。MRF 4006呈現用戶視圖4028(例如,使用圖30或圖31的用戶視圖呈現系統2175)。MRF 4006將渲染的用戶視圖發送4030到第二UE 4010。在一些情況下,UE2 4010可以執行上面關於UE1 4002描述的操作,以允許UE1 4002從MRF 4006接收渲染的用戶視圖。
本文描述的化身呼叫流程(例如,圖16的設備對設備呼叫流程、圖18的基於伺服器的呼叫流等)可以在發送用於動畫化用戶的虛擬表示的資訊時提供降低的傳輸資料速率。例如,設備對設備呼叫流可以包括兩個部分,包括發送網格資訊(例如,圖16的網格資訊1610、圖18的網格資訊1810等)的初始化階段和發送動畫參數(例如,圖16的動畫參數1614、圖18的動畫參數1814等)的第一轉換階段。基於伺服器的呼叫流可以包括三個部分,包括初始化階段、第一轉換階段和第二轉換階段,其中顯示影像(例如,每幀兩個顯示影像)被發送到基於伺服器的呼叫流中的每個客戶端設備。這些階段中的每個階段的資料傳輸速率可以使用本文描述的呼叫流保持最小。
例如,在初始化階段,定義網格和資產的資訊可以每個化身呼叫和每個用戶僅發送一次(或者當用戶具有伺服器的帳戶時,針對多個化身呼叫每個用戶僅發送一次,如關於圖18所描述的)。在一個說明性示例中,在客戶端設備的用戶的化身呼叫的初始化階段期間,客戶端設備可以(例如,向圖16的設備對設備呼叫流中的第二客戶端設備1604、圖18的基於伺服器的呼叫流程中的伺服器設備1805等)發送用戶的虛擬表示(例如,化身)的網格資訊,包括至少一個網格、法線圖、反照率(或漫射)圖、鏡面反射圖,並且在一些情況下,發送神經網路的至少一部分(例如,用於解碼網格動畫參數(諸如一個或多個碼或特徵向量)的解碼器神經網路的權重和/或其他參數)。用戶的虛擬表示的網格資訊可以在化身呼叫開始時發送一次。在一個說明性示例中,下面的表1提供了網格資訊資料的大小的示例:
表 1
資料 | 尺寸 |
網格 | 35 MB |
反照率(漫射)映射 | 4000×4000 |
鏡面反射圖 | 4000×4000 |
法線圖 | 4000×4000 |
網路權重 | 16 MB |
如上所述,網格資訊資料也可以使用任何壓縮技術來壓縮,這可以進一步減小資料的大小。
作為另一示例,在第一對話階段中,用戶的網格動畫參數可以由客戶端設備針對虛擬對話的每個幀以虛擬對話的幀速率(諸如以30FPS、60FPS或其他幀速率)發送(例如,發送給圖16的設備對設備呼叫流中的客戶端設備1604、發送給在圖18的基於伺服器的呼叫流中的伺服器設備1805等)。在一個說明性示例中,參數更新可以在30至60 FPS之間變化(其中更新的網格動畫參數可以以30至60 FPS之間的變化速率發送)。如本文所述,每個用戶的網格動畫參數可以包括面部部分碼、面部混合形狀、手關節碼、頭部姿態資訊和音頻串流。在一個說明性示例中,下面的表2提供了網格動畫參數的大小的示例。表2中的資料是以60FPS的速率對單個用戶的近似,假設2字節/條目用於面部部分碼、面部混合形狀和手部關節,並且4字節/條目用於頭部姿態。
表 2
資料 | 速率(Kbps) | 輸出大小 | 采樣率 |
面部部件碼 | 720 | 3×256 | 60 FPS |
面部混合形狀 | 240 | 1×256 | 60 FPS |
手部關節 | 120 | 2×64 | 60 FPS |
頭部姿態 | 11.2 | 1×6 | 60 FPS |
音頻串流 | 256 | N/A | 44.1KHz |
每個用戶的總數 | 1347.4 | N/A |
如上所述,網格動畫參數的資料也可以使用任何壓縮技術來壓縮,這可以進一步減小資料的大小。
作為另一示例,在(針對基於伺服器的呼叫流的)第二對話階段中,伺服器設備(例如,伺服器設備1805)可以將顯示影像(例如,每幀兩個顯示影像,包括每只眼睛一個顯示影像)發送到基於伺服器的呼叫流(例如,圖18的呼叫流)中的每個客戶端設備。伺服器設備可以以虛擬對話的幀速率(諸如以60FPS)發送影像。例如,假設顯示器大小為4K(對應於3840x 2160的解析度),伺服器設備可以針對每個用戶以60FPS傳送總共2x(3840x 2160)流。在另一示例中,伺服器設備可以以每個1024x 768的解析度串流式傳輸2個影像,並且客戶端設備可以將影像放大到4K解析度。
如本文所述,各個方面可使用深度網路(諸如神經網路或多個神經網路)來實現。圖41是可以由3D模型訓練系統使用的深度學習神經網路4100的說明性示例。輸入層4120包括輸入資料。在一個說明性示例中,輸入層4120可以包括表示輸入視頻幀的像素的資料。神經網路4100包括多個隱藏層4122a、4122b至4122n。隱藏層4122a、4122b至4122n包括“n”個隱藏層,其中“n”是大於或等於1的整數。可以使隱藏層的數量包括給定應用所需的盡可能多的層。神經網路4100還包括輸出層4124,其提供由隱藏層4122a、4122b至4122n執行的處理產生的輸出。在一個說明性示例中,輸出層4124可以提供輸入視頻幀中的對象的分類。分類可以包括識別對象的類型(例如,人、狗、貓、或其他對象)的類別。
神經網路4100是互連節點的多層神經網路。每個節點可以表示一條資訊。與節點相關聯的資訊在不同層之間共用,並且每一層在資訊被處理時保留資訊。在一些情況下,神經網路4100可以包括前饋網路,在前饋網路中,不存在網路的輸出被反饋到其自身的反饋連接。在一些情況下,神經網路4100可以包括循環神經網路,其可以具有允許在讀入輸入時跨節點攜帶資訊的循環。
可以透過各個層之間的節點到節點互連來在節點之間交換資訊。輸入層4120的節點可以啟用第一隱藏層4122a中的節點集合。例如,如圖所示,輸入層4120的每個輸入節點連接到第一隱藏層4122a的每個節點。隱藏層4122a、4122b至4122n的節點可以透過將啟用函數應用於每個輸入節點的資訊來轉換該資訊。然後可以將從該轉換導出的資訊傳遞到下一隱藏層4122b的節點並可以啟用下一隱藏層922b的節點,該下一隱藏層922b的節點可以執行其自己的指定功能。示例功能包括卷積、上採樣、資料轉換和/或任何其他合適的功能。然後,隱藏層4122b的輸出可以啟用下一隱藏層的節點,並且以此類推。最後隱藏層4122n的輸出可以啟用輸出層4124的一個或多個節點,在該一個或多個節點處提供輸出。在一些情況下,雖然神經網路4100中的節點(例如,節點4126)被示出為具有多條輸出線,但是節點具有單個輸出,並且被示出為從節點輸出的所有線表示相同的輸出值。
在一些情況下,每個節點或節點之間的互連可以具有權重,該權重是從神經網路4100的訓練導出的參數集合。一旦神經網路4100被訓練,它就可以被稱為經訓練的神經網路,其可以用於對一個或多個對象進行分類。例如,節點之間的互連可以表示關於互連節點學習的一條資訊。互連可以具有可被調整(例如,基於訓練資料集)的可調整數位權重,從而允許神經網路4100適應於輸入並且能夠隨著越來越多的資料被處理而進行學習。
神經網路4100被預訓練,以使用不同的隱藏層4122a、4122b至4122n處理來自輸入層4122中的資料的特徵,以便透過輸出層4124提供輸出。在神經網路4100用於識別影像中的對象的示例中,可以使用包括影像和標籤兩者的訓練資料來訓練神經網路4100。例如,可以將訓練影像輸入到網路中,其中每個訓練影像具有指示每個影像中的一個或多個對象的類別的標籤(基本上,向網路指示對象是什麼以及它們具有什麼特徵)。在一個說明性示例中,訓練影像可以包括數位2的影像,在這種情況下,影像的標籤可以是[0 0 1 0 0 0 0 0 0 0]。
在一些情況下,神經網路4100可以使用被稱為反向傳播的訓練程序來調整節點的權重。反向傳播可以包括前向傳遞、損失函數、後向傳遞和權重更新。針對一個訓練迭代執行前向傳遞、損失函數、後向傳遞和參數更新。針對每個訓練影像集合,該程序可以重複一定次數的迭代,直到神經網路4100被訓練得足夠好,使得各層的權重被準確地調整。
對於識別影像中的對象的示例,前向傳遞可以包括將訓練影像傳遞透過神經網路4100。在訓練神經網路4100之前,最初使權重隨機化。影像可以包括例如表示影像的像素的數位陣列。陣列中的每個數位可以包括從0到255的值,其描述陣列中該位置處的像素強度。在一個示例中,陣列可以包括28×28×3數位陣列,其具有28行和28列像素和3個顏色分量(例如紅色、綠色和藍色,或明度和兩個色度分量等等)。
對於神經網路4100的第一次訓練迭代,輸出將可能包括由於在初始化時隨機選擇的權重而不優先考慮任何特定類別的值。例如,如果輸出是具有對象包括不同類別的機率的向量,則針對每個不同類別的機率值可以相等或至少非常相似(例如,對於十個可能的類,每一類可以具有0.1的機率值)。利用初始權重,神經網路4100不能決定低級特徵,並且因此不能準確地決定對象的分類可能是什麼。可以使用損失函數來分析輸出中的誤差。可以使用任何合適的損失函數定義。損失函數的一個示例包括均方誤差(MSE)。MSE被定義為
,其計算二分之一乘以實際答案減去預測(輸出)答案的平方的總和。可以將損失設置為等於
的值。
對於第一次訓練影像,損失(或誤差)將是高的,因為實際值將與預測輸出大不相同。訓練的目標是使損失量最小,從而使得預測輸出與訓練標籤相同。神經網路4100可以透過決定哪些輸入(權重)對網路的損失貢獻最大來執行反向傳遞,並且可以調整權重以使得損失減小並最終減到最小。
可以計算損失相對於權重的導數(表示為dL/dW,其中W是特定層處的權重),以決定對網路損失貢獻最大的權重。在計算導數之後,可以透過更新濾波器的所有權重來執行權重更新。例如,可以更新權重,使得它們在梯度的相反方向上改變。權重更新可以表示為
,其中w表示權重, wi 表示初始權重,並且η表示學習速率。學習速率可以被設置為任何合適的值,其中高學習速率包括較大的權重更新,並且較低的值指示較小的權重更新。
神經網路4100可以包括任何合適的深度網路。一個示例包括卷積神經網路(CNN),其包括輸入層和輸出層,在輸入層和輸出層之間具有多個隱藏層。CNN的隱藏層包括一系列卷積層、非線性層、池化層(用於下採樣)和全連接層。神經網路4100可以包括除了CNN之外的任何其他深度網路,諸如自動編碼器、深度信念網路(DBN)、循環神經網路(RNN)等。
圖42是卷積神經網路4200(CNN 4200)的說明性示例。CNN 4200的輸入層4220包括表示影像的資料。例如,資料可以包括表示影像的像素的數位陣列,其中陣列中的每個數位包括描述陣列中該位置處的像素強度的從0到255的值。使用來自上文的先前示例,陣列可以包括具有28行和28列像素和3個顏色分量(例如,紅色、綠色和藍色,或明度和兩個色度分量等)的28×28×3數位陣列。影像可以傳遞透過卷積隱藏層4222a、可選的非線性啟用層、池化隱藏層4222b和全連接隱藏層4222c,以在輸出層4224處獲得輸出。雖然圖42中僅示出了各個隱藏層中的一個隱藏層,但是一般技術人員將理解,多個卷積隱藏層、非線性層、池化隱藏層和/或全連接層可以包括在CNN 4200中。如前所述,輸出可以指示對象的單個類別,或者可以包括最佳地描述影像中的對象的類別的機率。
CNN 4200的第一層是卷積隱藏層4222a。卷積隱藏層4222a分析輸入層4220的影像資料。卷積隱藏層4222a的每個節點連接到被稱為接受域的輸入影像的節點(像素)的區域。卷積隱藏層4222a可以被認為是一個或多個濾波器(每個濾波器對應於不同的啟用或特徵圖),其中濾波器的每個卷積迭代是卷積隱藏層4222a的節點或神經元。例如,濾波器在每次卷積迭代時覆蓋的輸入影像的區域將是濾波器的接受域。在一個說明性示例中,如果輸入影像包括28×28陣列,並且每個濾波器(和對應的接受域)是5×5陣列,則在卷積隱藏層4222a中將存在24×24個節點。節點與該節點的接受域之間的每個連接學習權重,並且在一些情況下學習整體偏置,使得每個節點學習分析輸入影像中的其特定局部接受域。隱藏層4222a的每個節點將具有相同的權重和偏置(被稱為共用權重和共用偏置)。例如,濾波器具有權重(數位)陣列和與輸入相同的深度。對於視頻幀示例,濾波器將具有深度3(根據輸入影像的三個顏色分量)。濾波器陣列的說明性示例大小是5×5×3,對應於節點的接受域的大小。
卷積隱藏層4222a的卷積性質是由於卷積層的每個節點被應用於其相對應的接受域。例如,卷積隱藏層4222a的濾波器可以在輸入影像陣列的左上角開始,並且可以圍繞輸入影像卷積。如上所述,濾波器的每次卷積迭代可以被認為是卷積隱藏層4222a的節點或神經元。在每次卷積迭代中,濾波器的值乘以影像的相對應數量的原始像素值(例如,5x5濾波器陣列乘以輸入影像陣列的左上角的5x5輸入像素值陣列)。可以將來自每次卷積迭代的乘法相加在一起以獲得該迭代或節點的總和。接下來,根據卷積隱藏層4222a中的下一節點的接受域,在輸入影像中的下一位置處繼續該程序。
例如,濾波器可以移動一個步進量到下一個接受域。步進量可以被設置為1或其他合適的量。例如,如果步進量被設置為1,則濾波器將在每次卷積迭代時向右移動1個像素。在輸入體積的每個唯一位置處處理濾波器產生表示該位置的濾波器結果的數位,導致針對卷積隱藏層4222a的每個節點決定總和值。
從輸入層到卷積隱藏層4222a的映射被稱為啟用圖(或特徵圖)。啟用圖包括表示輸入體積的每個位置處的濾波器結果的針對每個節點的值。啟用圖可以包括陣列,該陣列包括由濾波器對輸入體積的每次迭代產生的各種總和值。例如,如果將5×5濾波器應用於28×28輸入影像的每個像素(步進量為1),則啟用圖將包括24×24陣列。卷積隱藏層4222a可以包括若干啟用圖,以便識別影像中的多個特徵。圖42中所示的示例包括三個啟用圖。使用這三個啟用圖,卷積隱藏層4222a可以偵測三個不同種類的特徵,其中每個特徵在整個影像上是可偵測的。
在一些示例中,可以在卷積隱藏層4222a之後應用非線性隱藏層。非線性層可以用於將非線性引入到已經計算線性運算的系統。非線性層的一個說明性示例是修正線性單元(ReLU)層。ReLU層可以將函數f(x)=max(0, x)應用於輸入體積中的所有值,這將所有負啟用改變為0。因此,ReLU可以增加CNN 4200的非線性特性,而不影響卷積隱藏層4222a的感受域。
可以在卷積隱藏層4222a之後應用(並且在使用時在非線性隱藏層之後應用)池化隱藏層4222b。池化隱藏層4222b用於簡化來自卷積隱藏層4222a的輸出中的資訊。例如,池化隱藏層4222b可以獲取從卷積隱藏層4222a輸出的每個啟用圖,並使用池化函數產生濃縮的啟用圖(或特徵圖)。最大池化是由池化隱藏層執行的函數的一個示例。池化隱藏層4222a使用其他形式的池化函數,諸如平均池化、L2範數池化或其他合適的池化函數。將池化函數(例如,最大池化濾波器、L2範數濾波器或其他合適的池化濾波器)應用於卷積隱藏層4222a中包括的每個啟用圖。在圖42所示的示例中,三個池化濾波器被用於卷積隱藏層4222a中的三個啟用圖。
在一些示例中,可以透過將具有步進量(例如,等於濾波器的維度,例如步進量為2)的最大池化濾波器(例如,具有2x2的大小)應用於從卷積隱藏層4222a輸出的啟用圖來使用最大池化。來自最大池化濾波器的輸出包括濾波器卷積的每個子區域中的最大數。以2x2濾波器為例,池化層中的每個單元可以匯總上一層中2×2個節點的區域(每個節點都是啟用圖中的一個值)。例如,啟用映射中的四個值(節點)將在濾波器的每次迭代中由2x2最大池化濾波器進行分析,四個值中的最大值作為“最大”值被輸出。如果將這種最大池化濾波器應用於來自具有24x24個節點維度的卷積隱藏層4222a的啟用濾波器,則來自池化隱藏層4222b的輸出將是12x12個節點的陣列。
在一些示例中,也可以使用L2範數(L-norm)池化濾波器。L2範數池化濾波器包括計算啟用圖的2×2區域(或其他合適的區域)中的值的平方和的平方根(而不是如在最大池化中所進行的計算最大值),並使用所計算的值作為輸出。
直觀地,池化函數(例如,最大池化、L2範數池化或其他池化函數)決定是否在影像的區域中的任何地方找到給定特徵,並丟棄確切的位置資訊。這可以在不影響特徵偵測的結果的情況下完成,因為一旦已經找到特徵,特徵的確切位置就不如其相對於其他特徵的近似位置那麼重要。最大池化(以及其他池化方法)提供了以下益處:池化特徵少得多,從而減少了CNN 4200的後續層中所需的參數的數量。
網路中的最後一層連接是全連接層,其將來自池化隱藏層4222b的每個節點連接到輸出層4224中的每個輸出節點。使用上述示例,輸入層包括對輸入影像的像素強度進行編碼的28×28個節點,卷積隱藏層4222a包括基於將5×5局部接受域(用於濾波器)應用於三個啟用圖的3×24×24個隱藏特徵節點,並且池化層4222b包括基於將最大池化濾波器應用於三個特徵圖中的每一個上的2×2區域的3×12×12個隱藏特徵節點的層。延展該示例,輸出層4224可以包括十個輸出節點。在這樣的示例中,3x12x12池化隱藏層4222b的每個節點都連接到輸出層4224的每個節點。
全連接層4222c可以獲得先前池化層4222b的輸出(其應該表示高級特徵的啟用圖),並且決定與特定類別最相關的特徵。例如,全連接層4222c層可以決定與特定類別最強相關的高級特徵,並且可以包括針對高級特徵的權重(節點)。可以計算全連接層4222c和池化隱藏層4222b的權重之間的乘積,以獲得針對不同類別的機率。例如,如果CNN 4200被用於預測視頻幀中的對象是人,則在表示人的高級特徵的啟用圖中將存在高值(例如,存在兩條腿,在對象的頂部存在面部,在面部的左上和右上存在兩隻眼睛,在面部的中間存在鼻子,在面部的底部存在嘴,和/或人常見的其他特徵)。
在一些示例中,來自輸出層4224的輸出可以包括M維向量(在先前的示例中,M=10),其中M可以包括程式在對影像中的對象進行分類時必須從中選擇的類別的數量。還可以提供其他示例輸出。N維向量中的每個數位可以表示對象屬某個類別的機率。在一個說明性示例中,如果10維輸出向量表示十個不同類別的對象是[0 0 0.05 0.8 0 0.15 0 0 0 0],則該向量指示影像是第三類別的對象(例如,狗)的機率為5%,影像是第四類別的對象(例如,人)的機率為80%,且影像是第六類別的對象(例如,袋鼠)的機率為15%。針對類別的機率可以被認為是對象是該類別的一部分的信心水準。
圖43是示出用於實施本技術的某些方面的系統的示例的示意圖。具體地,圖43示出了計算系統4300的示例,其可以是例如構成內部計算系統、遠程計算系統、相機或其任何部件的任何計算設備,其中系統的各組件使用連接4305彼此通信。連接4305可以是使用匯流排的實體連接,也可以是到處理器4310內的直接連接(例如,在晶片組架構中)。連接4305還可以是虛擬連接、聯網連接、或邏輯連接。
在一些方面,計算系統4300是分布式系統,其中本公開內容中描述的功能可以分佈在資料中心、多個資料中心、對等網路等內。在一些方面,所描述的系統組件中的一個或多個表示各執行針對其描述組件的功能中的一些或全部功能的許多這樣的組件。在一些方面,這些組件可以是實體設備,也可以是虛擬設備。
示例系統4300包括至少一個處理單元(CPU或處理器)4310和連接4305,連接2005將包括系統記憶體4315的各種系統組件耦接到處理器4310,系統記憶體2015諸如唯讀記憶體(ROM)4320和隨機存取記憶體(RAM)4325。計算系統4300可以包括高速記憶體的快取4311,快取1512與處理器4310直接連接、接近處理器1510或被整合為處理器1510的一部分。
處理器4310可以包括任何通用處理器和硬體服務或軟體服務,例如儲存在儲存設備4330中的服務4332、4334和4336,其被配置為控制處理器4310以及專用處理器,在專用處理器中,軟體指令被併入到實際的處理器設計中。處理器4310本質上可以是完全自包含的計算系統,包含多個核心或處理器、匯流排、記憶體控制器、快取等。多核心處理器可以是對稱的或非對稱的。
為了實現用戶互動,計算系統4300包括輸入設備4345,其可以表示任何數量的輸入機制,諸如用於語音的麥克風、用於手勢或圖形輸入的觸敏螢幕、鍵盤、滑鼠、動態輸入、語音等。計算系統4300還可以包括輸出設備4335,輸出設備4335可以是多個輸出機制中的一個或多個。在一些實例中,多模態系統可以使用戶能夠提供多種類型的輸入/輸出,以便與計算系統4300進行通信。計算系統4300可以包括通信介面4340,其中通信介面840通常可以管理和控制用戶輸入和系統輸出。
通信介面可以使用有線和/或無線收發器執行或促進接收和/或傳輸有線或無線通信,包括使用音頻插孔/插頭、麥克風插孔/插頭、通用序列匯流排(USB)埠/插頭、Apple®Lightning®埠/插頭、乙太網路埠/插頭、光纖埠/插頭、專屬有線埠/插頭、BLUETOOTH®無線信號傳輸、BLUETOOTH®低功耗(BLE)無線信號傳輸、IBEACON®無線信號傳輸、射頻識別(RFID)無線信號傳輸、近場通信(NFC)無線信號傳輸、專用短程通信(DSRC)無線信號傳輸、802.11 Wi-Fi無線信號傳輸、WLAN信號傳輸、可見光通信(VLC)、全球微波存取互操作性(WiMAX)、紅外光(IR)通信無線信號傳輸、公共交換電話網路(PSTN)信號傳輸、綜合流量數位網路(ISDN)信號傳輸、3G/4G/5G/長期演進(LTE)蜂巢式資料網路無線信號傳輸、自組(ad-hoc)網路信號傳輸、無線電波信號傳輸、微波信號傳輸、紅外光信號傳輸、可見光信號傳輸、紫外光信號傳輸、沿電磁波譜的無線信號傳輸或它們的某種組合的有線和/或無線收發器。
通信介面4340還可以包括一個或多個GNSS接收機或收發機,用於基於從與一個或多個GNSS系統相關聯的一個或多個衛星接收的一個或多個信號來決定計算系統4300的位置。GNSS系統包括但不限於:基於美國的全球定位系統(GPS)、基於俄羅斯的全球導航衛星系統(GLONASS)、基於中國的北斗導航衛星系統(BDS)以及基於歐洲的伽利略(Galileo)GNSS。對於任何特定硬體佈置的操作都沒有限制,因此可以很容易地使用開發的改善的硬體或韌體佈置來取代這裡的基本特徵。
儲存設備4330可以是非揮發性和/或非暫時性和/或計算機可讀記憶體設備,並且可以是硬碟或可儲存可由計算機存取的資料的其他類型的計算機可讀媒體,諸如磁帶盒、快閃記憶體卡、固態記憶體設備、數位通用光碟、盒式磁帶、軟碟、柔性碟、硬碟、磁帶、磁條/條帶、任何其他磁儲存媒體、快閃記憶體、憶阻器記憶體、任何其他固態記憶體、壓縮光碟唯讀記憶體(CD-ROM)光碟、可重寫壓縮光碟(CD)光碟、數位視頻光碟(DVD)光碟、藍光光碟(BDD)光碟、全息光碟、另一光學媒體、安全數位(SD)卡、微安全數位(microSD)卡、記憶棒®卡、智慧型卡晶片、Europay, Mastercard和Visa(EMV)晶片、訂戶身份模組(SIM)卡、迷你/微/奈米/微微SIM卡、另一積體電路(IC)晶片/卡、RAM、靜態RAM(SRAM)、動態RAM(DRAM)、ROM、可程式化唯讀記憶體(PROM)、可擦除可程式化唯讀記憶體(EPROM)、電可擦除可程式化唯讀記憶體(EEPROM)、快閃記憶體EPROM(FLASHEPROM)、高速緩衝記憶體(L1/L2/L3/L4/L5/L#)、電阻隨機存取記憶體(RRAM/ReRAM)、相變記憶體(PCM)、自旋轉移矩RAM(STT-RAM)、另一記憶體晶片或盒和/或其組合。
儲存設備4330可以包括軟體服務、伺服器、服務等等,當定義這種軟體的碼由處理器4310執行時,它使系統執行功能。在一些方面中,執行特定功能的硬體服務可以包括儲存在計算機可讀媒體中的軟體部件,其與必要的硬體部件(諸如處理器4310、連接4305、輸出設備4335等)連接以執行所述功能。術語“計算機可讀媒體”包括但不限於可攜式或非可攜式儲存設備、光學儲存設備以及能夠儲存、包含或攜帶指令和/或資料的各種其它媒體。計算機可讀媒體可以包括可儲存資料的非暫時媒體,而不包括無線傳輸或透過有線連接傳輸的載波和/或暫時電子信號。
術語“計算機可讀媒體”包括但不限於可攜式或非可攜式儲存設備、光學儲存設備以及能夠儲存、包含或攜帶指令和/或資料的各種其它媒體。計算機可讀媒體可以包括可儲存資料的非暫時媒體,而不包括無線傳輸或透過有線連接傳輸的載波和/或暫時電子信號。非暫時性媒體的例子可以包括但不限於:磁碟或磁帶、光碟儲存媒體(如,壓縮光碟(CD)或數位多用途光碟(DVD))、快閃記憶體、記憶體或儲存設備。計算機可讀媒體可以儲存碼和/或機器可執行指令,這些指令可以表示程序、函數、子程式、程式、例程、子例程、模組、軟體包、類、或指令、資料結構或程式語句的任何組合。透過傳遞和/或接收資訊、資料、自變量、參數或記憶體內容,碼段可以耦接到另一碼段或硬體電路。資訊、自變量、參數、資料等等可以透過任何合適的方式傳遞、轉發或傳輸,這些方式包括記憶體共用、訊息傳遞、符記傳遞、網路傳輸等。
在一些方面中,計算機可讀儲存設備、媒體和記憶體可以包括包含位元串流等的電纜或無線信號。但是,當提及時,非暫時性計算機可讀儲存媒體明確地排除諸如能量、載波信號、電磁波和信號本身之類的媒體。
圖44是示出根據本公開內容的各方面的用於在分布式系統中產生虛擬內容的程序4400的流程圖。程序4400可以由計算設備(或裝置)或計算設備的組件(例如,晶片組、編解碼器等)執行,諸如圖5的CPU 510和/或GPU 525和/或圖43的處理器4312。計算設備可以是動畫和場景渲染系統(例如,基於邊緣或雲端的伺服器、充當伺服器設備的個人計算機、行動設備(諸如充當伺服器設備的行動電話)、充當伺服器設備的XR設備、網路路由器、或充當伺服器或其他設備的其他設備)。程序4400的操作可以被實現為在一個或多個處理器(例如,圖5的CPU 510和/或GPU 525和/或圖43的處理器4312)上執行和運行的軟體組件。
在方塊4402處,計算設備(或其組件)(例如,圖16和17的客戶端設備1602、圖18和19的客戶端設備1802)可以向第二設備(例如,圖16和圖17的客戶端設備1604、圖18和圖19的伺服器設備1805、圖19的客戶端設備1904)發送針對虛擬對話的虛擬表示呼叫的呼叫建立請求(例如,圖16的呼叫建立請求1606、圖18的呼叫建立請求1806等)。在一些情況下,第二設備包括伺服器設備(例如,圖18和19的伺服器設備1805)。在一些示例中,第二設備包括客戶端設備(例如,圖16的客戶端設備1604、圖19的客戶端設備1904)。
在方塊4404處,計算設備(或其組件)可以從第二設備接收指示接受呼叫建立請求的呼叫接受(例如,圖16的呼叫接受1608、圖18的呼叫接受1808)。
在方塊4406處,計算設備(或其組件)可以向第二設備發送用於裝置的第一用戶的第一虛擬表示的第一網格資訊(例如,圖16的網格資訊1610、圖18的網格資訊1810)。在一些情況下,針對虛擬對話的虛擬表示呼叫發送一次第一網格資訊,並且其中針對虛擬對話的虛擬表示呼叫接收一次第二網格資訊。在一些示例中,第一網格資訊在發送呼叫建立請求之前被發送給伺服器設備以供儲存。在一些情況下,作為註冊程序的一部分,第一網格資訊被發送到伺服器設備以進行儲存。在一些示例中,計算設備(或其組件)可以向伺服器設備進行認證,以使得能夠存取所儲存的第一網格資訊。
在方塊4408處,計算設備(或其組件)可以向第二設備發送用於裝置的第一用戶的第一虛擬表示的第一網格動畫參數(例如,圖16的網格動畫參數1614、圖18的網格動畫參數1814)。
在方塊4410處,計算設備(或其組件)可以從第二設備接收第二設備的第二用戶的第二虛擬表示的第二網格資訊(例如,圖16的網格資訊1612、圖18的分割渲染1815)。
在方塊4412處,計算設備(或其組件)可以從第二設備接收用於第二設備的第二用戶的第二虛擬表示的第二網格動畫參數(例如,交換圖16的網格動畫參數1614、圖18的分割渲染1815)。
在方塊4414處,計算設備(或其組件)可以基於第二網格資訊和第二網格動畫參數來產生第二設備的第二用戶的第二虛擬表示。例如,伺服器設備可以使用各種客戶端設備的動畫參數(和網格資訊)來從各種客戶端設備的角度渲染客戶端設備的化身和虛擬對話的場景。在一些情況下,以與虛擬對話相關聯的幀速率針對虛擬對話的每個幀發送第一網格動畫參數並且接收第二網格動畫參數。
圖45是示出根據本公開內容的各方面的用於在分布式系統中產生虛擬內容的程序4500的流程圖。程序4500可以由計算設備(或裝置)或計算設備的組件(例如,晶片組、編解碼器等)執行,諸如圖5的CPU 510和/或GPU 525和/或圖43的處理器4312。計算設備可以是行動設備(例如,行動電話、圖1的設備105、圖3的客戶端設備302、304、圖4的客戶端設備405、設備500、圖6的客戶端設備602、604和/或606、圖7的客戶端設備702、704、圖43的計算系統4300等)、網路連接的可穿戴設備(諸如手錶)、延展實境(XR)設備(諸如虛擬實境(VR)設備或擴增實境(AR)設備)、配套設備、車輛或車輛的組件或系統、或其他類型的計算設備。程序4500的操作可以被實現為在一個或多個處理器(例如,圖5的CPU 510和/或GPU 525和/或圖43的處理器4312)上執行和運行的軟體組件。
在方塊4502處,計算設備(或其組件)(例如,圖18和19的伺服器設備1805)可以從第一客戶端設備(例如,圖18和19的客戶端設備1802)接收針對虛擬對話的虛擬表示呼叫的呼叫建立請求(例如,圖18的呼叫建立請求1806等)。
在方塊4504處,計算設備(或其組件)可以向第二客戶端設備發送呼叫建立請求。
在方塊4506處,計算設備(或其組件)可以從第二客戶端設備接收指示接受呼叫建立請求的呼叫接受。
在方塊4508處,計算設備(或其組件)可以向第一客戶端設備發送呼叫接受(例如,圖18的呼叫接受1808)。
在方塊4510處,計算設備(或其組件)可以從第一客戶端設備接收第一客戶端設備的第一用戶的第一虛擬表示的第一網格資訊(例如,圖18的網格資訊1810)。在一些情況下,對於虛擬對話的虛擬表示呼叫,第一網格資訊被接收一次。在一些示例中,響應於發送到第一客戶端設備的呼叫接受來接收第一網格資訊。在一些情況下,在接收呼叫建立請求之前接收第一網格資訊。在一些示例中,第一網格資訊作為註冊程序的一部分被接收。在一些情況下,計算設備(或其組件)可以儲存第一網格資訊,並且基於所接收的呼叫接受來檢索第一網格資訊。在一些示例中,計算設備(或其組件)可以認證第一客戶端設備以使得能夠存取所儲存的第一網格資訊。
在方塊4512處,計算設備(或其組件)可以接收用於第一客戶端設備的第一用戶的第一虛擬表示的第一網格動畫參數(例如,圖18的網格動畫參數1814)。在一些情況下,以與虛擬對話相關聯的幀速率接收虛擬對話的每個幀的第一網格動畫參數。在一些示例中,第一網格動畫參數包括表示第一用戶的資訊。在一些情況下,表示第一用戶的資訊包括表示第一客戶端設備的第一用戶的面部的資訊、表示第一客戶端設備的第一用戶的身體的資訊、表示第一客戶端設備的第一用戶的一隻或多隻手的資訊、第一客戶端設備的姿態資訊或與第一客戶端設備所處的環境相關聯的音頻中的至少一個。
在方塊4514處,計算設備(或其組件)可以基於第一網格資訊和第一網格動畫參數來產生第一客戶端設備的第一用戶的第一虛擬表示(例如,圖18的分割渲染1815)。
在方塊4516處,計算設備(或其組件)可以向第二客戶端設備發送第一客戶端設備的第一用戶的第一虛擬表示。
在上面的描述中提供了具體細節以提供對本文提供的方面和示例的透徹理解。然而,本領域一般技術人員將理解,在沒有這些具體細節的情況下也可以實踐方面。為了解釋的清楚,在一些實例中,本技術可以被呈現為包括單獨的功能方塊,所述單獨的功能方塊包括以軟體或硬體和軟體的組合體現的方法中的設備、設備組件、步驟或例程。除圖式中所示和/或本文所述的組件之外,還可以使用其它組件。例如,電路、系統、網路、程序和其他組件可以被示出為方塊圖形式的組件,以免以不必要的細節模糊方面。在其他情況下,可以示出眾所周知的電路、程序、演算法、結構和技術,而沒有不必要的細節,以避免模糊方面。
各個方面可以在上面被描述為被描繪為流程圖、流示意圖、資料流圖、結構圖或方塊圖的程序或方法。儘管使用流程圖將操作描述成了一個順序處理程序,但很多操作可以是並行或同時進行。額外地,可以對這些操作的順序進行重新佈置。當這些操作結束時,處理程序也就終結了,但其可以具有圖式中沒有包括的其它步驟。程序可以對應於方法、函數、程序、子例程、子程式等。當程序對應於函數時,其終止可以對應於函數返回到呼叫函數或主函數。
根據上述示例的程序和方法可以使用被儲存在計算機可讀媒體中或以其它方式可從計算機可讀媒體獲取的計算機可執行指令來實施。這樣的指令可以包括例如導致或以其他方式配置通用計算機、專用計算機或處理設備來執行特定功能或功能組的指令和資料。可以透過網路存取使用的計算機資源部分。計算機可執行指令可以是例如二進制、中間格式指令,諸如匯編語言、韌體、源碼等等。可用於儲存指令、所使用的資訊和/或在根據所描述的示例的方法期間創建的資訊的計算機可讀媒體的示例包括磁碟或光碟、快閃記憶體、具有非揮發性記憶體的USB設備、聯網儲存設備等等。
實現根據這些公開內容的程序和方法的設備可以包括硬體、軟體、韌體、中間件、微碼、硬體描述語言或其任何組合,以及可以採用多種形狀因子中的任何一種。當實施在軟體、韌體、中間件或微碼中時,用於執行必要任務的程式碼或碼段(例如,計算機程式產品)可以被儲存在計算機可讀或機器可讀媒體中。處理器可以執行必要任務。形狀因子的典型示例包括膝上型計算機、智慧型電話、行動電話、平板設備或其它小型形狀因子的個人計算機、個人數位助理、機架式設備、獨立設備等。本文所描述的功能還可以體現在週邊設備或附加卡中。透過進一步的示例,這樣的功能也可以被實施在電路板上在不同晶片或在單個設備中執行的不同程序之間。
指令、用於傳送這樣的指令的媒體、用於執行它們的計算資源、以及用於支援這樣的計算資源的其它結構,是用於提供本公開內容中描述的功能的示例性裝置。
在前述描述中,參考本發明的具體方面描述了本申請的各方面,但是本領域技術人員將認識到本發明不限於此。因此,儘管在本文中已經詳細描述了本申請的說明性方面,但是應當理解,這些發明構思可以用其他方式被不同地體現和採用,並且所附申請專利範圍旨在被解釋為包括這樣的變型,除了現有技術所限制的以外。上述應用的各種特徵和方面可以單獨地或聯合地使用。此外,方面可以用於超出本文描述的環境和應用的任何數量的環境和應用,而不脫離本說明書的更廣泛的精神和範圍。因此,說明書和圖式應被認為是說明性的而不是限制性的。為了說明起見,以特定順序描述了方法。應當理解,在替代方面中,可以以與所描述的次序不同的次序來執行這些方法。
本領域一般技術人員應當理解,可以將本文中使用的小於(“<”)和大於(“>”)符號或術語分別替換為小於或等於(“
”)和大於或等於(“
”)符號,而不脫離本說明書的範圍。
在將組件描述為“被配置為”執行某些操作的情況下,可以例如透過以下方式來實現這種配置:設計電子電路或其它硬體以執行該操作,透過對可程式化電子電路(例如,微處理器或其它適當的電子電路)進行程式化以執行該操作,或其任意組合。
片語“耦接到”指代直接或間接地實體連接到另一組件的任何組件、和/或直接或間接地與另一組件通信的任何組件(例如,透過有線或無線連接和/或其它適當的通信介面而連接到另一組件)。
結合本文中所公開的示例進行描述的各個說明性邏輯方塊、模組、電路和演算法步驟可以被實現為電子硬體、計算機軟體、韌體或其組合。為了清楚地說明硬體和軟體的這種可互換性,上文已經對各種說明性的組件、方塊、模組、電路和步驟圍繞其功能進行了總體描述。至於這樣的功能是被實現為硬體還是軟體,取決於特定的應用以及施加在整個系統上的設計限制。技術人員可以針對每個特定應用以不同的方式來實現所描述的功能,但是這樣的實現決策不應當被解釋為導致脫離本申請的範圍。
本文中描述的技術還可以被實施在電子硬體、計算機軟體、韌體或其任何組合中。這樣的技術可以被實施在多種設備中的任何設備中,多種設備諸如通用計算機、無線通信設備手持設備、或具有多種用途的積體電路設備,多種用途包括在無線通信設備手持設備和其它設備中的應用。描述為模組或組件的任何特徵可以一起實施在整合邏輯器件中,或者單獨實現為離散但可互操作的邏輯器件。如果被實施在軟體中,則所述技術可以至少部分地由包括程式碼的計算機可讀資料儲存媒體來實施,所述程式碼包括在被執行時執行上文所描述的方法、演算法和/或操作中的一項或多項的指令。計算機可讀資料儲存媒體可以形成計算機程式產品的一部分,該計算機程式產品可以包括封裝材料。計算機可讀媒體可以包括記憶體或資料儲存媒體,例如隨機存取記憶體(RAM)(例如,同步動態隨機存取記憶體(SDRAM))、唯讀記憶體(ROM)、非揮發性隨機存取記憶體(NVRAM)、電可擦除可程式化唯讀記憶體(EEPROM)、FLASH記憶體、磁或光資料儲存媒體、等等。額外地或可替代地,技術可以至少部分地由計算機可讀通信媒體來實施,該計算機可讀通信媒體攜帶或傳送指令或資料結構形式的且可由計算機存取、讀取和/或執行的程式碼,諸如傳播的信號或波。
程式碼可以由處理器執行,該處理器可以包括一個或多個處理器,例如一個或多個數位信號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、現場可程式化邏輯陣列(FPGA)或者其它等效的整合邏輯電路或離散邏輯電路。這種處理器可以被配置為執行本公開內容中描述的任何技術。通用處理器可以是微處理器,但是在替代方案中,處理器可以是任何常規處理器、控制器、微控制器或狀態機。處理器還可以實現為計算設備的組合,例如,DSP與微處理器的組合、多個微處理器、一個或多個微處理器結合DSP核心、或者任何其它這樣的配置。因此,如本文中所使用的術語“處理器”可以指前述結構中的任何結構、前述結構的任何組合或適合於實施本文中所描述的技術的任何其它結構或裝置。
引用一個集合中的“至少一個”和/或一個集合中的“一個或多個”的聲明語言或其它語言,指示該集合中的一個成員或該集合中的多個成員(具有任何組合)滿足申請專利範圍。例如,敘述“A和B中的至少一個”或“A或B中的至少一個”的申請專利範圍語言意指A、B或A和B。在另一示例中,敘述“A、B和C中的至少一個”或“A、B或C中的至少一個”的申請專利範圍語言意指A、B、C或A和B,或A和C,或B和C、A和B和C,或任何重複資訊或資料(例如,A和A、B和B、C和C、A和A和B等),或A、B和C的任何其他排序、複製或組合。語言“集合中的至少一個”和/或集合的“一個或多個”不將集合限制於集合中列出的項目。例如,敘述“A和B中的至少一個”或“A或B中的至少一個”的申請專利範圍語言可以意指A、B或A和B,並且可以另外包括A和B的集合中未列出的項。片語“至少一個”和“一個或多個”在本文中可互換使用。
記載“至少一個處理器被配置為”、“至少一個處理器被配置為”、“一個或多個處理器被配置為”、“一個或多個處理器被配置為”等的申請專利範圍語言或其他語言指示一個處理器或多個處理器(以任何組合)可以執行相關聯的操作。例如,申請專利範圍語言敘述“至少一個處理器被配置為:X、Y和Z”是指單個處理器可用於執行操作X、Y和Z;或者多個處理器各自負責操作X、Y和Z的某個子集,使得多個處理器一起執行X、Y和Z;或者一組多個處理器一起工作以執行操作X、Y和Z。在另一示例中,申請專利範圍語言敘述“至少一個處理器被配置為:X、Y和Z”可以意味著任何單個處理器可以僅執行操作X、Y和Z的至少一個子集。
在參考執行功能的一個或多個元件(例如,方法的步驟)的情況下,一個元件可以執行所有功能,或者多於一個元件可以共同執行功能。當多於一個元件共同執行功能時,每個功能不需要由那些元件中的每一個執行(例如,不同的功能可以由不同的元件執行)和/或每個功能不需要僅由一個元件整體執行(例如,不同的元件可以執行功能的不同的子功能)。類似地,在參考被配置為使另一元件(例如,裝置)執行功能的一個或多個元件的情況下,一個元件可以被配置為使另一元件執行所有功能,或者多於一個元件可以被共同配置為使另一元件執行功能。
在參考執行功能或被配置為執行功能(例如,方法的步驟)的實體(例如,本文描述的任何實體或設備)的情況下,實體可以被配置為使一個或多個元件(單獨地或共同地)執行功能。 該實體的一個或多個組件可包括至少一個記憶體、至少一個處理器、至少一個通信介面、被配置成執行功能中的一個或多個(或所有)功能的另一組件、和/或其任何組合。 在提及實體執行功能的情況下,實體可以被配置為使一個組件執行所有功能,或者使多於一個組件共同執行功能。 當實體被配置為使多於一個組件共同執行功能時,每個功能不需要由那些組件中的每個組件執行(例如,不同的功能可以由不同的組件執行)和/或每個功能不需要僅由一個組件整體執行(例如,不同的組件可以執行功能的不同的子功能)。
本公開內容的說明性方面包括:
方面1、一種在分布式系統中的第一設備處產生虛擬內容的方法,所述方法包括:從與虛擬對話相關聯的第二設備接收與所述第二設備或所述第二設備的用戶中的至少一個相關聯的輸入資訊;基於所述輸入資訊產生所述第二設備的所述用戶的虛擬表示;從與所述虛擬對話相關聯的第三設備的用戶的視角產生虛擬場景,其中所述虛擬場景包括所述第二設備的所述用戶的所述虛擬表示;以及向所述第三設備發送從所述第三設備的所述用戶的視角描繪所述虛擬場景的一個或多個幀。
方面2、根據方面1所述的方法,其中,所述輸入資訊包括以下各項中的至少一項:表示所述第二設備的用戶的面部的資訊、表示所述第二設備的用戶的身體的資訊、表示所述第二設備的用戶的一隻或多隻手的資訊、所述第二設備的姿態資訊、或與所述第二設備所位於的環境相關聯的音頻。
方面3、根據方面2所述的方法,其中,表示第二設備的用戶的身體的資訊包括身體的姿態,並且其中,表示第二設備的用戶的一隻或多隻手的資訊包括一隻或多隻手中的每只手的相對應姿態。
方面4、根據方面2或3中任一項所述的方法,其中,產生所述虛擬表示包括:使用表示所述用戶的面部的資訊、所述第二設備的姿態資訊和所述第三設備的姿態資訊來產生所述第二設備的用戶的面部的虛擬表示;使用所述第二設備的姿態資訊和所述第三設備的姿態資訊來產生所述第二設備的用戶的身體的虛擬表示;以及產生所述第二設備的用戶的頭髮的虛擬表示。
方面5、根據方面4所述的方法,其中,進一步使用表示所述用戶的身體的資訊來產生所述第二設備的用戶的身體的虛擬表示。
方面6、根據方面4或5中任一項所述的方法,其中,進一步使用逆動態學來產生所述第二設備的所述用戶的所述身體的所述虛擬表示。
方面7、根據方面4至6中任一項所述的方法,其中,進一步使用表示所述用戶的所述一隻或多隻手的所述資訊來產生所述第二設備的所述用戶的所述身體的所述虛擬表示。
方面8、根據方面4至7中任一項所述的方法,還包括:將所述面部的所述虛擬表示與所述身體的所述虛擬表示組合以產生組合的虛擬表示;以及將所述頭髮的所述虛擬表示添加到所述組合的虛擬表示。
方面9、根據方面1至8中任一項所述的方法,其中,產生所述虛擬場景包括:獲得所述虛擬場景的背景表示;基於所述虛擬場景的所述背景表示來調整所述第二設備的所述用戶的所述虛擬表示的照明,以產生所述用戶的經修改的虛擬表示;以及將所述虛擬場景的所述背景表示與所述用戶的所述經修改的虛擬表示組合。
方面10、根據方面1至9中任一項所述的方法,還包括:基於來自所述第三設備的輸入資訊,產生所述第三設備的所述用戶的虛擬表示;從第二設備的所述用戶的視角,產生包括所述第三設備的所述用戶的所述虛擬表示的虛擬場景;以及向所述第二設備發送從所述第二設備的所述用戶的所述視角描繪所述虛擬場景的一個或多個幀。
方面11、一種與第一設備相關聯的用於在分布式系統中產生虛擬內容的裝置,包括:至少一個記憶體;以及至少一個處理器,其耦接到至少一個記憶體並且被配置為:從與虛擬對話相關聯的第二設備接收與所述第二設備或所述第二設備的用戶中的至少一個相關聯的輸入資訊;基於所述輸入資訊產生所述第二設備的所述用戶的虛擬表示;從與所述虛擬對話相關聯的第三設備的用戶的視角產生虛擬場景,其中所述虛擬場景包括所述第二設備的所述用戶的所述虛擬表示;以及輸出從所述第三設備的所述用戶的所述視角描繪所述虛擬場景的一個或多個幀以傳輸到所述第三設備。
方面12、根據方面11所述的裝置,其中,所述輸入資訊包括以下各項中的至少一項:表示所述第二設備的用戶的面部的資訊、表示所述第二設備的用戶的身體的資訊、表示所述第二設備的用戶的一隻或多隻手的資訊、所述第二設備的姿態資訊、或與所述第二設備所位於的環境相關聯的音頻。
方面13、根據方面12所述的設備,其中表示所述第二設備的所述用戶的所述身體的所述資訊包括所述身體的姿態,並且其中表示所述第二設備的所述用戶的所述一隻或多隻手的所述資訊包括所述一隻或多隻手中的每一隻手的相對應姿態。
方面14、根據方面12或13中任一項所述的裝置,其中,所述至少一個處理器被配置為:使用表示所述用戶的面部的資訊、所述第二設備的姿態資訊和所述第三設備的姿態資訊來產生所述第二設備的用戶的面部的虛擬表示;使用所述第二設備的姿態資訊和所述第三設備的姿態資訊來產生所述第二設備的用戶的身體的虛擬表示;以及產生所述第二設備的用戶的頭髮的虛擬表示。
方面15、根據方面14所述的裝置,其中,進一步使用表示所述用戶的身體的資訊來產生所述第二設備的用戶的身體的虛擬表示。
方面16、根據方面14或15中任一項所述的裝置,其中,進一步使用逆動態學來產生所述第二設備的所述用戶的所述身體的所述虛擬表示。
方面17、根據方面14至16中任一項所述的裝置,其中,進一步使用表示所述用戶的所述一隻或多隻手的所述資訊來產生所述第二設備的所述用戶的所述身體的所述虛擬表示。
方面18、根據方面14至17中任一項所述的裝置,其中,所述至少一個處理器被配置為:將所述面部的所述虛擬表示與所述身體的所述虛擬表示組合以產生組合的虛擬表示;以及將所述頭髮的所述虛擬表示添加到所述組合的虛擬表示。
方面19、根據方面11至18中任一項所述的裝置,其中,所述至少一個處理器被配置為:獲得所述虛擬場景的背景表示;基於所述虛擬場景的所述背景表示來調整所述第二設備的所述用戶的所述虛擬表示的照明,以產生所述用戶的經修改的虛擬表示;以及將所述虛擬場景的所述背景表示與所述用戶的所述經修改的虛擬表示進行組合。
方面20、根據方面11至19中任一項所述的裝置,其中,所述至少一個處理器被配置為:基於來自所述第三設備的輸入資訊,產生所述第三設備的所述用戶的虛擬表示;從第二設備的所述用戶的角度,產生包括所述第三設備的所述用戶的所述虛擬表示的虛擬場景;以及輸出從所述第二設備的所述用戶的所述角度描繪所述虛擬場景的一個或多個幀,以用於傳輸到所述第二設備。
方面21、根據方面11至20中任一項所述的裝置,其中,所述裝置被實現為所述第一設備,並且還包括至少一個收發機,所述至少一個收發機被配置為:從所述第二設備接收所述輸入資訊;以及向所述第三設備發送所述一個或多個幀。
方面22、一種其上儲存有指令的非暫時性計算機可讀媒體,當所述指令由一個或多個處理器執行時,使所述一個或多個處理器執行根據方面1至21中的任何一項所述的操作。
方面23、一種用於在分布式系統中產生虛擬內容的裝置,所述裝置包括用於執行根據方面1至21中任一項所述的操作的一個或多個單元。
方面31、一種在用戶之間建立一個或多個虛擬對話的方法,所述方法包括:由第一設備向第二設備發送針對虛擬對話的虛擬表示呼叫的呼叫建立請求;在所述第一設備處從所述第二設備接收指示接受所述呼叫建立請求的呼叫接受;由所述第一設備向所述第二設備發送針對所述第一設備的第一用戶的第一虛擬表示的第一網格資訊;由所述第一設備向所述第二設備發送針對所述第一設備的所述第一用戶的所述第一虛擬表示的第一網格動畫參數;在所述第一設備處從所述第二設備接收針對所述第二設備的第二用戶的第二虛擬表示的第二網格資訊;在所述第一設備處從所述第二設備接收針對所述第二設備的所述第二用戶的所述第二虛擬表示的第二網格動畫參數;以及在所述第一設備處基於所述第二網格資訊和所述第二網格動畫參數來產生所述第二設備的所述第二用戶的所述第二虛擬表示。
方面32、根據方面31所述的方法,其中,針對所述虛擬對話的所述虛擬表示呼叫發送一次所述第一網格資訊,並且其中,針對所述虛擬對話的所述虛擬表示呼叫接收一次所述第二網格資訊。
方面33、根據方面31或32中任一項所述的方法,其中,針對虛擬對話中的每個幀以與虛擬對話相關聯的幀速率發送第一網格動畫參數並且接收第二網格動畫參數。
方面34、根據方面31至33中任一項所述的方法,其中,所述第二網格動畫參數包括表示所述第二用戶的資訊。
方面35、根據方面34所述的方法,其中,表示所述第二用戶的所述資訊包括以下各項中的至少一項:表示所述第二設備的所述第二用戶的面部的資訊、表示所述第二設備的所述第二用戶的身體的資訊、表示所述第二設備的所述第二用戶的一隻或多隻手的資訊、所述第二設備的姿態資訊、或與所述第二設備所位於的環境相關聯的音頻。
方面36、根據方面35所述的方法,其中,表示第二設備的第二用戶的身體的資訊包括身體的姿態,並且其中,表示第二設備的第二用戶的一隻或多隻手的資訊包括一隻或多隻手中的每只手的相對應姿態。
方面37、根據方面35或36中任一項所述的方法,其中,產生所述第二虛擬表示包括:使用表示所述第二用戶的面部的資訊和所述第二設備的姿態資訊來產生所述第二設備的第二用戶的面部的虛擬表示;使用所述第二設備的姿態資訊來產生所述第二設備的第二用戶的身體的虛擬表示;以及產生所述第二設備的第二用戶的頭髮的虛擬表示。
方面38、根據方面37所述的方法,其中,進一步使用表示第二用戶的身體的資訊來產生第二設備的第二用戶的身體的虛擬表示。
方面39、根據方面35至38中任一項所述的方法,其中,進一步使用逆動態學來產生第二設備的第二用戶的身體的虛擬表示。
方面40、根據方面35至39中任一項所述的方法,其中,進一步使用表示所述第二用戶的所述一隻或多隻手的所述資訊來產生所述第二設備的所述第二用戶的所述身體的所述虛擬表示。
方面41、根據方面35至40中任一項所述的方法,還包括:將面部的虛擬表示與身體的虛擬表示組合以產生組合的虛擬表示;以及將頭髮的虛擬表示添加到組合的虛擬表示。
方面42、一種在用戶之間建立一個或多個虛擬對話的方法,所述方法包括:由伺服器設備從第一客戶端設備接收針對虛擬對話的虛擬表示呼叫的呼叫建立請求;由所述伺服器設備向第二客戶端設備發送所述呼叫建立請求;由所述伺服器設備從所述第二客戶端設備接收指示接受所述呼叫建立請求的呼叫接受;由所述伺服器設備向所述第一客戶端設備發送所述呼叫接受;基於所述呼叫接受從所述第一客戶端設備接收針對所述第一客戶端設備的第一用戶的第一虛擬表示的第一網格資訊;由所述伺服器設備發送針對所述第一客戶端設備的所述第一用戶的所述第一虛擬表示的第一網格動畫參數;由所述伺服器設備基於所述第一網格資訊和所述第一網格動畫參數產生所述第一客戶端設備的所述第一用戶的所述第一虛擬表示;以及由所述伺服器設備向所述第二客戶端設備發送所述第一客戶端設備的所述第一用戶的所述第一虛擬表示。
方面43、根據方面42所述的方法,其中,針對虛擬對話的虛擬表示呼叫,第一網格資訊被接收一次。
方面44、根據方面42或43中任一項所述的方法,其中,所述第一網格動畫參數是針對所述虛擬對話中的每個幀以與所述虛擬對話相關聯的幀速率接收的。
方面45、根據方面42至44中任一項所述的方法,其中,所述第一網格動畫參數包括表示所述第一用戶的資訊。
方面46、根據方面45所述的方法,其中,表示所述第一用戶的所述資訊包括以下各項中的至少一項:表示所述第一客戶端設備的所述第一用戶的面部的資訊、表示所述第一客戶端設備的所述第一用戶的身體的資訊、表示所述第一客戶端設備的所述第一用戶的一隻或多隻手的資訊、所述第一客戶端設備的姿態資訊、或與所述第一客戶端設備所位於的環境相關聯的音頻。
方面47、根據方面46所述的方法,其中,表示所述第一客戶端設備的所述第一用戶的所述身體的所述資訊包括所述身體的姿態,並且其中,表示所述第一客戶端設備的所述第一用戶的所述一隻或多隻手的所述資訊包括所述一隻或多隻手中的每只手的相對應姿態。
方面48、一種裝置,包括至少一個記憶體和至少一個處理器,所述至少一個處理器耦接到至少一個記憶體並且被配置為執行根據方面31至40中任一項所述的操作。
方面49、一種裝置,包括至少一個記憶體和至少一個處理器,所述至少一個處理器耦接到至少一個記憶體並且被配置為執行根據方面41至45中任一項所述的操作。
方面50、一種其上儲存有指令的非暫時性計算機可讀媒體,當所述指令由一個或多個處理器執行時,使所述一個或多個處理器執行根據方面31至41中的任何一項所述的操作。
方面51、一種其上儲存有指令的非暫時性計算機可讀媒體,當所述指令由一個或多個處理器執行時,使所述一個或多個處理器執行根據方面42至47中的任何一項所述的操作。
方面52、一種用於在分布式系統中產生虛擬內容的裝置,所述裝置包括用於執行根據方面31至41中任一項所述的操作的一個或多個單元。
方面53、一種用於在分布式系統中產生虛擬內容的裝置,所述裝置包括用於執行根據方面42至47中任一項所述的操作的一個或多個單元。
方面61、一種在用戶之間建立一個或多個虛擬對話的方法,所述方法包括:由第一設備向第二設備發送針對虛擬對話的虛擬表示呼叫的呼叫建立請求;在所述第一設備處從所述第二設備接收指示接受所述呼叫建立請求的呼叫接受;由所述第一設備向所述第二設備發送針對所述第一設備的第一用戶的第一虛擬表示的第一網格資訊;由所述第一設備向所述第二設備發送針對所述第一設備的所述第一用戶的所述第一虛擬表示的第一網格動畫參數;在所述第一設備處從所述第二設備接收針對所述第二設備的第二用戶的第二虛擬表示的第二網格資訊;在所述第一設備處從所述第二設備接收針對所述第二設備的所述第二用戶的所述第二虛擬表示的第二網格動畫參數;以及在所述第一設備處基於所述第二網格資訊和所述第二網格動畫參數來產生所述第二設備的所述第二用戶的所述第二虛擬表示。
方面62、根據方面61所述的方法,其中,針對所述虛擬對話的所述虛擬表示呼叫發送一次所述第一網格資訊,並且其中,針對所述虛擬對話的所述虛擬表示呼叫接收一次所述第二網格資訊。
方面63、根據方面61-62中任一項所述的方法,其中,所述第二設備包括伺服器設備。
方面64、根據方面63所述的方法,其中,在發送所述呼叫建立請求之前,將所述第一網格資訊發送到所述伺服器設備以進行儲存。
方面65、根據方面63-64中任一項所述的方法,其中,作為註冊程序的一部分,所述第一網格資訊被發送到所述伺服器設備以進行儲存。
方面66、根據方面55所述的方法,還包括:由所述第一設備利用所述伺服器設備進行認證,以使得能夠存取所儲存的第一網格資訊。
方面67、根據方面61-66中任一項所述的方法,其中,所述第二設備包括客戶端設備。
方面68、根據方面61-67中任一項所述的方法,其中,針對所述虛擬對話的每個幀以與所述虛擬對話相關聯的幀速率發送所述第一網格動畫參數並且接收所述第二網格動畫參數。
方面69、根據方面61-68中任一項所述的方法,其中,所述第二網格動畫參數包括表示所述第二用戶的資訊。
方面70、根據方面69所述的方法,其中,表示所述第二用戶的所述資訊包括以下各項中的至少一項:表示所述第二設備的所述第二用戶的面部的資訊、表示所述第二設備的所述第二用戶的身體的資訊、表示所述第二設備的所述第二用戶的一隻或多隻手的資訊、所述第二設備的姿態資訊、或與所述第二設備所位於的環境相關聯的音頻。
方面71、根據方面60所述的方法,其中,表示第二設備的第二用戶的身體的資訊包括身體的姿態,並且其中,表示第二設備的第二用戶的一隻或多隻手的資訊包括一隻或多隻手中的每只手的相對應姿態。
方面72、一種在用戶之間建立一個或多個虛擬對話的方法,所述方法包括:由伺服器設備從第一客戶端設備接收針對虛擬對話的虛擬表示呼叫的呼叫建立請求;由所述伺服器設備將所述呼叫建立請求發送到第二客戶端設備;由所述伺服器設備從所述第二客戶端設備接收指示接受所述呼叫建立請求的呼叫接受;由所述伺服器設備將所述呼叫接受發送到所述第一客戶端設備;由所述伺服器設備從所述第一客戶端設備接收針對所述第一客戶端設備的第一用戶的第一虛擬表示的第一網格資訊;由所述伺服器設備接收針對所述第一客戶端設備的所述第一用戶的所述第一虛擬表示的第一網格動畫參數;由所述伺服器設備基於所述第一網格資訊和所述第一網格動畫參數產生所述第一客戶端設備的所述第一用戶的所述第一虛擬表示;以及由所述伺服器設備將所述第一客戶端設備的所述第一用戶的所述第一虛擬表示發送到所述第二客戶端設備。
方面73、根據方面72所述的方法,其中,針對虛擬對話的虛擬表示呼叫,第一網格資訊被接收一次。
方面74、根據方面73所述的方法,其中,所述第一網格資訊是響應於發送到所述第一客戶端設備的所述呼叫接受而接收的。
方面75、根據方面72-74中任一項所述的方法,其中,所述第一網格資訊是在接收所述呼叫建立請求之前接收的。
方面76、根據方面72-75中任一項所述的方法,其中,所述第一網格資訊是作為註冊程序的一部分來接收的。
方面77、根據方面72-76中任一項所述的方法,還包括:儲存所述第一網格資訊;以及基於所接收的呼叫接受來檢索所述第一網格資訊。
方面78、根據方面77所述的方法,還包括:認證所述第一客戶端設備以使得能夠存取所儲存的第一網格資訊。
方面79、根據方面72-78中任一項所述的方法,其中,所述第一網格動畫參數是針對所述虛擬對話中的每個幀以與所述虛擬對話相關聯的幀速率接收的。
方面80、根據方面72-79中任一項所述的方法,其中,所述第一網格動畫參數包括表示所述第一用戶的資訊。
方面81、根據方面80所述的方法,其中,表示所述第一用戶的所述資訊包括以下各項中的至少一項:表示所述第一客戶端設備的所述第一用戶的面部的資訊、表示所述第一客戶端設備的所述第一用戶的身體的資訊、表示所述第一客戶端設備的所述第一用戶的一隻或多隻手的資訊、所述第一客戶端設備的姿態資訊、或與所述第一客戶端設備所位於的環境相關聯的音頻。
方面82、一種用於通信的裝置,所述裝置包括:至少一個記憶體;以及耦接到所述至少一個記憶體的至少一個處理器,所述至少一個處理器被配置為:向第二設備發送針對虛擬對話的虛擬表示呼叫的呼叫建立請求;從所述第二設備接收指示接受所述呼叫建立請求的呼叫接受;向所述第二設備發送針對所述裝置的第一用戶的第一虛擬表示的第一網格資訊;向所述第二設備發送針對所述裝置的所述第一用戶的所述第一虛擬表示的第一網格動畫參數;從所述第二設備接收針對所述第二設備的第二用戶的第二虛擬表示的第二網格資訊;從所述第二設備接收針對所述第二設備的所述第二用戶的所述第二虛擬表示的第二網格動畫參數;以及基於所述第二網格資訊和所述第二網格動畫參數來產生所述第二設備的所述第二用戶的所述第二虛擬表示。
方面83、根據方面82所述的裝置,其中針對所述虛擬對話的所述虛擬表示呼叫發送一次所述第一網格資訊,並且其中針對所述虛擬對話的所述虛擬表示呼叫接收一次所述第二網格資訊。
方面84、根據方面82所述的裝置,其中所述第二裝置包括伺服器設備。
方面85、根據方面84所述的裝置,其中,在發送所述呼叫建立請求之前,將所述第一網格資訊發送到所述伺服器設備以進行儲存。
方面86、根據方面84-85中任一項所述的裝置,其中,作為註冊程序的一部分,所述第一網格資訊被發送到所述伺服器設備以進行儲存。
方面87、根據方面86所述的裝置,其中,所述至少一個處理器還被配置為:向所述伺服器設備進行認證,以使得能夠存取所儲存的第一網格資訊。
方面88、根據方面82-87中任一項所述的裝置,其中,所述第二設備包括客戶端設備。
方面89、根據方面82-88中任一項所述的裝置,其中,針對虛擬對話中的每個幀以與虛擬對話相關聯的幀速率發送第一網格動畫參數並且接收第二網格動畫參數。
方面90、一種用於通信的裝置,所述裝置包括:至少一個記憶體;以及至少一個處理器,其耦接到所述至少一個記憶體,所述至少一個處理器被配置為:從第一客戶端設備接收針對虛擬對話的虛擬表示呼叫的呼叫建立請求;將所述呼叫建立請求發送到第二客戶端設備;從所述第二客戶端設備接收指示接受所述呼叫建立請求的呼叫接受;將所述呼叫接受發送到所述第一客戶端設備;從所述第一客戶端設備接收針對所述第一客戶端設備的第一用戶的第一虛擬表示的第一網格資訊;接收針對所述第一客戶端設備的所述第一用戶的所述第一虛擬表示的第一網格動畫參數;基於所述第一網格資訊和所述第一網格動畫參數產生所述第一客戶端設備的所述第一用戶的所述第一虛擬表示;以及將所述第一客戶端設備的所述第一用戶的所述第一虛擬表示發送到所述第二客戶端設備。
方面91、 一種裝置,包括至少一個記憶體和至少一個處理器,所述至少一個處理器耦接到至少一個記憶體並且被配置為執行根據方面61至71中任一項所述的操作。
方面92、 一種裝置,包括至少一個記憶體和至少一個處理器,所述至少一個處理器耦接到至少一個記憶體並且被配置為執行根據方面72至81中任一項所述的操作。
方面93、一種其上儲存有指令的非暫時性計算機可讀媒體,當所述指令由一個或多個處理器執行時,使所述一個或多個處理器執行根據方面61至71中的任何一項所述的操作。
方面94、一種其上儲存有指令的非暫時性計算機可讀媒體,當所述指令由一個或多個處理器執行時,使所述一個或多個處理器執行根據方面72至81中的任何一項所述的操作。
方面95、一種用於在分布式系統中產生虛擬內容的裝置,所述裝置包括用於執行根據方面61至71中任一項所述的操作的一個或多個單元。
方面96、一種用於在分布式系統中產生虛擬內容的裝置,所述裝置包括用於執行根據方面72至81中任一項所述的操作的一個或多個單元。
100:延展實境系統
105:設備
110:用戶
115:頭部動態
120:網路
125:通信鏈路
130-A:視圖
130-B:視圖
135:移位
200:虛擬環境
202:第一用戶的虛擬表示
204:第二用戶的虛擬表示
206:第三用戶的虛擬表示
208:第四用戶的虛擬表示
210:第五用戶的虛擬表示
212:虛擬日曆
214:虛擬網頁
216:虛擬視頻會議界面
300:延展實境系統
302:客戶端設備
304:客戶端設備
400:系統
405:客戶端設備
410:動畫和場景渲染系統
415:資料庫
420:網路
425:通信鏈路
430:應用
435:多媒體管理器
440:多媒體分發平台
445:多媒體
500:設備
505:用戶介面單元
510:CPU
515:中央處理單元(CPU)記憶體
520:GPU驅動器
525:GPU
530:GPU記憶體
535:顯示緩衝器
540:系統記憶體
545:顯示器
550:延展實境管理器
600:XR系統
602:客戶端設備
604:客戶端設備
606:客戶端設備
610:動畫和場景渲染系統
620:用戶虛擬表示系統
622:場景合成系統
700:XR系統
702:客戶端設備
704:客戶端設備
709:面部引擎
712:姿態引擎
714:身體引擎
715:輸入幀
716:手部引擎
717:音頻資料
718:音頻編碼器
719:背景場景資訊
720:用戶虛擬表示系統
722:場景合成系統
724:其它用戶虛擬表示
726:空間音頻引擎
728:唇部同步引擎
730:視頻編碼器
732:視頻解碼器
734:重投影引擎
736:顯示器
737:目標姿態
738:未來姿態預測引擎
757:目標視圖幀
841:註冊的紋理和深度資訊
842:面部表示動畫引擎
844:面部-身體組合器引擎
846:頭髮動畫引擎
847:最終用戶虛擬表示
947:用戶虛擬表示A
948:用戶虛擬表示i
949:用戶虛擬表示N
950:重新照明引擎
951:用戶虛擬表示A
952:照明提取引擎
953:被重新照明的用戶虛擬表示i
955:被重新照明的用戶虛擬表示N
956:混合引擎
1000:XR系統
1002:客戶端設備
1004:客戶端設備
1010:動畫和場景渲染系統
1011:幾何編碼器引擎
1013:面部解碼器
1019:預處理引擎
1021:視圖相關紋理合成引擎
1023:非剛性對準引擎
1025:音頻解碼器
1100:XR系統
1102:客戶端設備
1104:客戶端設備
1110:動畫和場景渲染系統
1126:單聲道音頻引擎
1200:程序
1202:方塊
1204:方塊
1206:方塊
1208:方塊
1301:網格
1302:法線圖
1304:反照率圖
1306:鏡面反射圖
1308:個性化參數
1402:原始(非拓撲化)網格
1404:網格
1500:示例的圖
1602:第一客戶端設備
1604:第二客戶端設備
1606:呼叫建立請求
1608:呼叫接受器
1610:網格資訊
1612:網格資訊
1614:網格動畫參數
1616:化身呼叫結束
1700:XR系統
1750:註冊資料
1802:第一客戶端設備
1805:伺服器設備
1806:呼叫建立請求
1808:呼叫接受
1810:網格資訊
1814:網格動畫參數
1815:分割渲染
1816:化身呼叫結束
1900:XR系統
1904:客戶端設備
1950:註冊資料
2000:XR系統
2019:資訊
2022:場景定義/合成系統
2050:註冊資料
2075:用戶視圖渲染引擎
2100:XR系統
2119:資訊
2122:場景定義/合成系統
2150:用戶A註冊資料
2175:用戶視圖渲染引擎
2200:XR系統
2300:XR系統
2400:信令圖
2402:UE1
2404:P/S/I-CSCF
2406:媒體資源功能(MRF)
2408:多媒體電話應用伺服器(MMTel AS)
2410:UE2
2412:呼叫建立程序
2414:場景描述檢索程序
2416:場景描述更新程序
2418:擴增實境(AR)媒體和元資料交換程序
2420:發送
2422:發送
2424:化身動畫
2426:用戶視圖
2502:第一客戶端設備
2504:第二客戶端設備
2506:請求訊息
2508:響應
2510:資產
2512:資產
2514:建立呼叫
2516:結束呼叫
2600:XR系統
2619:資訊
2630:編碼器
2700:XR系統
2719:資訊
2730:編碼器
2800:信令圖
2902:第一客戶端設備
2905:其他客戶端設備
2906:請求訊息
2908:響應
2910:建立呼叫
2912:呼叫結束
3000:XR系統
3100:XR系統
3200:信令圖
3202:UE1
3204:P/S/I-CSCF
3206:MRF
3208:MMTel AS
3210:UE2
3220:傳送
3222:傳送
3224:化身動畫化
3226:用戶視圖
3228:發送
3302:客戶端設備A
3305:客戶端設備
3306:請求訊息
3308:響應
3310:機器學習參數
3312:建立呼叫
3314:特定場景
3316:結束呼叫
3400:XR系統
3419:資訊
3430:編碼器
3500:XR系統
3519:資訊
3530:編碼器
3600:信令圖
3702:第一客戶端設備
3705:其他客戶端設備
3706:請求訊息
3708:響應
3710:建立呼叫
3712:特定場景
3714:呼叫結束
3800:信令圖
3900:信令圖
3902:UE1
3904:P/S/I-CSCF
3906:MRF
3908:MMTel AS
3910:UE2
3918:AR媒體和元資料交換
3920:傳送
3922:3D模型
3924:傳送
3926:化身動畫化
3930:發送
4000:信令圖
4002:UE1
4004:P/S/I-CSCF
4006:MRF
4008:MMTel AS
4010:UE2
4018:AR媒體和元資料交換
4020:獲得
4022:傳送
4024:傳送
4026:化身動畫化
4028:用戶視圖
4030:發送
4100:深度學習神經網路
4120:輸入層
4122a:隱藏層
4122b:隱藏層
4122n:隱藏層
4124:輸出層
4126:節點
4200:卷積神經網路
4220:輸入層
4222a:卷積隱藏層
4222b:池化隱藏層
4222c:全連接隱藏層
4224:輸出層
4300:計算系統
4305:連接
4311:高速記憶體的快取
4312:處理器
4315:系統記憶體
4320:唯讀記憶體(ROM)
4325:隨機存取記憶體(RAM)
4330:儲存設備
4332:服務
4334:服務
4335:輸出設備
4336:服務
4340:通信介面
4345:輸入設備
4400:程序
4402:方塊
4404:方塊
4406:方塊
4408:方塊
4410:方塊
4412:方塊
4414:方塊
4500:程序
4502:方塊
4504:方塊
4506:方塊
4508:方塊
4510:方塊
4512:方塊
4514:方塊
4516:方塊
下文參考以下圖式詳細描述了本申請的說明性示例:
圖1是示出根據本公開內容的方面的延展實境(XR)系統的示例的圖;
圖2是示出根據本公開內容的各方面的三維(3D)協作虛擬環境的示例的圖;
圖3是示出根據本公開內容的各方面的XR系統的示例的圖,其中兩個客戶端設備交換用於產生用戶的虛擬表示和組成虛擬場景的資訊;
圖4是示出根據本公開內容的方面的XR系統的另一示例的圖;
圖5是示出根據本公開內容的各方面的客戶端設備的示例配置的圖;
圖6是示出根據本公開內容的各方面的包括與客戶端設備通信的動畫和場景渲染系統的XR系統的示例的圖;
圖7是示出根據本公開內容的各方面的包括與客戶端設備通信的動畫和場景渲染系統的XR系統的另一示例的圖;
圖8是示出根據本公開內容的各方面的動畫和場景渲染系統的用戶虛擬表示系統的說明性示例的圖;
圖9是示出根據本公開內容的各方面的動畫和場景渲染系統的場景合成系統的說明性示例的圖;
圖10是示出根據本公開內容的各方面的包括與客戶端設備通信的動畫和場景渲染系統的XR系統的另一示例的圖;
圖11是示出根據本公開內容的各方面的包括與客戶端設備通信的動畫和場景渲染系統的XR系統的另一示例的圖;
圖12是示出根據本公開內容的各方面的在分布式系統的設備處產生虛擬內容的程序的示例的流程圖;
圖13是示出根據本公開內容的各方面的用戶的網格的示例、用戶的法線圖的示例、用戶的反照率圖的示例、用戶的鏡面反射圖的示例以及針對用戶個性化的示例的圖;
圖14A是示出根據本公開內容的各方面的原始(非重新拓撲化)網格的示例的圖;
圖14B是示出根據本公開內容的各方面的重拓撲化網格的示例的示意圖;
圖15是示出根據本公開內容的各方面的用於執行化身動畫的一種技術的示例的圖;
圖16是示出根據本公開內容的各方面的直接在客戶端設備之間的化身呼叫流的示例的圖;
圖17是示出被配置為執行本文描述的各方面的XR系統的示例的圖;
圖18是示出根據本公開內容的各方面的用於利用伺服器設備在客戶端設備之間建立化身呼叫的化身呼叫流的示例的圖;
圖19是示出根據本公開內容的各方面的被配置為執行本文所描述的各方面的XR系統的另一示例的圖;
圖20是示出根據本公開內容的各方面的被配置為執行本文所描述的各方面的XR系統的另一示例的圖;
圖21是示出根據本公開內容的各方面的被配置為執行本文所描述的各方面的XR系統的另一示例的圖;
圖22是示出根據本公開內容的各方面的被配置為執行本文所描述的各方面的XR系統的示例的示意圖;
圖23是示出根據本公開內容的各方面的被配置為執行本文所描述的各方面的XR系統的示例的示意圖;
圖24是示出根據本公開內容的各方面的各種設備之間的通信的信令圖;
圖25是根據本公開內容的各方面的用於在客戶端設備之間建立化身呼叫的、沒有邊緣伺服器並且在目標設備上具有針對視圖相關和/或視圖無關紋理的解碼器的設備對設備呼叫流程的示例;
圖26是示出根據本公開內容的各方面的被配置為執行本文所描述的各方面的XR系統的示例的示例的示意圖;
圖27是示出根據本公開內容的各方面的被配置為執行本文所描述的各方面的XR系統的示例的示例的示意圖;
圖28是示出根據本公開內容的各方面的各種設備之間的通信的信令圖;
圖29是根據本公開內容的各方面的用於在客戶端設備之間建立化身呼叫的、沒有邊緣伺服器並且在源或發送/傳送客戶端設備上具有針對視圖相關和/或視圖無關紋理的所有處理(例如,解碼、化身動畫化等)的設備對設備呼叫流程的示例;
圖30是示出根據本公開內容的各方面的被配置為執行本文所描述的各方面的XR系統的示例的示意圖;
圖31是示出根據本公開內容的各方面的被配置為執行本文所描述的各方面的XR系統的示例的示意圖;
圖32是示出根據本公開內容的各方面的各種設備之間的通信的信令圖;
圖33是根據本公開內容的各方面的用於在客戶端設備之間建立化身呼叫的、具有邊緣伺服器並且在伺服器設備上具有針對視圖相關和/或視圖無關紋理的解碼器的設備對設備呼叫流程的示例;
圖34是示出根據本公開內容的各方面的被配置為執行本文所描述的各方面的XR系統的示例的示意圖;
圖35是示出根據本公開內容的各方面的被配置為執行本文所描述的各方面的XR系統的示例的示意圖;
圖36是示出根據本公開內容的各方面的各種設備之間的通信的信令圖;
圖37是根據本公開內容的各方面的用於在客戶端設備之間建立化身呼叫的、具有邊緣伺服器並且在源或發送/傳送客戶端設備上具有針對視圖相關和/或視圖無關紋理的所有處理(例如,解碼、化身動畫化等)的設備對設備呼叫流程的示例;
圖38是示出根據本公開內容的各方面的各種設備之間的通信的另一示例的信令圖;
圖39是示出根據本公開內容的各方面的各種設備之間的通信的另一示例的信令圖;
圖40是示出根據本公開內容的各方面的各種設備之間的通信的另一示例的信令圖;
圖41是示出根據一些示例的深度學習網路的示例的方塊圖;
圖42是示出根據一些示例的卷積神經網路的示例的方塊圖;以及
圖43是示出根據本公開內容的各方面的計算系統的示例的圖。
圖44是示出根據本公開內容的各方面的用於在分布式系統中產生虛擬內容的程序的流程圖。
圖45是示出根據本公開內容的各方面的用於在分布式系統中產生虛擬內容的程序的流程圖。
3302:客戶端設備A
3305:客戶端設備
3306:請求訊息
3308:響應
3310:機器學習參數
3312:建立呼叫
3314:特定場景
3316:結束呼叫
Claims (30)
- 一種在用戶之間建立一個或多個虛擬對話的方法,所述方法包括: 由第一設備向第二設備發送針對虛擬對話的虛擬表示呼叫的呼叫建立請求; 在所述第一設備處從所述第二設備接收指示接受所述呼叫建立請求的呼叫接受; 由所述第一設備向所述第二設備發送針對所述第一設備的第一用戶的第一虛擬表示的第一網格資訊; 由所述第一設備向所述第二設備發送針對所述第一設備的所述第一用戶的所述第一虛擬表示的第一網格動畫參數; 在所述第一設備處從所述第二設備接收針對所述第二設備的第二用戶的第二虛擬表示的第二網格資訊; 在所述第一設備處從所述第二設備接收針對所述第二設備的所述第二用戶的所述第二虛擬表示的第二網格動畫參數;以及 在所述第一設備處基於所述第二網格資訊和所述第二網格動畫參數產生所述第二設備的所述第二用戶的所述第二虛擬表示。
- 根據請求項1所述的方法,其中,所述第一網格資訊針對所述虛擬對話的所述虛擬表示呼叫被發送一次,並且其中,所述第二網格資訊針對所述虛擬對話的所述虛擬表示呼叫被接收一次。
- 根據請求項1所述的方法,其中,所述第二設備包括伺服器設備。
- 根據請求項3所述的方法,其中,所述第一網格資訊在發送所述呼叫建立請求之前被發送到所述伺服器設備以進行儲存。
- 根據請求項3所述的方法,其中,作為註冊程序的一部分,所述第一網格資訊被發送到所述伺服器設備以進行儲存。
- 根據請求項5所述的方法,還包括:由所述第一設備利用所述伺服器設備進行認證,以使得能夠存取所儲存的第一網格資訊。
- 根據請求項1所述的方法,其中,所述第二設備包括客戶端設備。
- 根據請求項1所述的方法,其中,所述第一網格動畫參數以與所述虛擬對話相關聯的幀速率針對所述虛擬對話的每個幀被發送,並且所述第二網格動畫參數以與所述虛擬對話相關聯的幀速率針對所述虛擬對話的每個幀被接收。
- 根據請求項1所述的方法,其中,所述第二網格動畫參數包括表示所述第二用戶的資訊。
- 根據請求項9所述的方法,其中,表示所述第二用戶的所述資訊包括以下各項中的至少一項:表示所述第二設備的所述第二用戶的面部的資訊、表示所述第二設備的所述第二用戶的身體的資訊、表示所述第二設備的所述第二用戶的一隻或多隻手的資訊、所述第二設備的姿態資訊、或與所述第二設備所位於的環境相關聯的音頻。
- 根據請求項10所述的方法,其中,表示所述第二設備的所述第二用戶的所述身體的所述資訊包括所述身體的姿態,並且其中,表示所述第二設備的所述第二用戶的所述一隻或多隻手的所述資訊包括所述一隻或多隻手中的每只手的相對應姿態。
- 一種在用戶之間建立一個或多個虛擬對話的方法,所述方法包括: 由伺服器設備從第一客戶端設備接收針對虛擬對話的虛擬表示呼叫的呼叫建立請求; 由所述服務端設備向第二客戶端設備發送所述呼叫建立請求; 由所述伺服器設備從所述第二客戶端設備接收指示接受所述呼叫建立請求的呼叫接受; 由所述伺服器設備向所述第一客戶端設備發送所述呼叫接受; 由所述伺服器設備從所述第一客戶端設備接收針對所述第一客戶端設備的第一用戶的第一虛擬表示的第一網格資訊; 由所述伺服器設備接收針對所述第一客戶端設備的所述第一用戶的所述第一虛擬表示的第一網格動畫參數; 由所述伺服器設備基於所述第一網格資訊和所述第一網格動畫參數產生所述第一客戶端設備的所述第一用戶的所述第一虛擬表示;以及 由所述伺服器設備向所述第二客戶端設備發送所述第一客戶端設備的所述第一用戶的所述第一虛擬表示。
- 根據請求項12所述的方法,其中,所述第一網格資訊針對所述虛擬對話的所述虛擬表示呼叫被接收一次。
- 根據請求項13所述的方法,其中,所述第一網格資訊響應於向所述第一客戶端設備發送的所述呼叫接受被接收。
- 根據請求項12所述的方法,其中,所述第一網格資訊在接收所述呼叫建立請求之前被接收。
- 根據請求項12所述的方法,其中,所述第一網格資訊作為註冊程序的一部分被接收。
- 根據請求項12所述的方法,還包括: 儲存所述第一網格資訊;以及 基於所接收的呼叫接受來檢索所述第一網格資訊。
- 根據請求項17所述的方法,還包括:認證所述第一客戶端設備以使得能夠存取所儲存的第一網格資訊。
- 根據請求項12所述的方法,其中,所述第一網格動畫參數以與所述虛擬對話相關聯的幀速率針對所述虛擬對話的每個幀被接收。
- 根據請求項12所述的方法,其中,所述第一網格動畫參數包括表示所述第一用戶的資訊。
- 根據請求項20所述的方法,其中,表示所述第一用戶的所述資訊包括以下各項中的至少一項:表示所述第一客戶端設備的所述第一用戶的面部的資訊、表示所述第一客戶端設備的所述第一用戶的身體的資訊、表示所述第一客戶端設備的所述第一用戶的一隻或多隻手的資訊、所述第一客戶端設備的姿態資訊、或者與所述第一客戶端設備所位於的環境相關聯的音頻。
- 一種用於通信的裝置,所述裝置包括: 至少一個記憶體;以及 耦接到所述至少一個記憶體的至少一個處理器,所述至少一個處理器被配置為: 向第二設備發送針對虛擬對話的虛擬表示呼叫的呼叫建立請求; 從所述第二設備接收指示接受所述呼叫建立請求的呼叫接受; 向所述第二設備發送針對所述裝置的第一用戶的第一虛擬表示的第一網格資訊; 向所述第二設備發送針對所述裝置的所述第一用戶的所述第一虛擬表示的第一網格動畫參數; 從所述第二設備接收針對所述第二設備的第二用戶的第二虛擬表示的第二網格資訊; 從所述第二設備接收針對所述第二設備的所述第二用戶的所述第二虛擬表示的第二網格動畫參數;以及 基於所述第二網格資訊和所述第二網格動畫參數,產生所述第二設備的所述第二用戶的所述第二虛擬表示。
- 根據請求項22所述的裝置,其中,所述第一網格資訊針對所述虛擬對話的所述虛擬表示呼叫被發送一次,並且其中,所述第二網格資訊針對所述虛擬對話的所述虛擬表示呼叫被接收一次。
- 根據請求項22所述的裝置,其中,所述第二設備包括伺服器設備。
- 根據請求項24所述的裝置,其中,所述第一網格資訊在發送所述呼叫建立請求之前被發送到所述伺服器設備以進行儲存。
- 根據請求項24所述的裝置,其中,作為註冊程序的一部分,所述第一網格資訊被發送到所述伺服器設備以進行儲存。
- 根據請求項26所述的裝置,其中,所述至少一個處理器還被配置為:利用所述伺服器設備進行認證,以使得能夠存取所儲存的第一網格資訊。
- 根據請求項22所述的裝置,其中,所述第二設備包括客戶端設備。
- 根據請求項22所述的裝置,其中,所述第一網格動畫參數以與所述虛擬對話相關聯的幀速率針對所述虛擬對話的每個幀被發送,並且所述第二網格動畫參數以與所述虛擬對話相關聯的幀速率針對所述虛擬對話的每個幀被接收。
- 一種用於通信的裝置,所述裝置包括: 至少一個記憶體;以及 耦接到所述至少一個記憶體的至少一個處理器,所述至少一個處理器被配置為: 從第一客戶端設備接收針對虛擬對話的虛擬表示呼叫的呼叫建立請求; 向第二客戶端設備發送所述呼叫建立請求; 從所述第二客戶端設備接收指示接受所述呼叫建立請求的呼叫接受; 向所述第一客戶端設備發送所述呼叫接受; 從所述第一客戶端設備接收針對所述第一客戶端設備的第一用戶的第一虛擬表示的第一網格資訊; 接收針對所述第一客戶端設備的所述第一用戶的所述第一虛擬表示的第一網格動畫參數; 基於所述第一網格資訊和所述第一網格動畫參數,產生所述第一客戶端設備的所述第一用戶的所述第一虛擬表示;以及 向所述第二客戶端設備發送所述第一客戶端設備的所述第一用戶的所述第一虛擬表示。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/480,677 | 2023-01-19 | ||
US18/468,648 | 2023-09-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202433242A true TW202433242A (zh) | 2024-08-16 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10636220B2 (en) | Methods and systems for generating a merged reality scene based on a real-world object and a virtual object | |
US10380762B2 (en) | Real-time remote collaboration and virtual presence using simultaneous localization and mapping to construct a 3D model and update a scene based on sparse data | |
US10891781B2 (en) | Methods and systems for rendering frames based on virtual entity description frames | |
US12026833B2 (en) | Few-shot synthesis of talking heads | |
CN111542861A (zh) | 利用深度外观模型渲染化身的系统和方法 | |
US11995781B2 (en) | Messaging system with neural hair rendering | |
US11450072B2 (en) | Physical target movement-mirroring avatar superimposition and visualization system and method in a mixed-reality environment | |
JP7425196B2 (ja) | ハイブリッドストリーミング | |
US20240062467A1 (en) | Distributed generation of virtual content | |
JP2024105424A (ja) | 異種クライアントエンドポイントへのストリーミング用メディアの適応のための没入型メディアによるニューラルネットワークモデルの参照 | |
Eisert et al. | Volumetric video–acquisition, interaction, streaming and rendering | |
US20230412724A1 (en) | Controlling an Augmented Call Based on User Gaze | |
US20240259529A1 (en) | Communication framework for virtual representation calls | |
TW202433242A (zh) | 用於虛擬表示呼叫的通信框架 | |
EP4367893A1 (en) | Augmenting video or external environment with 3d graphics | |
TW202420232A (zh) | 虛擬內容的分散式產生 | |
US20240135647A1 (en) | Virtual representation encoding in scene descriptions | |
US12051155B2 (en) | Methods and systems for 3D modeling of a human subject having hair based on 2D imagery | |
US11983819B2 (en) | Methods and systems for deforming a 3D body model based on a 2D image of an adorned subject | |
US11977672B2 (en) | Distributed pose prediction | |
CN117097919A (zh) | 虚拟角色渲染方法、装置、设备、存储介质和程序产品 |