凌云志,李偉光,曾順星,侯躍恩
(華南理工大學 機械與汽車工程學院,廣東 廣州 510640)
視覺目標跟蹤是當前計算機視覺的研究熱點之一,該技術可廣泛應用于視覺導航、輔助駕駛、視頻監控等領域。雖然目前已提出了許多視覺目標跟蹤方法,但是目標跟蹤平臺仍存在穩定性與實時性不足的問題。除了簡化算法、提高硬件運算能力外[1],我們有必要提高程序運算平臺與目標跟蹤平臺之間的通信速率,使數據交互快速,提高跟蹤平臺的穩定性與實時性。
EtherCAT總線是由德國倍福公司研發的開放式實時以太網通信協議,具有高達100 Mb/s的帶寬,數據通信采用標準以太網數據幀,能夠方便的實現與以太網的互聯[2]。EtherCAT具有傳輸速度快、刷新周期短、數據包容量大、拓撲結構靈活等優點,EtherCAT系統可以在30內刷新1 000個I/O (輸入/輸出)點,可以在300內交換一幀多達1 486字節的協議數據,大大滿足了控制系統對穩定性、快速響應、實時性等方面要求[3]。
本設計將EtherCAT總線應用于視覺目標跟蹤平臺的主從站通信,有效滿足了視覺目標跟蹤平臺的穩定性與實時性要求。
本文所設計基于EtherCAT總線的視覺目標跟蹤平臺總體框架如圖1所示,主要包括:EtherCAT主站、EtherCAT從站、伺服驅動器、二維運動平臺和攝像頭。攝像頭固定在二維運動平臺上,負責拍攝跟蹤目標圖像,并由USB(Universal Serial Bus,通用串行總線)通信將圖像信息反饋給EtherCAT主站;EtherCAT主站中的目標跟蹤程序定位并計算跟蹤目標中心點坐標,將坐標數據傳遞給后臺運行的EtherCAT主站通信程序;EtherCAT主站通信程序將目標中心點坐標數據封裝成EtherCAT數據幀并發送到由DSP多軸運動控制卡構成的 EtherCAT 從站;DSP(Digital Signal Processing,數字信號微處器)讀取并將坐標數據進行伺服計算轉換為伺服指令發送給伺服驅動器;伺服驅動器驅動二維運動平臺使攝像頭拍攝的圖像中心點始終與跟蹤目標中心點重合,從而達到視覺目標跟蹤效果。
EtherCAT主站采用帶標準以太網卡的PC機,操作系統選用常見的Windows XP系統,以Visual Studio 2010軟件為基礎,用C語言編寫EtherCAT主站程序,實現視覺跟蹤算法處理和EtherCAT數據幀發送等功能,主要包括目標跟蹤程序和EtherCAT主站通信程序。
在EtherCAT主站上,通過運行目標跟蹤程序,計算出跟蹤目標中心點坐標以實現視覺目標跟蹤,目標跟蹤算法的實現對于視覺目標跟蹤的實時性起著關鍵作用。本文選用計算負荷較小的Mean shift跟蹤算法,利用核函數空間加權的顏色直方圖作為目標模型,用Bhattacharrya系數作為目標與候選目標之間的相似性度量,并將搜尋相似度量的局部極值問題轉化為核密度估計問題,通過Mean shift迭代方法尋找目標位置[4-5]。為了更好的跟蹤目標,提高系統的魯棒性,同時采用目標尺度度量方法,實現核函數寬度隨著目標大小變化而自適應調整[6]。由于采用了Mean Shift方法,跟蹤算法只需通過較小的迭代次數就能收斂得到目標位置,滿足跟蹤平臺實時性要求。
在PC機主站上開發主站通信程序,將圖像目標中心點坐標封裝成EtherCAT數據幀通過EtherCAT總線發送到DSP多軸運動控制卡,實現主站與從站之間的數據通信[7]。EtherCAT主站通信程序主要包括3大基本類:1)網卡操作類,用于實現EtherCAT主站網卡管理和以太網數據幀收發;2)從站配置參數類,用于定義從站配置數據、狀態數據以及控制數據;3)主站通信類,用于構造一個EtherCAT主站對象,是EtherCAT通信驅動程序的主體,提供通信初始化、數據傳輸等功能。如圖2所示為EtherCAT通信發送數據工作流程。通過主站通信類構建主站對象,配置從站FMMU(Fieldbus Memory Management Unit,現場總線內存管理單元)參數,啟動主站后根據給定 MAC(Media Access Control,介質訪問控制)地址新建一個網卡通信控制數據對象,打開網卡獲取計算機網卡信息并向EtherCAT從站發送數據幀,最后關閉網卡。

圖2 EtherCAT通信發送數據工作流程Fig.2 The workflow of EtherCAT communications to send data
EtherCAT從站主要包括伺服運動控制模塊和EtherCAT通信功能模塊。伺服運動控制模塊以德州儀器公司推出的型號為TMS320F28335的DSP為處理器,具有數字脈沖輸出和伺服專用I/O口,支持伺服驅動器的位置控制模式。EtherCAT通信功能模塊主要包括EtherCAT從站控制芯片ET1100和RJ45網絡接口。RJ45網絡接口用于EtherCAT數據幀收發,從站控制芯片ET1100與DSP微處理器之間通過SPI(Serial Peripheral Interface,串口外設接口)通信的方式連接。Ether CAT主站利用EtherCAT數據幀將目標中心點坐標數據存儲到ET1100的數據存儲區,從站微處理器DSP以SPI通信的方式讀取數據,DSP分析數據后輸出伺服運動控制指令。
EtherCAT從站通信程序運用C語言在DSP開發環境CCSv4.2中完成開發,主要實現DSP多軸運動控制卡對EtherCAT通信功能模塊中ET1100控制芯片的配置、數據讀取操作,主要包括EtherCAT狀態機處理程序和同步串行通信程序。
EtherCAT狀態機處理程序實現EtherCAT從站在通信初始化時狀態機狀態的轉換,完成EtherCAT主從站通信前狀態機的握手機制,當工作到“運行狀態”時,開啟數據處理通信。
同步串行通信程序實現DSP芯片與EtherCAT從站控制芯片ET1100之間的數據通信,DSP的SPI模式為帶相位延時的上升沿模式,ET1100的 SPI模式為 “mode0+Normal”模式。為了DSP與ET1100的通信時序相匹配,在程序中將DSP的SPI片選引腳設置為通用I/O模式,由程序控制電平高低,完成SPI的讀取操作。
EtherCAT從站通信程序工作流程圖如圖3所示,DSP程序運行和參數初始化后,程序進入循環;主站請求新的狀態且狀態更新未執行,運行從站狀態機處理程序,執行狀態轉換,完成從站通信初始化;當EtherCAT數據幀經過從站控制芯片時,ET1100從EtherCAT報文的數據區提取目標中心點坐標數據并存入數據存儲區。ET1100的SPI_IRQ引腳發生電平變化,觸發DSP產生外部中斷,調用同步串行通信程序,DSP通過SPI通信讀取預先設定的ET1100的數據存儲區地址,獲得目標中心點坐標數據。
當DSP獲取目標中心點坐標數據后,觸發伺服運動控制程序,輸出脈沖信號,驅動二維運動平臺跟蹤目標。DSP運動控制程序中主要包括離散PID控制程序和PWM(Pluse Width Modulation,脈沖寬度調制)脈沖輸出程序,伺服運動控制程序流程圖如圖4所示。

圖3 EtherCAT從站通信程序工作流程圖Fig.3 The flow chart of communication program on EtherCAT slave station

圖4 伺服運動控制程序流程圖Fig.4 The flow chart of servo control program
DSP讀取目標坐標數據,進入離散PID控制程序,輸出X、Y軸坐標數據,計算X軸、Y軸的伺服周期脈沖數,進入PWM脈沖輸出程序,完成DSP的PWM功能模塊配置,包括脈沖頻率計算、電機轉動方向判斷、PWM寄存器配置等,最后同時開啟兩路PWM脈沖輸出,實現對二維運動平臺X軸和Y軸的控制,完成目標跟蹤動作。
根據總體框架搭建目標跟蹤平臺,如圖5所示。

圖5 跟蹤平臺實物搭建圖Fig.5 The real figure of tracking platform
為了對基于EtherCAT總線的視覺目標跟蹤平臺進行定量目標跟蹤實驗,設計跟蹤目標固定在直線滑臺上做定量的往復運動。直線滑臺置于二維運動平臺上方且跟蹤目標朝下,跟蹤目標為一枚硬幣。直線滑臺與攝像頭拍攝圖像X方向夾角為63.2°,與Y方向夾角為26.8°,如圖6所示。直線滑臺的步進電機反饋的編碼器信息可反映目標實際軌跡,二維運動平臺兩個電機反饋的編碼器信息反映目標跟蹤軌跡,比較目標實際軌跡與目標跟蹤軌跡可定量的評價目標跟蹤平臺效果。

圖6 直線滑臺及目標示意圖Fig.6 The schematic diagram of linear sliding table and target
直線滑臺分別以9.6 mm/s和16 mm/s的速度做往復運動3個周期,單向行程為96 mm。將目標實際軌跡與目標跟蹤軌跡同時分解到X軸方向與Y軸方向作對比。如圖7所示,圖中實線表示目標實際軌跡,點畫線表示目標跟蹤軌跡。同時,統計兩種速度下目標中心點在整幅圖像所處位置,曲線如圖8所示,目標中心點位置曲線分為X軸、Y軸方向,圖像大小為320×240,理想情況下,X軸方向目標中心點位置曲線為y=160的水平直線,Y方向目標中心點位置曲線為y=120的水平直線。

圖7 跟蹤軌跡與實際軌跡對比圖Fig.7 The graphs of tracking trajectory compared with the actual path
根據圖7,兩組實驗中目標跟蹤軌跡與目標實際軌跡基本重合,系統的目標跟蹤性能較好。直線滑臺速度為9.6 mm/s時目標跟蹤軌跡X方向與Y方向的平均誤差分別為0.908 mm和1.123 mm,因此直線滑臺速度為9.6 mm/s時目標跟蹤軌跡總的平均誤差為1.444mm。直線滑臺速度為16 mm/s時目標跟蹤軌跡X方向與Y方向的平均誤差分別為0.989 mm和2.507 mm,因此直線滑臺速度為16 mm/s時目標跟蹤軌跡總的平均誤差為2.695 mm。當目標作單向運動時,目標跟蹤軌跡誤差小。隨著直線滑臺速度增加,目標跟蹤軌跡與目標實際軌跡之間誤差有增大趨勢。根據圖8,目標中心點曲線總體處于圖像中心位置,目標跟蹤實時性較好。在換向時刻,目標跟蹤平臺需要一定的調整時間,產生一定的調整誤差,因此目標中心點曲線出現比較尖銳的毛刺。目標跟蹤平臺從換向到穩定的調整整時間在0.8 s以內,滿足視覺目標跟蹤要求。

圖8 目標中心點位置曲線圖Fig.8 The graphs of target center position
總體而言,本文所設計的目標跟蹤平臺跟蹤軌跡的平均誤差在2.7 mm以內,換向調整時間在0.8 s以內,跟蹤誤差較小,穩定性較高,實時性較強,獲得較好的視覺目標跟蹤效果。
本文運用EtherCAT總線技術并結合Mean Shift算法和DSP伺服運動控制技術,設計了具有結構簡單、穩定性高、實時性好的視覺目標跟蹤平臺。經過二維運動平臺的視覺目標跟蹤實驗,驗證了視覺目標跟蹤結合EtherCAT總線技術的可行性,并取得良好效果,具有應用價值。在基于EtherCAT總線的視覺目標跟蹤平臺的研究基礎上,可將EtherCAT總線技術推廣到機器人視覺目標跟蹤、監控系統視覺目標跟蹤等視覺目標跟蹤領域,使EtherCAT總線技術在視覺目標跟蹤領域的應用開發得到推廣。
[1]呂澤華,梁虎,唐赫,等.目標跟蹤研究綜述[J].計算機工程與科學,2012, 33(10):92-96.LV Ze-hua,LIANG Hu,TANG He,et al.Survey of visual objects tracking[J].Computer Engineering&Science,2012,33(10):92-96.
[2]李木國,王磊,王靜,等.基于EtherCAT的工業以太網數據采集系統[J].計算機工程,2010(3):237-239.LI Mu-guo,WANG Lei,WANG Jing,et al.Industry Ethernet data gathering system based on EtherCAT [J].Computer Engineering,2010(3):237-239.
[3]劉艷強,王健,單春榮.基于EtherCAT的多軸運動控制器研究[J].制造技術與機床,2008(6):100-103.LIU Yan-qiang,WANG Jian,SHAN Chun-rong.Study on the multi-axis motion controller based on EtherCAT[J].Manufacturing Technology&Machine Tool,2008(6):100-103.
[4]Comaniciu D,Ramesh V,Meer P.Real-Time Tracking of Non-Rigid Objects using Mean Shift[C]//IEEE International Proceedings on Computer Vision and Pattern Recognition,Stoughton Printing House,2000:142-149.
[5]Comaniciu D,Ramesh V,Meer P.Kernel-based object tracking[J].IEEE Transactions on Pattern Analysis And Machine Intelligence,2003,25(5):564-575.
[6]付勇,何明一,劉超.Mean Shift目標跟蹤核函數寬度的自適應調整[J].計算機工程與應用,2010,46(17):243-245.FU Yong,HE Ming-yi,LIU Chao.Adaptive adjustment of kernel bandwidth for Mean Shift object tracking[J].Computer Engineering and Applications,2010,46(17):243-245.
[7]郇極,劉艷強.工業以太網現場總線EtherCAT驅動程序設計及應用[M].北京:北京航空航天大學出版社,2010.