(1. 61363部隊, 西安 710054;2.66444部隊,北京 100042)
隨著微電子和半導(dǎo)體技術(shù)的發(fā)展,尤其是一些嵌入式微處理器(Micro Processor Unit,簡稱MPU)的發(fā)展,已經(jīng)能夠?qū)崿F(xiàn)高效、可靠的數(shù)據(jù)運算,具備了一定的數(shù)字圖像處理能力[1]。它們不僅具有體積小、功耗低、效率高、集成容易以及性能穩(wěn)定等特點,而且在工作溫度、抗電磁干擾、可靠性等方面相對通用計算機(jī)中的CPU都做了各種增強,比如DSP數(shù)字信號處理器等[2-3]。
隨著普通數(shù)碼相機(jī)的分辨率越來越高、價格越來越便宜,常被應(yīng)用于數(shù)字近景攝影測量、計算機(jī)視覺等領(lǐng)域。但是普通數(shù)碼相機(jī)會有一定的畸變,而且這些畸變往往是未知的,因而它們在用于攝影測量之前需要進(jìn)行相機(jī)標(biāo)定[4]。
DSP是一種高效、可靠的嵌入式微處理器,特別適合于各種數(shù)字信號的處理運算。為了驗證DSP能夠?qū)崿F(xiàn)相機(jī)標(biāo)定的運算處理以及標(biāo)定結(jié)果的可靠性、穩(wěn)定性,這里就以它作為數(shù)據(jù)處理的核心硬件,同時,也為后續(xù)開發(fā)嵌入式系統(tǒng)奠定基礎(chǔ)。本文將DSP技術(shù)與相機(jī)標(biāo)定相結(jié)合,設(shè)計了一種基于DSP的非量測相機(jī)標(biāo)定方法,分別對DSP的開發(fā)、相機(jī)標(biāo)定算法的實現(xiàn)過程等進(jìn)行了深入的研究。
基于DSP的相機(jī)標(biāo)定系統(tǒng)的硬件主要有DSP芯片、計算機(jī)、顯示器及數(shù)據(jù)線等,其中DSP芯片是整個系統(tǒng)的核心部件,主要任務(wù)是完成相機(jī)標(biāo)定算法,其硬件原理框圖如圖1所示。
圖1 相機(jī)標(biāo)定系統(tǒng)原理框圖
本文采用TI公司推出的一款32位高性能浮點TMS320C6713 DSP芯片,如圖2所示。其工作主頻最高可以達(dá)到200MHz,含有8個可并行處理的運算單元,芯片處理速度高達(dá)1600MIPS。片內(nèi)含有264KB×8位儲存器,其中包括有4KB×8位L1D cache、4KB×8位L1P cache以及256KB×8位L2RAM/cache[5]。另外,它還采用了VLIW體系結(jié)構(gòu)、流水線技術(shù)以及特殊指令集,因而運算速度得到了大幅度提高。
圖2 TMS320C6713 DSP芯片
由于實驗條件限制,無法將TMS320C6713與數(shù)碼相機(jī)直接連接運行,并且它的儲存容量十分有限,因此,只有借助于PC機(jī)以及其它設(shè)備來輔助測試相機(jī)的標(biāo)定。從硬件原理框架圖可知,本文將PC機(jī)與數(shù)碼相機(jī)相連,目的是利用PC機(jī)來獲取影像數(shù)據(jù)并自動識別人工標(biāo)志;將PC機(jī)與顯示器相連,目的是演示最后解算的結(jié)果;將TMS320 C6713 與PC機(jī)相連,目的是使TMS320C6713能夠順利獲取相機(jī)標(biāo)定所需要的數(shù)據(jù),以便驗證利用TMS320C6713來進(jìn)行相機(jī)標(biāo)定的可行性,硬件的設(shè)計方案達(dá)到實驗要求。
采用的圖像采集設(shè)備是非量測數(shù)碼相機(jī),圖像分辨力達(dá)到2150萬像素,人工標(biāo)志自動識別算法較復(fù)雜且需要開辟一定的儲存空間,然而TMS320C6713的儲存空間又十分有限,所以本文實驗直接利用PC機(jī)來完成人工標(biāo)志的自動識別。整個系統(tǒng)的工作流程如圖3所示。首先,PC機(jī)通過USB接口數(shù)據(jù)線從數(shù)碼相機(jī)獲取影像數(shù)據(jù),并對圖像中的人工標(biāo)志進(jìn)行自動識別處理,獲得編碼標(biāo)志的編號及點位信息;然后,TMS320C6713通過RS232標(biāo)準(zhǔn)串口從PC機(jī)中分配獲取相機(jī)標(biāo)定所需要的原始數(shù)據(jù),并利用它們來進(jìn)行相機(jī)標(biāo)定解算,解算出像片的內(nèi)外方位元素以及數(shù)碼相機(jī)的畸變參數(shù);最后,將解算的結(jié)果傳回給PC機(jī)并通過顯示器演示出來。
圖3 相機(jī)標(biāo)定系統(tǒng)流程圖
文獻(xiàn)[6-7]等對近景攝影測量系統(tǒng)中相機(jī)標(biāo)定技術(shù)均進(jìn)行了深入的研究,對標(biāo)定算法的研究不是本文研究的重點,故此采用DLT算法和試驗場法算法設(shè)計相機(jī)標(biāo)定系統(tǒng)。
關(guān)于DSP串口通信方式現(xiàn)有多種方式,例如通過軟件模擬或外部可編程芯片實現(xiàn)數(shù)據(jù)收發(fā)等[8]。本文采用的是后一種方式,即利用異步串口通信收發(fā)器來輔助TMS320C6713完成數(shù)據(jù)收發(fā)。
2.2.1 TMS320C6713串口通信
本文將采用輪詢方式實現(xiàn)串行通信,即CPU不斷查詢串口狀態(tài)進(jìn)行接收和發(fā)送,如LSR寄存器可以輸入輸出端口的變化,以此來告訴TMS320C6713是接收還是發(fā)送數(shù)據(jù)抑或是等待狀態(tài)。當(dāng)LSR等于0時,說明有數(shù)據(jù)發(fā)送過來,這時TMS320C6713對數(shù)據(jù)進(jìn)行采樣存儲到寄存器中;當(dāng)LSR等于1時,說明要發(fā)送數(shù)據(jù)出去,這時TMS320C6713將8位并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)發(fā)送給PC機(jī)。具體過程如圖4。
圖4 DSP串口傳輸過程圖
2.2.2 PC機(jī)串口通信
本文實驗在VC環(huán)境下,直接采用Microsoft公司提供的MSComm串口通信控件來實現(xiàn)數(shù)據(jù)的異步傳輸[9],編程步驟如下:
1)在當(dāng)前的工程中插入MSComm控件,并添加相應(yīng)的類和對象;
2)對串口進(jìn)行初始化,設(shè)置其屬性參數(shù);
3)添加串口捕捉程序OnComm(),采用事件驅(qū)動的方法,即有事件(如串口接收到數(shù)據(jù))時通知程序;
4)編輯串口讀寫函數(shù)和其他功能程序。
在數(shù)據(jù)傳輸過程中,采用的是D型串口線,只能以字節(jié)為單位進(jìn)行傳輸,而要實現(xiàn)攝影測量定位解算,其數(shù)據(jù)(包括內(nèi)方位元素、像點坐標(biāo)及對應(yīng)的物點坐標(biāo)等等)往往是雙浮點型的,因此,在數(shù)據(jù)傳輸前,先要進(jìn)行數(shù)據(jù)格式的轉(zhuǎn)換。
本文實驗采用TI公司推出的TMS320C6713 浮點DSP芯片、PC機(jī)。相機(jī)標(biāo)定所需的實驗場為室內(nèi)試驗場,如圖5所示,主要由質(zhì)地堅硬的鋼管與墻體組成,可以確保物方點具有較高的穩(wěn)定性、可靠性;其上布有大量的人工標(biāo)志點,可以自動提取標(biāo)志點并自動附上編碼,如圖6所示,進(jìn)而實現(xiàn)相機(jī)的自動標(biāo)定。
圖5 相機(jī)標(biāo)定試驗場
圖6 編碼標(biāo)志識別結(jié)果
首先,提取圖像中的人工標(biāo)志點,獲得標(biāo)志點的像素坐標(biāo)并附上編碼;由人工標(biāo)志點的像素坐標(biāo)計算其像平面坐標(biāo),其中,相機(jī)的像元大小為0.0055mm;結(jié)合已知的人工標(biāo)志點的物點、像點坐標(biāo),利用DLT方法解算出像片的內(nèi)外方位元素;然后以這些元素值為初始值代入試驗場法所提供的方程中,解算出像片的外方位元素及相機(jī)的畸變參數(shù);最后,驗證該方法的精度,分析基于DSP的非量測相機(jī)標(biāo)定的可行性。
以得到的像點坐標(biāo)和已知的對應(yīng)物點坐標(biāo)為源數(shù)據(jù),利用DLT方法解出方程系數(shù)值,進(jìn)而解得像片的內(nèi)、外方位元素,結(jié)果如表1所示,其中(x0,y0)為像主點坐標(biāo),(XS,YS,ZS,φ,ω,κ)為像片的外方位元素。以解算得到的內(nèi)、外方位元素為初始值,利用實驗場法對相機(jī)進(jìn)行標(biāo)定,相機(jī)畸變參數(shù)結(jié)果如表2所示,其中k1,k2,k3為相機(jī)鏡頭徑向畸變參數(shù);P1,P2為相機(jī)偏心畸變參數(shù);b1,b2為相機(jī)像平面畸變參數(shù)。相機(jī)標(biāo)定所得到的像片內(nèi)外方位元素及中誤差與參考值之間的比較,結(jié)果如表3所示,其中參考值由目前最高精度的美國GSI公司商用化工業(yè)攝影測量軟件V-STARS系統(tǒng)測量,文獻(xiàn)[10]表明在攝影距離2m范圍內(nèi)V-STARS系統(tǒng)單相機(jī)測量的點位精度優(yōu)于0.02mm,可以將其相機(jī)光束法自標(biāo)定結(jié)果作為基準(zhǔn)。利用解算出相應(yīng)的像點坐標(biāo)(x′,y′),與提取定位出來的像點坐標(biāo)(x,y)相減可以得到坐標(biāo)誤差,根據(jù)如下誤差計算公式計算X、Y、Z軸方向上的精度。
表1 像片內(nèi)外方位元素 (角度單位:弧度)
表2 相機(jī)畸變參數(shù)
表3 相機(jī)標(biāo)定結(jié)果與參考值的比較 (角度單位:弧度)
1)由表3可知:10參數(shù)法在X方向上的精度比參考結(jié)果要好,而在Y方向上要差一些,但整體上,二者精度是一致的;由實驗可知:雖然本文使用的DSP主頻遠(yuǎn)不及通用CPU,但其具有乘累加器、可流水線操作等硬件優(yōu)勢,可大大提高運算的速度。
2)本文實驗驗證了用DSP進(jìn)行近景攝影測量相機(jī)標(biāo)定工作的精度是可靠的,與常規(guī)條件下解算的精度是相當(dāng)?shù)?。由于實驗設(shè)備有限,未能探測到整個程序運行的時間,但是,實際上其所花費的時間不足1s,是完全能夠滿足實時性要求的,因此,本文提出的基于DSP的相機(jī)標(biāo)定方法是有效可行的。
[1] 周根林.嵌入式系統(tǒng)原理與應(yīng)用[M].南京大學(xué)出版社,2006
[2] 吳東暉,田元.基于DSP的聲發(fā)射信號采集及分析系統(tǒng)的研究[J].計量技術(shù),2012(3):16-20
[3] Knittel,G.A.reconfigurable processing system for DSP applications [J].Circuits and Systems,1996,IEEE 39th Midwest symposium on,vol.2:864-867
[4] 張建新,段發(fā)階.用于三維尺寸檢測的雙目視覺傳感器[J].計量學(xué)報,1999,20(2):48-51
[5] 張雄偉,曹鐵勇,陳亮,楊吉斌.DSP芯片的原理與開發(fā)應(yīng)用[M].電子工業(yè)出版社,2010
[6] 范亞兵.大型高溫鍛件熱態(tài)在位測量中三相機(jī)結(jié)構(gòu)參數(shù)現(xiàn)場標(biāo)定方法研究與實現(xiàn)[J].計量技術(shù),2012(3):12-15
[7] 于英,黃桂平,等.雙目動態(tài)攝影測量技術(shù)研究與實現(xiàn)[J].計量學(xué)報,2010,31,(3):204-207
[8] 楊劍,賈沖,楊吉斌.基于DSP同步串口的異步串行通信接口的設(shè)計與實現(xiàn)[J].集成電路應(yīng)用,2006,(1):112-114
[9] Choi.Y.S.,Yim.Z.K.,Chung.J.H.Real-time implementation of image encoding for DVR systems using TMS320C6201[J].Circuits and Systems,2000.Proceedings of the 43rd IEEE Midwest Symposium on,vol.3:1104-1107
[10] 黃桂平,盧成靜,欽桂勤.?dāng)?shù)字近景攝影測量大尺寸三維坐標(biāo)測量系統(tǒng)V-STARS的測試與應(yīng)用[J].宇航計測技術(shù),2009,29(2):5-9