1. 程式人生 > >雙攝像頭的實時視訊拼接及目標跟蹤(五)

雙攝像頭的實時視訊拼接及目標跟蹤(五)

實時視訊拼接速度的優化方案

優化方案,提高拼接速度

根據之前章節的方法,進行初步視訊拼接得到的效果,其速度並不是最快,需要進行一定的優化。通過實驗,得到下面幾種優化方式。

1.程式碼執行的環境是在VS2017上執行的,其中有兩種執行模式,分別為Debug模式和Release模式。由於Debug中包含了很多除錯資訊,會插入大量的檢查,並且編譯器編優化程度不一樣,Realease模式的編譯器優化程度遠遠優於Debug模式,通過實驗對比,程式碼在Release模式下執行的速度式Debug模式下的七八倍。因此,配置好Release模式的相關環境,,選擇Release模式執行程式碼,對程式進行優化,提高拼接速度。

2.通過改變輸入影象的解析度來提高拼接速度。輸入影象解析度越高,則包含越多的影象資訊,細節越多,處理起來將會耗費更多的計算機資源,因此,拼接速度將會減慢。為了提高拼接速度,可以採用對輸入的視訊進行降低解析度處理。降低解析度的原理和處理方法如下:

對於影象的尺度而言,必然會聯絡到影象金字塔模型,其可以以多解析度來解釋影象,所以一種方法是對影象建立金字塔,金字塔從上至下, 尺寸逐漸增大,解析度增加,因此,只需對輸入影象進行下采樣,來縮小輸入解析度。Opencv庫中pyrDown()函式可用來對影象進行下采樣。

另一種方法是對輸入影象直接進行縮放,即對輸入的影象重新定義尺寸大小,為了儘可能地不丟失影象的資訊,先得到輸入影象最原始的尺寸,然後再對影象的長和寬按相同比例進行縮放,得到新的影象尺寸,減少了影象中的冗餘資訊opencv庫中可以通過resize()函式來重新定義圖片尺寸。 兩種方法對於降低圖片解析度而言,選用resize()函式直接重新定義影象尺寸更加方便快捷,計算量較小。

3.對運動物體檢測進行優化,不判定整個重疊區域,而是在重疊區域內自選ROI區域進行運動物體檢測,這樣可以有效地減少直方圖統計的計算量。但是,由於圖片容易受到光照,噪聲等環境因素的影響,所選的區域不能太小,否則,統計出來的直方圖將不具有代表性,對於直方圖對比時閾值的選取將會更為苛刻。

並且由於每次重新更新拼接模板時,重疊區域的邊界座標都會發生變化,每次都需要重新傳入新的座標引數,所以為了減少傳參的麻煩,手動選取重合區域內的某一個矩形ROI區域,固定該矩形四點的座標值。通過減少自選更小的運動檢測區域,小幅度提高了拼接速度。

4.儘可能的減少兩個攝像頭的重疊區域,一方面,倘若兩個攝像頭重疊區域較多,即兩幅影象的內容幾乎一致,無法得到更寬闊的視野,則生成的拼接影象將失去了拼接的意義,使得視訊拼接不划算;另一方面,儘可能地減少重合區域,可以使提取的特徵點數量減少,使之後特徵點的匹配篩選以及後續相機引數的估計的相關計算量降低,有效的提高拼接速度。

5.對於演算法和引數的選擇,體現在以下幾部分。

第一,特徵點尋找演算法,通過影象拼接章節的特徵點提取演算法介紹,實驗中有SURF和ORB兩種演算法,其中SURF演算法使SIFT演算法的改進,比SIFT快一個數量級,ORB使FAST演算法的改進,比SURF要快一個數量級。SURF速度較ORB慢,但是對於較小重疊區域的優質匹配特徵點提取,效果較好。但是對於縮放後的小解析度輸入影象,且重疊區域較小時,獲得的優質匹配特徵點較少,將造成兩幅影象無法匹配。因此,綜合速度以及質量的考慮,由於ORB速度理論上比SURF要快10倍,優先選取ORB演算法,而相對增加重疊區域的重合面積。

第二,對影象投影平面的選擇,實驗中,有多種投影方式,通過實驗對比處理影象投影變換所耗費的時間,柱面投影是計算速度最快的,因此優先選擇柱面投影。

第三,由於只是兩路攝像頭的視訊拼接,不需要擔心投影平面出現蛇形的情況,所以不需要使用波形校正,從而節約計算機資源。

第四,根據實驗時在相關場景下得到的拼接視訊效果,觀察其重疊區域的曝光程度,若重疊區域的曝光亮度差不明顯,則選擇不採用曝光補償從而一定程度的減少計算機的運算量。

通過以上四步,可以使得計算拼接模板的速度大幅度提高,但是也無法改變在重疊區域檢測到運動物體時,重新更新拼接模板所佔用的時間導致幀率大幅度下降這個問題。因此實驗中對於拼接模板的更新,採用折中辦法,只要做到拼接模板更新時,前後幀的連續性較高,不卡頓即可。

第五,融合演算法的選擇。融合速度決定了整個視訊拼接的速度,融合演算法速度越快,則拼接速度也越快。實驗中,根據第三章影象融合章節所提到的,有兩種融合演算法可選,分別為羽化融合(漸入漸出融合)以及多頻段融合。因為多頻段融合是對兩幅影象分別建立拉普拉斯金字塔,再對兩個影象拉普拉斯金字塔的相同層進行加權融合,最後再進行拉普拉斯逆變換得到最終的融合影象,相當於是對多個影象進行了融合,其複雜度太高,計算時間耗費高於漸入漸出融合,所以在實驗時,優先選擇漸入漸出融合,通過調整加權係數,來得到比較好的融合影象,倘若效果不好,只能犧牲拼接速度,改用多頻段融合方法。

經過以上五個步驟,根據上述方法做相應的優化,得到的是資料結果如下所示,通過降低輸入影象的解析度,選擇ORB演算法進行特徵點提取,並且並用柱面投影方式進行影象變換,選用羽化融合(漸入漸出融合)進行影象融合,並利用Release模式執行程式碼,可以很大程度的提高視訊拼接的速度。

在這裡插入圖片描述