李煊 王晶媛
引言:當(dāng)相機(jī)與被拍攝場景在曝光時間內(nèi)存在相對運(yùn)動時,獲取的圖像就會出現(xiàn)運(yùn)動模糊。圖像運(yùn)動模糊包括相機(jī)抖動模糊和物體運(yùn)動模糊。近來,由于圖像盲復(fù)原方法的突破。編碼曝光技術(shù)作為計算攝影[3]的具體應(yīng)用,其核心思想是在相機(jī)曝光期間根據(jù)預(yù)先設(shè)計的二進(jìn)制編碼序列(稱為碼字)快速地開關(guān)相機(jī)快門以保留高頻信息。由此,編碼曝光技術(shù)將病態(tài)的模糊圖像復(fù)原問題轉(zhuǎn)化為良態(tài)問題。
1 系統(tǒng)總體結(jié)構(gòu)
整個系統(tǒng)分為三個子系統(tǒng),分別是圖像顯示系統(tǒng),圖像傳輸和處理系統(tǒng)以及圖像采集
系統(tǒng),其中圖像顯示系統(tǒng)采用PC電腦作為顯示器,在電腦上用MFC編程寫出圖像顯示軟件,上位機(jī)顯示軟件控制圖像采集的開始,停止以及回放,通過光纖將控制命令發(fā)送到下位機(jī),在電腦主板的PCIE總線插槽處接入PCIE轉(zhuǎn)光纖轉(zhuǎn)接卡,采用光纖作為傳輸通路,可以保證圖像數(shù)據(jù)快速遠(yuǎn)距離傳輸;圖像傳輸和處理系統(tǒng)采用FPGA作為主控芯片,F(xiàn)PGA一方面控制串并轉(zhuǎn)換芯片TLK2501以接收來自上位機(jī)的命令,同時將采集到的數(shù)據(jù)通過串并轉(zhuǎn)換芯片經(jīng)由光纖發(fā)送到上位機(jī),F(xiàn)PGA與AD9923A通過總線方式連接以采集圖像數(shù)據(jù),另外,SDRAM用于存儲圖像數(shù)據(jù);圖像采集系統(tǒng)選用索尼公司的ICX445CCD傳感器,外圍搭配AD9923A作為時序驅(qū)動電路,而AD9923A的配制則選用單片機(jī)C8051F340。
2 硬件設(shè)計
2.1 圖象顯示系統(tǒng)
圖象顯示系統(tǒng)采用PC電腦作為上位機(jī),使用windows XP操作系統(tǒng),在此基礎(chǔ)上使用MFC編寫了上位機(jī)顯示界面,界面如圖2所示,命令及圖像數(shù)據(jù)通過電腦的PCIE總線進(jìn)行相互傳輸,在電腦的PCIE插槽上接入一個PCIE光纖轉(zhuǎn)接卡,系統(tǒng)框圖如圖3所示,通過光纖發(fā)送來的相機(jī)數(shù)據(jù)由SFP光模塊接收,經(jīng)過串并轉(zhuǎn)換以后由FPGA接收,F(xiàn)PGA內(nèi)部有一個PCIE硬核,當(dāng)接收到的數(shù)據(jù)達(dá)到一定數(shù)值時(在這我們設(shè)定是到達(dá)12幀數(shù)據(jù)),F(xiàn)PGA便開啟與電腦內(nèi)存之間的DMA傳輸,而MFC顯示程序則直接從電腦內(nèi)存中讀取圖像數(shù)據(jù)并顯示圖像。
圖像顯示軟件采用VC++6.0開發(fā)的基于MFC的應(yīng)用程序,功能包括開始、停止采集,設(shè)置曝光時間以及曝光次數(shù)等參數(shù),實現(xiàn)了曝光的可控性?,F(xiàn)實程序采用多線程編程,不僅能夠?qū)崟r顯示圖像,還可以存儲圖像,提高了程序的運(yùn)行效率。在編程中使用了DirectDraw函數(shù)組,直接將圖像數(shù)據(jù)送人顯存,充分發(fā)揮顯卡性能,消除了圖像閃爍現(xiàn)象。
2.2 圖像傳輸和處理系統(tǒng)
圖像傳輸和處理系統(tǒng)采用FPGA作為主控制芯片,一方面從光纖端接收來自上位機(jī)的參數(shù)設(shè)置,進(jìn)而配制AD9923A的相關(guān)寄存器,控制CCD的曝光時間及次數(shù),另一方面FPGA接收到采集圖像的命令后,開始CCD的圖像采集及數(shù)據(jù)讀取的操作,CCD數(shù)據(jù)先進(jìn)入AD9923A,然后AD9923A通過數(shù)據(jù)總線發(fā)送到FPGA;數(shù)據(jù)數(shù)據(jù)進(jìn)入FPGA以后,先經(jīng)過delay_FV模塊過濾掉不用的行像素,然后再經(jīng)過delay_LV模塊過濾掉無用的列像素,然后將有效的圖像數(shù)據(jù)存儲在SDRAM中。系統(tǒng)結(jié)構(gòu)如圖4所示。
CCD產(chǎn)生的圖像數(shù)據(jù)中包含很多無效的信號(簡稱OB信號),所以要在FPGA中判斷并去掉這些無用的行信號及水平信號。水平方向的OB信號用AD9923A中的CLPOB信號進(jìn)行消除,而垂直方向的OB信號用HBLK信號消除,PBLK是可選參數(shù),經(jīng)常用于在無效CCD像素期間消隱數(shù)字輸出。
2.3 圖像采集系統(tǒng)
本系統(tǒng)采用的CCD傳感器為sony公司的ICX445,而驅(qū)動CCD的芯片采用Analog
Devices公司的AD9923A。在上電初始,單片機(jī)C8051F340通過SPI總線配置AD9923A,當(dāng)配制完成以后,會將對AD9923A的控制權(quán)交給FPGA,AD9923A在配置好以后,內(nèi)部的驅(qū)動時序發(fā)生器向傳感器ICX445提供水平時序、垂直時序以及各種控制信號,使ICX445能夠正常工作;當(dāng)FPGA發(fā)出開始采集的命令以后,圖像的模擬信號先傳輸?shù)紸D9923A,經(jīng)過模擬前端的放大增益,相關(guān)雙采樣以后,得到圖像數(shù)據(jù),然后經(jīng)過12位的模數(shù)轉(zhuǎn)換得到數(shù)字量化的圖像數(shù)據(jù),最后將并行圖像數(shù)據(jù),時鐘,以及控制時序發(fā)送到FPGA。ICX445是1/3寸CCD傳感器,全像素為1348(H)× 976(V),有效像素1296(H)×966(V),VΦ1 A ,VΦ1 B ,VΦ2 A ,VΦ2B ,VΦ3 A ,VΦ3B ,VΦ4 A ,VΦ4 B 是垂直移位寄存器的控制時序脈沖,他們的組合控制電荷在垂直移位寄存器的移動;HΦ1 A ,HΦ1 B ,HΦ2 A ,HΦ2B 是水平移位寄存器的控制時序脈沖,他們的組合控制電荷在水平移位寄存器的移動;SUB是襯底選通信號,接通垂直移位寄存器和水平移位寄存器之間的通道,使得垂直移位寄存器中的電荷信號能夠順利轉(zhuǎn)移到水平移位寄存器中;RG是重置門信號,在輸出一個電荷信號之前,清除水平移位寄存器中的殘余電荷,將輸出放大器的電荷探測端復(fù)位到參考電平,其頻率直接決定CCD電荷信號輸出的頻率。對AD9923A進(jìn)行配置時,以垂直序列為例,首先確定垂直時序的起始極性以及跳變位置,然后確定此脈沖的重復(fù)次數(shù),當(dāng)所需要的8個垂直時序全部設(shè)置完畢時,便組成了一個垂直圖樣組,而相對于ICX445傳感器的一幀數(shù)據(jù),需要三組不同的垂直圖樣組:高速清除階段,正常傳輸階段,讀出階段。每個階段都有自己的垂直圖樣組,因此在一幀中確定三個垂直圖樣組每個的起始位置,持續(xù)時間,以及重復(fù)次數(shù)便形成了不同的垂直序列。而不同的垂直序列再組成一個場,因為ICX445并沒有奇偶場之分,所以本系統(tǒng)只需要單場循環(huán)即可。
曝光時間的控制:CCD電子快門原理是由光照產(chǎn)生的電荷在光敏二極管下的勢阱積分,
而周期性的SUBCK 信號則用于清除勢阱中的電荷,VSG信號用于將電荷從勢阱中轉(zhuǎn)移到垂
直移位寄存器。AD9923A有三種電子快門模式:普通快門模式、精確快門模式、慢速快門模式。在普通快門模式下,當(dāng)場同步信號VD有效后,就產(chǎn)生一個VSG有效信號。SUBCK有效信號在行同步信號有效產(chǎn)生,一場內(nèi)SUBCK信號產(chǎn)生個數(shù)由寄存器SUBCKNUM決定。普通曝光模式時序控制如圖6。設(shè)場頻為f v ,行頻為f h ,快門時間為t,則快門時間由式(1)確定:
根據(jù)式(1),可以推導(dǎo)出根據(jù) t 計算 SUBCKNUM 的方法,推導(dǎo)結(jié)果如式(2):SUBCKNUM=f h×(1/ f v?t )(2) 因此FPGA在接收到上位機(jī)的曝光時間參數(shù)以后,通過配制AD9923A的SUBCKNUM寄存器,可以更改SUBCK脈沖數(shù),從而更改CCD的曝光時間。
3 算法設(shè)計
圖像融合的算法對系統(tǒng)的資源要求很高,因為采用的FPGA作為處理芯片,算法的處理時間不宜過長,復(fù)雜度不能太高,所以要采用高效簡單的處理算法。本文中使用實際工程中廣泛應(yīng)用的加權(quán)融合算法[10],假設(shè)曝光次數(shù)設(shè)置為N,則有M1 ,M2 ,…,Ms(S≤N)幅圖像,而每幅圖像中對應(yīng)像素點的數(shù)值為XL/Fi,i∈{1,2,…,S},L∈{1,2,…,1280}, F∈{1,2,…,960},其中i表示第幾幅圖像,L表示行像素位置,F(xiàn)表示列像素位置。加權(quán)融合算法的核心思想是:兼顧每幅圖像的相同像素位置的數(shù)值,按照一定的原則給每幅圖像定制加權(quán)因子,最后加權(quán)綜合所有的圖像數(shù)據(jù)得到一副新的圖像。設(shè)各幅圖像M1 ,M2 ,…,Ms 的加權(quán)因子分別為W1 ,W2 ,…,Ws ,則融合后的值和加權(quán)因子滿足式(3)。而在實際應(yīng)用中,加權(quán)因子不容易確定,通常選用數(shù)字平均的方式,即每幅圖像的加權(quán)因子近似相等,此時融合后的^x值為式(4)所示。整個加權(quán)融合算法流程圖如圖7所示,作為圖像傳輸和處理系統(tǒng)的FPGA接收到曝光次數(shù)的參數(shù)設(shè)置以及開始采集的命令以后,先采集一幀的圖像數(shù)據(jù),然后將數(shù)據(jù)存儲在外圍的SDRAM中,并判斷是否按要求采集完所有的圖像,當(dāng)采集完以后,從每一幀的第1行第1個像素開始讀出數(shù)據(jù),然后利用公式(4)計算出融合后的像素的數(shù)值,并存儲在FPGA中,同時行像素計數(shù)加1,當(dāng)行像素計滿1280時,表示一行數(shù)據(jù)已經(jīng)讀取完畢,此時列像素計數(shù)加1,當(dāng)列像素計滿960時,表明所有圖像的數(shù)據(jù)都已經(jīng)融合完畢,F(xiàn)PGA將處理完的圖像數(shù)據(jù)發(fā)送到上位機(jī)予以顯示。
4 結(jié)論
系統(tǒng)測試使用手在鏡頭前快速劃過,設(shè)置曝光次數(shù)為2次,曝光時間為30毫秒,經(jīng)過編碼相機(jī)的多次曝光處理以后的圖像如圖8所示。由圖8可以看出,圖像傳輸幀率為13Frame/S,圖像信號的輸出的速率為116Mbps,圖像模糊尺度為54個像素,屬于典型的物體運(yùn)動模糊,本系統(tǒng)所做相機(jī)可以作為編碼曝光技術(shù)所用相機(jī)。