馬紅艷,張福欣,翟春艷,岳修正
(中國(guó)電子科技集團(tuán)公司 第二十七研究所,河南 鄭州 450047)
在機(jī)載電視紅外攝像與瞄準(zhǔn)過(guò)程中,由于電視紅外攝像框架的橫滾運(yùn)動(dòng)而引起光學(xué)系統(tǒng)和成像器件相對(duì)載機(jī)運(yùn)動(dòng),從而造成圖像的旋轉(zhuǎn);在許多光學(xué)瞄準(zhǔn)器、紅外吊艙系統(tǒng)以及測(cè)量定標(biāo)系統(tǒng)中,為了消除由于探測(cè)器的姿態(tài)變化而引起的圖像旋轉(zhuǎn),時(shí)常要對(duì)光學(xué)探測(cè)器所獲取的目標(biāo)圖像進(jìn)行實(shí)時(shí)反旋轉(zhuǎn)變換,恢復(fù)圖像的穩(wěn)定狀態(tài),以便準(zhǔn)確地對(duì)目標(biāo)圖像進(jìn)行自動(dòng)識(shí)別和跟蹤[1]??紤]到實(shí)時(shí)性,目前文獻(xiàn)[1-3]基本上都是以FPGA為核心設(shè)計(jì)的,這里提出一種基于TMS320C6713B的實(shí)時(shí)數(shù)字視頻消旋系統(tǒng),將仿射變換計(jì)算方法進(jìn)行優(yōu)化應(yīng)用到系統(tǒng)中,有效地消除了視頻圖像的旋轉(zhuǎn)運(yùn)動(dòng),達(dá)到了穩(wěn)定圖像的目的。
對(duì)圖像進(jìn)行消旋,實(shí)際上是根據(jù)已知圖像的旋轉(zhuǎn)角度,將該圖像按照同樣的角度進(jìn)行反旋轉(zhuǎn),從而達(dá)到消除圖像旋轉(zhuǎn)影響的目的。因此,圖像消旋算法的本質(zhì)是圖像的旋轉(zhuǎn)計(jì)算,即由原圖像旋轉(zhuǎn)一個(gè)角度得到目標(biāo)圖像。
結(jié)合實(shí)際應(yīng)用,假設(shè)載體的運(yùn)動(dòng)導(dǎo)致連續(xù)兩幀圖像間存在的全局運(yùn)動(dòng)表現(xiàn)為平移和繞光軸的旋轉(zhuǎn),也即連續(xù)兩幀圖像間可以用線性變換來(lái)表征。因此,采用仿射變換[4]來(lái)建立圖像運(yùn)動(dòng)模型。
若(X1,Y1),(X2,Y2)分別是參考幀與當(dāng)前幀圖像中相互對(duì)應(yīng)的配準(zhǔn)點(diǎn),則它們之間的運(yùn)動(dòng)表達(dá)式
式中,θ是配準(zhǔn)點(diǎn)之間的旋轉(zhuǎn)角△X,△Y分別為配準(zhǔn)點(diǎn)在橫向和縱向上的偏移。
對(duì)式(1)進(jìn)行優(yōu)化,假設(shè)輸出圖像中水平相鄰2個(gè)像素點(diǎn)(x,y)和(x+1,y),則經(jīng)仿射變換后在輸入圖像中有對(duì)應(yīng)的 2 點(diǎn)(u1,v1)和(u2,v2)。不難推導(dǎo),有如下關(guān)系式成立:
同理假設(shè)輸出圖像中垂直相鄰2個(gè)像素點(diǎn)(x,y)和(x,y+1),則經(jīng)仿射變換之后在輸入圖像中有對(duì)應(yīng)的 2點(diǎn)(u1,v1)和(u3,v3),有如下關(guān) 系式成立:
從式(2)和式(3)中可以看出,輸出圖像中經(jīng)變換后的兩點(diǎn)坐標(biāo)差與輸入源圖像中相鄰兩點(diǎn)位置無(wú)關(guān)。也就是說(shuō),只要計(jì)算一次仿射變換就可以采用增量法來(lái)求出仿射變換后的所有點(diǎn)的精確位置。因此,圖像的第一個(gè)點(diǎn)要用到完整的仿射變換公式
進(jìn)行計(jì)算,后面的點(diǎn)只計(jì)算兩個(gè)浮點(diǎn)加法就可以獲得一個(gè)仿射變換點(diǎn)的精確位置。獲得精確的位置后,利用最鄰近像素法計(jì)算圖像灰度,只需要對(duì)計(jì)算后的坐標(biāo)位置四舍五入得到整數(shù)坐標(biāo)值,利用該坐標(biāo)來(lái)獲取相應(yīng)點(diǎn)的灰度值即可。
實(shí)時(shí)數(shù)字視頻消旋系統(tǒng)主要有4部分組成:視頻A/D、DSP、FPGA和幀存儲(chǔ)器。圖1是系統(tǒng)硬件組成框圖。其原理是外界圖像經(jīng)A/D采樣為數(shù)字圖像進(jìn)入FPGA,F(xiàn)PGA將圖像寫(xiě)入幀存儲(chǔ)器中,DSP根據(jù)上位機(jī)通過(guò)RS-232串口送來(lái)的角速度值,計(jì)算新圖像各點(diǎn)在當(dāng)前幀圖像中的位置,將計(jì)算后的位置送給FPGA,通過(guò)FPGA做地址映射,再將圖像按映射后的地址輸出送D/A顯示或送跟蹤處理模塊進(jìn)行目標(biāo)跟蹤識(shí)別等處理。
圖1 系統(tǒng)硬件電路組成框圖Fig.1 Configuration of system hardware circuit
在本方案中DSP是數(shù)據(jù)處理的核心,主要是通過(guò)串口讀取上位機(jī)送來(lái)的圖像旋轉(zhuǎn)的角速度信息,根據(jù)該信息進(jìn)行仿射變換,求出旋轉(zhuǎn)后的圖像各點(diǎn)在原圖像中的坐標(biāo),并將求出的坐標(biāo)寫(xiě)入FPGA。在計(jì)算圖像精確位置時(shí)需要進(jìn)行大量的浮點(diǎn)運(yùn)算,需要具有高速高精度浮點(diǎn)運(yùn)算能力的DSP。方案采用了美國(guó)TI公司的高性能浮點(diǎn)數(shù)字信號(hào)處理器TMS320C6713B。它采用先進(jìn)的超長(zhǎng)指令字結(jié)構(gòu),為單精度(32位)和64位(雙字)的IEEE浮點(diǎn)操作提供硬件支持,且32位整型乘法可以獲得32位或64位結(jié)果。其內(nèi)部有8個(gè)獨(dú)立的功能單元,2個(gè)定點(diǎn)算術(shù)邏輯單元(ALU),2個(gè)浮點(diǎn)乘法器,4個(gè)浮點(diǎn)ALU,每個(gè)周期可以執(zhí)行8個(gè)32位指令。內(nèi)部設(shè)計(jì)有32個(gè)32位通用目的寄存器,4 K字節(jié)的L1高速程序緩存器和4K字節(jié)的L1高速數(shù)據(jù)緩存器,256 K字節(jié)的L2兩級(jí)數(shù)據(jù)緩存器[5]。這種結(jié)構(gòu)設(shè)計(jì)可以最大限度發(fā)揮8個(gè)功能單元的并行運(yùn)算能力,使得DSP在300 MHz系統(tǒng)時(shí)鐘工作時(shí),其運(yùn)算能力最高為2 400 MIPS,浮點(diǎn)運(yùn)算能力最高為1 800 MFLOPS,極大地滿足了高速數(shù)據(jù)處理的要求。
另外,DSP6713B片內(nèi)還提供多種集成外設(shè):多種復(fù)位加載模式(BOOT)、多通道DMA控制器、多通道緩存串口(McBSP)以及能夠與SDRAM、SBSRAM或異步存儲(chǔ)器直接接口的高性能外部存儲(chǔ)器接口(EMIF),這些都為數(shù)據(jù)處理帶來(lái)了極大方便。
方案采用了Actel公司推出的第二代基于Flash(閃存)的可編程器件ProASIC Plus系列中的APA150。該系列器件兼具ASIC(專用集成電路)的性能和FPGA的靈活性于一身,具有150 000個(gè)系統(tǒng)門(mén),邏輯單元為6 144個(gè),內(nèi)嵌36 KB的雙端口SRAM和 2個(gè)鎖相環(huán)(PLL)內(nèi)核,支持3.3 V、32 bit、50 MHz的 PCI總線,系統(tǒng)外部性能可達(dá) 150 MHz,具有高密度、低功耗、非易失及可重復(fù)編程等特點(diǎn)。因?yàn)镻roASIC Plus系列FPGA基于Flash技術(shù),利用Flash開(kāi)關(guān)保存內(nèi)部邏輯,因此不需要另外的器件。由于不需要上電配置過(guò)程,因此具備上電就立即工作的特點(diǎn)。另外高度保密,使用者可編程設(shè)置多位密鑰以阻止外界自行讀取或更改器件的配置[6]。
方案中利用APA150主要實(shí)現(xiàn)邏輯控制、A/D采樣控制、D/A顯示控制、向幀存儲(chǔ)器寫(xiě)圖像以及完成旋轉(zhuǎn)后的圖像與原始圖像的地址映射等功能。
系統(tǒng)軟件主要完成視頻圖像旋轉(zhuǎn)坐標(biāo)的計(jì)算,利用TMS320C6713B的浮點(diǎn)運(yùn)算功能,基于CCS3.1平臺(tái)編制匯編程序來(lái)實(shí)現(xiàn),圖2為基本流程圖,主要有以下步驟:
1)每場(chǎng)查詢到場(chǎng)逆程時(shí),通過(guò)串口讀取上位機(jī)送來(lái)的角速度信息,并將該角速度轉(zhuǎn)化為每20 ms角度的變化量。根據(jù)該角度利用完整的仿射變換求旋轉(zhuǎn)后圖像的首點(diǎn)坐標(biāo),并根據(jù)完整的仿射變換公式推導(dǎo)計(jì)算出水平方向和垂直方向的增量。
2)當(dāng)查詢到場(chǎng)正程時(shí),對(duì)于每行各點(diǎn)可根據(jù)前一點(diǎn)在原圖像中的位置加上水平方向的增量,就可以得到當(dāng)前點(diǎn)的精確位置。對(duì)于每行的第一個(gè)點(diǎn),可根據(jù)上一行的首點(diǎn)在原圖像中的位置加上垂直方向的增量,即可得到該點(diǎn)在原圖像中的位置。
圖2 軟件流程圖Fig.2 Flow chart of software
3)最后將得到的圖像位置四舍五入求出當(dāng)前點(diǎn)在原圖像中的坐標(biāo),最后將該坐標(biāo)送入FPGA。
實(shí)驗(yàn)中取處理的圖像為256×256×8 bit,固定攝像機(jī)不動(dòng),任意輸入角速度為0°~360°/20 ms,角速度可以精確到0.1°/20 ms,系統(tǒng)會(huì)圍繞圖像中心以相應(yīng)的角速度旋轉(zhuǎn)圖像。圖3為原始未旋轉(zhuǎn)的圖像,圖4是以2.4°/20 ms速度旋轉(zhuǎn)到30°時(shí)的圖像,由圖3和圖4可見(jiàn)旋轉(zhuǎn)后的圖像穩(wěn)定清晰。
圖3 原始視頻圖像Fig.3 Original video image
圖4 旋轉(zhuǎn)后的圖像Fig.4 Revolved video image
本文提出一種基于TMS320C6713B的視頻消旋系統(tǒng),該系統(tǒng)易于硬件實(shí)現(xiàn),實(shí)時(shí)性高,消旋轉(zhuǎn)后的圖像清晰穩(wěn)定,滿足工程應(yīng)用要求。另外該系統(tǒng)可擴(kuò)展性強(qiáng),只須對(duì)硬件進(jìn)行少許改動(dòng),即可用于更高分辨率比如768×576的圖像消旋系統(tǒng)。
[1]曾祥萍,楊濤.實(shí)時(shí)圖像的電子消旋系統(tǒng)[J].光電工程,2005,32(10):27-30.ZENG Xiang-ping,YANG Tao.Electronic system for real-time canceling image rotations[J].Opto-Electronic Engineering,2005,32(10):27-30.
[2]李洪偉,黃自力,袁斯華,等.基于FPGA/DSP的數(shù)字視頻消像旋系統(tǒng)設(shè)計(jì)[J].紅外與激光工程,2006,35(2):222-233.LI Hong-wei,HUANG Zi-li,YUAN Si-hua,et al.Design for image rotation-elimination of digital video based on FPGA/DSP[J].Infrared and Laser Engineering,2006,35(2):222-233.
[3]葉凌云,李玉山,王崇劍.船載實(shí)時(shí)圖像消旋系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)應(yīng)用,2007(10):87-89.YE Ling-yun,LI Yu-shan,WANG Chong-jian.Design of real-time image rotation-elimination system for ships[J].Electronic Design&Application,2007(10):87-89.
[4]楊曉峰,張桂林.一種基于仿射變換模型的目標(biāo)跟蹤算法[J].計(jì)算機(jī)與數(shù)字工程,2005,33(12):30-34.YANG Xiao-feng,ZHANG Gui-lin.A target tracking algorithm based on affine transform model[J].Computer and Digital Engineerning,2005,33(12):30-34.
[5]江思敏,劉暢.TMS320C6000 DSP應(yīng)用開(kāi)發(fā)教程[M].北京:機(jī)械工業(yè)出版社,2005.
[6]ACTEL.ProASICPLUS family Flash FPGA[EB/OL].[2009-06].http://www.actel.com/documents/ProASICPLUS-DS.pdf.