视觉跟踪机器人的设计与实现

2021-02-28 06:49广州城市理工学院电子信息工程学院张亦勋
电子世界 2021年22期
关键词:跟踪目标分类器单片机

广州城市理工学院电子信息工程学院 张亦勋

针对视觉机器人功能单一、抗干扰能力差等问题,本文设计一款能够对任意目标进行视觉识别和跟踪的机器人,该系统的视觉跟踪算法将TLD的中值流跟踪器替换成KCF算法,同时融入融合HOG特征和颜色特征,提高TLD算法的目标跟踪速度,系统测试结果表明,改进的跟踪算法在背景产生变化、目标的图像信息发生形变、目标被其他物体遮挡、目标突然丢失等问题都具有较高的稳定性和鲁棒性,同时对静态目标跟踪的帧数有所降低,能够快速瞄准目标。

随着计算机视觉算法技术的发展,计算机视觉算法成为众多人工智能领域的重要部分,也是智能机器人的重要组成部分,由计算机视觉和机器人这两方面所结合起来的视觉跟踪机器人有着广泛的应用前景。但目前大多数视觉机器人由于所需的计算机视觉算法的算法运算量大,但机器人自身的运算能力十分有限,导致大多数机器人实现功能单一、抗干扰能力差。

本文针对此问题,在分析现有的实现视觉跟踪机器人功能的基础上,设计了一款以KCF与TLD相结合的计算机视觉算法,基于STM32单片机为下位机控制机器人实现目标跟踪的视觉跟踪机器人。主要完成的工作包括了,计算机算法环境搭建,视觉跟踪算法的测试,测试结果表明,该系统具有较好的鲁棒性。

1 视觉跟踪算法

1.1 KCF算法

KCF(Kernel Correlation Filter)核相关滤波算法通过目标样本去训练判别分类器,训练判别分类器分析当前跟踪的目标是被跟踪目标周围的背景信息还是被跟踪目标,如图1所示。KCF通过岭回归分类器的学习来完成对目标的跟踪,通过快速傅里叶变化实现算法的加速运算。KCF跟踪算法在训练阶段,利用循环矩阵理论,对视频目标区域进行稠密采样,获取正负样本,提取方向梯度直方图(HOG)特征,通过岭回归分类器分析所以样本进行训练。在检测阶段,以视频前一帧目标位置为中心进行稠密采样,将得到的所有样本输入到岭回归分类器,经过岭回归分类器的分类,得到目标的位置。

图1 KCF算法流程图

1.2 TLD算法

TLD(Tracking-Learning-Detection)目标跟踪算法由跟踪模块(Tracking)、检测模块(Detection)、学习模块(Learning)三部分组成,如图2所示。该算法首先由跟踪模块的作用是将被跟踪目标的运动轨道处理成轨道碎片提供给学习模块进行学习,学习模块根据跟踪模块的处理结果进行学习并对检测模块的错误进行分析,通过学习处理后生成训练样本,检测模块在接收到训练样本后对相关参数和目标模型进行跟新并对跟踪模块重新初始化,其中跟踪模块为中值流跟踪器,学习模块为P-N目标模型学习。

图2 TLD算法流程图

1.3 视觉跟踪算法改进

图3 KCF+TLD算法融合流程图

KCF跟踪算法的运行速度方面和在目标环境变化不大的情况下跟踪速度表现优异,但其在被跟踪目标出现遮挡、形变、跟丢后无法找回目标,反观TLD解决了被跟踪目标被遮挡、目标跟丢无法重新找回的情况,因此将两个算法互相融合,取长补短能提高算法的运算速度和追踪效果。融合方法:利用KCF克服TLD的中值流跟踪器的缺点,将KCF替换TLD的中值流跟踪器,能够加快TLD的目标跟踪速度。当被跟踪目标在当前图像帧中消失后,KCF会把盲目地在背景中寻找被跟踪目标,当被跟踪重新出现时,KCF算法依然在背景中寻找被跟踪目标,导致跟踪失败,为了避免这个错误的方法,KCF与TLD融合的算法包含了原TLD学习模块,当判断目标丢失时不再盲目地在背景内寻找目标,当目标重新出现时重新跟踪目标,进一步提高算法的跟踪性能。虽然这两个算法的融合方法很简单,但融合后的算法确实解决了KCF不能跟踪被遮挡的物体以及目标跟踪后不能找回的缺点,而且算法速度上高于原TLD算法,提高了算法的性能和适用性。

2 机器人控制系统设计

机器人系统总体框架如图4所示,USB摄像头拍摄到的图像信以视频帧的形式传入到程序中。首先先进行KCF的滤波和特征跟踪,再经由TLD算法的处理运算出目标状态,再通过整合模块把得到被跟踪目标的位置信息转换为云台舵机转动命令发送,通过CH340模块将指令由USB转为TTL电平,机器人下位机通过STM32单片机直接或间接地控制各个模块实现机器人的各个功能。STM32单片机在接收到PS2手柄模块和CH340模块的控制信号后,根据程序存储器对应的指令执行行动,如前进、水弹枪射击等。STM32单片机实时接收各模块的信息,例如编码电机的电机转速,陀螺仪的欧拉角等,根据各模块的信息及时调整机器人的运动状态实现机器人运动底盘的灵活移动。摄像头所拍摄的图像信息并不会直接交给STM32单片机除了,而是先经由上位机NUC通过视觉追踪算法运算过后所得的控制指令发送给单片机接收,单片机接收到通过CH340转换的控制指令后控制舵机云台转动追踪目标。

图4 机器人系统总体框架设计

3 机器人目标跟踪算法软件设计

目标跟踪算法软件实现流程图如图5所示。由于该目标跟踪算法的运算结果只返回一个跟踪框,并没有实际的跟踪结果,所以需要获取被跟踪目标所在图像中的坐标,获取包围被跟踪目标的矩形重心后,才能方便实现目标跟踪算法。计算出被跟踪目标的矩形包围框的重心后,先对图像帧区域进行划分,使用渐近式接近目标区域为核心思想,将每一帧的图像划分为许多相同的矩形区域。随后根据KCF+TLD目标跟踪算法运算得出的结果框的重心与图像正中心对比,计算出被跟踪目标与图像正中心坐标的偏移量,再通过舵机控制算法计算出舵机云台的转动量,逐帧接近目标所在位置,达到跟踪效果。

图5 目标跟踪算法软件实现流程图

4 系统视觉跟踪算法测试

为保证系统测试的可靠性,设置了遥控车为移动目标靶,机器人先对移动目标进行框选获得目标样本,随后遥控移动目标测试机器人的实际追踪效果。

通过测试可以发现在算法实际运行时,跟踪目标的移动会导致目标的背景产生变化、目标的图像信息发生形变、目标被其他物体遮挡、目标突然丢失等问题,摄像头拍摄目标所在的图像信息发生变化,KCF+TLD跟踪算法通过在线不断对目标进行样本取样学习目标特征,能够有效应对移动目标的跟踪瞄准。

当目标因为某种原因跟丢后(目标被遮挡也算跟丢),目标跟踪算法会根据选取目标时保留的原始样本的特征值在图像信息内搜索。符合原始样本目标特征的图像将被重新判断为被跟踪目标。测试结果表1和表2所示。

表1 静态目标瞄准测试结果

机器人对移动目标跟踪、锁定和瞄准测试,测试结果表2所示。

表2 移动目标瞄准测试结果

通过三个算法分别对静态目标的跟踪算法帧数测试如图6所示,得出数据结果表3所示,KCF算法的运行帧数较高,TLD算法的运行帧数较低,而KCF+TLD算法的运行帧数比TLD算法有所降低。

图6 三种算法跟踪静态目标实际运行帧数画面

表3 三种算法对静态目标跟踪算法帧数测试结果

基于视觉跟踪机器人的设计与实现,采用了融合KCF+TLD的目标跟踪算法以及NUC作为视觉算法运行环境,可以对任意目标进行跟踪瞄准并在目标丢失并重新出现时自动找回目标,同时能够长时间稳定地跟踪目标,该方案功能实现对视觉机器人的目标识别与跟踪具有一定的研究价值。

猜你喜欢
跟踪目标分类器单片机
核相关滤波与孪生网络相结合的目标跟踪算法
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
基于图割理论的尺度自适应人脸跟踪算法
连续同色调背景下运动目标自适应跟踪
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
基于卡尔曼和图像信息量的Mean Shift改进跟踪算法
Microchip推出两个全新PIC单片机系列