《武汉工程大学学报》  2013年06期 44-49   出版日期:2013-06-30   ISSN:1674-2869   CN:42-1779/TQ
图像跟踪器性能检测设备的设计与应用


0引言随着现代科学技术的发展,一些基于图像的目标跟踪技术已经成为机器视觉和图像处理的重要研究方向之一,无论是在军用方面还是民用方面,都有着广泛的应用前景.在实际使用过程中,这种图像跟踪系统对设备的可靠性、实时性和准确度都有着很高的要求,而由于实际环境比较复杂,导致图像中所引入的干扰、目标运动轨迹以及形状的改变都对跟踪结果产生巨大的影响,因此研制一套通讯设备,使其能够实时的收集并分析跟踪器反馈的目标相关信息,进而改进跟踪器中的软件算法,提高图像跟踪器的跟踪精度,变得十分重要.这样就对通讯设备的要求比较高,如果采用普通的串口、USB等通讯方式,都存在着一定程度上的速度或者数据丢失等缺陷.本设计以外设部件互联标准(Peripheral Component Interconnect,以下简称:PCI)总线技术为基础,使用PCI9054芯片作为桥接芯片,结合现场可编程门阵列(FieldProgrammable Gate Array,以下简称:FPGA)芯片作为逻辑控制单元,实现PCI总线与双口随机存储器(Random Access Memory,以下简称:RAM)之间的通讯,然后按照相关通讯协议读取对应地址单元中反馈的目标信息,并且与目标真实信息比较计算得到图像跟踪器的跟踪精度,以此判断跟踪效果,进而改进图像跟踪器的跟踪算法以提高跟踪精度.本设计采用LabVIEW语言编写上层人机交互界面.1系统硬件总体设计本系统硬件部分主要由PCI9054桥接芯片单元、FPGA逻辑控制单元以及双口RAM数据存储单元共三部分组成,系统硬件结构图如图1所示.图1系统硬件结构图Fig.1System hardware structure diagram系统工作方式为:上位机通过PCI总线接口将数据传递给PCI9054,然后FPGA逻辑控制芯片通过控制PCI9054和双口RAM相关引脚,将PCI9054中需要传输的数据传输到双口RAM中.当双口RAM回传其内部存储数据时,FPGA逻辑控制芯片也使用相同的控制方式首先将数据传输到PCI9054中,然后再经过局部总线到PCI总线的转换,将数据传输到上位机中,完成整个传输过程.PCI9054是由美国PLX公司生产的一种符合PCI V2.2规范的32位总线接口控制芯片.PCI9054既可作为PCI受控设备,实现基本的传输要求,也可作为PCI 总线主控设备,访问其它PCI总线设备.在与电脑主机相连的PCI总线端,PCI9054支持32位的数据宽度,而在本地端即PCI9054端支持8位、16位和32位共三种数据传输模式,并且同时支持复用和非复用两种模式的地址数据传输\[1\].在实际使用过程中,PCI9054的数据传输过程比较复杂,本质上它只是一种通用PCI接口功能芯片,因为不同的使用者有不同的需求,所以需要对其寄存器配置按照需要进行相关配置.对PCI9054的配置包括电可擦可编程只读存储器(Electrically Erasable Programmable ReadOnly Memory,以下简称: EEPROM)的初始化、局部功能寄存器的配置和PCI配置寄存器的配置.根据芯片接口手册中给出的相关信息,选择仙童半导体(Fairchild Semiconductor)公司的FM93C56作为串行配置芯片完成对PCI9054寄存器的配置.FM93C56共有八个引脚,分别为片选CS、串行时钟SK、串行输入DI、串行输出DO、接地GND、空引脚NC两个和电源引脚VCC.使用其中的CS、SK、DI和DO分别与PCI9054提供的四个管脚相连接,具体连接电路如图2所示.第6期张彦铎,等:图像跟踪器性能检测设备的设计与应用 武汉工程大学学报第35卷图2PCI9054配置电路图Fig.2Configuration circuit diagram of PCI9054整个通讯过程中,FPGA起着协调控制整个系统的作用,需要通过在FPGA内部进行编程来对PCI9054本地总线的主要控制信号进行逻辑控制,完成PCI9054与双口RAM之间数据的传输.FPGA是在通用阵列逻辑(Generic Array Logic,以下简称: GAL)、复杂型可编程逻辑器件(Complex Programmable Logic Device, 以下简称:CPLD)这些可编程器件的基础上更进一步发展的产物,因为FPGA中有大量基本门电路的存在,使得通过对FPGA编程来控制其他电子元器件变得简单.FPGA芯片选择Cyclone系列中的一款,PCI9054本地总线的控制信号如表1所示\[2\].依据PCI9054数据手册,其本地总线工作模式共有三种情况,分别为M、C和J模式,其中M模式是专门为摩托罗拉设计的一种工作模式,C模式下9054芯片将PCI总线的地址线和数据线分开使用,J模式下地址线和数据线复合使用,需要严格遵守PCI总线时序\[3\].因C模式下可以将PCI总线的地址线和数据线分开,这样在FPGA编程中比较简单,所以在此选用C模式.PCI9054在不同工作模式下,需要通过硬件电路对其模式选择引脚MODE1和MODE0进行控制,查询PCI9054数据手册可知, MODE1为1,MODE0为0时,为系统保留状态;当MODE1为0,MODE0为1时,PCI9054工作在J模式;当MODE1和MODE0都为1时,PCI9054工作在M模式;当MODE1和MODEL0都为0时,PCI9054工作在C模式:所以在实际电路中,需要将MODL1和MODE0两个引脚直接接地拉低,使其工作在C模式下.IDT7024是美国IDT公司20世纪90年代生产的一种4K×16bit的高速双端口静态RAM,它在一个SRAM存储器上拥有两套完整并且独立的数据线、地址线和控制芯片存储的读写控制线,在进行操作时,允许芯片同时对其存储系统进行随机性的访问,可以实现存储数据的共享\[4\]. IDT7024的控制信号如表2所示.表1PCI9054本地总线信号Table 1Local bus signal of PCI9054名称状态注释LCK输入本地时钟信号LHOLD输出本地总线使用请求信号LHOLDA输入本地总线使用请求仲裁允许信号ADS#输出地址选通信号,低电平有效LBE\[3:0\]#输出字节使能信号LW/R输出读写使能信号,低电平表示读数据有效,高电平表示写数据有效LA\[31:0\]输出本地地址总线LD\[31:0\]输入/输出本地数据总线BLAST#输出表明单次本地总线访问的最后一个传输周期BTERM#输入突发终止信号READY#输入外部等待信号CCS输入9054内部数据LINT#输入本地中断信号LRESET#输出本地复位信号表2IDT7024控制引脚Table 2Control pins of IDT7024名称左端口右端口 注释CELCEL片选信号R/LR/R读写信号,高表示读,低表示写OELOER输出使能信号AOLA11LAORA11R地址线I/OOLI/O11LI/OORI/O11R数据线(输入/输出)SEMLSEMR信号使能UBLUBR高字节片选信号LBLLBR低字节片选信号INTLINTR中断标志信号BUSYLBUSYR忙信号M/主/从模式选择信号VCC电源GND地 因IDT7024为16位数据存储器,而依据PCI9054的芯片手册,当9054的局部总线分别工作在8位、16位和32位数据时,需要对LBE\[3:0\]#四个引脚进行配置.查询可知,当PCI9054用来传输8位数据时,LBE0#用来当作地址0位,LBE1#用来当作地址1位,LBE2#、LBE3#不使用;当传输16位数据时,LBE0#为低8位数据使能位,LBE1#为地址1位,LBE2#不使用,LBE3#为高8位数据使能位;当用于32位数据传输时,LBE0#为低8位数据的使能位,LBE1#为8位-15位数据的使能位,LBE2#为16位-23位数据的使能位,LBE3#为高8位数据的使能位,所以在FPGA的逻辑编程中,需要将LBE1#作为PCI9054地址线的1位来使用.PCI9054、FPGA、IDT7024三者连接图如图3所示图3电路连接图Fig.3Circuit connection diagram2系统软件总体设计系统软件部分主要由上位机测试程序和下位机逻辑控制程序两部分组成.2.1上位机测试程序人机交互界面如图4所示,使用LabVIEW语言编写测试界面,LabVIEW是一种图形化的语言,常用于仪器控制和数据采集软件\[5\].利用该系统可以实现以下功能:①往双口RAM中写入数据,并读取相同端口所写入数据,测试数据读写是否正确;②在已知存储地址情况下,读取图像自动跟踪器通过双口RAM另一端口所写入的数据.图4人机交互界面Fig.4Interactive interface在实际使用过程中,被测图像跟踪器部件与双口RAM的一端相连,当图像传输到跟踪器的时候,跟踪器将会判断出图像中哪个是要跟踪的目标,然后依据跟踪器部件中的相应算法判断出目标的位置、灰度等相关信息,并依据检测设备与跟踪器的通讯协议,将目标相关信息存储在双口RAM的单元地址中,每处理一幅图像就存储一次相关信息,同时PCI9054通讯端将在双口RAM另外一端取出固定单元地址中的内容,并且按照协议进行保存,当全部图像处理完成之后,使用跟踪器反馈数据与真实目标数据进行对比分析,即可得到跟踪器的跟踪精度等信息.程序设计步骤如下:首先,使用底层驱动函数连接PCI板卡,将PCI9054板卡打开,然后使用写入双口RAM函数,往双口RAM固定地址中写入数值,若进行数据读取,则调用读双口RAM函数,读取相应地址中的数据,最后将相关数据进行存储分析,得到图像跟踪器性能.人机交互程序流程图如图5所示.图5人机交互程序流程图Fig.5Humancomputer interaction program flowchart2.2下位机逻辑控制程序下位机逻辑控制程序主要是通过在FPGA芯片内部编程来控制PCI9054本地总线信号,使其能在相应的时钟周期内完成对双口RAM的读或者写.PCI9054支持单周期和突发模式的数据传输,本设计采用突发模式\[6\].设计S0-S6共7种状态机,其中S0、S1为等待状态,S2为单周期读写状态,S3为中间空闲状态,S4、S5为突发模式读写状态,S6为数据传输完成状态,图6为7种状态机切换图.图6状态机切换图Fig.6State machine switches Fig3试验结果本检测设备为某图像处理系统性能检测设备的一部分,该系统工作平台如图7所示.图7工作平台Fig.7Working platform其中检测设备与被测件连接所用的适配器接口装置如图8所示.图8适配器接口装置Fig.8Adapter interface equipment在实际检测过程中,使用如图9所示的一序列图像进行测试,其中图像中心黑色圆形为目标,图9(a)为目标起始位置图像,图9(b)为目标终止位置图像,目标运动速度为x方向6像素/幅,y方向8像素/幅,得到某次15幅图像的跟踪结果与实际数据对比如表3所示.图9测试图像Fig.9Test images表3跟踪结果与实际数据对比Table 3Comparison between tracking results andactual data帧号真实x坐标真实y坐标反馈x坐标反馈y坐标136824038024823742483782543380256386260438626438826853922723962766398280404286740428840629284102964102969416304420308104223124263161142832043032212434328436334134403364463401444634444835015452352456358依据跟踪器研发人员所提供的被测件跟踪精度计算方法,设当前第i帧图像数的检测结果为x(i),真实目标的位置为y(i),则检测跟踪精度可以计算为:σ=∑ni=1(x(i)-y(i))2n-1式中:n为图像总幅数,x(i)、y(i)均为二维向量.根据表3可计算得到跟踪精度σ=7.13.在跟踪器研发人员对被测件内部算法作出调整后,重新测试,得到表4中修改算法后的对比数据.表4改进算法后的对比数据Table 4Comparative data of the modified algorithm帧号真实x坐标真实y坐标反馈x坐标反馈y坐标136824037024623742483762523380256380256438626438826453922723942766398280400286740428840429284102964102969416304418306104223124223161142832042832412434328434332134403364423361444634444834615452352452356根据表4可计算得到被测件内部算法调整后的跟踪精度σ=4.00,可见在被测件算法不同的情况下,检测设备可以得到不同的检测结果,达到了使用要求.4结语本文介绍了一种基于PCI总线技术的用来测试图像跟踪器性能的检测设备的设计,检测设备以FPGA芯片作为控制核心,采用PCI9054和双口RAM通讯来收集图像跟踪器反馈的相关信息,计算出图像跟踪器的跟踪精度,使用LabVIEW编写上位机测试界面.通过实际实验表明,采用本文的设计,能够有效完成被测设备数据的采集与分析.致谢感谢武汉工程大学智能机器人湖北省重点实验室的鲁统伟老师在测试设备开发过程中给予的帮助与支持.