, ,
(北京空間機電研究所 先進光學(xué)遙感技術(shù)北京市重點實驗室,北京 100094)
圖像傳感器是航天光學(xué)遙感系統(tǒng)的核心器件,其性能的優(yōu)劣直接影響到系統(tǒng)的成像質(zhì)量。為了選擇一款性能優(yōu)良的圖像傳感器,需要對其各項性能指標進行摸底測試。
在實際使用中,選擇圖像傳感器時主要依據(jù)圖像傳感器數(shù)據(jù)手冊中給出的性能指標。而數(shù)據(jù)手冊中的性能指標是在特定的工作條件和工作環(huán)境下測試得到的,并不能覆蓋實際應(yīng)用中的所有使用情況。為了更加全面地獲取不同工作條件和工作環(huán)境下器件的性能指標,根據(jù)應(yīng)用需求來選擇圖像傳感器,迫切需要搭建一套圖像傳感器光電性能測試與評估系統(tǒng)。
光學(xué)遙感系統(tǒng)的圖像傳感器包括可見光圖像傳感器(主要包括CCD圖像傳感器和CMOS圖像傳感器)和紅外圖像傳感器。由于CMOS圖像傳感器具有驅(qū)動簡單、單電源低電壓供電、集成度高等特點[1],以其作為研究對象搭建測試系統(tǒng)具有結(jié)構(gòu)簡單、研制周期短的優(yōu)點,因此在研發(fā)初期選擇CMOS圖像傳感器作為研究對象。通過研制CMOS圖像傳感器測試系統(tǒng)積累經(jīng)驗,為以后將自動化測試技術(shù)推廣應(yīng)用到CCD圖像傳感器和紅外圖像傳感器打下基礎(chǔ)。
在航天遙感應(yīng)用領(lǐng)域,亟需大規(guī)模、高讀出速度、大動態(tài)范圍的圖像傳感器,因此選擇高性能、高速大面陣CMOS圖像傳感器LUPA4000作為研究對象,對其性能進行測試評估。
CMOS圖像傳感器測試系統(tǒng)包括LUPA4000圖像傳感器及外圍電路、測控計算機、積分球光源等。測試系統(tǒng)如圖1 所示,其中積分球提供均勻光源;外圍電路提供LUPA4000工作所需的時序和電壓,將光學(xué)信息轉(zhuǎn)換為數(shù)字圖像數(shù)據(jù)傳送給測控計算機處理;參數(shù)自動化測試軟件是圖像傳感器測試評估系統(tǒng)的重要組成部分,實現(xiàn)圖像數(shù)據(jù)的采集、存儲、顯示和參數(shù)的自動化測試計算等功能。
圖1 CMOS 圖像傳感器測試評估系統(tǒng)
在傳統(tǒng)的圖像傳感器參數(shù)測試時,通常先采集存儲圖像,再利用MATLAB、Photoshop等軟件對圖像數(shù)據(jù)進行人工分析處理。為了改進傳統(tǒng)測試方法效率低下的缺點,參數(shù)自動化測試軟件的設(shè)計目標是通過該軟件實現(xiàn)圖像傳感器圖像數(shù)據(jù)的實時采集、存儲和顯示;對圖像傳感器的主要性能參數(shù)進行實時計算分析,對測試結(jié)果進行實時顯示存儲。在整個測試過程中,用戶只需選擇待測參數(shù),配置好圖像傳感器的工作狀態(tài)和測試環(huán)境后,點擊“測試開始”按鈕,參數(shù)測試即可自動化進行,測試結(jié)果實時以曲線和圖表顯示,原始圖像數(shù)據(jù)和測試結(jié)果同步存儲到本地以供進一步處理分析。與傳統(tǒng)的測試方法相比,自動化測試軟件將采集圖像與數(shù)據(jù)處理同步進行,大大簡化了測試流程,縮短了測試時間,提高了測試效率。由于采圖自動化,參數(shù)計算時的采圖數(shù)量與人工采圖相比可大大增加,計算樣本的增加也提高了測試結(jié)果的可信度。
為了更好的實現(xiàn)設(shè)計目標,在設(shè)計過程中應(yīng)特別注意測試參數(shù)的全面性、測試過程的自動化、參數(shù)計算方法的正確性等。同時為了軟件的移植性和通用性,應(yīng)注重軟件編寫的模塊化和規(guī)范化。
目前對圖像傳感器的測試,DALSA、Fairchild、E2V、ATMEL等圖像傳感器生產(chǎn)廠商,會搭建一套大型化、通用化、自動化的測試系統(tǒng),適用于不同規(guī)格的圖像傳感器參數(shù)測試。這樣的測試系統(tǒng)能系統(tǒng)全面地對探測器的性能參數(shù)進行測試,但由于其強大的通用性,帶來設(shè)備龐大、造價昂貴、操作復(fù)雜等問題。
作為圖像傳感器的用戶,不需要像專業(yè)的圖像傳感器生產(chǎn)商那樣投入大量資金研發(fā)圖像傳感器綜合參數(shù)測試評價系統(tǒng)。本著經(jīng)濟適用、自動高效、可靠穩(wěn)定的設(shè)計原則,選擇光學(xué)遙感系統(tǒng)應(yīng)用中比較關(guān)注的指標參數(shù)進行測試。經(jīng)過研究CMOS圖像傳感器及遙感系統(tǒng)的應(yīng)用需求,最終選擇暗信號、暗信號非均勻性(FPN)、總噪聲、光響應(yīng)線性度、飽和輸出電壓、動態(tài)范圍、缺陷像元、光響應(yīng)非均勻性(PRNU)、信噪比(SNR)等典型參數(shù)進行測試。
2.3.1 選擇圖像采集卡
在測試系統(tǒng)中,CMOS圖像傳感器的圖像時鐘頻率為20 MHz,圖像數(shù)據(jù)12 bit并行輸出,圖像傳輸數(shù)據(jù)率為240 Mbps。CameraLink是目前比較流行的圖像數(shù)據(jù)傳輸協(xié)議標準,數(shù)據(jù)傳輸速率高達2.38 Gbps(圖像時鐘頻率為20~85 MHz)[2],滿足測試系統(tǒng)的數(shù)據(jù)傳輸速率要求,因此圖像傳輸選擇CameraLink接口。
通過對CamerLink圖像采集卡的調(diào)研,最終選用DALSA 公司的CameraLink圖像采集卡X64 Xcelera-CL PX4進行圖像數(shù)據(jù)的采集。X64 Xcelera-CL PX4是一款 PCI Express X4 接口的CameraLink圖像采集卡。該圖像采集卡能接收數(shù)字視頻圖像數(shù)據(jù),并且能提供相機控制信號以及串行通信信號,廣泛應(yīng)用于機器視覺和科學(xué)成像領(lǐng)域[3]。采集卡性能指標與測試系統(tǒng)需求情況對比見表1。由表1可知,該采集卡滿足本測試系統(tǒng)使用需求。
2.3.2 選擇軟件開發(fā)工具
DALSA公司針對圖像采集卡提供了Sapera LT 軟件包。Sapera LT 是一套用于圖像采集、顯示和控制的 C 和 C++ 軟件庫,支持所有 DALSA 的圖像采集卡,能實現(xiàn)多樣化的相機采集控制、靈活的顯示和管理功能,具有良好的可移植性和詳細的開發(fā)向?qū)В瑸橛脩舾鶕?jù)自身需求進行二次開發(fā)提供了便捷。Sapera LT 與 Microsoft Visual Studio C/C++、.Net、Visual Basic 6.0 和 Borland C++ Builder 兼容,支持 Windows XP、2000 和 NT 平臺[3]。軟件開發(fā)時使用Sapera LT軟件包可以大大縮減軟件研發(fā)時間和研發(fā)難度。以上與Sapera LT 兼容的軟件工具中,Visual C++ 是Microsoft公司推出的基于C/C++語言的功能強大的集成應(yīng)用開發(fā)環(huán)境,能夠開發(fā)出界面友好、執(zhí)行速度快、易于維護升級的軟件系統(tǒng),是開發(fā)可視化窗口應(yīng)用程序的主流軟件[4]。因此選擇 Visual Studio 2008中的VC++作為系統(tǒng)開發(fā)工具。
表1 X64 圖像采集卡Xcelera-CL PX4性能參數(shù)與需求情況對比
2.3.3 搭建軟件總體框架
Sapera LT為用戶提供的API函數(shù),包含兩大類:基礎(chǔ)應(yīng)用類(Basic Classes)和GUI類(GUI Classes)?;A(chǔ)應(yīng)用類提供了與采集、緩存、傳輸、顯示相關(guān)的函數(shù)。GUI類提供了許多設(shè)置對話框,用戶可根據(jù)需要調(diào)用相關(guān)設(shè)置對話框,修改采集、存儲、顯示參數(shù)。
參數(shù)自動化測試軟件主要包括圖像文件模塊、圖像采集存儲模塊、圖像顯示模塊、圖像數(shù)據(jù)分析和參數(shù)自動化測試模塊。各個功能模塊的軟件編程實現(xiàn)方法如表2所示。
由表2可知,圖像文件模塊、圖像采集模塊、圖像顯示模塊等通過調(diào)用Sapera LT軟件開發(fā)包提供的基礎(chǔ)應(yīng)用類和GUI類函數(shù)來實現(xiàn),簡單易行。參數(shù)自動化測試模塊和圖像數(shù)據(jù)分析模塊通過Sapera LT軟件庫中的的SapTransfer進行圖像采集,利用SapBuffer獲取采集緩存區(qū)的圖像數(shù)據(jù),對獲取的圖像數(shù)據(jù)利用VC++編程進行分析計算處理。參數(shù)自動化測試模塊是整個軟件系統(tǒng)的核心模塊,下面將詳細介紹該模塊的設(shè)計與實現(xiàn)。
2.4.1 測試規(guī)劃
參數(shù)自動化測試模塊主要實現(xiàn)CMOS圖像傳感器的暗信號、暗信號非均勻性(FPN)、讀出總噪聲、光響應(yīng)線性度、飽和輸出電壓、動態(tài)范圍、缺陷像元、光響應(yīng)非均勻性(PRNU)、信噪比(SNR)等參數(shù)的自動化測試。以上參數(shù)的測試條件如下:
1)暗信號、暗信號非均勻性、總噪聲需要在無光照的暗背景下進行測試。其中暗信號和暗信號非均勻性需要在多個積分時間下進行多幀測試;讀出總噪聲需要在固定的積分時間下進行多幀測試;
表2 參數(shù)自動化測試軟件功能模塊實現(xiàn)方法
2)光響應(yīng)線性度、飽和輸出電壓、光響應(yīng)非均勻性、動態(tài)范圍、信噪比需要在積分球均勻光照下進行測試。其中光響應(yīng)線性度、信噪比、飽和輸出電壓可同時進行測試計算,都要在多個積分時間下進行多幀測試計算。動態(tài)范圍由飽和輸出電壓和總噪聲的測試結(jié)果計算得到;
3)光響應(yīng)非均勻性需要在固定積分時間下,調(diào)節(jié)積分球光強,使圖像傳感器處于半飽和狀態(tài)下進行測試;
4)缺陷像元需要在無光照條件下、均勻光照條件下圖像傳感器半飽和這兩種狀態(tài)下進行測試。
根據(jù)以上參數(shù)測試的特點,對參數(shù)測試條件進行分類整理,規(guī)劃參數(shù)測試流程如圖2所示。在進行軟件設(shè)計時需要注意以下幾點:
1)由于參數(shù)測試時需要在不同的積分時間或固定積分時間下進行,所以軟件需要設(shè)計積分時間設(shè)置模塊和串口通訊模塊。串口通信模塊軟件設(shè)計時可以通過調(diào)用VC++的串口通信控件MSComm實現(xiàn)。設(shè)計時要注意模塊化、通用化設(shè)計,使編寫的串口發(fā)送模塊適用于不同數(shù)據(jù)量、不同編碼格式的數(shù)據(jù)發(fā)送。積分時間設(shè)置通過手動輸入起始積分時間、終止積分時間、積分步長實現(xiàn)。在啟動測試前,需要人工對輸入的積分時間進行確認。如果積分時間設(shè)置錯誤,通過AfxMessageBox函數(shù)彈出對話框進行提醒。
2)從測試流程可看出,有多個參數(shù)是在相同的測試條件下進行的。所以在進行測試參數(shù)選擇時,選擇了某一參數(shù)進行測試,則與該參數(shù)相同測試條件的參數(shù)會被自動勾選上。如果根據(jù)參數(shù)測試選擇,在某個測試條件下沒有參數(shù)需要測試,則該測試條件可略過。所以在軟件編程時,需要按照測試條件設(shè)計不同程序模塊。在每個模塊中,每次參數(shù)測試前都利用AfxMessageBox函數(shù)彈出對話框,對需要進行的人工操作進行提醒,并在人工操作完成后方可轉(zhuǎn)到下一步驟。
3)從測試流程可看出,大部分參數(shù)測試都需要在不同的積分時間下對圖像數(shù)據(jù)進行多幀采集處理。所以將某一積分時間下的多幀采集設(shè)計為一個函數(shù)模塊,供上級程序模塊調(diào)用,增強程序的可讀性、通用性。該程序模塊的關(guān)鍵代碼如下:
SapTransfer *m_Xfer= pDoc->GetXfer();
//建立與SapTransfer的聯(lián)系
SapBuffer *m_Buffers=pDoc ->GetBuffers();
//建立與SapBuffer的聯(lián)系
m_Xfer->Snap();
//單幀采集,根據(jù)采集幀數(shù),多次循環(huán)調(diào)用該語句
m_Buffers->GetAddress((void**)&data);
//通過該語句獲取采集數(shù)據(jù)
m_Buffers->ReleaseAddress(data);
//數(shù)據(jù)處理完成后,通過該語句釋放緩存
圖2 參數(shù)測試流程圖
2.4.2 具體實現(xiàn)
具體到某一參數(shù)的測試計算,最重要的是測試方法的正確性,測試方法是否有據(jù)可依。由于CMOS圖像傳感器的參數(shù)測試方法無相關(guān)標準規(guī)范,因此只能參考相關(guān)的文獻[5-6]和CCD圖像傳感器的測試規(guī)范[7],進行改進移植,使其適用于CMOS圖像傳感器的測試。由于對每個技術(shù)指標測試時,測試條件、測試方法、測試步驟、數(shù)據(jù)處理都借鑒了國際先進的測試規(guī)范[7]和方法,測試數(shù)據(jù)的可信度、可用性大大提高。
下面以信噪比(SNR)測試為例說明測試方法和軟件設(shè)計流程。
信噪比測試時,在均勻光照條件下,調(diào)節(jié)積分時間,在不同的積分時間下采集F幀圖像,測試信噪比。按照公式(1)計算器件的信噪比(SNR)。
(1)
其中:
式中,M為光敏面像元數(shù)目;Voi為第i像元的F幀平均輸出信號電壓;Vos為器件的平均輸出信號;VNRMS為輸出信號的均方根偏差。
信噪比測試軟件設(shè)計流程如圖3所示。
圖3 信噪比測試軟件設(shè)計流程圖
在進行信噪比測試軟件設(shè)計過程中,解決了以下技術(shù)難點,如表3。
利用參數(shù)自動化測試軟件對 CMOS圖像傳感器LUPA400進行了測試。為了驗證測試軟件的正確性,進行了以下驗證工作。
1)驗證測試軟件編寫的正確性:在利用測試軟件進行參數(shù)測試的過程中,將原始圖像數(shù)據(jù)進行存儲,將存儲的圖像數(shù)據(jù)利用MATLAB軟件進行計算,將測試軟件的計算結(jié)果和MATLAB的計算結(jié)果進行對比。通過多次對比,測試軟件的計算結(jié)果和MATLAB的計算結(jié)果完全一致,因此驗證了測試軟件程序編寫的正確性;
2)測試方法的正確性和測試結(jié)果的可信度:將參數(shù)計算的結(jié)果與器件數(shù)據(jù)手冊的參數(shù)指標進行比對,對比結(jié)果如表4所示。通過與廠家的指標進行對比,主要參數(shù)的測試結(jié)果在廠家提供的參數(shù)指標范圍內(nèi)。而且測試結(jié)果與使用過程中對器件性能的使用判斷結(jié)果基本一致。因此可判斷測試方法正確,測試結(jié)果可信。
表3 信噪比參數(shù)測試技術(shù)難點及解決方法
表4 LUPA4000測試結(jié)果與數(shù)據(jù)手冊符合性對比
經(jīng)過多次測試驗證,該測試系統(tǒng)運行穩(wěn)定可靠、操作簡單便捷、自動化程度高,大大提高了測試效率。原本需要1~2天才能完成的測試工作,利用該軟件系統(tǒng)后只需半個小時即可
自動完成。圖像傳感器參數(shù)自動化測試軟件可廣泛應(yīng)用于不同規(guī)模的圖像傳感器的性能測試評估,可用于選擇圖像傳感器時的測試摸底、圖像傳感器驗收時的批量評估篩選、圖像傳感器使用過程中的性能評估、故障定位等。由于在軟件設(shè)計中采用模塊化設(shè)計,程序可讀性和可移植性較好,具有良好的推廣應(yīng)用前景。
在本階段的測試中,主要通過手動調(diào)節(jié)積分球光強或調(diào)節(jié)積分時間來獲取不同的曝光量。下一階段的工作重點是研究如何通過測試軟件對積分球的光強進行自動控制以及如何對光強進行精確標定。
[1] 陳必威,梁志毅,王延新,等,基于FPGA的高幀速CMOS成像系統(tǒng)設(shè)計[J].計算機測量與控制,2012,20(5):1397-1400.
[2] 于雙江,王建宇.SerDes器件在遙感相機系統(tǒng)中的應(yīng)用[J].航天返回與遙感,2012 33(6):93-98.
[3] Robert Joncas.Sapera LT User’S Manual[Z].Canada,Robert-Joncas,2008.
[4] 陳兵旗,孫 明.Visual C++實用圖像處理[M]. 北京:清華大學(xué)出版社,2004.
[5] 池國泉.高性能CMOS圖像傳感器測試與評價系統(tǒng)的設(shè)計與實現(xiàn)[D].天津:天津大學(xué),2008.
[6] 肖恒兵. 基于視頻信號處理的CCD光電參數(shù)測試系統(tǒng)研究[D].武漢:華中科技大學(xué), 2006.
[7] ESA/SCC Basic Specification NO,25000,Electro_optical Test Methods for Charge Couple Devices[S].