李 瓊 曾延安
(1. 武漢職業(yè)技術(shù)學(xué)院電子信息工程學(xué)院 湖北武漢 430074; 2. 華中科技大學(xué)光學(xué)與電子信息學(xué)院 湖北武漢 430074)
全景相機(jī)可以同時(shí)獲得其周圍所有方向的圖像信息,在全景顯示、機(jī)器視覺領(lǐng)域有著重要的應(yīng)用。但是傳統(tǒng)的全景相機(jī)需要復(fù)雜的光學(xué)系統(tǒng),成本高且難以小型化;或者在圖像采集完成后需要后期軟件進(jìn)行圖像拼接,極大影響了系統(tǒng)的實(shí)時(shí)性。
本文設(shè)計(jì)了一種基于FPGA的雙魚眼鏡頭全景圖像采集系統(tǒng),結(jié)構(gòu)簡(jiǎn)單、成本低廉,并利用FPGA的并行處理能力完成了圖像的實(shí)時(shí)拼接,極大方便了后續(xù)的圖像處理和使用。通過USB3.0接口,本系統(tǒng)也可以很方便地與其他設(shè)備相連,實(shí)現(xiàn)圖像的高效傳輸,從而方便與各種機(jī)器人設(shè)備相連,為機(jī)器人導(dǎo)航提供高速、高質(zhì)量的全景圖像輸入。
使用雙魚眼鏡頭拍攝全景圖像,需要兩個(gè)鏡頭背靠背放置,且每個(gè)鏡頭的可視角度大于180度,本文使用可視角為200°的魚眼鏡頭。設(shè)備結(jié)構(gòu)如圖1所示。
a) 主視圖b) 側(cè)視圖
圖1設(shè)備結(jié)構(gòu)圖
為了避免兩個(gè)CMOS圖像傳感器的信號(hào)相互干擾,也為了方便以后更換傳感器型號(hào),兩個(gè)CMOS圖像傳感器分別設(shè)計(jì)在兩個(gè)獨(dú)立的子板上,而主板上則放置FPGA、DDR、USB芯片等主要器件,子板與主板通過軟排線相連。
為了實(shí)現(xiàn)雙通道圖像的同步采集和圖像實(shí)時(shí)拼接,以現(xiàn)場(chǎng)可編程邏輯陣列(FPGA)為主控和處理器件,系統(tǒng)的總體設(shè)計(jì)框圖如圖2所示。
圖2 系統(tǒng)總體設(shè)計(jì)框圖
兩個(gè)CMOS圖像傳感器的輸入分辨率均為2 304×1 728,拼接處理后的輸出圖像分辨率目前支持1 920×960和2 560×1 280兩種。
由于FPGA擁有豐富的邏輯資源和并行處理能力,圖像傳感器的驅(qū)動(dòng)、同步以及之后的圖像處理均由FPGA完成[1-3]。FPGA通過SPI通信接口配置圖像傳感器的寄存器,以驅(qū)動(dòng)它獲取可見光數(shù)據(jù),該數(shù)據(jù)在同步控制中心的控制下,寫入一個(gè)異步FIFO中,當(dāng)異步FIFO中的數(shù)據(jù)量達(dá)到DDR的一個(gè)Burst長(zhǎng)度后,再將這些數(shù)據(jù)寫入DDR中[4]。為了滿足以后一些圖像處理算法的需要,圖像均采用10位數(shù)據(jù)輸入。FPGA中的圖像處理模塊會(huì)周期性地從DDR中讀取一幀數(shù)據(jù)進(jìn)行處理,由于圖像尺寸較大,F(xiàn)PGA無法將其全部讀入內(nèi)部RAM中,所以采用分塊讀取、分塊處理的機(jī)制。借助于FPGA的高速并行處理以及DDR的快速存取,設(shè)備輸出圖像的幀率能達(dá)到30 fps。為了使處理后的圖像能夠?qū)崟r(shí)傳輸,需要采用USB3.0接口作為數(shù)據(jù)傳輸接口,這通過一塊USB3.0協(xié)議芯片來打包完成。
圖中SYNC為圖像數(shù)據(jù)同步信號(hào),包括幀同步、行同步和像素時(shí)鐘,1*和2*均為FIFO。雖然圖像傳感器內(nèi)部有自動(dòng)曝光功能,但是考慮拼接圖像時(shí)最好有一致的曝光,所以在FPGA內(nèi)部使用了一個(gè)獨(dú)立模塊同時(shí)控制兩個(gè)圖像傳感器的曝光時(shí)間。由于魚眼鏡頭所成圖像為圓形,該模塊通過計(jì)算圖像中心和圓形邊緣的平均灰度值來估計(jì)曝光參數(shù),并通過SPI接口配置相關(guān)寄存器。FPGA中與USB3.0芯片連接的I2C接口用于接收上位機(jī)或者其他設(shè)備發(fā)過來的命令。
本系統(tǒng)的FPGA選用Xilinx公司Zynq 7020,該芯片有大量的邏輯資源用于實(shí)現(xiàn)對(duì)圖像的實(shí)時(shí)拼接。CMOS圖像傳感器使用Sony公司的IMX 206[5],該傳感器分像元尺寸為1.34 μm,成像質(zhì)量高且支持多種分辨率和幀率的輸出模式,為以后該設(shè)備支持拍攝高分辨率的照片或視頻做準(zhǔn)備。USB3.0協(xié)議芯片采用Cypress公司的CYUSB3014[6]。
CMOS圖像傳感器IMX 206的電源包括模擬電源和數(shù)字電源,其中模擬電源電壓為2.8 V,而數(shù)字部分,為了降低功耗,內(nèi)核工作電壓為1.2 V,數(shù)據(jù)輸出采用LVDS接口,電平為1.8 V[5]。所以需要提供兩個(gè)不同的穩(wěn)壓電源。為了給傳感器提供穩(wěn)定的驅(qū)動(dòng)時(shí)鐘,系統(tǒng)使用50 MHz的有源晶振作為時(shí)鐘源,然后通過FPGA中的鎖相環(huán)(PLL)產(chǎn)生傳感器所需時(shí)鐘,系統(tǒng)中其他模塊的時(shí)鐘也通過PLL產(chǎn)生。
為了實(shí)現(xiàn)雙通道圖像的同步采集,F(xiàn)PGA通過SPI接口將兩個(gè)圖像傳感器的工作模式都配置為觸發(fā)模式,分辨率設(shè)置為2 304×1 728,數(shù)據(jù)位寬為10位,輸出幀率設(shè)置為30 fps。
接收的像素?cái)?shù)據(jù)首先會(huì)進(jìn)入異步FIFO,此處異步FIFO的作用有兩個(gè)。第一是同步系統(tǒng)時(shí)鐘,第二是提高DDR的傳輸效率,由于DDR采用的是Burst傳輸方式,且Burst長(zhǎng)度為4個(gè)字節(jié)(32位),所以當(dāng)異步FIFO中數(shù)據(jù)量達(dá)到4個(gè)字節(jié)后,就會(huì)請(qǐng)求DDR將這部分?jǐn)?shù)據(jù)寫入其中。
每當(dāng)有一幀數(shù)據(jù)采集完畢后,同步控制中心就會(huì)通知圖像處理模塊對(duì)DDR中的圖像數(shù)據(jù)進(jìn)行處理。
圖像處理模塊主要完成雙路圖像的拼接工作。將兩個(gè)魚眼圖像拼接為全景圖像需要魚眼矯正和加權(quán)相加兩個(gè)步驟,如圖3所示。
圖3 圖像拼接流程圖
考慮所設(shè)計(jì)的全景圖像采集系統(tǒng)的實(shí)時(shí)性,采用目前較為成熟且投影方程簡(jiǎn)單、實(shí)時(shí)性好的等距柱狀模型,結(jié)合徑向畸變校正方程,建立全景圖像中像素坐標(biāo)與原始圖像像素坐標(biāo)的映射模型,實(shí)現(xiàn)魚眼矯正[7]。在圖1中所示的兩個(gè)魚眼鏡頭空間位置固定的情況下,采用棋盤格標(biāo)定方法對(duì)兩個(gè)鏡頭的內(nèi)外參數(shù)進(jìn)行標(biāo)定,根據(jù)標(biāo)定數(shù)據(jù)結(jié)合魚眼矯正的像素坐標(biāo)映射模型分別生成與圖像Bayer格式對(duì)應(yīng)的像素坐標(biāo)映射查找表;并根據(jù)兩個(gè)200°視場(chǎng)的重疊區(qū)域的像素映射坐標(biāo)的對(duì)應(yīng)關(guān)系生成重疊區(qū)域加權(quán)因子查找表。從而,魚眼矯正和加權(quán)相加均通過查找表完成,一個(gè)查找表對(duì)應(yīng)一個(gè)輸入圖像。查找表與圖片類似,有3個(gè)通道,前兩個(gè)通道的數(shù)據(jù)為魚眼矯正時(shí)的映射坐標(biāo),后一個(gè)通道的數(shù)據(jù)為像素相加時(shí)的權(quán)重。顯然,查找表的大小和系統(tǒng)輸出圖像的大小一致,但是,為了加快查找表的訪問速度,系統(tǒng)將查找表等比例縮小至60×30的分辨率,縮小后丟失的數(shù)據(jù)通過雙線性插值求出,因此,在設(shè)備啟動(dòng)時(shí)會(huì)將縮小后的查找表從片外Flash全部讀入DDR中,需要時(shí)FPGA再將其從DDR讀入內(nèi)部RAM中,從而在拼接時(shí)大大加快查找表的訪問速度。
由于每一幀的圖像較大,F(xiàn)PGA無法將整個(gè)圖像讀入并進(jìn)行處理,而魚眼矯正利用原始圖像的像 素坐標(biāo)將像素映射到全景圖像,這一過程可通過查找表將原始圖像的像素值進(jìn)行插值計(jì)算,并填充到全景圖像實(shí)現(xiàn),因此,可以根據(jù)所需填充的全景圖像圖塊與原始圖像圖塊的對(duì)應(yīng)關(guān)系,采用分塊讀取分塊處理的機(jī)制,充分利用FPGA在圖像處理中的并行處理能力,改善系統(tǒng)的實(shí)時(shí)性。圖像處理模塊每次從DDR的原始圖像存儲(chǔ)區(qū)中讀取大小為88×88的一塊數(shù)據(jù),處理完成后再寫回DDR的全景圖像存儲(chǔ)區(qū),然后讀取下一塊,以此類推。魚眼矯正模塊的設(shè)計(jì)框圖如圖4所示。
圖4 魚眼矯正模塊的設(shè)計(jì)框圖
魚眼矯正模塊根據(jù)原始圖像與全景圖像的圖像塊對(duì)應(yīng)關(guān)系,利用事先約定讀取順序通過內(nèi)部總線從DDR中讀入一個(gè)圖像塊以及對(duì)應(yīng)的查找表,查找表讀取一次即可,處理下一個(gè)圖像塊時(shí)不必再讀取。由于圖像數(shù)據(jù)是Bayer格式存儲(chǔ),不方便后面的插值操作,所以首先進(jìn)行數(shù)據(jù)分離,綠色通道(G)和紅藍(lán)色通道(B/R)分別存儲(chǔ)于兩個(gè)不同的緩存中,查找表(P)存儲(chǔ)在另外一個(gè)緩存中。坐標(biāo)生成器用于生成輸出圖像塊的坐標(biāo),根據(jù)該坐標(biāo)可以從查找表中讀取相應(yīng)坐標(biāo)鄰域的數(shù)據(jù),并插值出對(duì)應(yīng)的輸入圖像的坐標(biāo)和權(quán)重,輸入圖像的坐標(biāo)經(jīng)過坐標(biāo)映射,變?yōu)檩斎雸D像塊中的相對(duì)坐標(biāo)。通過相對(duì)坐標(biāo),G Interp模塊和B/R Interp模塊就能夠從各自的緩存中讀取對(duì)應(yīng)的臨近像素值并插值生成輸出圖像的像素值,最后得到的像素值會(huì)重新轉(zhuǎn)換為Bayer格式,并與P Interp模塊輸出的權(quán)重相乘后寫回DDR中的全景圖像存儲(chǔ)區(qū)。
使用相同的魚眼矯正模塊對(duì)兩路圖像進(jìn)行處理,由于權(quán)重在該模塊中已經(jīng)與像素值相乘,所以之后只需將兩路矯正好的圖像直接相加即可得到完整的全景圖像。
本文系統(tǒng)使用的CYUSB3014協(xié)議芯片,其內(nèi)核為ARM926EJ-S[6]。要讓其正常工作,需要提供穩(wěn)定的5 V、3.3 V、2.5 V、1.8 V和1.2 V的電壓。工作時(shí)鐘也通過FPGA內(nèi)部的PPL提供,不過內(nèi)核還需要一個(gè)獨(dú)立的32 KHz的看門狗時(shí)鐘,這由一個(gè)外部晶振提供。GPIF是通用可編程接口,可以像FPGA的通用IO一樣提供不同的電平,因此其供電電平保持與互聯(lián)的FPGA上對(duì)應(yīng)BANK驅(qū)動(dòng)電平一樣即可。通信接口與FPGA的通用IO口相連,使用的協(xié)議為I2C。最后,使用靜電放電(ESD)保護(hù)芯片RCLAMP0524J為設(shè)備提供最大15 kV的ESD保護(hù)。
由于全景圖像是按照8位Bayer格式輸出的,因此在分辨率為1 920×960,幀率為30 fps的情況下,其輸出帶寬約為420 Mbps;在分辨率為2 560×1 280,幀率不變情況下,輸出帶寬約為750 Mbps。而根據(jù)本文的設(shè)計(jì),USB3.0的實(shí)際帶寬可以到1 600 Mbps,完全滿足這兩種分辨率的輸出。
根據(jù)本文的設(shè)計(jì)方案,系統(tǒng)的實(shí)物圖如圖5所示,采用兩個(gè)魚眼鏡頭背靠背放置,每個(gè)鏡頭的可視角為200度。通過USB3.0與上位機(jī)相連,得到的全景圖像如圖6所示。
圖5 系統(tǒng)實(shí)物圖
圖6 本文系統(tǒng)輸出的全景圖像
測(cè)試中也記錄了不同分辨率下,圖像拼接過程所花費(fèi)的時(shí)間以及功耗,如表1所示。由于主要控制和數(shù)據(jù)處理都在FPGA上,因此單獨(dú)列出了FPGA的功耗,而設(shè)備總功耗,除了FPGA功耗外,還包括DDR、電源芯片、USB芯片等其他器件。結(jié)果顯示,拼接融合所耗費(fèi)的時(shí)間在可接受范圍內(nèi),對(duì)于分辨率為1 920×960和2 560×1280的視頻均能達(dá)到30 fps的處理速度,同時(shí)整個(gè)設(shè)備也維持著一個(gè)較低的功耗。
表1 圖像處理時(shí)間與設(shè)備功耗
本文使用FPGA實(shí)現(xiàn)了一套雙魚眼鏡頭全景圖像采集系統(tǒng),該系統(tǒng)對(duì)兩路圖像進(jìn)行同步采集,并在FPGA內(nèi)部完成圖像的實(shí)時(shí)拼接和處理,然后通過USB3.0完成圖像的高速傳輸,大大方便了后續(xù)的圖像處理和使用。測(cè)試表明,整個(gè)設(shè)備體積小、功耗低、使用簡(jiǎn)單,非常方便用于機(jī)器人導(dǎo)航,未來可以在該平臺(tái)上加入更多的圖像處理功能。
常州信息職業(yè)技術(shù)學(xué)院學(xué)報(bào)2018年5期