本發(fā)明涉及多媒體數(shù)據(jù)處理領(lǐng)域,特別是涉及一種對(duì)虛擬場(chǎng)景直播數(shù)據(jù)進(jìn)行處理的技術(shù)。
背景技術(shù):
由于設(shè)備成本的下降和直播技術(shù)的日臻成熟,通過(guò)網(wǎng)絡(luò)進(jìn)行表演直播的娛樂(lè)形式逐漸為大眾所接受和歡迎。虛擬場(chǎng)景合成技術(shù)是一種應(yīng)用于電視臺(tái)演播廳錄播節(jié)目或電影制作中的多媒體數(shù)據(jù)處理技術(shù),例如天氣預(yù)報(bào)節(jié)目等。
現(xiàn)有技術(shù)中,虛擬場(chǎng)景合成技術(shù)通常通過(guò)將攝像裝置采集到的純色背景中的人像提取出來(lái),然后與渲染出來(lái)的虛擬場(chǎng)景背景進(jìn)行疊加合成,再將合成后的圖像數(shù)據(jù)輸出用于播放或錄制存儲(chǔ)。
現(xiàn)有的虛擬場(chǎng)景技術(shù)無(wú)法實(shí)現(xiàn)主播對(duì)象與觀眾對(duì)象之間高品質(zhì)的互動(dòng)交流。具體的,例如在網(wǎng)絡(luò)直播領(lǐng)域中,現(xiàn)有的直播平臺(tái)和技術(shù),使得觀眾只能看到主播攝像頭拍攝的畫(huà)面,觀眾可以向主播贈(zèng)送虛擬禮物,但是這些虛擬禮物只能在現(xiàn)有的場(chǎng)景下進(jìn)行粗糙地疊加。又例如,現(xiàn)有MTV制作通常由導(dǎo)演和表演者交流后錄制完成,錄制過(guò)程缺乏趣味性,錄制效果單一。并且在現(xiàn)有直播技術(shù)中,為了使客戶端能夠看到其他客戶端與主播之間的互動(dòng)效果,需要客戶端將互動(dòng)信息和素材發(fā)送到云端服務(wù)器,云端服務(wù)器通知所有在線客戶端從指定位置下載素材,并由客戶端疊加到直播畫(huà)面上??梢?jiàn),客戶端需要下載指定素材,效率低下,且浪費(fèi)流量;并且需要每個(gè)客戶端在本地存儲(chǔ)所述互動(dòng)素材,占用客戶端存儲(chǔ)空間,而且互動(dòng)內(nèi)容不便于及時(shí)進(jìn)行擴(kuò)展。
而且,由于攝像裝置所拍攝的主播對(duì)象的像素點(diǎn)高,成像真實(shí),導(dǎo)致主播對(duì)象臉部的瑕疵都直接呈現(xiàn)在鏡頭上,故此,在直播之前往往需要對(duì)主播對(duì)象進(jìn)行美顏。而現(xiàn)有的美顏處理,是對(duì)圖像中的每個(gè)像素點(diǎn)進(jìn)行處理運(yùn)算,處理運(yùn)算的數(shù)據(jù)量大,具有較高的延遲,并占用大量CPU資源,無(wú)法應(yīng)用于實(shí)時(shí)性要求較高的直播。另外,在一些現(xiàn)有的直播數(shù)據(jù)處理方案中,是直接對(duì)視頻流進(jìn)行美顏處理,無(wú)形中增加了直播的延遲。
因此發(fā)明人認(rèn)為需要研發(fā)一種能夠降低網(wǎng)絡(luò)虛擬場(chǎng)景直播美顏處理所造成直播延遲的技術(shù)。
技術(shù)實(shí)現(xiàn)要素:
為此,需要提供一種能夠?qū)μ摂M場(chǎng)景直播數(shù)據(jù)進(jìn)行快速美顏處理的技術(shù),用于降低網(wǎng)絡(luò)虛擬場(chǎng)景直播美顏處理的延遲時(shí)間。
為實(shí)現(xiàn)上述目的,發(fā)明人提供了一種對(duì)虛擬場(chǎng)景直播進(jìn)行美顏處理的方法,包括以下步驟:
實(shí)時(shí)獲取攝像裝置的數(shù)據(jù),得到第一圖像數(shù)據(jù);
將第一圖像數(shù)據(jù)轉(zhuǎn)換成紋理圖像,并將所述紋理圖像更新至虛擬場(chǎng)景中;
通過(guò)GPU從紋理圖像中識(shí)別出第一對(duì)象,將紋理圖像除第一對(duì)象外的剩余部分透明化,然后對(duì)第一對(duì)象進(jìn)行美顏處理,再對(duì)美顏后的第一對(duì)象及所述虛擬場(chǎng)景進(jìn)行渲染,得到渲染圖像。
進(jìn)一步的,得到渲染圖像之后還包括步驟:
對(duì)所述渲染圖像進(jìn)行合成圖像編碼操作,得到第一視頻數(shù)據(jù);
獲取攝像裝置數(shù)據(jù)的同時(shí),實(shí)時(shí)獲取音效器的音頻數(shù)據(jù),將音效器的音頻數(shù)據(jù)與第一視頻數(shù)據(jù)封裝成音視頻數(shù)據(jù)。
進(jìn)一步的,得到所述音視頻數(shù)據(jù)之后還包括步驟:通過(guò)實(shí)時(shí)流傳輸協(xié)議,將所述音視頻數(shù)據(jù)直播給局域網(wǎng)中的在線客戶端;
或通過(guò)實(shí)時(shí)流傳輸協(xié)議,將所述音視頻數(shù)據(jù)發(fā)送給第三方網(wǎng)絡(luò)服務(wù)器;
第三方網(wǎng)絡(luò)服務(wù)器生成所述音視頻數(shù)據(jù)的互聯(lián)網(wǎng)直播鏈接。
進(jìn)一步的,還包括接收客戶端發(fā)送的互動(dòng)指令,從及根據(jù)互動(dòng)指令更新或切換虛擬場(chǎng)景。
進(jìn)一步的,所述對(duì)所述渲染圖像進(jìn)行合成圖像編碼操作包括步驟:
使用硬件編碼模塊截取所述渲染圖像,以及對(duì)所截取的渲染圖像進(jìn)行壓縮編碼。
進(jìn)一步的,所述對(duì)第一對(duì)象進(jìn)行美顏處理包括步驟:利用shader對(duì)第一對(duì)象進(jìn)行磨皮處理,去斑處理和加亮處理。
進(jìn)一步的,所述虛擬場(chǎng)景為3D虛擬現(xiàn)實(shí)場(chǎng)景或3D視頻場(chǎng)景。
為實(shí)現(xiàn)上述目的,發(fā)明人還提供了另一技術(shù)方案:一種對(duì)虛擬場(chǎng)景直播進(jìn)行美顏處理的系統(tǒng),包括:
解析單元,用于實(shí)時(shí)獲取攝像裝置的數(shù)據(jù),得到第一圖像數(shù)據(jù);
更新單元,用于將第一圖像數(shù)據(jù)轉(zhuǎn)換成紋理圖像,并將所述紋理圖像更新至虛擬場(chǎng)景中;以及
渲染單元,通過(guò)GPU從紋理圖像中識(shí)別出第一對(duì)象,將紋理圖像除第一對(duì)象外的剩余部分透明化,然后對(duì)第一對(duì)象進(jìn)行美顏處理,再對(duì)美顏后的第一對(duì)象及所述虛擬場(chǎng)景進(jìn)行渲染,得到渲染圖像。
進(jìn)一步的,對(duì)虛擬場(chǎng)景直播進(jìn)行美顏處理的系統(tǒng)還包括:
合成圖像編碼單元,用于對(duì)所述渲染圖像進(jìn)行合成圖像編碼操作,得到第一視頻數(shù)據(jù);以及
封裝單元,用于獲取攝像裝置數(shù)據(jù)的同時(shí),實(shí)時(shí)獲取音效器的音頻數(shù)據(jù),將音效器的音頻數(shù)據(jù)與第一視頻數(shù)據(jù)封裝成音視頻數(shù)據(jù)。
進(jìn)一步的,還包括傳輸單元,用于通過(guò)實(shí)時(shí)流傳輸協(xié)議,將所述音視頻數(shù)據(jù)直播給局域網(wǎng)中的在線客戶端;
或用于通過(guò)實(shí)時(shí)流傳輸協(xié)議,將所述音視頻數(shù)據(jù)發(fā)送給第三方網(wǎng)絡(luò)服務(wù)器;
第三方網(wǎng)絡(luò)服務(wù)器生成所述音視頻數(shù)據(jù)的互聯(lián)網(wǎng)直播鏈接。
進(jìn)一步的,還包括互動(dòng)單元,用于接收客戶端發(fā)送的互動(dòng)指令,從及根據(jù)互動(dòng)指令更新或切換虛擬場(chǎng)景。
進(jìn)一步的,所述合成圖像編碼單元對(duì)所述渲染圖像進(jìn)行合成圖像編碼操包括,使用硬件編碼模塊截取所述渲染圖像,以及對(duì)所截取的渲染圖像進(jìn)行壓縮編碼。
區(qū)別于現(xiàn)有技術(shù),美顏處理是對(duì)直播圖像中的每個(gè)像素點(diǎn)進(jìn)行處理運(yùn)算,或?qū)χ辈サ囊曨l流進(jìn)行美顏處理,處理的數(shù)據(jù)量大,延遲時(shí)間長(zhǎng);上述技術(shù)方案先將攝像裝置的數(shù)據(jù)轉(zhuǎn)換成紋理圖像,并將紋理圖像更新至虛擬場(chǎng)景中,然后在虛擬場(chǎng)景渲染階段,通過(guò)GPU識(shí)別第一對(duì)象,并對(duì)第一對(duì)象進(jìn)行美顏處理,得到渲染圖像,其中,GPU進(jìn)行圖像渲染以及第一對(duì)象的識(shí)別與美顏處理是并行進(jìn)行的,該技術(shù)方案將第一對(duì)象的識(shí)別以及美顏處理放到圖像渲染階段中,通過(guò)GPU同時(shí)并行進(jìn)行,從而大大降低了虛擬場(chǎng)景直播時(shí)美顏處理的延遲時(shí)間。
附圖說(shuō)明
圖1為具體實(shí)施方式所述對(duì)虛擬場(chǎng)景直播進(jìn)行美顏處理的方法的流程圖;
圖2為具體實(shí)施方式中得到渲染圖像后進(jìn)行網(wǎng)絡(luò)直播的操作流程圖;
圖3具體實(shí)施方式所述對(duì)虛擬場(chǎng)景直播進(jìn)行美顏處理的系統(tǒng)的模塊框圖;
圖4具體實(shí)施方式所述對(duì)虛擬場(chǎng)景直播進(jìn)行美顏處理的系統(tǒng)的模塊框圖;
圖5具體實(shí)施方式所述網(wǎng)絡(luò)虛擬場(chǎng)景直播系統(tǒng)的示意圖。
附圖標(biāo)記說(shuō)明:
10、解析單元
20、更新單元
30、渲染單元
40、合成圖像編碼單元
50、封裝單元
501、攝像裝置
502、傳聲器
503、視頻解碼器
504、Unity端
505、錄制服務(wù)器
506、RTSP服務(wù)器
507、客戶端
508、第三方服務(wù)器
具體實(shí)施方式
為詳細(xì)說(shuō)明技術(shù)方案的技術(shù)內(nèi)容、構(gòu)造特征、所實(shí)現(xiàn)目的及效果,以下結(jié)合具體實(shí)施例并配合附圖詳予說(shuō)明。
請(qǐng)參閱圖1,本實(shí)施例一種對(duì)虛擬場(chǎng)景直播進(jìn)行美顏處理的方法,該方法可應(yīng)用于通過(guò)網(wǎng)絡(luò)進(jìn)行真人與虛擬場(chǎng)景相結(jié)合的視頻直播節(jié)目,包括以下步驟:
S101、實(shí)時(shí)獲取攝像裝置的數(shù)據(jù),得到第一圖像數(shù)據(jù)。具體的,對(duì)所述攝像裝置的數(shù)據(jù)進(jìn)行解碼,并在每獲得到一幀完整的解碼圖像數(shù)據(jù)時(shí),將圖像數(shù)據(jù)放至數(shù)據(jù)緩沖區(qū)中。在某些實(shí)施例中,使用FFMPEG+mediacodec的組合對(duì)攝像裝置的實(shí)時(shí)數(shù)據(jù)流進(jìn)行讀取、解碼、并實(shí)時(shí)更新到緩沖區(qū)中。FFMPEG+mediacodec是android平臺(tái)下實(shí)現(xiàn)硬編碼硬解碼的類,能明顯提升數(shù)據(jù)流編解碼的速度。
S102、將第一圖像數(shù)據(jù)轉(zhuǎn)換成紋理圖像,并將所述紋理圖像更新至虛擬場(chǎng)景中。其中,所述紋理圖像是指具有紋理的圖像,紋理是計(jì)算機(jī)圖形學(xué)名詞,是一種反映圖像中同質(zhì)現(xiàn)象的視覺(jué)特征,它體現(xiàn)了物體表面的具有緩慢變化或者周期性變化的表面結(jié)構(gòu)組織排列屬性。紋理又稱紋理貼圖,是貼在物體表面,體現(xiàn)物體表面細(xì)節(jié)的一幅或多幅二維圖形。紋理具有三大標(biāo)志:某種局部序列性不斷重復(fù)、非隨機(jī)排列、紋理區(qū)域內(nèi)大致為均勻的統(tǒng)一體。紋理不同于灰度、顏色等圖像特征,它通過(guò)像素及其周圍空間鄰域的灰度分布來(lái)表現(xiàn),即:局部紋理信息。局部紋理信息不同程度的重復(fù)性,即全局紋理信息。
在實(shí)施例中,將所述紋理圖像更新至虛擬場(chǎng)景中,可以是將紋理圖像以紋理的形式體現(xiàn)在虛擬場(chǎng)景的一個(gè)平面中。所述虛擬場(chǎng)景包括計(jì)算機(jī)模擬的虛擬現(xiàn)實(shí)場(chǎng)景或真實(shí)拍攝的視頻場(chǎng)景等。更進(jìn)一步的,實(shí)施例還可以結(jié)合新近發(fā)展的3D圖像技術(shù)來(lái)提供虛擬場(chǎng)景,例如3D虛擬現(xiàn)實(shí)場(chǎng)景或3D視頻場(chǎng)景。
3D虛擬現(xiàn)實(shí)場(chǎng)景技術(shù)是一種可以創(chuàng)建和體驗(yàn)虛擬世界的計(jì)算機(jī)仿真系統(tǒng),它利用計(jì)算機(jī)生成一種現(xiàn)實(shí)場(chǎng)景的3D模擬場(chǎng)景,是一種多源信息融合的交互式的三維動(dòng)態(tài)視景和實(shí)體行為的系統(tǒng)仿真。虛擬場(chǎng)景包括任何現(xiàn)實(shí)生活中存在的實(shí)際場(chǎng)景,包含視覺(jué)、聽(tīng)覺(jué)等任何能通過(guò)體感感受到的場(chǎng)景,通過(guò)計(jì)算機(jī)技術(shù)來(lái)模擬實(shí)現(xiàn)。3D虛擬現(xiàn)實(shí)場(chǎng)景的一種應(yīng)用是3D虛擬舞臺(tái),3D虛擬舞臺(tái)是通過(guò)計(jì)算機(jī)技術(shù)模擬現(xiàn)實(shí)舞臺(tái),實(shí)現(xiàn)一種立體感、真實(shí)感強(qiáng)的舞臺(tái)效果??梢酝ㄟ^(guò)3D虛擬舞臺(tái)實(shí)現(xiàn),在現(xiàn)實(shí)中不在舞臺(tái)上的主播對(duì)象在各種舞臺(tái)上進(jìn)行表演的場(chǎng)景效果。
3D視頻是拍攝影像時(shí),用兩臺(tái)攝影機(jī)模擬左右兩眼視差,分別拍攝兩條影片,然后將這兩條影片同時(shí)放映到銀幕上,放映時(shí)讓觀眾左眼只能看到左眼圖像,右眼只能看到右眼圖像。最后兩幅圖像經(jīng)過(guò)大腦疊合后,就能看到具有立體縱深感的畫(huà)面,即為3D視頻。
S103、通過(guò)GPU從紋理圖像中識(shí)別出第一對(duì)象,將紋理圖像除第一對(duì)象外的剩余部分透明化,然后對(duì)第一對(duì)象進(jìn)行美顏處理,再對(duì)美顏后的第一對(duì)象及所述虛擬場(chǎng)景進(jìn)行渲染,得到渲染圖像。其中,第一對(duì)象為攝像裝置所拍攝的圖像中的對(duì)象。在不同的實(shí)施例中根據(jù)需要,第一對(duì)象可以是不同的具體對(duì)象,例如第一對(duì)象可以是真人主播,可以是寵物動(dòng)物等;第一對(duì)象的數(shù)量可以是單個(gè),也可以是2個(gè)以上。根據(jù)這些實(shí)際需求的不同,可以使用不同的算法和設(shè)置,以有效地在虛擬場(chǎng)景中提取第一對(duì)象。由于第一對(duì)象是在第一圖像數(shù)據(jù)內(nèi),因此,從虛擬場(chǎng)景中提取第一對(duì)象,實(shí)際上就是從第一圖像數(shù)據(jù)中提取第一對(duì)象。以下通過(guò)一具體提取第一對(duì)象的算法實(shí)施例進(jìn)行舉例說(shuō)明。
在某一實(shí)施例中,第一圖像數(shù)據(jù)中,第一對(duì)象為人物主播,主播所處的背景為純色背景。識(shí)別虛擬場(chǎng)景中第一對(duì)象的具體步驟為:GPU將紋理圖像中的每個(gè)像素的顏色值與預(yù)設(shè)的閾值做比較;若像素的顏色值在預(yù)設(shè)的閾值內(nèi),則該像素點(diǎn)不屬于第一對(duì)象,并將該像素點(diǎn)的Alpha通道設(shè)為零,即將背景顯示為透明色;若像素的顏色值在預(yù)設(shè)的閾值外,則該像素點(diǎn)屬于第一對(duì)象,該像素點(diǎn)的Alpha通道設(shè)為1,即保留該像素點(diǎn)從而識(shí)別并提取出對(duì)象。
由于背景為純色,所以本實(shí)施例采用色度鍵法進(jìn)行摳圖。其中預(yù)設(shè)的閾值為背景顏色的顏色值,例如,背景顏色為綠色,則預(yù)設(shè)的像素點(diǎn)RGB顏色值的閾值為(0±10、255-10、0±10)。背景色可以選擇綠色或藍(lán)色,在拍攝的場(chǎng)所可同時(shí)設(shè)置兩種顏色的背景,供主播選擇。當(dāng)主播穿與綠色反差較大的衣服唱歌時(shí),可選用綠色的背景。在對(duì)象(人像)提取過(guò)程中,由于主播穿的衣服與背景色相差較大,所以圖像中的每個(gè)像素的顏色值與預(yù)設(shè)的閾值進(jìn)行比較后,背景部分像素點(diǎn)的顏色值在預(yù)設(shè)的閾值內(nèi),將背景部分像素點(diǎn)的Alpha通道設(shè)為零,即將背景顯示為透明色;而人像部分的像素點(diǎn)不在預(yù)設(shè)的閾值內(nèi),保留人像部分,從而實(shí)現(xiàn)將紋理圖像中的背景部分透明化。
在對(duì)象(人像)提取過(guò)程中,還可設(shè)置閾值區(qū)間,當(dāng)像素的顏色值大于上限值時(shí),將該像素點(diǎn)的Alpha通道設(shè)為零,即將背景顯示為透明色;當(dāng)當(dāng)像素的顏色值小于下限值時(shí),將該像素點(diǎn)的Alpha通道設(shè)為1,即保留人像部分;當(dāng)像素的顏色值介于上限和下限之間,認(rèn)為該像素是過(guò)渡色(一半出現(xiàn)在圖像邊緣處),這時(shí)使用線性函數(shù)將該像素的alpha通道設(shè)置為0~1中的一個(gè)。過(guò)渡色的設(shè)定有利于摳出來(lái)的人像和虛擬場(chǎng)景進(jìn)行更自然的融合。
所述美顏處理是指,對(duì)所選擇的對(duì)象進(jìn)行處理以提高其顏值,在不同的實(shí)施例中根據(jù)需要,所述對(duì)第一對(duì)象進(jìn)行美顏處理可以包括皮膚磨皮處理、臉部去斑處理和加亮處理。本發(fā)明的美顏操作均可通過(guò)shader實(shí)現(xiàn)GPU對(duì)第一對(duì)象的識(shí)別以及進(jìn)行美顏處理。以人物為美顏對(duì)象為例,首先在shader程序中,先從人物對(duì)象中識(shí)別出皮膚部分,皮膚識(shí)別可利用人類皮膚在YCbCr顏色空間的呈現(xiàn)高斯分布的特點(diǎn),對(duì)皮膚和非皮膚區(qū)域進(jìn)行分割。其中,所述Shader(又稱著色器)是一段能夠針對(duì)3D對(duì)象進(jìn)行操作、并被GPU所執(zhí)行的程序。在識(shí)別出皮膚之后可進(jìn)行磨皮處理,磨皮處理是使用雙邊濾波算法,對(duì)皮膚進(jìn)行平滑處理,平滑皮膚區(qū)域的同時(shí)避免邊緣鈍化。在磨皮處理之后可進(jìn)行加亮處理,加亮部分采用LOG曲線進(jìn)行整體像素的增益校正,避免圖像變化過(guò)于生硬。
所述圖像渲染是利用計(jì)算機(jī)技術(shù)進(jìn)行視覺(jué)設(shè)計(jì)的最后一道工序(當(dāng)然,除了后期制作),也是使設(shè)計(jì)的圖像以3D視覺(jué)進(jìn)行呈現(xiàn)的階段。
在實(shí)施例中,將攝像裝置的數(shù)據(jù)轉(zhuǎn)換成紋理圖像,并將紋理圖像更新至虛擬場(chǎng)景中,然后在虛擬場(chǎng)景渲染階段;所述第一對(duì)象的識(shí)別與美顏,都是在圖像渲染階段通過(guò)GPU并行執(zhí)行的,不占用CPU時(shí)間,提高系統(tǒng)速度;并且由于GPU是專門對(duì)圖像進(jìn)行處理的硬件,對(duì)不同大小的像素運(yùn)算時(shí)間一樣,例如,8位、16位、32位的像素運(yùn)算時(shí)間均一樣,可大大節(jié)省了對(duì)像素的運(yùn)算時(shí)間;而普通的CPU會(huì)隨像素大小的增大延長(zhǎng)處理時(shí)間,所以本實(shí)施例的人像提取速度大大提高。上述的區(qū)別點(diǎn)使得本實(shí)施例中還可以采用帶有GPU的嵌入式設(shè)備實(shí)現(xiàn),即使嵌入式方案中的CPU性能較弱,但是應(yīng)用本實(shí)施例的方案,嵌入式設(shè)備方案仍然能實(shí)現(xiàn)流暢顯示,因?yàn)槿羰褂肅PU從第一圖像數(shù)據(jù)中提取第一對(duì)象,CPU需進(jìn)行讀取攝像裝置獲取的視頻,并進(jìn)行摳圖等處理,CPU負(fù)擔(dān)太重,無(wú)法進(jìn)行流暢的顯示。而本實(shí)施例應(yīng)用于嵌入式方案中,將上述摳圖處理放入GPU中進(jìn)行,既減輕了CPU的負(fù)擔(dān),同時(shí)不會(huì)對(duì)GPU的運(yùn)行造成影響。
請(qǐng)參閱圖2,在一些實(shí)施例中,在得到渲染圖像之后還包括步驟:
S201、對(duì)所述渲染圖像進(jìn)行合成圖像編碼操作,得到第一視頻數(shù)據(jù);
S202、以及將第一視頻數(shù)據(jù)與音頻數(shù)據(jù)封裝成音視頻數(shù)據(jù),其中,所述音頻數(shù)據(jù)是在獲取攝像裝置數(shù)據(jù)的同時(shí),通過(guò)音效器實(shí)時(shí)獲取的。
其中,所述對(duì)所述渲染圖像進(jìn)行合成圖像編碼操作,包括步驟:
通過(guò)安卓、ios或windows等設(shè)備自帶的硬件編碼模塊截取所述渲染圖像,以及對(duì)所截取的渲染圖像進(jìn)行壓縮編碼。
而在獲取所述音頻數(shù)據(jù)時(shí),音效器獲取音頻數(shù)據(jù),并將音頻數(shù)據(jù)編碼成便于網(wǎng)絡(luò)傳輸?shù)囊纛l格式。在一些直播應(yīng)用的實(shí)施例中,所述音頻數(shù)據(jù)主要為直播者演唱的聲音及歌曲伴奏的混合聲音。
在上述實(shí)施例中,所述合成圖像編碼操作、獲取音頻數(shù)據(jù)以及封裝操作是由不同的設(shè)備分別完成,從而保證數(shù)據(jù)處理的速率與實(shí)時(shí)性。而在一些實(shí)施例中,上述合成圖像編碼操作、獲取音頻數(shù)據(jù)以及封裝操作也可在同一服務(wù)器上完成。
封裝所得到的音視頻數(shù)據(jù)即可用于網(wǎng)絡(luò)直播、顯示或存儲(chǔ)。其中,網(wǎng)絡(luò)直播是將封裝好的音視頻數(shù)據(jù)傳送給實(shí)時(shí)數(shù)據(jù)流服務(wù)器(即RTSP服務(wù)器),由實(shí)時(shí)數(shù)據(jù)流服務(wù)器在局域網(wǎng)內(nèi)直播或互聯(lián)網(wǎng)外直播。
在局域網(wǎng)內(nèi)直播時(shí),實(shí)時(shí)數(shù)據(jù)流服務(wù)器檢測(cè)是否有客戶端連接于該服務(wù)器,以及是否有播放請(qǐng)求,在檢測(cè)到有客戶端連接,并接收到播放請(qǐng)求時(shí),通過(guò)實(shí)時(shí)流傳輸協(xié)議,將所述音視頻數(shù)據(jù)發(fā)送給局域網(wǎng)在線客戶端。所述客戶端可以是各種支持RTSP的播放器,如PC機(jī)、平板電腦、智能手機(jī)等。客戶端在接收到實(shí)時(shí)流服務(wù)器傳來(lái)的音視頻數(shù)據(jù)后,進(jìn)行解碼即可進(jìn)行播放,播放的內(nèi)容即為直播對(duì)象與虛擬場(chǎng)景相結(jié)合渲染的畫(huà)面;音視頻數(shù)據(jù)中的音頻數(shù)據(jù)解碼后,通過(guò)揚(yáng)聲器播放即為演唱者演唱的聲音及伴奏。
在互聯(lián)網(wǎng)直播時(shí),實(shí)時(shí)數(shù)據(jù)流服務(wù)器通過(guò)實(shí)時(shí)流傳輸協(xié)議,將所述音視頻數(shù)據(jù)發(fā)送給第三方網(wǎng)絡(luò)服務(wù)器,由第三方網(wǎng)絡(luò)服務(wù)器生成所述音視頻數(shù)據(jù)的直播鏈接。客戶端通過(guò)點(diǎn)擊所述直播鏈接,即可獲取所述音視頻數(shù)據(jù)的實(shí)時(shí)數(shù)據(jù)流,并通過(guò)解碼播放。
在一些實(shí)施例中,客戶端還可通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)發(fā)送互動(dòng)指令與主播進(jìn)行虛擬場(chǎng)景互動(dòng)。主播端接收到客戶端發(fā)送的互動(dòng)指令時(shí),可根據(jù)互動(dòng)指令更新或切換虛擬場(chǎng)景,并在渲染階段對(duì)新的虛擬場(chǎng)景與第一對(duì)象進(jìn)行渲染。其中,所述計(jì)算機(jī)網(wǎng)絡(luò)可以是Internet網(wǎng)絡(luò)也可以是局域網(wǎng),可以是由有線網(wǎng)絡(luò)、WiFi網(wǎng)絡(luò)、3G/4G移動(dòng)通訊網(wǎng)絡(luò)、藍(lán)牙網(wǎng)絡(luò)或ZigBee網(wǎng)絡(luò)等進(jìn)行連接。
在不同虛擬場(chǎng)景中互動(dòng)的實(shí)施例中,互動(dòng)指令可以包括不同的內(nèi)容,在某些實(shí)施例中,所述互動(dòng)指令包括將第一素材更新到虛擬場(chǎng)景中的命令。具體為:在將第一對(duì)象實(shí)時(shí)更新到虛擬場(chǎng)景的同時(shí),根據(jù)所述互動(dòng)指令,將第一素材也更新到虛擬場(chǎng)景中,并對(duì)美顏后的第一對(duì)象及所述虛擬場(chǎng)景進(jìn)行渲染,得到渲染圖像。
所述第一素材可以為圖像素材、聲音素材或者圖像素材與聲音素材的結(jié)合。以網(wǎng)絡(luò)直播為例,所述第一素材包括有虛擬禮物、點(diǎn)贊、背景音、喝彩等,網(wǎng)絡(luò)直播的觀眾可通過(guò)移動(dòng)手機(jī),向主播送鮮花等虛擬禮物的互動(dòng)指令,所送的禮物將以鮮花圖片的形式在虛擬場(chǎng)景中體現(xiàn)出來(lái)。網(wǎng)絡(luò)直播的觀眾還可以通過(guò)移動(dòng)手機(jī),向主播發(fā)送鼓掌的互動(dòng)指令,鼓掌的互動(dòng)指令將以掌聲的形式進(jìn)行播放。
這些第一素材可以是系統(tǒng)預(yù)置的,供給用戶選擇使用,而在某些實(shí)施例中,所述互動(dòng)指令除了包括將第一素材更新到虛擬場(chǎng)景中的命令,還可包括了第一素材的內(nèi)容數(shù)據(jù)。例如觀眾在通過(guò)移動(dòng)終端上傳一個(gè)贈(zèng)送虛擬禮物的互動(dòng)指令,以及在互動(dòng)指令中還包含了一張所贈(zèng)送虛擬禮物的圖片,在接收到所述互動(dòng)指令后,將所述禮物的圖片更新至虛擬場(chǎng)景中。因此觀眾在發(fā)送互動(dòng)指令時(shí),除了可以選擇互動(dòng)的方式,還可以根據(jù)自己的喜好自定義第一素材的內(nèi)容數(shù)據(jù),如喜歡的圖片素材、聲音素材或圖片與聲音結(jié)合的素材。
在一些實(shí)施例中,所述互動(dòng)指令還包括變換虛擬場(chǎng)景鏡頭的命令,所述變換虛擬場(chǎng)景鏡頭的命令包括有切換虛擬場(chǎng)景鏡頭的視角,改變虛擬場(chǎng)景鏡頭焦距以及對(duì)虛擬場(chǎng)景進(jìn)行局部模糊處理等。通過(guò)切換虛擬場(chǎng)景鏡頭的視角,可以模擬從不同視角觀看虛擬場(chǎng)景的畫(huà)面;通過(guò)改變虛擬場(chǎng)景鏡頭焦距,可對(duì)拉近和推遠(yuǎn)虛擬場(chǎng)景的畫(huà)面;而對(duì)對(duì)虛擬場(chǎng)景進(jìn)行局部模糊處理,可使虛擬場(chǎng)景中未模糊處理部分畫(huà)面被突出顯示。通過(guò)所述變換虛擬場(chǎng)景鏡頭的命令,可大大提高觀眾的互動(dòng)程度和趣味性。
上述虛擬場(chǎng)景互動(dòng)的實(shí)施例中,可以根據(jù)客戶端發(fā)送的互動(dòng)指令,對(duì)虛擬場(chǎng)景進(jìn)行更新或切換,以實(shí)現(xiàn)在得到的渲染圖像中既具有豐富多彩的場(chǎng)景變化效果,又同時(shí)保存有第一對(duì)象的實(shí)時(shí)活動(dòng)效果。上述技術(shù)方案中觀眾可通過(guò)客戶端發(fā)送互動(dòng)指令,在主播端將互動(dòng)的內(nèi)容與第一對(duì)象更新至虛擬場(chǎng)景中,使互動(dòng)內(nèi)容、主播對(duì)象以及虛擬場(chǎng)景融合在一起,因此各第一終端均可看到互動(dòng)的效果,其中互動(dòng)的內(nèi)容是在主播端就融合至虛擬場(chǎng)景中,因此,各觀眾的客戶端無(wú)需從服務(wù)器下載互動(dòng)素材,從而便于互動(dòng)內(nèi)容的擴(kuò)展。
請(qǐng)參閱圖3,另一實(shí)施例為一種對(duì)虛擬場(chǎng)景直播進(jìn)行美顏處理的系統(tǒng),該虛擬場(chǎng)景直播進(jìn)行美顏處理的系統(tǒng)可用于通過(guò)網(wǎng)絡(luò)進(jìn)行真人與虛擬場(chǎng)景相結(jié)合的視頻直播節(jié)目,該系統(tǒng)包括:
解析單元10,用于實(shí)時(shí)獲取攝像裝置的數(shù)據(jù),得到第一圖像數(shù)據(jù)。對(duì)所述攝像裝置的數(shù)據(jù)進(jìn)行解碼,并在每獲得到一幀完整的解碼圖像數(shù)據(jù)時(shí),將圖像數(shù)據(jù)放至數(shù)據(jù)緩沖區(qū)中。在某些實(shí)施例中,使用FFMPEG+mediacodec的組合對(duì)攝像裝置的實(shí)時(shí)數(shù)據(jù)流進(jìn)行讀取、解碼、并實(shí)時(shí)更新到緩沖區(qū)中。FFMPEG+mediacodec是android平臺(tái)下實(shí)現(xiàn)硬編碼硬解碼的類,能明顯提升數(shù)據(jù)流編解碼的速度。
更新單元20,用于將第一圖像數(shù)據(jù)轉(zhuǎn)換成紋理圖像,并將所述紋理圖像更新至虛擬場(chǎng)景中。在實(shí)施例中,將所述紋理圖像更新至虛擬場(chǎng)景中,可以是將紋理圖像以紋理的形式體現(xiàn)在虛擬場(chǎng)景的一個(gè)平面中。更進(jìn)一步的,實(shí)施例還可以結(jié)合新近發(fā)展的3D圖像技術(shù)來(lái)提供虛擬場(chǎng)景,例如3D虛擬現(xiàn)實(shí)場(chǎng)景或3D視頻場(chǎng)景。
渲染單元30,用于通過(guò)GPU從紋理圖像中識(shí)別出第一對(duì)象,將紋理圖像除第一對(duì)象外的剩余部分透明化,然后對(duì)第一對(duì)象進(jìn)行美顏處理,再對(duì)美顏后的第一對(duì)象及所述虛擬場(chǎng)景進(jìn)行渲染,得到渲染圖像。其中,第一對(duì)象為攝像裝置所拍攝的圖像中的對(duì)象。在不同的實(shí)施例中根據(jù)需要,第一對(duì)象可以是不同的具體對(duì)象,例如第一對(duì)象可以是真人主播,可以是寵物動(dòng)物等;第一對(duì)象的數(shù)量可以是單個(gè),也可以是2個(gè)以上。所述對(duì)第一對(duì)象進(jìn)行美顏處理可以包括皮膚磨皮處理、臉部去斑處理和加亮處理。
在實(shí)施例中,將攝像裝置的數(shù)據(jù)轉(zhuǎn)換成紋理圖像,并將紋理圖像更新至虛擬場(chǎng)景中,然后在虛擬場(chǎng)景渲染階段;所述第一對(duì)象的提取與美顏,都是在圖像渲染階段通過(guò)GPU并行執(zhí)行的,由于GPU是專門對(duì)圖像進(jìn)行處理的硬件,對(duì)不同大小的像素運(yùn)算時(shí)間一樣,不僅不占用CPU時(shí)間,而且可大大節(jié)省了對(duì)像素的運(yùn)算時(shí)間,從而有效降低了虛擬場(chǎng)景直播時(shí)美顏處理的延遲時(shí)間。
請(qǐng)參閱圖4,在一些實(shí)施例中,對(duì)虛擬場(chǎng)景直播進(jìn)行美顏處理的系統(tǒng)還包括:
合成圖像編碼單元40,用于對(duì)所述渲染圖像進(jìn)行合成圖像編碼操作,得到第一視頻數(shù)據(jù);以及
封裝單元50,用于獲取攝像裝置數(shù)據(jù)的同時(shí),實(shí)時(shí)獲取傳聲器的數(shù)據(jù),將聲效器的數(shù)據(jù)與第一視頻數(shù)據(jù)封裝成音視頻數(shù)據(jù)。
合成圖像編碼單元通過(guò)合成圖像編碼服務(wù)器的硬件編碼模塊截取所述渲染圖像,以及對(duì)所截取的渲染圖像進(jìn)行壓縮編碼。
而在獲取所述音頻數(shù)據(jù)時(shí),音效器獲取音頻數(shù)據(jù),并將音頻數(shù)據(jù)編碼成便于網(wǎng)絡(luò)傳輸?shù)囊纛l格式。在一些直播應(yīng)用的實(shí)施例中,所述音頻數(shù)據(jù)主要為直播者演唱的聲音及歌曲伴奏的混合聲音。
在上述實(shí)施例中,所述合成圖像編碼操作、獲取音頻數(shù)據(jù)以及封裝操作是由不同的設(shè)備分別完成,從而保證數(shù)據(jù)處理的速率與實(shí)時(shí)性。而在一些實(shí)施例中,上述合成圖像編碼操作、獲取音頻數(shù)據(jù)以及封裝操作也可在同一服務(wù)器上完成。
對(duì)虛擬場(chǎng)景直播進(jìn)行美顏處理的系統(tǒng)還包括傳輸單元,用于通過(guò)實(shí)時(shí)流傳輸協(xié)議,在局域網(wǎng)內(nèi)直播或互聯(lián)網(wǎng)外直播。
在局域網(wǎng)內(nèi)直播時(shí),實(shí)時(shí)數(shù)據(jù)流服務(wù)器檢測(cè)是否有客戶端連接于該服務(wù)器,以及是否有播放請(qǐng)求,在檢測(cè)到有客戶端連接,并接收到播放請(qǐng)求時(shí),通過(guò)實(shí)時(shí)流傳輸協(xié)議,將所述音視頻數(shù)據(jù)發(fā)送給局域網(wǎng)中在線客戶端??蛻舳嗽诮邮盏綄?shí)時(shí)流服務(wù)器傳來(lái)的音視頻數(shù)據(jù)后,進(jìn)行解碼即可進(jìn)行播放,播放的內(nèi)容即為直播對(duì)象與虛擬場(chǎng)景相結(jié)合渲染的畫(huà)面;音視頻數(shù)據(jù)中的音頻數(shù)據(jù)解碼后,通過(guò)揚(yáng)聲器播放即為演唱者演唱的聲音及伴奏。
在互聯(lián)網(wǎng)直播時(shí),,實(shí)時(shí)數(shù)據(jù)流服務(wù)器通過(guò)實(shí)時(shí)流傳輸協(xié)議,將所述音視頻數(shù)據(jù)發(fā)送給第三方網(wǎng)絡(luò)服務(wù)器,由第三方網(wǎng)絡(luò)服務(wù)器生成所述音視頻數(shù)據(jù)的互聯(lián)網(wǎng)直播鏈接??蛻舳送ㄟ^(guò)點(diǎn)擊所述鏈接,即可獲取所述音視頻數(shù)據(jù)的實(shí)時(shí)數(shù)據(jù)流,并通過(guò)解碼播放。
在一些實(shí)施例中,所述對(duì)虛擬場(chǎng)景直播進(jìn)行美顏處理的系統(tǒng)還包括互動(dòng)單元,用于接收客戶端發(fā)送的互動(dòng)指令,從及根據(jù)互動(dòng)指令更新或切換虛擬場(chǎng)景。因此客戶端可通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)發(fā)送互動(dòng)指令與主播進(jìn)行虛擬場(chǎng)景互動(dòng)。主播端接收到客戶端發(fā)送的互動(dòng)指令時(shí),可根據(jù)互動(dòng)指令更新或切換虛擬場(chǎng)景,并在渲染階段對(duì)新的虛擬場(chǎng)景與第一對(duì)象進(jìn)行渲染。其中,所述計(jì)算機(jī)網(wǎng)絡(luò)可以是Internet網(wǎng)絡(luò)也可以是局域網(wǎng),可以是由有線網(wǎng)絡(luò)、WiFi網(wǎng)絡(luò)、3G/4G移動(dòng)通訊網(wǎng)絡(luò)、藍(lán)牙網(wǎng)絡(luò)或ZigBee網(wǎng)絡(luò)等進(jìn)行連接。
在不同虛擬場(chǎng)景中互動(dòng)的實(shí)施例中,互動(dòng)指令可以包括不同的內(nèi)容,在某些實(shí)施例中,所述互動(dòng)指令包括將第一素材更新到虛擬場(chǎng)景中的命令。具體為:在將第一對(duì)象實(shí)時(shí)更新到虛擬場(chǎng)景的同時(shí),根據(jù)所述互動(dòng)指令,將第一素材也更新到虛擬場(chǎng)景中,并對(duì)美顏后的第一對(duì)象及所述虛擬場(chǎng)景進(jìn)行渲染,得到渲染圖像。
所述第一素材可以為圖像素材、聲音素材或者圖像素材與聲音素材的結(jié)合。以網(wǎng)絡(luò)直播為例,所述第一素材包括有虛擬禮物、點(diǎn)贊、背景音、喝彩等,網(wǎng)絡(luò)直播的觀眾可通過(guò)移動(dòng)手機(jī),向主播送鮮花等虛擬禮物的互動(dòng)指令,所送的禮物將以鮮花圖片的形式在虛擬場(chǎng)景中體現(xiàn)出來(lái)。網(wǎng)絡(luò)直播的觀眾還可以通過(guò)移動(dòng)手機(jī),向主播發(fā)送鼓掌的互動(dòng)指令,鼓掌的互動(dòng)指令將以掌聲的形式進(jìn)行播放。
這些第一素材可以是系統(tǒng)預(yù)置的,供給用戶選擇使用,而在某些實(shí)施例中,所述互動(dòng)指令除了包括將第一素材更新到虛擬場(chǎng)景中的命令,還可包括了第一素材的內(nèi)容數(shù)據(jù)。例如觀眾在通過(guò)移動(dòng)終端上傳一個(gè)贈(zèng)送虛擬禮物的互動(dòng)指令,以及在互動(dòng)指令中還包含了一張所贈(zèng)送虛擬禮物的圖片,在接收到所述互動(dòng)指令后,將所述禮物的圖片更新至虛擬場(chǎng)景中。因此觀眾在發(fā)送互動(dòng)指令時(shí),除了可以選擇互動(dòng)的方式,還可以根據(jù)自己的喜好自定義第一素材的內(nèi)容數(shù)據(jù),如喜歡的圖片素材、聲音素材或圖片與聲音結(jié)合的素材。
在一些實(shí)施例中,所述互動(dòng)指令還包括變換虛擬場(chǎng)景鏡頭的命令,所述變換虛擬場(chǎng)景鏡頭的命令包括有切換虛擬場(chǎng)景鏡頭的視角,改變虛擬場(chǎng)景鏡頭焦距以及對(duì)虛擬場(chǎng)景進(jìn)行局部模糊處理等。通過(guò)切換虛擬場(chǎng)景鏡頭的視角,可以模擬從不同視角觀看虛擬場(chǎng)景的畫(huà)面;通過(guò)改變虛擬場(chǎng)景鏡頭焦距,可對(duì)拉近和推遠(yuǎn)虛擬場(chǎng)景的畫(huà)面;而對(duì)對(duì)虛擬場(chǎng)景進(jìn)行局部模糊處理,可使虛擬場(chǎng)景中未模糊處理部分畫(huà)面被突出顯示。通過(guò)所述變換虛擬場(chǎng)景鏡頭的命令,可大大提高觀眾的互動(dòng)程度和趣味性。
上述虛擬場(chǎng)景互動(dòng)的實(shí)施例中,可以根據(jù)客戶端發(fā)送的互動(dòng)指令,對(duì)虛擬場(chǎng)景進(jìn)行更新或切換,以實(shí)現(xiàn)在得到的渲染圖像中既具有豐富多彩的場(chǎng)景變化效果,又同時(shí)保存有第一對(duì)象的實(shí)時(shí)活動(dòng)效果。上述技術(shù)方案中觀眾可通過(guò)客戶端發(fā)送互動(dòng)指令,在主播端將互動(dòng)的內(nèi)容與第一對(duì)象更新至虛擬場(chǎng)景中,使互動(dòng)內(nèi)容、主播對(duì)象以及虛擬場(chǎng)景融合在一起,因此各第一終端均可看到互動(dòng)的效果,其中互動(dòng)的內(nèi)容是在主播端就融合至虛擬場(chǎng)景中,因此,各觀眾的客戶端無(wú)需從服務(wù)器下載互動(dòng)素材,從而便于互動(dòng)內(nèi)容的擴(kuò)展。
請(qǐng)參閱圖5,為一實(shí)施例中網(wǎng)絡(luò)虛擬場(chǎng)景直播系統(tǒng)的示意圖,該網(wǎng)絡(luò)虛擬場(chǎng)景直播系統(tǒng)可對(duì)直播對(duì)象進(jìn)行美顏處理,并進(jìn)行實(shí)時(shí)直播,該系統(tǒng)包括有攝像裝置501、聲效器502、視頻解碼器503、Unity端504、錄制服務(wù)器505、RTSP服務(wù)器506、第三方服務(wù)器508和客戶端507。
其中,攝像裝置501用于獲取直播對(duì)象的視頻數(shù)據(jù)。
聲效器502用于獲取直播對(duì)象的音頻數(shù)據(jù)。
所述視頻解碼器503用于對(duì)攝像裝置501所獲取的視頻數(shù)據(jù)進(jìn)行解碼,并在每獲取一幀完整的圖像數(shù)據(jù)(YCrCb格式)時(shí),將圖像數(shù)據(jù)放到解碼器的緩沖區(qū)中;所述視頻解碼器503還用于將解碼得到的圖像數(shù)據(jù),轉(zhuǎn)換成紋理貼圖,并傳遞給Unity端504。其中,視頻解碼器503使用FFMPEG+mediacodec(android平臺(tái)下實(shí)現(xiàn)硬編碼硬解碼的類)的組合對(duì)網(wǎng)絡(luò)攝像頭的視頻數(shù)據(jù)流進(jìn)行讀取、解碼、并實(shí)時(shí)更新到緩沖區(qū)中,從而明顯提升編解碼速度。視頻解碼器503使用GLES來(lái)給攝像頭數(shù)據(jù)生成紋理貼圖。其中,所述GLES即為OpenGL ES(英文全稱為:OpenGL for Embedded Systems),是OpenGL三維圖形API的子集,是針對(duì)手機(jī)、PDA和游戲主機(jī)等嵌入式設(shè)備而設(shè)計(jì),GLES2.0是GLES的一個(gè)版本。
Unity端504集成為GPU,并安裝有Unity3D軟件,Unity3D軟件是由Unity Technologies開(kāi)發(fā)的一個(gè)讓玩家輕松創(chuàng)建諸如三維視頻游戲、建筑可視化、實(shí)時(shí)三維動(dòng)畫(huà)等類型互動(dòng)內(nèi)容的多平臺(tái)的綜合型游戲開(kāi)發(fā)工具,是一個(gè)全面整合的專業(yè)游戲引擎。Unity類似于Director,Blender game engine,Virtools或Torque Game Builder等利用交互的圖型化開(kāi)發(fā)環(huán)境為首要方式的軟件。
Unity端504將紋理貼圖以紋理的形式體現(xiàn)在虛擬場(chǎng)景的一個(gè)平面中,之后,Unity端504的GPU還用于對(duì)虛擬場(chǎng)景進(jìn)行渲染,在渲染階段,對(duì)圖像數(shù)據(jù)中的直播對(duì)象進(jìn)行摳圖和美顏,從而得到包括有直播對(duì)象和虛擬場(chǎng)景的渲染圖像。
摳圖將直播對(duì)象和背景分離,使背景部分不顯示,摳圖時(shí)預(yù)設(shè)一個(gè)像素參考點(diǎn)作為摳圖的基準(zhǔn)顏色,并設(shè)置摳圖閾值上下限。對(duì)圖像逐像素進(jìn)行比較運(yùn)算,得出當(dāng)前像素與預(yù)設(shè)像素的差異量。當(dāng)差異量小于閾值下限,則認(rèn)為該像素點(diǎn)是背景色,并將該像素的alpha通道置為0,使其為透明;當(dāng)差異量大于閾值上限,這時(shí)候認(rèn)為該像素點(diǎn)是前景色,alpha通道置為1,使其保留下來(lái);當(dāng)差異量介于上限和下限之間,認(rèn)為該像素是過(guò)渡色,使用線性函數(shù)將alpha通道設(shè)置為0~1中的一個(gè),使該像素一半出現(xiàn)在圖像邊緣處。過(guò)渡色的設(shè)定有利于摳出來(lái)的人像和虛擬場(chǎng)景融合的更自然。
美顏時(shí)先對(duì)對(duì)象(主要是人物對(duì)象)進(jìn)行膚色識(shí)別,膚色識(shí)別是利用人類皮膚在YCbCr顏色空間的呈現(xiàn)高斯分布的特點(diǎn),將皮膚和非皮膚區(qū)域區(qū)分開(kāi)來(lái)。膚色識(shí)別之后對(duì)皮膚進(jìn)行磨皮,磨皮是使用雙邊濾波算法,在平滑皮膚區(qū)域的同時(shí)避免邊緣鈍化。然后是去除斑點(diǎn)和加亮處理,加亮處理是采用LOG曲線進(jìn)行整體像素的增益校正,避免圖像變化過(guò)于生硬。以上摳圖和美顏操作均通過(guò)GPU的渲染步驟(shader步驟)實(shí)現(xiàn)的。
錄制服務(wù)器505用于使用硬件編碼模塊,對(duì)Unity端504的屏幕畫(huà)面進(jìn)行截取、壓縮編碼,得到視頻數(shù)據(jù);以及用于將聲效器的音頻數(shù)據(jù)編碼成便于網(wǎng)絡(luò)傳輸?shù)囊纛l格式。最后錄制服務(wù)器505還用于對(duì)所述音頻數(shù)據(jù)和視頻數(shù)據(jù)后進(jìn)行封裝,封裝好的數(shù)據(jù)即為可供播放的音視頻數(shù)據(jù),錄制服務(wù)器505將封裝好的數(shù)據(jù)傳遞給RTSP服務(wù)器506。
RTSP服務(wù)器506即為實(shí)時(shí)流服務(wù)器,用于音視頻數(shù)據(jù)的直播,直播分為內(nèi)網(wǎng)直播和外網(wǎng)直播兩種方式,在本實(shí)施例中,RTSP服務(wù)器506將音視頻數(shù)據(jù)推送到第三方服務(wù)器508中,第三方服務(wù)器508生成外網(wǎng)鏈接供各地網(wǎng)絡(luò)客戶端507點(diǎn)播??蛻舳嗽诮邮盏降谌椒?wù)器傳來(lái)的音視頻數(shù)據(jù)后,解碼即可顯示畫(huà)面,畫(huà)面內(nèi)容即為虛擬場(chǎng)景渲染的畫(huà)面;音頻數(shù)據(jù)解碼后通過(guò)揚(yáng)聲器播放即為演唱者演唱的聲音及伴奏。
需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者終端設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者終端設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者終端設(shè)備中還存在另外的要素。此外,在本文中,“大于”、“小于”、“超過(guò)”等理解為不包括本數(shù);“以上”、“以下”、“以內(nèi)”等理解為包括本數(shù)。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,上述各實(shí)施例可提供為方法、裝置、或計(jì)算機(jī)程序產(chǎn)品。這些實(shí)施例可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。上述各實(shí)施例涉及的方法中的全部或部分步驟可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可以存儲(chǔ)于計(jì)算機(jī)設(shè)備可讀取的存儲(chǔ)介質(zhì)中,用于執(zhí)行上述各實(shí)施例方法所述的全部或部分步驟。所述計(jì)算機(jī)設(shè)備,包括但不限于:個(gè)人計(jì)算機(jī)、服務(wù)器、通用計(jì)算機(jī)、專用計(jì)算機(jī)、網(wǎng)絡(luò)設(shè)備、嵌入式設(shè)備、可編程設(shè)備、智能移動(dòng)終端、智能家居設(shè)備、穿戴式智能設(shè)備、車載智能設(shè)備等;所述的存儲(chǔ)介質(zhì),包括但不限于:RAM、ROM、磁碟、磁帶、光盤、閃存、U盤、移動(dòng)硬盤、存儲(chǔ)卡、記憶棒、網(wǎng)絡(luò)服務(wù)器存儲(chǔ)、網(wǎng)絡(luò)云存儲(chǔ)等。
上述各實(shí)施例是參照根據(jù)實(shí)施例所述的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到計(jì)算機(jī)設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)設(shè)備以特定方式工作的計(jì)算機(jī)設(shè)備可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)設(shè)備可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)設(shè)備上,使得在計(jì)算機(jī)設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已經(jīng)對(duì)上述各實(shí)施例進(jìn)行了描述,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例做出另外的變更和修改,所以以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利保護(hù)范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍之內(nèi)。