文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.183311
中文引用格式: 楊魯新,,董文博. 高幀頻視覺實(shí)時(shí)目標(biāo)檢測系統(tǒng)[J].電子技術(shù)應(yīng)用,,2019,45(4):109-112,,117.
英文引用格式: Yang Luxin,,Dong Wenbo. High-frame-rate visual real-time target detection system[J]. Application of Electronic Technique,2019,,45(4):109-112,,117.
0 引言
基于機(jī)器視覺的智能目標(biāo)檢測系統(tǒng)應(yīng)用非常廣泛,,尤其在航天軍工等領(lǐng)域中,經(jīng)常涉及高速目標(biāo)的實(shí)時(shí)檢測和控制,,對(duì)目標(biāo)檢測的智能性和實(shí)時(shí)性提出了更嚴(yán)格的要求,。在這種應(yīng)用中,,視覺系統(tǒng)相對(duì)雷達(dá)、聲納具有信息量大,、抗干擾能力強(qiáng),、軟件處理靈活、體積重量小,、成本低等特點(diǎn),,但缺點(diǎn)是傳輸和處理需要的時(shí)間更多,因此很難滿足圖像信息傳輸和處理的實(shí)時(shí)性要求,。
高速相機(jī)一般通過GigE,、Camera Link、USB3.0等接口將圖像采集后傳輸?shù)綀D像處理器上,,這種方式把大量時(shí)間消耗到信息傳輸通道,。為了解決這個(gè)問題,最好的方式是直接在近端對(duì)傳感器芯片采集的圖像進(jìn)行處理,。FPGA憑借其硬件并行運(yùn)算的優(yōu)勢,,越來越多地應(yīng)用于高速相機(jī)以及高速運(yùn)動(dòng)檢測系統(tǒng)中,極大地提高了圖像處理速度,,保證了系統(tǒng)的高速,、實(shí)時(shí)性與準(zhǔn)確性[1-6]。通過FPGA對(duì)圖像傳感器進(jìn)行近端處理,,可以做到采集圖像與智能處理同步進(jìn)行,。其最需要解決的問題是優(yōu)化智能算法,使得運(yùn)算更加簡單高效,,并占用更少的資源,。
目前很多學(xué)者正致力于高速視覺目標(biāo)檢測系統(tǒng)的研究。GU Q Y等人設(shè)計(jì)了2 000 f/s的高速智能相機(jī),,可以對(duì)目標(biāo)進(jìn)行智能實(shí)時(shí)監(jiān)測[7],。后又設(shè)計(jì)了高幀頻視頻拼接系統(tǒng),該系統(tǒng)運(yùn)用了改進(jìn)的基于特征的視頻拼接算法,,能夠?qū)崟r(shí)合成全景圖像,,幀率可達(dá)500 f/s[8]。麻省理工大學(xué)的CHEN J G等人通過高速攝像機(jī)(5 000 f/s)對(duì)懸臂梁上的目標(biāo)物體進(jìn)行位移測量實(shí)驗(yàn),,通過PC對(duì)數(shù)據(jù)進(jìn)行離線分析,,得到了與激光測振儀和加速度計(jì)測量相一致的振動(dòng)曲線。并且通過FFT算法對(duì)三組數(shù)據(jù)進(jìn)行頻域分析,,得出了各個(gè)共振頻率分量[9],。
本文以高幀頻與實(shí)時(shí)性作為研究的切入點(diǎn),設(shè)計(jì)了一種基于ZYNQ7000的高速相機(jī)平臺(tái),,充分利用芯片上的FPGA資源及其硬件并行的優(yōu)勢,,進(jìn)行目標(biāo)提取及質(zhì)心檢測算法的實(shí)現(xiàn)[10-14],。本文優(yōu)化了目標(biāo)檢測的FPGA算法,去掉中間緩存環(huán)節(jié),,以流水線結(jié)構(gòu)對(duì)圖像數(shù)據(jù)進(jìn)行實(shí)時(shí)流水處理,,提高了目標(biāo)檢測算法的處理效率,可以在每幀圖像采集后的有限個(gè)時(shí)鐘周期內(nèi)完成位置檢測運(yùn)算,,做到同步檢測,。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)可以實(shí)現(xiàn)560×480分辨率,、1 100 f/s、3像素精度的實(shí)時(shí)目標(biāo)檢測,。
1 硬件系統(tǒng)設(shè)計(jì)
1.1 系統(tǒng)組成
為了達(dá)到高速實(shí)時(shí)的要求,,本系統(tǒng)采用FPGA直接驅(qū)動(dòng)高速CMOS傳感器的方式,實(shí)現(xiàn)近端處理,。該檢測系統(tǒng)主要由FPGA主控單元,、CMOS圖像采集單元、多電源軌供電單元,、對(duì)外接口單元和光學(xué)成像單元幾部分構(gòu)成,,如圖1所示。
FPGA主控單元選用ZYNQ7020芯片,片上集成ARM硬核和FPGA資源,,ARM負(fù)責(zé)對(duì)CMOS傳感器進(jìn)行配置,,F(xiàn)PGA對(duì)獲取圖像進(jìn)行數(shù)據(jù)處理、目標(biāo)檢測算法實(shí)現(xiàn),、輸出圖像及位置信息,。
CMOS圖像采集單元選用Python300型灰度CMOS傳感器,該傳感器分辨率為640×480,,可以達(dá)到815 f/s的全分辨率輸出,,并可通過開窗(ROI)操作進(jìn)一步提高幀頻。
對(duì)外接口單元包括HDMI顯示接口,、串口,、JTAG接口等電路,實(shí)現(xiàn)圖像顯示、位置坐標(biāo)傳輸和調(diào)試下載等功能,。
1.2 硬件設(shè)計(jì)
該系統(tǒng)硬件電路設(shè)計(jì)為兩部分:FPGA主控板和高速底板,,二者通過規(guī)范化的高速連接器進(jìn)行互聯(lián)和信號(hào)傳輸。主控板選用成品高速FPGA核心板,,底板則采用4層PCB板設(shè)計(jì),,整合了CMOS電路、HDMI顯示電路,、電源電路,、串口電路等,。
底板設(shè)計(jì)主要是對(duì)上述各部分電路進(jìn)行合理布局布線。其中,,由于CMOS傳感器輸出的是低壓差分信號(hào)(Low Voltage Differential Signal,,LVDS),每路數(shù)據(jù)速率可以達(dá)到720 Mb/s,,設(shè)計(jì)時(shí)必須考慮信號(hào)完整性,。
布線時(shí)對(duì)該信號(hào)進(jìn)行了特殊的處理,嚴(yán)格遵循高速差分線的規(guī)則:每對(duì)差分線平行布線,,盡可能保持相同的最小距離,,且小于線寬;減少過孔次數(shù),;布線拐角大于90°,;差分阻抗控制在100 Ω,與差分信號(hào)接收端的100 Ω端接電阻相匹配,,減少信號(hào)的反射,;每組差分線布線長度盡可能保持一致;各組差分線之間保持較大距離,。
通過以上措施,,保證高速差分信號(hào)的信號(hào)完整性,以及各組信號(hào)較小的延遲差,。
2 軟件系統(tǒng)設(shè)計(jì)
軟件設(shè)計(jì)主要實(shí)現(xiàn)使能控制和寄存器配置兩種功能,。使能控制通過ARM處理器的IO操作控制CMOS的時(shí)鐘、供電,;寄存器配置是ARM通過SPI總線IP核與CMOS傳感器進(jìn)行通信,,對(duì)一些必要的寄存器進(jìn)行配置,主要包括窗口大小,、圖像深度,、運(yùn)行模式、圖像數(shù)據(jù)輸出等,。
通過配置CMOS內(nèi)部寄存器,,使CMOS傳感器輸出8 bit深度、560×480分辨率,、大于1 000 f/s的高速視頻流圖像,,經(jīng)LVDS接口傳輸至FPGA進(jìn)行數(shù)據(jù)處理及算法實(shí)現(xiàn)。
3 信號(hào)處理及檢測算法FPGA實(shí)現(xiàn)
3.1 目標(biāo)檢測原理
3.1.1 目標(biāo)提取
進(jìn)行目標(biāo)檢測,,首先需要將圖像中的目標(biāo)與背景區(qū)分并提取出來,。結(jié)合應(yīng)用場景,本系統(tǒng)選用背景差分法加閾值分割的方法對(duì)目標(biāo)進(jìn)行提取,。
首先獲取清晰穩(wěn)定的背景圖像,,然后將當(dāng)前幀圖像與背景圖像對(duì)應(yīng)像素值做差,,完成差分運(yùn)算。接著將差值與設(shè)定閾值進(jìn)行比較,,若大于閾值,,則判定為1,即運(yùn)動(dòng)前景,;反之為0,,即背景,生成二值化圖像,。
3.1.2 質(zhì)心檢測
本系統(tǒng)所要檢測的目標(biāo)為一球體,,進(jìn)行閾值分割之后的二值化圖像中,目標(biāo)表現(xiàn)為一個(gè)圓形亮斑,??紤]到目標(biāo)的特殊性,同時(shí)配合FPGA流水線結(jié)構(gòu)的特點(diǎn),,本文通過圓直徑檢測的方法,,找出X方向和Y方向上直徑所在直線的交叉點(diǎn),,從而確定圓心所在位置,。
具體方法如圖2所示:將二值化圖像每行的像素灰度值相加,相加之和兩兩比較,,在直徑所在的行上將會(huì)產(chǎn)生一個(gè)最大值,,該最大值所對(duì)應(yīng)的行數(shù)即視為圓心的Y坐標(biāo)。列方向上進(jìn)行相同操作也可得到X坐標(biāo),。
圓直徑檢測計(jì)算圓心的方法配合FPGA流水線結(jié)構(gòu),在讀取圖像的同時(shí)進(jìn)行處理和解算,,可以最大程度減少檢測延遲,提高實(shí)時(shí)性,。
3.2 FPGA邏輯設(shè)計(jì)
CMOS傳感器圖像數(shù)據(jù)的傳輸按照自左向右,、自下而上逐行進(jìn)行,每8個(gè)像素為一組,,稱為一個(gè)kernel,。由于目標(biāo)幀頻>1 000 f/s,每幀圖像更新的周期<1 ms,,而其中大部分時(shí)間用來獲取圖像,,無法在當(dāng)前幀周期內(nèi)完成圖像緩存和處理過程。
本系統(tǒng)充分利用FPGA并行運(yùn)算的特點(diǎn),,邏輯設(shè)計(jì)上采用三級(jí)流水線結(jié)構(gòu),,如圖3所示,并去除中間緩存環(huán)節(jié),,在讀取圖像的同時(shí)將每組數(shù)據(jù)直接送入流水線逐級(jí)進(jìn)行處理,。該流水線能夠同時(shí)處理三組數(shù)據(jù),,且每組中8個(gè)像素的操作也是同時(shí)的。如此,,圖像讀取和處理的過程同步進(jìn)行,,保證了數(shù)據(jù)處理的高效性與實(shí)時(shí)性。
三級(jí)流水線結(jié)構(gòu)對(duì)應(yīng)了目標(biāo)檢測的3個(gè)步驟,,邏輯設(shè)計(jì)如下:
(1)背景差分
在獲取當(dāng)前kernel值的同時(shí),,讀取背景幀中對(duì)應(yīng)地址的背景kernel值,將8個(gè)像素值同時(shí)對(duì)應(yīng)做差,,求得各像素位置的差值,,存入差值寄存器,輸入到下一級(jí)流水中,。隨后立即處理下一個(gè)kernel的像素,,直到讀完整幅圖像。
(2)閾值分割
差值寄存器更新后,,將8個(gè)像素差值與設(shè)定的閾值進(jìn)行對(duì)比,,大于閾值則二值化寄存器對(duì)應(yīng)位置像素賦值為最大值,反之則賦值為0,,結(jié)果輸入到下一級(jí)流水,。隨后進(jìn)行下一個(gè)kernel的分割。
(3)質(zhì)心檢測
質(zhì)心檢測邏輯分為兩個(gè)分支,,分別計(jì)算目標(biāo)質(zhì)心的X坐標(biāo)和Y坐標(biāo),。
計(jì)算X坐標(biāo)的邏輯中,設(shè)置560個(gè)列相加寄存器,,每當(dāng)二值化寄存器更新,,則將8個(gè)二值化像素值加入對(duì)應(yīng)列的列相加寄存器中。在讀取完整幀圖像時(shí),,比較各個(gè)列相加寄存器的值,,得到最大值及對(duì)應(yīng)列數(shù),即為X坐標(biāo),。
計(jì)算Y坐標(biāo)的邏輯中,,設(shè)置兩個(gè)寄存器,一個(gè)存儲(chǔ)當(dāng)前行像素值的和值,,另一個(gè)存儲(chǔ)行像素和值的最大值,。完成一行的讀取后,將和值寄存器值與最大和值寄存器的值作比較,,若大于最大和值,,則將最大和值更新為該行和值,并記錄此時(shí)的行數(shù);反之則保持最大和值及對(duì)應(yīng)行數(shù)不變,。當(dāng)讀取完一幀圖像后,,最大和值對(duì)應(yīng)的行數(shù)即為質(zhì)心的Y坐標(biāo)。
4 系統(tǒng)測試與結(jié)果分析
4.1 測試環(huán)境
通過光學(xué)平板固定相機(jī),,保持相機(jī)穩(wěn)定,;以白色A4紙作為背景,檢測目標(biāo)為一黑色碳球,;鏡頭為焦距6 mm的工業(yè)鏡頭,,鏡頭與目標(biāo)距離20 cm,測試時(shí)通過平板LED燈進(jìn)行補(bǔ)光,。測試主要分為精度測試,、速度測試。
4.2 精度測試
相機(jī)開啟后,,首先采集500幀圖像作為背景幀,。后將目標(biāo)固定于背景紙上,連續(xù)采樣10 000次,,測試單點(diǎn)采集精度,,并通過串口輸出目標(biāo)位置,繪制圖像,。實(shí)驗(yàn)重復(fù)10次,,測試結(jié)果如圖4所示,測試的單點(diǎn)精度典型值為3×3(像素),。
4.3 速度測試
4.3.1 幀率測試
當(dāng)相機(jī)運(yùn)行在8 bit深度,、560×480分辨率下,,其幀率理論值為1 164 f/s,。幀率大小通過以下方式進(jìn)行測試:將系統(tǒng)置于運(yùn)行模式,打開串口工具接收坐標(biāo)數(shù)據(jù),,同時(shí)進(jìn)行計(jì)時(shí),,通過一定時(shí)間內(nèi)接收的坐標(biāo)個(gè)數(shù)計(jì)算幀率。
實(shí)驗(yàn)結(jié)果如下:系統(tǒng)運(yùn)行10 s,,共接收11 871個(gè)坐標(biāo)數(shù)據(jù),,得到幀率測量值為1 187 f/s??紤]到計(jì)時(shí)誤差的因素,,可以得出,測量幀率與理論幀率基本一致,,滿足系統(tǒng)設(shè)計(jì)要求,。
4.3.2 運(yùn)動(dòng)測試
通過對(duì)目標(biāo)物體自由落體過程進(jìn)行檢測,來進(jìn)行系統(tǒng)運(yùn)動(dòng)測試,。目標(biāo)由靜止?fàn)顟B(tài)自由落下,,系統(tǒng)捕捉整個(gè)過程并將實(shí)時(shí)位置發(fā)送到串口,。通過對(duì)接收的位置坐標(biāo)進(jìn)行分析,得到圖5所示的運(yùn)動(dòng)軌跡圖以及圖6所示的Y軸方向位移-時(shí)間關(guān)系圖,。
由圖6可以看出,,位移曲線與理論曲線趨勢基本一致,且略小于理論值,。測試過程中,,目標(biāo)實(shí)際下落距離為60 mm,理論下落時(shí)間應(yīng)為0.11 s,。而實(shí)際測量中,,系統(tǒng)采集了140幀圖像,實(shí)際下落時(shí)間為0.12 s,,比理論時(shí)間長0.01 s,。
分析測試結(jié)果:首先應(yīng)當(dāng)考慮空氣阻力的因素對(duì)自由落體運(yùn)動(dòng)產(chǎn)生影響,導(dǎo)致加速度的值小于重力加速度,,進(jìn)而使位移量小于理論值,。另外,由圖5可以看出,,下落方向與Y坐標(biāo)方向并非完全重合,,存在X方向的位移,所以Y方向的位移小于預(yù)計(jì)值,??紤]到以上兩個(gè)因素的影響,可以認(rèn)為相機(jī)準(zhǔn)確檢測到了物體的高速運(yùn)動(dòng)過程,。
5 結(jié)論
本文研制了一套高幀頻視覺實(shí)時(shí)目標(biāo)檢測系統(tǒng),,從硬件設(shè)計(jì)、軟件配置,、FPGA算法實(shí)現(xiàn)分別進(jìn)行了介紹,。采用了FPGA近端直接進(jìn)行智能處理的策略,設(shè)計(jì)了流水線處理的結(jié)構(gòu),,極大地解決了高速智能視覺檢測系統(tǒng)的實(shí)時(shí)性問題,。最后對(duì)系統(tǒng)進(jìn)行了測試,結(jié)果表明,,系統(tǒng)實(shí)現(xiàn)了560×480分辨率,、1 100 f/s高速視頻流的實(shí)時(shí)目標(biāo)檢測,精度達(dá)到3個(gè)像素,。該系統(tǒng)可以應(yīng)用到各種高速檢測的場景中,,例如位移速度測量、振動(dòng)分析、高速目標(biāo)監(jiān)測與控制等,,后續(xù)工作將完善優(yōu)化算法,,提高檢測的精度,并從圓形目標(biāo)推廣到不規(guī)則目標(biāo),,提高背景變化時(shí)檢測的魯棒性,。
參考文獻(xiàn)
[1] 杜建寶,張祖鋒.基于FPGA的運(yùn)動(dòng)目標(biāo)檢測系統(tǒng)的設(shè)計(jì)[J].儀器儀表用戶,,2018(3):40-42.
[2] 王曉娟,,翟成瑞.基于FPGA聯(lián)合Sobel算法的實(shí)時(shí)圖像邊沿檢測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控制,2017,,25(1):34-37.
[3] 錢鋒,,楊名宇,李剛,,等.基于DSP+FPGA架構(gòu)的貓眼目標(biāo)快速檢測系統(tǒng)[J].光電子·激光,,2016(8):863-869.
[4] 溫杰,李錦明.基于FPGA的實(shí)時(shí)圖像邊沿檢測系統(tǒng)的實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,,2015,,41(10):65-67.
[5] 邵鵬,楊晨,,張晉敏.基于FPGA的自適應(yīng)閾值運(yùn)動(dòng)目標(biāo)檢測[J].應(yīng)用光學(xué),,2017,38(6):903-909.
[6] 張浩.低空目標(biāo)探測雷達(dá)高速目標(biāo)檢測與跟蹤技術(shù)研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué),,2016.
[7] ISHII I,,TATEBE T,GU Q Y,,et al.2000 fps real-time vision system with high-frame-rate video recording[C].Proceedings of IEEE International Conference on Robotics & Automation,,2010:1536-1541.
[8] OKUMURA K I,RAUT S,,GU Q Y,,et al.Real-time feature-based video mosaicing at 500 fps[C].IEEE/RSJ International Conference on Intelligent Robots and Systems.IEEE,,2014:2665-2670.
[9] CHEN J G,,WADHWA N,CHA Y J,,et al.Modal identification of simple structures with high-speed video using motion magnification[J].Journal of Sound & Vibration,,2015,345:58-71.
[10] 劉珂.基于ZYNQ的高速圖像采集處理平臺(tái)設(shè)計(jì)與驗(yàn)證[D].濟(jì)南:山東大學(xué),,2016.
[11] 王瑩,,高美鳳.基于FPGA的視頻圖像目標(biāo)檢測系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2017,26(6):98-102.
[12] 劉明.基于FPGA的紅外圖像識(shí)別與跟蹤系統(tǒng)[D].成都:電子科技大學(xué),,2016.
[13] 蘇峰,,凌清,高梅國.紅外小目標(biāo)實(shí)時(shí)檢測系統(tǒng)實(shí)現(xiàn)[J].激光與紅外,,2008,,38(8):826-829.
[14] 于帥.基于CMOS圖像傳感器的高速相機(jī)成像電路設(shè)計(jì)與研究[D].北京:中國科學(xué)院大學(xué),2014.
作者信息:
楊魯新1,,2,,董文博1
(1.中國科學(xué)院空間應(yīng)用工程與技術(shù)中心 中國科學(xué)院太空應(yīng)用重點(diǎn)實(shí)驗(yàn)室,北京100094,;
2.中國科學(xué)院大學(xué) 計(jì)算機(jī)與控制學(xué)院,,北京101408)