胡曉煒,朱慶生,沙孝鳴,周小軍,畢 勇,鄭鋒華,武 帥,吳承志
(1.中國科學技術(shù)大學,安徽 合肥 230026;2.中科院南京天文儀器有限公司,江蘇 南京 210042;3.61741部隊,北京 100094;4.32021部隊,北京 100094;5.國電南瑞科技股份有限公司,江蘇 南京 211106)
衛(wèi)星激光測距(satellite laser ranging,SLR)是 20 世紀 60 年代中期發(fā)展起來的精密空間測量技術(shù)。 它通過安置在地面上的衛(wèi)星激光測距系統(tǒng)發(fā)射的激光脈沖,跟蹤并觀測裝有后向反射器的人造地球衛(wèi)星,通過測量激光脈沖在激光測距望遠鏡和衛(wèi)星之間的往返時間,計算出二者之間的距離,進而解算出精密的衛(wèi)星軌道。
激光脈沖通過大氣時,與大氣中的分子和氣溶膠粒子之間相互作用產(chǎn)生各種物理過程[1],包括分子的瑞利散射、氣溶膠粒子的散射等多種散射過程,產(chǎn)生一部分與激光發(fā)射方向相反的散射光,可在發(fā)射端 CCD 上成一個楔形像,即為光尖。
衛(wèi)星激光測距系統(tǒng)中目標星與激光光尖在同一視場中,由于距離遠,大氣消光嚴重等因素,光尖往往無法呈現(xiàn)出標準楔形,頭部不夠尖銳(如圖1所示),人工操作耗時長且難以準確找到回波最強的位置,導(dǎo)致在激光測距過程中難以接收到單光子信號。目前國內(nèi)有剔除部分數(shù)據(jù)提高光尖定位精度的方法[2],通過矢量邊界掃描[3]和最小二乘直線擬合的方法確定激光的邊緣和光尖坐標。但這種方法只是對邊緣信息的近似描述,存在一定的誤差,且沒有通過編程在電視跟蹤系統(tǒng)中得到有效應(yīng)用,因此,本文提出利用霍夫變換的方法精確地定位光尖。
(b)原始圖像偽彩色圖
霍夫變換直線檢測[4]是一種圖像特征提取的方法,通過投票算法檢測具有特定形狀的物體,可以用于檢測激光圖像中的直線。假設(shè)在直角坐標系中存在一點A(x0,y0),對于任意一組參數(shù)(k,b),均由一條直線(y0=k·x0+b)經(jīng)過點A(如圖2所示),不足之處在于,對于整個直角坐標系而言,有一條直線無法用參數(shù)(k,b)描述,即垂直于x軸的情況,故將直角坐標系轉(zhuǎn)換為極坐標系。
圖2 存在于直角坐標系中的直線段
如圖2所示,有x0=r·cosθ,y0=r·sinθ;
(1)
在極坐標系中,過(x0,y0)的所有直線均可以由r=x0·cosθ+y0·sinθ表示(其中r為原點到直線的距離),在θ為[0,π]范圍內(nèi),每隔ε取值,可以得到π/ε組r值,直角坐標系中每一個點(x0,y0)都對應(yīng)極坐標系中一條曲線,極坐標系中每一個點(r,θ)都對應(yīng)直角坐標系中一條直線(如圖3所示)。
圖3 直角坐標系直線轉(zhuǎn)化到極坐標系
假設(shè)在直角坐標系中有(1,1)、(2,1)、(3,1)三點,轉(zhuǎn)換到極坐標中分別為(y=1·sin(x)+1·cos(x);m=1·sin(x)+2·cos(x);z=1·sin(x)+3·cos(x)),三條直線交于一點(1,π/2))。
直角坐標系中,同一條直線上的點(k,b)必定相等,同時以(r,θ)表示的直線方程為:
(2)
圖4為本文所采用的激光圖像處理流程。
圖4 激光圖像處理流程圖
圖像預(yù)處理的方法有中值濾波,高斯濾波,均值濾波等,通過濾波算法,降低圖像的噪聲,利用卷積公式對圖像的像素值進行變換,其中h(k,l)為權(quán)重核,g(i,j)為矩陣模板覆蓋下中心坐標的像素值。
(3)
在具體操作中,構(gòu)造一個m*m的矩陣(m為奇數(shù)),用此矩陣遍歷整幅圖像,對該矩陣覆蓋下的像素值進行卷積計算,并將結(jié)果賦值給中心坐標點,作為中心點像素值,以此達到平滑圖像,消除局部噪點的目的。
均值濾波對模板覆蓋下的圖像矩陣取平均值賦給中心像素點,中值濾波對模板下的像素值進行排列,取中間值賦給中心像素點,該算法能夠抑制椒鹽噪聲,但無法過濾高斯噪聲。而為了消除高斯噪聲,可以采用高斯濾波方法,它是一種線性平滑濾波,對模板覆蓋下的像素值進行加權(quán)平均得到,濾波后的圖像如圖5所示。
(a)高斯模糊后的圖像
(b)高斯模糊后偽彩色圖
在降噪濾波后,需要提取圖像的邊緣,這里需要尋找一個最優(yōu)的邊緣檢測算法[8],它應(yīng)當滿足:圖像中的實際邊緣應(yīng)當被檢測到,由噪聲形成的邊緣應(yīng)當被排除。
對于一幅圖像,在像素值發(fā)生跳躍的地方,往往存在著邊緣。如在x方向上,有Δ=f(x+1)-f(x),Δ的值越大,說明在x方向上像素值跳躍越大,邊緣信號越強,如圖6所示。這里采用了sobel算子,它是基于一階導(dǎo)數(shù)的邊緣檢測算子。
圖6 像素值發(fā)生跳躍時的點
Sobel算子[9]用兩個3×3的矩陣對應(yīng)水平梯度和豎直梯度,分別為:
(4)
最終圖像梯度:
(5)
此時由sobel算子得出的梯度邊緣寬度可能不止一個像素,因此需要對邊緣線條進行處理。此時要采用非最大信號抑制,在梯度方向,將當前像素的梯度值同相鄰兩個點的梯度值進行比較,如為最大值,則保留,反之置為0。經(jīng)過非最大信號抑制,圖像的邊緣僅為一個像素寬。
最終的邊緣圖像還需經(jīng)過雙閾值連接處理,此時設(shè)定兩個閾值T1和T2,T1為低閾值,T2為高閾值,T1/T2=1/2;高于高閾值的點為強邊緣點,予以保留,對低于低閾值的點進行抑制,并假定高低閾值之間的點為弱邊緣點,需要檢測該點的8連通鄰域,只要有強邊緣點存在,此弱邊緣點就被認為是真的邊緣點而保留,邊緣圖像以二值圖像的形式保存下來,邊緣檢測試驗如圖7所示。圖8展示了視頻流中的邊緣檢測試驗的情形。
圖7 canny邊緣檢測后的圖像
圖8 視頻流中的邊緣檢測試驗
在邊緣檢測完成后,采用投票算法對邊緣像素點進行直線檢測[10],如果激光圖像中的像素點構(gòu)成一條直線,那么將會在極坐標系中相交于同一點,我們在極坐標系中查詢交點的數(shù)目,設(shè)定閾值m,當交點個數(shù)大于m時,認為這些點存在于同一條直線上,通過這種方法,將檢測直線問題轉(zhuǎn)化為統(tǒng)計相交點數(shù)問題。
在理論上,經(jīng)過一個點的直線有無數(shù)條,但在實際中,對圖像像素點的角度掃描步長不可能無限小,在工程應(yīng)用中,這個值通常設(shè)定為PI/180。
由于光尖的探測在像素級別已經(jīng)能夠滿足要求,從算法時間復(fù)雜度和空間復(fù)雜度考慮,不涉及亞像素級別的標定。因此,在邊緣圖像中,設(shè)定直線掃描的距離步長為一個像素。圖9為標定的光尖圖像。
圖9 標定的光尖圖像
根據(jù)檢測出的直線,設(shè)定極坐標系中交點個數(shù)的閾值m,當交點的個數(shù)大于閾值,直角坐標系中形成直線,反之,不認為在直角坐標系中存在直線。由此方法,得到激光圖像中的兩條直線,計算可知他們的斜率,將這兩條線段延長,在視場中得到他們的交匯點,即激光光尖點的坐標,如圖10所示。
圖10 直線斜率及光尖坐標
利用本文提出的霍夫直線檢測方法可以精確地提取激光圖像邊緣,擬合直線,并能夠較為精確地給出光尖坐標,輔之經(jīng)典質(zhì)心算法對星點質(zhì)心坐標的精確計算,控制望遠鏡使激光精確地指向衛(wèi)星[11-12],擴大了空間探測范圍,提高了激光測距的效率。