一種基于立式標靶的車載單目攝像頭測距測高方法
【專利摘要】本發明公開了一種基于立式標靶的車載單目攝像頭測距測高方法,屬于智能車輛環境感知【技術領域】。本發明通過對立式標靶圖像的感興趣區進行模板匹配、候選點聚類及篩選、精確定位等操作,實現亞像素級角點檢測及定位,結合投影幾何模型,建立圖像縱坐標與實際成像角度之間的映射關系,從而實現測距及測高,本發明不需要標定攝像頭的內外部參數,也不需要多次放置標定板或參照物,降低了出現誤差的可能性,既減少了操作環節,又提高了測量精度;與傳統的角點檢測相比,能夠更準確地檢測出標靶中的目標點,從而減少了后續聚類篩選的計算量,在計算的實際成像角度及距離的基礎上實現了單目攝像頭測高,大大減低了成本。
【專利說明】一種基于立式標靶的車載單目攝像頭測距測高方法
【技術領域】
[0001]本發明屬于智能車輛環境感知【技術領域】,涉及一種基于機器視覺的測距及測高技術,具體涉及一種基于立式標靶的車載單目攝像頭針對障礙物、橋洞或涵洞等的測距及測高方法。
【背景技術】
[0002]機器視覺作為智能車輛環境感知系統中最重要的組成部分,為決策層提供大量必要的環境信息,具有十分重要的意義。其中,物體的測距與測高分別為無人駕駛或輔助駕駛系統的防撞預警、路徑規劃及車輛分類、涵洞橋梁通過性檢測等提供重要的參數信息。目前,智能車的機器視覺測量一般分為雙目視覺測量和單目視覺測量兩類。雙目視覺測距容易受到特征點誤匹配的影響,且計算量大,難以滿足實時性要求。而單目視覺測距結構簡單,運算速度快,具有廣泛的應用前景。
[0003]目前單目視覺系統通常采用對應點標定法(簡稱標定法)來獲取待測物體的深度信息。傳統對應點標定法通常是利用棋盤格標定板標定出攝像頭內外部參數后,結合投影模型,求解出圖像坐標系與實際成像角度之間的對應關系,從而得到距離信息。此方法需要多次采集不同方位的標定板圖像,并且需要精確記錄每個點在世界坐標系和圖像坐標系中的對應坐標,而且標定結果的誤差會在測量中放大數十甚至上百倍,總體來說,過程復雜且誤差較大。另外,通過在路面擺放參照物并測量其距離,利用參照物距離和像素數據直接擬合出距離與圖像坐標間的數學模型,從而實現測距。此方法在工程中也有廣泛的運用,但需要較大的場地,精度會受到實際測量和數據擬合誤差的影響。而對于測高,主要還是運用激光雷達等傳感器進行測量,僅用單目實時測高還鮮有發表的研究成果。
【發明內容】
[0004]本發明的目的在于提供一種基于立式標靶的車載單目攝像頭測距測高方法,具體是通過對立式標靶圖像的感興趣區進行模板匹配、候選點聚類及篩選、精確定位等操作,實現亞像素級角點檢測及定位,結合投影幾何模型,建立圖像縱坐標與實際成像角度之間的映射關系,從而實現測距及測高,此方法不僅提高了測量精度,且無需標定攝像頭內外部參數,操作簡單,可執行性強,具有較強的工程實用價值和研究意義。
[0005]本發明提供的一種基于立式標靶的車載單目攝像頭測距測高方法,包括以下步驟:
[0006]步驟101:攝像頭安裝于車體的合適位置后,首先將立式標靶放置于攝像頭正前方,且盡量靠近攝像頭的同時,需滿足采集的標靶圖像中必須包含最低的角點,且角點總數大于8個,然后測量攝像頭安裝高度h及其與立式標靶靶面的水平距離D ;
[0007]步驟102:采集標祀圖像,分辨率為mm*nn,設置圖像坐標系:左上角點為坐標原點,水平向右為X軸正方向,垂直向下為y軸正方向。設置角點檢測的感興趣區:x方向為[mm/3-l, 2*mm/3_l], y方向為[0,nn_l]。對感興趣區進行分塊:塊大小s*v可以調整,但一般大于50*50,對每個塊分別采用最大類間方差法進行自適應二值化處理;
[0008]步驟103:在感興趣區內利用設計的模板(a)和(b)分別進行全搜索匹配,保留所有匹配子圖的左上角點,組成標祀角點的候選點集CC=Kx1, Y1), (x2, y2),…,(xk, yk)},其中k為匹配的子圖總數;
[0009]步驟104:對候選點集CC中所有點進行分類,即將兩點之間橫坐標差值及縱坐標差值同時小于閾值T1的點記為同一小類,假設總共分成了 g小類,則小類的集W=Iw1, w2,…,wg},再分別計算各小類的中心點坐標(xwi,ywi)(i=l, 2,…,g),將中心點橫坐標之差小于T1的小類記為同一個大類,最后保留包含小類數目最多的大類,剔除其他小類,并將保留下來的小類的中心點坐標在X和y方向上分別加上模板寬度和高度的一半e,存為初始角點集A={(xal, yal), (xa2, ya2), --?, (xaj, yaj)},其中j為保留下來的小類的個數,而且A中各點的順序是以yal,ya2,…,yaJ值從大到小排列;
[0010]步驟105:在初始角點集A中搜索出最大橫坐標值Xniax,利用模板(C)在橫坐標小于乂.^的感興趣區內從上至下、從右至左搜索匹配的子圖,一旦搜索到,則停止搜索。假設搜索到匹配的子圖左上角點為(Xf,yf),則角點的參考間隔SS=X_-(Xf+e),再利用模板(d)在點(Xf,yf)左下方感興趣區內從上至下、從右至左搜索匹配的子圖,一旦搜索到,則停止搜索,記錄匹配的子圖左上角點為(Xj, y」);
[0011]步驟106:搜索完畢后,判斷是否存在步驟105的兩個定位參考點(xf,yf)和(Xj, y」),如果存在進入步驟107 ;否則返回步驟101 ;
[0012]步驟107:將初始角點集A中縱坐標最大值yel與yj進行比較,如果yel-yj為ss的3倍左右,認為點(Xc^yel)為標靶最低角點;否則,將點(xmax,yj+ss*3)作為標靶的最低角點,然后利用初始角點集A和參考間隔ss將圖像中全部角點補充完整,并得到角點集C={(xcl, ycl), (xc2, yc2), --?,(xcn, ym)},其中n表示圖中標祀角點總數,且C中各點的順序也以y值從大到小排列,最后運用openCV中的cvFindCornerSubPixO函數,以角點集C為基準將其更新為亞像素級角點集B=Kxbl, ybl),(xb2, yb2),…,(xbn, ybn)};
[0013]步驟108:圖像中 n 個角點的高度集 HH= {1.00,1.05,...,1.00+ (n_l) *0.05},然后利用參數h和D,計算得到各角點的實際成像角度集Q= {qi,q2,…,qn},其中各角度值與亞像素級角點集B的縱坐標{ybl,yb2,…,yj按順序一一對應,得到映射點集P= {(ybi, Qi),(yb2.%),--?,(ybn.qn)丨,以直線擬合相鄰兩點,得到相鄰點映射關系集F=If1, f2,…,fn-J ;
[0014]步驟109:在實時測距過程中,將通過障礙物檢測算法得到的障礙物底等部y方向坐標yz作為參數輸入,首先判斷出yz所屬的映射關系A (0〈i〈n),利用&的直線方程計算Yz對應的實際成像角度qz,然后以qz作為輸入通過測距方程計算障礙物等的距離Lz ;
[0015]步驟110:根據系統需要判斷是否需要測量障礙物等的高度,如果需要繼續步驟111 ;否則結束此障礙物等的測距;
[0016]步驟111:將通過障礙 物檢測算法得到的障礙物頂部y方向像素值yd作為參數輸入,首先判斷出yd所屬的映射關系^((KKn),利用&的直線方程計算yd對應的實際成像角度qd,然后以qd和障礙物距離Lz作為輸入通過測高方程計算障礙物等的高度。
[0017]本發明一種基于立式標靶的車載單目攝像頭測距測高方法的優點在于:
[0018](I)本發明不需要標定攝像頭的內外部參數,也不需要多次放置標定板或參照物,降低了出現誤差的可能性,既減少了操作環節,又提高了測量精度;
[0019](2)設計了感興趣區和四個模板,以模板匹配的方式檢測立式標靶中的角點及定位參考點,與傳統的角點檢測相比,能夠更準確地檢測出標靶中的目標點,從而減少了后續聚類篩選的計算量;
[0020](3)通過檢測定位參考點使得亞像素級角點集的縱坐標與實際成像角度一一對應,用分段直線的方式擬合圖像縱坐標與實際成像角度之間的映射關系,減少了用一條直線擬合所引起的誤差,從而提高了測量精度;
[0021](4)本發明無需雷達等其它傳感器,在計算的實際成像角度及距離的基礎上實現了單目攝像頭測高,大大減低了成本。
【專利附圖】
【附圖說明】
[0022]圖1為本發明一種基于立式標靶的車載單目攝像頭測距測高方法的整體步驟流程圖;
[0023]圖2為本發明中匹配法檢測角點的執行流程圖;
[0024]圖3為本發明所用到的立式標靶的示意圖;
[0025]圖4為本發明中用于角點及定位參考點檢測的四種模板示意圖,且e=ll。
【具體實施方式】
[0026]下面將結合附圖對本發明的技術方案做進一步的詳細說明。
[0027]本發明在于提供一種基于立式標靶的車載單目攝像頭測距測高方法,主要是針對在車載單目攝像頭已經檢測到路面物體的情況下,計算物體高度及其距本車距離。車輛前方障礙物等距離及測高為無人駕駛或輔助駕駛系統的防撞預警、路徑規劃及車輛分類、涵洞橋梁通過性檢測等的重要參數信息,具有較強的工程應用價值。本發明提供的方法只需一個攝像頭則可實現單目測距及測高,而且具有較高的測量精度,操作簡單可行。
[0028]本發明提供的方法不需要對攝像頭進行標定,避免了標定的內外部參數誤差對測量的影響,也不需要多次放置參照物或長距離測量,減少了誤差產生的可能性,使得測量精度足以滿足智能車環境感知系統對測距及測高的精度及實時性要求。本發明將立式標靶放置于攝像頭正前方的合適位置后,采集一次圖像,對感興趣區進行了分塊的自適應二值化處理,立式標靶的示意圖如圖3所示;在感興趣區內利用模板(a)和(b)搜索匹配的所有子圖,得到感興趣區內角點的候選點集CC,具體流程如圖2所示,模板如圖4所示;對候選點集CC進行聚類、篩選等操作后得到初始角點集A,利用參考點與點集A中縱坐標最大點的位置關系,最終補齊并定位所有角點;由于所有角點的高度及其與攝像頭的水平距離都為已知,可以得到各角點的實際成像角度,并用分段直線擬合出了圖像的縱坐標與實際成像角度之間的映射關系,最后利用障礙物等在圖像上的底端與頂端像素值即可分別實現測距與測高。
[0029]所述的實際成像角度是指:攝像頭光軸的側向平面與被測物體離車體最近的底線交點,將其與攝像頭光心相連呈直線,此直線與攝像頭光心垂直于地面的直線之間的夾角。
[0030]圖1展示了本發明一種基于立式標靶的車載單目攝像頭測距測高方法的完整步驟流程,該方法分為以下幾個步驟:[0031]步驟101:將攝像頭安裝在車體上的合適位置,然后將立式標靶放置于攝像頭正前方,且盡量靠近攝像頭的同時,需滿足攝像頭采集的圖像中必須包含立式標靶的最低角點,且角點總數大于8個,測量攝像頭安裝高度h及其與立式標靶靶面的水平距離D ;
[0032]步驟102:采集標祀圖像,分辨率為mm*nn,設置圖像坐標系:左上角點為坐標原點,水平向右為X軸正方向,垂直向下為y軸正方向。設置角點檢測的感興趣區:x方向為[mm/3-l, 2*mm/3-l], y方向為[0,nn_l]。對感興趣區進行分塊,對每個塊分別采用最大類間方差法進行自適應二值化處理,使感興趣區內的圖像轉化為二值圖像;
[0033]其中塊的大小s*v可以依據圖像感興趣區的寬高進行調整,但一般情況下s*v大于 50*50,小于 150*150,單位是 pixel。
[0034]步驟103:在感興趣區內分別利用模板(a)和(b)進行全搜索匹配,采用匹配法檢測角點,得到標祀角點的候選點集CC=Kx1, Y1), (x2, Y2),…,(xk, yk)},其中k為匹配的子圖總數。此步驟的執行流程如圖2所示;
[0035]如圖2所示,本發明方法中匹配法檢測角點分為以下幾個步驟:
[0036]步驟201:初始化循環參數ii及j j,都設置為零;
[0037]步驟202:以(mm/3-l+jj,ii)為左上角點,在感興趣區中擴展出與模板大小相同的待檢測子圖S ;所述模板如圖4所示,包括四種尺寸大小相同的模板,模板大小尺寸均為2e*2e,單位為pixel,但像素值各不相同。其中,e為正方形模板邊長的一半,模板(a)中左上角及右下角的e*e個像素的像素值為0(黑色),其余為255 (白色);模板(b)中右上角及左下角的e*e個像素的像素值為0(黑色),其余為255(白色);模板(C)中右上角e*e個像素的像素值為0(黑色),其余為255(白色);模板(d)中右下角e*e個像素的像素值為0(黑色),其余為255(白色);而且,其用途也不相同,搜索標靶圖像中的角點時用到模板(a)和(b),搜索定位參考點時用到模板(C)和(d)。
[0038]步驟203:計算子圖S與模板的差值圖像G ;
[0039]所述的差值圖像是指對子圖S和模板(a)圖像在相同位置像素點的像素值求差,并取絕對值后所得到的圖像,即當求差的兩幅二值化圖像對應像素點的像素值相等時,差值圖像在對應像素點上的像素值為0 (黑色),如果不相同,像素值為255 (白色)。
[0040]步驟204:對差值圖像G中的每個白色像素點,進行如下處理:以該白色像素點為左上角點,沿向右和向下方向擴充為7像素X7像素大小的塊,將該塊作為統計單元,計算該塊中白色像素點的密度M ;
[0041]所述的密度M是指差值圖像中以7像素X 7像素大小的塊為統計單元,其中像素值為255 (白色)的像素點的個數gg除以像素點的總個數49,公式如下:
[0042]M = gg49 (I)
[0043]步驟205:對所述的密度M進行如下判斷:
[0044](A)判斷是否存在大于密度閾值的密度M,如果存在某個區域的密度M大于設定的密度閾值,則認為模板(a)不匹配,進入步驟(B);否則,進入步驟206 ;
[0045](B)計算子圖S與模板(b)差值圖像,如果存在某個區域的密度M大于設定的密度閾值,則認為模板(b)不匹配,進入步驟207,否則,進入步驟206 ;
[0046]密度閾值設置為0.32,如果密度閾值過大就會將兩幅有較大差異的圖像認為匹配,增大了誤匹配,反之,如果密度閾值過小就會把一些由于光線或路面不平造成標靶存在一定旋轉角度而造成的小范圍零散的不同點誤判為不匹配。通過試驗,本發明所設置的密度閾值可以實現較好的檢測效果。
[0047]步驟206:將子圖S左上角點坐標(mm/3-l+j j,ii)存入候選點集CC中;
[0048]步驟207:將ii加1,判斷ii是否大于nn-l_2e,如果大于進入步驟208,否則,返回步驟202 ;
[0049]步驟208:將jj加1,ii設為初始值0,判斷jj是否大于mm/3-2e,如果大于則結束此模板的匹配,否則,返回步驟202 ;
[0050]步驟104:對候選點集CC中所有點進行聚類及篩選處理;
[0051]由于感興趣區內的背景圖像中可能也會存在與模板(a)和(b)相匹配的子圖,所以為了剔除不是標靶角點處的候選點,需要進行聚類及篩選處理。
[0052]聚類:首先將候選點集CC中所有的點進行分類處理,此過程為:分別計算第一個點與第二個點的橫坐標之差值及縱坐標之差值,如果兩個差值同時小于閾值Tl則將這兩個點記為同一個小類W1,否則將這兩個點分別記為兩個小類W1和W2 ;然后逐點計算候選點集CC中其它點與已經分為小類的所有點的橫坐標之差值及縱坐標之差值,如果與小類中某點的兩個差值同時小于閾值T1,則將待分類點與該小類的點記為同一個小類,否則認為都不屬于已經存在的類,則將增加一個新的小類。假設總共分成了 g小類,則小類的集W= (W1, W2, *?*, wj o分別計算各小類的中心點坐標(xwi, ywi) (i=l, 2,…,g),將任意中心點橫坐標之差值小于閾值T1的小類記為同一個大類;
[0053]所述的計算個各小類中心點坐標是指將小類內所有點的橫、縱坐標分別相加,再除以小類中點總的個數得到的x、y值作為此小類的中心點橫、縱坐標值。
[0054]篩選:由于標靶垂直于地面,而攝像頭平行安裝,在感興趣區內標靶的角點的連線應基本豎直,橫坐標之差值應小于閾值T1,貝U應屬于一個大類。而且由于屬于同一大類的誤匹配點小類相對于屬于同一大類的角點處小類,數量較少,所以保留包含小類數目最多的大類,剔除其他大類,并將保留下來的小類的中心點坐標在X和y方向上分別加上模板寬度和高度的一半e,存為初始角點集A={(xal, yal), (xa2, ya2), ..., (xaj, yaj)},其中j為保留下來的小類的個數,而且初始角點集A中各點的順序是以yal,ya2, -,yaJ值從大到小排列。
[0055]步驟105:在初始角點集A中搜索出最大橫坐標值Xniax,利用模板(C)在橫坐標小于乂.^的感興趣區內從上至下、從右至左搜索匹配的子圖,一旦搜索到,則停止搜索。假設搜索到匹配的子圖左上角點為(Xf,yf),則角點的參考間隔SS=X_-(Xf+e),再利用模板(d)在點(Xf,yf)左下方感興趣區內從上至下、從右至左搜索匹配的子圖,一旦搜索到,則停止搜索,記錄匹配的子圖左上角點為(Xj, y」);
[0056]此次模板匹配法檢測定位參考點的過程包括匹配模板(C)和匹配模板(d)兩部分,在匹配模板(c)時,在X方向[mm/3-l, xmax-2*e], y方向[0,nn-l_2*e]區域內,按照從上至下、從右至左的順序逐點搜索,并進行匹配檢測。方法是將搜索點作為左上角點,擴展出與模板大小相同的待檢測子圖S ;然后計算子圖S與模板(c)的差值圖像G ;最后將差值圖像G中的每個白色像素點擴充為7像素X7像素大小的塊,計算所有塊中白色像素點的密度M,如果存在某個塊的密度M大于設定的密度閾值則認為此子圖S與模板(c)不匹配,繼續搜索下一點作為左上角點進行檢測,否則認為匹配,結束搜索。匹配模板(d)時,搜索區域改為X方向[mm/3-l, xf-2*e], y方向[yf+2*e, nn-l_2*e],同樣按照從上至下、從右至左的順序逐點搜索,并進行匹配檢測。檢測過程與模板(C)相同。
[0057]步驟106:搜索完畢后,判斷是否存在步驟105的兩個定位參考點(xf,yf)和(Xj, y」),如果存在進入步驟107 ;否則返回步驟101 ;
[0058]其中定位參考點(xf, yf)有可能是圖3所示的參考點①或者參考點②,因為如果標靶完全豎直或存在順時針旋轉,那首先搜索到的是參考點①,否則是參考點②,而(\,yP為參考點③。搜索定位參考點的目的為:(1)由于對立式標靶的靶面進行分析后發現在豎直角點集的左側只有兩處滿足模板(c)的特征,而其左下方只有一處滿足模板(d)的特征,所以搜索定位參考點可進一步確認檢測到的初始角點集A的正確性;(2)由于參考點③及其與角點相對位置的唯一性,可以利用它對各角點進行定位。所述參考點①為從下至上第六個角點左側的一個具有明顯灰度分布特點的點,其右上角的e*e個像素的像素值為0(黑色),其余為255 (白色);參考點②為第四個角點左側與參考點①具有相同灰度分布的點;參考點③為第二個角點左側大概兩倍間隔處,灰度分布為右下角的e*e個像素的像素值為0(黑色),其余為255(白色)的點。
[0059]所以,如果由于攝像機安裝或標靶放置不當,在步驟105中沒有檢測到兩個定位參考點(xf,yf)和(Xj,Yj),則無法判斷初始角點集A的準確性,更無法定位,則需要返回101重新開始。
[0060]步驟107:將初始角點集A中縱坐標最大值yal與y」進行比較,如果yal-yj為ss的3倍左右,認為點(xal, yal)為標祀最低角點,否則,將點(xmax,y」+ss*3 )作為標革巴的最低角點;然后將角點補充完整,并得到角點集C= {(xcl, ycl), (xc2, yc2),…,(xcn, ycn)},其中n表示角點集中標靶角點總數,且C中各點的順序也以y值從大到小排列,最后運用openCV中的cvFindCornerSubPixO函數,以角點集C為基準將其更新為亞像素級角點集B= {Ubl,ybl),(xb2, yb2 ),…,(xbn, ybn)};
[0061]其中,將角點補充完整的過程為:如果點(xal,yal)為標靶最低角點,則依次計算初始角點集A中相鄰點縱坐標值之差yaii_ya(ii+1),當差值為ss的t倍左右,則需要在點集A的第ii個點與第ii+1個點之間補充上t-1個點(如果t為I則不需要在這兩點間補充),坐標分別為(xaii, yai1-jj*ss) (jj=l,…,t-1),當搜索到A中最后一個點(xaj, yaj)時,以yaj作為差值進行計算;如果點(x_,yj+ss*2)為標靶最低角點,那么還需要計算差值yj+SS*2-yal,以同樣的方法將點(x_,yj+ss*2)與點(xal,yal)之間的角點補充完整。
[0062]步驟108:圖像中n個角點的高度集HH=Ih1A,…,hn} = {l.00,1.05,...,1.00+(n-l)*0.05},然后利用參數h和D,通過式(2)計算得到各角點的實際成像角度集
Q=Iq1, q2,…,qn},其中各角度值與亞像素級角點集B的縱坐標{ybl, yb2, ---,YbJ按順序--
對應,得到映射點集P={(yM,Qi),(yb2.Q2),…,(ybn,qn)I,以直線擬合映射點集內相鄰兩點,得到相鄰點映射關系集F=If1, f2,…,fn_J,如式(3)所示;
[0063]qn = tan-1 [D/ Q1-1iii)] (2)
[0064]其中,ii=l,…,n。
【權利要求】
1.一種基于立式標靶的車載單目攝像頭測距測高方法,其特征在于,包括以下步驟:步驟101:攝像頭安裝于車體的合適位置后,首先將立式標靶放置于攝像頭正前方,然后測量攝像頭安裝高度h及其與立式標靶靶面的水平距離D ;所述立式標靶與攝像頭之間的距離需滿足采集的標靶圖像中必須包含最低的角點,且角點總數大于8個; 步驟102:采集標祀圖像,分辨率為mm*nn,設置圖像坐標系:左上角點為坐標原點,水平向右為X軸正方向,垂直向下為y軸正方向;設置角點檢測的感興趣區:x方向為[mm/3-l, 2*mm/3-l], y方向為[0,nn_l];對感興趣區進行分塊并進行自適應二值化處理;步驟103:在感興趣區內利用設計的模板(a)和(b)分別進行全搜索匹配,采用匹配法檢測角點,保留所有匹配子圖的左上角點,組成標靶角點的候選點集CC=Kx1, Y1), (x2, y2),…,(xk, yk)},其中k為匹配的子圖總數; 步驟104:對候選點集CC中所有點進行聚類及篩選處理,得到初始角點集A ; 步驟105:在初始角點集A中搜索出最大橫坐標值Xniax,利用模板(c)在橫坐標小于xfflax-e的感興趣區內從上至下、從右至左搜索匹配的子圖,一旦搜索到,則停止搜索;假設搜索到匹配的子圖左上角點為Uf,yf),則角點的參考間隔SS=X_-(Xf+e),再利用模板(d)在點(xf,yf)左下方感興趣區內從上至下、從右至左搜索匹配的子圖,一旦搜索到,則停止搜索,記錄匹配的子圖左上角點為(Xj, Yj);將角點(xf, yf)和(Xj, Yj)作為定位參考點; 步驟106:搜索完畢后,判斷是否存在步驟105的兩個定位參考點(xf,yf^P(Xj,y」),如果存在進入步驟107 ;否則返回步驟101 ; 步驟107:將初始角點集A中縱坐標最大值yc;1與yj進行比較,如果Yc^yj為ss的3倍左右,認為點(Xc^yel)為標靶最低角點;否則,將點(xmax,yj+ss*3)作為標靶的最低角點,然后利用初始角點集A和參考間隔ss將圖像中全部角點補充完整,并得到角點集C={(xcl, ycl), (xc2, yc2), --?,(xcn, ym)},其中n表示圖中標祀角點總數,且C中各點的順序也以y值從大到小排列,最后運用openCV中的cvFindCornerSubPixO函數,以角點集C為基準將其更新為亞像素級角點集B=`Kxbl, ybl),(xb2, yb2),…,(xbn, ybn)}; 步驟108:圖像中n個角點的高度集HH={1.00,1.05,…,1.00+(n_l) *0.05},然后利用參數h和D,計算得到各角點的實際成像角度集Q= {Ql, q2,…,qn},其中各角度值與亞像素級角點集B的縱坐標{ybl, yb2,…,ybn}按順序--對應,得到映射點集P= {(ybl, Qi), (yb2, Q2).…,(ybn, qn)},以直線擬合相鄰兩點,得到相鄰點映射關系集F= {f\,f2,…,; 步驟109:在實時測距過程中,將通過障礙物檢測算法得到的障礙物底等部y方向坐標yz作為參數輸入,首先判斷出^所屬的映射關系fpCKKn ;利用&的直線方程計算^對應的實際成像角度qz,然后以qz作為輸入通過測距方程計算障礙物等的距離Lz:
Lz = h ? tanqz (4) 其中,當yz小于等于yb2時,選擇映射關系計算實際成像角度% ;當yz大于等于yb(n-1>時,選擇映射關系計算實際成像角度qz;其他情況下,首先搜索到yz所在區間,即yM^y^ybm+i),然后選擇映射關系L計算實際成像角度% ; 步驟Iio:根據系統需要判斷是否需要測量障礙物等的高度,如果需要繼續步驟ill ;否則結束此障礙物等的測距; 步驟111:將通過障礙物檢測算法得到的障礙物頂等部y方向像素值yd作為參數輸入,首先判斷出yd所屬的映射關系4,0〈1〈11,利用fi的直線方程計算yd對應的實際成像角度qd,然后以qd和障礙物距離Lz作為輸入通過測高方程計算障礙物等的高度Hz:
Hz = h-a ? Lz ? tan (| 90。-qd ) (5) 其中,當qd>90°時a取-1,當qd〈90°時a取I。
2.根據權利要求1所述的一種基于立式標靶的車載單目攝像頭測距測高方法,其特征在于:步驟102中所述感興趣區內塊大小大于50*50,單位是pixel,對每個塊分別采用最大類間方差法進行自適應二值化處理。
3.根據權利要求1所述的一種基于立式標靶的車載單目攝像頭測距測高方法,其特征在于:所述模板包括四種尺寸大小相同的模板,模板大小尺寸均為2e*2e,單位為pixel,其中,e為正方形模板邊長的一半,模板(a)中左上角及右下角的e*e個像素的像素值為0,其余為255 ;模板(b)中右上角及左下角的e*e個像素的像素值為0,其余為255 ;模板(c)中右上角e*e個像素的像素值為0,其余為255 ;模板(d)中右下角e*e個像素的像素值為0,其余為255 ;搜索標靶圖像中的角點時用到模板(a)和(b),搜索定位參考點時用到模板(C)和(d)。
4.根據權利要求1所述的一種基于立式標靶的車載單目攝像頭測距測高方法,其特征在于:步驟103中所述的匹配法檢測角點分為以下幾個步驟: 步驟201:初始化循環參數ii及jj,都設置為零; 步驟202:以為左上角點,在感興趣區中擴展出與模板大小相同的待檢測子圖S ; 步驟203:計算子圖S與模板的差值圖像G ; 所述的差值圖像是指對子圖S和模板(a)圖像在相同位置像素點的像素值求差,并取絕對值后所得到的圖像,即當求差的兩幅二值化圖像對應像素點的像素值相等時,差值圖像在對應像素點上的像素值為0,如果不相同,像素值為255 ; 步驟204:對差值圖像G中的每個白色像素點,進行如下處理:以該白色像素點為左上角點,沿向右和向下方向擴充為7像素X7像素大小的塊,將該塊作為統計單元,計算該塊中白色像素點的密度M ; 所述的密度M是指差值圖像中以7像素X 7像素大小的塊為統計單元,其中像素值為255的像素點的個數gg除以像素點的總個數49,公式如下: M = gg/49 (I) 步驟205:對所述的密度M進行如下判斷: (A)判斷是否存在大于密度閾值的密度M,如果存在某個區域的密度M大于設定的密度閾值,則認為模板(a)不匹配,進入步驟(B);否則,進入步驟206 ; (B)計算子圖S與模板(b)差值圖像,如果存在某個區域的密度M大于設定的密度閾值,則認為模板(b)不匹配,進入步驟207,否則,進入步驟206; 步驟206:將子圖S左上角點坐標(mm/3-l+j j,ii)存入候選點集CC中; 步驟207:將ii加1,判斷ii是否大于nn-l-2e,如果大于進入步驟208,否則,返回步驟 202 ; 步驟208:將jj加1,ii設為初始值0,判斷jj是否大于mm/3-2e,如果大于則結束此模板的匹配,否則,返回步驟202。
5.根據權利要求4所述的一種基于立式標靶的車載單目攝像頭測距測高方法,其特征在于:所述的密度閾值設置為0.32。
6.根據權利要求1所述的一種基于立式標靶的車載單目攝像頭測距測高方法,其特征在于:步驟104所述的聚類具體為:首先將候選點集CC中所有的點進行分類處理,此過程為:分別計算第一個點與第二個點的橫坐標之差值及縱坐標之差值,如果兩個差值同時小于閾值Tl則將這兩個點記為同一個小類W1,否則將這兩個點分別記為兩個小類W1和W2 ;然后逐點計算候選點集CC中其它點與已經分為小類的所有點的橫坐標之差值及縱坐標之差值,如果與小類中某點的兩個差值同時小于閾值T1,則將待分類點與該小類的點記為同一個小類,否則認為都不屬于已經存在的類,則將增加一個新的小類;假設總共分成了 g小類,則小類的集W= (W1, W2, wj ;分別計算各小類的中心點坐標(xwi, ywi)(i=l, 2,…,g),將任意中心點橫坐標之差值小于閾值T1的小類記為同一個大類;所述的計算個各小類中心點坐標是指將小類內所有點的橫、縱坐標分別相加,再除以小類中點總的個數得到的x、I值作為此小類的中心點橫、縱坐標值。 所述的篩選具體為:在感興趣區內標靶的角點橫坐標之差值小于閾值T1的,劃分為一個大類,保留包含小類數目最多的大類,剔除其他大類,并將保留下來的小類的中心點坐標在X和y方向上分別加上模板寬度和高度的一半e,存為初始角點集A={(xal, yal), (xa2, ya2), --?, (xaj, yaj)},其中j為保留下來的小類的個數,而且初始角點集A中各點的順序是以yal,ya2, - ,yaJ值從大到小排列。
7.根據權利要求1所述的一種基于立式標靶的車載單目攝像頭測距測高方法,其特征在于:步驟105所述的定位參考點采用模板匹配法檢測,包括匹配模板(c)和匹配模板(d)兩部分,在匹配模板(C)時,在X方向[mm/3-l, Xmax-2*e], y方向[0,nn-l_2*e]區域內,按照從上至下、從右至左的順序逐點搜索,并進行匹配檢測;方法是將搜索點作為左上角點,擴展出與模板大小相同的待檢測子圖S ;然后計算子圖S與模板(c)的差值圖像G ;最后將差值圖像G中的每個白色像素點擴充為7像素X7像素大小的塊,計算所有塊中白色像素點的密度M,如果存在某個塊的密度M大于設定的密度閾值則認為此子圖S與模板(c)不匹配,繼續搜索下一點作為左`上角點進行檢測,否則認為匹配,結束搜索;匹配模板(d)時,搜索區域改為X方向[mm/3-l, xf-2*e], y方向[yf+2*e, nn-l_2*e],同樣按照從上至下、從右至左的順序逐點搜索,并進行匹配檢測,檢測過程與模板(c)相同。
8.根據權利要求1所述的一種基于立式標靶的車載單目攝像頭測距測高方法,其特征在于:步驟107中所述將角點補充完整的過程為:如果點(xal,yal)為標靶最低角點,則依次計算初始角點集A中相鄰點縱坐標值之差yaii_ya(ii+i),當差值為ss的t倍左右,則需要在點集A的第ii個點與第ii+1個點之間補充上t-1個點,坐標分別為(xaii, yai1-jj*ss),jj=l,…,t-1,當搜索到A中最后一個點(xaj, yaJ)時,以yaj作為差值進行計算;如果點(xfflax, yj+ss*2)為標靶最低角點,那么還需要計算差值yj+SS*2-yal,以同樣的方法將點(xmax, y」+ss*2)與點(xal, yal)之間的角點補充完整。
【文檔編號】G01C11/04GK103487034SQ201310445576
【公開日】2014年1月1日 申請日期:2013年9月26日 優先權日:2013年9月26日
【發明者】高峰, 徐國艷, 丁能根, 黃小云, 邢龍龍, 朱金龍 申請人:北京航空航天大學