本發明涉及一種雙目視覺立體匹配方法,尤其是涉及一種基于全景拼接凝視技術的雙目視覺立體匹配方法。
背景技術:
在變電站場所,需要安裝攝像機對相關區域進行監控。傳統攝像機由于拍攝范圍有限,只能看到攝像頭前方很小一部分的場景,存在監控盲區和監控死角,影響了實際的監控效果。在這種情況下,為了進行更大范圍的監控,只能安裝多個攝像機,分別對不同的角度和方向進行監控,由于攝像機數量較多,不但增加了成本,而且對于監控觀察也會產生不利影響。
技術實現要素:
本發明所要解決的技術問題在于提供一種基于全景凝視技術的雙目視覺立體匹配方法,成本低有利監控觀察,實現全景監控和定點跟蹤的目標,提升用戶體驗。
解決上述技術問題,本發明采用的技術方案如下:
一種基于全景拼接凝視技術的雙目視覺立體匹配方法,其特征是包括以下步驟:
S1,采用全景攝像機進行全景監控,獲取180度全景圖像;
S2,采用PTZ攝像機對全景圖像中需要監控的細節目標進行重點的凝視觀察;
S3,采用圖像分析融合拼接技術形成全景凝視運動目標定位監測雙目視覺立體匹配180度凝視圖;
所述的步驟S3包括以下子步驟:
S3-0,采集多路視頻圖像
S3-1,特征點提取;
S3-2,特征點匹配;
S3-3,采用RanSac+4點法求單應性矩陣H;
S3-4,從H中提取焦距f與相機姿態R;
S3-5,光束法平差優化;
S3-6,將每路圖像投影到統一的球面展開圖;
S3-7,基于最大流算法的最優拼縫查找;
S3-8,光照補償參數計算;
S3-9,多頻帶混合;
S3-10,從源圖像到拼接圖像映射計算;
S3-11,建立映射表;
S3-12,形成拼接圖像;
S3-13,輸出全景凝視雙目視覺立體匹配圖像。
所述的單應性矩陣是指:把源圖像平面上的點集位置與目標圖像平面上的點相關聯。
本發明的算法分為“拼接初始化”與“主拼接”;
主拼接根據一張映射表直接將參與拼接的多路視頻圖像投影到最終的全景圖像上,輸出拼接結果后即進行下一幀的全景凝視圖像;
拼接初始化的任務就是生成所述的映射表,拼接初始化又進一步劃分為“初始化一”與“初始化二”;
“初始化一”根據相機組在當前狀態下拍攝的圖像,估計得到一組運動參數:包括每個相機的焦距f與相機的姿態矩陣R;
通過f與R,將原始圖像投影到統一的球面或柱面上,完成圖像從分到合的過程。
從三維點到圖像中的二維點,需要經過外參矩陣與內參矩陣的投影,外參矩陣包含相機姿態矩陣R與平移矩陣t,由于假設相機光心重合,所以t默認為0,不予考慮;而內參矩陣中為圖像中心點(u0,v0)以及兩個方向的等效焦距fu,fv,這里默認f=fu=fv,而u0,v0分別為圖像兩個方向上分辨率的一半。
所述的全景攝像機為180度多鏡頭全景攝像機。
本發明采用全景攝像機進行全景監控,獲取180度全景圖像,采用PTZ攝像機對全景圖像中需要監控的細節目標進行重點的凝視觀察,采用圖像分析技術對全景攝像機獲取的180度全景圖像解畸變,實現全景正常畫面展現和多種分割方式顯示,最終展現全景“視頻地圖”;通過全景攝像機和PTZ攝像機進行聯動操作,實現在“視頻地圖”中手動鎖定或預置位自動觸發鎖定運動目標來觸發PTZ攝像機進行自主自動的PTZ跟蹤,并自動控制PTZ攝像機的云臺進行全方位旋轉,針對被鎖定的運動目標進行視覺導向的自動跟蹤,以確保跟蹤目標持續出現在鏡頭中央,實現全景監控和定點跟蹤。
前述的基于全景凝視技術的運動目標定位雙目視覺立體匹配方法中,所述的PTZ攝像機的云臺控制可以放大或移動監控視野內的圖像區域,當轉變方向觀察另一個圖像區域時,不會發出任何噪音,隱秘且不易察覺。
有益效果:與現有技術相比,本發明通過全景攝像機和球機進行聯動操作,實現全景監控和定點跟蹤的目標,充分發揮了180度多攝像機全景攝像機與PTZ攝像機兩類攝像機的優勢,同時克服了他們各自的缺陷,滿足了變電站場所對大視場監控以及對局部目標進行重點監控的需求,提升了用戶體驗。
附圖說明
圖1是本發明的全景凝視雙目視覺立體匹配圖像方法;
圖2是本發明的雙目視覺立體聯動設備;
圖3將每路圖像投影到統一的球面展開,重合區域內的最優拼縫結果圖;
圖4重合區域內的最優拼縫結果圖;
圖5四個通道圖像的最優拼縫查找結果。
具體實施方式
下面結合附圖和具體實現過程對本發明作進一步的詳細說明。
本發明的基于全景拼接凝視技術的雙目視覺立體匹配方法實施例一,包括以下步驟:
S1,采用全景攝像機進行全景監控,獲取180度全景圖像;
S2,采用PTZ攝像機對全景圖像中需要監控的細節目標進行重點的凝視觀察;
S3,采用圖像分析融合拼接技術形成全景凝視運動目標定位監測雙目視覺立體匹配180度凝視圖;
步驟S3包括以下子步驟:
S3-0,采集多路視頻圖像
S3-1,特征點提取;
S3-2,特征點匹配;
S3-3,采用RanSac+4點法求單應性矩陣H;
(單應性矩陣是指:把源圖像平面上的點集位置與目標圖像平面上的點相關聯。)
S3-4,從H中提取焦距f與相機姿態R;
S3-5,光束法平差優化;
S3-6,將每路圖像投影到統一的球面展開圖;
S3-7,基于最大流算法的最優拼縫查找;
S3-8,光照補償參數計算;
S3-9,多頻帶混合;
S3-10,從源圖像到拼接圖像映射計算;
S3-11,建立映射表;
S3-12,形成拼接圖像;
S3-13,輸出全景凝視雙目視覺立體匹配圖像。
將每路圖像投影到統一的球面展開圖,根據K和R就可以將每個通道的圖像投影到一個統一的球面上,投影后再將球面展開為矩形圖像所示,原始的矩形圖像會產生一些扭曲,投影后的圖像區域用白色表示,外側的黑邊為無效的像素。
直接將原始圖像中的所有信息都投影到球面上是不恰當的,由于畸變、參數誤差等原因,重合區域并非每個像素點都對應得非常準確,即使偏離1個像素,也會導致重合區域變得模糊。
一種解決方案是確定一條拼接縫,拼縫的兩側分別使用不同通道的圖像來填充,如圖4所示就使用了比較簡單的直線拼縫。可以看到,這樣的接縫可以避免模糊,但拼縫兩側的紋理并不能很好地“無縫連接”,也就是說拼縫過于明顯了。而防止重合區域模糊與防止拼縫過于明顯就構成了一個難以解決的兩難問題。
基于最大流分析的最優拼縫查找算法,提供了一種解決方案,它在重合區域內尋找一條路徑,該路徑要求兩側的紋理差異最小。這種方案即使不能保證該拼縫使模型誤差最小,也能令當前圖像對在視覺上最連續、流暢。圖5展示了這一模塊的效果
從源圖像到拼接圖像的映射表計算
由于上述拼縫在處理后仍然具體一定的寬度,所以需要計算構成重合區域的原始圖像的權重,進行歸一化處理。由于光照補償模塊暫未實現,多頻帶混合模塊在當前應用中只體現為權重的更新。所以,算法流程走下來,就得到了如圖5所示的全景拼接圖像。
當然,上述處理過程是從一無所知到拼接結束的所有過程,一些初始化在特征情況下只要執行一次,或一段時間執行一次就可以了。
a)在相機內外參數不變的前提下,拼接初始化一,只需要出廠時執行一次即可。若相機硬件無法做到震動無影響,也可以提供另外的標定軟件,可不在相機前端集成。
b)最優拼縫查找、光照補償、多頻帶混合模塊可根據應用場景選擇執行頻率,一般執行一次可隔一段時間再更新。如果前端計算資源足夠,每一幀圖像都執行效果最好。
映射表結構體:
在運動參數R,K以及拼縫、混合權重確定之后,可以計算從源圖像到全景圖像的映射表,其結構體如下:
typedef struct
{
int addr;
int addr_s;
unsigned short a0;
unsigned short a1;
unsigned short a2;
unsigned short a3;
float weight;
}map_info;
映射關系算法:
由于拼縫查找和黑邊切割等處理,并非源圖像中的每一點都對最終的全景圖像有貢獻,所以map_info中同時包含addr與addr_s,在投影到球面以及球面展開時,需要使用插值以保證圖像的成像質量,一般至少使用4點插值,需要記錄4個系數a0~a3,為了避免系數使用浮點型帶來不便,系數使用unsigned short型,最后用于歸一化的分母與圖像混合時的權重放在一起,作為整體的權重weight。在新一幀拼接開始前,目標緩存置0,具體映射關系如下:
p_d_Y[idx_d]+=(cur_map[i].a0*p_s_Y[idx_s]+cur_map[i].a1*
p_s_Y[idx_s+1]+cur_map[i].a2*p_s_Y[idx_s+m_widestep]+
cur_map[i].a3*p_s_Y[idx_s+m_widestep_1])*cur_map[i].weight;
若圖像使用YUV格式,由于UV通道數據每2*2個像素使用同一個UV值,可以不使用4點插值,則查找表的結構體可簡化為:
typedef struct
{
float weight;
int addr;
int addr_s;
}map_info_UV;
具體映射關系為:
p_d_U[idx_d]+=p_s_U[idx_s]*cur_map_UV[i].weight;
p_d_V[idx_d]+=p_s_V[idx_s]*cur_map_UV[i].weight;
特征點匹配算法:
利用特征向量的歐氏距離作為兩幅圖像關鍵點的相似性度量。例如,已知一幅圖像上某一特點Xi,另一幅是待匹配圖像上的某一特征點為Yj。本文中Xi和Yj表示描述特征點的128維向量。若||Xi-Yj||2小于某一個閾值,就認為兩者匹配。該方法必須事先指定一個全局閾值,因此閾值大小的確定會直接影響匹配的結果,使得有時獲得的匹配效果并不好。在上述方法的基礎上,又有學者提出一種較好的方法:將最小值與次小值進行比較,若小于某一定值就接受。它的算法大致描述如下:
(1)SIFT算法檢測兩幅待拼接圖像1和2,其特征點分別為Xi和Yj;
(2)對圖1中的每個特征點Xi與圖2中的n個特征點分別求歐式距離,按從小到大對距離進行排序,記為d1,d2,…,dn;
(3)設定閾值t,若圖1中點Xi與圖2中的點Yj的距離最小為d1,次近鄰距離為d2,并且d1/d2<t,則接受點Xi與點Yj為匹配點。