本申請涉及計算機視覺技術領域,尤其涉及一種相機標定方法、裝置及電子設備。
背景技術:
在計算機視覺領域,為了獲得理想的三維(3D)效果,需要確定各相機之間的相對位置?,F有技術中的相機標定方法,通常需借助一個標準的標定板(如標準棋格板),用雙目/多目相機同時對該標定板進行多次采樣,以采集到足夠的樣本圖像。在采樣樣本圖像時,要盡可能多地改變標定板擺放的姿態(tài)和位置,且在采樣樣本圖像時需要一定的技巧以便采集到的樣本圖像更加有效,因此該種標定方法需要在專業(yè)的實驗室環(huán)境來實現,標定過程時間長。
技術實現要素:
有鑒于此,本申請?zhí)峁┮环N新的技術方案,可以避免標定過程中的人工干預,提高相機標定的效率。
為實現上述目的,本申請?zhí)峁┘夹g方案如下:
根據本申請的第一方面,提出了一種相機標定方法,包括:
確定第一相機拍攝的第一原始圖像與第二相機拍攝的第二原始圖像之間相匹配的第一特征點集和第二特征點集;
基于所述第一相機的第一組外參數,將所述第一特征點集映射到參考映射面,得到第一映射點集;
從所述第二相機的第二組外參數的初始值開始,按照預設方式以預設步長調整上一次迭代得到的第二組外參數,得到設定數量的第二組外參數;
基于調整后的所述設定數量的第二組外參數,將所述第二特征點集映射到所述參考映射面,得到所述設定數量的第二映射點集;
計算所述設定數量的第二映射點集中每一個映射點與所述第一映射點集中相匹配的映射點之間的距離偏差,得到所述設定數量的偏差總和;
當基于所述設定數量的偏差總和確定需要終止迭代時,基于所述上一次迭代得到的第二組外參數、所述設定數量的偏差總和以及所述第二組外參數各自對應的預設步長,標定所述第二相機的相機外參數。
根據本申請的第二方面,提出了一種相機標定裝置,包括:
第一確定模塊,用于確定第一相機拍攝的第一原始圖像與第二相機拍攝的第二原始圖像之間相匹配的第一特征點集和第二特征點集;
第一映射模塊,用于基于所述第一相機的第一組外參數,將所述第一確定模塊確定的所述第一特征點集映射到參考映射面,得到第一映射點集;
參數調整模塊,用于從所述第二相機的第二組外參數的初始值開始,按照預設方式以預設步長調整上一次迭代得到的第二組外參數,得到設定數量的第二組外參數;
第二映射模塊,用于基于所述參數調整模塊調整后的所述設定數量的第二組外參數,將所述第一確定模塊確定的所述第二特征點集映射到參考映射面,得到所述設定數量的第二映射點集;
第一計算模塊,用于計算所述第二映射模塊得到的所述設定數量的第二映射點集中每一個第二映射點與所述第一映射模塊得到的所述第一映射點集中相匹配的映射點之間的距離偏差,得到所述設定數量的偏差總和;
外參數標定模塊,用于當基于所述第一計算模塊計算得到的所述設定數量的偏差總和確定需要終止迭代時,基于所述上一次迭代得到的第二組外參數、所述第一計算模塊計算得到的所述設定數量的偏差總和以及所述第二組外參數各自對應的預設步長,標定所述第二相機的相機外參數。
根據本申請的第三方面,提出了一種電子設備,所述電子設備包括:
處理器;用于存儲所述處理器可執(zhí)行指令的存儲器;
其中,所述處理器,用于執(zhí)行上述第一方面提供的相機標定方法。
由以上技術方案可見,本申請可以通過第一相機和第二相機各自拍攝的原始圖像上提取圖像特征點,基于相匹配的特征點按預設迭代的方式對第二組外參數進行迭代,由于原始圖像的拍攝不需人工手動調整以及干預第一相機和第二相機的姿態(tài)和位置,即可利用第一相機和第二相機捕捉到的原始圖像中的場景內容標定第二相機的外參數,極大地縮短了對第二相機的外參數的標定過程,提高了相機標定的效率,有利于雙目以及多目攝像設備的大批量生產。
附圖說明
圖1為本發(fā)明提供的相機標定方法中第一相機和第二相機的場景圖;
圖2A為本發(fā)明的一示例性實施例提供的相機標定方法的流程示意圖;
圖2B示出了根據圖2A所示實施例的第一原始圖像和第二原始圖像的示意圖;
圖2C示出了根據圖2A所示實施例的第一特征點集中的P點映射到參考映射面上的D點的示意圖;
圖3為本發(fā)明的又一示例性實施例提供的相機標定方法的流程示意圖;
圖4A為本發(fā)明的另一示例性實施例提供的相機標定方法的流程示意圖;
圖4B為圖4A所示實施例中參考映射面與成像平面之間的對應關系的示意圖;
圖5A為通過第二相機的外參數的初始值將第二原始圖像投影到參考映射面得到的投影圖像的示意圖;
圖5B為通過本發(fā)明標定后的外參數將第二原始圖像投影到參考映射面得到的投影圖像的示意圖;
圖6為本發(fā)明的一示例性實施例提供的相機標定裝置的結構示意圖;
圖7為本發(fā)明的另一示例性實施例提供的相機標定裝置的結構示意圖;
圖8為本發(fā)明的又一示例性實施例提供的相機標定裝置的結構示意圖;
圖9為本發(fā)明的再一示例性實施例提供的相機標定裝置的結構示意圖;
圖10示出了根據本發(fā)明的一示例性實施例的電子設備的結構示意圖。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本申請相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本申請的一些方面相一致的裝置和方法的例子。
在本申請使用的術語是僅僅出于描述特定實施例的目的,而非旨在限制本申請。在本申請和所附權利要求書中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“和/或”是指并包含一個或多個相關聯的列出項目的任何或所有可能組合。
應當理解,盡管在本申請可能采用術語第一、第二、第三等來描述各種信息,但這些信息不應限于這些術語。這些術語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本申請范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“響應于確定”。
圖1為本發(fā)明提供的相機標定方法中第一相機和第二相機的場景圖;如圖1所示,本申請中的相機標定指確定第二相機12相對于第一相機11在空間中的平移關系和旋轉關系,第一相機11和第二相機12的光心之間的距離為d。其中,第一相機11和第二相機12各自具有相機內參數和相機外參數,其中,相機內參數是與相機自身特性相關的參數(例如,相機的焦距、像素大小),在第一相機11和第二相機12的相機內參數已經確定的情形下,并且第一相機11的相機內參數已經固定的前提下(例如,第一相機11的相機外參數默認設置為[0,90,0,0,0,0]T),需要對第二相機12的外參數進行標定,相機外參數可以包括第二相機12的光軸相對于第一相機11的相機坐標系XYZ的三軸的旋轉角α、β、γ,以及第二相機12的光心相對第一相機11的相機坐標系XYZ的三軸的平移參數t1、t2、t3。
下面對本申請所采用的理論基礎進行說明。對于原始圖像中的一點P,可通過對相機模型參數(包括相機的內參數和外參數),得到該點P在相機坐標系下的空間坐標C(x,y,z),其中,相機模型參數可由相機內參數確定,具體的標定方法可參見現有技術的描述,在此不再詳述。
根據世界坐標系與相機坐標系之間的關系C=RW+T,得到W=R-1(C-T),由此可由P點得到P點在世界坐標系下的空間坐標點。
其中,表示旋轉矩陣;T=[t1 t2 t3]T,表示平移向量;W表示世界坐標系下的空間點坐標,C表示相機坐標系下的空間點坐標。
在參考映射面為映射球面的情形下,由W得到P點對應的映射點D點在參考映射面上的坐標(rφ,rθ),由于W包含了r,φ,θ(以分別為映射球面的半徑、經度和緯度)三個參數,由于映射球面的半徑可以事先通過標定相機鏡頭的方式得到,可視為已知量,因此可確定原始圖像的P點到映射平面上的D點之間的映射關系,在相機的內參數固定的前提下,將原始圖像上的P點映射得到映射球面上的D點就依賴α,β,γ,t1,t2,t3外參數。
對于圖1所示的第一相機11和第二相機12,假定第一相機11的六個外參數固定,即[0,90,0,0,0,0]T,第二相機的六個外參數[α,β,γ,t1,t2,t3]T可變,其中,D點為第一相機拍攝的原始圖像對應的參考映射面上的位置坐標,D’點為第二相機拍攝的原始圖像對應的參考映射面上的位置坐標,那么D點與D’點之間的距離偏差與α,β,γ,t1,t2,t3這六個參數相關,當將第一映射平面和參考映射面上的全部對應映射點對之間的距離差累加起來時,即可得到本申請中關于偏差總和f=|D1-D′1|+|D2-D′2|+…+|DN-D′N|的表達式。
為對本申請進行進一步說明,提供下列實施例:
圖2A為本發(fā)明的一示例性實施例提供的相機標定方法的流程示意圖,圖2B示出了根據圖2A所示實施例的第一原始圖像和第二原始圖像的示意圖,圖2C示出了根據圖2A所示實施例的第一特征點集中的P點映射到參考映射面上的D點的示意圖;本實施例可應用在具有雙目相機或者多目相機上,本實施例結合圖1進行示例性說明,如圖2A所示,包括如下步驟:
步驟201,確定第一相機拍攝的第一原始圖像與第二相機拍攝的第二原始圖像之間相匹配的第一特征點集和第二特征點集;
步驟202,基于第一相機采用的第一組外參數,將第一特征點集映射到參考映射平面,得到第一映射點集;
步驟203,從第二相機采用的第二組外參數的初始值開始,按照預設方式以預設步長調整上一次迭代得到的第二組外參數,得到設定數量的第二組外參數;
步驟204,基于調整后的設定數量的第二組外參數,將第二特征點集映射到參考映射面,得到設定數量的第二映射點集;
步驟205,計算設定數量的第二映射點集中每一個映射點與第一映射點集中相匹配的映射點之間的距離偏差,得到設定數量的偏差總和;
步驟206,當基于設定數量的偏差總和確定需要終止迭代時,基于上一次迭代得到的第二組外參數、設定數量的偏差總和以及第二組外參數各自對應的預設步長,標定第二相機的相機外參數,流程結束。
在上述步驟201中,在一實施例中,如圖1所示,第一相機11和第二相機12可以具有相同類型的鏡頭,例如,第一相機11和第二相機12的鏡頭均為魚眼鏡頭或者均為廣角鏡頭。通過第一相機11和第二相機12分別拍攝場景,得到如圖2B所示第一原始圖像21和第二原始圖像22。在一實施例中,可以基于現有技術中的特征點提取算法得到第一原始圖像21和第二原始圖像22中的特征點(特征點可以為SIFT特征點),例如,第一原始圖像21中識別到的第一特征點集為(P1、P2、…、PN),第二原始圖像22中識別到的第二特征點集為(P′1、P′2、…、P′N),其中,N表示第一特征點集和第二特征點集中包含的特征點的數量,對于第一特征點集和第二特征點集之間相匹配的特征點,可以標記為(P1-P′1、P2-P′2、…、PN-P′N),其中,圖2B中所示的連接第一原始圖像21和第二原始圖像22中的特征點的線條的端點表示第一原始圖像21和第二原始圖像22中相匹配的特征點,本領域技術人員可以理解的是,可以通過第一原始圖像21和第二原始圖像22的像素坐標來表示各自所包含的特征點。
在上述步驟202中,在一實施例中,設定第一相機11為被參照相機,第一相機11采用的第一組外參數可設置為[0,90,0,0,0,0]T,采用第一組外參數將第一特征點集映射到參考映射面上,得到第一映射點集為(D1、D2、…、DN),其中,第一特征點集中的P1對應第一映射點集中的D1,以此類推,第一特征點集中的PN對應第一映射點集中的DN。在一實施例中,參考映射面可以為第一相機對應的映射球面,參考映射面也可以為通過將映射球面根據經緯度進行平面映射得到的平面,通過對第一相機的鏡頭標定得到映射球面對應的半徑,本領域技術人員可以理解的是,可通過現有技術中關于世界坐標系、相機坐標系以及圖像坐標系之間的轉換數學模型將第一特征點集映射到參考映射面上,本申請不做詳述。如圖2C所示,當將左側的原始圖像中的特征點P,經過步驟202的映射后,可將特征點P映射到右側的映射平面中的映射點D,由此可得到特征點P與映射點D之間的對應關系。
在上述步驟203中,第二相機12作為待標定相機,可將第二相機12采用的第二組外參數的初始值設定為[α,β,γ,t1,t2,t3]T=[0,90,0,0,0,0]T;在一實施例中,可以將第二組外參數根據6個參數所表示的物理意義進行分組,將具有相同物理意義的參數設置為相同的預設步長,例如,對于第二組外參數中表示旋轉角度的參數α,β,γ,迭代步長Δs可以通過試驗的方式得到,對于第二組外參數中表示平移量的參數t1,t2,t3,迭代步長Δm可以通過試驗的方式得到。在另一實施例中,可以對每一個參數設置一個對應的預設步長,從而可以基于不同的預設步長,調整各參數的迭代過程,在確保整個迭代過程收斂更快的同時,提高第二組外參數的標定精度。
在一實施例中,預設方式可以為逐一對上一次迭代得到的第二組外參數中的參數進行調整,例如,對第二組外參數中的參數按照預設步長進行累加,也可以對第二組外參數中的參數減去一個預設步長,例如,上一次迭代得到的第二組外參數為[0.11,90.2,0.13,4.1,5.3,4.7]T,將[0.11,90.2,0.13,4.1,5.3,4.7]T中α累加一個與α對應的預設步長0.1,再分別對[0.11,90.2,0.13,4.1,5.3,4.7]T中的β和γ累加一個各自對應的預設步長0.1,得到2組的第二組外參數,類似地,對t1、t2、t3同樣進行累加,得到3組第二組外參數。在另一實施例中,可以先對[α,β,γ,t1,t2,t3]T中的α、β和γ累加一個各自對應的預設步長0.1,得到1組第二組外參數,類似地,對t1、t2、t3進行累加,得到另1組第二組外參數。在一實施例中,設定數量的第二組外參數中包含的第二組外參數的個數與對各參數進行分組累加的分組情形確定,例如,若分別對上述6個外參數進行一一累加,則可對應6組第二組外參數,若依據具有相同物理意義的參數進行分組累加,則可對應2組第二組外參數。
在上述步驟204中,例如,依次基于上述步驟203得到的6組第二組外參數,將第二特征點集(P′1、P′2、…、P′N)映射到參考映射面上,得到對應的6個第二映射點集(D′1(α)、D′2(α)、…、D′N(α))、(D′1(β)、D′2(β)、…、D′N(β))、(D′1(γ)、D′2(γ)、…、D′N(γ))、(D′1(t1)、D′2(t1)、…、D′N(t1))、(D′1(t2)、D′2(t2)、…、D′N(t2))、(D′1(t3)、D′2(t3)、…、D′N(t3))。在一實施例中,參考映射面為第一相機的鏡頭標定得到的映射球面,如圖2C所示,在第一相機11和第二相機12均為魚眼鏡頭的情形下,分別將第一原始圖像21和第二原始圖像22映射到映射球面23上,得到映射圖像24和映射圖像25,其中,第一原始圖像21上的特征點211在映射球面23上對應映射點241,第二原始圖像22上的特征點221在映射球面23上對應映射點251,以此類推,多個不同的特征點可以對應多個不同的映射點。需要說明的是,圖2C中的第一原始圖像21和第二原始圖像22的矩形形狀僅為示例性說明,第一原始圖像21和第二原始圖像22可以為任何形狀的圖像,本申請對此不做限制。
在另一實施例中,參考映射面為球面坐標系根據經緯度進行平面映射得到的平面,其中,第一相機的鏡頭和第二相機的鏡頭的類型相同。需要說明的是,可通過現有技術中關于世界坐標系、相機坐標系以及圖像坐標系之間的轉換數學模型將第一特征點集映射到參考映射面上,本申請不做詳述。
在上述步驟205中,計算6個第二映射點集分別與第一映射點集之間的偏差總和,得到6個偏差總和,分別為:
fα(i)=|D1-D′1(α)|+|D2-D′2(α)|+…+|DN-D′N(α)|,其中,fα(i)表示第i次累加參數α時迭代得到第二組外參數得到的偏差總和;
fβ(i)=|D1-D′1(β)|+|D2-D′2(β)|+…+|DN-D′N(β)|,其中,fβ(i)表示第i次累加參數β時迭代得到第二組外參數得到的偏差總和;
fγ(i)=|D1-D′1(γ′)|+|D2-D′2(γ′)|+…+|DN-D′N(γ′)|,其中,fγ(i)表示第i次累加參數γ時迭代得到第二組外參數得到的偏差總和;
其中,表示第i次累加參數t1時迭代得到第二組外參數得到的偏差總和;
其中,表示第i次累加參數t2時迭代得到第二組外參數得到的偏差總和;
其中,表示第i次累加參數t3時迭代得到第二組外參數得到的偏差總和。
在上述步驟206中,在一實施例中,可以基于上述步驟205得到的6個偏差總和與上一次迭代的偏差總和之間的差值絕對值,例如,在累加參數α時,得到本次計算出的偏差總和與上一次迭代得到的偏差總和之間的差值絕對值|fα(i)-fα(i-1)|,對其余5個參數,與累加參數α時處理方式類似,從而可得到6個偏差總和各自對應的差值絕對值。當該6個差值絕對值的總和小于或者等于第一預設閾值(ε1)時,表示迭代過程基本趨于穩(wěn)定,可終止迭代,即:
在另一實施例中,可以確定本次迭代得到的設定數量的偏差總和是否均小于或者等于各自對應的預設閾值來確定是否需要終止迭代,例如,對于由于分別累加參數α、參數β、參數γ、參數t1、參數t2、參數t3迭代得到的6組第二組外參數,得到的偏差總和分別為:fα(i)、fβ(i)、fγ(i)、若滿足如下條件可表示基于累加后的各個參數映射得到的第二映射點集與第一映射點集之間的整體距離偏差較為接近,可終止迭代:
其中,ε2-ε7中各個預設閾值可以相同也可以不相同,本申請對ε2-ε7的具體值不做限制。
在另一實施例中,當基于各自對應的偏差總和確定不需要終止迭代時,確定對第二組外參數進行迭代的總次數;當總次數大于或者等于第三預設閾值時,確定終止對第二組外參數的迭代過程。例如,在基于各自對應的偏差總和確定不需要終止迭代的前提下,若截止到當前迭代過程對應的總次數為4次,第三預設閾值為5,則可繼續(xù)執(zhí)行步驟203,若迭代總次數為5,等于第三預設閾值5,則可終止迭代過程,并基于步驟206得到對第二相機的標定結果,由此可以通過總次數的方式限制迭代過程,由此提高標定相機的效率。
由上述描述可知,本發(fā)明實施例通過上述步驟201-步驟206,可以通過第一相機和第二相機拍攝的原始圖像上提取圖像特征點,基于相匹配的特征點按預設方式對第二組外參數進行迭代,由于原始圖像的拍攝不需人工手動調整以及干預第一相機和第二相機的姿態(tài)和位置,即可利用第一相機和第二相機捕捉到的原始圖像中的場景內容標定第二相機的外參數,極大地縮短了對第二相機的外參數的標定過程,提高了相機標定的效率,有利于雙目以及多目攝像設備的大批量生產。
圖3為本發(fā)明的又一示例性實施例提供的相機標定方法的流程示意圖;本實施例在上述圖2A所示實施例的基礎上,以如何對第二相機的外參數進行標定為例并結合圖1進行示例性說明,如圖3所示,包括如下步驟:
步驟301,對第二組外參數中的任意一個參數,確定本次迭代時該參數對應的偏差總和與上一次迭代時該參數對應的偏差總和之間的差值絕對值,得到設定數量的差值;
步驟302,確定設定數量的差值與相應參數對應的預設步長的比值,得到設定數量的比值;
步驟303,確定設定數量的比值各自對應的權重系數;
步驟304,基于上一次迭代得到的第二組外參數、設定數量的參數各自對應的權重系數以及設定數量的比值,標定第二相機的相機外參數。
在步驟301中,例如,對于第二組外參數中的參數α,本次迭代時參數α對應的偏差總和為:
fα(i)=|D1-D′1(α)|+|D2-D′2(α)|+…+|DN-D′N(α)|,其中,i表示本次迭代的次數,D′1(α),D′1(α),…,D′1(α)表示基于本次迭代累加得到的α對應的第二組外參數將第二特征點集映射到參考映射面上的映射點的坐標位置。
參數α在上一次迭代時對應的偏差總和為:
fα(i-1)=|D1-D′1(α,Δs)|+|D2-D′2(α,Δs)|+…+|DN-D′N(α,Δs)|,其中,i-1表示上一次迭代的次數,D′1(α,Δs),D′1(α,Δs),…,D′1(α,Δs)表示基于上一次迭代累加得到的α對應的第二組外參數將第二特征點集映射到參考映射面上的映射點的坐標位置。
通過上述計算,可得到的關于參數α對應的偏差總和上一次迭代時參數α對應的偏差總和之間的差值為fα(i)-fα(i-1)。與參數α類似的方法,可得到的參數β、參數γ、參數t1、參數t2、參數t3各自對應的差值:fβ(i)-fβ(i-1)、fγ(i)-fγ(i-1)、
在步驟302中,例如,對于第二組外參數中的參數α,參數α在累加時對應的預設步長為Δs,則參數α對應的比值為與參數α類似的方法,可得到的參數β、參數γ、參數t1、參數t2、參數t3各自對應的比值:本領域技術人員可以理解的是,示出的預設步長Δs以及Δm的具體值,對于不同的參數而言,可以相同也可以不相同,本申請對預設步長的具體值不做限制。
在步驟303中,各個比值各自對應的權重系數可以相同也可以不相同,本申請對各個參數對應的權重系數的具體值不做限制。
在步驟304中,標定得到的第二相機的相機外參數為:
其中,k表示權重系數對應的向量,權重系數的數量與比值的數量相同,k值越小,表示迭代過程緩慢,迭代次數可增多,振動幅度會減小,得到的最終相機外參數的精度會更高,k值越大,表示迭代過程會加快,迭代次數可減少,振動幅度會增加,得到的最終相機外參數的精度會受到影響。
本實施例中,通過權重系數可調整迭代過程的緩慢,并可根據相機的具體情形靈活控制迭代過程,以確保最終得到的第二相機標定的外參數能夠使拍攝的圖像具有更好的視覺效果。
圖4A為本發(fā)明的另一示例性實施例提供的相機標定方法的流程示意圖,圖4B為圖4A所示實施例中參考映射面與成像平面之間的對應關系的示意圖;本實施例在上述圖2A所示實施例的基礎上,以如何基于第二相機標定得到的外參數得到第二映射表為例并結合圖2C進行示例性說明,如圖4A所示,包括如下步驟:
步驟401,在參考映射面上按照預設采樣間隔,確定多個第二采樣點坐標;
步驟402,基于標定得到的第二相機的相機外參數,確定多個第二采樣點在第二相機所在的成像平面上對應的多個第二像素點坐標;
步驟403,將多個第二采樣點坐標和多個第二像素點坐標之間的坐標對應關系記錄在第二相機的第二映射表中。
在步驟401中,在一實施例中,預設采樣間隔可以根據具體對圖像處理時的精度的要求來定,當精度要求不高時,預設采樣間隔可以設置的大一些,當精度要求高時,預設采樣間隔可以設置的小一些,例如,對于圖4B所示的參考映射面41,大小為1000*1000,預設采樣間隔為50個像素點,則多個第二采樣點的個數為20*20。
在步驟402中,對于參考映射面41上的任意一個采樣點411,可通過第二相機標定后的外參數以及第二相機已知的內參數,基于與上述計算第二映射點集相反的過程,得到該點M在第二相機所在的成像平面(也可稱為像平面)42上對應的像素點坐標421,相應的,對于參考映射面41上的全部采樣點,可以計算得到成像平面42上的對應的像素點坐標。
在步驟403中,例如,多個第二采樣點坐標(P′1、P′2、…、P′N)與多個第二像素點坐標(D″1、D″2、…、D″N)之間的坐標對應關系記錄到第二映射表中,例如,當N為400時,表示參考映射面和第二相機的成像平面有400個坐標位置對應,因此可基于該400個坐標位置之間的對應關系,直接將第二相機在后續(xù)采集的圖像上的相應位置像素點的圖像投影到參考映射面上,避免通過現有技術中的世界坐標系、相機坐標系以及圖像坐標系的坐標轉換理論重新計算特征點對應的映射點,簡化了計算過程。
類似地,對于第一相機21而言,同樣可以在第一映射平面上按照預設采樣間隔,確定多個第一采樣點坐標;基于第一相機的第一組外參數,確定多個第一采樣點在第一相機所在的第一成像平面上對應的多個第一像素點坐標;將多個第一采樣點坐標和多個第一像素點坐標之間的坐標對應關系記錄在第一相機的第一映射表中。
通過第一映射表和第二映射表即可得到第一相機和第二相機各自的映射平面,由第一映射平面和參考映射面上的采樣點為已匹配好的點,因此這些采樣點具有特定的視覺差信息,從而方便后續(xù)圖像拼接等處理。
本實施例中,可采用第一映射表和第二映射表來記錄參考映射面和相機的成像平面之間的坐標對應關系,當需要對雙目或者多目相機的全景圖像進行拼接時,將相機拍攝的原始圖像直接映射到參考映射面上,無需重復計算特征點到參考映射面之間的映射關系,簡化了圖像處理的計算過程。
圖5A為通過第二相機的外參數的初始值將第二原始圖像投影到參考映射面得到的投影圖像的示意圖,圖5B為通過本發(fā)明標定后的外參數將第二原始圖像投影到參考映射面得到的投影圖像的示意圖;對于圖2B所示的原始的第二原始圖像22,基于第二相機12的外參數的初始值[α,β,γ,t1,t2,t3]T=[0,90,0,0,0,0]T,對第二原始圖像22映射到參考映射面上,將第一原始圖像和參考圖像重疊后得到圖5A所示的圖像,從圖5A所示的圖像中可明顯看到,遠處大樓與近處小樹都比較模糊,即存在視差,圖像效果不佳。
通過本申請?zhí)峁┑南鄼C標定方法,對第二相機12的外參數進行標定,最終的標定結果為[α,β,γ,t1,t2,t3]T=[0.31,89.02,0.22,1.76,3.59,3.63]T,基于第二相機12標定后的外參數,將第二原始圖像22映射到參考映射面,得到新的映射圖像,再與第一相機11拍攝的第一原始圖像重疊后得到圖5B所示的圖像,從圖5B所示的圖像中可明顯看到,遠處的大樓在位置上對齊了,說明視差減小。
圖6為本發(fā)明的一示例性實施例提供的相機標定裝置的結構示意圖;如圖6所示,該相機標定裝置可以包括:第一確定模塊61、第一映射模塊62、參數調整模塊63、第二映射模塊64、第一計算模塊65、外參數標定模塊66。其中:
第一確定模塊61,用于確定第一相機拍攝的第一原始圖像與第二相機拍攝的第二原始圖像之間相匹配的第一特征點集和第二特征點集;
第一映射模塊62,用于基于第一相機的第一組外參數,將第一確定模塊61確定的第一特征點集映射到參考映射面,得到第一映射點集;
參數調整模塊63,用于從第二相機的第二組外參數的初始值開始,按照預設方式以預設步長調整上一次迭代得到的第二組外參數,得到設定數量的第二組外參數;
第二映射模塊64,用于基于參數調整模塊63調整后的設定數量的第二組外參數,將第一確定模塊61確定的第二特征點集映射到參考映射面,得到設定數量的第二映射點集;
第一計算模塊65,用于計算第二映射模塊64得到的設定數量的第二映射點集中每一個映射點與第一映射模塊62得到的第一映射點集中相匹配的映射點之間的距離偏差,得到設定數量的偏差總和;
外參數標定模塊66,用于當基于第一計算模塊65計算得到的設定數量的偏差總和確定需要終止迭代時,基于上一次迭代得到的第二組外參數、第一計算模塊計算65得到的設定數量的偏差總和以及第二組外參數各自對應的預設步長,標定第二相機的相機外參數。
圖7為本發(fā)明的另一示例性實施例提供的相機標定裝置的結構示意圖,如圖7所示,在上述圖6所示實施例的基礎上,外參數標定模塊66包括:
第一確定單元661,用于對第二組外參數中的任意一個參數,確定本次迭代時該參數對應的偏差總和與上一次迭代時該參數對應的偏差總和之間的差值,得到設定數量的差值;
第二確定單元662,用于確定第一確定單元661確定的設定數量的差值與相應參數對應的預設步長的比值,得到設定數量的比值;
第三確定單元663,用于確定第二確定單元662確定的設定數量的比值各自對應的權重系數;
標定單元664,用于基于上一次迭代得到的第二組外參數、第三確定單元663確定的設定數量的參數各自對應的權重系數以及第二確定單元662確定的設定數量的比值,標定第二相機的相機外參數。
圖8為本發(fā)明的又一示例性實施例提供的相機標定裝置的結構示意圖,如圖8所示,在上述圖6或圖7所示實施例的基礎上,參數調整模塊63可包括:
第四確定單元631,用于確定第二組外參數中每一個參數在上一次迭代得到的第二組外參數以及各自對應的預設步長;
累加單元632,用于將上一次迭代得到的第二組外參數中任意一個參數累加一個第四確定單元631確定的該任意一個參數對應的預設步長,并確保第二組外參數中的其它參數保持不變,得到累加后的設定數量的第二組外參數。
在一實施例中,相機標定裝置還可包括:
第二計算模塊67,用于計算第一計算模塊65計算的偏差總和與上一次迭代得到的偏差總和之間的差值絕對值,得到設定數量的差值絕對值;
第二確定模塊68,用于若第二計算模塊67確定的設定數量的差值絕對值均小于或者等于各自對應的第一預設閾值,確定需要終止迭代;或者,
第三確定模塊69,用于若基于第一計算模塊65計算的偏差總和均小于或者等于各自對應的第二預設閾值,確定需要終止迭代。
圖9為本發(fā)明的再一示例性實施例提供的相機標定裝置的結構示意圖,如圖9所示,在上述圖6-圖8任一所示實施例的基礎上,相機標定裝置還可包括:
第四確定模塊70,用于當基于第一計算模塊65計算的偏差總和確定不需要終止迭代時,確定對第二組外參數進行迭代的總次數;
第五確定模塊71,用于當第四確定模塊70確定的總次數大于或者等于第三預設閾值時,確定終止對第二組外參數的迭代過程。
在一實施例中,參考映射面為第一相機的鏡頭標定得到的映射球面;或者,參考映射面為球面坐標系根據經緯度進行平面映射得到的平面,其中,第一相機的鏡頭和第二相機的鏡頭的類型相同。
在一實施例中,相機標定裝置還可包括:
第六確定模塊72,用于在參考映射面上按照預設采樣間隔,確定多個第一采樣點坐標;
第七確定模塊73,用于基于第一相機的第一組外參數,確定第六確定模塊72確定的多個第一采樣點在第一相機所在的第一成像平面上對應的多個第一像素點坐標;
第一記錄模塊74,用于將第六確定模塊72確定的多個第一采樣點坐標和第七確定模塊73確定的多個第一像素點坐標之間的坐標對應關系記錄在第一相機的第一映射表中。
在一實施例中,相機標定裝置還可包括:
第八確定模塊75,用于在參考映射面上按照預設采樣間隔,確定多個第二采樣點坐標;
第九確定模塊76,用于基于外參數標定模塊66標定得到的第二相機的相機外參數,確定第八確定模塊75確定的多個第二采樣點在第二相機所在的成像平面上對應的多個第二像素點坐標;
第二記錄模塊77,用于將第八確定模塊75確定的多個第二采樣點坐標和第九確定模塊76確定的多個第二像素點坐標之間的坐標對應關系記錄在第二相機的第二映射表中。
圖10示出了根據本發(fā)明的一示例性實施例的電子設備的結構示意圖;對應于上述圖2A-圖4A的相機標定方法,如圖10所示,在硬件層面,該電子設備包括處理器、內部總線、網絡接口、內存以及非易失性存儲器,當然還可能包括其他業(yè)務所需要的硬件。處理器從非易失性存儲器中讀取對應的計算機程序到內存中然后運行,在邏輯層面上形成上述圖6-圖9任一所示實施例提供的相機標定裝置。當然,除了軟件實現方式之外,本申請并不排除其他實現方式,比如邏輯器件抑或軟硬件結合的方式等等,也就是說以上處理流程的執(zhí)行主體并不限定于各個邏輯單元,也可以是硬件或邏輯器件。
本領域技術人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本申請的其它實施方案。本申請旨在涵蓋本申請的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本申請的一般性原理并包括本申請未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本申請的真正范圍和精神由下面的權利要求指出。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
以上所述僅為本申請的較佳實施例而已,并不用以限制本申請,凡在本申請的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本申請保護的范圍之內。