谭晓敏,韦雪梅,丰 彬,陈 华
(广西大学计算机与电子信息学院, 广西南宁530004)
基于DSP的运动人体小车跟随系统
谭晓敏,韦雪梅,丰彬,陈华
(广西大学计算机与电子信息学院, 广西南宁530004)
摘要:为弥补传统监控视野范围固定缺陷,并实现运动人体实时监控,采用图像处理方法, 设计了一个基于数字信号处理器件 (Digital Signal Processor,DSP)车载摄像头运动人体小车跟随系统。采用帧间差分法检测识别运动人体,提出一个基于灰度直方图的连续自适应均值漂移运动人体跟随算法,通过计算运动人体反向投影图的0阶矩阵和1阶矩阵,求出运动人体的质心坐标和宽度,作为下一帧跟踪框位置和大小。实验结果表明:电荷耦合器件摄像头采集的运动人体图像在DSP进行检测识别和跟随处理,正确地获得左转、右转、前进和后退等四个驱动信号,驱动小车跟随运动人体。实地测试表明:该系统能够实现对运动人体目标左右前后跟随,并时刻与运动人体保持一定安全距离。
关键词:运动人体跟随;DSP;移动小车
0引言
运动人体的检测、识别和跟踪技术已广泛应用于安全监控、身份验证、交通监测等领域。作为技术的核心,提出了许多基于图像处理的检测、识别算法,比如背景差分法[1]、帧间差分法[2]和光流法[3]等,目前运动人体的跟踪算法大致分为特征、区域、轮廓和模型四类[4-7],文献[8]中结合背景差分法和帧间差分法来检测运动目标,文献[9]中提出了基于贝叶斯多重假设跟踪的方法,用于人体边缘的轮廓分割实现时间上的跟踪。由于人体在运动过程中容易发生形变,相比于其他方法,采用人体身上某些不变的特征来跟踪更为可靠。连续自适应均值漂移(continuously adaptive mean shift,Cam Shift)算法利用人体区域的颜色直方图作为跟踪特征。Cam Shift算法最早由Bradski等[10-11]于1998年提出,并进行改进。文献[12]改进均值漂移和帧间差分算法跟踪快速移动的目标;文献[13]是均值漂移和Sift方法相结合跟踪车辆等移动目标。
对采集的图像信号进行处理采用的器件,主要有FPGA(现场可编程门阵列)和DSP(数字信号处理器件)。DSP由于其具有较高的信号处理速度多被采用。运动目标图像采集和跟踪的研究,目前多采用固定位置安装摄像头旋转采集跟踪方式,智能小车对运动人体跟随的研究较少。利用图像处理技术检测识别运动人体,采用智能小车跟随运动人体实施监控是一种新型监控方式,在新形势下具有重要现实意义。
本文设计一种采用图像处理方法的运动人体识别小车跟随系统,系统以小车搭载电荷耦合器件(charge coupled device ,CCD)摄像头进行视频图像采集,采用DSP进行图像检测识别处理,单片机对小车实施驱动控制。
1系统方案确定与设计框图
本文设计的系统,采用CCD摄像头采集图像,传输到DSP进行处理。处理方法是利用检测识别跟随算法进行,得到人体目标的位置信息,通过DSP中的GPIO口与单片机通信,由单片机控制和驱动的小车前后左右运动,实现对运动人体的识别跟随。系统功能框图如图1所示。
图1 车载摄像头运动人体跟随系统框图
2运动人体检测与跟随算法
CCD采集到的图像在进行运动目标检测识别之前,为了提高识别率,首先要进行图像增强预处理,提高图像对比度。本文采用直方图均衡化预处理,直方图均衡化可以比较明显提高图像中人体目标与背景的对比度,方法较简单,容易编程,易于实现。图2为采集的图像均衡前后效果图,可看出均衡后直方图得到明显拉伸,图像对比度得到明显提高。
(a) 原灰度图
(b) 原灰度直方图
(c) 直方图均衡后灰度图
(d) 直方图均衡后灰度直方图
图2图像均衡前后效果图
Fig.2Results that before and after the image is equilibrated
本文采用帧间差分法对目标进行检测识别,因为帧间差分法受环境的影响较少,对于小车跟随的单目标人体来说,编程简单,且不用考虑多目标的影响。帧间差分法是当前帧与前一帧作差,利用公式(1)得到差分后的图像,然后对差分图像用设定的阈值进行二值化处理得到二值化结果图,这里阈值设定为0.5,如图3(a)所示。对二值化结果图逐行逐列扫描得到人体目标最小外接矩形框(跟踪框),检测出图中的运动人体目标,如图3(b)所示。
(1)
式中,fk、fk-1为图像的当前帧和前一帧;Dk为差分图像。
(a) 帧间差分二值化结果图
(b) 人体目标最小外接矩形框
图3运动人体检测识别效果图
Fig.3Result of moving human’s detection and identification
本文采用灰度直方图的Cam Shift算法进行运动人体的跟随。Cam Shift算法对于运动人体的形变和姿势改变等复杂状态有良好的适应性,对人体被遮挡的情况能够继续检测跟随。
Cam Shift算法的核心是根据人体图像直方图统计信息计算出该图像的反向投影图,根据反向投影图的0阶矩阵(M00)和1阶矩阵(M01、M10)计算出人体图像的质心位置 (xc,yc)以及目标人体的宽度S,具体公式为:
(2)
式中,I(x,y)是反向投影图中坐标(x,y)归一到[0,255]的概率值;M00、M01、M10为反向投影图的0阶矩阵和1阶矩阵。
(3)
式中,xc、yc是质心的横纵坐标。
(4)
式中,S为跟踪框的宽度。
本文采用Cam Shift算法进行运动人体跟随的步骤如下:
Step 1:计算跟踪框区域的灰度直方图,保存统计信息;
Step 2:查询灰度直方图统计信息,求出下一帧图像的反向投影图;
Step 3:用均值偏移式(2)和式(3)找到反向投影图中人体目标概率密度最大处的位置,作为人体目标的质心,也是下一帧跟踪框的中心;
Step 4:通过式(4)计算跟踪框的宽度,作为下一帧跟踪框的大小;
Step 5:把自适应改变大小后的跟踪框移动到step 3求出的中心位置,返回step 2。
人体目标反向投影图如图4(a)所示,它实际上是概率分布图,图上的每一点代表该点属于目标的概率,概率值越大,即值越接近1,像素点越接近白色,图4(a)中呈现的人体目标还是比较明显的。图4(b),(c)和(d)中跟踪框中央的菱形是质心。图4(b)中人体质心在中央位置,图4(c)中人体质心位置偏左,跟踪框的位置随质心的移动而移动,质心的横坐标体现人体的具体位置,通过质心的横坐标判断小车对人体进行左右跟随。图4(c)中人体靠近,跟踪框的宽度比图4(d)中人体远离的宽度大。跟踪框的宽度体现人体的大小,通过跟踪框与设定基准值的大小对比判断,小车跟随人体在安全距离内进行前进或者后退。
(a) 人体目标反向投影图
(b) 质心在中间范围跟踪框图
(c) 质心偏左人体靠近跟踪框图
(d) 质心偏左人体远离跟踪框图
图4运动人体跟随效果图
Fig.4Following result of moving human
3DSP图像采集处理及显示
本文采用以TMS320DM642为核心处理器的DSP作图像采集处理及显示。DSP视频图像处理框图如图5所示。
图5 DSP视频图像处理框图
DSP开发板视频口设为采集模式时,CCD摄像头采集到的模拟信号通过I2C进行读写视频解码芯片TVP5150中的内部寄存器转化为数字信号,经分离后成Y、Cb、Cr分量,存入采集视频口VP1的FIFO缓冲区,当FIFO中数据高达到某个阈值,触发EDMA通道传输缓冲区的数据到指定SDRAM中分配的capYbuffer、capCbbuffer、capCrbuffer内存区域,直到一帧完整图像的数据都传输到该内存区域。
一帧完整的图像采集结束后,EDMA触发中断,通知开发板已经准备好一帧图像,这时候提取SDRAM中的capYbuffer分量,对保存的一帧图像Y分量数据进行算法编程。在后期检测时,将算法程序烧写到FLASH中的boot-loader段,使用BIOS配置工具从起始地址处开辟一个长度为0×400的BOOT内存区,把程序加载到DSP内部的BOOT内存区当中处理。
当处理完一帧图片后,将CPLD芯片扩展的8个通用输入输出GPIO端口设置为输出口,根据人体的位置大小信息利用输出5组4位二进制信号,5组信号代表小车停止、前进、后退、左转和右转的状态。
同时,EDMA触发中断把SDRAM中处理完的数据传输到输出视频口VP0的FIFO缓冲区中,编码芯片SAA7121H把FIFO内的数据亮度分量Y到内部的D/A模块进行转换,得到所需的模拟视频信号,最后输出CVBS格式信号给相应的显示器。
4小车平台设计
智能小车采用嵌入式系统结构,单片机是小车控制核心。嵌入式系统控制平台工作在实时方式下,能对外部事物迅速做出反应,并且软件固化在存储芯片中,其稳定性较高。整个系统功耗低、体积小、集成度高。直流电机相对于其他类型电机较容易控制。
小车平台主要由电源管理模块、DSP图像处理模块、单片机控制模块、CCD传感器模块、显示模块和电机驱动模块构成。其硬件系统平台结构如图6所示。
图6 运动人体跟随系统硬件框图
单片机通过接收由DSP处理的运动物体位置信号,控制小车运行状态。本系统采用STC12C5A60S2单片机,属于增强型,是高速、低功耗、超强抗干扰的新一代80C51单片机,单片机具有两路PWM输出,可对小车直接进行调速。
小车采用后轮驱动,后轮左右两边各用一个直流电机进行驱动,为了提高单片机输出的控制信号功率,采用电机驱动芯片来实现。本设计中采用的电机驱动是L298N集成H桥芯片。该芯片有两组H桥电路分别控制两个电机。
本设计传感器模块采用的是SONY公司生产的CCD模拟摄像头,该摄像头性能优良,采用最新DSP数字信号处理技术,具有强大的抗电磁干扰能力,能够自动白平衡和背光补偿。
本系统采用的是12 V、3 000 MA的可充电锂电池,在充满电后电压为12.6 V。由于小车各模块的工作电压和工作电流不同,所以需要设计相应的电压转换电路以满足系统要求。
5小车控制信号设定与传输
小车运动设左转、右转、前进、后退和停止等五种状态,所以只需要DSP中的GPIO口提供4位的二进制数据即可。小车的电机状态控制主要通过状态机实现。控制小车左右前后的方案为:
在采集图像的横坐标内设定一个中间区域,当人体目标质心的横坐标c值处于该中间区域范围之内,则认为人体目标处于图像的中部。当c小于中间范围的最小值Cmin,则认为人体向左运动,这时候DSP中的GPIO口的后四位设置为0001,给小车向左的信号,使小车左转;当c值大于中间范围的最大值Cmax,则认为人体向右运动,这时候给小车向右的信号,这时候DSP中的GPIO口的后四位设置为0010,使小车右转。
只有在中间区域,才给小车前进后退的信号。若矩形跟踪框宽度w小于设定的宽度范围最小值Wmin,表明人体目标远离小车,这时候DSP中的GPIO口的后四位设置为0011,给小车前进的信号,使小车跟着人走;若w值大于设定的宽度范围最大值Wmax,表明人体目标靠近小车,这时候DSP中的GPIO口的后四位设置为0100,给小车后退的信号,使小车后退。当小车不满足以上条件时,处于停止状态,此时DSP中的GPIO口的后四位设置为0000。小车控制信号流程图如图7所示。
图7 小车控制信号的流程图
本系统通过多次测试,中间区域最小值Cmin取310个像素数,最大值Cmax取410个像素数。矩形跟踪框宽度范围最小值Wmin取85个像素数,最大值Wmax取95个像素数。
6测试过程及分析
测试1:跟踪框的移动有效性。测试中,DSP屏幕显示人体目标的反向投影图。首先运动人体从中间差分区域中检测出来,人站在中间区域,当人往左走的时候,反向投影图中的跟踪框整体往左移动,如图8(a)所示;当人往右走的时候,跟踪框整体往右移动,如图8(b)所示;当人往前慢慢靠近的时候,跟踪框整体逐渐变大,如图8(c)所示;当人往后慢慢远离的时候,跟踪框整体逐渐变小,如图8(d)所示。测试过程表明,判断小车前后跟随的跟踪框宽度和左右跟随的质心横坐标信号是有效的。
测试2:中间范围最佳值。中间范围,指的是当人体目标的质心横坐标在这个范围之内,则认为人体目标是在中间的,这时候小车不需要执行左转和右转跟随。从屏幕的一半开始划分,取180~540个像素数作为中间区域,测试时若发现该中间区域太大,小车因为没有左右跟随信号而停止。接着逐渐向缩小中间区域,最终得到310~410个像素数的横坐标值作为中间范围效果最好。当人体目标质心的横坐标的值小于中间范围的310个像素数,则认为人体向左运动,这时候给小车向左的信号,使小车左转。
测试3:小车前进、后退和停止的范围。经多次测试,选取90个像素数的跟踪框宽度作为小车停止的阈值。若跟踪框宽度小于设定的阈值,表明人体目标远离小车,这时给小车前进的信号,使小车跟着人走;若跟踪框宽度大于阈值,表明人体目标靠近小车,这时给小车后退的信号,使小车与人体保持一定的距离。设定小车停止范围的主要目的是让小车与人体时刻保持一定的安全距离。
在中间范围内小车才会前进和后退,这样做避免了混乱状态造成小车对人体的胡乱跟随,也就是有效避免了同时存在左前、右前、左后、右后的状态,使得小车有条理地实现人体前后左右的跟随。
(a) 人体向左运动
(b) 人体向右运动
(c) 人体向前运动
(d) 人体向后运动
图8运动人体反向投影测试图
Fig.8Moving human’s reverse projection test iamges
7结语
本文采用了帧间差分法对运动人体进行检测识别,计算目标区域的灰度直方图,采用了基于灰度直方图的Cam Shift跟随算法,计算出人体目标的在各帧图像上的反向投影图,求出人体目标框的中心坐标和大小,用于对人体目标运动方向的判断和跟踪。通过DSP对CCD采集的运动人体目标图像进行检测识别和跟踪处理,获得前进、后退、左转和右转四个驱动信号,驱动小车实现对运动人体跟随。
经过多次实地测试,本文设计的系统能够实现运动人体的前后左右的跟随,并时刻与人体保持一定安全距离。在背景比较复杂、目标移动过快或者离小车太近的情况下,系统还存在目标易丢失的现象。
参考文献:
[1]JARABA E H, URUNUELAA C O, SENAR J.Detected motion classification with a double-background and a neighborhood-based difference[J]. Pattern Recognition Letters, 2003, 24(12): 2079-2092.
[2]王亮亮, 王黎, 高晓蓉, 等.基于视频图像的运动目标检测算法研究[J]. 微计算机信息,2010, 26(6): 147-149.
[3]李亚楠,赵耀,林春雨,等.基于图像分割的金字塔Lucas-Kanade光流法提取深度信息[J]. 铁道学报,2015(1): 63-68.
[4]李根,李文辉.基于思维进化算法的人脸特征点跟踪[J]. 吉林大学学报:工学版,2015,45(2):606-612.
[5]余旺盛,田孝华,侯志强,等.基于关键区域特征匹配的视觉跟踪算法[J]. 电子学报,2014,42(11):2150-2156.
[6]谯帅,孙韶媛,谷小婧,等.基于轮廓跟踪的车载红外视频彩色化方法[J]. 应用光学,2012,33(4):727-732.
[7]YING W, GANG Hua, TING Y.Tracking articulated body by dynamic Markov network[C]//Proceedings Ninth IEEE International Conference on Computer Vision. Nice, France: IEEE Computer Society, 2003: 1094-1101.
[8]SPAGNOLO P, ORAZIO T D, LEO M, et al.Moving object segmentation by background subtraction and temporal analysis[J]. Image and Vision Computing, 2006, 24(5): 411-423.
[9]TISSAINAYAGAM P, SUTER D.Object tracking in image sequences using point feature[J]. Pattern Recognition,2005,38(1):105-113.
[10]BRADADSKI G R.Computer vision face tracking for use in a perceptual user interface[J]. Intel Technology Journal, 1998(2): 214-219.
[11]FUKUNAGA K, HOSTETLER L D.The estimation of gradient of a density function, with application in Pattern recognition[J]. IEEE Trans.on Information Theory, 1975, 21(1): 32-40.
[12]YIN H P, YANG S X, YANG X Y.Fast-moving target tracking based on mean shift and frame-difference methods[J]. Journal of Systems Engineering and Electronics, 2011, 22(4): 587-592.
[13]杜凯,宋京妮,巨永锋,等.一种融合改进Mean Shift和sift的跟踪算法[J]. 广西大学学报:自然科学版,2014,39(5):1102-1108.
(责任编辑梁碧芬)
A vehicle system of following moving human based on DSP
TAN Xiao-min, WEI Xue-mei, FENG Bin, CHEN Hua
(College of Computer, Electronics and Information, Guangxi University, Nanning 530004, China)
Abstract:To make up for the defects of fixed visual range and monitor human moving in real time, by using of image processing method, a vehicle system of following moving human has been designed. The system is based on digital signal processor (DSP) and on-board camera. Frame difference method has been used to detect moving human, and a following algorithm based on continuously adaptive mean shift (Cam Shift) using gray histogram has been proposed. It calculates the zero and first order matrix of the moving human's reverse projection and then determines its mass coordinate and width as the position and magnitude of tracking window in the next frame. Charge Coupled Device (CCD) camera captures the images of moving human and these images are processed in DSP later to detect and follow the target. By receiving signals of turning left, turning right, going forward and backward, a vehicle can be driven to follow moving human. The actual tests show that the system can achieve the goal of following human in left, right, front, rear direction as well as always keeping a safe distance with the moving human.
Key words:moving human’s following; DSP; moving car
中图分类号:TP277
文献标识码:A
文章编号:1001-7445(2015)06-1517-09
doi:10.13624/j.cnki.issn.1001-7445.2015.1517
通讯作者:陈华(1958—),男,广西桂平人,广西大学教授,博士; E-mail: chenhuacn@163.com。
基金项目:国家自然科学基金资助项目(61164019);广西大学大学生实验技能和科技创新能力训练基金项目(西大设字〔2012〕6号);2015年广西高等教育本科教学改革工程项目(2015JGA126;2015JGB123)
收稿日期:2015-07-21;
修订日期:2015-09-01