張維達,張甫愷,鄒 悅,張 秒
(中國科學院長春光學精密機械與物理研究所,吉林長春 130033)
目標跟蹤一直以來都是計算機視覺領域的關鍵問題,最近隨著人工智能技術的飛速發(fā)展,運動目標跟蹤問題得到了越來越多的關注[1]。目標跟蹤在圖像處理角度可定義為根據(jù)已知目標圖像位置預測后續(xù)所有影像中目標在圖像中的位置的過程[2]。在實驗室條件下獲得持續(xù)穩(wěn)定的多目標數(shù)字圖像較為困難,因此需要設計一套能夠模擬多個運動目標并實時輸出的多目標數(shù)字圖像模擬器[3]。Camera Link 接口作為高速相機最主要的標準接口之一,它的出現(xiàn)使得高速圖像源數(shù)據(jù)和圖像采集裝置之間的速度得到匹配[4],在目標跟蹤領域也有大量跟蹤器采用Camera Link 接口作為標準輸入接口。Camera Link串并芯片最高傳輸速率有限,是Camera Link數(shù)據(jù)傳輸系統(tǒng)的接口速率瓶頸之一[5],因此在多目標數(shù)字圖像模擬器的設計中,利用FPGA串并轉換接口替代傳統(tǒng)的接口轉換芯片,從而突破接口轉換芯片的傳輸速率限制,實現(xiàn)高幀頻數(shù)字圖像輸出。
為檢驗跟蹤器的跟蹤性能,模擬器中輸出的圖像目標的運動軌跡需要具有一定的隨機性。線性反饋移位寄存器(linear feedback shift register,LFSR)是一類隨機位序列生成器[6-7]。每個移動目標依據(jù)LFSR生成的具有隨機性質的數(shù)據(jù)序列,確定其下一幀的移動方向、移動距離,從而實現(xiàn)具有一定隨機性的運動軌跡。
設計一個通訊模塊,從圖像生產(chǎn)模塊中獲得每個運動目標在當前圖像中的位置信息并依次編號,按照約定的通訊協(xié)議,與帶有多個模擬目標的數(shù)字圖像同步輸出。圖像處理器接收帶有多個運動目標的數(shù)字圖像,并將多目標處理結果發(fā)送給后端的數(shù)據(jù)處理器。數(shù)據(jù)處理器同時接收當前圖像的多個目標的位置信息以及圖像處理器多目標處理結果,通過比較2組數(shù)據(jù),實現(xiàn)對多目標數(shù)字圖像處理器跟蹤性能以及處理延時的檢驗,整個系統(tǒng)的工作原理如圖1所示。
圖1 多目標數(shù)字圖像模擬器工作原理
多目標數(shù)字圖像模擬器的硬件主要由FPGA以及相應的外圍電路構成,主要包括FPGA、外部時鐘、FLASH存儲模塊、電源模塊等。其中外部時鐘負責給整個系統(tǒng)提供時鐘基準;FLASH存儲芯片負責存儲系統(tǒng)的程序數(shù)據(jù)文件并在每次上電時完成對FPGA的邏輯初始化工作;電源模塊負責為整個系統(tǒng)供電,并保證上電過程中不同電平的上電順序。在線調試接口即JTAG接口,能夠實現(xiàn)程序的燒錄及在線仿真。串行輸出接口采用接口芯片將FPGA輸出的TTL數(shù)字信號轉換為標準422差分信號,輸出給后端的數(shù)據(jù)處理器。Camera Link輸出接口采用標準的Full模式接口,包含Base和Medium/Full 2個獨立的MDR26物理接口,能夠實現(xiàn)最高6.8 Gbps的數(shù)字圖像數(shù)據(jù)輸出。整個系統(tǒng)的硬件組成原理框圖如圖2所示。
圖2 系統(tǒng)硬件組成
FPGA是整個系統(tǒng)的邏輯處理核心,其內部分為時鐘模塊、行/場信號生成模塊、背景生成模塊、隨機數(shù)生成模塊、目標軌跡規(guī)劃模塊、目標疊加模塊、Camera Link編碼模塊和串行輸出模塊。其中隨機數(shù)生成模塊和目標軌跡規(guī)劃模塊依據(jù)目標數(shù)量配置,每個運動目標均含有獨立的隨機數(shù)生成和軌跡規(guī)劃模塊。FPGA邏輯模塊框圖如圖3所示。
圖3 FPGA邏輯模塊框圖
時鐘模塊主要由系統(tǒng)內部PLL組成,其主要功能是接收外部40 MHz低速時鐘,經(jīng)過內部鎖相環(huán)鎖頻后,輸出驅動行/場信號模塊的像素時鐘以及隨機數(shù)生成模塊的驅動時鐘,時鐘模塊還為整個系統(tǒng)提供系統(tǒng)復位信號,是整個邏輯系統(tǒng)的基礎支撐模塊。
行/場信號生成模塊內部主要由定時計數(shù)器組成。計數(shù)器由像素時鐘驅動,每2.5 ms生成1個場信號起始脈沖,10個像素時鐘后,產(chǎn)生首行起始的脈沖信號。為了生成1 920×1 080分辨率的10 Tap/8 bit數(shù)字圖像,每個行有效信號應該持續(xù)192個像素時鐘周期,每個場有效信號持續(xù)時間內應包含1 080個行有效信號。同時行/場信號生成模塊還能夠同步輸出當前行/場信號對應的具體行數(shù)和每行的相對位置,為后續(xù)的背景生成模塊和目標疊加模塊提供目標疊加的位置依據(jù)。
隨機數(shù)生成模塊接收時鐘生成模塊的驅動時鐘,利用線性反饋移位寄存器生成32位隨機數(shù)。線性反饋移位寄存器的輸入為驅動時鐘、使能信號以及隨機數(shù)種子,輸出為32位隨機數(shù)。根據(jù)系統(tǒng)模擬的目標數(shù)N,設置N+1個相互獨立的隨機數(shù)生成模塊。模塊0產(chǎn)生的隨機數(shù)送入背景生成模塊,輸入時鐘為像素時鐘;模塊1~N產(chǎn)生的隨機數(shù)送入軌跡規(guī)劃模塊,輸入時鐘為與場信號同步的控制時鐘。
背景生成模塊在行/場信息有效的情況下,對數(shù)字圖像信息進行充填,為了保證目標對比度,每個像素的低3位采用隨機數(shù)生成器生成的隨機數(shù)充填,高5位置0。
軌跡規(guī)劃模塊接收隨機數(shù)生成模塊產(chǎn)生的隨機數(shù)據(jù)。將接收的隨機數(shù)的數(shù)值分為4個區(qū)間,每個區(qū)間分別對應目標的上、下、左、右4個移動方向。移動的步長由隨機數(shù)序列的低4位決定,保證每次移動的最大距離不超過15像素。為保證運動目標一直在有效區(qū)域內,設計了一個目標運動限制區(qū),達到限制區(qū)域的運動目標被強制改變?yōu)橄驁D像中心運動。
目標疊加模塊同時接收多個軌跡規(guī)劃模塊輸出目標的中心位置,并將中心位置及其周圍15像素范圍內的數(shù)字圖像替換為目標圖像,所有目標的圖像替換同步進行,從而實現(xiàn)多目標數(shù)字圖像的模擬功能。
串行輸出模塊從目標疊加模塊中獲取當前全部移動目標的中心位置的坐標,每個坐標包含x方向,y方向數(shù)據(jù),共計4 byte。將其10個目標的40 byte數(shù)據(jù)依次存儲在FIFO中,以當前數(shù)字圖像場信號的上升沿作為串口發(fā)送的觸發(fā)條件,依照約定的通訊協(xié)議向外發(fā)送。通過接口芯片將FPGA發(fā)出的TTL電平信號轉換為標準422串行數(shù)字信號。
Camera Link數(shù)字圖像輸出采用帶寬利用率最高的Full-80bit模式進行,采用2個標準Camera Link物理接口Base接口和Medium/Full共用接口。每個接口包含4路數(shù)據(jù)差分信號,采用7∶1的串并轉換比,將7 bit的并行信號轉換為1路串行信號,每組信號在單個像素時鐘周期內傳輸?shù)臄?shù)據(jù)總數(shù)為28 bit。標準的Camera Link協(xié)議中,28 bit數(shù)據(jù)中的第25位為數(shù)字圖像場信號Fval,第24位為數(shù)字圖像行有效信號Lval,第26位為數(shù)據(jù)有效信號Dval。Base、Medium和Full 3組差分信號的定義完全相同,因此整個傳輸通道的有效帶寬利用率為25/28=89.28%。在Camera Link Full-80bit傳輸模式下,Base差分對中保留第24位、25位作為數(shù)字圖像數(shù)據(jù)的行有效信號、場有效信號,Medium和Full差分對中僅保留第27位作為行有效信號,整個傳輸通道不再保留數(shù)據(jù)有效信號,從而使得有效帶寬利用率提升為(26+27+27)/84=95.24%。
多目標數(shù)字圖像模擬器采用Vivado軟件平臺開發(fā),平臺具有事前仿真和實時在線仿真2種仿真驗證工具,其中實時在線仿真工具包為ILA在線仿真工具。ILA在線仿真工具在Synthesis階段后,通過添加ILA內核實現(xiàn)信號的在線仿真、觀測。ILA內核具有較高的靈活性,能夠自由選擇觀測信號的種類、數(shù)量以及參考時鐘,設計過程中可以部署多個ILA內核以實現(xiàn)對不同時鐘域信號的觀測。
為了驗證數(shù)字圖像的畫幅完整性,需要對數(shù)字圖像的行、場信號進行觀測。根據(jù)Camera Link Full-80bit協(xié)議,Base通道第25位為場信號Fval,Meidum通道的第27位為行有效信號Lval,將2個信號以及行、場計數(shù)器同時加入觀測信號,設置觸發(fā)條件為場信號Fval的下降沿。多目標數(shù)字圖像的行、場信號在線仿真時序圖如圖4所示。通過觀察行、場計數(shù)器可以知道,此時數(shù)字行數(shù)為1 080行,每行的持續(xù)時間為192個像素時鐘周期。由于Full-80 bit模式下,每個像素時鐘周期內能夠同時傳輸10 tap數(shù)字圖像,因此每行能夠輸出的數(shù)字圖像數(shù)據(jù)為1 920像素,在線仿真結果滿足數(shù)字圖像模擬器設計要求。
圖4 行、場信號在線仿真時序圖
對隨機數(shù)生成模塊0使用的線性反饋移位寄存器輸出進行在線仿真觀測,數(shù)據(jù)觀測時鐘為像素時鐘,單次采樣數(shù)據(jù)總量為1 024。將采集觀測的隨機數(shù)據(jù)依據(jù)數(shù)值大小轉換為圖形數(shù)據(jù),如圖5所示。通過觀測數(shù)據(jù)波形可以看到模塊0輸出的數(shù)據(jù)具有一定的隨機性,滿足背景生成模塊和軌跡規(guī)劃模塊的數(shù)據(jù)需求。
圖5 隨機數(shù)生成模塊輸出波形圖
采用Xtium-CL MX4采集卡作為多目標數(shù)字圖像模擬器輸出數(shù)字圖像的采集終端。將采集卡設置為10tap-8bit采集模式,通過Sapera CamExpert實時監(jiān)控軟件可以觀察到當前數(shù)字圖像的幀頻為400 Hz,如圖6所示,數(shù)字圖像的采集分辨率為1 920×1 080,可以觀察到共有10個移動的數(shù)字圖像目標分布在整個圖像區(qū)域內。通過Pixel Viewer工具檢查圖像中背景的像素值,如圖7所示,可以觀察到數(shù)字圖像的背景灰度值由無規(guī)律的數(shù)字充填,充填的最大值為7。
(a)實時采集圖1
(b)實時采集圖2圖6 多目標數(shù)字圖像采集圖
圖7 背景充填像素數(shù)值分布圖
設計了基于FPGA的多目標數(shù)字圖像模擬器,能夠在Camera Link Full-80bit模式下,以85 MHz的像素時鐘輸出分辨率為1 920×1 080的數(shù)字圖像,輸出最高幀頻為400 Hz的數(shù)字圖像。圖像具有通過線性反饋移位寄存器LFSR生成的具有隨機噪聲的背景和10個軌跡具有一定隨機性的運動目標。通過FPGA在線仿真,可以觀察到多目標數(shù)字圖像模擬器生成的數(shù)字圖像能夠達到預期的數(shù)字圖像分辨率和幀頻,隨機數(shù)生成器工作正常。通過高速數(shù)字圖像采集卡采集并顯示高速數(shù)字圖像,驗證了數(shù)字圖像的完整性以及運動目標軌跡的隨機性。