專利名稱:一種基于cmos導航相機的太陽定位方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種太陽定位方法。
背景技術(shù):
傳統(tǒng)的太陽定位裝置是專用的太陽敏感器,包括基于太陽電池的編碼、模擬太陽敏感器,近幾年又出現(xiàn)了基于掩模孔的APS太陽敏感器,以上裝置的特點是利用小光闌(狹縫、掩???減弱太陽能力,根據(jù)光電進行探測。光電效應的太陽跟蹤定位技術(shù)按照識別太陽位置的方法分為狹縫成像、質(zhì)心求解以及四象限偏差。狹縫成像的方法主要應用于太陽敏感器中,通過太陽光線射過狹縫的夾角求出太陽方位。質(zhì)心求解的方法主要是通過辨識出太陽光斑范圍的質(zhì)心來獲取太陽的方位。四象限偏差的方法是利用太陽光斑在四個象限產(chǎn)生的不同光電流信號差驅(qū)動光敏面 與太陽對準,但該方法得不出太陽的方位。這三種方法都是以整個太陽光斑為辨識單位,辨識精度低,加之太陽影像為非標準圓且受雜光影響很大,以上三種方法僅僅將太陽建模為一個近似圓形亮斑,計算誤差會很大。另外,太陽跟蹤定位技術(shù)廣泛應用太陽能電池板發(fā)電、大氣監(jiān)測等地面民用領(lǐng)域,主要方式為天文計算,即嚴格按照相關(guān)天文計算公式編寫,在研究太陽能利用所涉及到的日地距離、積日、太陽赤緯角、太陽時角、時差、年度訂正、經(jīng)度訂正、時刻訂正等概念和計算方法后,得出復雜的計算程序。此方法完全擺脫感知太陽,單純依靠經(jīng)驗公式,計算復雜精度低。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問題是克服現(xiàn)有技術(shù)的不足,提供了一種基于CMOS導航相機的太陽定位方法,利用CMOS光電探測器自身的強光成像效應太陽圖像的中心為黑點的方法,辨識出太陽中心黑暗部分,解決了現(xiàn)有方法定位過程中太陽亮斑易受大氣、雜光和太陽活動干擾影響定位精度低的問題,提高太陽定位的精度。本發(fā)明的技術(shù)解決方案是一種基于CMOS導航相機的太陽定位方法,步驟如下(I)采用CMOS導航相機獲取一幅包括太陽在內(nèi)的圖像;(2)對步驟⑴獲得的圖像進行二值化處理,將圖像中太陽所在范圍內(nèi)所有像素點的最低灰度值作為閾值,并將圖像中灰度值小于閾值的像素點的像素值設(shè)為0,將圖像中灰度值不小于閾值的像素點的像素值設(shè)為I;(3)在二值圖像上,設(shè)置太陽半徑所包括的像素個數(shù)R ;(4)在二值圖像上,設(shè)置黑太陽直徑所包括的像素個數(shù)d,以d為步長從二值圖像首行起始位置開始逐行查找黑太陽像素點,查找條件為像素值為O且從該像素點所在位置沿其所在行向左或者向右移動步長d后對應的像素點的像素值為1,設(shè)滿足查找條件的黑太陽像素點位于第i行第j+d列,每次找到一個黑太陽像素點后即停止查找進入下一步;如果遍歷完二值圖像后仍未查找到滿足條件的黑太陽像素點,則返回步驟(3)改變R值后重新執(zhí)行本步驟;(5)對于查找到的黑太陽像素點,計算其上下左右各d個像素點共4d個像素點中像素值為O的像素點的個數(shù),如果計算結(jié)果位于閾值區(qū)間(d,2d-l),則進入下一步;否則返回步驟(4)從上一次的查找結(jié)束位置繼續(xù)查找;(6)將黑太陽像素點及其周圍像素值為O的區(qū)域視為一個圓形,求出其圓心,以圓心為中心,分別構(gòu)建邊長為d和力R的兩個正方形,計算邊長為d的正方形中包含的像素值為O的像素點個數(shù)Hl以及邊長為R的正方形中包含的像素值為I的像素點個數(shù)H2,如
果^且//2之則圓心即為太陽的中心;否則返回步驟(4) 444
從上一次的查找結(jié)束位置繼續(xù)查找;其中Λ和ε為誤差調(diào)整系數(shù)。所述步驟(6)中求取圓心的方法為從像素點(i,j+d)所在位置開始,向上下左右 四個方向開始查找像素值為I的四個點,上、下兩個點的縱坐標均值以及左、右兩個點的橫坐標均值分別作為圓心的橫坐標和縱坐標。本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點在于I)普通跟蹤和定位方法是以整個太陽為辨識目標,由于目標視場范圍較大,導致定位時的精度較低,且定位速度較慢;而本發(fā)明方法通過CMOS的特殊成像功能將太陽中心的可能范圍縮小在一個很小的“黑太陽”區(qū)域內(nèi),相當于縮小了視線夾角,因此方法簡單,定位精度高;2)由于大氣散射,云層反射等會導致太陽非圓形化,造成極大的識別困難。在此情況下,通過調(diào)整曝光時間獲得的不同太陽影像中,如果繼續(xù)采用現(xiàn)有方法則太陽中心位置變化明顯,太陽定位的誤差明顯較大;采用本發(fā)明方法,由于選取太陽中心的黑太陽作為識別對應,而黑太陽不受外界環(huán)境干擾,因此其中心位置幾乎不變,據(jù)此進行太陽定位可以克服干擾,獲得更聞的定位精度;3)當太陽影像不完全在視場之內(nèi)時,采用現(xiàn)有方法則會完全失效,無法完成太陽定位。本發(fā)明方法為此重新定義圖像,它比原圖像矩陣長寬各多2R(R為太陽半徑)。此圖像的中間像素值等于原圖像的像素值,周圍四個寬度為R的邊設(shè)為太陽光斑的亮度(大于250灰度值即可),相當于將太陽沒有成像的部分引入,由此可以保持太陽圖像的完整,從而能夠正常識別。
圖I為本發(fā)明方法的流程圖;圖2為本發(fā)明預估黑太陽位置示意圖;圖3為本發(fā)明黑太陽粗面積閾值范圍示意圖;圖4為本發(fā)明確定黑暗部分中心不意圖;圖5為本發(fā)明精判黑太陽面積和判定太陽面積示意圖。
具體實施例方式我國首個月面巡視器的太陽定位方法以APS太陽敏感器為主,但考慮到月塵影響、雜光影響、車體遮擋影響等,仍需要考慮其他光學敏感器是否具有太陽定位能力。導航相機位于桅桿之上可以實現(xiàn)大范圍俯仰、偏航運動,在室外實驗中可以實現(xiàn)對太陽成像,根據(jù)CMOS光電探測器自身的強光成像效應太陽圖像的中心為黑點(在文獻中稱為“BlackSun Effect”),基于這一特點本發(fā)明提出了一種基于CMOS導航相機的太陽定位方法,使得導航相機既具有月面圖像拍攝能力又具有太陽定向能力。太陽中心的投影接受到的太陽照射最多,而邊緣相比則較少。CMOS敏感器(如CMV4000)具有一種特性一黑太陽現(xiàn)象,在光照及其強烈的情況下不是呈現(xiàn)高灰度,而是表現(xiàn)出低灰度。如果對準太陽則會產(chǎn)生太陽中心暗,太陽邊緣亮的奇異現(xiàn)象。這是由于太陽中心比太陽的邊緣部分亮度要高,使得中心點曝光曲線斜率較大,在較短時間內(nèi)達到飽和,而在接近飽和時又采集了復位電壓,最后采集的曝光電壓也是飽和電壓,導致雙采樣也就是兩者之差大大降低,呈現(xiàn)低灰度。
如圖I所示,為本發(fā)明方法的流程圖,主要步驟如下I)圖像預處理。為降低程序復雜度,將圖像二值化且以太陽目標的最低灰度值作為閾值將太陽與其他背景區(qū)分開來。具體可將低于閾值的背景像素值設(shè)為0,太陽光斑像素值設(shè)為I ;2)設(shè)置太陽半徑由于曝光時間、日機距離(太陽離敏感器距離)等因素影響,太陽在圖像上的影像大小會有所不同。本發(fā)明從太陽影像半徑90個像素開始估計。如果在一次圖像查找過程中沒有找到黑太陽,則降低太陽半徑重新查找;3)預估黑太陽位置黑太陽也可看作是以直徑為d個像素的近似圓。也就是說在黑太陽里的以任何一個像素為基準d個像素之外任何方向的像素都可認作不是黑太陽的像素。如圖2查找黑太陽,以d為步長依次逐行遍歷整幅圖片,采用前一個像素的值為I且d個像素后的值為O為判斷條件,則可確定為黑太陽的可能位置(i,j+d),則可進行4)。如果整幅圖像都未辨識出黑太陽,則從2)開始設(shè)置太陽半徑重新辨識圖像;4)粗估黑太陽面積是否大于閾值計算像素(i,j+d)的上下左右d個像素的共4d個像素值的和。如圖3所示,閾值范圍的上限值是點(i,j+d)在黑太陽中心,下限值點(i,j+d)在黑太陽邊緣。判定它是否在閾值范圍(d,2d)內(nèi)。閾值以內(nèi)表明檢驗到有接近黑太陽大小的暗區(qū)域,以外則需要從3)繼續(xù)查找可能的黑太陽點;5)查找黑太陽中心以當前暗區(qū)域為對象,將其看作一個圓形,求出其中心。如圖4所示,從像素(i,j+d)開始上下左右四個方向開始查找到像素值為I的四個點(i,j+d+X)、(i,j+d-y)、(i+z,j+d)和(i-w, j+d),橫縱坐標分別取中值可得黑太陽中心坐標(aa, bb) = (i+z/2_w/2,j+d+x/2-y/2);6)精估黑太陽面積和估計太陽面積步驟4)粗估可能誤認黑太陽。需通過統(tǒng)計黑太陽面積和太陽面積進一步加以確認。其原理如圖5所示,以5)中確認的黑太陽中心(aa,bb)為中心,分別構(gòu)建邊長為d和V^R的兩個正方形,計算邊長為d的正方形中包含的像素值為O的像素點個數(shù)Hl以及邊ιτΗ^Trd^
長為ViR的正方形中包含的像素值為I的像素點個數(shù)Η2,如果且
TtA^
2,則點(aa,bb)為太陽的中心;否則返回步驟3)從上一次的查找結(jié)束位
4
置繼續(xù)查找;其中Λ和ε為誤差調(diào)整系數(shù)。由于太陽和黑太陽之間的邊界像素可能為I或O,偶然性較大,所以要設(shè)定一定余量誤差Λ,一般設(shè)為黑太陽周長的一半。由于光學環(huán)境條件,太陽可能為非圓,正方形截取的面積可能不全是太陽面積,所以需要減去一個數(shù)值ε ο 7)太陽中心坐標經(jīng)過6)的檢驗,黑太陽中心坐標(aa,bb)即是所求的太陽中心。本發(fā)明說明書中未作詳細描述的內(nèi)容屬本領(lǐng)域技術(shù)人員的公知技術(shù)。
權(quán)利要求
1.一種基于CMOS導航相機的太陽定位方法,其特征在于步驟如下 (1)采用CMOS導航相機獲取一幅包括太陽在內(nèi)的圖像; (2)對步驟(I)獲得的圖像進行二值化處理,將圖像中太陽所在范圍內(nèi)所有像素點的最低灰度值作為閾值,并將圖像中灰度值小于閾值的像素點的像素值設(shè)為0,將圖像中灰度值不小于閾值的像素點的像素值設(shè)為I ; (3)在二值圖像上,設(shè)置太陽半徑所包括的像素個數(shù)R; (4)在二值圖像上,設(shè)置黑太陽直徑所包括的像素個數(shù)d,以d為步長從二值圖像首行起始位置開始逐行查找黑太陽像素點,查找條件為像素值為O且從該像素點所在位置沿其所在行向左或者向右移動步長d后對應的像素點的像素值為1,設(shè)滿足查找條件的黑太陽像素點位于第i行第j+d列,每次找到一個黑太陽像素點后即停止查找進入下一步;如果遍歷完二值圖像后仍未查找到滿足條件的黑太陽像素點,則返回步驟(3)改變R值后重新執(zhí)行本步驟; (5)對于查找到的黑太陽像素點,計算其上下左右各d個像素點共4d個像素點中像素值為O的像素點的個數(shù),如果計算結(jié)果位于閾值區(qū)間(d,2d-l),則進入下一步;否則返回步驟(4)從上一次的查找結(jié)束位置繼續(xù)查找; (6)將黑太陽像素點及其周圍像素值為O的區(qū)域視為一個圓形,求出其圓心,以圓心為中心,分別構(gòu)建邊長為d和力R的兩個正方形,計算邊長為d的正方形中包含的像素值為O的像素點個數(shù)Hl以及邊長為VJ R的正方形中包含的像素值為I的像素點個數(shù)H2,如果— -Α<Η\ < — + Α Η2 > IR2-—-ε ,則圓心即為太陽的中心;否則返回步驟(4)444從上一次的查找結(jié)束位置繼續(xù)查找;其中Λ和ε為誤差調(diào)整系數(shù)。
2.根據(jù)權(quán)利要求I所述的一種基于CMOS導航相機的太陽定位方法,其特征在于所述步驟(6)中求取圓心的方法為從像素點(i,j+d)所在位置開始,向上下左右四個方向開始查找像素值為I的四個點,上、下兩個點的縱坐標均值以及左、右兩個點的橫坐標均值分別作為圓心的橫坐標和縱坐標。
全文摘要
一種基于CMOS導航相機的太陽定位方法,步驟為(1)獲取圖像;(2)圖像二值化;(3)設(shè)置太陽半徑為R像素;(4)設(shè)置黑太陽直徑為d像素,以d為步長從二值圖像上查找黑太陽像素點,找到一個即停止并進入下一步;(5)計算黑太陽像素點上下左右各d個像素點中值為0的個數(shù),如果結(jié)果位于閾值區(qū)間則進入下一步,否則繼續(xù)查找;(6)將黑太陽像素點及其周圍像素值為0的區(qū)域視為圓形,以其圓心為中心構(gòu)建邊長為d和的兩個正方形,如果邊長為d的正方形中像素值為0的像素點個數(shù)H1以及邊長為的正方形中像素值為1的像素點個數(shù)H2滿足且則圓心即為太陽的中心;否則返回步驟(4)繼續(xù)查找。
文檔編號G06K9/60GK102902975SQ20121038845
公開日2013年1月30日 申請日期2012年10月15日 優(yōu)先權(quán)日2012年10月15日
發(fā)明者單黎明, 王立, 梁瀟, 余成武, 周建濤, 吳奮陟, 鄭璇 申請人:北京控制工程研究所