姚海濱,翁金平,程筱勝,姜 偉,沈 靜
1.揚州市職業(yè)大學(xué) 電氣與汽車工程學(xué)院, 江蘇 揚州 225009
2.南京航空航天大學(xué) 機電學(xué)院,南京 210016
隨著計算機技術(shù)與測繪技術(shù)的發(fā)展,光學(xué)三維測量技術(shù)得到了越來越廣泛的應(yīng)用[1-2]。在該過程中圓形目標圓心空間坐標的精確快速提取是影響測量精度和效率的一個重要方面。
多種研究資料表明,目前空間圓心坐標提取主要依賴立體視覺方法,首先提取出橢圓中心,再利用雙目成像原理求解出空間圓心坐標[3-5],由于透視投影變換該過程中橢圓中心往往并不是空間圓心的投影點,因此重建出的空間圓心坐標精度不高,尤其是面對大型圓心目標時這個問題尤為明顯。針對該問題很多學(xué)者提出了多種解決方法,主要分為兩類[6-7]:一是畸變補償法,即根據(jù)已知標記點與像平面的夾角以及標記點與像平面的距離分析設(shè)計給出圓心補償?shù)臄?shù)學(xué)模型,根據(jù)該數(shù)學(xué)模型對提取出的橢圓圓心進行補償,該方法雖然在仿真中得到驗證,但是標記點與像平面的姿態(tài)信息在實際應(yīng)用中很難獲取到,因此該方法在實際應(yīng)用中受到了很大的制約,在實際應(yīng)用中意義不大;二是利用非線性優(yōu)化方法優(yōu)化位姿,即拍攝兩個視角圖像,根據(jù)極線匹配求解出相機姿態(tài)變換,再根據(jù)初始姿態(tài)進行邊緣輪廓的重投影,構(gòu)建最小二乘模型使邊緣重投影誤差最小化,該方法需要在兩個視角圖像下對邊緣進行匹配,而橢圓邊緣依靠極線匹配得到的效果并不好;文獻[8]提出了基于對偶二次曲線的方法求解圓心,根據(jù)共面的3個標志點求解任意兩個圓心之間的圓心投影向量,再通過向量叉乘求解圓心投影,該方法從一定程度上提高了圓心提取精度,但是需要標志點共面,且至少需要3 個不共線標志點,實際測量中很難保證標志點共面,且提取圓心三維坐標時也需要兩個視角的圖像。總體來說,目前的方法都需要多個視角圖片或者多個標志點才能完成圓形目標中心三維坐標的提取[9-10],且精度不可靠,尤其在依靠大型圓形目標定位應(yīng)用,比如機器人定位[11-12]、圓形管道測量[13-14]等需求中難以取得較好效果。
針對上述問題,本文提出了一種基于單張平面圓圖像的空間圓心快速提取方法。該方法利用相機光心與成像橢圓構(gòu)建了空間圓錐方程,再構(gòu)建出圓錐正底面,根據(jù)正底面求解出空間圓的平行平面方程,最后根據(jù)平行平面與實際半徑找出正確空間圓方程,避免了空間圓心投影坐標求解問題,且只需單張圖像即可求解出空間圓心坐標,該方法穩(wěn)定可靠,本文首先給出了算法步驟,并且進行了完整的推導(dǎo),最后給出了算法分析與實驗驗證。
圓形目標成像模型如圖1 所示,E點為視點,EXeYeZe為相機坐標系,P點為相機主點,P-XpYpZp為圖像坐標系。圓錐曲線是由平面與二次錐面相交得到的曲線,該曲線具有鏡像對稱的特性,根據(jù)圓錐曲線理論以及上述成像模型有以下兩個結(jié)論:
(1)存在唯一銳角θ,圓錐正底面繞長軸順時針逆時針旋轉(zhuǎn)θ可得兩個圓截面;
(2)若平面A與圓錐交線為圓,對于任意平行于平面A的平面B,若存在交線,則該交線為圓。
圖1 成像模型
根據(jù)以上結(jié)論,可以通過以下步驟求得空間圓心坐標:
(1)構(gòu)建圓錐正底面;
(2)將底面所在平面繞長軸旋轉(zhuǎn),找到截面為圓的θ角,記此時平面為α;
(3)尋找與α平行且截面圓直徑為D的平面β;
(4)求解此時截面圓方程,求解圓心坐標。
上述步驟中包含了橢圓錐方程的求解以及橢圓錐與平面方程交線的求解,具體計算過程推導(dǎo)如下。
2.1.1 圖像坐標系下橢圓錐方程
假設(shè)在圖像坐標系P-XpYpZp下橢圓錐方程為為3×3對稱矩陣,為3×1向量,為標量。取A=[aij],B=[bi],c=1 ,由于橢圓在XOY平面,那么y2為 0,此時令Q(Y)=0 可得:
由橢圓的標準方程式(2)可知,假設(shè)橢圓長軸半徑為d0,短軸半徑為d1,則在橢圓錐頂點處梯度為 0,即且Eˉ在橢圓錐上,則有,聯(lián)立之可得如式(3)所示:
2.1.2 相機坐標系下橢圓錐方程
假設(shè)圖像坐標系在相機坐標系下的一組標準正交基為Re=[Ue Ve Ne],Re也可看作兩個坐標系間的旋轉(zhuǎn)變換矩陣,假設(shè)Ce為盤面上某一點在相機坐標系下坐標,X為圖像坐標系下橢圓坐標,Y為相機坐標系下橢圓坐標,則有:
因此一般橢圓錐方程推導(dǎo)如下:
其中:
2.1.3 任意平面與橢圓錐交線方程
假設(shè)存在投影平面其原點為Cp,單位法向量為Np,構(gòu)建其余兩個正交單位向量Up和Vp,則旋轉(zhuǎn)矩陣為Rp=[Up Vp Np]該平面與橢圓錐相交,該交線為橢圓,則該橢圓上點可由Xp=Cp+y2Up+y3,Np=Cp+JpYp表示,該橢圓方程推導(dǎo)如下:
橢圓方程可以重構(gòu)為如下形式:
由橢圓錐對稱性易知,圓錐頂點與正底面圓心連線必然垂直于正底面。如圖2所示,在投影輪廓上任取一點c1,以c1為原點,直線c1E為法向量方向構(gòu)建平面π1,交圓錐于橢圓l,根據(jù)本文2.1節(jié)算法求出圓心坐標c2,判斷連線c2E與平面法向量是否夾角小于門限值,該門限值一般取e-6,若不滿足則繼續(xù)以c2E為法線構(gòu)建平面與圓錐求交,直至找到正底面。
圖2 構(gòu)建正底面
將正底面所在平面繞長軸旋轉(zhuǎn)θ角,記旋轉(zhuǎn)后的平面為α,平面α與橢圓錐相交于橢圓,根據(jù)2.1節(jié)可求出該橢圓長短軸半徑,以最小增量Δθ擾動該過程如式(9)所示,其中η表示學(xué)習(xí)率,用以控制擾動步長,構(gòu)造最小二乘問題尋找參數(shù)θ使橢圓長短軸半徑相差最小,如式(10)所示:
通過上述步驟可以求得交線為圓時平面方程,記該平面為β,原點為圓心坐標c,易知圓形目標中心必然在射線Ec上,假設(shè)該中心距離c點距離為l,那么該坐標為根據(jù)線性變換可求得該點坐標,以該點為原點構(gòu)造平行于平面β的平面β′,根據(jù)2.1 節(jié)可求出β′與橢圓錐相交圓直徑d,已知圓形目標直徑D,那么可構(gòu)造最小二乘問題如下:
通過迭代可求得正確l值,繼而求得空間圓形目標方程與圓心坐標。而根據(jù)結(jié)論(1),存在順時針與逆時針兩個旋轉(zhuǎn)角,具體表現(xiàn)為不能確定相機方向,而該二義性可以由實際圓心投影坐標與投影橢圓圓心相對位置排除。
2.3 節(jié)中參數(shù)η表示學(xué)習(xí)率,該參數(shù)一般稱為超參數(shù),易知2.3節(jié)中問題屬于凸優(yōu)化問題,因此利用梯度下降法一定可以求得極值,式(12)是一元函數(shù),其導(dǎo)函數(shù)形式比較簡單,如式(13)所示,而導(dǎo)函數(shù)本身表示了沿l方向的梯度方向,結(jié)合梯度下降法可以求得極值,而學(xué)習(xí)率η影響了梯度下降的速度。
實驗表明,當η取值為常數(shù)時,即以恒定步長擾動最小二乘模型時,若取值較小則收斂較慢,若取值較大則會出現(xiàn)震蕩收斂的情況,如圖3 所示,而η隨著求解過程逐漸衰減則能取得較好效果,起始下降速度較快,隨著學(xué)習(xí)率的衰減逐漸收斂到最小值,迭代次數(shù)也較小。
圖3 學(xué)習(xí)率分析
3.2.1 管道長度測量
圖4所示設(shè)備為管道測繪儀與管道檢測機器人,測繪儀用于靜態(tài)測量場景,而管道檢測機器人則用于狹窄空間下的管道測量,兩臺測量設(shè)備均包含了照明裝置與相機。
圖4 管道測繪設(shè)備
相機由張氏標定法[10]完成內(nèi)參標定,本文以實物管道測量與三維仿真環(huán)境作對比,管道長度2 m,管道口徑已知為0.4 m 利用本文算法分別求出兩端圓形端口中心坐標,再求出管道長度,多個角度求解20 次,統(tǒng)計數(shù)據(jù)如圖5 所示,可見本文算法能準確求解出管道長度,實際測量平均誤差在2 cm左右,而數(shù)據(jù)中實際測量方差要大于仿真環(huán)境測量方差,這是因為在實際環(huán)境中圓形目標邊緣噪聲較多,提取精度低于仿真環(huán)境,而在實際測量中也可以多測測量求平均來降低測量值方差。
3.2.2 圓心投影提取精度測量
為測量本文方法提取圓心精度,將如圖6所示的標志圓作為靶標進行測試。
圖5 管道測量
圖6 圓形靶標
待測圓的半徑為5 cm,中間角點即為實際圓心,在像平面與靶標平面呈45°夾角時在不同距離采集圖像,并提取到角點亞像素坐標作為基準,利用本文方法求解出圓心三維坐標并通過相機模型投影到成像平面后得到像素坐標,再提取出外圓的所有亞像素輪廓坐標進行橢圓擬合[15],將擬合出的圓心與本文結(jié)果作對比。圖7 為靶標檢測結(jié)果,白色部分為檢測出橢圓輪廓,藍色標記點為橢圓中心,矩形標記點為本文算法求解中心。
圖7 靶標檢測結(jié)果
三者結(jié)果如表1所示,本文提取的圓心坐標與基準坐標相差大概0.1~2 個像素,但是橢圓中心與基準相差了5~12 個像素,因此本文方法所求得的圓心坐標更精確,與實際坐標誤差非常小。
表1 圓心坐標對比結(jié)果pixel
本文針對目前圓心目標圓心空間坐標提取精度與效率低的問題,提出了一種基于單張平面圓圖像的空間圓心快速提取方法。首先利用相機光心與成像橢圓構(gòu)建了空間圓錐方程,再構(gòu)建出圓錐正底面,根據(jù)正底面求解出空間圓方程,最后根據(jù)平行平面與實際半徑找出正確空間圓方程,避免了空間圓心投影坐標求解問題,且只需單張圖像即可求解出空間圓心坐標,方法穩(wěn)定可靠,在機器人定位與圓形管道測量等問題中均具有較好的實用性。本文方法也可以應(yīng)用于攝影測量領(lǐng)域,利用多個視角觀測數(shù)據(jù)進行光束法平差,提高測量精度。