本發(fā)明屬于視頻領(lǐng)域,尤其涉及一種全景視頻防抖的方法、系統(tǒng)及便攜式終端。
背景技術(shù):
現(xiàn)有技術(shù)提供的全景視頻,當(dāng)戴上vr眼鏡看時(shí),會(huì)讓人感覺惡心、眩暈,vr暈動(dòng)癥是一個(gè)一直未能很好解決的問題,除了硬件方面未能取得突破外,軟件部分也是一個(gè)原因,特別是vr全景視頻,如果使用手持式的全景相機(jī)拍攝,畫面的抖動(dòng)會(huì)進(jìn)一步加速vr暈動(dòng)癥的產(chǎn)生。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種全景視頻防抖的方法、系統(tǒng)及便攜式終端,旨在解決畫面的抖動(dòng)會(huì)進(jìn)一步加速vr暈動(dòng)癥的產(chǎn)生的問題。
第一方面,本發(fā)明提供了一種全景視頻防抖的方法,所述方法包括:
實(shí)時(shí)獲取便攜式終端的當(dāng)前狀態(tài)時(shí)間戳、加速度計(jì)數(shù)值和角速度數(shù)值;
利用擴(kuò)展卡爾曼濾波結(jié)合加速度計(jì)數(shù)值和角速度數(shù)值,估計(jì)當(dāng)前狀態(tài)的旋轉(zhuǎn)向量;
根據(jù)當(dāng)前狀態(tài)的旋轉(zhuǎn)向量通過羅德里格旋轉(zhuǎn)公式計(jì)算到當(dāng)前的旋轉(zhuǎn)矩陣;
根據(jù)當(dāng)前的旋轉(zhuǎn)矩陣旋轉(zhuǎn)全景圖像,生成穩(wěn)定的視頻幀。
第二方面,本發(fā)明提供了一種全景視頻防抖的系統(tǒng),所述系統(tǒng)包括:
獲取模塊,用于實(shí)時(shí)獲取便攜式終端的當(dāng)前狀態(tài)時(shí)間戳、加速度計(jì)數(shù)值和角速度數(shù)值;
估計(jì)模塊,用于利用擴(kuò)展卡爾曼濾波結(jié)合加速度計(jì)數(shù)值和角速度數(shù)值,估計(jì)當(dāng)前狀態(tài)的旋轉(zhuǎn)向量;
計(jì)算模塊,用于根據(jù)當(dāng)前狀態(tài)的旋轉(zhuǎn)向量通過羅德里格旋轉(zhuǎn)公式計(jì)算到當(dāng)前的旋轉(zhuǎn)矩陣;和
視頻幀生成模塊,用于根據(jù)當(dāng)前的旋轉(zhuǎn)矩陣旋轉(zhuǎn)全景圖像,生成穩(wěn)定的視頻幀。
第三方面,本發(fā)明提供了一種便攜式終端,包括存儲(chǔ)器和處理器,所述處理器和所述存儲(chǔ)器通過總線連接;所述存儲(chǔ)器用于存儲(chǔ)一組程序代碼,所述處理器用于調(diào)用所述存儲(chǔ)器中存儲(chǔ)的程序代碼,執(zhí)行如下操作:
實(shí)時(shí)獲取便攜式終端的當(dāng)前狀態(tài)時(shí)間戳、加速度計(jì)數(shù)值和角速度數(shù)值;
利用擴(kuò)展卡爾曼濾波結(jié)合加速度計(jì)數(shù)值和角速度數(shù)值,估計(jì)當(dāng)前狀態(tài)的旋轉(zhuǎn)向量;
根據(jù)當(dāng)前狀態(tài)的旋轉(zhuǎn)向量通過羅德里格旋轉(zhuǎn)公式計(jì)算到當(dāng)前的旋轉(zhuǎn)矩陣;
根據(jù)當(dāng)前的旋轉(zhuǎn)矩陣旋轉(zhuǎn)全景圖像,生成穩(wěn)定的視頻幀。
因?yàn)榧铀俣扔?jì)數(shù)值估計(jì)出的角度,容易受到干擾(如行走,徒步,奔跑等),隨著時(shí)間的累積,角速度的累積誤差會(huì)越來越大。在本發(fā)明中,由于利用擴(kuò)展卡爾曼濾波結(jié)合加速度計(jì)數(shù)值和角速度數(shù)值,估計(jì)當(dāng)前狀態(tài)的旋轉(zhuǎn)向量,并根據(jù)當(dāng)前狀態(tài)的旋轉(zhuǎn)向量通過羅德里格旋轉(zhuǎn)公式計(jì)算到當(dāng)前的旋轉(zhuǎn)矩陣,然后旋轉(zhuǎn)全景圖像,因此最終能穩(wěn)定抖動(dòng)的視頻幀,能減輕vr暈動(dòng)癥。
附圖說明
圖1是本發(fā)明實(shí)施例一提供的全景視頻防抖的方法的流程圖。
圖2是本發(fā)明實(shí)施例一提供的全景視頻防抖的方法中的s102的流程圖。
圖3是本發(fā)明實(shí)施例二提供的全景視頻防抖的系統(tǒng)的示意圖。
圖4是本發(fā)明實(shí)施例三提供的便攜式終端的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實(shí)施例來進(jìn)行說明。
實(shí)施例一:
請(qǐng)參閱圖1,本發(fā)明實(shí)施例一提供的全景視頻防抖的方法包括以下步驟:
s101、實(shí)時(shí)獲取便攜式終端的當(dāng)前狀態(tài)時(shí)間戳、加速度計(jì)數(shù)值和角速度數(shù)值。
在本發(fā)明實(shí)施例一中,
實(shí)時(shí)獲取便攜式終端的加速度計(jì)數(shù)值具體可以是:利用重力感應(yīng)器讀取三軸加速度計(jì)數(shù)值。
實(shí)時(shí)獲取便攜式終端的角速度數(shù)值具體可以是:利用角速度感應(yīng)器讀取三軸角速度數(shù)值。
在本發(fā)明實(shí)施例一中,s101之后還可以包括以下步驟:
利用低通濾波對(duì)加速度計(jì)數(shù)值和角速度數(shù)值進(jìn)行降噪處理。具體可以包括以下步驟:
通過公式d'i=α·di+(1-α)·d'i-1分別對(duì)加速度計(jì)數(shù)值和角速度數(shù)值進(jìn)行低通濾波降噪處理,其中,di表示第i時(shí)刻的加速度計(jì)數(shù)值或角速度數(shù)值;d'i表示第i時(shí)刻經(jīng)過低通濾波后的加速度計(jì)數(shù)值或角速度數(shù)值;d'i-1表示第i-1時(shí)刻時(shí)濾波后的加速度計(jì)數(shù)值或角速度數(shù)值;α表示平滑因子,
s102、利用擴(kuò)展卡爾曼濾波(extendedkalmanfiltering)結(jié)合加速度計(jì)數(shù)值和角速度數(shù)值,估計(jì)當(dāng)前狀態(tài)的旋轉(zhuǎn)向量。
擴(kuò)展卡爾曼濾波是將非線性系統(tǒng)線性化,然后進(jìn)行卡爾曼濾波,卡爾曼濾波是一種高效率的遞歸濾波器,它能夠從一系列的不完全包含噪聲的測(cè)量中,估計(jì)動(dòng)態(tài)系統(tǒng)的狀態(tài)。
請(qǐng)參閱圖2,在本發(fā)明實(shí)施例一中,s102具體可以包括以下步驟:
s1021、利用角速度數(shù)值計(jì)算k時(shí)刻的狀態(tài)轉(zhuǎn)移矩陣fk;利用加速度計(jì)數(shù)值,結(jié)合參考坐標(biāo)系下重力矢量g和上一狀態(tài)的旋轉(zhuǎn)矩陣計(jì)算當(dāng)前時(shí)刻預(yù)測(cè)余量
在本發(fā)明實(shí)施例一中,s1021具體可以包括以下步驟:
對(duì)初始狀態(tài)轉(zhuǎn)移矩陣、初始預(yù)測(cè)協(xié)方差矩陣和初始觀測(cè)矩陣進(jìn)行初始化,其中,初始狀態(tài)轉(zhuǎn)移矩陣
計(jì)算k時(shí)刻的狀態(tài)轉(zhuǎn)移矩陣
把參考系坐標(biāo)系下的垂直向下的重力加速度投影到剛體坐標(biāo)系下,通過公式
s1022、利用上一狀態(tài)的估計(jì)誤差協(xié)方差矩陣pk-1|k-1、當(dāng)前狀態(tài)的狀態(tài)轉(zhuǎn)移矩陣fk和過程噪聲q估計(jì)當(dāng)前狀態(tài)的誤差協(xié)方差矩陣pk|k-1;
在本發(fā)明實(shí)施例一中,s1022具體可以利用公式
s1023、利用估計(jì)的當(dāng)前狀態(tài)的誤差協(xié)方差矩陣pk|k-1、觀測(cè)矩陣hk和噪聲方差矩陣r計(jì)算當(dāng)前狀態(tài)的最優(yōu)卡爾曼增益矩陣kk;
在本發(fā)明實(shí)施例一中,s1023具體可以包括以下步驟:
利用狀態(tài)預(yù)測(cè)估計(jì)協(xié)方差矩陣pk|k-1來計(jì)算k時(shí)刻的最優(yōu)卡爾曼增益矩陣kk,
s1024、根據(jù)當(dāng)前狀態(tài)的最優(yōu)卡爾曼增益矩陣kk和當(dāng)前時(shí)刻預(yù)測(cè)余量
在本發(fā)明實(shí)施例一中,s1024具體可以包括以下步驟:
更新狀態(tài)估計(jì)得到k時(shí)刻通過融合加速度計(jì)數(shù)值和角速度數(shù)值得到的當(dāng)前狀態(tài)的旋轉(zhuǎn)向量
s103、根據(jù)當(dāng)前狀態(tài)的旋轉(zhuǎn)向量通過羅德里格旋轉(zhuǎn)公式計(jì)算到當(dāng)前的旋轉(zhuǎn)矩陣。
羅德里格旋轉(zhuǎn)公式是計(jì)算三維空間中,一個(gè)向量繞旋轉(zhuǎn)軸旋轉(zhuǎn)給定角度以后得到的新向量的計(jì)算公式。這個(gè)公式使用原向量,旋轉(zhuǎn)軸及它們叉積作為標(biāo)架表示出旋轉(zhuǎn)以后的向量。
s104、根據(jù)當(dāng)前的旋轉(zhuǎn)矩陣旋轉(zhuǎn)全景圖像,生成穩(wěn)定的視頻幀。
在本發(fā)明實(shí)施例一中,s104具體可以包括以下步驟:
把經(jīng)緯圖像上的點(diǎn)映射到球型圖像的點(diǎn);
遍歷單位球上的所有點(diǎn),利用當(dāng)前的旋轉(zhuǎn)矩陣對(duì)單位球上的所有點(diǎn)進(jìn)行旋轉(zhuǎn),生成穩(wěn)定的視頻幀。
其中,利用當(dāng)前的旋轉(zhuǎn)矩陣對(duì)單位球上的所有點(diǎn)進(jìn)行旋轉(zhuǎn)具體可以采用以下的公式:
實(shí)施例二:
請(qǐng)參閱圖3,本發(fā)明實(shí)施例二提供的全景視頻防抖的系統(tǒng)包括:
獲取模塊11,用于實(shí)時(shí)獲取便攜式終端的當(dāng)前狀態(tài)時(shí)間戳、加速度計(jì)數(shù)值和角速度數(shù)值;
估計(jì)模塊12,用于利用擴(kuò)展卡爾曼濾波結(jié)合加速度計(jì)數(shù)值和角速度數(shù)值,估計(jì)當(dāng)前狀態(tài)的旋轉(zhuǎn)向量;
計(jì)算模塊13,用于根據(jù)當(dāng)前狀態(tài)的旋轉(zhuǎn)向量通過羅德里格旋轉(zhuǎn)公式計(jì)算到當(dāng)前的旋轉(zhuǎn)矩陣;和
視頻幀生成模塊14,用于根據(jù)當(dāng)前的旋轉(zhuǎn)矩陣旋轉(zhuǎn)全景圖像,生成穩(wěn)定的視頻幀。
在本發(fā)明實(shí)施例二中,所述系統(tǒng)還可以包括:
降噪模塊,用于利用低通濾波對(duì)加速度計(jì)數(shù)值和角速度數(shù)值進(jìn)行降噪處理。
所述估計(jì)模塊具體可以包括:
預(yù)測(cè)余量計(jì)算模塊,用于利用角速度數(shù)值計(jì)算k時(shí)刻的狀態(tài)轉(zhuǎn)移矩陣fk;利用加速度計(jì)數(shù)值,結(jié)合參考坐標(biāo)系下重力矢量g和上一狀態(tài)的旋轉(zhuǎn)矩陣計(jì)算當(dāng)前時(shí)刻預(yù)測(cè)余量
誤差協(xié)方差矩陣估計(jì)模塊,用于利用上一狀態(tài)的估計(jì)誤差協(xié)方差矩陣pk-1|k-1、當(dāng)前狀態(tài)的狀態(tài)轉(zhuǎn)移矩陣fk和過程噪聲q估計(jì)當(dāng)前狀態(tài)的誤差協(xié)方差矩陣pk|k-1;
最優(yōu)卡爾曼增益矩陣計(jì)算模塊,用于利用估計(jì)的當(dāng)前狀態(tài)的誤差協(xié)方差矩陣pk|k-1、觀測(cè)矩陣hk和噪聲方差矩陣r計(jì)算當(dāng)前狀態(tài)的最優(yōu)卡爾曼增益矩陣kk;
更新模塊,用于根據(jù)當(dāng)前狀態(tài)的最優(yōu)卡爾曼增益矩陣kk和當(dāng)前時(shí)刻預(yù)測(cè)余量
所述視頻幀生成模塊具體可以包括:
映射模塊,用于把經(jīng)緯圖像上的點(diǎn)映射到球型圖像的點(diǎn);
旋轉(zhuǎn)模塊,用于遍歷單位球上的所有點(diǎn),利用當(dāng)前的旋轉(zhuǎn)矩陣對(duì)單位球上的所有點(diǎn)進(jìn)行旋轉(zhuǎn),生成穩(wěn)定的視頻幀。
實(shí)施例三:
圖4示出了本發(fā)明實(shí)施例三提供的便攜式終端的具體結(jié)構(gòu)框圖,該便攜式終端100可以用于實(shí)施上述實(shí)施例中提供的全景視頻防抖的方法和系統(tǒng)。
請(qǐng)參閱圖4,本發(fā)明實(shí)施例三提供的便攜式終端100可以包括有一個(gè)或一個(gè)以上(圖中僅示出一個(gè))計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的存儲(chǔ)器101、包括有一個(gè)或者一個(gè)以上(圖中僅示出一個(gè))處理核心的處理器102、顯示模塊103以及電源104等部件。本領(lǐng)域技術(shù)人員可以理解,圖4中示出的便攜式終端并不構(gòu)成對(duì)便攜式終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:處理器102和存儲(chǔ)器101通過總線連接;存儲(chǔ)器101可用于存儲(chǔ)軟件程序以及模塊,如上述實(shí)施例中全景視頻防抖的方法和系統(tǒng)對(duì)應(yīng)的程序指令/模塊,處理器102用于調(diào)用存儲(chǔ)器101中存儲(chǔ)的程序代碼,執(zhí)行如下操作:
實(shí)時(shí)獲取便攜式終端的當(dāng)前狀態(tài)時(shí)間戳、加速度計(jì)數(shù)值和角速度數(shù)值;
利用擴(kuò)展卡爾曼濾波結(jié)合加速度計(jì)數(shù)值和角速度數(shù)值,估計(jì)當(dāng)前狀態(tài)的旋轉(zhuǎn)向量;
根據(jù)當(dāng)前狀態(tài)的旋轉(zhuǎn)向量通過羅德里格旋轉(zhuǎn)公式計(jì)算到當(dāng)前的旋轉(zhuǎn)矩陣;
根據(jù)當(dāng)前的旋轉(zhuǎn)矩陣旋轉(zhuǎn)全景圖像,生成穩(wěn)定的視頻幀。
因?yàn)榧铀俣扔?jì)數(shù)值估計(jì)出的角度,容易受到干擾(如行走,徒步,奔跑等),隨著時(shí)間的累積,角速度的累積誤差會(huì)越來越大。在本發(fā)明中,由于利用擴(kuò)展卡爾曼濾波結(jié)合加速度計(jì)數(shù)值和角速度數(shù)值,估計(jì)當(dāng)前狀態(tài)的旋轉(zhuǎn)向量,并根據(jù)當(dāng)前狀態(tài)的旋轉(zhuǎn)向量通過羅德里格旋轉(zhuǎn)公式計(jì)算到當(dāng)前的旋轉(zhuǎn)矩陣,然后旋轉(zhuǎn)全景圖像,因此最終能穩(wěn)定抖動(dòng)的視頻幀,能減輕vr暈動(dòng)癥。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì),如rom/ram、磁盤、光盤等。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。