发明内容
为了解决现有技术中的上述问题,即为了解决现有的视觉跟踪方法由于计算量大、在长时间跟踪过程中模板更新容易出现错误以及训练样本需求量大,导致目标追踪定位的实时性较差、精度较低的问题,本发明第一方面,提出了一种基于立体视觉的长时无人机跟踪定位方法,该方法包括:
步骤S100,获取t时刻的双目视觉图像对,作为输入图像对;
步骤S200,对所述输入图像对进行预处理,并通过双目立体匹配算法对预处理后图像对中的两个图像进行匹配,得到三维点云数据;
步骤S300,采用预设的聚类方法对所述三维点云数据进行聚类,获取待定位目标的候选区域;
步骤S400,对各候选区域,通过模板匹配算法分别将其与第一图像匹配,得到其对应的第一匹配度,并通过预设的第一方法分别将其与第二图像匹配,得到其对应的第二匹配度;所述第一图像为预设的待定位目标的模板图像;所述第二图像为t-1时刻待定位目标的目标区域图像;
步骤S500,若各候选区域的第一匹配度大于设定的第一阈值且第二匹配度小于设定的第二阈值,则将其作为待定位目标的目标区域。
在一些优选的实施方式中,步骤S200中“对所述输入图像对进行预处理”,其方法为:
对所述输入图像对进行高斯平滑处理,处理后进行预设N倍的下采样;其中,N为正整数。
在一些优选的实施方式中,步骤S300中“采用预设的聚类方法对所述三维点云数据进行聚类,获取待定位目标的候选区域”,其方法为:
通过三维密度聚类方法对所述三维点云数据进行聚类,得到多个点云团;所述三维密度聚类方法以距离相似度进行聚类;
采用基于颜色的分布聚类方法分别对各点云团进行聚类,得到待定位目标的候选区域。
在一些优选的实施方式中,步骤S400中“通过预设的第一方法分别将其与第二图像匹配,得到其对应的第二匹配度”,其方法为:
对各候选区域,以候选区域和t-1时刻的目标区域中尺寸较大者为准,对较小者的区域进行校准;
将校准后的两个区域进行三重平滑处理,处理后,获取两个区域的对应位置的距离;
对各距离进行平均处理,将平均结果作为候选区域的第二匹配度。
在一些优选的实施方式中,若步骤S500中获取的目标区域有多个,则将最小第二匹配度对应的目标区域作为最终待定位目标的目标区域。
在一些优选的实施方式中,所述第一图像其更新方法为:
通过预训练的第一网络获取t时刻待定位目标的目标区域图像与t-1时刻的第一图像的欧氏距离,若该距离大于设定的距离阈值,则用t时刻待定位目标的目标区域图像更新第一图像,否则,第一图像不更新;所述第一网络基于深度可分卷积神经网络构建。
本发明的第二方面,提出了一种基于立体视觉的长时无人机跟踪定位系统,该系统包括图像对获取模块、三维点云获取模块、候选区域获取模块、匹配度获取模块、目标区域获取模块;
所述图像对获取模块,配置为获取t时刻的双目视觉图像对,作为输入图像对;
所述三维点云获取模块,配置为对所述输入图像对进行预处理,并通过双目立体匹配算法对预处理后图像对中的两个图像进行匹配,得到三维点云数据;
所述候选区域获取模块,配置为采用预设的聚类方法对所述三维点云数据进行聚类,获取待定位目标的候选区域;
所述匹配度获取模块,配置为对各候选区域,通过模板匹配算法分别将其与第一图像匹配,得到其对应的第一匹配度,并通过预设的第一方法分别将其与第二图像匹配,得到其对应的第二匹配度;所述第一图像为预设的待定位目标的模板图像;所述第二图像为t-1时刻待定位目标的目标区域图像;
所述目标区域获取模块,配置为若各候选区域的第一匹配度大于设定的第一阈值且第二匹配度小于设定的第二阈值,则将其作为待定位目标的目标区域。
本发明的第三方面,提出了一种存储装置,其中存储有多条程序,所述程序应用由处理器加载并执行以实现上述的基于立体视觉的长时无人机跟踪定位方法。
本发明的第四方面,提出了一种处理装置,包括处理器、存储装置;处理器,适用于执行各条程序;存储装置,适用于存储多条程序;所述程序适用于由处理器加载并执行以实现上述的基于立体视觉的长时无人机跟踪定位方法。
本发明的有益效果:
本发明提高了目标追踪定位的实时性及精度。本发明以双目视觉-聚类的方法缩小候选区域的选择范围,以快速的小区域模版匹配算法实现最终目标的跟踪定位,并以轻量级神经网络作为辅助检测,实现对多尺度目标的高精度高速率跟踪。
本发明的神经网络不依赖大量的数据训练,比较适用于无人机等数据集难以获取的场景。而且在进行模板更新时,以距离阈值进行相似度的度量,能够实现对跟踪算法的纠错,即使出现跟踪错误的情况依旧能够将跟踪纠正回正确的状态。
除此之外,对于本来不在视野后续又进入到视野的目标,本发明的方法也能够自动识别,进一步提高目标追踪定位的精度。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明的基于立体视觉的长时无人机跟踪定位方法,如图1所示,包括以下步骤:
步骤S100,获取t时刻的双目视觉图像对,作为输入图像对;
步骤S200,对所述输入图像对进行预处理,并通过双目立体匹配算法对预处理后图像对中的两个图像进行匹配,得到三维点云数据;
步骤S300,采用预设的聚类方法对所述三维点云数据进行聚类,获取待定位目标的候选区域;
步骤S400,对各候选区域,通过模板匹配算法分别将其与第一图像匹配,得到其对应的第一匹配度,并通过预设的第一方法分别将其与第二图像匹配,得到其对应的第二匹配度;所述第一图像为预设的待定位目标的模板图像;所述第二图像为t-1时刻待定位目标的目标区域图像;
步骤S500,若各候选区域的第一匹配度大于设定的第一阈值且第二匹配度小于设定的第二阈值,则将其作为待定位目标的目标区域。
为了更清晰地对本发明基于立体视觉的长时无人机跟踪定位方法进行说明,下面结合附图对本发明方法一种实施例中各步骤进行展开详述。
步骤S100,获取t时刻的双目视觉图像对,作为输入图像对。
双目立体视觉系统是机器视觉的一种重要形式,其基于视差原理并利用成像设备从不同位置获取被测物体的两幅图像,通过计算图像对应点间的位置偏差,来获取物体三维几何信息,解决了单目相机的尺度不确定性。
在本实施例中,获取双目相机拍摄的图像,即双目视觉图像对。
步骤S200,对所述输入图像对进行预处理,并通过双目立体匹配算法对预处理后图像对中的两个图像进行匹配,得到三维点云数据。
在本实施例中,以经典的块匹配BM算法为基础,对双目视觉图像对中的两幅图像进行匹配,获取三维点云数据。
为了提升双目立体匹配算法的实时性和鲁棒性,在进行双目视觉图像对中两幅图像的匹配之前,先对原始图像进行去噪处理,即通过高斯平滑处理,使得图像对噪声变得不敏感。去除噪声后,进行预设N倍的下采样,降低立体匹配算法的计算量。在本发明中,N优选为2。
步骤S300,采用预设的聚类方法对所述三维点云数据进行聚类,获取待定位目标的候选区域。
在本实施例中,根据立体匹配得到的三维场景的点云数据,对其进行三维密度聚类,得到多个点云团,并基于颜色的分布聚类分别对各点云团进行聚类,得到待定位目标的候选区域。在本实施例中,三维密度聚类优选采用基于几何相似度的密度聚类方法。通过几何-颜色的多模态聚类处理,如图3所示,保证了聚类结果一致性,避免待定位目标与背景之间的相似颜色的混叠和空间位置连续性的混叠,本发明中待定位目标为无人机。
步骤S400,对各候选区域,通过模板匹配算法分别将其与第一图像匹配,得到其对应的第一匹配度;并通过预设的第一方法分别将其与第二图像匹配,得到其对应的第二匹配度;所述第一图像为预设的待定位目标的模板图像;所述第二图像为t-1时刻待定位目标的目标区域图像。
现有的跟踪方法通常采用滤波跟踪方法,该方法用于短时跟踪,一般在几十帧内有效,一旦长时跟踪,不可避免的遇到模板更新错误的问题,模板更新错误,就会使得后续的跟踪彻底错误。
在本实施例中,通过模板匹配算法进行短时高精度的跟踪,将模板(即图3中的跟踪模板状态)和多个候选区域分别匹配(即图3中的特征点匹配),从而得到模板对候选区域的匹配度,作为第一匹配度。
由于特征点匹配的准确度无法满足仍旧存在匹配错误的问题,为保证跟踪目标的准确性,引入基于仿生运动检测器的思想,并构建仿生运动目标检测的方法。具体如下:
基于获取的t-1时刻的目标区域图像,t时刻的候选区域图像,分别标记为R1、R2。由于两个区域的尺寸会存在细微差异,将尺寸较小的区域扩大为与较大区域相同的尺寸,对于扩大后的两个区域,对两个区域均进行三重高斯平滑处理。
将得到的两个平滑后的区域以对应位置做差的方式求绝对值距离,并对整个区域的绝对值距离进行平均处理,得到最终结果,即第二匹配度。
步骤S500,若各候选区域的第一匹配度大于设定的第一阈值且第二匹配度小于设定的第二阈值,则将其作为待定位目标的目标区域。
在本实施例中,依据场景及数据集,设置阈值,对于差异较小的目标,可认为其置信度高。即根据特征点匹配结果、仿生运动目标匹配结果进行多特征融合(即对候选区域的匹配度进行综合判断),从而实现对最终预测框的决策。具体处理过程如下:
根据预设的阈值对各候选区域的第一匹配度、第二匹配度进行比对,若该区域的匹配度符合阈值的判断条件,则将其作为待定位目标的目标区域。即各候选区域的第一匹配度大于设定的第一阈值且第二匹配度小于设定的第二阈值,则将其作为待定位目标的目标区域。
若获取的目标区域有多个,则将最小第二匹配度对应的目标区域作为最终待定位目标的目标区域。
另外,在模版匹配过程中,为了实现好的模版匹配效果,需要对模版进行及时更新。为了保证模版更新的可靠性,将神经网络引入模版更新的过程。将原始模版和待选择的模板通过神经网络处理,即将获取的t时刻待定位目标的目标区域图像与t-1时刻的模板图像通过神经网络处理,从而得到一维的神经向量,计算两个神经向量之间的相似度(如图3中的相似度量),神经网络相似度分类算法负责跨时长的目标检测任务,能够实现对新加入目标的检测、以及跟踪错误后的纠错功能。
其中,神经网络基于深度可分卷积神经网络构建,例如MobileNet、ShuffleNet,在本发明中优选采用MobileNet。并使用基于ImageNet数据集的预训练参数,输出维度为1000。其中,数据集和输出维度为本发明优选进行设置的,在其他实施例中可以根据实际情况进行选取。
在初始阶段,对待定位目标即无人机,采集X幅图像(本发明中优选设置X为100),并使用MobileNet处理,对得到的100个1000维度的向量求去平均值,该平均值作为神经网络度量标准向量。对于每个候选区域,采用MobileNet对其进行处理,得到1000维度的向量,将该向量与度量标准向量求欧式距离,将距离大于预设的距离阈值的目标区域作为t时刻的模板图像进行更新,否则不更新。由于神经网络不需要进行更新等操作,因此避免了短时预测中的模版更新错误的问题。在本实施例中,距离阈值优选设置为0.6。
本发明第二实施例的一种基于立体视觉的长时无人机跟踪定位系统,如图2所示,包括:图像对获取模块100、三维点云获取模块200、候选区域获取模块300、匹配度获取模块400、目标区域获取模块500;
所述图像对获取模块100,配置为获取t时刻的双目视觉图像对,作为输入图像对;
所述三维点云获取模块200,配置为对所述输入图像对进行预处理,并通过双目立体匹配算法对预处理后图像对中的两个图像进行匹配,得到三维点云数据;
所述候选区域获取模块300,配置为采用预设的聚类方法对所述三维点云数据进行聚类,获取待定位目标的候选区域;
所述匹配度获取模块400,配置为对各候选区域,通过模板匹配算法分别将其与第一图像匹配,得到其对应的第一匹配度,并通过预设的第一方法分别将其与第二图像匹配,得到其对应的第二匹配度;所述第一图像为预设的待定位目标的模板图像;所述第二图像为t-1时刻待定位目标的目标区域图像;
所述目标区域获取模块500,配置为若各候选区域的第一匹配度大于设定的第一阈值且第二匹配度小于设定的第二阈值,则将其作为待定位目标的目标区域。
所述技术领域的技术人员可以清楚的了解到,为描述的方便和简洁,上述描述的系统的具体的工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
需要说明的是,上述实施例提供的基于立体视觉的长时无人机跟踪定位系统,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块或者步骤再分解或者组合,例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块、步骤的名称,仅仅是为了区分各个模块或者步骤,不视为对本发明的不当限定。
本发明第三实施例的一种存储装置,其中存储有多条程序,所述程序适用于由处理器加载并实现上述的基于立体视觉的长时无人机跟踪定位方法。
本发明第四实施例的一种处理装置,包括处理器、存储装置;处理器,适于执行各条程序;存储装置,适于存储多条程序;所述程序适于由处理器加载并执行以实现上述的基于立体视觉的长时无人机跟踪定位方法。
所述技术领域的技术人员可以清楚的了解到,为描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考前述方法实例中的对应过程,在此不再赘述。
下面参考图4,其示出了适于用来实现本申请方法、系统、装置实施例的服务器的计算机系统的结构示意图。图4示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,计算机系统包括中央处理单元(CPU,Central Processing Unit)401,其可以根据存储在只读存储器(ROM,Read Only Memory)402中的程序或者从存储部分408加载到随机访问存储器(RAM,Random Access Memory)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有系统操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O,Input/Output)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT,Cathode Ray Tube)、液晶显示器(LCD,Liquid Crystal Display)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN(局域网,Local AreaNetwork)卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。
术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。