凌云志,李伟光,曾顺星,侯跃恩
(华南理工大学 机械与汽车工程学院,广东 广州 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.