殷启明,邓永和,蒋宇洋,喻顺涛,肖悦之
(湖南工程学院 计算科学与电子学院,湘潭 411104)
红外技术通过两百年来的发展和沉淀,技术趋于成熟,由于红外成像清晰、成本较低,对场景中的人体目标进行检测和跟踪一直以来都受到人们的关注,在各类生产应用场景中得到广泛应用.在计算机视觉领域中,人体目标的检测与跟踪已成为一个重要分支,在机器人视觉、人机对话、智能监控等方面有着良好的发展潜力和潜在的实用价值.由于人体的非刚体性、复杂的姿态变化以及复杂运动导致人体成像的大小变化,再加上背景干扰、目标遮挡以及目标运动的随意性等特点[1],使得这一课题的研究更具挑战性.对Mean Shift 算法应用于红外跟踪中的不足提出了解决方法,采用Kalman 滤波和Bhattacharyya 系数遮挡判定因子结合的方法解决了在目标快速运动和遇到遮挡情况下的跟踪效果差的问题[2].
设计的红外摄像头自动跟踪系统,能够对镜头下的目标物体进行自动跟踪拍摄.通过红外自动跟踪摄像头的检测设备对周围环境中的数据进行检测,摄像头将采集到的数据输入系统数据处理中心,系统微处理器通过CPU 进行数据化读取储存,并且通过控制逻辑判断是否存在异常数据,最后进行处理与反馈[2].
红外跟踪摄像头模块采用的是ov7725 并带有FIFO(先入先出,对设备运行要求不高)的摄像头模块,ov7725 适用RGB(颜色标准)和YUV(颜色编码方法).采用STM32 F103zet6 单片机作为主控模块,TFT/LCD 240-320 作为显示模块,搭配的舵机sg90进行移动目标物体的指向工作.当目标物体出现在镜头范围内时,摄像头获取环境数据,将环境数据发送给单片机,单片机的微处理中心对环境数据进行处理.摄像头取阈值进行判断并构建坐标系,当目标物体发生移动时,将数据传递给舵机,发出对应的PWM 波,驱动舵机跟随移动,完成整个自动跟踪拍摄工作.硬件设计实物如图1 所示.
图1 硬件实物图
如图2 所示,Mean Shift 算法是一个无参数概率密度估计算法,对人体目标的随意性运动有很强的适应能力,能够很好地跟踪非刚体目标.但是对目标物快速运动以及旋转、形变等姿态运动变化不敏感.Mean Shift 算法的主要优点是能在短时间内收敛、计算量小、计算速度快,特别适合于对实时性要求很高的摄像跟踪目标系统,Mean Shift 算法系统比较独立,适合独立模块化,适合与其他算法集成[6].
图2 Mean Shift算法迭代过程
卡尔曼滤波是一种数值估计优化算法,在不需要储存很长的先验数据的情况下就能更新系统模型,在系统模型的确切性质不完全明了的情况下就能够估计信号的状态[7].可以利用运动目标上一帧的图像信息对目标运动进行预测,能很好地弥补Mean Shift 算法对目标物的旋转与形变等运动变化不敏感的缺陷.利用卡尔曼滤波来预测出目标的大体位置,采用Mean Shift 算法与卡尔曼滤波结合的方法,能够很好地解决运动目标的快速运动问题[8].
对于遮挡问题,使用Bhattacharyya 系数作为遮挡判定因子[9].当目标被遮挡时,Bhattacharyya 系数迅速减少,此时Mean Shift 算法收敛到与目标最相似的区域,Mean Shift 算法不能较准确地识别目标.当采取遮挡处理后重新获得了目标,目标匹配的Bhattacharyya 系数迅速恢复,因此可以作为遮挡判定的依据.
为了确保红外跟踪摄像头的高性能和稳定性,长时间持续稳定工作是关键,数据的安全性和连续性体现在视频完整性和信息连续性.在运行人脸特征检测跟踪的模型的同时,对摄像头捕捉到的图片帧进行连续的视频封装,封装的视频为AVI(Audio Video Interleaved)格式,最大的特点就是其强大的兼容性和宽泛的应用场景[10].
在进行视频封装保存的时候,规定保存视频的路径(path)为“/sd/yst/avi”,之后每一次写入视频之前,系统管理的模块os 会对这个目录下文件个数进行统计,最新的视频保存的文件名为(path +“/”+str(num)+“.avi”)如果文件夹中有76 个视频文件,则下一个保存的视频文件名为77.avi.这样的保存模式可以确定最新的视频文件,便于计算机进行管理.由于该设计没有配备UPS 电源,为避免突发性供电缺失导致视频数据丢失,设置为40 s 保存一下视频,最大限度地保证视频内容的时空逻辑的连续性.
如图3 所示,文件夹中的187.avi 和190.avi 未能正确地显示出来,是因为在突发断电的情况下,程序未能及时完成视频保存工作,导致视频文件受到损坏,对于该类连续的文件,需要分时进行保存操作,避免一旦断电,导致长时间录制的文件被损坏,而分时保存文件在连续性上能够得到保障,稳定性也会大幅度提高.
图3 视频保存
联合调试是对数据采集、人机交互各环节进行调试,检测系统运行过程中各个数据获取的衔接,在整个外围模块联合调试过程中,会因为模块适应性问题、数据传输方式问题,导致相关的数据显示、获取、打包出现异常、乱码提示等错误.针对存在的问题,必须进行兼容性测试调整.只有在一次一次的迭代测试过程中,分析各种异常情况,解决各种异常问题,才能成功实现舵机对移动物体做出指向工作,如图4 所示.
图4 目标物体跟踪(左图)与舵机指向工作(右图)
在经过调试和测试后,达到了预期的设计效果,当目标在摄像头有效范围内发生移动时,目标跟踪系统可以实时、准确跟踪视频画面中框选的目标,实现人脸目标跟踪,如图5 所示.
图5 人脸目标跟踪
从图6 中的Bhattacharyya 系数变化曲线中可以看出,当遮挡发生时,Bhattacharyya 系数迅速减少,因此可以作为遮挡判定的依据.
图6 Bhattacharyya系数变化图
当遮挡面积比较大或者全遮挡发生时,采用卡尔曼滤波对目标进行一次线性预测,结束后在预测位置进行Mean Shift 搜索,对搜索到的极值点的目标窗口内的Bhattacharyya 系数进行判定,达到了预期效果.
经过测试,设计的红外摄像头自动跟踪系统,能够对镜头下的目标物体进行自动跟踪拍摄.系统能够成功地实现应急情况的处理.主要优点有:(1)红外跟踪摄像头能够对出现在镜头下的环境数据进行采集,并将采集到的数据转化为可传输形式.(2)系统建立了可实时传输数据的通道,能够对环境数据进行采集,处理器能够对数据进行处理、分离和反馈.(3)可实现友好的人机交互,能够实现数据的展示,将分析处理后的数据显示在模块上.
以红外摄像头的目标跟踪系统作为研究对象,设计的红外跟踪摄像头系统,通过硬件连接设计、软件逻辑设计实现整个系统自主化工作.采用了Mean Shift 算法与卡尔曼滤波结合方法,采用Bhattacharyya 系数作为遮挡判定因子,解决快速运动与遮挡问题,实现响应更加快速,工作更加稳定,判断更加准确,极大程度地提升了该设计的鲁棒性、科学性和实用性.