基于FPGA的高速图像跟踪系统设计与实现
2015-03-28周全宇史忠科
周全宇,史忠科
(西北工业大学自动化学院,陕西西安710072)
目前,图像跟踪系统广泛应用于安防监控、教育、会议等领域,但对于某些特殊应用场合,如导弹末制导、弹道试验以及火箭飞行等高速目标跟踪领域,因为目标运动速度过快,而常规图像跟踪系统[1-2]中图像采集装置的帧频一般仅为25~30 fps,传感器捕捉的图像目标往往会出现变形、模糊等现象,对目标的精确检测产生极大的干扰。而高速图像跟踪系统由于每帧图像的曝光时间极短,相当于将目标的某一瞬间状态冻结[3],若将其应用于高速目标的跟踪,能够很大程度上改善目标运动模糊问题。
对现有的高速图像跟踪系统进行研究发现,由于高速图像数据量非常大,对于处理器的要求也较高,而在某些实时性要求较高的系统中,甚至需要带有专业功能的高速摄像机才能满足系统对高速图像的实时性处理需求,这些系统结构复杂,造价也较昂贵[4-5]。有些研究也仅仅是对高速图像处理算法进行实时性分析,没有对一个完整的系统进行分析[6]。
现场可编程门阵列(FPGA)具有强大的并行处理能力,有很强的实时性,非常适合数据量较大的图像处理[7]。因此本文设计实现了一种基于FPGA的高速图像实时跟踪系统,该系统直接在FPGA中对采集到的高速图像序列进行实时处理,无需存储,且系统所有功能模块均集中在FPGA中实现,结构简单,具有单芯片集成、低功耗、便携化、小型化等优点。
1 系统硬件方案设计
基于FPGA的高速图像跟踪系统主要由CMOS高帧频图像传感器、FPGA核心处理单元、片外SRAM、舵机云台和串口通信等部分组成。将CMOS传感器作为图像采集装置,其输出为数字图像,可以直接送至FPGA。CMOS驱动、高速图像采集与处理和舵机云台控制均集中在一片FPGA内实现,提高了系统的集成度,也降低了系统复杂度。FPGA作为系统的计算和控制中心,将各模块的功能通过FPGA联系在一起,构成一个完整的高速图像跟踪系统,系统总体结构如图1所示。
图1 系统总体结构图Fig.1 The overall structure of the system
系统的工作流程为:系统上电后,FPGA通过SPI总线对CMOS高速图像传感器进行驱动配置,配置完成后,CMOS以高速图像捕捉目标;FPGA采集高速图像,并在其内部进行实时图像处理,包括动态阈值分割与形心跟踪算法;根据形心对视场中央的偏移量控制舵机云台跟踪目标,最终使得目标在图像视场中的位置始终锁定在视场中央,进而完成目标的跟踪。
2 系统软件设计
2.1 软件功能的实现
整个跟踪系统的所有功能均在FPGA中实现,各功能模块的整体逻辑结构如图2所示。CMOS驱动模块用于驱动CMOS图像传感器,通过模拟SPI总线协议对CMOS的内部寄存器配置,从而改变CMOS的帧频、分辨率等工作参数;图像采集模块是直接通过CMOS的数据通道采集其输出的高速数字图像;阈值分割模块是对采集到的图像进行实时的动态阈值分割检测目标,并计算目标形心位置,将该形心坐标送至PWM波产生模块;PWM波产生模块接收阈值分割模块传过来的形心坐标,并根据形心对图像中央的偏移量计算云台转动的幅度,并通过该幅度产生相应的PWM波来控制云台转动,进而跟踪目标;时钟模块是根据各功能模块的时钟要求,通过分频和倍频给其提供相应的工作时钟。
2.2 图像采集模块
图像采集模块的功能是CMOS通过高速图像捕捉目标信息,FPGA采集CMOS传输过来的高速图像。系统采用美国cypress公司开发的CMOS高速图像传感器芯片LUPA-300,该芯片最大分辨率为640×480,在最大分辨率下最高可以达到每秒250帧图像的拍摄速度,帧频可调。上电后,FPGA模拟SPI总线协议对CMOS进行配置,配置参数为640×480@125fps;配置完成后,CMOS直接向FPGA传输灰度图像,像素时钟频率为40 MHz,FPGA按照CMOS产生的帧有效信号(frame_valid)和行有效信号(line_valid)以相同的时钟频率采集图像。
2.3 动态阈值分割模块
动态阈值分割模块是系统的核心功能模块,其主要功能是在高速图像的像素时钟周期内完成目标检测和形心计算,否则,会有数据堆积,进而影响整个系统的工作时序,是实现高速图像实时处理的根本。
目标检测采用动态阈值法实现,该方法的实现流程分为两步:1)计算图像的平均灰度值Avg_gray;2)通过调整因子α_gray得到目标分割阈值Th。阈值计算公式表示为:
当像素灰度值位于(Avg_gray-α_gray,Avg_gray+α_gray)之间时,认为该像素为目标像素,否则不是。
目标在图像中的位置,即形心坐标(Mx_posi,My_posi),由式(2)计算:
其中,Mx_posi表示形心的横坐标,My_posi表示形心的纵坐标,i和j分别表示像素在图像中位置坐标,N为目标面积。
根据FPGA的并行运算特点,将形心计算嵌入到阈值分割法中,主要分两步进行:1)检验当前像素是否目标像素,如果是,则将目标像素的个数加1;如果不是,则目标像素个数保持不变;2)如果当前帧结束,计算该帧的平均灰度值以及目标的形心坐标,具体实现流程如图3所示。
图2 目标跟踪逻辑结构图Fig.2 Target tracking logic structure
由FPGA的并行运行特点可以看出,目标检测和形心计算总共只需两步即可完成,即只需两个时钟周期。而CMOS高速图像的帧频为125 fps,像素时钟频率为40 MHz,每个时钟周期是25 ns。阈值分割模块的工作频率设为80 MHz,每个时钟周期12.5 ns,则每个像素就有2个时钟周期的操作时间,这2个时钟周期足够满足动态阈值分割和形心计算需要。这样,即完成高速图像的实时目标检测,整个过程不需要对图像数据进行存储,也没有数据堆积的问题。
图3 动态阈值法流程Fig.3 Dynamic threshholding flowchart
平均灰度计算部分使用一个32位宽的寄存器Sum_gray[0:31]存储灰度值累加和,8位宽的寄存器Avg_gray[0:7]存储平均灰度值。一帧采集完毕后,通过一次除法运算即得到图像平均灰度值Avg_gray,由于帧频较高,相邻两帧图像的灰度值相差很小,因此由式(1)计算出动态阈值Th作为下一帧的分割阈值,当前帧的分割阈值由上一帧得到。
2.4 舵机云台控制
系统通过形心坐标对视场中央的偏移量进行控制,将偏移量换算成舵机控制量控制舵机转到相应的角度,从而实现目标的跟踪。由于目标不可能严格地处于图像中央点(320,240)处,当目标形心处于图像中央方块区域中时,就认为目标处于图像中央,这种情况下不再改变舵机控制量;当目标跑出该范围后,再根据目标的形心位置计算相应的舵机控制量。
3 系统测试与实验结果
飞机从屏幕一侧飞到另一侧再从另一侧回到初始位置,如此循环,将该过程通过投影仪投影放大至墙上,镜头对准屏幕跟踪飞机在投影屏幕上的运动。为了能够更精确地检测目标,改善实验效果,文中将飞机设置为白色作为目标,背景设为黑色,这样只检测阈值高于某一灰度值作为目标像素,能够有效避免噪声的影响,更精确地检测目标。因为云台的转动幅度较小,拍摄视频的距离较远,通过视频不能明显看出舵机的转动动作,在固定系统电路板的夹板上添加一个能够发出红色激光束的激光管,如图4所示。激光管发出激光束,可以通过激光点在投影上的位置来确定云台的位置,以观察跟踪效果。
图4 仿真实验环境Fig.4 Simulation experiment environment
将阈值取为(Avg_gray+60,Avg_gray+65),可以消除激光点对目标的干扰。将整个实验过程用视频录下来,视频帧频为29 fps,属于低速图像。本文通过视频将实验的过程录下来,然后从中截取部分,如图5所示。实验中云台能够自主跟踪目标,随着目标的来回往复运动也进行来回往复跟踪,镜头视场一直锁定目标,跟踪也较为稳定。在该过程中,某些帧中飞机有虚影,这是因为屏幕显示本身的问题,由于目标不大,不会影响到目标的检测。
图5 跟踪仿真实验过程Fig.5 Process of the simulation tracking experiment
图5中某几帧的激光点呈线状,是因为云台转动太快,用低速相机拍摄图像的曝光时间较长,拍摄到的不是点,而是点的轨迹(线)。同样,由于飞机运动速度较快,通过低速图像拍摄到的飞机有很长的拖影。高速图像中的每一帧曝光时间较短,因此其捕捉到的实际跟踪图像中飞机的拖影大大减少,极大地改善了拖影的负面影响。
图5中对应的跟踪过程持续了32帧,则该段时间约为32/29=1.103秒,目标在1.103秒内沿着一个方向移动了3 m,根据三角关系,可以估算出该段过程中云台转动的角度为55.9度,则云台的跟踪角速度约为55.9/1.103=50.7度/秒,满足高速目标的要求,实验能够验证高速图像目标跟踪的有效性。
4 结论
针对低速图像跟踪系统跟踪目标时因图像模糊造成的跟踪精度降低的问题,文中设计实现了基于FPGA的高速图像跟踪系统。系统采用高速图像传感器作为图像采集装置,改善了低速图像跟踪系统对高速运动目标跟踪误差大、精度低等问题,具有单芯片集成、低功耗、小型化、便携化等优点,有良好的应用前景。
[1] 宁成军,史忠科.基于FPGA的实时空中目标跟踪系统设计与实现[J].交通运输系统工程与信息,2010,10(5):45-52.NING Cheng-jun,SHI Zhong-ke.Design and implement of Real-time aerial target tracking system based on FPGA[J].Journal of Transportation Systems Engineering and Information Technology,2010,10(5):45-52.
[2] 刘紫燕,冯亮,祁佳.一种基于FPGA的实时视频跟踪系统硬件平台设计术[J].传感器与微系统,2014,33(7):98-102.LIU Zi-yan,FENG Liang,QI Jia.Design of a FPGA-based hardware platform of realtime video tracking system[J].Transducer and Microsystem Technologies,2014,33(7):98-102.
[3] 计宏伟,王怀文.基于高速图像测量技术的缓冲材料缓冲性能的表征[J].振动与冲击,2011,30(9):216-220.JI Hong-wei,WANG Huai-wen.Characterization of dynamic cushioning property of cushioning material based on highspeed image measurement technology[J].Journal of Vibration and Shock,2011,30(9):216-220.
[4] 张远辉,韦巍,虞旦.基于实时图像的乒乓机器人Kalman跟踪算法[J].浙江大学学报,2009,43(9):1580-1584.ZHANG Yuan-hui,WEI Wei,YU Dan.Kalman tracking algorithm based on real-time vision of ping-pong robot[J].Journal of Zhejiang University,2009,43(9):1580-1584.
[5] 张正涛,徐德.基于智能摄像机的高速视觉系统及其目标跟踪算法研究[J].机器人,2009,31(3):229-224.ZHANG Zheng-tao,XU De.High-Speed vision system based on smart camera and its target tracking algorithm[J].Robot,2009,31(3):229-224.
[6] 刘刚,苏秀琴,胡晓东,等.高速电视下基于自适应阈值的实时图像跟踪[J].光子学报,2005,34(8):1262-1265.LIU Gang,SU Xiu-qin,HU Xiao-dong,et al.Real-time image tra-cking based on adaptive threshold in high speed TV[J].Acta Photonica Sinica,2005,34(8):1262-1265.
[7] Gu Q,Takaki T,Ishii I.Fast FPGA-based multiobject feature extraction[J].IEEE Transactions on Circuits and Systems for Video Technology,2013,23(1):30-45.