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