王雪松
基于近紅外CMOS的激光光斑質(zhì)心檢測(cè)系統(tǒng)設(shè)計(jì)
王雪松
(北京高普樂光電科技股份公司,北京 100193)
為實(shí)現(xiàn)在復(fù)雜背景光照條件下具有較高的光斑探測(cè)靈敏度,高精度的坐標(biāo)計(jì)算,及大于1000fps的結(jié)果輸出速度,介紹了一種基于近紅外CMOS圖像傳感器,實(shí)時(shí)計(jì)算光斑質(zhì)心坐標(biāo)并輸出的系統(tǒng)。設(shè)計(jì)使用安森美半導(dǎo)體公司的Python1300系列近紅外圖像傳感器NOIP1FN1300A對(duì)激光光斑成像。利用Cyclone4系列低功耗FPGA對(duì)傳感器進(jìn)行驅(qū)動(dòng)和解串,應(yīng)用可靠的質(zhì)心算法實(shí)時(shí)計(jì)算光斑坐標(biāo)。結(jié)果輸出部分分別采用USB2.0和RS422接口實(shí)時(shí)輸出目標(biāo)圖像和質(zhì)心坐標(biāo)。該設(shè)計(jì)最終具有1500fps的實(shí)時(shí)處理能力,軟件代碼簡(jiǎn)潔,質(zhì)心坐標(biāo)計(jì)算精確,系統(tǒng)功耗低等優(yōu)點(diǎn)。
圖像傳感器;FPGA;近紅外;質(zhì)心坐標(biāo)
激光光斑質(zhì)心定位在軍事和民用領(lǐng)域都有著非常廣泛的應(yīng)用。如激光測(cè)照、光通信、導(dǎo)引頭、商用電子白板等,應(yīng)用中所使用的激光器,波長(zhǎng)普遍都在紅外波段。探測(cè)激光的傳感器性能和光斑檢測(cè)算法的精度、速度直接影響光學(xué)測(cè)量的精度及速度。目前的檢測(cè)處理系統(tǒng)多是基于PC機(jī)的,存在著延遲及不穩(wěn)定等問(wèn)題。在總結(jié)各種檢測(cè)算法的基礎(chǔ)上,基于重心法使用現(xiàn)場(chǎng)可編程門陣列(FPGA)實(shí)現(xiàn)了低信噪比紅外光斑中心的實(shí)時(shí)檢測(cè)[1]。本文針對(duì)紅外光斑的特點(diǎn),使用近紅外增強(qiáng)型CMOS圖像傳感器NOIP1FN1300A對(duì)激光光斑成像,使前端探測(cè)系統(tǒng)具有較高靈敏度[2]。軟硬件系統(tǒng)均采用模塊化設(shè)計(jì),利用FPGA驅(qū)動(dòng)傳感器成像,對(duì)傳感器輸出的圖像數(shù)據(jù)進(jìn)行串并轉(zhuǎn)換、光斑提取、降噪和質(zhì)心計(jì)算,計(jì)算結(jié)果通過(guò)RS422串行接口輸出。
硬件電路結(jié)構(gòu)分為CMOS焦面電路板、FPGA核心處理板和電源接口板3部分。各個(gè)電路板之間采用高速板對(duì)板連接器對(duì)接,實(shí)現(xiàn)了模塊化設(shè)計(jì),便于更改和更換任務(wù)模塊。系統(tǒng)原理框圖如圖1所示。
圖1 硬件系統(tǒng)框圖
NOIP1FN1300A是安森美公司生產(chǎn)的近紅外增強(qiáng)型黑白CMOS圖像傳感器,四通道低電壓差分信號(hào)(LVDS)輸出,具有開窗口功能[2]。該傳感器性能參數(shù)如表1所示。
傳感器具有3種類型的引腳:電源引腳、3.3V邏輯電平(LVTTL)控制信號(hào)引腳和LVDS差分信號(hào)引腳。使用Linear公司的低噪聲的LDO芯片LT1763為傳感器提供3.3V、3.3V_PIX、1.8V電源。FPGA控制LDO的關(guān)斷(SHDN)引腳,以實(shí)現(xiàn)對(duì)傳感器上電順序的控制,電源電路原理圖如圖2所示。在傳感器的每個(gè)電源引腳均配有濾波電容,降低電源噪聲對(duì)傳感器的成像的影響[3-5]。將傳感器的CLK_PLL、復(fù)位RESET和串行外設(shè)接口(SPI)信號(hào)連接至FPGA。FPGA通過(guò)SPI對(duì)傳感器進(jìn)行初始化配置和參數(shù)在線調(diào)整[6-7]。
傳感器成像輸出采用LVDS傳輸方式。包括4組數(shù)據(jù)線,2組時(shí)鐘線,1組同步信號(hào)線。7組差分線等長(zhǎng)布線連接到FPGA上,相關(guān)的bank供電電壓為2.5V,輸入輸出端口(I/O)應(yīng)設(shè)置為“LVDS”模式。
表1 NOIP1FN1300A傳感器性能
圖2 LT1763應(yīng)用電路
FPGA芯片采用INTEL公司的Cyclone4系列低功耗器件EP4CE55U19I7。該器件具有55856個(gè)邏輯單元(LE)、4個(gè)鎖相環(huán)、最大374個(gè)用戶I/O,最高運(yùn)行速度可達(dá)437MHz。
使用高效的DCDC轉(zhuǎn)換器EP5357為FPGA提供電源供電。板載一片1Gbits DDR2存儲(chǔ)器,實(shí)時(shí)存儲(chǔ)傳感器輸出的視頻圖像,用于USB輸出和圖像濾波的緩存。FLASH采用128Mbits的M25P128,能夠滿足FPGA程序存儲(chǔ)的要求,同時(shí)也能夠固化系統(tǒng)的配置參數(shù),具有斷電記憶功能。
電源接口電路對(duì)主電源進(jìn)行濾波、降噪處理。利用去共模、差模和消紋波電路,使電源噪聲等級(jí)控制在Rms5mV以下,可保證傳感器輸出較高的圖像質(zhì)量。
通訊方式采用抗干擾能力強(qiáng)的RS422全雙工接口,在傳感器實(shí)時(shí)輸出質(zhì)心坐標(biāo)的同時(shí),仍能夠?qū)崿F(xiàn)對(duì)系統(tǒng)參數(shù)的在線調(diào)整。
通過(guò)USB2.0接口實(shí)時(shí)輸出目標(biāo)圖像,用于系統(tǒng)對(duì)焦操作。也可以通過(guò)USB通道傳遞配置參數(shù)。
FPGA軟件完成對(duì)傳感器的驅(qū)動(dòng)、數(shù)據(jù)解串、中值濾波、光斑提取、質(zhì)心計(jì)算與輸出5個(gè)主要模塊的設(shè)計(jì)。使用Quartus13.1進(jìn)行軟件的開發(fā)與調(diào)試,采用Verilog語(yǔ)言編寫程序代碼。軟件系統(tǒng)流程圖如圖3所示。
系統(tǒng)上電后,F(xiàn)PGA按照傳感器的上電時(shí)序要求,對(duì)傳感器分步上電及寄存器初始化配置。傳感器正常輸出后,首先進(jìn)行數(shù)據(jù)的串并轉(zhuǎn)換,得到正確的10bit并行數(shù)據(jù)。再根據(jù)并行數(shù)據(jù)的狀態(tài)碼,解算出原始圖像的行、場(chǎng)同步信號(hào)和圖像數(shù)據(jù)信號(hào)。圖像數(shù)據(jù)流向分為兩路,一路數(shù)據(jù)存入DDR2,通過(guò)USB2.0接口實(shí)時(shí)輸出。另一路原始數(shù)據(jù)分別進(jìn)行濾波處理、閾值計(jì)算、光斑判斷和質(zhì)心計(jì)算,最終得到光斑質(zhì)心的坐標(biāo)。最終計(jì)算結(jié)果通過(guò)RS422接口進(jìn)行輸出。
由FPGA產(chǎn)生傳感器工作的主時(shí)鐘clk_pll,頻率為36MHz。按照像素位寬10bits輸出,將4路并行的LVDS數(shù)據(jù)同時(shí)解串,拼接成逐行逐點(diǎn)的像素時(shí)鐘率則達(dá)到了144MHz。
傳感器上電時(shí)序有嚴(yán)格的要求。為使clk_pll時(shí)鐘輸出可控,該信號(hào)由獨(dú)立的PLL產(chǎn)生,通過(guò)控制PLL的ARESET信號(hào)啟動(dòng)或關(guān)斷時(shí)鐘輸出。傳感器上電時(shí)序如圖4所示[5]。
圖3 FPGA編程流程圖
圖4 傳感器上電時(shí)序
軟件啟動(dòng)后,F(xiàn)PGA依次使能1.8V、3.3V、3.3V_PIX電源,電源穩(wěn)定后使能ARESET為傳感器提供36MHz時(shí)鐘,間隔一定時(shí)間,拉高復(fù)位信號(hào)。最后進(jìn)行SPI寄存器初始化配置。
傳感器的初始化配置包括鎖相環(huán)、狀態(tài)機(jī)、初始參數(shù)、工作模式等。配置結(jié)束后使能傳感器輸出,傳感器即可正常工作。
光斑光強(qiáng)分布,可近似為高斯分布。光斑邊緣的提取,對(duì)質(zhì)心坐標(biāo)精度影響較大。成像電路中也會(huì)存在隨機(jī)的白噪聲,在光斑判斷時(shí),會(huì)被誤認(rèn)為是光斑的一部分。本文針對(duì)這兩種噪聲的頻譜特點(diǎn),使用技術(shù)成熟的中值濾波對(duì)圖像預(yù)處理,實(shí)現(xiàn)了較好的處理效果[3]。
程序中例化了兩個(gè)FIFO緩存2行圖像數(shù)據(jù),與第3行的實(shí)時(shí)數(shù)據(jù)組成3×3矩陣窗口,首先對(duì)窗口內(nèi)的圖像數(shù)據(jù)排序,然后將窗口中間像素,用排序后的中值取代。整個(gè)過(guò)程消耗3個(gè)時(shí)鐘周期,需要將行、場(chǎng)有效信號(hào)同步延遲3個(gè)周期,最后得到濾波后的圖像數(shù)據(jù)[8]。
通過(guò)解析數(shù)據(jù)差分信號(hào)DOUT_N/P和同步差分信號(hào)SYNC_N/P分別獲得像素?cái)?shù)據(jù)和行、場(chǎng)同步信號(hào)。
傳感器具有Training pattern(TP訓(xùn)練模式)寄存器,指在傳感器空閑狀態(tài)時(shí),數(shù)據(jù)線和狀態(tài)線上會(huì)持續(xù)輸出一個(gè)固定值,用于串并轉(zhuǎn)換時(shí)進(jìn)行位對(duì)齊,該值可通過(guò)SPI配置寄存器的方式任意設(shè)置。當(dāng)串并轉(zhuǎn)換模塊成功檢索到TP值后,即可正常接收像素?cái)?shù)據(jù)。在像素?cái)?shù)據(jù)輸出時(shí),狀態(tài)線上輸出不同的狀態(tài)碼,指示當(dāng)前像素?cái)?shù)據(jù)類型。狀態(tài)碼時(shí)序如圖5所示。其中IMG是有效像素段,LE是行結(jié)束,LS是行起始。TR是TP值,空閑時(shí)間一直為0x3A6。
在像元數(shù)據(jù)輸出時(shí),傳感器固定以8個(gè)像素為一組,分為奇數(shù)組和偶數(shù)組。在奇、偶組內(nèi),以特定的排列順序?qū)?個(gè)像素分配到4組LVDS差分線上輸出。因此,軟件程序解串后還需要對(duì)8個(gè)像素重新排序,才能得到正確的一行圖像數(shù)據(jù)。
4個(gè)通道的圖像數(shù)據(jù)是同時(shí)到來(lái)的,為便于光斑提取和計(jì)算,軟件設(shè)置2個(gè)FIFO進(jìn)行乒乓操作,分別存儲(chǔ)一行圖像數(shù)據(jù)。將4通道36MHz的數(shù)據(jù),轉(zhuǎn)換成逐行逐點(diǎn)輸出的144MHz像素?cái)?shù)據(jù)格式。
對(duì)目標(biāo)的提取主要是采用閾值分割的方法。閾值設(shè)置分為手動(dòng)設(shè)置閾值和自適應(yīng)閾值兩種,這兩種方法都存在固有的缺陷[4]。手動(dòng)設(shè)置方法適應(yīng)性差,而自適應(yīng)閾值在復(fù)雜背景條件下提取目標(biāo)成功率低。本文采用自動(dòng)閾值和手動(dòng)閾值相結(jié)合的方式,提高了系統(tǒng)的適用范圍和提取精度。
光斑所占像元的數(shù)量越少,坐標(biāo)提取精度越高,一般不大于20×20個(gè)像素。視場(chǎng)窗口尺寸越大,背景光照強(qiáng)度對(duì)光斑提取所使用的閾值的影響越大。在全分辨率條件下,光斑尺寸僅占整個(gè)靶面的0.03%。在復(fù)雜背景條件下,例如背景光的整體偏暗,但是局部有較大區(qū)域的亮度較高時(shí),此時(shí)會(huì)出現(xiàn)平均灰度不能實(shí)現(xiàn)剔除背景,提取光斑的情況,如圖6所示。
圖5 傳感器狀態(tài)碼輸出
圖6 復(fù)雜背景灰度圖
當(dāng)開窗尺寸較小,且背景光照強(qiáng)度均勻時(shí),可單獨(dú)使用自適應(yīng)閾值進(jìn)行光斑提取,提取效果較好。反之,則需要合理的設(shè)置手動(dòng)閾值,設(shè)置值應(yīng)能保證用于分割的閾值大于局部亮區(qū)的灰度,只提取有效的光斑目標(biāo)。
程序設(shè)計(jì)中,利用相鄰兩幅成像畫面具有較大相關(guān)性這一時(shí)間冗余特點(diǎn),將當(dāng)前幀圖像的平均灰度與手動(dòng)設(shè)置閾值相加,作為下一幀圖像光斑提取的閾值。用兩個(gè)FIFO分別緩存兩行圖像數(shù)據(jù),與第3行數(shù)據(jù)組成3×3滑動(dòng)窗口,當(dāng)窗口中的9個(gè)像素點(diǎn)灰度值,有3個(gè)以上大于閾值,則認(rèn)為窗口中心像素是激光光斑的一部分。將該點(diǎn)的灰度值和行、列坐標(biāo)值輸出給下一模塊,進(jìn)行質(zhì)心計(jì)算。
激光光斑的質(zhì)心也就是光斑的灰度重心。本文采用灰度質(zhì)心法計(jì)算光斑的質(zhì)心坐標(biāo),該方法具有計(jì)算速度快、精度高、硬件容易實(shí)現(xiàn)等優(yōu)點(diǎn)[4,9]。假設(shè)圖像的分辨率為×,光斑所占像元的灰度表示為(,),那么質(zhì)心計(jì)算公式為:
光斑提取模塊輸出了光斑所占像素的灰度值和坐標(biāo)值,將這些數(shù)據(jù)代入公式(1),通過(guò)FPGA自帶的乘/除法IP核,實(shí)現(xiàn)計(jì)算功能。為了提高坐標(biāo)輸出精度,精確到小數(shù)點(diǎn)后3位,將公式分子部分均乘以1024,硬件程序上采用邏輯左移10位,低位補(bǔ)0的方式。此時(shí)的商是坐標(biāo)放大1000倍的數(shù)據(jù),最終應(yīng)用時(shí),再除以1024即可得到帶3位小數(shù)的坐標(biāo)值,實(shí)現(xiàn)了亞像元細(xì)分功能。本文中只保留小數(shù)點(diǎn)后兩位有效數(shù)據(jù)。
坐標(biāo)以幀指令格式通過(guò)RS422接口輸出,一幀指令包含8個(gè)字節(jié)數(shù)據(jù),有同步頭、行坐標(biāo)、列坐標(biāo)、校驗(yàn)位,波特率230.4 kbps。用戶可通過(guò)該接口實(shí)時(shí)調(diào)整系統(tǒng)的曝光時(shí)間、增益等參數(shù)。同時(shí),設(shè)計(jì)具有一路USB2.0圖像輸出接口,實(shí)時(shí)顯示目標(biāo)圖像,可用于觀測(cè)和對(duì)焦操作。
硬件電路采用5V供電,實(shí)測(cè)工作電流0.56A,硬件功耗為2.8W。利用上述設(shè)計(jì)方案,對(duì)940nm激光光斑成像效果如圖7所示。光斑邊緣清晰,與背景過(guò)度均勻,適合使用閾值分割算法,對(duì)光斑進(jìn)行提取。
圖7 光斑成像效果
在全分辨率條件下,設(shè)置復(fù)雜背景,對(duì)激光光斑成像,實(shí)時(shí)計(jì)算質(zhì)心坐標(biāo)并輸出,其中圖像右下角為坐標(biāo)原點(diǎn),將視頻圖像通過(guò)USB2.0高速數(shù)據(jù)接口,傳輸?shù)絇C機(jī)軟件顯示,測(cè)試結(jié)果如圖8所示。
畫面中激光光斑亮度較高,已呈現(xiàn)飽和狀態(tài),光斑附近及其他部位有若干灰度較高的斑點(diǎn),模擬雜散光對(duì)成像系統(tǒng)的干擾。將鏡頭光圈減小,使成像畫面的亮度降低,避免局部區(qū)域出現(xiàn)過(guò)飽和,影響算法對(duì)光斑的提取和判斷。
圖8 左下角光斑
為達(dá)到較好的檢測(cè)效果,針對(duì)所用激光中心波長(zhǎng),使用窄帶濾光片和衰減片,使檢測(cè)結(jié)果更加精準(zhǔn)和穩(wěn)定。最終光斑坐標(biāo)檢測(cè)結(jié)果如表2所示。
表2 坐標(biāo)輸出結(jié)果
從系統(tǒng)輸出的光斑坐標(biāo)結(jié)果可以看出,數(shù)據(jù)穩(wěn)定且精度較高,能夠維持小數(shù)點(diǎn)后一位不變,實(shí)現(xiàn)了亞像元細(xì)分,滿足了設(shè)計(jì)需求。
質(zhì)心坐標(biāo)在每個(gè)場(chǎng)同步下降沿計(jì)算和輸出一次。使用示波器檢測(cè)場(chǎng)同步周期,即可得到系統(tǒng)實(shí)際輸出速度。將傳感器分辨率設(shè)定為256×256 pixels,減少行消隱時(shí)間xsm_delay,實(shí)測(cè)場(chǎng)同步周期縮小到630ms時(shí),系統(tǒng)仍正常工作,此時(shí)幀率達(dá)1587fps。
實(shí)驗(yàn)結(jié)果表明,傳感器在近紅外波段靈敏度高,在復(fù)雜背景條件下光斑成像效果好,質(zhì)心坐標(biāo)計(jì)算精確,實(shí)現(xiàn)了亞像元細(xì)分。硬件功耗小于3W,系統(tǒng)工作穩(wěn)定可靠。經(jīng)實(shí)測(cè)在開窗口模式下,坐標(biāo)計(jì)算幀率可達(dá)1500fps,具有較高的實(shí)用價(jià)值。
[1] 陳興美, 嚴(yán)壯志. 基于FPGA的紅外光斑中心實(shí)時(shí)檢測(cè)[J]. 紅外與激光工程, 2005(4): 401-405.
CHEN Xingmei, YAN Zhuanzhi. Real-time detection of infrared spot based on FPGA[J]., 2005(4): 401-405.
[2] 向世明, 高教波, 焦明印. 現(xiàn)代光電子成像技術(shù)概論[M]. 北京: 北京理工大學(xué)出版社, 2010: 155-156, 168-169.
XIANG Shiming, GAO Jiaobo, JIAO Mingyin.[M]. Beijing: Beijing Institute of Technology Press, 2010: 155-156, 168-169.
[3] 胡治國(guó), 何海菠, 范祝軍. 基于FPGA的光斑圖像中值濾波處理[J]. 自動(dòng)化與儀器儀表, 2013(4): 127-128.
HU Zhiguo, HE Haibo, FAN Zhujun. Median filtering of spot image based on FPGA[C]//, 2013(4): 127-128.
[4] 黃茂祥, 劉允才. 基于FPGA的快速紅外光斑檢測(cè)[J]. 微型電腦應(yīng)用, 2010, 26(10): 54-57.
HUANG Maoxiang, LIU Yuncai. Fast infrared spot detection based on FPGA[J]., 2010, 26(10): 54-57.
[5] 馬利剛, 馬鐵華. 基于FPGA的實(shí)時(shí)圖像采集系統(tǒng)設(shè)計(jì)[J]. 計(jì)量與測(cè)試技術(shù), 2009(4): 51-52, 56.
MA Ligang, MA Tiehua. Design of image sampling system based on FPGA[J]., 2009(4): 51-52, 56.
[6] 白廷柱. 光電成像技術(shù)與系統(tǒng)[M]. 北京: 電子工業(yè)出版社, 2016.
BAI Tingzhu.[M]. Beijing: Electronic Industry Press, 2016.
[7] 姚立斌. 低照度CMOS圖像傳感器技術(shù)[J]. 紅外技術(shù), 2013, 35(3): 125-132.
YAO Libin. Low-light-level CMOS image sensor technique[J]., 2013, 35(3): 125-132.
[8] 肖鋒鋼, 劉建國(guó), 曾淙泳, 等. 一種新型提高光斑圖像質(zhì)心精度的去噪方法[J].計(jì)算機(jī)應(yīng)用研究, 2008(12): 3683-3684, 3687(doi: 10.3969/j.issn.1001-3695.2008.12.046).
XIAO Fenggang, LIU Jianguo, ZENG Congyong, et al. New denosing method for improving speckle image centriod accuracy[J]., 2008(12): 3683-3684, 3687 (doi: 10.3969/ j.issn.1001-3695.2008.12.046).
[9] 樊巧云, 張廣軍. 離散噪聲圖像的光斑質(zhì)心算法及其硬件實(shí)現(xiàn)[J]. 光學(xué)精密工程, 2011(12): 2992-2998(doi:10.3788/ OPE. 20111912. 2992).
FAN Qiaoyun, ZHANG Guangjun. Spot centroiding algorithm for discrete noise image and its hardware implementation[J]., 2011(12): 2992-2998(doi:10.3788/ OPE. 20111912.2992).
Design of a Laser Spot Centroid Detection System Based on NIR CMOS
WANG Xuesong
(..,100193,)
To meet the requirements of high detection sensitivity, high-precision calculation of spot coordinates, and a calculated output speed greater than 1000 fps, this study introduces a system based on a near-infrared CMOS image sensor to calculate and output centroid coordinates in real time. We employed the NIR detector NOIP1FN1300A of the Python1300 series produced by the company ONsemiconductor to image the laser spot. The Cyclone4 series low-power FPGA was used to drive the sensor and deserialize the sensor output data, and a reliable centroid algorithm was used to calculate the spot coordinates. The results in the output part, USB2.0, and RS422 interfaces were used to output the target image and centroid coordinates in real time. The design has the following advantageous features: 1500 fps real-time processing capacity, a concise software code, accurate calculation of centroid coordinates, and low-power consumption.
image sensor, FPGA, near-infrared, spot coordinates
TN219
A
1001-8891(2021)08-0730-06
2020-12-17;
2021-01-19.
王雪松(1984-),男,天津人,碩士,主要從事遠(yuǎn)距離激光夜視系統(tǒng)研發(fā)與設(shè)計(jì)。E-mail:wangxuesong@glopro.com.cn。