劉召慶,李 力,,董 冰,金偉其
〈系統(tǒng)與設(shè)計〉
基于FPGA的夏克-哈特曼探測器實時波前處理機
劉召慶1,李 力1,2,董 冰2,金偉其2
(1. 西安應(yīng)用光學研究所,陜西 西安 710065;2. 北京理工大學 光電學院,北京 100081)
夏克-哈特曼波前傳感器是目前自適應(yīng)光學系統(tǒng)中應(yīng)用最為廣泛的實時波前探測器。本文針對具有高分辨、高幀速、大規(guī)模子孔徑數(shù)的夏克-哈特曼傳感器,根據(jù)其波前處理計算量和實時性的要求,提出了一種基于現(xiàn)場可編程門陣列(FPGA,field-programmable gate array)的實時波前處理機結(jié)構(gòu)及波前斜率計算方法。該方法利用核心處理模塊重復利用的方式完成子孔徑內(nèi)光斑質(zhì)心的計算,并通過USB3.0將處理后的質(zhì)心數(shù)據(jù)實時傳輸給PC機。處理機以一片XILINX公司Kintex7-XC7K325T的FPGA作為處理芯片進行了設(shè)計,結(jié)果表明:該算法可對560幀/s的1020×1020圖像(580MB/s數(shù)據(jù)量),56×56子孔徑哈特曼傳感器,進行低延時實時光斑質(zhì)心計算,提高了系統(tǒng)的波前處理速度和整個自適應(yīng)光學系統(tǒng)的控制速度。
夏克-哈特曼探測器;實時波前處理機;FPGA
自適應(yīng)光學的基本思想是在光學系統(tǒng)中引入一個表面形狀可變的光學元件(波前校正器)和一個波前誤差傳感器,用波前傳感器測量出不斷變化的波前誤差,根據(jù)測量結(jié)果由控制系統(tǒng)控制波前校正器對波前誤差進行校正。如果這一過程足夠快,就可以用不斷變化的波前校正量來校正不斷變化的動態(tài)波前誤差。
夏克-哈特曼波前傳感器是目前自適應(yīng)光學系統(tǒng)中應(yīng)用最為廣泛的實時波前探測器。自適應(yīng)光學系統(tǒng)將夏克-哈特曼波前傳感器所測到的波前畸變信息轉(zhuǎn)化成校正器的控制信號,以實現(xiàn)自適應(yīng)光學系統(tǒng)的閉環(huán)控制。用于補償大氣湍流引入像差的天文自適應(yīng)光學系統(tǒng)的空間分辨力和時間分辨力應(yīng)分別與大氣相干長度和時間常數(shù)相匹配。優(yōu)秀觀測站址的大氣相干長度0和時間常數(shù)分別約十幾厘米和幾毫秒,隨著望遠鏡口徑的增大,要求自適應(yīng)光學系統(tǒng)有更多的子孔徑數(shù)。以直徑8m的望遠鏡為例,若0取15cm,則要求夏克-哈特曼傳感器在直徑方向上至少有53個子孔徑。由此給波前處理系統(tǒng)帶來的問題是計算量大、實時性要求高。為提高自適應(yīng)光學系統(tǒng)的控制帶寬,必須提高自適應(yīng)光學系統(tǒng)的波前采樣頻率和波前校正速度。在系統(tǒng)采樣頻率一定的情況下,波前處理系統(tǒng)的計算延時會直接影響系統(tǒng)的控制帶寬。在當前圖像幀結(jié)束的情況下,越早給出波前校正量越能更好地補償波前像差,實現(xiàn)準實時的波前校正。
2002年中科院光電所研制的2900Hz、61單元的波前處理機[1]共用17片DSP,計算延時為340ms;2011年中科院電子技術(shù)研究所研制的基于FPGA的22×22子孔徑波前斜率處理器[2]完成一幀所有子孔徑斜率計算的延遲時間為0.33ms;2015年中科院電子技術(shù)研究所研制的基于PC機的949個子孔徑的系統(tǒng)[3]進行2000 Hz的處理,處理延遲低于240ms;2016年中科院長春光機所研制的基于GPU的液晶自適應(yīng)光學系統(tǒng)的波前處理[4]斜率延時為18ms,其相機像素為240×240,幀率2000幀/s,40×40個子孔徑。以上夏克-哈特曼傳感器所產(chǎn)生的圖像數(shù)據(jù)大致在每秒100M像素數(shù)左右,現(xiàn)代的FPGA都可以在單周期內(nèi)完成波前斜率計算,因此只要FPGA運行在100MHz的時鐘頻率下都可以進行實時處理。面對自適應(yīng)光學對傳感器分辨率、幀率要求的不斷提高,夏克-哈特曼傳感器所產(chǎn)生的圖像數(shù)據(jù)大致在500M/s以上的像素數(shù),傳感器為達到傳輸帶寬的要求,都采用多通道(8~10通道)同時傳輸?shù)姆绞?,F(xiàn)PGA難以運行在如此高的時鐘頻率。
本文針對具有高分辨率(1020×1020),高幀速(560幀/s),大規(guī)模子孔徑數(shù)(56×56單元)的夏克-哈特曼傳感器,提出一種基于現(xiàn)場可編程門陣列(field-programmable gate array,F(xiàn)PGA)的實時波前處理機,在有效降低硬件資源的前提下,可在當前子孔徑數(shù)據(jù)進入FPGA后延遲10行完成當前子孔徑波前處理運算,提高了系統(tǒng)的波前處理速度。
夏克-哈特曼波前傳感器由微透鏡陣列和探測器組成,每個微透鏡對應(yīng)探測器上的一個子探測區(qū)。當以參考波前(近似平面波)入射到微透鏡陣列時,在探測區(qū)域形成近似等間距排列的光斑陣列,此時記下光斑質(zhì)心位置作為參考。當以畸變波前入射時,每個子透鏡對應(yīng)的光斑質(zhì)心位置相對參考光斑可能產(chǎn)生和兩個方向的移動,移動量即對應(yīng)于畸變波前在子孔徑內(nèi)的平均斜率。獲得畸變波前在子孔徑內(nèi)的平均斜率后,通過波前重構(gòu)算法(模式法或區(qū)域法)即可獲得波前相位。
圖1為夏克-哈特曼波前傳感器的工作原理。光波場被陣列透鏡分解成許多小孔徑光斑,這些小孔徑光斑匯聚到夏克-哈特曼探測器焦平面上。假定不同的子孔徑的光成像在探測器靶面的不同位置上,任意兩個子孔徑所產(chǎn)生的鄰近像點沒有重疊,這樣每個子孔徑在像平面上都對應(yīng)的一塊專用的成像面積。進入陣列透鏡的光束在探測器上形成一陣列衍射光斑。
圖1 夏克-哈特曼波前傳感器結(jié)構(gòu)
根據(jù)光斑質(zhì)心的定義可寫出離散采樣情況下光斑質(zhì)心的計算公式為:
式中:x和y分別為探測器各子孔徑位置坐標;I,j為第(,)個探測器像元灰度值。
在每一個子孔徑內(nèi)進行光斑質(zhì)心計算,可以得到參考波前質(zhì)心(c0,c0)和畸變波前質(zhì)心(c,c)。波前斜率g和g定義為信標光波在和方向的偏導數(shù)在該子孔徑上的平均,波前斜率和光斑質(zhì)心變化量滿足如下關(guān)系:
式中:為探測器像元尺寸;為子透鏡焦距。
綜上所述,夏克-哈特曼波前傳感器波前處理的核心為子孔徑內(nèi)光斑質(zhì)心的計算。
基于Kintex7-XC7K325T的FPGA實時波前處理機組成如圖2所示,夏克-哈特曼傳感器將實時采集的圖像數(shù)據(jù)發(fā)送給以FPGA為核心的自適應(yīng)光學波前處理機,F(xiàn)PGA處理完后將數(shù)據(jù)發(fā)送給上位機,同時上位機可以發(fā)送控制指令對處理機的參數(shù)進行控制。
圖2 處理機系統(tǒng)組成
夏克-哈特曼傳感器的FPGA處理硬件結(jié)構(gòu)如圖3所示。采用具有高幀速、大面陣CMOS探測器的EoSens CL型相機,在Camera Link Extended-Full傳輸模式下以1020×1020分辨率可實現(xiàn)560幀/s的幀率。為了傳輸高達4.4 Gbit/s的數(shù)據(jù),需要3對Camera Link數(shù)據(jù)鏈,因此處理機數(shù)據(jù)接收端采用3片DS90CR288MTD芯片將Camera Link數(shù)據(jù)轉(zhuǎn)成LVCMOS信號傳輸給FPGA。
本夏克-哈特曼傳感器微透鏡整列數(shù)為56×56,每個子孔徑在和方向上用8bit表示整數(shù)坐標位置,16bit表示小數(shù)坐標位置,則每秒至少需要傳輸560×56×56×2×24=84295680bit數(shù)據(jù),大大超過了通信常用的異步串行通信(RS232/422)的傳輸極限。因此在傳輸波前質(zhì)心數(shù)據(jù)時,本文采用Cypress公司CYUSB2014-BZXI與上位機間進行USB3.0數(shù)據(jù)傳輸(USB3.0的最大速率5Gbit),為了降低USB數(shù)據(jù)傳輸開發(fā)復雜性,本文將USB3.0傳輸設(shè)置為單向傳輸,上位機與波前處理質(zhì)心計算系統(tǒng)的控制由RS422完成。
夏克-哈特曼傳感器采用的EoSens CL相機工作在1020×1020分辨率,幀頻為560幀/s,采用Camera Link Extended-Full模式傳輸,像素時鐘為75MHz。每時鐘同時輸出10個像素,每個像素為8bit,共80bit,行有效周期為102個像素時鐘。其行時序如圖4所示(圖中每一個方塊代表一個像素,方塊中的數(shù)字表示像素的行方向坐標,T代表第個時鐘周期)。
如果實時將并行輸入的10個像素轉(zhuǎn)成串行的單個像素進行處理FPGA需要750MHz的處理時鐘,大大超過了FPGA能夠達到的最高時鐘,因此本文設(shè)計了一個行緩沖將高速多像素并行輸入的圖像數(shù)據(jù)變成低速像素為單位的串行的數(shù)據(jù)(如圖5所示),F(xiàn)PGA程序設(shè)計中將每一行數(shù)據(jù)按10個像素(80bit)75MHz時鐘頻率寫入兩個FIFO(64bit位寬和16bit位寬兩個FIFO組成一個80bit位寬的FIFO)中,再以1個像素(8bit)頻率FPGA(75MHz~200MHz,F(xiàn)PGA一般時鐘頻率)從FIFO中讀出,F(xiàn)IFO深度為128。每行數(shù)據(jù)的處理時間為1020個FPGA時鐘。
每一個質(zhì)心計算核心模塊如圖6所示,由一個如圖6的行緩沖FIFO和兩個乘法累加器分別進行子孔徑內(nèi)和方向的乘法運算及累加運算組成,質(zhì)心計算核心模塊將FIFO讀出點在對應(yīng)子孔徑參數(shù)進行運算。該運算為兩周期流水運算。質(zhì)心計算核心模塊將計算后該行對應(yīng)在子孔徑的3個乘積累計結(jié)果進行輸出。圖中YPos為當前質(zhì)心計算核心模塊處理行在整個圖像中的行位置,XPos為當前處理像素在整個圖像中的列位置,Sum輸出為質(zhì)心計算核心模塊處理完當前行后輸出的行像素值總和,IntgX為每一個子塊在行方向的乘法累加值,IntgY為每一個子塊在列方向的乘法累加值。
圖3 處理機硬件結(jié)構(gòu)圖
圖4 EoSens CMOS探測器一行像素輸出時序
圖5 行緩沖將10像素80bit輸入轉(zhuǎn)成串行1像素8bit
圖6 質(zhì)心計算核心模塊
質(zhì)心計算核心模塊工作在相機的像素時鐘頻率下(75MHz),相機行有效時間為lv時,質(zhì)心計算核心模塊需要10lv的時間來處理一行的數(shù)據(jù),因此一個質(zhì)心計算核心模塊是顯然不夠的,但是如果每一行都有一個質(zhì)心計算核心模塊會浪費大量的FPGA資源,甚至導致FPGA由于資源不夠而無法完成布局布線。為了滿足功能的需要又不造成FPGA資源的浪費,如圖7所示,本文采用核心模塊復用的質(zhì)心計算方法,設(shè)計了共10個質(zhì)心計算核心模塊,通過核心模塊選擇器分時復用使用這10個質(zhì)心計算核心模塊,實現(xiàn)質(zhì)心計算核心模塊的復用,減少FPGA資源的使用。
最終FPGA資源使用情況如圖8所示,F(xiàn)PGA資源使用中最重要的幾個指標LUT,F(xiàn)F,BRAM的使用量都在30%以下。
使用QuestaSim對圖9實際采集的夏克-哈特曼傳感器成像圖進行了仿真,仿真時序如圖10所示,每一行子孔徑質(zhì)心位置結(jié)果可以在當前子孔徑所有行均輸入后延時10行時間輸出,采用的EoSens CL型相機工作在1020×1020分辨率560幀時,行周期小于1/(560×1020)=1.75ms,因此本系統(tǒng)的計算輸出延遲小于17.5ms。同時將QuestaSim仿真結(jié)果與Matlab計算的結(jié)果進行了對比,結(jié)果一致。
圖7 質(zhì)心計算核心模塊復用
圖8 FPGA使用資源情況
表1將本文所采用的系統(tǒng)和方法與所查到文獻中其他處理系統(tǒng)與方法進行了比較,比較主要包括子孔徑的數(shù)量、傳感器的數(shù)據(jù)量和處理延時,本文所采用的系統(tǒng)和方法在子孔徑數(shù)量最多,數(shù)據(jù)量最大的情況下,也能夠?qū)⒀訒r控制得最小。
圖9 夏克-哈特曼傳感器成像圖
圖10 時序仿真結(jié)果
表1 處理能力比較
實驗系統(tǒng)光路如圖11所示。光纖耦合輸出激光光源(635nm)經(jīng)準直后通過分束鏡1垂直入射到變形鏡上。變形鏡用于產(chǎn)生畸變波前?;儾ㄇ霸诜质R2處分為兩路,一路用于夏克-哈特曼傳感器進行波前探測,一路用于檢測遠場光斑的變化。由于變形鏡的通光口徑一般大于哈特曼傳感器的探測區(qū)域尺寸,實驗系統(tǒng)采用透鏡組L3和L4將變形鏡出射的光進行縮束,焦距之比等于變形鏡口徑與哈特曼探測區(qū)域直徑之比。夏克-哈特曼傳感器獲得的光斑陣列圖像經(jīng)Cameralink接口發(fā)送給FPGA波前處理機進行實時質(zhì)心計算,質(zhì)心計算結(jié)果由上位機進行波前重構(gòu)后得到畸變波前分布。
圖11 實驗光路圖
目前夏克-哈特曼傳感器所用的高分辨率、高幀率探測器大多采用多通道并行傳輸?shù)姆绞讲拍軡M足自適應(yīng)光學所要求的高分辨率、高幀頻的需求,本文提出的一種基于FPGA的夏克-哈特曼波前處理機,采用核心模塊復用的質(zhì)心計算方法,兼顧了處理效率和FPGA資源的平衡,可以實時處理1020×1020分辨率、560幀/s圖像的成像器件和56×56子孔徑數(shù)微透鏡整列組成的夏克-哈特曼傳感器,數(shù)據(jù)輸出延遲小于17.5ms(10個行周期),而且FPGA資源占用率不到30%,由此推算用該FPGA至少可以處理圖像分辨率或圖像幀率增加1倍的哈特曼傳感器。
[1] 周璐春, 王春鴻, 李梅, 等. 基于FPGA技術(shù)的波前斜率處理方法[J]. 光電工程, 2002, 29(3): 28-31.
ZHOU Luchun, WANG Chunhong, LI Mei, et al. A wavefront slope processing method based on FPGA technique[J]., 2002, 29(3): 28-31
[2] 樊志華, 王春鴻, 姜文漢. 基于累加器的哈特曼-夏克波前斜率處理器[J]. 光學精密工程, 2011, 19(3): 501-507.
FAN Zhihua, WANG Chunhong, JIANG Wenhan. Accumulator -based wavefront slope processor for Shack-Hartmann sensors[J]., 2011, 19(3): 501-507.
[3] 陳善球, 劉超, 許冰, 等. 通用自適應(yīng)光學波前實時處理機的設(shè)計[J]. 中國激光, 2015, 42(12): 1212001
CHEN Shanqiu, LIU Chao, XU Bing, et al. Design of generic adaptive optics wave-front real-time processor[J]., 2015, 42(12): 1212001
[4] 李大禹. 基于多GPU的液晶自適應(yīng)光學波前處理器[J]. 液晶與顯示, 2016, 31(5): 491-496.
LI Dayu. Liquid crystal adaptive optics wavefront processor based on multi-GPU[J]., 2016, 31(5): 491-496.
[5] 賈建祿, 王建立, 趙金宇. 基于FPGA的自適應(yīng)光學系統(tǒng)波前處理機[J]. 光學精密工程, 2011, 19(8): 1716-1722.
JIA Jianlu, WANG Jianli, ZHAO Jinyu, et al. Adaptive optical wave-front processor based on FPGA[J]., 2011, 19(8): 1716-1722.
[6] Mauch S, Reger J. Real-time spot detection and ordering for a Shack-Hartmann wavefront sensor with a low-cost FPGA[J]., 2014, 63(10): 2379-2386.
[7] 王建立. 349單元自適應(yīng)光學波前處理器[J]. 光學精密工程, 2018, 26(5): 1007-1013.
WANG Jianli. Three hundred and forty-nine unit adaptive optical wave front processor[J]., 2018, 26(5): 1007-1013.
[8] Avinash Surendran, Mahesh P Burse, Ramaprakash A N, et al. Scalable platform for adaptive optics real-time control (SPARC) part 2: field programmable gate array (FPGA) implementation and performance[J].,,, 2018, 4(3): 039002.
Shack-Hartman Detector Real-time Wavefront Processor Based on FPGA
LIU Zhaoqing1,LI Li1,2,DONG Bing2,JIN Weiqi2
(1.,710065,; 2.,,100081,)
The Shack-Hartman wavefront sensor is the most widely used real-time wavefront detector in adaptive optics systems. In this study, a Shack-Hartmann sensor with high resolution, high frame rate, and a large-scale sub-aperture number is proposed. Based on the requirements of wavefront processing calculations and real-time performance, a field-programmable gate array (FPGA) is also proposed. The real-time wavefront processor structure and wavefront slope calculation method are investigated. The system employed the core processing module to reuse the method to calculate the centroid of the spot in the sub-aperture and transmitted the processed centroid data to the PC in real time through USB 3.0. The processor was designed with a XILINX Kintex7-325T FPGA processing chip. The results demonstrate that the algorithm can perform low-latency, real-time operations on 1020′1020 images and 56′56 sub-aperture Hartmann sensors at 560 frames per second. The spot centroid calculation increased the wavefront processing speed of the system and the control speed of the entire adaptive optics system.
Shack-Hartmann sensor,real-time wavefront detector,F(xiàn)PGA
TN219
A
1001-8891(2021)08-0717-06
2019-12-12;
2021-04-26.
劉召慶(1979-),男,研究員,主要研究方向為光電系統(tǒng)總體技術(shù)。E-mail:12134171@qq.com。
李力(1982-),男,講師,主要研究方向為數(shù)字圖像處理。E-mail:lili@bit.edu.cn。
國家自然基金(11874087)。