本發(fā)明涉及圖像處理領(lǐng)域,具體而言,涉及一種視頻直播中的圖像處理方法和裝置。
背景技術(shù):
在現(xiàn)有社會中,隨著網(wǎng)絡(luò)直播平臺和視頻直播的普及和流行,用戶可以通過網(wǎng)絡(luò)直播平臺觀看由視頻直播者(例如,網(wǎng)絡(luò)主播,以下均簡稱為主播)提供的唱歌或者跳舞等娛樂節(jié)目。用戶在觀看直播節(jié)目的過程中,可以通過贈送虛擬特效禮物的方式來表達對主播的喜愛。主播在收到絢麗奪目的虛擬禮物特效的瞬間,主播表現(xiàn)出的既驚喜又意外的神情往往是最美麗和獨特耀眼的,而贈送者也會因為這美麗一刻的到來而獲得極高的滿足感和榮耀感。
一般地,由于禮物特效顯示的時間較短,然而在這較短的時間內(nèi),主播的神態(tài)和動作也是稍縱即逝的。因此,為了同時保存絢麗的特效和主播那一刻的神態(tài)動作,主播和用戶往往通過屏幕截圖或者手機拍攝電腦屏幕的方法來實現(xiàn)抓拍。但是,在主播側(cè),無論是以上哪種抓拍方式都會使得主播因為額外的操作而分散注意力,導(dǎo)致主播在被拍照時的表情和動作無法做到最自然和到位。在用戶側(cè),用戶在抓拍時又無法準確捕捉主播和特效都是最佳狀態(tài)時的那一刻,加之特效播放時間較短,主播和用戶往往都來不及準備和反應(yīng),那絢麗特效就已經(jīng)結(jié)束了。即使用戶抓拍到絢麗的特效,也會因為一些其他因素(例如,截圖軟件使用不當(dāng)、手機拍照沒成功對焦或拍照時抖動等問題)而導(dǎo)致抓拍到的圖像內(nèi)容模糊、粗糙而不夠完美。進一步地,即使用戶真的抓拍到了絢麗完美的一刻,如果不進行照片共享,那么其他用戶還是無法看到并共享這絢麗美麗的一刻,因而無法做到美麗瞬間的永久保存和公開展示。
針對上述的問題,目前尚未提出有效的解決方案。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種視頻直播中的圖像處理方法和裝置,以至少解決現(xiàn)有技術(shù)中無法精確地獲取包含視頻流圖像和對象圖像的圖像的技術(shù)問題。
根據(jù)本發(fā)明實施例的一個方面,提供了一種視頻直播中的圖像處理方法,包括:確定對象被觸發(fā)并展示在視頻直播中;監(jiān)測預(yù)定條件是否滿足;在所述預(yù)定條件滿足時,獲取當(dāng)前所述視頻直播中的視頻流圖像;獲取所述對象的對象圖像;至少將所述視頻流圖像與所述對象圖像進行合成。
進一步地,所述預(yù)定條件至少包括以下之一:所述視頻直播中用戶做出的手勢與預(yù)定手勢的相似度大于或者等于預(yù)定相似度;所述視頻直播中所述用戶的人臉圖像與所述視頻直播的圖像比例在預(yù)定范圍內(nèi)。
進一步地,若所述預(yù)定條件包括:所述視頻直播中所述用戶做出的手勢與所述預(yù)定手勢的相似度大于或者等于所述預(yù)定相似度,則在確定所述對象被觸發(fā)并展示在視頻直播中之后,所述方法還包括:向所述用戶顯示所述預(yù)定手勢。
進一步地,若在第一預(yù)定時間段內(nèi)未監(jiān)測到所述預(yù)定條件滿足,則在所述第一預(yù)定時間段結(jié)束時刻視為預(yù)定條件已滿足。
進一步地,在確定對象被觸發(fā)并展示在視頻直播中之后,向所述用戶顯示第一倒計時,其中,所述第一倒計時對應(yīng)于所述第一預(yù)定時間段。
進一步地,所述第一預(yù)定時間段為所述對象的展示時間。
進一步地,在確定對象被觸發(fā)并展示在視頻直播中之后,所述方法還包括:向用戶顯示第二倒計時,其中,所述預(yù)定條件為第二預(yù)定時間段結(jié)束,所述第二倒計時對應(yīng)于所述第二預(yù)定時間段。
進一步地,所述第二預(yù)定時間段為所述對象展示開始時刻至所述對象展示最佳效果出現(xiàn)時刻。
進一步地,所述獲取當(dāng)前所述視頻直播中的視頻流圖像及所述獲取所述對象的對象圖像包括:獲取當(dāng)前視頻播放窗口中所述視頻流圖像和所述對象圖像的截圖,其中,所述視頻播放窗口用于直播所述視頻流及所述對象。
進一步地,至少將所述視頻流圖像與所述對象圖像進行合成包括:將獲取到的所述視頻流圖像按照第一預(yù)設(shè)比例進行縮放;將獲取到的所述對象的對象圖像按照第二預(yù)設(shè)比例進行縮放;至少將縮放之后的所述視頻流圖像和所述對象圖像進行合成。
根據(jù)本發(fā)明實施例的另一方面,還提供了一種視頻直播中的圖像處理裝置,包括:確定模塊,用于確定對象被觸發(fā)并展示在視頻直播中;監(jiān)測模塊,用于監(jiān)測預(yù)定條件是否滿足;第一獲取模塊,用于在所述預(yù)定條件滿足時,獲取當(dāng)前所述視頻直播中的視頻流圖像;第二獲取模塊,用于獲取所述對象的對象圖像;合成模塊,用于至少將所述視頻流圖像與所述對象圖像進行合成。
進一步地,所述預(yù)定條件至少包括以下之一:所述視頻直播中用戶做出的手勢與預(yù)定手勢的相似度大于或者等于預(yù)定相似度;所述視頻直播中所述用戶的人臉圖像與所述視頻直播的圖像比例在預(yù)定范圍內(nèi)。
進一步地,所述裝置還包括:第一顯示模塊,用于在所述預(yù)定條件包括:所述視頻直播中所述用戶做出的手勢與所述預(yù)定手勢的相似度大于或者等于所述預(yù)定相似度的情況下,并在確定所述對象被觸發(fā)并展示在視頻直播中之后,向所述用戶顯示所述預(yù)定手勢。
進一步地,若在第一預(yù)定時間段內(nèi)未監(jiān)測到所述預(yù)定條件滿足,則在所述第一預(yù)定時間段結(jié)束時刻視為預(yù)定條件已滿足。
進一步地,所述裝置還包括:第二顯示模塊,用于在確定對象被觸發(fā)并展示在視頻直播中之后,向所述用戶顯示第一倒計時,其中,所述第一倒計時對應(yīng)于所述第一預(yù)定時間段。
進一步地,所述第一預(yù)定時間段為所述對象的展示時間。
進一步地,所述裝置還包括:第三顯示模塊,用于在確定對象被觸發(fā)并展示在視頻直播中之后,向用戶顯示第二倒計時,其中,所述預(yù)定條件為第二預(yù)定時間段結(jié)束,所述第二倒計時對應(yīng)于所述第二預(yù)定時間段。
進一步地,所述第二預(yù)定時間段為所述對象展示開始時刻至所述對象展示最佳效果出現(xiàn)時刻。
進一步地,所述第一獲取模塊和所述第二獲取模塊包括:獲取單元,用于獲取當(dāng)前視頻播放窗口中所述視頻流圖像和所述對象圖像的截圖,其中,所述視頻播放窗口用于直播所述視頻流及所述對象。
進一步地,所述合成模塊包括:第一縮放單元,用于將獲取到的所述視頻流圖像按照第一預(yù)設(shè)比例進行縮放;第二縮放單元,用于將獲取到的所述對象的對象圖像按照第二預(yù)設(shè)比例進行縮放;合成單元,用于至少將縮放之后的所述視頻流圖像和所述對象圖像進行合成。
在本發(fā)明實施例中,采用確定對象被觸發(fā)并展示在視頻直播中;在預(yù)定條件的觸發(fā)下,獲取所述視頻直播中與所述預(yù)定條件對應(yīng)的視頻流圖像,其中,所述預(yù)定條件是在所述對象被展示的過程中出現(xiàn)的;獲取與所述預(yù)定條件對應(yīng)的所述對象的對象圖像;至少將所述視頻流圖像與所述對象圖像進行合成的方式,通過在預(yù)定條件的觸發(fā)下,獲取視頻直播中視頻流圖像,并獲取與預(yù)定條件對應(yīng)的對象圖像,然后,將對象圖像和視頻流圖像進行合成,得到包含對象和主播的圖像,相對于現(xiàn)有技術(shù)中,通過抓拍的方式獲取圖片的方式,達到了準確獲取包含對象圖像的視頻流圖像的目的,從而實現(xiàn)了提高了獲取包含對象圖像的視頻流圖像的技術(shù)效果,進而解決了現(xiàn)有技術(shù)中無法精確地獲取包含視頻流圖像和對象圖像的圖像的技術(shù)問題。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
圖1是根據(jù)本發(fā)明實施例的一種視頻直播中的圖像處理方法的流程圖;
圖2是根據(jù)本發(fā)明實施例的一種視頻直播中的圖像處理裝置的示意圖;
圖3是根據(jù)本發(fā)明實施例的另一種視頻直播中的圖像處理裝置的示意圖;
圖4是根據(jù)本發(fā)明實施例的一種主播端視頻流接收單元的示意圖;
圖5是根據(jù)本發(fā)明實施例的一種觀眾端視頻流接收單元的示意圖;
圖6是根據(jù)本發(fā)明實施例的一種禮物特效管理單元的示意圖;
圖7是根據(jù)本發(fā)明實施例的一種特效動畫顯示單元的示意圖;
圖8是根據(jù)本發(fā)明實施例的一種照片合成單元的示意圖;
圖9是根據(jù)本發(fā)明實施例的一種照片合成單元另一實施例的示意圖;以及
圖10是根據(jù)本發(fā)明實施例的一種照片后期處理單元的示意圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護的范圍。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
根據(jù)本發(fā)明實施例,提供了一種視頻直播中的圖像處理方法的實施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
圖1是根據(jù)本發(fā)明實施例的一種視頻直播中的圖像處理方法的流程圖,如圖1所示,該方法包括如下步驟:
步驟S102,確定對象被觸發(fā)并展示在視頻直播中。
本發(fā)明實施例提供的視頻直播中的圖像處理方法可以應(yīng)用在網(wǎng)絡(luò)直播平臺或者視頻直播平臺。如果應(yīng)用在網(wǎng)絡(luò)直播平臺,則主播直播過程中的視頻流將在一個或多個觀眾的終端中進行播放,其中,上述對象可以為虛擬禮物的特效動畫。
在本發(fā)明實施例中,在觀眾向主播贈送虛擬禮物時,如果觀眾贈送的虛擬禮物滿足不同的條件,那么將觸發(fā)不同的特效動畫。例如,虛擬禮物“棒棒糖”,當(dāng)觀眾贈送的棒棒糖的數(shù)量為10個時,那么特效動畫可以是一個閃閃發(fā)光的棒棒糖,當(dāng)觀眾贈送的棒棒糖的數(shù)量為60個時,那么特效動畫可以是大量從天而降的棒棒糖。因此,在本發(fā)明實施例中,當(dāng)觀眾贈送的虛擬禮物達到特效觸發(fā)條件時,則確定虛擬禮物的特效動畫(即,上述對象)被觸發(fā),并顯示在視頻直播中。
步驟S104,監(jiān)測預(yù)定條件是否滿足。
在本發(fā)明實施例中,當(dāng)確定出對象被觸發(fā)并展示在視頻直播中之后,主播可以跟隨對象做出相應(yīng)地手勢或者表情。但是,為了保證下述步驟S110中合成的圖像包含對象的最佳展示效果,以及主播的最佳手勢或者最佳表情,因此,在本發(fā)明實施例中,可以預(yù)先設(shè)置預(yù)定條件,其中,上述預(yù)定條件至少包括以下之一:視頻直播中用戶做出的手勢與預(yù)定手勢的相似度大于或者等于預(yù)定相似度;視頻直播中用戶的人臉圖像與視頻直播的圖像比例在預(yù)定范圍內(nèi)。然后,在預(yù)定條件滿足時,執(zhí)行下述步驟S106,即獲取當(dāng)前視頻直播中的視頻流圖像。
步驟S106,在預(yù)定條件滿足時,獲取當(dāng)前視頻直播中的視頻流圖像。
在本發(fā)明實施例中,在對象(即,特效動畫)被觸發(fā)之后,主播客戶端判斷是否滿足預(yù)定條件,如果滿足預(yù)定條件,則獲取當(dāng)前時刻視頻直播中的視頻流圖像,以及執(zhí)行步驟S108,即獲取對象的對象圖像。
步驟S108,獲取對象的對象圖像。
步驟S110,至少將視頻流圖像與對象圖像進行合成。
在本發(fā)明實施例中,主播客戶端在獲取到對象圖像和視頻流圖像之后,會將視頻流圖像和對象圖像進行合成,合成為一張圖片,并將合成的圖片進行保存。在合成之后的圖像中,包含對象的最佳展示效果,以及主播的最佳手勢或者最佳表情等。
在本發(fā)明實施例中,通過在預(yù)定條件的觸發(fā)下,獲取視頻直播中視頻流圖像,并獲取與預(yù)定條件對應(yīng)的對象圖像,然后,將對象圖像和視頻流圖像進行合成,得到包含對象和主播的圖像,相對于現(xiàn)有技術(shù)中,通過抓拍的方式獲取圖片的方式,達到了準確獲取包含對象圖像的視頻流圖像的目的,從而實現(xiàn)了提高了獲取包含對象圖像的視頻流圖像的技術(shù)效果,進而解決了現(xiàn)有技術(shù)中無法精確地獲取包含視頻流圖像和對象圖像的圖像的技術(shù)問題。
通過步驟S104中的描述可知,在本發(fā)明實施例中,預(yù)定條件至少包括以下之一:視頻直播中用戶做出的手勢與預(yù)定手勢的相似度大于或者等于預(yù)定相似度;以及視頻直播中用戶的人臉圖像與視頻直播的圖像比例在預(yù)定范圍內(nèi)。
也就是說,上述預(yù)定條件可以為:視頻直播中用戶做出的手勢與預(yù)定手勢的相似度大于或者等于預(yù)定相似度,還可以為:視頻直播中用戶的人臉圖像與視頻直播的圖像比例在預(yù)定范圍內(nèi),還可以為:視頻直播中用戶做出的手勢與預(yù)定手勢的相似度大于或者等于預(yù)定相似度,以及視頻直播中用戶的人臉圖像與視頻直播的圖像比例在預(yù)定范圍內(nèi)的組合,下面將就上述三種情況進行介紹。
情況一、視頻直播中用戶做出的手勢與預(yù)定手勢的相似度大于或者等于預(yù)定相似度。
主播客戶端在確定對象被觸發(fā),并將對象展示在視頻播放窗口中之后,主播客戶端可以獲取視頻直播中的視頻流圖像,即獲取每個視頻幀圖像;然后,確定視頻直播中是否出現(xiàn)用戶做出的手勢,也即,在每個視頻幀圖像中確定是否出現(xiàn)用戶做出的手勢。其中,在確定出在視頻直播中出現(xiàn)用戶做出的手勢的情況下,計算確定用戶做出的手勢與預(yù)定手勢的相似度,并判斷計算出的相似度是否大于或者等于預(yù)設(shè)相似度。如果判斷出計算出的相似度大于或者等于預(yù)設(shè)相似度,則確定滿足預(yù)定條件,然后,獲取當(dāng)前時刻視頻直播的視頻流圖像和對象圖像。最后,將獲取到的視頻流圖像和對象圖像進行合成,得到合成之后的圖片。
情況二、視頻直播中用戶的人臉圖像與視頻直播的圖像比例在預(yù)定范圍內(nèi)。
主播客戶端在確定對象被觸發(fā),并在將對象展示在視頻直播的窗口中之后,主播客戶端可以獲取視頻直播中的視頻流圖像,即獲取每個視頻幀圖像;然后,確定視頻直播中出現(xiàn)的用戶的人臉圖像與視頻直播的圖像比例是否在預(yù)定范圍內(nèi),也即,在每個視頻幀中確定是否出現(xiàn)用戶的預(yù)定人臉圖像。其中,在確定出在視頻直播中出現(xiàn)用戶的人臉圖像與視頻直播的圖像比例在預(yù)定范圍內(nèi)的情況下,確定滿足預(yù)定條件。其中,視頻直播中用戶的人臉圖像與視頻直播的圖像比例小于或者等于第一比例值,并且大于第二比例值。
優(yōu)選地,在本發(fā)明實施例中,第一比例值選取為2/3,第二比例值選取為1/100。此時,也可以理解為人臉圖像在視頻區(qū)域中的所占區(qū)域不大于視頻直播中的圖像2/3,并且不小于視頻直播中的圖像的1/100。也就是說,當(dāng)判斷出人臉圖像滿足上述條件時,確定檢測到滿足預(yù)定條件,此時,獲取到的人臉圖像即為清晰頭像。
通過上述兩個預(yù)設(shè)條件可知,如果滿足上述預(yù)定條件,即,獲取到清晰的人臉圖像,或者獲取到正常的手勢,則可以直接從視頻直播中獲取包含正常手勢或者清晰的人臉圖像的視頻流圖像。如沒有同時獲取到清晰的人臉圖像,或者獲取到正常的手勢,則需要在倒計時結(jié)束時,從視頻直播流中獲取視頻流圖像。其中,倒計時將在下述實施例中進行詳細的介紹。
需要說明的是,在本發(fā)明實施例中,上述預(yù)定條件除了上述情況一和情況二之外,還包括另外一種情況,其中,該情況為:視頻直播中用戶做出的手勢與預(yù)定手勢的相似度大于或者等于預(yù)定相似度,以及視頻直播中用戶的人臉圖像與視頻直播的圖像比例在預(yù)定范圍內(nèi)。
在此情況下,主播客戶端在確定對象被觸發(fā),并將對象展示在視頻播放窗口中之后,主播客戶端可以獲取視頻直播中的視頻流圖像,即獲取每個視頻幀圖像;然后,確定視頻直播中是否出現(xiàn)用戶做出的手勢,也即,在每個視頻幀圖像中確定是否出現(xiàn)用戶做出的手勢。其中,在確定出在視頻直播中出現(xiàn)用戶做出的手勢的情況下,計算確定用戶做出的手勢與預(yù)定手勢的相似度,并判斷計算出的相似度是否大于或者等于預(yù)設(shè)相似度。
進一步地,如果判斷出計算出的相似度大于或者等于預(yù)設(shè)相似度,則確定視頻直播中出現(xiàn)用戶的人臉圖像與視頻直播的圖像比例是否在預(yù)定范圍內(nèi)。其中,在確定出出現(xiàn)用戶的人臉圖像與視頻直播的圖像比例在預(yù)定范圍內(nèi)的情況下,確定滿足上述預(yù)定條件。
需要說明的是,在本發(fā)明實施例中,在將對象顯示在視頻播放窗口之后,還可以判斷顯示在視頻播放窗口中的對象是否滿足圖片合成條件,其中,如果滿足圖片合成條件,則獲取視頻直播中與預(yù)定條件對應(yīng)的視頻流圖像,并獲取與預(yù)定條件對應(yīng)的對象圖像。例如,假設(shè),用戶送66個棒棒糖的特效動畫給主播,當(dāng)在視頻播放窗口中有大量從天而降的棒棒糖時,則滿足圖片的合成條件;然而,假設(shè),用戶送10個棒棒糖的特效動畫,如果在視頻播放裝口中僅顯示一個閃閃發(fā)光的棒棒糖,則不滿足圖片的合成條件,那么當(dāng)檢測到特效隊列中下一個即將播放的特效為滿足圖片合成條件的“大量從天而降的棒棒糖”特效動畫時,則獲取視頻直播中與預(yù)定條件對應(yīng)的視頻流圖像,并獲取與預(yù)定條件對應(yīng)的對象圖像,并將獲取到的圖像進行合成。
在本發(fā)明的另一個可選實施方式中,若預(yù)定條件包括:視頻直播中所述用戶做出的手勢與預(yù)定手勢的相似度大于或者等于預(yù)定相似度,則在確定對象被觸發(fā)并展示在視頻直播中之后,方法還包括:向用戶顯示所述預(yù)定手勢。
具體地,如果預(yù)定條件中包括條件:視頻直播中所述用戶做出的手勢與預(yù)定手勢的相似度大于或者等于預(yù)定相似度,那么在合成特效動畫的圖片被激活時,首先,會在手勢特征數(shù)據(jù)庫中指定選擇或者隨機選擇一個手勢,并提示主播擺出相應(yīng)的手勢并準備拍照。例如,主播A收到一個特效禮物“恭喜發(fā)財”(即,對象),那么在特效動畫觸發(fā)的同時,主播A的客戶端將從手勢特征數(shù)據(jù)庫中指定選擇抱拳手勢(即,預(yù)定手勢),并在主播側(cè)的視頻播放窗口的下方顯示一個抱拳動作的卡通提示圖標,提示主播A擺出響應(yīng)手勢。
在本發(fā)明的一個可選實施方式中,若在第一預(yù)定時間段內(nèi)未監(jiān)測到預(yù)定條件滿足,則在第一預(yù)定時間段結(jié)束時刻視為預(yù)定條件已滿足,其中,第一時間段為對象的展示時間。具體地,在本發(fā)明實施例中,若在對象的展示時間結(jié)束時,未監(jiān)測到預(yù)定條件滿足,那么將在對象的展示時間結(jié)束的時刻獲取視頻直播中的視頻流圖像和對象的對象圖像。
可選地,在確定對象被觸發(fā)并展示在視頻直播中之后,還可以向用戶顯示第一倒計時,其中,第一倒計時對應(yīng)于第一預(yù)定時間段。
例如,主播A收到一個特效禮物“恭喜發(fā)財”(即,對象),那么在特效動畫被觸發(fā)的同時,主播A的客戶端將從手勢特征數(shù)據(jù)庫中指定選擇抱拳手勢(即,預(yù)定手勢),并在主播側(cè)的視頻播放窗口的下方顯示一個抱拳動作的卡通提示圖標,提示主播A擺出響應(yīng)手勢。然后,在主播側(cè)顯示第一倒計時,并在第一倒計時結(jié)束之前,對視頻直播的圖像中人臉和手勢進行識別,也即,在對象的展示時間結(jié)束之前,對視頻直播的圖像中人臉和手勢進行識別,其中,第一倒計時用于提示主播已進行人臉圖像和手勢的識別。
通過上述描述可知,在上述實施例中的預(yù)定條件為視頻直播中用戶做出的手勢與預(yù)定手勢的相似度大于或者等于預(yù)定相似度,或者視頻直播中用戶的人臉圖像與視頻直播的圖像比例在預(yù)定范圍內(nèi)。除此之外,預(yù)定條件還可以為第二預(yù)定時間段結(jié)束的時刻。也就是說,在確定對象被觸發(fā)并展示在視頻直播中之后,還包括:向用戶顯示第二倒計時,其中,預(yù)定條件為第二預(yù)定時間段結(jié)束,第二倒計時對應(yīng)于第二預(yù)定時間段。可選地,上述第二預(yù)定時間段為對象展示開始時刻至對象展示最佳效果出現(xiàn)時刻。
在本發(fā)明可選實施方式中,可以在獲取視頻直播中視頻流圖像和對象圖像之前,設(shè)置顯示第二倒計時,其中,第二倒計時的計時時間為第二預(yù)定時間段。當(dāng)?shù)诙褂嫊r結(jié)束時,即第二預(yù)定時間段結(jié)束的時刻,確定預(yù)定條件滿足,此時,獲取當(dāng)時視頻直播中的視頻流圖像和對象圖像。需要說明是,在本發(fā)明實施例中,第二預(yù)定時間段為對象展示的開始時刻至對象展示最佳效果出現(xiàn)的時刻,也即,對象開始展示的時刻至視頻流文件中最佳幀的展示時刻,其中,最佳幀中包含主播和對象的最佳展示效果。
其中,獲取第二倒計時結(jié)束的時刻,獲取當(dāng)前視頻直播中的視頻流圖像及獲取對象的對象圖像包括:獲取當(dāng)前視頻播放窗口中視頻流圖像和對象圖像的截圖,其中,視頻播放窗口用于直播視頻流及所述對象。
具體地,在第二預(yù)定時間段結(jié)束的時刻,從視頻播放窗口中獲取視頻流圖像,并同時將正在播放的特效動畫(即,對象)截獲。然后,將獲取到的視頻流圖像和截獲的正在播放的特效動畫進行合成,得到合成之后的圖片。
在本發(fā)明的另一個可選的實施方式中,至少將視頻流圖像與對象圖像進行合成包括:將獲取到的視頻流圖像按照第一預(yù)設(shè)比例進行縮放,并將獲取到的與預(yù)定條件對應(yīng)的對象圖像按照第二預(yù)設(shè)比例進行縮放,然后,至少將縮放之后的視頻流圖像和對象圖像進行合成。
如果最終合成之后的圖片的尺寸為PictureSize(pw,ph),那么需要將從視頻直播中獲取到的視頻流圖像的尺寸VideoSize(vw,vh)按照第一預(yù)設(shè)比例進行縮放,其中,縮放之后的大小為最終合成之后的圖片的大小,然后繪制到畫布上。第一預(yù)設(shè)比例包括寬度縮放比和高度縮放比,其中,寬度縮放比為:kw=pw/vw,高度縮放比為:kh=ph/vh。
需要說明的是,一般情況下,為了保持圖像不失真,寬度縮放比和長度縮放比應(yīng)該相同,也即,kw=kh。如果在特殊情況下,導(dǎo)致寬度縮放比和長度縮放比不相同時,為保證所有的圖像內(nèi)容都能縮放到最終合成之后的圖片中,則需要使用兩者的較小值作為縮放因子,也即,此時選取的縮放比為:k=min(kw,kh)。按照縮放比對視頻流圖像進行縮放時,最終生成的視頻流圖像的大小為:DestVideoSize(vw’=vw*k,vh’=vh*k)。
在畫布上繪制視頻流圖像之后,就可以依次繪制對象圖像(即,特效圖像)。對象圖像的繪制效果兩種,即效果類型1和效果類型2,其中,效果類型1和效果類型2的添加均基于對象圖像的位置信息:EffectRect(x,y,w,h)。
效果類型1:效果類型1即對象圖像覆蓋整個視頻流圖像,此時,對象圖像的位置信息為:EffectRect(0,0,w,h)。此時,對象圖像可以通過縮放因子k2獲得更加適合的對象圖像,即:EffectRect’(0,0,w’,h’)=EffectRect(0,0,w,h)*k2。
效果類型2:效果類型2即對象圖像處于視頻流圖像中特定位置。首先從視頻圖像中獲取對象圖像顯示的范圍和位置信息,即:EffectRect’(x’,y’,w’,h’)。但是,由于該位置信息和顯示范圍是相對原始的視頻流圖像獲取的,因此需要先將上述獲取到的該位置信息和顯示范圍按照下述方式進行變化,即:EffectRect”(x”,y”,w”,h”)=EffectRect’(x’,y’,w’,h’)*k。然后,將對象圖像的原始大小EffectSize(w,h)按照非等比縮放因子k3(α,β)進行縮放,縮放之后對象圖像的大小為:EffectSize”(w”,h”)=EffectSize(w,h)*k3(α,β)。最后,在畫布的(x”,y”)位置上繪制效果。
本發(fā)明實施例還提供了一種視頻直播中的圖像處理裝置,該視頻直播中的圖像處理裝置主要用于執(zhí)行本發(fā)明實施例上述內(nèi)容所提供的視頻直播中的圖像處理方法,以下對本發(fā)明實施例所提供的視頻直播中的圖像處理裝置做具體介紹。
圖2是根據(jù)本發(fā)明實施例的一種視頻直播中的圖像處理裝置的示意圖,如圖2所示,該視頻直播中的圖像處理裝置主要包括確定模塊21、監(jiān)測模塊23、第一獲取模塊25、第二獲取模塊27和合成模塊29,其中:
確定模塊,用于確定對象被觸發(fā)并展示在視頻直播中;
本發(fā)明實施例提供的視頻直播中的圖像處理方法可以應(yīng)用在網(wǎng)絡(luò)直播平臺或者視頻直播平臺。如果應(yīng)用在網(wǎng)絡(luò)直播平臺,則主播直播過程中的視頻流將在一個或多個觀眾的終端中進行播放,其中,上述對象可以為虛擬禮物的特效動畫。
在本發(fā)明實施例中,在觀眾向主播贈送虛擬禮物時,如果觀眾贈送的虛擬禮物滿足不同的條件,那么將觸發(fā)不同的特效動畫。例如,虛擬禮物“棒棒糖”,當(dāng)觀眾贈送的棒棒糖的數(shù)量為10個時,那么特效動畫可以是一個閃閃發(fā)光的棒棒糖,當(dāng)觀眾贈送的棒棒糖的數(shù)量為60個時,那么特效動畫可以是大量從天而降的棒棒糖。因此,在本發(fā)明實施例中,當(dāng)觀眾贈送的虛擬禮物達到特效觸發(fā)條件時,則確定虛擬禮物的特效動畫(即,上述對象)被觸發(fā),并顯示在視頻直播中。
監(jiān)測模塊,用于監(jiān)測預(yù)定條件是否滿足。
在本發(fā)明實施例中,當(dāng)確定出對象被觸發(fā)并展示在視頻直播中之后,主播可以跟隨對象做出相應(yīng)地手勢或者表情。但是,為了保證下合成模塊中合成的圖像包含對象的最佳展示效果,以及主播的最佳手勢或者最佳表情,因此,在本發(fā)明實施例中,可以預(yù)先設(shè)置預(yù)定條件,其中,上述預(yù)定條件至少包括以下之一:視頻直播中用戶做出的手勢與預(yù)定手勢的相似度大于或者等于預(yù)定相似度;視頻直播中用戶的人臉圖像與視頻直播的圖像比例在預(yù)定范圍內(nèi)。然后,在預(yù)定條件滿足時,通過下述第一獲取模塊獲取當(dāng)前視頻直播中的視頻流圖像。
第一獲取模塊,用于在預(yù)定條件滿足時,獲取當(dāng)前視頻直播中的視頻流圖像。
在本發(fā)明實施例中,在對象(即,特效動畫)被觸發(fā)之后,主播客戶端判斷是否滿足預(yù)定條件,如果滿足預(yù)定條件,則獲取當(dāng)前時刻視頻直播中的視頻流圖像,以及執(zhí)行步驟S108,即獲取對象的對象圖像。第二獲取模塊,用于獲取與預(yù)定條件對應(yīng)的對象圖像;
合成模塊,用于至少將視頻流圖像與對象圖像進行合成。
在本發(fā)明實施例中,主播客戶端在獲取到對象圖像和視頻流圖像之后,會將視頻流圖像和對象圖像進行合成,合成為一張圖片,并將合成的圖片進行保存。在合成之后的圖像中,包含對象的最佳展示效果,以及主播的最佳手勢或者最佳表情等。
在本發(fā)明實施例中,通過在預(yù)定條件的觸發(fā)下,獲取視頻直播中視頻流圖像,并獲取與預(yù)定條件對應(yīng)的對象圖像,然后,將對象圖像和視頻流圖像進行合成,得到包含對象和主播的圖像,相對于現(xiàn)有技術(shù)中,通過抓拍的方式獲取圖片的方式,達到了準確獲取包含對象圖像的視頻流圖像的目的,從而實現(xiàn)了提高了獲取包含對象圖像的視頻流圖像的技術(shù)效果,進而解決了現(xiàn)有技術(shù)中無法精確地獲取包含視頻流圖像和對象圖像的圖像的技術(shù)問題。
可選地,預(yù)定條件至少包括以下之一:視頻直播中用戶做出的手勢與預(yù)定手勢的相似度大于或者等于預(yù)定相似度;視頻直播中用戶的人臉圖像與視頻直播的圖像比例在預(yù)定范圍內(nèi)。
可選地,裝置還包括:第一顯示模塊,用于在預(yù)定條件包括:視頻直播中用戶做出的手勢與預(yù)定手勢的相似度大于或者等于預(yù)定相似度的情況下,并在確定對象被觸發(fā)并展示在視頻直播中之后,向用戶顯示預(yù)定手勢。
可選地,若在第一預(yù)定時間段內(nèi)未監(jiān)測到預(yù)定條件滿足,則在第一預(yù)定時間段結(jié)束時刻視為預(yù)定條件已滿足。
可選地,裝置還包括:第二顯示模塊,用于在確定對象被觸發(fā)并展示在視頻直播中之后,向用戶顯示第一倒計時,其中,第一倒計時對應(yīng)于第一預(yù)定時間段。
可選地,第一預(yù)定時間段為對象的展示時間。
可選地,裝置還包括:第三顯示模塊,用于在確定對象被觸發(fā)并展示在視頻直播中之后,向用戶顯示第二倒計時,其中,預(yù)定條件為第二預(yù)定時間段結(jié)束,第二倒計時對應(yīng)于第二預(yù)定時間段。
可選地,第二預(yù)定時間段為對象展示開始時刻至對象展示最佳效果出現(xiàn)時刻。
可選地,第一獲取模塊和第二獲取模塊包括:獲取單元,用于獲取當(dāng)前視頻播放窗口中視頻流圖像和對象圖像的截圖,其中,視頻播放窗口用于直播視頻流及對象;
可選地,合成模塊包括:第一縮放單元,用于將獲取到的視頻流圖像按照第一預(yù)設(shè)比例進行縮放;第二縮放單元,用于將獲取到的對象的對象圖像按照第二預(yù)設(shè)比例進行縮放;合成單元,用于至少將縮放之后的視頻流圖像和對象圖像進行合成。
圖3是根據(jù)本發(fā)明實施例的另一種視頻直播中的圖像處理裝置的示意圖,如圖3所示,本發(fā)明實施例提供的視頻直播中的圖像處理裝置包括:視頻流接收單元301、特效管理單元302、特效動畫顯示單元303、照片合成單元304和照片后期處理單元305,其中:
視頻流接收單元301,用于接收視頻流圖像,并提供視頻流圖像獲取接口以獲取視頻流圖像。視頻流接收單元在主播端和觀眾端采用不同的處理方式進行視頻流的處理,主播端視頻流接收單元將在圖4的實施例中進行詳細描述,而觀眾端視頻流接收單元將在圖5的實施例中進行詳細描述。
特效管理單元302,用于接收網(wǎng)絡(luò)服務(wù)器分發(fā)的觀眾向主播贈送的虛擬禮物數(shù)據(jù),以及管理禮物的基本信息和特效信息,并在贈送的虛擬禮物滿足展示特效的條件時啟動禮物特效模塊,觸發(fā)禮物特效。
特效動畫顯示單元303,用于合成視頻流圖像和對象圖像,并將合成后的圖像展示給主播和觀眾。特效動畫顯示單元包含時間控制單元、特效預(yù)處理單元、特效顯示單元和特效結(jié)束單元,對于時間控制單元、特效預(yù)處理單元、特效顯示單元和特效結(jié)束單元的作用將在下述實施例中進行詳細描述。
照片合成單元304,用于將從視頻流接收單元中獲取到的視頻流圖像和從禮物特效管理單元獲取到的禮物特效圖像(即,對象圖像)進行處理并合成,生成主播視頻特效照片。其中,照片合成單元包含倒計時單元、人臉和手勢識別單元、視頻圖像獲取單元、特效圖像獲取單元和照片圖像合成單元,具體每個單元的作用將在下述實施例中進行詳細介紹。
可選地,照片合成單元304在特定的條件下可以從視頻與特效合成單元中直接獲取合成的圖像數(shù)據(jù)。此時照片合成單元將包括倒計時單元、合成圖像獲取單元和合成圖像處理單元。詳細信息將在圖7的實施流程圖中進行詳細描述。
照片后期處理單元305,用于收集、管理和展示用戶的照片;用戶從網(wǎng)絡(luò)服務(wù)器中獲取當(dāng)前主播的照片并展示在特定的窗口位置中。用戶還可以查看這些照片,所屬主播也可以查看和管理這些照片。
圖4是根據(jù)本發(fā)明實施例的一種主播端視頻流接收單元的示意圖,如圖4所示,主播端視頻流接收單元用于采集主播端的視頻流信息,并輸出主播端的視頻流信息。
具體地,主播端視頻流接收單元包括:
攝像頭設(shè)備401,通過USB端口連接主播端的電腦,通過該設(shè)備采集主播的視頻流信息,生成視頻數(shù)據(jù)并輸出到視頻流采集單元。
視頻流采集單元402,當(dāng)視頻流采集單元作用在主播端時,將實現(xiàn)如下兩個功能:
功能1:采用現(xiàn)有的視頻采集技術(shù),將從攝像頭設(shè)備采集到的視頻數(shù)據(jù)轉(zhuǎn)換為視頻直播平臺軟件可識別以及可處理的視頻映射文件。
功能2:為了便于網(wǎng)絡(luò)傳輸,采用主流視頻編碼技術(shù),對視頻映射文件進行視頻編碼后生成rtmp格式的視頻流文件,并以此作為輸出發(fā)送到網(wǎng)絡(luò)服務(wù)器403上,以便提供給觀眾端用戶獲取主播的視頻流數(shù)據(jù)。
網(wǎng)絡(luò)服務(wù)器403,接收由主播端上傳的rtmp格式的視頻流數(shù)據(jù),對該數(shù)據(jù)進行短暫存儲并實現(xiàn)視頻數(shù)據(jù)分發(fā)功能,以便提供給觀眾端用戶獲取和下載主播的視頻數(shù)據(jù)。
主播端視頻接收單元404,接收從視頻流采集單元輸出的視頻映射文件數(shù)據(jù),將該視頻映射文件數(shù)據(jù)以原始視頻流的形式顯示到本機的視頻直播軟件的視頻播放窗口中,以便提供給主播進行視頻預(yù)覽。
圖5是根據(jù)本發(fā)明實施例的一種觀眾端視頻流接收單元的示意圖,如圖5所示,觀眾端視頻接收單元用于采集觀眾端的視頻流信息,并輸出觀眾端的視頻流信息。
具體地,觀眾端視頻接收單元包括:
視頻流采集單元501,與圖4中的視頻流采集單元402為同一單元,視頻流采集單元501用于從主播端采集視頻流數(shù)據(jù),并提交到網(wǎng)絡(luò)服務(wù)器502。
網(wǎng)絡(luò)服務(wù)器502,與圖4中的網(wǎng)絡(luò)服務(wù)器403為同一單元,網(wǎng)絡(luò)服務(wù)器502用于接收由主播端上傳的rtmp格式的視頻流數(shù)據(jù),并對該數(shù)據(jù)進行短暫存儲并實現(xiàn)視頻流數(shù)據(jù)分發(fā)功能,以便提供給觀眾端用戶獲取和下載主播的視頻流數(shù)據(jù)。
觀眾端視頻流接收單元503,以網(wǎng)絡(luò)服務(wù)器502分發(fā)的rtmp格式的視頻流數(shù)據(jù)作為輸入,對視頻流數(shù)據(jù)進行解碼處理,并在解碼處理之后,將解碼之后的視頻流數(shù)據(jù)存放于系統(tǒng)內(nèi)存映射文件中,然后,采用現(xiàn)有的視頻顯示技術(shù),在觀眾端的視頻直播軟件的視頻播放窗口內(nèi)顯示獲得的視頻流數(shù)據(jù)。
圖6是根據(jù)本發(fā)明實施例的一種禮物特效管理單元的示意圖,如圖6所示,特效管理單元包含:禮物贈送單元601、特效動畫單元602和特效動畫調(diào)整單元603,其中:
禮物贈送單元601,以觀眾點擊贈送虛擬禮物的行為作為輸入,在窗口中輸出用戶贈送禮物的信息,當(dāng)贈送的虛擬禮物滿足不同的條件時,觸發(fā)不同的動畫效果,當(dāng)觀眾贈送的虛擬禮物達到特效觸發(fā)條件時,啟動特效動畫單元。
特效動畫單元602,根據(jù)觀眾贈送禮物的信息,獲取在網(wǎng)絡(luò)服務(wù)器中指定的特效動畫信息。一般來說,特效動畫與觀眾贈送的禮物是息息相關(guān)的。如果贈送特效禮物“棒棒糖”達到一定條件(例如,棒棒糖的數(shù)量為10個),此時,在視頻播放窗口中顯示的特效動畫可能是一個閃閃發(fā)光的棒棒糖;然而,如果贈送特效禮物“棒棒糖”達到一定條件(例如,棒棒糖的數(shù)量為66個),此時,特效動畫就會是大量從天而降的棒棒糖,即不同的虛擬禮物在達到不同的條件時,將觸發(fā)不同的特效動畫效果。
特效動畫調(diào)整單元603,用于在特效動畫觸發(fā)后,在保證視頻動畫不失真的情況下對特效動畫的顯示大小、顯示位置、播放速率等進行初步調(diào)整,并將調(diào)整之后的特效動畫發(fā)送到特效動畫顯示單元302中進行顯示。
圖7是根據(jù)本發(fā)明實施例的一種特效動畫顯示單元的示意圖,如圖7所示,特效動畫顯示單元包含:特效預(yù)處理單元701、時間控制單元702、特效顯示單元703和特效結(jié)束單元704,其中:
特效預(yù)處理單元701用于從網(wǎng)絡(luò)服務(wù)器中獲取特效信息,并根據(jù)顯示器分辨率、視頻播放窗口的位置信息和視頻區(qū)域信息調(diào)整特效動畫的大小和位置。
例如,某個特效動畫是“鮮花圍繞主播”,那么“鮮花”的特效動畫就需要出現(xiàn)在視頻區(qū)域的四周才能達到圍繞效果;又例如某個特效動畫是“圣誕積雪”,那么“積雪”特效動畫就需要出現(xiàn)在視頻區(qū)下方才能達到積雪效果。然而,在分辨率較大的顯示器下,由于視頻播放窗口變大,因此鮮花和積雪的大小也會變大;而在分辨率較小的顯示器下,由于視頻播放窗口變小,因此鮮花和積雪的大小也會變小。即在不同顯示器分辨率下,特效動畫的大小會有所不同,因此需要對原始的特效動畫大小需要進行拉伸或縮小操作。
進一步地,由于視頻播放窗口在顯示器屏幕內(nèi)的位置會隨視頻播放窗口的移動而移動。例如,視頻播放窗口被用戶進行窗體拖拽、進行窗口拉伸或窗體縮放操作、以及進行窗口最大化等操作時,如果此時正在播放特效動畫,那么就需要對其在顯示器屏幕中的位置進行實時調(diào)整。
具體地,為了使得視頻播放窗口在被拉伸或者縮小時,特效動畫不失真,需要對特效動畫的大小進行調(diào)整。假設(shè)視頻流數(shù)據(jù)在視頻播放窗口中的顯示大小為videoSize(vw,vh),其中,vw為視頻播放窗口寬度值,vh為視頻播放窗口高度值;某個特效動畫的原始大小為effectSize(ew,eh),其中,ew為特效動畫的原始寬度值,eh為特效動畫的原始高度值。經(jīng)特效預(yù)處理單元進行處理并調(diào)整后的特效動畫的大小為:effectSizeDest(edw,edh),其中,edw為特效動畫調(diào)整后的寬度值,edh為特效動畫調(diào)整后的高度值,此特效動畫調(diào)整之后的大小與視頻播放窗口存在關(guān)系,該關(guān)系可以從特效管理單元302中獲取。假設(shè),調(diào)整之后的大小與視頻播放窗口之間的比例關(guān)系可以為:effectSizeDest(edw,edh)=videoSize(vw,vh)*ρ(ρw,ρh)。假設(shè),特效動畫縮放因子為σ(σw,σh),根據(jù)上述比例關(guān)系可得縮放因子σ(σw,σh)=videoSize(vw,vh)*ρ(ρw,ρh)/effectSize(ew,eh),則特效動畫將會根據(jù)該縮放因子調(diào)整到目標大小,完成對特效動畫大小的調(diào)整。
進一步地,為了使得特效動畫出現(xiàn)在視頻播放窗口中正確的區(qū)域位置上,因此,需要對特效動畫的位置進行調(diào)整。在本發(fā)明實施例中,可以根據(jù)視頻播放窗口的坐標位置和視頻播放窗口的坐標位置,設(shè)置4個特效動畫可能出現(xiàn)的原始位置點,它們分別是:origin1(即,視頻直播平臺的房間窗口左上角)、origin2(即,視頻直播平臺的房間窗口正中)、origin3(即,視頻直播軟件視頻播放窗口左上角)和origin4(即,視頻直播軟件視頻播放窗口正中)。
在本發(fā)明實施例中,每個特效動畫都會包含一個根據(jù)自身大小而設(shè)定的相對偏移值offsize(ox,oy),此值用于美術(shù)人員人工調(diào)整特效動畫的位置。假設(shè),視頻直播平臺的房間窗口的大小為roomSize(rw,rh),視頻播放窗口的相對房間窗口的位置為videoPos(vx,vy),視頻播放窗口大小為videoSize(vw,vh),此時,根據(jù)4個原始位置點就可以計算出對應(yīng)特效動畫的合成位置effectPos(ex,ey),具體如下:
Origin1:特效合成位置位于房間的左上角,則effectPos(ex,ey)=offsize(ox,oy)。
Origin2:特效合成位置位于房間的正中,effectPos(ex,ey)=offsize(ox,oy)+roomSize(rw,rh)/2。
Origin3:特效合成位置相對視頻偏移,effectPos(ex,ey)=offsize(ox,oy)+videoPos(vx,vy)。
Origin4:特效合成位置相對視頻偏移,effectPos(ex,ey)=offsize(ox,oy)+(videoPos(vx,vy)+videoSize(vw,vh)/2)。
時間控制單元702,在特效動畫被觸發(fā)后,所有特效按照被觸發(fā)的時間先后順序進行排隊,進入到特效動畫隊列中,并在時間單元的控制下依次顯示特效動畫。時間控制單元用于觸發(fā)特效的顯示,并控制特效顯示的持續(xù)時長。當(dāng)特效動畫播放完成時,將調(diào)用特效結(jié)束單元704進行資源回收和內(nèi)存釋放。進一步地,時間控制單元在啟動特效顯示單元后,將判斷該特效動畫是否滿足照片的合成條件,如果滿足照片的合成條件,則發(fā)送激活指令到照片合成單元304。假設(shè),用戶送66個棒棒糖的特效動畫給主播,當(dāng)在視頻播放窗口中有大量從天而降的棒棒糖時,則滿足圖片的合成條件;然而,假設(shè)設(shè)定送10個棒棒糖的特效動畫,如果在視頻播放裝口中僅顯示一個閃閃發(fā)光的棒棒糖,則不滿足圖片的合成條件,那么當(dāng)檢測到特效隊列中下一個即將播放的特效為滿足圖片合成條件的“大量從天而降的棒棒糖”特效動畫時,則獲取視頻直播中與預(yù)定條件對應(yīng)的視頻流圖像,并獲取與預(yù)定條件對應(yīng)的對象圖像,并將獲取到的圖形進行合成。
特效顯示單元703,以特效預(yù)處理單元701的輸出作為輸入,在時間控制單元的控制下,在視頻流數(shù)據(jù)上方,顯示特效動畫。
特效結(jié)束單元704,用于結(jié)束并關(guān)閉特效動畫,并回收特效動畫使用的資源,以及重置特效動畫狀態(tài),為下一個特效的播放做準備。
圖8是根據(jù)本發(fā)明實施例的一種照片合成單元的示意圖,如圖8所示,在具體實施中,照片合成單元包含:手勢特征數(shù)據(jù)庫801、手勢動作提醒單元802、倒計時單元803、人臉和手勢識別單元804、視頻圖像獲取單元805、特效圖像獲取單元806和照片圖像合成單元807,其中:
在本發(fā)明實施例中,圖片合成的時間點將決定圖片內(nèi)容是否成功“抓拍”到“最美一刻”,而計算最美一刻的時間點,將由以下單元計算獲得:
手勢特征數(shù)據(jù)庫801,用于存放各種手勢的特征數(shù)據(jù)和對應(yīng)手勢的卡通提示圖標,包含但不限于各種動作及手勢,例如,抱拳手勢、yeah手勢、愛心手勢等各種流行手勢。
當(dāng)照片合成單元被激活時,首先啟動手勢動作提醒單元802,該單元會在手勢特征數(shù)據(jù)庫中指定選擇或者隨機選擇一個手勢,并提示主播擺出相應(yīng)的手勢并準備拍照。例如,主播A收到一個能觸發(fā)拍照的虛擬禮物“恭喜發(fā)財”,那么在特效動畫觸發(fā)的同時,手勢動作提醒單元會從手勢特征數(shù)據(jù)庫中指定選擇抱拳手勢,并在主播側(cè)視頻區(qū)域下方顯示一個抱拳動作的卡通提示圖標,提示主播擺出響應(yīng)手勢。
在照片合成單元被激活時,還可以通過倒計時單元803設(shè)置人臉圖像和主播手勢的識別時間。例如,當(dāng)?shù)褂嫊r開始時進行人臉圖像和主播手勢識別,當(dāng)?shù)褂嫊r結(jié)束后關(guān)閉人臉圖像和主播手勢的識別。
人臉和手勢識別單元804,用于在倒計時單元結(jié)束之前,對視頻流數(shù)據(jù)中的人臉圖像和主播的手勢動作進行檢測和識別。
具體地,在本發(fā)明實施例中,在對人臉圖像和主播的手勢進行識別時,是以視頻幀為單位進行識別,分別每個視頻幀中的人臉圖像和主播手勢進行識別,當(dāng)識別到人臉圖像比較清晰,或者主播的手勢與預(yù)定手勢的相似度值滿足預(yù)定相似度值時,返回人臉圖像的數(shù)據(jù)和主播手勢的動作編碼。其中,人臉圖像的數(shù)據(jù)包含人臉所在矩形的范圍,眼睛,鼻子,嘴唇,耳朵相對人臉矩形的矩形范圍。假設(shè)成功識別到雙手食指拇指組合成一個心型圖案的愛心手勢,則返回手勢動作編碼1。
視頻圖像獲取單元805,用于從視頻流接收單元中獲取實時視頻流圖像。并判斷人臉圖像是否為預(yù)定人臉圖像,其中,當(dāng)判斷出人臉圖像為預(yù)定人臉圖像,即人臉圖像所在的人臉矩形在視頻區(qū)域中所占區(qū)域不大于視頻區(qū)域的2/3,不小于視頻區(qū)域的1/100時,判斷為預(yù)定人臉圖像,即清晰頭像。
因此,在本發(fā)明實施例中,如果識別到清晰的人臉圖像且獲取到正常的手勢編碼,則可以直接從視頻流中獲取視頻流圖像。如果沒有同時獲取到上述信息,則需要在倒計時結(jié)束時,從視頻流中獲取視頻流圖像,其中,視頻圖像獲取單元獲取到的視頻流圖像為不帶特效動畫信息的圖像。
特效圖像獲取單元806,用于從禮物信息數(shù)據(jù)庫中獲取存儲的特效動畫的圖像信息,然后,根據(jù)特效動畫的圖像信息獲取特效圖像(即,上述對象圖像)。
需要說明的是,在本發(fā)明實例中,特效圖像有多種來源,主要包括:
1、存儲在網(wǎng)絡(luò)服務(wù)器上的圖片文件,需要從網(wǎng)絡(luò)服務(wù)器中下載該文件并加載到內(nèi)存中。
2、特效動畫幀描述,特效圖像從特效動畫中獲取對應(yīng)幀作為特效圖像。
照片圖像合成單元807,用于將視頻流圖像與特效圖像合成為最終照片。如果最終合成之后的圖片的尺寸為PictureSize(pw,ph),那么需要將從視頻直播中獲取到的視頻流圖像的尺寸VideoSize(vw,vh)按照第一預(yù)設(shè)比例進行縮放,其中,縮放之后的大小為最終合成之后的圖片的大小,然后繪制到畫布上。第一預(yù)設(shè)比例包括寬度縮放比和高度縮放比,其中,寬度縮放比為:kw=pw/vw,高度縮放比為:kh=ph/vh。
需要說明的是,一般情況下,為了保持圖像不失真,寬度縮放比和長度縮放比應(yīng)該相同,也即,kw=kh。如果在特殊情況下,導(dǎo)致寬度縮放比和長度縮放比不相同時,為保證所有的圖像內(nèi)容都能縮放到最終合成之后的圖片中,則需要使用兩者的較小值作為縮放因子,也即,此時選取的縮放比為:k=min(kw,kh)。按照縮放比對視頻流圖像進行縮放時,最終生成的視頻流圖像的大小為:DestVideoSize(vw’=vw*k,vh’=vh*k)。
在畫布上繪制視頻流圖像之后,就可以依次繪制對象圖像(即,特效圖像)。對象圖像的繪制效果兩種,即效果類型1和效果類型2,其中,效果類型1和效果類型2的添加均基于對象圖像的位置信息:EffectRect(x,y,w,h)。
效果類型1:效果類型1即對象圖像覆蓋整個視頻流圖像,此時,對象圖像的位置信息為:EffectRect(0,0,w,h)。此時,對象圖像可以通過縮放因子k2獲得更加適合的對象圖像,即:EffectRect’(0,0,w’,h’)=EffectRect(0,0,w,h)*k2。
效果類型2:效果類型2即對象圖像處于視頻流圖像中特定位置。首先從視頻圖像中獲取對象圖像顯示的范圍和位置信息,即:EffectRect’(x’,y’,w’,h’)。但是,由于該位置信息和顯示范圍是相對原始的視頻流圖像獲取的,因此需要先將上述獲取到的該位置信息和顯示范圍按照下述方式進行變化,即:EffectRect”(x”,y”,w”,h”)=EffectRect’(x’,y’,w’,h’)*k。然后,將對象圖像的原始大小EffectSize(w,h)按照非等比縮放因子k3(α,β)進行縮放,縮放之后對象圖像的大小為:EffectSize”(w”,h”)=EffectSize(w,h)*k3(α,β)。最后,在畫布的(x”,y”)位置上繪制效果。
圖9是根據(jù)本發(fā)明實施例的一種照片合成單元另一實施例的示意圖,如圖9所示,在另一具體實施例中,圖像合成的另一種實現(xiàn)方式包括:倒計時單元901、合成圖像獲取單元902和合成圖像處理單元903,其中:
倒計時單元901,與圖8中的倒計時單元為同一單元。具體地,當(dāng)在特效動畫顯示在視頻播放窗口上時,可以設(shè)定特效動畫的指定時間即為拍照的時刻,此時間點的描述可以從特效禮物單元中獲取,一般為特效動畫中效果最佳幀的展示時間。倒計時單元在此指定時間點的前3~5s啟動,并在視頻播放窗口中展示倒計時信息,以提示主播和用戶將在倒計時結(jié)束后將進行拍照,并在倒計時結(jié)束時啟動合成圖像獲取單元。
合成圖像獲取單元902,用于從視頻播放窗口中獲取視頻流圖像和特效圖像(即,對象)。該單元可以直接從視頻播放窗口中獲取視頻播放窗口的截圖,并同時將正在播放的特效動畫截獲,此時截獲的特效動畫為設(shè)定中的最佳幀。此處,合成圖像獲取單元獲取到的圖像已包含主播端的視頻流圖像和特效圖像。
合成圖像處理單元903,用于對合成圖像處理單元合成的圖像進行縮放處理,處理得到最終需要的大小。
圖10是根據(jù)本發(fā)明實施例的一種照片后期處理單元的示意圖,如圖10所示,照片后期處理單元包括:照片上傳單元1001、網(wǎng)絡(luò)服務(wù)器1002和照片展示單元1003,其中:
照片上傳單元1001用于將合成的圖片上傳到網(wǎng)絡(luò)服務(wù)器中。
網(wǎng)絡(luò)服務(wù)器1002,用于接收照片上傳單元1001上傳的照片,并對照片進行存儲,和提供查詢和下載服務(wù)。
照片展示單元1003,用于從網(wǎng)絡(luò)服務(wù)器1002中獲取已存儲的當(dāng)前主播的圖片信息,并進行展示。用戶還可以瀏覽該主播的所有照片,而主播在瀏覽照片的同時也可以進行刪除和照片分組。
綜上,在本發(fā)明實施例中,提供了一種視頻直播中的圖像處理方法和裝置,該方法和裝置能夠使得在短暫的禮物特效出現(xiàn)的同時,通過人臉圖像和手勢的識別能夠自動獲取并保存主播的最優(yōu)姿態(tài)和最佳特效的照片,從而讓主播和觀眾在特效照片保存并展示之后能夠回味、品評當(dāng)時那精彩瞬間。
進一步地,本發(fā)明實施例提供的視頻直播中的圖像處理方法和裝置可應(yīng)用在傳統(tǒng)實時視頻直播中,且無需對視頻直播流程和視頻流數(shù)據(jù)進行改動。
進一步地,由于無需對視頻直播流程和視頻流數(shù)據(jù)進行改動,因此,本發(fā)明提供的技術(shù)方案實現(xiàn)了極高的復(fù)用性和移植性,即任何視頻播放系統(tǒng)都無需作太多修改就可以很方便地加載本發(fā)明的裝置進行基于視頻圖像合成的實時特效照片生成。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
在本發(fā)明的上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實現(xiàn)。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可為個人計算機、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。