陸雅婷
(南京理工大學(xué) 南京 210094)
基于無人機(jī)的高速公路應(yīng)急車道管理系統(tǒng)通過無人機(jī)上搭載攝像機(jī),對(duì)高速公路的應(yīng)急車道進(jìn)行連續(xù)拍攝,識(shí)別應(yīng)急車道上是否存在車輛,從而方便進(jìn)行對(duì)應(yīng)急車道的管理。由于無人機(jī)續(xù)航能力差,因此需要及時(shí)充電,本文旨在通過研究攝像機(jī)標(biāo)定算法,求出充電樁與無人機(jī)的相對(duì)位置,控制無人機(jī)自動(dòng)定點(diǎn)降落,實(shí)現(xiàn)無人機(jī)長時(shí)間連續(xù)巡航的目的。為了求出攝像機(jī)的內(nèi)外參數(shù),必須從多個(gè)角度拍攝標(biāo)定板,目前已知的攝像機(jī)標(biāo)定工具箱 ,如 Camera Calibration Toolbox[1],以 及 通 過Opencv[2]實(shí)現(xiàn)的攝像機(jī)標(biāo)定,均是采用棋盤格的標(biāo)定板,精準(zhǔn)獲得棋盤格角點(diǎn)的亞像素坐標(biāo)。棋盤格標(biāo)定板在X軸和Y軸方向都是上下或左右對(duì)稱的,當(dāng)無人機(jī)飛在空中時(shí),面對(duì)完全對(duì)稱的棋盤格標(biāo)定板,是無法辨認(rèn)空中的方向,找準(zhǔn)標(biāo)定板方位的。同時(shí),Camera Calibration Toolbox[1]工具箱在使用的過程中,需要人為的指定標(biāo)定板的4個(gè)頂角[3],這對(duì)于無人機(jī)航行時(shí)自動(dòng)定點(diǎn)降落是不適用的;OpenCV[2]雖然不需要人為指定,能夠自動(dòng)識(shí)別角點(diǎn)坐標(biāo),但是當(dāng)棋盤格出現(xiàn)缺損某個(gè)格子或者圖像造成部分遮擋時(shí),無法識(shí)別出圖像中的角點(diǎn)與標(biāo)定板上角點(diǎn)的一一對(duì)應(yīng)關(guān)系,將不能正確求解出攝像機(jī)的參數(shù)。
文獻(xiàn)[4]提出采用矩形標(biāo)記方法[5]的基準(zhǔn)點(diǎn)標(biāo)記ARTag(Augmented Reality Tag),具有高可靠性,它有效地解決了興趣點(diǎn)檢測(cè)和匹配問題。文獻(xiàn)[3]在此基礎(chǔ)上,提出的標(biāo)定模板基于矩形編碼ART-ag,進(jìn)行攝像機(jī)標(biāo)定,精度優(yōu)于ARTag,且標(biāo)定點(diǎn)密度高、算法魯棒性好、能夠自動(dòng)識(shí)別。文獻(xiàn)[6]利用周圍圖案對(duì)稱和灰度值對(duì)比明顯的獨(dú)特性質(zhì),設(shè)計(jì)了由對(duì)稱算子S和方差算子V組合而成的角點(diǎn)檢測(cè)算子——對(duì)稱方差算子(Symm Etry and Variance),簡稱SV算子。該算法對(duì)棋盤格圖像的旋轉(zhuǎn)變換和亮度變換具有魯棒性和抗噪能力強(qiáng)的優(yōu)點(diǎn)。但以上都方法較為繁瑣,針對(duì)本項(xiàng)目的工程應(yīng)用需求,需要方便快捷地自動(dòng)識(shí)別角點(diǎn)坐標(biāo),且對(duì)于標(biāo)定精度要求不高,本文提出的全新的模板,將解決上述問題,可以自動(dòng)識(shí)別圖像的角點(diǎn)坐標(biāo),以及圖像缺損時(shí)如何求解圖像中角點(diǎn)坐標(biāo)的問題,可以方便、全自動(dòng)地實(shí)現(xiàn)攝像機(jī)標(biāo)定。
為了使得標(biāo)定板在本系統(tǒng)中使用,本文改進(jìn)了傳統(tǒng)的攝像機(jī)標(biāo)定板,將原來的棋盤格改成了不對(duì)稱的圓點(diǎn),其中第一列第一個(gè)圓點(diǎn)直徑9mm,第一列最后一個(gè)圓點(diǎn)直徑6mm,其余圓點(diǎn)直徑3mm,圓與圓之間間隔1.5cm,制成10行×6列的模板(本文中9mm×6mm×3mm的數(shù)據(jù)可適用于標(biāo)定板和攝像機(jī)相距1m左右的情況,若標(biāo)定板和攝像機(jī)相距較遠(yuǎn),可相應(yīng)地按比例放大),通過不同圓的大小,即使在空中,也能確定圖像中正確的x和y軸方向,使得圖像中的圓點(diǎn)圓心坐標(biāo)與標(biāo)定板一一對(duì)應(yīng)。如圖1所示。
本項(xiàng)目主要應(yīng)用于野外,因此標(biāo)定板會(huì)出現(xiàn)一些點(diǎn)的模糊、缺損等現(xiàn)象,如圖2所示,下一節(jié)將詳細(xì)介紹如何方便求出缺損點(diǎn)坐標(biāo)的方法。
圖1 改進(jìn)的攝像機(jī)標(biāo)定板
圖2 圖像出現(xiàn)缺損
傳統(tǒng)的標(biāo)定板是棋盤格,求取的是直線角點(diǎn)坐標(biāo),大致方法分為兩類[7]:一是通過提取直線相交的交點(diǎn),獲得角點(diǎn)坐標(biāo),二是基于灰度圖像的角點(diǎn)檢測(cè)方法[8~16],考慮像素鄰域點(diǎn)的灰度變化,將與鄰點(diǎn)灰度對(duì)比足夠大的點(diǎn)定義為角點(diǎn)?;诒疚闹刑岢龅臉?biāo)定板,我們采用如下方法:1)讀取圖像,并轉(zhuǎn)為二值圖像,掃描并跟蹤圖像中的圓點(diǎn),獲得圓的半徑r,提取每一個(gè)圓點(diǎn)的鏈碼,求取每個(gè)圓的中心坐標(biāo),即是把求取棋盤格角點(diǎn)坐標(biāo)轉(zhuǎn)化為求取圓點(diǎn)的中心坐標(biāo)。但是通過此方法求取出來的點(diǎn)坐標(biāo)是雜亂無序的;2)在獲得各圓點(diǎn)圓心坐標(biāo)后,可以根據(jù)數(shù)學(xué)規(guī)律將所有點(diǎn)坐標(biāo)排序,達(dá)到與標(biāo)定板角點(diǎn)一一對(duì)應(yīng)的目的。
因?yàn)榈谝涣械谝粋€(gè)圓點(diǎn)和最后一個(gè)圓點(diǎn)半徑都大于其他圓點(diǎn),可以很方便地從80個(gè)圓心坐標(biāo)中找出這兩個(gè)點(diǎn)的坐標(biāo)A00和A90(下標(biāo)數(shù)字代表第X行第X列),就可以確定第一列從點(diǎn)A00到點(diǎn)A90的向量,如圖3所示,再根據(jù)每個(gè)圓心間距一樣,通過(X90-X00)/9 和(Y90-Y00)/9(X90、Y90分別表示點(diǎn) A90的橫、縱坐標(biāo))可以近似求得相鄰點(diǎn)間的橫縱坐標(biāo)的ΔX和ΔY,因此每一行的圓點(diǎn)圓心坐標(biāo)都可以根據(jù)前一個(gè)圓點(diǎn)的圓心坐標(biāo),加上ΔX和ΔY,再給定一定的誤差范圍,就可以確定下一個(gè)圓點(diǎn)圓心坐標(biāo)。這樣只要確定了每一列的第一個(gè)點(diǎn)的坐標(biāo),就可以依此類推確定整列圓點(diǎn)的圓心坐標(biāo)。
我們已經(jīng)知道了如何根據(jù)每列第一個(gè)圓點(diǎn)的圓心坐標(biāo)求取整列的圓心坐標(biāo),那么我們必須先確定每列的第一個(gè)點(diǎn)的坐標(biāo),即第一行圓點(diǎn)的圓心坐標(biāo)。如圖3所示,已經(jīng)能夠確定從點(diǎn)A00到點(diǎn)A90的向量,那么將該向量逆時(shí)針旋轉(zhuǎn)一定角度,如圖中的α和β角度,當(dāng)旋轉(zhuǎn)的角度最大時(shí),即為第一行圓點(diǎn)A00到A07向量的方向,再根據(jù)A00到A01的距離比A01到第一行其他圓點(diǎn)距離短,可以確定A01的圓點(diǎn)圓心坐標(biāo),依此類推根據(jù)前一個(gè)圓心坐標(biāo)求下一個(gè)圓心坐標(biāo)。
根據(jù)以上方法即可確定圖像上圓點(diǎn)圓心坐標(biāo)的順序,并將它們重新排序,使之與標(biāo)定板坐標(biāo)一一對(duì)應(yīng)。
由于本項(xiàng)目對(duì)于標(biāo)定結(jié)果的精度要求不高,當(dāng)標(biāo)定板出現(xiàn)如圖2所示的部分缺損時(shí),圖像中的圓心坐標(biāo)無法與實(shí)際標(biāo)定板一一對(duì)應(yīng)時(shí),我們?nèi)匀豢梢杂蒙鲜龅姆椒ǎ词刮磼呙璧皆擖c(diǎn)的坐標(biāo),也可以根據(jù)ΔX和ΔY,推算出下一個(gè)點(diǎn)的坐標(biāo),從而進(jìn)一步進(jìn)行運(yùn)算。
圖3 確定圓點(diǎn)坐標(biāo)順序
通過上述介紹的方法,只要程序讀入圖片,即可自動(dòng)求取出圖像中圓點(diǎn)的圓心坐標(biāo),即角點(diǎn)坐標(biāo)。
針對(duì)本文提出的方法進(jìn)行試驗(yàn),分別從不同的角度和高度拍攝標(biāo)定板,求取角點(diǎn)坐標(biāo),為了方便比對(duì),本文將圓點(diǎn)提取出來,按照求出的圓心坐標(biāo)在相應(yīng)的圓點(diǎn)上畫十字來標(biāo)記圓心坐標(biāo),能夠直觀地看出求出的點(diǎn)是否在圓心,如圖4所示,圖像中每個(gè)圓點(diǎn)的圓心坐標(biāo)均被求出,且誤差在本項(xiàng)目的精度范圍內(nèi),基本滿足使用需求。
圖4 標(biāo)記圓點(diǎn)的圓心坐標(biāo)
當(dāng)拍攝的圖像出現(xiàn)缺損時(shí),通過推算出下一個(gè)點(diǎn)的坐標(biāo),我們也能獲得當(dāng)前缺損點(diǎn)理論上的坐標(biāo)值,如圖5所示,截取了缺損部分的實(shí)驗(yàn)結(jié)果圖像,根據(jù)推算出的圓點(diǎn)圓心坐標(biāo),達(dá)到與標(biāo)定板上圓點(diǎn)一一對(duì)應(yīng)的關(guān)系,能很好地符合工程應(yīng)用的需要。
圖5 缺損部分實(shí)驗(yàn)結(jié)果
本文提出的全新的攝像機(jī)標(biāo)定板,可以有效地解決自動(dòng)識(shí)別角點(diǎn)坐標(biāo)和標(biāo)定板角點(diǎn)缺失的問題,使之能夠應(yīng)用在無人機(jī)自動(dòng)定點(diǎn)降落的工程問題中,方法簡便,實(shí)現(xiàn)較易,能夠很好地應(yīng)用在相應(yīng)的工程問題中。