天天看點

多路視訊實時全景拼接算法

本文原載于我們的首頁,轉載于此。

多路視訊實時全景拼接算法是我們比較成熟的産品算法,具體Demo可參見我們的Youku首頁。

多路視訊實時全景拼接算法

功能

本算法子產品對來自多路錄影機的視訊圖像進行實時的無縫拼接融合,形成一路具有更寬視角的視訊。特别的,可以輸出360度全景視訊,甚至360度*180度的球面全景。

算法分為兩部分,一部分為标定過程,在進行實時拼接前,通過拍攝場景圖檔,計算各相機的畸變系數和相機之間的變換系數;另一部分為實時拼接過程,利用前面計算出的變換系數對來自各相機的圖像進行實時去畸變、拼接,曲面投影,MultiBand融合。

根據使用者需要,算法可以将全景圖投影到圓柱面、球面等曲面上。

性能

子產品基于CUDA實作,使用CUDA顯示卡完成計算,CPU開銷很低。

測試環境:

GTX750Ti,I7 4790k 睿頻4GHz,8G DDR3 2400MHz,Win8 64.

六路1920*1080拼接,輸出6912*1024:

17fps,CPU總占用率百分之15(包含測試程式中未優化的視訊解碼、顯示等開銷)。

四路704*576拼接,輸出1824*544;

80fps,CPU總占用率百分之12(包含測試程式中未優化的視訊解碼、顯示等開銷)。

适用場景與限制

首先,算法要求各相機間的相對位置、角度在實時拼接過程中保持固定,且相鄰相機的視野有一定重合區域。

理論上能夠變換到同一視角下進行無縫拼接的場景有兩種,一種是多錄影機共中心放置,中心開花狀;一種是錄影機位置任意,但場景是一個平面。當場景為遠景,且場景-錄影機距離遠大于錄影機之間的距離時,也可以近似看做第二種情形。上述情形之外的情況均不可拼,這是一個原則性的限制。

理論上算法對輸入視訊路數、輸出分辨率沒有限制,實際應用中這個限制來自于顯示卡計算能力和顯存大小。

由于基于CUDA,是以算法可以擴充到多顯示卡并行處理(目前仍是單顯示卡架構),這樣就可以實作大規模拼接與融合的處理。

應用

本算法可以應用于安防監控、智能交通、衛星照片拼接、虛拟場景等領域。

優勢

本子產品較同類産品的突出優勢是性能,由于基于CUDA顯示卡計算,子產品具有高度的實時處理能力,能保證在簡單的單顯示卡上實作出高分辨率多路視訊拼接融合的功能,或者在多顯示卡計算環境下實作大規模視訊/圖檔拼接融合的任務。

基于CUDA計算的另一個優勢是,較FPGA等方案,開發周期更短,易維護且成本低廉。目前Nvidia已經推出基于Tegra的嵌入式開發元件Jetson TK1,本子產品可以容易的從PC平台移植到嵌入式平台。

繼續閱讀