基于機器視覺的智能目標檢測系統應用非常廣泛,尤其在航天軍工等領域中,經常涉及高速目標的實時檢測和控制,對目標檢測的智能性和實時性提出了更嚴格的要求。在這種應用中,視覺系統相對雷達、聲納具有信息量大、抗干擾能力強、軟件處理靈活、體積重量小、成本低等特點,但缺點是傳輸和處理需要的時間更多,因此很難滿足圖像信息傳輸和處理的實時性要求。
高速相機一般通過GigE、Camera Link、USB3.0等接口將圖像采集后傳輸到圖像處理器上,這種方式把大量時間消耗到信息傳輸通道。為了解決這個問題,最好的方式是直接在近端對傳感器芯片采集的圖像進行處理。FPGA憑借其硬件并行運算的優勢,越來越多地應用于高速相機以及高速運動檢測系統中,極大地提高了圖像處理速度,保證了系統的高速、實時性與準確性。通過FPGA對圖像傳感器進行近端處理,可以做到采集圖像與智能處理同步進行。其最需要解決的問題是優化智能算法,使得運算更加簡單高效,并占用更少的資源。
目前很多學者正致力于高速視覺目標檢測系統的研究。GU Q Y等人設計了2 000 f/s的高速智能相機,可以對目標進行智能實時監測。后又設計了高幀頻視頻拼接系統,該系統運用了改進的基于特征的視頻拼接算法,能夠實時合成全景圖像,幀率可達500 f/s。麻省理工大學的CHEN J G等人通過高速攝像機(5 000 f/s)對懸臂梁上的目標物體進行位移測量實驗,通過PC對數據進行離線分析,得到了與激光測振儀和加速度計測量相一致的振動曲線。并且通過FFT算法對三組數據進行頻域分析,得出了各個共振頻率分量。
本文以高幀頻與實時性作為研究的切入點,設計了一種基于ZYNQ7000的高速相機平臺,充分利用芯片上的FPGA資源及其硬件并行的優勢,進行目標提取及質心檢測算法的實現。本文優化了目標檢測的FPGA算法,去掉中間緩存環節,以流水線結構對圖像數據進行實時流水處理,提高了目標檢測算法的處理效率,可以在每幀圖像采集后的有限個時鐘周期內完成位置檢測運算,做到同步檢測。實驗結果表明,該系統可以實現560×480分辨率、1 100 f/s、3像素精度的實時目標檢測。
1 硬件系統設計
1.1 系統組成
為了達到高速實時的要求,本系統采用FPGA直接驅動高速CMOS傳感器的方式,實現近端處理。該檢測系統主要由FPGA主控單元、CMOS圖像采集單元、多電源軌供電單元、對外接口單元和光學成像單元幾部分構成,如圖1所示。
FPGA主控單元選用ZYNQ7020芯片,片上集成ARM硬核和FPGA資源,ARM負責對CMOS傳感器進行配置,FPGA對獲取圖像進行數據處理、目標檢測算法實現、輸出圖像及位置信息。
CMOS圖像采集單元選用Python300型灰度CMOS傳感器,該傳感器分辨率為640×480,可以達到815 f/s的全分辨率輸出,并可通過開窗(ROI)操作進一步提高幀頻。
對外接口單元包括HDMI顯示接口、串口、JTAG接口等電路,實現圖像顯示、位置坐標傳輸和調試下載等功能。
1.2 硬件設計
該系統硬件電路設計為兩部分:FPGA主控板和高速底板,二者通過規范化的高速連接器進行互聯和信號傳輸。主控板選用成品高速FPGA核心板,底板則采用4層PCB板設計,整合了CMOS電路、HDMI顯示電路、電源電路、串口電路等。
底板設計主要是對上述各部分電路進行合理布局布線。其中,由于CMOS傳感器輸出的是低壓差分信號(Low Voltage Differential Signal,LVDS),每路數據速率可以達到720 Mb/s,設計時必須考慮信號完整性。
布線時對該信號進行了特殊的處理,嚴格遵循高速差分線的規則:每對差分線平行布線,盡可能保持相同的最小距離,且小于線寬;減少過孔次數;布線拐角大于90°;差分阻抗控制在100 Ω,與差分信號接收端的100 Ω端接電阻相匹配,減少信號的反射;每組差分線布線長度盡可能保持一致;各組差分線之間保持較大距離。
通過以上措施,保證高速差分信號的信號完整性,以及各組信號較小的延遲差。
2 軟件系統設計
軟件設計主要實現使能控制和寄存器配置兩種功能。使能控制通過ARM處理器的IO操作控制CMOS的時鐘、供電;寄存器配置是ARM通過SPI總線IP核與CMOS傳感器進行通信,對一些必要的寄存器進行配置,主要包括窗口大小、圖像深度、運行模式、圖像數據輸出等。
通過配置CMOS內部寄存器,使CMOS傳感器輸出8 bit深度、560×480分辨率、大于1 000 f/s的高速視頻流圖像,經LVDS接口傳輸至FPGA進行數據處理及算法實現。
3 信號處理及檢測算法FPGA實現
3.1 目標檢測原理
3.1.1 目標提取
進行目標檢測,首先需要將圖像中的目標與背景區分并提取出來。結合應用場景,本系統選用背景差分法加閾值分割的方法對目標進行提取。
首先獲取清晰穩定的背景圖像,然后將當前幀圖像與背景圖像對應像素值做差,完成差分運算。接著將差值與設定閾值進行比較,若大于閾值,則判定為1,即運動前景;反之為0,即背景,生成二值化圖像。
3.1.2 質心檢測
本系統所要檢測的目標為一球體,進行閾值分割之后的二值化圖像中,目標表現為一個圓形亮斑。考慮到目標的特殊性,同時配合FPGA流水線結構的特點,本文通過圓直徑檢測的方法,找出X方向和Y方向上直徑所在直線的交叉點,從而確定圓心所在位置。
具體方法如圖2所示:將二值化圖像每行的像素灰度值相加,相加之和兩兩比較,在直徑所在的行上將會產生一個最大值,該最大值所對應的行數即視為圓心的Y坐標。列方向上進行相同操作也可得到X坐標。
圓直徑檢測計算圓心的方法配合FPGA流水線結構,在讀取圖像的同時進行處理和解算,可以最大程度減少檢測延遲,提高實時性。
3.2 FPGA邏輯設計
CMOS傳感器圖像數據的傳輸按照自左向右、自下而上逐行進行,每8個像素為一組,稱為一個kernel。由于目標幀頻》1 000 f/s,每幀圖像更新的周期《1 ms,而其中大部分時間用來獲取圖像,無法在當前幀周期內完成圖像緩存和處理過程。
本系統充分利用FPGA并行運算的特點,邏輯設計上采用三級流水線結構,如圖3所示,并去除中間緩存環節,在讀取圖像的同時將每組數據直接送入流水線逐級進行處理。該流水線能夠同時處理三組數據,且每組中8個像素的操作也是同時的。如此,圖像讀取和處理的過程同步進行,保證了數據處理的高效性與實時性。
三級流水線結構對應了目標檢測的3個步驟,邏輯設計如下:
(1)背景差分
在獲取當前kernel值的同時,讀取背景幀中對應地址的背景kernel值,將8個像素值同時對應做差,求得各像素位置的差值,存入差值寄存器,輸入到下一級流水中。隨后立即處理下一個kernel的像素,直到讀完整幅圖像。
(2)閾值分割
差值寄存器更新后,將8個像素差值與設定的閾值進行對比,大于閾值則二值化寄存器對應位置像素賦值為最大值,反之則賦值為0,結果輸入到下一級流水。隨后進行下一個kernel的分割。
(3)質心檢測
質心檢測邏輯分為兩個分支,分別計算目標質心的X坐標和Y坐標。
計算X坐標的邏輯中,設置560個列相加寄存器,每當二值化寄存器更新,則將8個二值化像素值加入對應列的列相加寄存器中。在讀取完整幀圖像時,比較各個列相加寄存器的值,得到最大值及對應列數,即為X坐標。
計算Y坐標的邏輯中,設置兩個寄存器,一個存儲當前行像素值的和值,另一個存儲行像素和值的最大值。完成一行的讀取后,將和值寄存器值與最大和值寄存器的值作比較,若大于最大和值,則將最大和值更新為該行和值,并記錄此時的行數;反之則保持最大和值及對應行數不變。當讀取完一幀圖像后,最大和值對應的行數即為質心的Y坐標。
4 系統測試與結果分析
4.1 測試環境
通過光學平板固定相機,保持相機穩定;以白色A4紙作為背景,檢測目標為一黑色碳球;鏡頭為焦距6 mm的工業鏡頭,鏡頭與目標距離20 cm,測試時通過平板LED燈進行補光。測試主要分為精度測試、速度測試。
4.2 精度測試
相機開啟后,首先采集500幀圖像作為背景幀。后將目標固定于背景紙上,連續采樣10 000次,測試單點采集精度,并通過串口輸出目標位置,繪制圖像。實驗重復10次,測試結果如圖4所示,測試的單點精度典型值為3×3(像素)。
4.3 速度測試
4.3.1 幀率測試
當相機運行在8 bit深度、560×480分辨率下,其幀率理論值為1 164 f/s。幀率大小通過以下方式進行測試:將系統置于運行模式,打開串口工具接收坐標數據,同時進行計時,通過一定時間內接收的坐標個數計算幀率。
實驗結果如下:系統運行10 s,共接收11 871個坐標數據,得到幀率測量值為1 187 f/s。考慮到計時誤差的因素,可以得出,測量幀率與理論幀率基本一致,滿足系統設計要求。
4.3.2 運動測試
通過對目標物體自由落體過程進行檢測,來進行系統運動測試。目標由靜止狀態自由落下,系統捕捉整個過程并將實時位置發送到串口。通過對接收的位置坐標進行分析,得到圖5所示的運動軌跡圖以及圖6所示的Y軸方向位移-時間關系圖。
由圖6可以看出,位移曲線與理論曲線趨勢基本一致,且略小于理論值。測試過程中,目標實際下落距離為60 mm,理論下落時間應為0.11 s。而實際測量中,系統采集了140幀圖像,實際下落時間為0.12 s,比理論時間長0.01 s。
分析測試結果:首先應當考慮空氣阻力的因素對自由落體運動產生影響,導致加速度的值小于重力加速度,進而使位移量小于理論值。另外,由圖5可以看出,下落方向與Y坐標方向并非完全重合,存在X方向的位移,所以Y方向的位移小于預計值。考慮到以上兩個因素的影響,可以認為相機準確檢測到了物體的高速運動過程。
5 結論
本文研制了一套高幀頻視覺實時目標檢測系統,從硬件設計、軟件配置、FPGA算法實現分別進行了介紹。采用了FPGA近端直接進行智能處理的策略,設計了流水線處理的結構,極大地解決了高速智能視覺檢測系統的實時性問題。最后對系統進行了測試,結果表明,系統實現了560×480分辨率、1 100 f/s高速視頻流的實時目標檢測,精度達到3個像素。該系統可以應用到各種高速檢測的場景中,例如位移速度測量、振動分析、高速目標監測與控制等,后續工作將完善優化算法,提高檢測的精度,并從圓形目標推廣到不規則目標,提高背景變化時檢測的魯棒性。
責任編輯:gt
評論
查看更多