鄭西點, 袁浩巍, 嚴佳玲, 陳 辰, 徐 胤, 陳 忠
1. 庫卡機器人制造(上海)有限公司 上海 201614
2. 上海電氣集團股份有限公司 中央研究院 上海 200070
基于CMOS+FPGA的高速視覺實時定位與跟蹤系統
鄭西點1,袁浩巍2,嚴佳玲2,陳辰2,徐胤2,陳忠2
1. 庫卡機器人制造(上海)有限公司上海201614
2. 上海電氣集團股份有限公司 中央研究院上海200070
摘要:針對機器視覺系統的高速與實時性需求,開發了一種基于CMOS和FPGA技術的高速視覺實時定位與跟蹤系統。系統選用CMOS高速工業相機,經Camera link接口與信號轉接子卡,實現1000幀/s的圖像采集與傳輸。高性能FPGA板卡接收圖像數據(帶寬3.9 Gbit/s)并完成預處理后,由移植到FPGA板卡上的圖像處理算法實時提取目標特征、計算目標的位置坐標,整個處理算法的周期為1ms。在特制的驗證平臺上,高速云臺搭載視覺系統完成了對快速運動目標的實時定位與主動跟蹤實驗。
關鍵詞:高速機器視覺; CMOS高速相機; FPGA板卡; 定位; 主動跟蹤
Abstract:Aiming at the demand for high-speed and real-time machine vision systems, a high-speed and real-time visual positioning and tracking system was developed built on CMOS and FPGA technology. This system selected CMOS high-speed industrial camera to achieve 1000 frames/s image acquisition and transmission via the camera link interface and signal adapter board. After a high-performance FPGA board received the image data (bandwidth 3.9 Gbit/s) and completed the pre-treatment by the image processing algorithms transplanted to FPGA board could extract the target signature in real-time, calculate position coordinates of the target, the entire cycle period of the processing algorithms is 1 ms only. In a tailor-made verification platform, the high-speed pan and tilt head equipped with vision system completa an experiment for real-time positioning and active tracking of fast-moving targets.
Key Words:High Speed Machine Vision; CMOS High-speed Camera; FPGA Board; Positioning; Active Tracking
1概述
高速機器視覺系統在工業、軍事與科研領域應用廣泛,如激光焊接需要高速視覺系統對熔滴過渡和熔池形態進行實時、直觀的觀察與分析,繼而控制焊機穩定工作,提高焊縫成形的一致性。高速機器視覺的發展趨勢與需求是: 觀測范圍擴大、目標運動速度加快、實時性需求增強和檢測精度提高,隨之而來的是圖像采集量與傳輸量劇增、圖像處理的速度加快、處理的算法更高效。
高速機器視覺的采樣率在100MSPS(Million Samples Per Second,即每秒模數轉換器的采點數)以上,主要基于圖像的分辨率與采集幀頻。從這兩個指標看,目前的工業相機產品已能滿足采樣率要求,除了采樣頻率,高速機器視覺系統需解決的瓶頸問題有: 如何將海量的圖像數據實時地傳輸到處理單元;如何設計高效的圖像處理算法并能移植到處理單元,繼而快速得到處理結果。
近20年來,國內外不少高校和科研機構開展了對高速視覺實時定位與跟蹤系統的研究。東京大學Ishikawa實驗室在2000年推出了“1ms Column Parallel Vision System(CPV)”,此高速視覺系統包含一個128×128像素的圖像探測器PD(Photo Detector)陣列和一個處理單元PE (Processing Elements)陣列,每個PE單元并列地與每一個PD直接相連,將圖像數據的傳輸周期減小到1ms。CPV系統的圖像預處理采用了普遍的模糊化與邊緣檢測算法,在目標跟蹤中使用了濾波、自窗口與中心提取,簡單高效,確保在1ms內提取出跟蹤目標的中心特征信息。CPV系統顯著縮短了視覺反饋的周期,但每幀圖像分辨率小,限制視覺反饋覆蓋的范圍,且PD和PE都為定制,限制了該系統的通用性。
針對CPV系統的弱點,日本立命館大學的Shimizu等人在2006年推出了CMOS+FPGA視覺系統,專門用于機械系統的快速視覺反饋。其中,CMOS(Complementary Metal Oxide Semico-nductor)是一種成像傳感器,FPGA(Field-Program-mable GateArray)是現場可編程門陣列,該系統使用CMOS傳感器,實現了對圖像(256×256像素)高達1000Hz頻率的捕捉。同時,在FPGA芯片上移植了復雜的圖像處理算法(Matched Filter以及傅里葉變換和逆變換),在相同的頻率下完成對圖像特征信息的獲取,為后續視覺伺服控制提供反饋信息,整個系統只有在往控制系統傳送圖像特征信息時有5ms的延遲時間。
哈爾濱工業大學的孫春鳳等人于2007年開發了一種基于FPGA 和多DSP的多通道并行處理的高速視覺測量系統,其中DSP(Digital Signal Processor)是數字信號處理器,該系統在1280×1024分辨率情況下的圖像采集頻率為450幀/s。圖像處理系統通過對圖像數據進行圖像去噪、增強、邊緣檢測、目標提取等處理,從大量圖像數據中提取出被測運動目標的圖像幾何尺寸、位置及姿態等參數特征,通過接口電路將數據傳輸到決策系統或計算機中,并根據上述參數實現對運動目標的快速實時跟蹤。該系統充分利用了FPGA和DSP芯片在運算速度和數據處理方面的特點,在對大量圖像數據快速實時處理的速度上,已經取得很高的水準。
FPGA技術的發展,為大數據量的圖像傳輸與處理提供了新的解決思路和方法。上海電氣中央研究院于2014年開發了基于CMOS+FPGA的高速視覺實時定位與跟蹤系統,CMOS高速相機完成高達1000幀/s的圖像(分辨率: 816×600)采集,經由Camera link高速傳輸接口與信號轉接子卡,將圖像數據傳入高性能的FPGA板卡中。FPGA板卡移植了專門設計的圖像處理算法,可在1ms周期內完成了對快速運動目標的特征提取與坐標計算。驗證實驗表明,該高速視覺系統實現了對快速運動目標的實時定位與主動跟蹤。
通過對高速場景(1000幀/s)下的定位和跟蹤系統的研究,使該成果能夠在工業、軍事等領域得到應用。在此類場景中,泛用型的算法往往無法滿足時間效率、精度以及魯棒性等方面的要求,通常需要針對不同的場景設計不同的算法。選取最為常見的圓形物體作為定位和跟蹤的目標,驗證系統的可行性。在實際應用中,也可根據實際目標的不同對該部分算法進行調整,以達到更好的效果。
2高速視覺系統介紹
高速視覺系統的硬件組成包含CMOS高速工業相機、信號轉接子卡、FPGA板卡、PC機、高速云臺以及連接線纜,如圖1所示。

圖1 系統的基本架構
2.1.1CMOS高速工業相機
系統選用Optronis公司的CL600×2面陣CMOS工業相機作為圖像采集單元,如圖2(a)所示。它采用大像元設計,拍攝高速運動時圖像模糊少,輸出圖像為彩色Bayer格式。相機的傳輸接口為Camera link接口(圖2(b)),采用Full模式傳輸圖像數據,傳輸速率高達5.44 Gbit/s,即每個時鐘周期可同時發送8個像素點(每像素8 bits)的Bayer圖像數據信息(運行頻率為85MHz)。此外,Camera link傳輸接口還帶有離散控制差分信號和異步串行通信信號的通道,方便了上位機對相機的控制和通信設置。2.1.2FPGA板卡與信號轉接子卡

圖2 CL600×2面陣高速工業相機
綜合考慮視覺系統的處理數據量、處理速度、算法復雜度和接口需求,選用Xilinx的Zc706評估板(如圖3(a)所示)作為核心處理單元。Zc706在結構上分為處理器系統(PS)部分與可編程邏輯部分(PL)。PS部分包含ARM 雙核處理器,帶有1G的DDR3內存;PL部分包含FPGA芯片,1G的DDR3內存。充足的可編程邏輯資源,配合擅長實時處理的ARM硬核和豐富的可編程高速接口,使Zc706很適用于高頻高帶寬要求的圖像處理場合。Zc706將完成相機配置、圖像的DDR存儲與讀取、預處理、算法實現、處理結果的輸出等任務。

圖3 FPGA板卡與信號轉接子卡
解決海量數據傳輸問題的是Camera link-FMC信號轉接子卡,如圖3(b)所示,在硬件接口上,它實現了相機的Camera link接口與板卡的FMC接口連接。在功能上,它將相機圖像數據高速傳輸到Zc706的DDR內存中,同時接收相機配置參數并下傳給相機。
PC端搭載人機用戶界面,一方面幫助操作人員配置相機參數和其它參數,另一方面接收Zc706傳回的圖像處理結果,實時呈現系統的定位與跟蹤效果。高速采集的圖像流經抽幀操作,以60幀/s的速度通過HDMI接口和HDMI采集卡,顯示在PC端顯示器上。
2.1.3高速云臺
視覺系統屬于主動視覺系統,在實時定位與跟蹤目標過程中,相機位置和視野都隨伺服設備發生變化。由于沒有現成的滿足系統需求的高速伺服云臺,因此設計了由伺服電機驅動的高速伺服云臺,如圖4(a)所示,可實現回轉與俯仰自由度的高速運動。Zc706板卡經UART-FMC信號轉接子卡(圖4(b)),將控制指令發給電機驅動器,并接收電機編碼器的反饋信息,實現對高速伺服云臺的運動控制。系統的總體硬件框架及數據流方向如圖5所示。圖中,UART(Universal Asynchronous Recei-ver/Transmitter)是通用異步收發傳輸器,PL DDR3(Program Logic Double-Data-Rate Three Sync-hronous Dynamic Random Access Memory)是可編程邏輯同步動態隨機存取存儲器。

圖4 高速云臺與信號轉接子卡

圖5 系統總體硬件框架圖
設計高效的圖像處理與目標定位跟蹤算法,對高速視覺系統的實現舉足輕重。
目標定位算法相當于在霍夫變換逆過程的基礎上增加了固定方向梯度的計算,以提高系統魯棒性,在跟蹤問題中,能夠達到遠高于霍夫變換的時間效率。相比于傳統的RANSAC(Random Sample Consensus)方法,在定位精度和抗噪能力上都有一定優勢。RANSAC方法是根據一組包含異常數據的樣本數據集,計算出數據的數學模型參數,得到有效樣本數據的算法。在基于100張圖像的定位精度實驗中,提出的算法最大定位誤差在1像素以內,而RANSAC方法的平均誤差達到3.637像素,并且在一些有噪聲的圖像中偏差較大,如圖6所示。

圖6 RANSAC方法結果與本文算法結果比較
采用的目標定位算法在達到每秒處理1000幀的基礎上,實現了像素級的定位精度,并且對復雜的場景具備一定的適應能力。
2.2.1圖像預處理
預處理算法的輸入是Bayer格式的原始圖像數據,其中,Bayer格式是相機采集到的彩色圖像的格式,由Bryce Bayer發明。在Bayer格式圖像中,單一像素點的顏色只有紅(R)、綠(G)、藍(B)中的一種,如圖7所示為像素的顏色排列。Bayer格式無法直接用于算法,本系統主要采用形狀特征,不要求顏色,故選擇轉成灰度圖像進行后續處理。預處理算法將完成Bayer轉RGB以及RGB轉灰度的計算。

圖7 Bayer圖像的像素顏色排列
Bayer轉RGB選用最鄰近插值法,而單像素由RGB格式轉灰度格式過程可由下式計算得到:
Gray=R×0.299+G×0.587+B×0.114
(1)
式中:Gray為像素的灰度值。
2.2.2目標的定位
本系統需定位與跟蹤的目標為圓形目標,因此設計了基于圓擬合的定位算法,算法步驟如下。
① 對第一幀,在全圖范圍內搜索定位目標。對后續每幀,將根據上一幀的目標定位結果以及預計的運動速度,計算目標圓心的范圍,據此再對圖像進行開窗處理(ROI, Region of Interest)。
② 在ROI范圍內枚舉目標的位置和半徑,每一組圓心位置及半徑確定一個圓,將坐標集合計為:
(2)
式中:pi是圓心位置;N是圓心的個數。
③ 對圓周上像素的梯度值進行統計,得到各組圓的圓心半徑的權值:
(3)
式中:i=1,2,…,N;diri為圓周上點i應該取什么方向的梯度;d(pi,diri)為點pi的diri方向的梯度。
④ 選擇權值最大的一組圓心坐標和半徑作為定位與跟蹤結果。
2.2.3目標的跟蹤
上述過程將得到基于圖像坐標系{OfXfYfZf}的圓心坐標,后續的跟蹤需要通過坐標系轉換求出目標在世界坐標系{OwXwYwZw}下的坐標,繼而提供高速伺服云臺控制指令。圖8所示中定義的坐標系統有: 世界坐標系{OwXwYwZw}、相機坐標系{OcXcYcZc}、圖像坐標系{OfXfYfZf}、云臺末端坐標系{OeXeYeZe}。其中,云臺末端坐標系與相機坐標系及世界坐標系之間存在平移和轉換的關系,這里作為相機坐標系到世界坐標系轉換的中間坐標系。

圖8 坐標系統定義
坐標系轉換算法包括以下3個過程。
① 圖像坐標系轉到相機坐標系。將目標點的圖像坐標齊次化為[uuv1]T,它與目標點在相機坐標系下的表示[XcYcZc]T具有如下關系:
(4)
式中:fx、fy為相機在X和Y方向的等效焦距;u0、v0是光軸與圖像平面的交點坐標;fx、fy、u0、v0為攝像機內部參數,由相機標定過程得到。
② 相機坐標系轉到云臺末端坐標系。通過機器人手眼標定過程,可得到旋轉矩陣R和平移向量T,按式(5)可完成轉換。
(5)
③ 云臺末端坐標系轉到世界坐標系,這也是通過平移和旋轉變換實現的(見式6),其中旋轉矩陣R′可以根據云臺的回轉角Pan和俯仰角Tilt值得到。
(6)
設置云臺在回轉角Pan和俯仰角Tilt值為0時,云臺末端坐標系與世界坐標系是平行的,平移向量T′通過測量兩個坐標系原點間的距離得到。
以上三個過程疊加,將得到目標點在世界坐標系下的表示。
采用FPGA硬件實現上述圖像處理與定位跟蹤算法,過程如下。
2.3.1圖像格式轉化
此模塊主要選用最鄰近插值法,完成圖像從Bayer到RGB格式的轉化。實現代碼采用行緩沖加流水線的處理方式,針對奇偶行數據格式特點,將8位的Bayer格式實時轉換成標準的24位RGB數據,相機每時鐘周期并行處理8個像素。
RGB圖像到灰度轉化的處理是基于式(1)的,在FPGA中,為避免浮點運算和除法運算,并綜合考慮精度,進行了近似計算:
Gray=(R×76+G×151+B×28)?8
(7)
2.3.2灰度圖像的處理與梯度計算
此模塊利用灰度數據計算像素點的梯度,以服務于圓擬合定位算法。計算每個像素的梯度需要它的上一行和下一行數據,至少要暫存3行數據。為了使計算過程中后續的存灰度數據操作也能夠同時進行,多定義了一行的數據存儲空間。本模塊共使用4個行寄存器與行完成標志位,通過控制存儲過程,使數據從第一行到第四行依次循環存儲,精簡了存儲空間。
Sobel算子是圖像處理領域一種經典的邊緣檢測算子,筆者使用的梯度計算使用了這個算子。了解到目標在圖像邊緣出現的機會很少,只計算一定開窗范圍內像素的梯度,以節約存儲空間和縮短計算時間。
2.3.3圓擬合算法的實現
梯度數據被存入PL部分的RAM(Random Access Memory)中,以備后續使用。這里涉及到RAM的數據與對應的地址,故需要對地址有合理的規劃。按照圓擬合算法的步驟,在一幀圖像中逐行逐列掃描不同“圓”集合(式2定義)的梯度數據。為得到每個圓周上相應點的梯度值,就需要找到相應位置點在RAM中的存儲地址。算法會找到圓周上梯度和最大的圓,這個圓即目標圓,輸出其大小和位置坐標信息。
2.3.4坐標轉化與云臺控制
目標的大小和位置坐標信息將通過PL部分的GPIO(General Purpose Input Output,通用輸入輸出)模塊傳遞到ARM端進行處理。ARM端接收到信息后,進行圖像坐標到世界坐標的轉換,然后通過板卡的Uart Lite模塊,將處理結果轉成控制信號下傳給高速云臺,控制云臺跟蹤目標運動。
為驗證高速視覺系統對快速運動目標的實時定位與跟蹤能力,設計了2項驗證實驗。第一項實驗是定位并跟蹤旋轉圓盤上的圓形目標,如圖9(a)所示,黑色圓盤相對背景板作快速旋轉,而貼在圓盤邊緣(距圓心180mm)的白色圓形貼紙(外徑40mm)即為目標,云臺帶動相機定位白色圓形貼紙的圓心位置,并跟蹤其運動,使目標一直保持在視野的中央附近,相機的采集幀頻為1000幀/s(需要高亮LED補光),原始圖像分辨率為816×600像素,以保證相機視野能夠覆蓋整個黑色圓盤。第二項實驗是定位跟蹤顛球時上下運動的乒乓球,如圖9(b)所示,操作者在高速伺服云臺前方1.5m處進行顛球操作,云臺帶動CMOS工業相機,定位上下運動的乒乓球(最高速度3m/s)。由于人操作的隨意性,乒乓球運動軌跡不可預測,難度更大,相機的參數配置與第一項實驗相同。

圖9 驗證平臺與驗證試驗
視覺系統穩定運行時,圖像處理算法的運行周期為 1ms,即每隔 1ms 能得到快速運動目標的實時位置坐標信息,保證跟蹤的實時性。
表1展示了圖像幀數和算法處理次數的對比,紅色線框內數據表示跟蹤到目標時二者對應的數值,實線框外的數據表示未找到目標時二者對應的數值。未跟蹤到目標時,幀個數: 算法次數≈37∶1,即算法在整張圖片進行大區域搜索的時間,約為37ms;跟蹤到目標后,幀個數: 算法次數=1∶1,此時,算法是根據上一幀的定位結果以及預計的目標速度,得出目標圓心所在的范圍,再進行小區域搜索,處理周期為1ms。

表1 圖像幀計數與算法處理次數比較
定位與跟蹤的精度是高速視覺系統關注的另一個指標。在圖像坐標系上,目標圓心的定位誤差在1個像素以內。旋轉圓盤上的圓形目標定位效果如圖10所示,顛球中的乒乓球目標定位效果如圖11所示。而轉換到世界坐標系下,目標圓心的定位誤差為10mm內(物距為1.5m),由于實驗中引入了標定誤差以及機械誤差,定位精度仍有提高空間。

圖10 定位旋轉圓盤上的圓形目標

圖11 定位顛球中的乒乓球目標
由于目標識別算法誤差以及高速云臺的響應延遲,在實際跟蹤過程中,云臺的運動滯后于圓盤轉動,隨之相機光軸不能跟上目標中心,造成目標圓心偏移圖像中心點的現象。圖12所示是目標在不同運動速度下的圖像,圖中紅色的線表示目標的圓心點與圖像中心點之間的偏差,表2為不同轉速下實時跟蹤圖像中目標偏離中心點的數值,從表中的數據可以看出,定位目標的偏差量隨著圓盤的轉速升高而變大,在圓盤轉速增大到120r/min(線速度約為 2.3m/s)時,實際跟蹤誤差已經到了42mm,超過了目標外徑。在顛球跟蹤中,相機的光軸與上下運動的乒乓球中心也存在偏差,在乒乓球與球拍碰撞的時候偏差較大,乒乓球在空中運動時較小,偏差量小于乒乓球的外徑(約38mm)。在實時跟蹤精度方面,系統還有較大的提升空間。

圓盤轉速: (a) 12r/min;(b) 24r/min;(c) 48r/min;(d) 120r/min。圖12 圓盤旋轉時的實時跟蹤圖像

X、Y為跟蹤過程中實時圖像的目標中心點位置圓盤轉速(r/min)X/PixelY/Pixel圖像偏移目標中心點/Pixel/mm12398304117.37398301106.740629374.69平均值9.336.2524413291106.73903021812.0640530896.03平均值12.338.26484222832214.743873213020.14223121812.06平均值23.3315.631204122356543.554393526140.873873596342.21平均值6342.21
3總結
通過從硬件架構、算法設計、硬件算法移植、驗證實驗4個方面介紹了一種基于CMOS+FPGA的高速視覺實時定位與跟蹤系統。
兩項驗證實驗顯示,高速視覺系統可在 1000幀/s的采樣頻率下,實現對快速運動目標的實時定位與跟蹤,圖像處理算法的周期控制在1ms。高速視覺系統具有高速性、實時性、主動性等優點,但在定位與實時跟蹤精度上仍有待提高。
參考文獻
馬志峰,趙保軍,何佩琨.基于DSPC64X高速圖像采集和識別系統.北京理工大學學報,2005(7): 628-631.
Nakabo Y, Ishikawa M, Toyoda H, et al. 1ms Column Parallel Vision System and Its Application of High Speed Target Tracking. San Francisco, CA, Proceedings of the 2000 IEEE International Conference on Robotics and Automation.
Shimizu K, Hirai S. CMOS+ FPGA Vision System for Visual Feedback of Mechanical Systems. Orlando, FL, Proceedings of the 2006 IEEE International Conference on Robotics and Automation.
孫春鳳,袁峰,丁振良.基于FPGA和多DSP的高速視覺測量系統的研究.電子技術應用,2008(7): 134-137.
Bayer B E. Color Imaging Array . U.S. Patent: 3971065,1976-7-20.
甄艷,劉學軍,王美珍.一種改進RANSAC的基礎矩陣估計方法.測繪通報,2014(4): 39-43.
Weng J, Cohen P, Herniou M. Camera Calibration with Distortion Models and Accuracy Evaluation. IEEE Transactions on Pattern Analysis & Machine Intelligence, 1992,14(10): 965-980.
Shiu Y C, Ahmad S. Calibration of Wrist-mounted Robotic Sensors by Solving Homogeneous Transform Equations of the Form AX=XB. IEEE Transactions on Robotics and Automation, 1989,5(1): 16-29.
文章編號:1674-540X(2015)04-018-08
中圖分類號:TP242.6+2
文獻標識碼:A
作者簡介:第一 鄭西點(1988-),男,助理工程師,碩士,主要從事機器人主動視覺技術的研究工作,E-mail: richard.zheng@kuka-robotics.cn.
收稿日期:2015年8月