黃 濤,沈淑梅,董博宇
(1.中航航空電子有限公司,北京 100081;2.洛陽(yáng)電光設(shè)備研究所,洛陽(yáng) 471000)
廣角高清成像系統(tǒng)是一種可以兼顧大視場(chǎng)、高分辨率、遠(yuǎn)距成像的監(jiān)控、偵察設(shè)備,可廣泛應(yīng)用于廣場(chǎng)和港口等敏感區(qū)域監(jiān)控、海洋搜救、機(jī)載對(duì)地偵察等領(lǐng)域。為了能夠同時(shí)在大范圍內(nèi)實(shí)現(xiàn)對(duì)微小目標(biāo)的清晰成像,成像系統(tǒng)的像素?cái)?shù)高達(dá)億像素級(jí),例如ARGUS-IS 系統(tǒng)[1]18.4億像素、AWARE-2系統(tǒng)[2-6]12億像素、同心球二次成像系統(tǒng)1.6億像素[7]、無(wú)中繼廣角高清成像系統(tǒng)[8]1.5億像素。
受限于現(xiàn)有圖像傳感器的制造工藝,單一圖像傳感器難以滿足廣角高清成像系統(tǒng)的億級(jí)像素需求。因此,無(wú)論前段光學(xué)系統(tǒng)是采用多鏡頭拼視場(chǎng)、同心球二次成像還是多光學(xué)系統(tǒng)拼像面,最終的光學(xué)圖像采集均采用多傳感器拼接方式實(shí)現(xiàn)。例如 ARGUS-IS[1]采 用 了 398 個(gè) MT9P031 CMOS 圖 像 傳 感 器,ARAWE-2[2-6]用了220個(gè)MT9F002 CMOS 圖像傳感器,國(guó)防科大的同心球二次成像系統(tǒng)用了61個(gè)MT9P031 CMOS 圖像傳感器。
由于采用了傳感器圖像拼接,實(shí)時(shí)處理平臺(tái)需要完成多傳感器圖像的同步采集、預(yù)處理(亮度校正和去噪增強(qiáng))、多傳感器圖像拼接(配準(zhǔn)、融合)、圖像壓縮、數(shù)據(jù)傳輸、數(shù)據(jù)存儲(chǔ)及顯示等功能。以10億像素、30fps、8bit 灰階的廣角高清成像系統(tǒng)為例,需要采集、處理、傳輸、顯示、存儲(chǔ)的圖像數(shù)據(jù)高達(dá)30GByte/S。再考慮到工程應(yīng)用對(duì)體積、重量、功耗的限制,滿足億像素級(jí)廣角高清成像系統(tǒng)處理需求的嵌入式處理硬件平臺(tái)的設(shè)計(jì)難度極大。
基于上述問(wèn)題,本文針對(duì)廣角高清成像系統(tǒng)的工作特點(diǎn)和實(shí)時(shí)處理平臺(tái)架構(gòu)進(jìn)行了深入研究。
圖1 實(shí)時(shí)處理架構(gòu)
為了解決廣角高清成像處理系統(tǒng)數(shù)據(jù)量遠(yuǎn)超現(xiàn)有嵌入式系統(tǒng)處理能力的問(wèn)題,結(jié)合廣角高清系統(tǒng)的應(yīng)用特點(diǎn),本文提出了一種基于顯示請(qǐng)求的廣角高清實(shí)時(shí)處理方法。實(shí)時(shí)處理架構(gòu)如圖1所示,系統(tǒng)主要分為本地處理模塊(Local Processing Unit,LPU)、交換網(wǎng)絡(luò)模塊(Switch)和主處理模塊(Main Arithmetic Processor,MAP)三部分。LPU完成CMOS圖像傳感器的參數(shù)配置、在外觸發(fā)信號(hào)控制下實(shí)現(xiàn)多傳感器圖像同步采集、圖像亮度校正和去噪增強(qiáng)等預(yù)處理、圖像的壓縮及本地存儲(chǔ)。Switch 模塊完成LPU 和MAP 及外部設(shè)備之間的數(shù)據(jù)交互。MAP 通過(guò)Switch 模塊從各LPU 獲取需要拼接和顯示的圖像數(shù)據(jù)并進(jìn)行處理后通過(guò)視頻接口送出顯示。外部設(shè)備也通過(guò)Switch 模塊從各個(gè)LPU 模塊獲取圖像數(shù)據(jù)進(jìn)行后續(xù)處理。
圖2 廣角高清成像系統(tǒng)顯示應(yīng)用示意
現(xiàn)有單顯示器的分辨率最高為4K(4096×2160),遠(yuǎn)低于廣角高清成像系統(tǒng)的圖像分辨率。實(shí)際應(yīng)用中往往采用多顯示器拼成顯示墻,或者采用將整個(gè)幅面縮小到單顯示器上觀看概貌,對(duì)感興趣區(qū)域采用局部開(kāi)窗觀看細(xì)節(jié)的方式進(jìn)行。由此,廣角高清系統(tǒng)實(shí)際顯示應(yīng)用如圖2所示。顯示應(yīng)用Ⅰ用于觀看全視場(chǎng),一般采用下采樣圖像。顯示應(yīng)用Ⅱ,Ⅲ,Ⅳ,Ⅴ分別用于觀看整個(gè)視場(chǎng)中不同位置的圖像,這些圖像涉及單個(gè)、相鄰兩個(gè)或者相鄰四個(gè)圖像傳感器的局部區(qū)域。由此可知,每路顯示的數(shù)據(jù)量實(shí)際受限于顯示分辨率,以1080P 的顯示為例,考慮到重疊區(qū)的影響,每路顯示所需的圖像數(shù)據(jù)僅比1920×1080(8bit灰度圖)字節(jié)略多。
本文中的實(shí)時(shí)處理架構(gòu)采用交換網(wǎng)絡(luò)模塊將所有的LPU 和MAP 連接起來(lái)。當(dāng)MAP 需要進(jìn)行全視場(chǎng)顯示時(shí),向?qū)?yīng)的LPU發(fā)送指令,要求LPU 將圖像數(shù)據(jù)下采樣后發(fā)送給MAP 進(jìn)行配準(zhǔn)融合處理;當(dāng)MAP 需要高清顯示局部區(qū)域時(shí),可根據(jù)顯示位置要求所涉及的LPU 將相應(yīng)的局部圖像傳輸過(guò)來(lái)進(jìn)行配準(zhǔn)融合處理并最終顯示。無(wú)論如何顯示,所需傳輸和處理的數(shù)據(jù)量?jī)H與顯示分辨率相關(guān)。
因此,在本架構(gòu)中,MAP 負(fù)責(zé)待處理圖像數(shù)據(jù)的請(qǐng)求發(fā)起、圖像的配準(zhǔn)、融合和顯示,而LPU 完成圖像的采集、預(yù)處理、原始數(shù)據(jù)的壓縮后存儲(chǔ)、根據(jù)MAP 要求發(fā)送相應(yīng)的局部圖像數(shù)據(jù)等。當(dāng)廣角高清系統(tǒng)采用的圖像傳感器數(shù)量過(guò)多時(shí),為了進(jìn)一步降低數(shù)據(jù)傳輸壓力,可在LPU 上完成待傳輸圖像的壓縮后再傳輸?shù)街魈幚砟K。
圖像的后處理模塊,例如目標(biāo)識(shí)別跟蹤等處理單元,也可類(lèi)似圖1中的MAP 一樣,通過(guò)Switch 模塊向各個(gè)LPU 請(qǐng)求所需的數(shù)據(jù)。
如上節(jié)所述,多傳感器的圖像拼接在MAP 中完成,根據(jù)顯示需求,MAP 僅要求傳輸全部傳感器圖像的下采樣數(shù)據(jù)或者部分傳感器的原始或下采樣數(shù)據(jù)。以全局顯示3×3的多傳感器圖像為例,為保證圖像配準(zhǔn),圖像間單方向至少5%的重疊區(qū)。廣角高清成像系統(tǒng)采用多個(gè)傳感器分別對(duì)不同視場(chǎng)的區(qū)域成像,如每個(gè)圖像傳感器對(duì)應(yīng)光學(xué)系統(tǒng)的光軸均不相同,例如AWARE-2系統(tǒng)和本文中無(wú)中繼同心球面成像系統(tǒng)[8],每個(gè)傳感器的拍攝視角都不同,而一般顯示系統(tǒng)都是平面的,且觀察者視角方向默認(rèn)以屏幕法線為準(zhǔn),則圖像拼接的過(guò)程實(shí)際上是將各個(gè)視角的圖像投影變換到同一視角再配準(zhǔn)后對(duì)重疊區(qū)進(jìn)行融合處理的過(guò)程。如果每個(gè)圖像傳感器對(duì)應(yīng)光學(xué)系統(tǒng)的光軸均平行,例如ARGUS-IS系統(tǒng),則僅需將圖像配準(zhǔn)后對(duì)重疊區(qū)融合處理即可。
圖像拼接過(guò)程如圖3所示。假定以中心子圖像5為基準(zhǔn),子圖像2,4,6,8分別通過(guò)與子圖像5的重疊區(qū)計(jì)算出各自的投影變換矩陣。同理可以獲得子圖像7和子圖像9相對(duì)于子圖像8的投影變換矩陣,子圖像1和子圖像3相對(duì)于子圖像2的投影變換矩陣。由于投影變換矩陣可以進(jìn)行傳遞,即可獲得子圖像1,2,3,4,6,7,8,9相對(duì)于子圖像5的投影變換矩陣。為避免拼縫兩側(cè)圖像亮度差異太大,需對(duì)子圖像重疊區(qū)進(jìn)行融合處理。最后考慮到圖像數(shù)據(jù)目前基本都以一維或二維矩陣的方式進(jìn)行管理,非矩形圖像區(qū)域采用填充黑區(qū)的方式補(bǔ)充成矩形。
圖3 多傳感器圖像配準(zhǔn)融合過(guò)程
為滿足無(wú)中繼同心球面廣角高清成像系統(tǒng)的實(shí)時(shí)處理要求,基于上述實(shí)時(shí)處理方法,本文研制了基于FPGA+嵌入式GPU 的實(shí)時(shí)處理硬件系統(tǒng),如圖4所示。本系統(tǒng)主要分為圖像采集預(yù)處理單元(Image Acquisition and Pre-procession,IMAP)、圖像壓縮存儲(chǔ)單元(Image Compress and Storage Unit,ICS)、萬(wàn)兆交換機(jī)(10 Gigabit Network Switch,10GigE Switch)和 MAP 等四部分構(gòu)成。IMAP 完成圖像傳感器的參數(shù)配置、同步積分控制、數(shù)據(jù)采集、圖像預(yù)處理(亮度校正和去噪增強(qiáng)),然后通過(guò)光纖傳輸至ICS。ICS 完成圖像原始數(shù)據(jù)的壓縮和存儲(chǔ),并根據(jù)后續(xù)MAP的需求壓縮、存儲(chǔ)和傳輸部分圖像數(shù)據(jù)。MAP 根據(jù)顯示和處理需求經(jīng)10GigE Switch 向ICS 請(qǐng)求所需的數(shù)據(jù),并進(jìn)行后續(xù)的配準(zhǔn)、融合后送出顯示。
圖4 基于FPGA+嵌入式GPU的實(shí)時(shí)處理硬件系統(tǒng)
根據(jù)圖像采集預(yù)處理單元的任務(wù)特點(diǎn),本文中設(shè)計(jì)了基于FPGA 的IMAP 硬件,設(shè)計(jì)架構(gòu)如圖5所示。FPGA 采用通過(guò)SPI接口配置CMOS 圖像傳感器,根據(jù)外觸發(fā)信號(hào)同步控制CMOS圖像傳感器的積分,然后采用LVDS 接口接收數(shù)字圖像數(shù)據(jù)。FPGA 以并行流水線的方式對(duì)圖像數(shù)據(jù)進(jìn)行兩點(diǎn)法亮度校正、高斯模板去噪濾波等處理后寫(xiě)入外掛DDR3進(jìn)行緩存。然后按照GTX(Gigabyte Transceiver)的時(shí)序要求從DDR3 取出數(shù)據(jù)經(jīng)2塊SFP+(Small Form-factor Pluggable)模塊轉(zhuǎn)換成兩路光纖信號(hào)輸出,單路光纖輸出速率為10.3125Gbps。FPGA 外掛的Flash Rom 用于CMOS 相機(jī)配置參數(shù)和亮度校正參數(shù)的存儲(chǔ)。實(shí)物如圖6所示。
圖5 圖像采集和預(yù)處理模塊設(shè)計(jì)框圖
圖6 IMAP板卡實(shí)物
根據(jù)圖像壓縮存儲(chǔ)單元ICS 和主處理機(jī)MAP 的任務(wù)特點(diǎn),同時(shí)考慮到兩個(gè)單元的相似性,本文中設(shè)計(jì)了一套基于英偉達(dá)嵌入式GPU TX2的硬件可同時(shí)滿足這兩個(gè)單元的使用要求,硬件架構(gòu)如圖7 所示。FPGA 用于實(shí)現(xiàn)光纖和PCIE-X4 的相互轉(zhuǎn)換,為匹配兩種接口的通信速率,F(xiàn)PGA 外掛DDR3作為數(shù)據(jù)緩存。該硬件板卡外部有光纖轉(zhuǎn)PCIE-X4、DDR3、SATA、DVI、GigE、UART、USB 等豐富的接口。針對(duì)不同應(yīng)用,選擇不同的接口和軟件組合即可。硬件實(shí)物如圖8所示。
當(dāng)應(yīng)用于ICS 單元時(shí),F(xiàn)PGA 實(shí)現(xiàn)2路光纖信號(hào)和PCIE-X4的轉(zhuǎn)換,IMAP 預(yù)處理后的圖像數(shù)據(jù)經(jīng)PCIE-X4接口送入TX2中,在TX2中利用片內(nèi)硬核完成圖像JPEG 壓縮并經(jīng)STAT 接口存儲(chǔ)在SSD 中(Solid State Disk)。當(dāng)從GigE 接收到來(lái)自MAP 的數(shù)據(jù)請(qǐng)求時(shí),TX2將對(duì)應(yīng)的數(shù)據(jù)壓縮后經(jīng)GigE 送出。
當(dāng)應(yīng)用于 MAP 時(shí),TX2 從RS232 或者 USB3.0 接收顯示控制命令,根據(jù)顯示需求向?qū)?yīng)的ICS 請(qǐng)求數(shù)據(jù),并完成配準(zhǔn)、融合后經(jīng)DVI 接口輸出顯示。
圖7 基于嵌入式GPU的數(shù)據(jù)處理模塊設(shè)計(jì)框圖
圖8 基于嵌入式GPU的數(shù)據(jù)處理硬件實(shí)物
基于上述實(shí)時(shí)處理硬件平臺(tái)和已有的無(wú)中繼同心球面光機(jī)[8],搭建了廣角高清實(shí)時(shí)成像系統(tǒng),如圖9所示。系統(tǒng)參數(shù)如表1所示。
圖9 廣角高清實(shí)時(shí)成像系統(tǒng)
表1 系統(tǒng)參數(shù)
該系統(tǒng)支持兩臺(tái)顯示器同時(shí)工作,一臺(tái)顯示1080P 的全視場(chǎng)圖像,另一臺(tái)顯示局部感興趣區(qū)域圖像。通過(guò)鼠標(biāo)在全局圖像上選擇任意感興趣區(qū)域,則顯示局部圖像的顯示器能夠根據(jù)選擇實(shí)時(shí)更新顯示內(nèi)容。實(shí)際效果如圖10所示。
圖10 基于顯示請(qǐng)求的廣角高清實(shí)時(shí)處理系統(tǒng)顯示效果
通過(guò)對(duì)廣角高清系統(tǒng)的技術(shù)特點(diǎn)和應(yīng)用過(guò)程的研究,本文提出了一種基于顯示請(qǐng)求的廣角高清實(shí)時(shí)處理方法,并搭建了基于FPGA+GPU 的實(shí)時(shí)處理硬件系統(tǒng)。采用分布式架構(gòu)的本地處理模塊完成圖像的采集、預(yù)處理、壓縮和存儲(chǔ),后續(xù)顯示或處理系統(tǒng)根據(jù)自身需求向?qū)?yīng)的多個(gè)本地處理模塊請(qǐng)求數(shù)據(jù),并完成后續(xù)處理和顯示,從而有效降低了實(shí)時(shí)處理所需的數(shù)據(jù)量和運(yùn)算量。實(shí)驗(yàn)證明,本方法具有良好的適應(yīng)性和可擴(kuò)展性,能夠有效滿足億像素級(jí)廣角高清成像系統(tǒng)的實(shí)時(shí)處理需求。