一種基於橢圓構像偏差迭代矯正的視覺測量方法與流程
2023-12-10 11:00:27 1
本發明涉及計算機視覺測量領域,尤其涉及一種基於橢圓構像偏差迭代矯正的視覺測量方法。
背景技術:
圓經過透視投影,當成像平面與圓平面不平行時投影為橢圓,然而投影橢圓的中心並非圓心在像平面上的投影,兩者的偏差稱為橢圓構像偏差。現有的視覺測量方法是將橢圓中心近似作為圓的中心進行位姿的計算,該近似過程所引入的誤差在高精度測量要求下不能被忽略。文獻「eccentricityerroridentificationandcompensationforhigh-accuracy3dopticalmeasurement」(hed,liux,pengx,etal.measurementscience&technology,vol.24(7),075402,2013.)提出一種利用同心圓環進行攝像機標定的方法,通過獲取的橢圓特徵分析圓形標誌投影中心,其優點是需要檢測的特徵少,缺點是在實際相機標定中精度較差,無法用於高精度的測量任務。文獻「eccentricityerroridentificationandcompensationforhigh-accuracy3dopticalmeasurement」(hed,liux,pengx,etal.measurementscience&technology,vol.24(7),075402,2013.)提出一種基於同心圓環的橢圓構像偏差矯正方法,但其中涉及近似計算,會對橢圓中心點的提取精度造成影響。文獻「eccentricityerrorcompensationforgeometriccameracalibrationbasedoncircularfeatures」(yangx,fangs.measurementscience&technology,vol.25(2),pp.149-156,2014.)提出了橢圓構像偏差在相機標定中的影響,並給出了一種矯正的方式,但其主要在矯正相機畸變引起的橢圓中心偏差,沒有很好的解決由於透視投影所造成的構像偏差問題。通過橢圓構像偏差模型可以計算出任意位姿下的橢圓構像偏差,但是前提是需要知道位姿信息,這一前提在實際工程測量應用中無法被滿足。
技術實現要素:
本發明的目的在於通過一種基於橢圓構像偏差迭代矯正的視覺測量方法,來解決以上背景技術部分提到的問題。
為達此目的,本發明採用以下技術方案:
一種基於橢圓構像偏差迭代矯正的視覺測量方法,其包括如下步驟:
s101、基於圖像檢測獲得的橢圓中心作為特徵點作出初始位姿估計,計算出基於初始位姿的橢圓構像偏差;
s102、對檢測到的橢圓中心進行橢圓構像偏差矯正,獲得矯正後的特徵點,並作出新的位姿估計;
s103、進行迭代終止條件判斷,若不滿足終止條件,則基於新的位姿計算新的橢圓構像偏差值繼續進行迭代計算;若滿足終止條件,則得到最終結果。
特別地,所述步驟s101包括:對圖像上的橢圓特徵進行檢測,獲得橢圓中心點坐標pi,所有橢圓中心點的偏心誤差初始化為μi0=0,i=0,1,2,l,位姿初始化為r=03×3,t=[000]t。
特別地,所述步驟s102包括:每次迭代對所有橢圓中心點進行橢圓構像偏差矯正,對於第k次矯正過程,矯正後的橢圓中心點坐標pik=pi-μik;由矯正後的橢圓中心點坐標pik及標靶上圓形標誌中心點坐標qi計算出第k次矯正後的位姿rk、tk。
特別地,所述步驟s103中迭代終止條件包括:一、迭代次數達到設定上限值;二、所有標誌點的橢圓偏心誤差μik小於設定閾值;三、兩次迭代所得位姿rk-1、tk-1、rk、tk的差值e小於設定閾值;當滿足上述迭代終止條件的任一項時迭代均終止,得到最終估計位姿rk、tk,否則由rk、tk計算出偏心誤差μi,k+1並進行第k+1次迭代矯正;其中,
為k-1次迭代計算得到的位姿變換矩陣,為k次迭代計算得到的位姿變換矩陣,為其逆矩陣;h矩陣為相鄰兩次迭代結果的差值;將h矩陣進行分塊,d矩陣為其前三行前三列組成的3x3的矩陣,xe,ye,ze分別為h矩陣第4列前三行的元素,而d11,d22,d33分別指代d矩陣中對角線上的三個元素。
本發明提出的基於橢圓構像偏差迭代矯正的視覺測量方法具有如下優點:一、利用迭代實現了基於偏心差矯正的位姿估計,可以與單目相機標定、雙目相機標定、位姿測量等應用結合,實現高精度的視覺測量;二、可以計算任意位置的圓形標誌的偏心誤差,因此對於具體測量應用中圓形標誌的位置沒有限制;三、通過調整迭代終止條件可以獲得不同精度和速度要求的位姿估計結果。
附圖說明
圖1為本發明實施例提供的基於橢圓構像偏差迭代矯正的視覺測量方法流程圖;
圖2為本發明實施例提供的單相機位姿測量示意圖;
圖3為本發明實施例提供的基於橢圓構像偏差迭代矯正的相機標定流程圖;
圖4為本發明實施例提供的單相機標定示意圖;
圖5a-圖5d為本發明實施例提供的單相機標定時所拍攝圖片的示意圖。
具體實施方式
下面結合附圖和實施例對本發明作進一步說明。可以理解的是,此處所描述的具體實施例僅僅用於解釋本發明,而非對本發明的限定。另外還需要說明的是,為了便於描述,附圖中僅示出了與本發明相關的部分而非全部內容,除非另有定義,本文所使用的所有技術和科學術語與屬於本發明的技術領域的技術人員通常理解的含義相同。本文中所使用的術語只是為了描述具體的實施例,不是旨在於限制本發明。
請參照圖1所示,圖1為本發明實施例提供的基於橢圓構像偏差迭代矯正的視覺測量方法流程圖。
本實施例中基於橢圓構像偏差迭代矯正的視覺測量方法包括如下步驟:
s101、基於圖像檢測獲得的橢圓中心作為特徵點作出初始位姿估計,計算出基於初始位姿的橢圓構像偏差。
s102、對檢測到的橢圓中心進行橢圓構像偏差矯正,獲得矯正後的特徵點,並作出新的位姿估計。
s103、進行迭代終止條件判斷,若不滿足終止條件,則基於新的位姿計算新的橢圓構像偏差值繼續進行迭代計算;若滿足終止條件,則得到最終結果。
具體的,所述步驟s101包括:對圖像上的橢圓特徵進行檢測,獲得橢圓中心點坐標pi,所有橢圓中心點的偏心誤差初始化為μi0=0,i=0,1,2,l,位姿初始化為r=03×3,t=[000]t。所述步驟s102包括:每次迭代對所有橢圓中心點進行橢圓構像偏差矯正,對於第k次矯正過程,矯正後的橢圓中心點坐標pik=pi-μik;由矯正後的橢圓中心點坐標pik及標靶上圓形標誌中心點坐標qi計算出第k次矯正後的位姿rk、tk,需要說明的是,這裡的位姿計算方法採用的是pnp方法,具體內容可參考文獻:heschja,roumeliotissi.adirectleast-squares(dls)methodforpnp[c]//ieeeinternationalconferenceoncomputervision.ieee,2011:383-390。所述步驟s103中迭代終止條件包括:一、迭代次數達到設定上限值;二、所有標誌點的橢圓偏心誤差μik小於設定閾值;三、兩次迭代所得位姿rk-1、tk-1、rk、tk的差值e小於設定閾值;當滿足上述迭代終止條件的任一項時迭代均終止,得到最終估計位姿rk、tk,否則由rk、tk計算出偏心誤差μi,k+1並進行第k+1次迭代矯正;其中,
為k-1次迭代計算得到的位姿變換矩陣,為k次迭代計算得到的位姿變換矩陣,為其逆矩陣;h矩陣為相鄰兩次迭代結果的差值;將h矩陣進行分塊,d矩陣為其前三行前三列組成的3x3的矩陣,xe,ye,ze分別為h矩陣第4列前三行的元素,而d11,d22,d33分別指代d矩陣中對角線上的三個元素。
本發明提出的基於橢圓構像偏差迭代矯正的視覺測量方法可以應用於位姿測量、單目相機標定、立體視覺標定等領域,下面分別對本發明應用於位姿測量、單目相機標定的具體實施方案進行詳細說明:
當基於橢圓構像偏差迭代矯正的視覺測量方法應用於位姿測量時,實現過程如下:
一、如圖2所示,相機11拍攝平面對象12上的圓形特徵13。由於平面對象12可能不平行於成像平面,成像特徵可能會是橢圓。在拍攝圖像中提取橢圓特徵,獲取其中心點坐標。所有橢圓中心點的偏心誤差初始化μi0=0,位姿初始化為r=03×3,t=[000]t。
二、對於所有的橢圓中心進行橢圓偏心誤差進行第k次矯正,矯正之後的橢圓中心pik=pi-μik。由矯正後的橢圓中心點坐標pik及標靶上圓形標誌中心點坐標qi可以計算出第k次矯正後的位姿rk、tk。
三、對於如下三項迭代終止條件:一、迭代次數達到設定上限值,在本實施例中設定上限值為10;二、所有標誌點的橢圓偏心誤差μik小於設定閾值,在本實施例中設定閾值為10-5;三、兩次迭代所得位姿差值小於設定閾值,本實施例中設定閾值為10-5;當滿足上述迭代終止條件的任一項時迭代均終止,得到最終估計位姿rk、tk,否則返回第二步,由rk、tk計算出偏心誤差μi,k+1並進行第k+1次迭代矯正。
下表為橢圓構像偏差矯正前後的位姿估計結果,經過多次橢圓構像偏差的迭代矯正,估計的位姿結果相對於矯正前有了很大的提高。
當基於橢圓構像偏差迭代矯正的視覺測量方法應用於相機標定時,實現過程如圖3所示:
一、如圖4所示,相機21拍攝不同位置姿態的平面對象22上的圓形特徵23,其中部分圖像如圖5a-圖5d所示,這組圖片是相機標定過程中拍攝的圖片,圖5a-圖5d是4次在不同角度下拍攝到的圖片。在拍攝圖像中提取橢圓特徵,獲取其中心坐標pji,i其中代表一副圖像中橢圓中心點的編號,j代表所拍攝圖片的編號。
二、對第一步中拍攝到的圖像進行相機標定,標定得到相機畸變參數k1、k2、p1、p2。根據標定出的相機畸變參數進行去除畸變的處理,獲得畸變矯正後的橢圓中心點坐標dji。所有橢圓中心點的偏心誤差初始化jμi0=0,位姿初始化為rj=03×3,tj=[000]t。
三、對於每幅圖像中所有的橢圓中心進行橢圓偏心誤差的第k次矯正,矯正之後的橢圓中心jdik=dji-jμik。將相機畸變參數固定為0,由矯正後的橢圓中心點坐標jdik及標靶上圓形標誌中心點坐標qi可以標定出第k次矯正後的相機內參和對應第j幅圖像的外參jrk、jtk。
四、對於如下三項迭代終止條件:對於如下三項迭代終止條件:一、迭代次數達到設定上限值,在本實施例中設定上限值為10;二、所有標誌點的橢圓偏心誤差jμik小於設定閾值,在本實施例中設定閾值為10-5;三、對於每幅圖像,兩次迭代所得位姿差值小於設定閾值,本實施例中設定閾值為10-5;當滿足上述迭代終止條件的任一項時迭代均終止,得到最終估計內參與外參jrk、jtk,否則回到第三步進行第k+1次迭代標定。
五、基於第四步得到的相機內外參數對每一幅拍攝得到的圖像進行橢圓構像偏差矯正,以矯正後的橢圓中心點坐標jdik及標靶上圓形標誌中心點坐標qi標定出相對於第二步更為精確的相機畸變參數k1、k2、p1、p2。
下表中三欄分別表示設置的相機內參數、未經過橢圓構像偏差矯正的標定結果和經過橢圓構像偏差矯正的標定結果。可以看出經過橢圓構像偏差矯正後相機的標定精度得到了很大的提高。
本發明提出的技術方案具有如下優點:一、利用迭代實現了基於偏心差矯正的位姿估計,可以與單目相機標定、雙目相機標定、位姿測量等應用結合,實現高精度的視覺測量;二、可以計算任意位置的圓形標誌的偏心誤差,因此對於具體測量應用中圓形標誌的位置沒有限制;三、通過調整迭代終止條件可以獲得不同精度和速度要求的位姿估計結果。
本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過電腦程式來指令相關的硬體來完成,所述的程序可存儲於一計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光碟、只讀存儲記憶體(read-onlymemory,rom)或隨機存儲記憶體(randomaccessmemory,ram)等。
以上結合具體實施例描述了本發明的技術原理。這些描述只是為了解釋本發明的原理,而不能以任何方式解釋為對本發明保護範圍的限制。基於此處的解釋,本領域的技術人員不需要付出創造性的勞動即可聯想到本發明的其它具體實施方式,這些方式都將落入本發明的保護範圍之內。