掌桥专利:专业的专利平台
掌桥专利
首页

目标跟踪方法、目标跟踪系统及存储介质

文献发布时间:2024-04-18 19:52:40



技术领域

本发明涉及计算机视觉技术领域,具体而言,涉及一种目标跟踪方法、目标跟踪系统及存储介质。

背景技术

目标跟踪技术一直是计算机视觉研究中的热点,近年来,随着计算机视觉技术越发成熟,目标跟踪技术在生活中有着广泛应用,如航拍的人物跟踪。目标跟踪的主要思路是在获取的视频图像中遍历寻找感兴趣区域,依靠视觉特征、统计特征、变换系数特征以及代数特征等多个特征将图像序列中的感兴趣区域进行匹配跟踪。目前,目标跟踪需要依赖于大量样本,运算量大。

发明内容

有鉴于此,本申请实施例的目的在于提供一种目标跟踪方法、目标跟踪系统及存储介质,能够改善目标跟踪需要依赖于大量样本,且运算量大的问题。

为实现上述技术目的,本申请采用的技术方案如下:

第一方面,本申请实施例提供了一种目标跟踪方法,所述方法包括:

获取由摄像头拍摄得到的待识别图像;

当所述待识别图像中存在待测目标时,对所述待识别图像中的所述待测目标进行锚框标记;

将具有所述锚框的所述待识别图像输入KCF跟踪模块,以在所述待识别图像中确定目标位置;

通过所述KCF跟踪模块,确定所述待识别图像的中心点与所述目标位置的偏移量;

根据所述偏移量,控制安装有所述摄像头的舵机转动,以使所述待识别图像的中心点与所述目标位置的偏移量在预设范围内。

结合第一方面,在一些可选的实施方式中,在获取由摄像头拍摄得到的待识别图像之前,所述方法还包括:

基于KCF算法,创建所述KCF跟踪模块。

结合第一方面,在一些可选的实施方式中,基于KCF算法,创建所述KCF跟踪模块,包括:

获取训练数据集,所述训练数据集包括图像块x

根据所述训练数据集,构建最小代价函数,表示为:

其中,w指使得x

直接求解f(x)得到:

w=(X

其中,X为基于图像块x所生成的循环矩阵;I为单位矩阵,y为标签值y

引入核函数以将目标跟踪表示为f(z)=w

则f(z)表示为:

记k(x

其中,k为核函数;k(x

α=(K+λI)

当K为循环矩阵,则训练过程对偶空间α的计算表示为:

其中,Fdiag表示在傅氏空间内使用离散傅里叶矩阵进行对角化处理,F是离散傅里叶常量矩阵,F

简化

其中,运算符^表示复域的计算,复域计算的模块作为所述KCF跟踪模块,用于对所述待识别图像进行检测得到跟踪结果,公式表示为:

其中,计算得到响应值

结合第一方面,在一些可选的实施方式中,将具有所述锚框的所述待识别图像输入KCF跟踪模块,以在所述待识别图像中确定目标位置,包括:

将具有所述锚框的所述待识别图像输入KCF跟踪模块,由所述KCF跟踪模块通过公式

结合第一方面,在一些可选的实施方式中,在对所述待识别图像中的所述待测目标进行锚框标记之前,所述方法还包括:

通过基于OpenCV搭建的目标检测模块,对所述待识别图像进行识别,以判断所述待识别图像中是否存在所述待测目标。

结合第一方面,在一些可选的实施方式中,根据所述偏移量,控制安装有所述摄像头的舵机转动,包括:

当所述偏移量超过预设阈值时,将所述偏移量进行归一化,得到经过归一化后的偏移量;

根据所述经过归一化后的偏移量,利用位置式PID算法控制安装有所述摄像头的所述舵机转动。

结合第一方面,在一些可选的实施方式中,所述待测目标包括人脸、车辆、指定种类的动物中的至少一种。

结合第一方面,在一些可选的实施方式中,所述待识别图像为经过预处理后的环境图像,所述预处理包括灰度化及直方图均衡化处理。

第二方面,本申请实施例还提供一种目标跟踪系统,所述目标跟踪系统包括相互耦合的处理器及存储器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述目标跟踪系统执行上述的方法。

第三方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述的方法。

采用上述技术方案的发明,具有如下优点:

在本申请提供的技术方案中,当待识别图像中存在待测目标时,对待识别图像中的待测目标进行锚框标记;再将具有锚框的待识别图像输入KCF跟踪模块,以在待识别图像中确定目标位置;通过KCF跟踪模块,确定待识别图像的中心点与目标位置的偏移量;根据偏移量,控制安装有摄像头的舵机转动,以使待识别图像的中心点与目标位置的偏移量在预设范围内。其中,KCF跟踪模块在运算过程中无需占用大量资源,不依赖于大量样本,有利于提升运算速度。

附图说明

本申请可以通过附图给出的非限定性实施例进一步说明。应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的目标跟踪方法的流程示意图。

图2为本申请实施例提供的基于待测图像计算偏移量的示意图。

具体实施方式

以下将结合附图和具体实施例对本申请进行详细说明,需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号,附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

本申请实施例提供一种目标跟踪系统。目标跟踪系统可以包括处理模块及存储模块。存储模块内存储计算机程序,当计算机程序被所述处理模块执行时,使得目标跟踪系统能够执行下述目标跟踪方法中的相应步骤。

在本实施例中,目标跟踪系统可以包括上位机与下位机。上位机可以包括摄像头、第一处理模块;下位机可以包括第二处理模块、舵机。即,上位机可以通过摄像头采集图像,并通过第一处理模块对图像进行目标跟踪,并计算待识别图像的中心点与目标位置的偏移量。第二处理模块可以从第一处理模块接收该偏移量,并基于该偏移量控制舵机转动,以实现对目标跟踪。需要说明的是,在其他实施方式中,上位机与下位机可以合并为一体。

在本实施例中,摄像头可以安装在舵机上,通过舵机的转动,可以实现摄像头对目标的跟踪拍摄。

请参照图1,本申请还提供一种目标跟踪方法。其中,目标跟踪方法可以包括如下步骤:

步骤110,获取由摄像头拍摄得到的待识别图像;

步骤120,当所述待识别图像中存在待测目标时,对所述待识别图像中的所述待测目标进行锚框标记;

步骤130,将具有所述锚框的所述待识别图像输入KCF跟踪模块,以在所述待识别图像中确定目标位置;

步骤140,通过所述KCF跟踪模块,确定所述待识别图像的中心点与所述目标位置的偏移量;

步骤150,根据所述偏移量,控制安装有所述摄像头的舵机转动,以使所述待识别图像的中心点与所述目标位置的偏移量在预设范围内。

下面将对目标跟踪方法的各步骤进行详细阐述,如下:

在步骤110之前,方法可以包括:

基于KCF(Kernel Correlation Filter,核相关滤波)算法,创建所述KCF跟踪模块。

其中,KCF算法具有不占用大量资源、处理速度快以及跟踪精度高的特点。KCF算法通过循环矩阵的方式对不同方位的目标进行密集采样产生大量样本,并利用这些样本训练回归器。利用该回归器去计算下一帧预测位置附近的采样点响应,响应最强的采样点为目标位置。

在本实施例中,基于KCF算法,创建所述KCF跟踪模块,包括:

获取训练数据集,所述训练数据集包括图像块x

根据所述训练数据集,构建最小代价函数,表示为:

其中,w指使得x

直接求解f(x)得到:

w=(X

其中,X为基于图像块x所生成的循环矩阵,I为单位矩阵,y为标签值y

由于计算量过大,因此,可以引入核函数将目标跟踪的问题扩展到非线性空间,即,引入核函数以将目标跟踪表示为f(z)=w

则f(z)表示为:

记k(x

其中,k为核函数;k(x

α=(K+λI)

当x内部元素顺序更换不影响核函数取值,则可以保证K也是循环矩阵,当K为循环矩阵,则训练过程对偶空间α的计算表示为:

其中,Fdiag表示在傅氏空间内使用离散傅里叶矩阵进行对角化处理,F是离散傅里叶常量矩阵,F

简化

其中,运算符^表示复域的计算,复域计算的模块作为所述KCF跟踪模块,用于对所述待识别图像进行检测得到跟踪结果,公式表示为:

其中,计算得到响应值

在步骤110中,所述待识别图像为经过预处理后的环境图像,所述预处理包括灰度化及直方图均衡化处理。即,摄像头采集的环境图像在进行待测目标检测之前,可以对环境图像进行灰度化、直方图均衡化等预处理操作,从而得到待识别图像。

在步骤120之前,方法还可以包括:

通过基于OpenCV搭建的目标检测模块,对所述待识别图像进行识别,以判断所述待识别图像中是否存在所述待测目标。其中,所述待测目标可以包括但不限于人脸、车辆、指定种类的动物中的至少一种。

在本实施例中,将以待测目标为人脸,举例阐述步骤的实现过程。例如,基于OpenCV搭建的目标检测模块主要是利用Haar级联完成捕捉人脸功能的。Haar级联分类器是基于Haar特征,运用积分图加速计算图像的各个像素,并用Adaboost训练的强分类器级联的方式来进行人脸检测。

在本实施例中,需要在开启摄像头之前加载OpenCV库的目标检测模块,然后,对摄像头采集的环境图像进行预处理(灰度化、直方图均衡化),之后将预处理后的图像(即为待识别图像)输入目标检测模块进行比对。

在步骤120中,对比对成功后,目标检测模块对人脸(或其他待测目标)进行锚框标记,并将人脸信息作为KCF跟踪模块的输入。其中,此时的锚框标记为对待测目标的初步位置的检测。

在步骤130中,利用KCF跟踪模块可以对待测目标位置的进一步检测。目标位置可理解为通过KCF跟踪模块作进一步识别检测得到的待测目标的锚框的位置。

步骤130可以包括:

将具有所述锚框的所述待识别图像输入KCF跟踪模块,由所述KCF跟踪模块通过公式

请参照图2,在步骤140中,以待识别图像的中心点作为计算目标位置的偏移量的参考点,作为目标值。待识别图像的中心点即为Target(x

步骤150可以包括:

当所述偏移量超过预设阈值时,将所述偏移量进行归一化,得到经过归一化后的偏移量;

根据所述经过归一化后的偏移量,利用位置式PID算法控制安装有所述摄像头的所述舵机转动。

可理解地,预设阈值可以根据实际情况灵活设置,可以指舵机活动范围。即,偏移量过大,比如,偏移量直接超过舵机的活动范围,则需要进行归一化处理,公式为:

offset=(Real/h–0.5)*2

其中,h为图像的宽度或者高度,经过归一化处理之后,偏移量的取值就变化到[-1,1]。若偏移量未超过舵机的活动范围,则可以无需对偏移量进行归一化处理。

在控制舵机转动时,需要舵机快速转到期望的某个角度。在本实施例中,采用的是位置式PID算法,公式为:

式中,e

在搭建目标跟踪系统时,下位机的处理模块可以为STM32单片机。首先,在下位机上需要开启STM32单片机的两个串口接收数据,再开启该单片机的两个时钟通道进行PWM电调。完成电调之后,需要进行相应引脚的连接,由于STM32使用USB232相连只能接收一个串口的数据,所以需要搭配USB转TTL让另外一个串口进行接收。一个串口接收图像x方向的偏移信息,另外一个串口接收图像y方向的偏移信息。上位机开启摄像头进行目标跟踪之后,二自由度云台(即为舵机)反应速度平均在10ms,满足实时检测的需求。

基于上述设计,通过使用归一化方法使得数据处理起来更加方便;另外,基于KCF算法的目标跟踪,不依赖于大量样本,有利于提升运算速度,减少运算量。

在本实施例中,处理模块(指第一处理模块和第二处理模块)可以是一种集成电路芯片,具有信号的处理能力。上述处理模块可以是通用处理器。例如,该处理器可以是中央处理器(Central Processing Unit,CPU)、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。例如,处理模块可以为STM32单片机。

存储模块可以是,但不限于,随机存取存储器,只读存储器,可编程只读存储器,可擦除可编程只读存储器,电可擦除可编程只读存储器等。在本实施例中,存储模块可以用于存储待识别图像、KCF跟踪模块等。当然,存储模块还可以用于存储程序,处理模块在接收到执行指令后,执行该程序。

需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的目标跟踪系统的具体工作过程,可以参考前述方法中的各步骤对应过程,在此不再过多赘述。

本申请实施例还提供一种计算机可读存储介质。计算机可读存储介质中存储有计算机程序,当计算机程序在计算机上运行时,使得计算机执行如上述实施例中所述的目标跟踪方法。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现,基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,目标跟踪系统,或者网络设备等)执行本申请各个实施场景所述的方法。

综上所述,本申请实施例提供一种目标跟踪方法、目标跟踪系统及存储介质。在本方案中,当待识别图像中存在待测目标时,对待识别图像中的待测目标进行锚框标记;再将具有锚框的待识别图像输入KCF跟踪模块,以在待识别图像中确定目标位置;通过KCF跟踪模块,确定待识别图像的中心点与目标位置的偏移量;根据偏移量,控制安装有摄像头的舵机转动,以使待识别图像的中心点与目标位置的偏移量在预设范围内。其中,KCF跟踪模块在运算过程中无需占用大量资源,不依赖于大量样本,有利于提升运算速度。

在本申请所提供的实施例中,应该理解到,所揭露的装置、系统和方法,也可以通过其它的方式实现。以上所描述的装置、系统和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

技术分类

06120116334222