[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN110211151B - 一种运动物体的追踪方法和装置 - Google Patents

一种运动物体的追踪方法和装置 Download PDF

Info

Publication number
CN110211151B
CN110211151B CN201910353672.3A CN201910353672A CN110211151B CN 110211151 B CN110211151 B CN 110211151B CN 201910353672 A CN201910353672 A CN 201910353672A CN 110211151 B CN110211151 B CN 110211151B
Authority
CN
China
Prior art keywords
state vector
target object
current
camera
current frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910353672.3A
Other languages
English (en)
Other versions
CN110211151A (zh
Inventor
李晚龙
李学士
高亚军
温丰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910353672.3A priority Critical patent/CN110211151B/zh
Publication of CN110211151A publication Critical patent/CN110211151A/zh
Priority to PCT/CN2020/087842 priority patent/WO2020221307A1/zh
Application granted granted Critical
Publication of CN110211151B publication Critical patent/CN110211151B/zh
Priority to US17/513,859 priority patent/US12073630B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/277Analysis of motion involving stochastic approaches, e.g. using Kalman filters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/62Extraction of image or video features relating to a temporal dimension, e.g. time-based feature extraction; Pattern tracking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/80Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
    • G06V10/806Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of extracted features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)

Abstract

本申请提供了一种运动物体的追踪方法、装置,该方法包括:获取相机采集到的当前帧;根据惯性测量单元IMU和所述当前帧,对所述相机的当前状态向量进行预测,得到所述相机的当前状态向量的预测值;对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值;根据所述当前帧中图像特征的测量结果对卡尔曼状态向量进行更新。本申请提供的技术方案可以在估计自身的位姿的同时,还可以对周围环境中处于运动状态的目标物体进行追踪并估计其位姿。

Description

一种运动物体的追踪方法和装置
技术领域
本申请涉及位姿估计技术领域,并且更具体地,涉及一种运动物体的追踪方法和装置。
背景技术
计算机视觉是各个应用领域,如制造业、检验、文档分析、医疗诊断,和军事等领域中各种智能/自主系统中不可分割的一部分,它是一门关于如何运用照相机/摄像机和计算机来获取我们所需的,被拍摄对象的数据与信息的学问。形象地说,就是给计算机安装上眼睛(照相机/摄像机)和大脑(算法)用来代替人眼对目标进行识别、跟踪和测量等,从而使计算机能够感知环境。因为感知可以看作是从感官信号中提取信息,所以计算机视觉也可以看作是研究如何使人工系统从图像或多维数据中“感知”的科学。总的来说,计算机视觉就是用各种成象系统代替视觉器官获取输入信息,再由计算机来代替大脑对这些输入信息完成处理和解释。计算机视觉的最终研究目标就是使计算机能像人那样通过视觉观察和理解世界,具有自主适应环境的能力。
运动目标的检测和跟踪是图像处理与计算机视觉的一个分支,在理论和实践中上都有重大意义。在自动驾驶、军事侦察、增强现实(augment reality,AR)动态跟踪等场景中,移动平台需要能够估计自身的位姿,同时,还需要对周围环境中处于运动状态的目标物体进行追踪并估计其位姿。
目前移动平台上常用的一种定位方式为基于摄像头采集到的视觉信息估计自身的位姿,并基于自身的位姿估计周围环境中处于运动状态的目标物体的位姿。但是,由于摄像头本身存在噪声,仅通过视觉信息估计的自身的位姿准确性较低,由此,估计的处于运动状态的目标物体的位姿的准确性较低。
基于多状态约束的卡尔曼滤波(multi-state constraint kalman filter,MSCKF)可以结合摄像头采集到的视觉信息以及惯性测量单元(inertial measurementunit,IMU)的测量结果对自身的位姿估进行估计,其准确性较高。但是,MSCKF仅能估计出自身的位姿,而不能估计出周围环境中处于运动状态的目标物体的位姿。
发明内容
本申请提供一种方法和装置方法和装置,能够在估计自身的位姿的同时,还可以对周围环境中处于运动状态的目标物体进行追踪并估计其位姿。
第一方面,提供了一种运动物体的追踪方法,包括:
获取相机采集到的当前帧;
根据惯性测量单元IMU和所述当前帧,对所述相机的当前状态向量进行预测,得到所述相机的当前状态向量的预测值,所述相机的当前状态向量用于表示所述相机的当前位姿;
对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值,所述目标物体的当前状态向量用于表示所述目标物体的当前位姿;
根据所述相机的当前状态向量的预测值以及所述目标物体的当前状态向量的预测值生成卡尔曼状态向量;
根据所述当前帧中图像特征的测量结果对卡尔曼状态向量进行更新,得到更新后的卡尔曼状态向量,其中,所述更新后的卡尔曼状态向量用于表示对所述目标物体进行跟踪。
应理解,IMU是测量物体三轴姿态角(或角速率)以及加速度的装置。一般的,一个IMU包含了三个单轴的加速度计和三个单轴的陀螺。加速度计检测物体在载体坐标系统独立三轴的加速度信号。而陀螺检测载体相对于导航坐标系的角速度信号,测量物体在三维空间中的角速度和加速度,并以此解算出物体的姿态。
在一种可能的实现方式中,根据所述当前帧中的处于背景部分的图像特征和所述目标物体的图像特征,计算所述当前帧的图像特征的雅克比矩阵;根据所述当前帧的图像特征的雅克比矩阵,对所述卡尔曼状态向量中包括的目标物体的当前状态向量的预测值以及相机的当前状态向量的预测值进行更新。
应理解,图像特征可以是相机采集到的图像中的特征点,图像处理中,特征点指的是图像灰度值发生剧烈变化的点或者在图像边缘上曲率较大的点(即两个边缘的交点)。图像特征点在基于特征点的图像匹配算法中有着十分重要的作用。图像特征点能够反映图像本质特征,能够标识图像中目标物体。通过特征点的匹配能够完成图像的匹配。
在另一种可能的实现方式中,确定所述当前帧中的动态特征点,所述动态特征点中包括表征点和非表征点,所述表征点作为所述目标物体的坐标系的原点,所述非表征点用于表示所述目标物体上除了所述表征点之外的其他动态特征点;根据所述表征点的姿态以及所述随机运动模型,对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值。
应理解,目标分割的算法有两类,一类是以边界框对目标进行框取,另一类是以像素级别的精度对目标进行分割。第一类方法的分割精度显然不如第二类方法的分割精度高,但是第二类方法的计算量较大,考虑到实时性要求,本申请利用第一类方法进行目标分割。
对首次观测到的动态目标,需要确定为了完整描述刚体运动所需要的参数。本申请利用其表面动态特征点对其进行初始化,将特征点分为“表征点”和“非表征点”对其进行表征。
本申请实施例中,动态目标初始化可以提高加入系统状态向量的动态目标的正确性,提升系统鲁棒性。
在本申请中假设待追踪的目标为刚体,也就是说目标在运动过程中不发生形变。一般来讲,可以用6个自由度来描述刚体的位姿。一种典型的表示方式是利用刚体上的特征点(表征点)及一个方向来表示刚体位姿。然而当表征点在目标的运动过程中被遮挡住以至无法被观测到时,这种表征方法便失效了,尽管刚体的未被遮挡的部分仍能被观测到。
本申请利用动态目标表面一组特征点对其进行表征,而不是单独的一个。为了明确表示刚体的位置,需要一个“表征点”,其在全局坐标系中的位置记为GpT。而除了一个“表征点”外,刚体上所有观测到的特征点均为“非表征点”。由于单独一个“表征点”无法表示刚体的6自由度的位姿,因此需要“非表征点”用于辅助“表征点”来表示刚体位姿。“非表征点”在刚体坐标系中的坐标记为Tpft
根据刚体的性质,这些特征点的相对位置关系不随着刚体的运动而改变,换言之,这些特征点在相对于刚体静止的坐标系中的位置不变,也即Tpft是一个不随时间改变的常量。这样的表示方法使得即使动态目标被部分遮挡,只要能够观测到其部分特征点,仍然能够计算出表征点的位置,并成功追踪刚体。
一种选取“表征点”与“非表征点”的可行的方案是采用首次观测到的特征点(中的一个)为刚体的“表征点”。
在另一种可能的实现方式中,所述方法还包括:在所述表征点被遮挡的情况下,通过所述非表征点的姿态计算所述表征点的姿态。
在另一种可能的实现方式中,通过边界框框取所述当前帧中处于运动状态的目标物体;将所述边界框内的特征点确定为所述动态特征点。
在另一种可能的实现方式中,在所述当前帧之前的多帧图像中观测到所述处于运动状态的目标物体的情况下,将所述目标物体的当前状态向量的预测值加入滑动窗口,生成所述卡尔曼状态向量,其中,所述滑动窗口中包括所述相机的当前状态向量的预测值。
可选地,系统不会在首次没有观测到动态目标的时候就将其从系统状态向量中去除,因为没有检测到动态目标的原因有很多,可能是单次错误检测,或者是目标暂时被遮挡。这种情况下草率地将动态目标删除对系统的正确性、连续性与鲁棒性都有影响。
由于可能存在一闪而过的高速物体,以及目标错误检测的情况,因此只有在连续几帧观测到该动态目标后,才会将其加入整体状态向量,以确保加入的目标的正确性。
在另一种可能的实现方式中,所述方法还包括:在预设时间内,所述当前帧中未观测到所述处于运动状态的目标物体,从所述卡尔曼状态向量中删除所述目标物体的当前状态向量的预测值。
本申请中系统也不会一直在状态向量中保留动态目标的信息,因为这样会增加不必要的计算负担。为避免增加计算负担,只有一段合适的时间之内一直追踪不到该动态目标的情况下,才会其从状态向量中删除,并相应地修改协方差矩阵。其中一种可能的实现方式中,只需要将动态目标对应的行和列删除即可。
第二方面,提供一种运动物体的追踪装置,该装置包括用于执行第一方面中的方法的模块。
第三方面,提供一种运动物体的追踪装置,该装置包括:
获取模块,用于获取相机采集到的当前帧;
第一预测模块,用于根据惯性测量单元IMU和所述当前帧,对所述相机的当前状态向量进行预测,得到所述相机的当前状态向量的预测值,所述相机的当前状态向量用于表示所述相机的当前位姿;
第二预测模块,用于对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值,所述目标物体的当前状态向量用于表示所述目标物体的当前位姿;
生成模块,用于根据所述相机的当前状态向量的预测值以及所述目标物体的当前状态向量的预测值生成卡尔曼状态向量;
更新模块,用于根据所述当前帧中图像特征的测量结果对卡尔曼状态向量进行更新,得到更新后的卡尔曼状态向量,其中,所述更新后的卡尔曼状态向量用于表示对所述目标物体进行跟踪。
在一种可能的实现方式中,所述装置还包括:
第一计算模块,用于根据所述当前帧中的处于背景部分的图像特征和所述目标物体的图像特征,计算所述当前帧的图像特征的雅克比矩阵;
所述更新模块具体用于:
根据所述当前帧的图像特征的雅克比矩阵,对所述卡尔曼状态向量中包括的目标物体的当前状态向量的预测值以及相机的当前状态向量的预测值进行更新。
在另一种可能的实现方式中,所述第二预测模块具体用于:
确定所述当前帧中的动态特征点,所述动态特征点中包括表征点和非表征点,所述表征点作为所述目标物体的坐标系的原点,所述非表征点用于表示所述目标物体上除了所述表征点之外的其他动态特征点;
根据所述表征点的姿态以及所述随机运动模型,对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值。
在另一种可能的实现方式中,所述装置还包括:
第二计算模块,用于在所述表征点被遮挡的情况下,通过所述非表征点的姿态计算所述表征点的姿态。
在另一种可能的实现方式中,第二预测模块具体用于:
通过边界框框取所述当前帧中处于运动状态的目标物体;
将所述边界框内的特征点确定为所述动态特征点。
在另一种可能的实现方式中,所述生成模块具体用于:
在所述当前帧之前的多帧图像中观测到所述处于运动状态的目标物体的情况下,将所述目标物体的当前状态向量的预测值加入滑动窗口,生成所述卡尔曼状态向量,其中,所述滑动窗口中包括所述相机的当前状态向量的预测值。
在另一种可能的实现方式中,所述装置还包括:
删除模块,用于在预设时间内,所述当前帧中未观测到所述处于运动状态的目标物体,从所述卡尔曼状态向量中删除所述目标物体的当前状态向量的预测值。
第四方面,提供一种运动物体的追踪装置,该装置包括:存储器,用于存储程序;处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第一方面中的方法。
可选地,该处理器可以是通用处理器,可以通过硬件来实现也可以通过软件来实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
其中,存储器、处理器和输入/输出接口通过内部连接通路相连,该存储器用于存储程序指令,该处理器用于执行该存储器存储的程序指令,以控制输入/输出接口830接收输入的数据和信息,输出操作结果等数据。
应理解,在本申请实施例中,该处理器可以采用中央处理单元(centralprocessing unit,CPU),该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。处理器的一部分还可以包括非易失性随机存取存储器。例如,处理器还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
具体的,处理器通过从存储器中获取存储的指令,并执行以下步骤:
获取相机采集到的当前帧;
根据惯性测量单元IMU和所述当前帧,对所述相机的当前状态向量进行预测,得到所述相机的当前状态向量的预测值,所述相机的当前状态向量用于表示所述相机的当前位姿;
对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值,所述目标物体的当前状态向量用于表示所述目标物体的当前位姿;
根据所述相机的当前状态向量的预测值以及所述目标物体的当前状态向量的预测值生成卡尔曼状态向量;
根据所述当前帧中图像特征的测量结果对卡尔曼状态向量进行更新,得到更新后的卡尔曼状态向量,其中,所述更新后的卡尔曼状态向量用于表示对所述目标物体进行跟踪。
在一种可能的实现方式中,根据所述当前帧中的处于背景部分的图像特征和所述目标物体的图像特征,计算所述当前帧的图像特征的雅克比矩阵;根据所述当前帧的图像特征的雅克比矩阵,对所述卡尔曼状态向量中包括的目标物体的当前状态向量的预测值以及相机的当前状态向量的预测值进行更新。
在另一种可能的实现方式中,确定所述当前帧中的动态特征点,所述动态特征点中包括表征点和非表征点,所述表征点作为所述目标物体的坐标系的原点,所述非表征点用于表示所述目标物体上除了所述表征点之外的其他动态特征点;根据所述表征点的姿态以及所述随机运动模型,对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值。
在另一种可能的实现方式中,在所述表征点被遮挡的情况下,通过所述非表征点的姿态计算所述表征点的姿态。
在另一种可能的实现方式中,通过边界框框取所述当前帧中处于运动状态的目标物体;将所述边界框内的特征点确定为所述动态特征点。
在另一种可能的实现方式中,在所述当前帧之前的多帧图像中观测到所述处于运动状态的目标物体的情况下,将所述目标物体的当前状态向量的预测值加入滑动窗口,生成所述卡尔曼状态向量,其中,所述滑动窗口中包括所述相机的当前状态向量的预测值。
在另一种可能的实现方式中,在预设时间内,所述当前帧中未观测到所述处于运动状态的目标物体,从所述卡尔曼状态向量中删除所述目标物体的当前状态向量的预测值。
第五方面,提供了一种芯片,该芯片包括:存储器,用于存储程序;处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第一方面中的方法。
可选地,该处理器可以是通用处理器,可以通过硬件来实现也可以通过软件来实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
其中,存储器、处理器和输入/输出接口通过内部连接通路相连,该存储器用于存储程序指令,该处理器用于执行该存储器存储的程序指令,以控制输入/输出接口830接收输入的数据和信息,输出操作结果等数据。
应理解,在本申请实施例中,该处理器可以采用中央处理单元(centralprocessing unit,CPU),该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。处理器的一部分还可以包括非易失性随机存取存储器。例如,处理器还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
具体的,处理器通过从存储器中获取存储的指令,并执行以下步骤:
获取相机采集到的当前帧;
根据惯性测量单元IMU和所述当前帧,对所述相机的当前状态向量进行预测,得到所述相机的当前状态向量的预测值,所述相机的当前状态向量用于表示所述相机的当前位姿;
对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值,所述目标物体的当前状态向量用于表示所述目标物体的当前位姿;
根据所述相机的当前状态向量的预测值以及所述目标物体的当前状态向量的预测值生成卡尔曼状态向量;
根据所述当前帧中图像特征的测量结果对卡尔曼状态向量进行更新,得到更新后的卡尔曼状态向量,其中,所述更新后的卡尔曼状态向量用于表示对所述目标物体进行跟踪。
在一种可能的实现方式中,根据所述当前帧中的处于背景部分的图像特征和所述目标物体的图像特征,计算所述当前帧的图像特征的雅克比矩阵;根据所述当前帧的图像特征的雅克比矩阵,对所述卡尔曼状态向量中包括的目标物体的当前状态向量的预测值以及相机的当前状态向量的预测值进行更新。
在另一种可能的实现方式中,确定所述当前帧中的动态特征点,所述动态特征点中包括表征点和非表征点,所述表征点作为所述目标物体的坐标系的原点,所述非表征点用于表示所述目标物体上除了所述表征点之外的其他动态特征点;根据所述表征点的姿态以及所述随机运动模型,对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值。
在另一种可能的实现方式中,在所述表征点被遮挡的情况下,通过所述非表征点的姿态计算所述表征点的姿态。
在另一种可能的实现方式中,通过边界框框取所述当前帧中处于运动状态的目标物体;将所述边界框内的特征点确定为所述动态特征点。
在另一种可能的实现方式中,在所述当前帧之前的多帧图像中观测到所述处于运动状态的目标物体的情况下,将所述目标物体的当前状态向量的预测值加入滑动窗口,生成所述卡尔曼状态向量,其中,所述滑动窗口中包括所述相机的当前状态向量的预测值。
在另一种可能的实现方式中,在预设时间内,所述当前帧中未观测到所述处于运动状态的目标物体,从所述卡尔曼状态向量中删除所述目标物体的当前状态向量的预测值。
第六方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行第一方面中的方法。
第七方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面中的方法。
附图说明
图1是一种MSCKF框架的示意性结构图。
图2是本申请实施例提供的一种运动物体的追踪方法的示意性流程图。
图3是本申请实施例提供的一种MSCKF框架的示意性结构图。
图4是本申请实施例提供的一种预测当前时刻的状态向量的示意性流程图。
图5是本申请实施例提供的另一种预测当前时刻的状态向量的示意性流程图。
图6是本申请实施例提供的另一种预测当前时刻的状态向量的示意性流程图
图7是本申请实施例提供的一种运动物体的追踪装置700的示意性框图。
图8是本申请实施例提供的一种运动物体的追踪装置800的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
MSCKF是一种基于多状态约束卡尔曼滤波器。多状态约束是指将多帧图像的相机位姿加入卡尔曼状态向量中,在进行卡尔曼增益之前通过多帧图像之间的约束进行最小二乘优化来估计特征点的空间位置,然后根据优化后的特征点空间位置来约束状态向量。其中,多帧图像保存在一个按时间排序的滑动窗口序列中,跟踪多个特征点在多帧图像中的坐标,从而建立各帧图像位姿之间的约束。另一个约束是:同一时刻的相机位姿与IMU位姿之间是一个已知的约束,这个约束用在状态增广中。在这两种约束下,卡尔曼滤波能够获得一个较好的估计。该方法的优点在于鲁棒性高,计算复杂度低。
为了便于描述,下面结合图1,对MSCKF的框架进行详细描述。
图1是一种MSCKF框架的示意性结构图。如图1所示,MSCKF框架中可以包括:传感器110(包括IMU 111、摄像头112)、一步预测模块120、相机位姿估计模块130、状态扩展140、特征检测与跟踪模块150、特征点测量值模块160、状态更新模块170。下面分别对上述模块进行详细说明。
需要说明的是,本申请实施例对摄像头112不做具体限定,可以是单目摄像头,或者还可以是双目摄像头,或者还可以是多目摄像头。
(1)IMU 111:
IMU 111是测量物体三轴姿态角(或角速率)以及加速度的装置。一般的,一个IMU包含了三个单轴的加速度计和三个单轴的陀螺。加速度计检测物体在载体坐标系统独立三轴的加速度信号。而陀螺检测载体相对于导航坐标系的角速度信号,测量物体在三维空间中的角速度和加速度,并以此解算出物体的姿态。
本申请实施例中IMU 111的输出的测量值分别为角速度测量值ω(t)、加速度测量值a(t)。由于IMU 111传感器本身存在偏置和噪声,因此,角速度真实值
Figure GDA0003027659120000081
与角速度测量值ω(t)如公式(1)所示,加速度真实值
Figure GDA0003027659120000082
与加速度测量值a(t)如公式(2)所示。
Figure GDA0003027659120000083
Figure GDA0003027659120000084
其中,bg(t)用于表示陀螺仪的偏置;
ba(t)用于表示加速度计的偏置;
ng(t)用于表示陀螺仪的噪声,符合高斯分布;
na(t)用于表示加速度计的噪声,符合高斯分布。
需要说明的是,陀螺仪的噪声以及加速度计的噪声属于IMU 111的参数,在上一个时刻以及当前时刻保持不变。
(2)一步预测模块120:
由于IMU 111的数据频率高于一般图像视觉信息的频率,在相邻的两帧图像之间,可以对IMU 111输出的多组数据进行预积分,从而根据上一个时刻IMU 111的状态向量预测当前时刻IMU 111的状态向量,得到当前时刻IMU 111的状态向量预测值。
IMU 111的状态向量可以包括当前位姿以及瞬时速度等参数。具体的请参考公式(3)。
Figure GDA0003027659120000085
其中,XIMU用于表示IMU 111的状态向量;
Figure GDA0003027659120000086
用于表示IMU111在全局坐标系(global,G)中的姿态(或者朝向),其中,q表示四元数;
GvI用于表示IMU111在全局坐标系G中的速度;
GpI用于表示IMU111全局坐标系G中位置向量。
IMU 111可以根据上一个时刻IMU 111的状态向量预测当前时刻IMU 111的状态向量,具体的请参考公式(4)。
Figure GDA0003027659120000087
其中,XIMU,k|k-1可以用于表示根据上一个时刻(k-1)更新后的XIMU预测当前时刻(k)的XIMU
XIMU,k-1|k-1用于表示(k-1)时刻更新后的XIMU
Figure GDA0003027659120000091
用于表示(k-1)时刻到(k)时刻对
Figure GDA0003027659120000092
进行积分;
Figure GDA0003027659120000093
用于表示XIMU的真实值的导数。
Figure GDA0003027659120000094
可通过公式(5)所示的运动定律得到。
Figure GDA0003027659120000095
其中,
Figure GDA0003027659120000096
用于表示
Figure GDA0003027659120000097
真实值的导数;
Figure GDA0003027659120000098
用于表示GvI真实值的导数;
Figure GDA0003027659120000099
用于表示GpI真实值的导数;
Figure GDA00030276591200000910
用于表示
Figure GDA00030276591200000911
真实值的导数,将四元数转换为矩阵的操作;
Figure GDA00030276591200000912
用于表示bg真实值的导数;
Figure GDA00030276591200000913
用于表示ba真实值的导数;
Figure GDA00030276591200000914
用于表示加速度真实值;
Figure GDA00030276591200000915
用于表示角速度真实值;
Figure GDA00030276591200000916
用于表示将一个向量ωG变为一个反对称矩阵的操作,ωG用于表示地球自转的角速度;
需要说明的是,对于将一个向量变为一个反对称矩阵的操作,例如,
Figure GDA00030276591200000917
Figure GDA00030276591200000918
Ω(ω)的定义如下公式(6)所示。
Figure GDA00030276591200000919
(3)相机位姿估计模块130:
相机位姿估计模块130用于在新的一帧到来时,根据当前时刻IMU 111的状态向量的预测值XIMU,k|k-1确定当前时刻摄像头112的状态向量XCN
(4)状态扩展140:
状态扩展140用于当新的一帧到来时,在滑动窗口的当前整体状态向量中加入摄像头112的状态向量
Figure GDA00030276591200000920
形成新的整体状态向量。具体的有关摄像头112的状态向量
Figure GDA00030276591200000921
请参考公式(7)-公式(7-2):
Figure GDA00030276591200000922
其中,
Figure GDA00030276591200000923
用于表示当前时刻(N时刻)摄像头112在全局坐标系G中的朝向,
Figure GDA00030276591200000924
真实值的计算请参考公式(7-1);
Figure GDA00030276591200000925
用于表示当前时刻(N时刻)摄像头112在全局坐标系G中的位置向量,
Figure GDA00030276591200000926
真实值的计算请参考公式(7-2)。
Figure GDA00030276591200000927
其中,
Figure GDA00030276591200000928
用于表示摄像头112与IMU 111之间的朝向;
Figure GDA00030276591200000929
用于表示IMU 111在全局坐标系G中的姿态(朝向)的真实值;
Figure GDA0003027659120000101
用于表示四元数乘法。
Figure GDA0003027659120000102
其中,
Figure GDA0003027659120000103
用于表示IMU 111全局坐标系G中的位置的真实值;
Figure GDA0003027659120000104
用于表示摄像头112与IMU 111之间的位置。
当前时刻摄像头112的状态向量XCi加入到滑动窗口中当前整体状态向量,形成新的整体状态向量。
需要说明的是,在将前时刻摄像头112的状态向量XCi加入到滑动窗口当前的整体状态向量中之后需要计算转换矩阵J。根据转换矩阵J计算新的整体状态向量对应的协方差矩阵。
整体状态向量对应的协方差矩阵的修改请参见公式(8)中的描述。
Figure GDA0003027659120000105
中,J的计算方法如公式(9)所示:
Figure GDA0003027659120000106
本申请实施例的状态扩展140中新的整体状态向量可以表示为:
Figure GDA0003027659120000107
其中,XIMU表示IMU的状态向量;
XCi表示i时刻摄像头112的状态向量;
N为滑动窗口中保存的摄像头112位姿的时刻数。
(5)特征检测与跟踪模块150:
获取摄像头112采集到的图像中的特征点。
应理解,图像处理中,特征点指的是图像灰度值发生剧烈变化的点或者在图像边缘上曲率较大的点(即两个边缘的交点)。图像特征点在基于特征点的图像匹配算法中有着十分重要的作用。图像特征点能够反映图像本质特征,能够标识图像中目标物体。通过特征点的匹配能够完成图像的匹配。
一种可能的实现方式中,可以通过FAST算法提取摄像头112采集到的图像中的特征点。
(6)特征点测量值模块160:
特征点测量值模块160用于计算图像特征的雅克比矩阵,以便于在状态更新模块170中对公式(16)中一步预测模块120预测的当前时刻整体状态向量Xk以及协方差矩阵进行更新。
(7)状态更新模块170:
用于对一步预测模块120预测的当前时刻整体状态向量Xk以及协方差矩阵进行更新。
本申请提供的运动物体的追踪方法,可以在估计出自身姿态的同时,还可以估计出处于运动状态的目标物体的姿态。下面结合图2,对本申请实施例提供的技术方案进行详细描述。
图2是本申请实施例提供的一种运动物体的追踪方法的示意性流程图。如图2随时,该方法包括步骤210-240,下面分别对步骤210-240进行详细描述。
步骤210:获取相机采集到的当前帧。
步骤220:根据惯性测量单元IMU和所述当前帧,对所述相机的当前状态向量进行预测,得到所述相机的当前状态向量的预测值。
相机的当前状态向量用于表示所述相机的当前位姿。
步骤230:根据所述相机的当前状态向量的预测值以及所述目标物体的当前状态向量的预测值生成卡尔曼状态向量。
卡尔曼状态向量可以对应于上文中的整体状态向量,应理解,本申请实施例中可以在检测到目标物体之后,将新观测到目标物体初始化得到的当前时刻的状态向量加入到整体状态向量中,形成新的整体状态向量。
步骤240:根据所述当前帧中图像特征的测量结果对卡尔曼状态向量进行更新,得到更新后的卡尔曼状态向量。
其中,所述更新后的卡尔曼状态向量用于表示对所述目标物体进行跟踪。
需要说明的是,本申请实施例相当于在图1所示的MSCKF框架上新增加了对目标物体的预测和更新的模块,下面结合图3,对本申请实施例中用于估计自身姿态以及处于运动状态的目标物体的姿态的MSCKF框架进行详细描述。
图3是本申请实施例提供的一种MSCKF框架的示意性结构图。如图3所示,MSCKF框架中可以包括:传感器110(包括IMU 111、摄像头112)、一步预测模块120、相机位姿估计模块130、状态扩展140、特征检测与跟踪模块150、特征点测量值模块160、状态更新模块170、目标检测310、目标表征320、目标测量330、目标位姿估计340。下面分别对上述模块进行详细说明。
(1)IMU 111:
请参考图1中对IMU111的描述,此处不再赘述。
(2)一步预测模块120:
一步预测模块120不仅可以根据上一个时刻IMU 111的状态向量预测当前时刻IMU111的状态向量,还可以利用运动模型预测动态目标运动,计算当前时刻动态目标状态向量的预测值,具体的请参见图4。
图4是本申请实施例提供的一种预测当前时刻的状态向量的示意性流程图。图4所示的方法可以包括步骤410-430,下面分别对步骤410-430进行详细描述。
步骤410:对IMU 111输出的测量值进行积分,得到当前时刻IMU 111的状态向量预测值。
具体的请参考图1中对一步预测模块120的描述,此处不再赘述。
步骤420:利用运动模型预测动态目标运动,计算当前时刻动态目标状态向量的预测值。
为了能够在MSCKF框架下进行目标追踪,需要建立动态目标的运动模型。不同的应用场景中,出现的动态目标不尽相同,可根据目标运动模式的不同建立不同的运动模型。运动模型可以统一表示如公式(11)所示:
Figure GDA0003027659120000111
其中,
Figure GDA0003027659120000112
用于表示动态目标的状态向量的误差值的导数;
Figure GDA0003027659120000113
用于表示动态目标的状态向量的误差值。
FT和GT矩阵与运动模型相关。下面会结合具体的运动模型对FT和GT矩阵进行描述。
本申请实施例提出了三种随机运动模型用以对目标的运动进行建模,在实际应用中,应根据应用场景的不同合理选取运动模型,或视情况应用其他运动模型。
本申请实施例中,能够在短时间内对动态目标的运动状态进行预测。
一种可能的实现方式中,随机运动模型为全局匀速运动模型,该模型的动态目标的速度和角速度被视作随机游走模型,适用于动态目标的位置和朝向解耦的情况。
动态目标的状态向量可以包括当前位姿以及瞬时速度等参数。具体的请参考公式(12):
Figure GDA0003027659120000121
其中,XT用于表示动态目标的状态向量;
Figure GDA0003027659120000122
用于表示动态目标在全局坐标系(global,G)中的姿态,其中,q表示四元数;
Tω用于表示动态目标的角速度;
GpT用于表示动态目标在全局坐标系(global,G)中的位置向量;
GvT用于表示动态目标在全局坐标系(global,G)中的速度。
动态目标的状态向量真实值的导数的公式如公式(13)所示。
Figure GDA0003027659120000123
其中,
Figure GDA0003027659120000124
用于表示动态目标的状态向量真实值的导数;
Figure GDA0003027659120000125
用于表示动态目标在全局坐标系(global,G)中的姿态真实值的导数,其中,q表示四元数;
Figure GDA0003027659120000126
用于表示动态目标的角速度真实值的导数;
Figure GDA0003027659120000127
用于表示动态目标在全局坐标系(global,G)中的位置向量真实值的导数;
Figure GDA0003027659120000128
用于表示动态目标在全局坐标系(global,G)中的速度真实值的导数;
Figure GDA0003027659120000129
用于表示动态目标在G中的速度真实值;
Figure GDA00030276591200001210
用于表示动态目标在G中的姿态真实值。
在随机运动模型为全局匀速运动模型的情况下,FT和GT矩阵的表示分别如公式(13-1)以及公式(13-2)所示。
Figure GDA00030276591200001211
Figure GDA00030276591200001212
另一种可能的实现方式中,随机运动模型为局部匀速运动模型,该模型的动态目标的速度在局部坐标系中的速度是恒定的,适用于地面机器人或固定翼飞行器模型中。
动态目标的状态向量请参考公式(14):
Figure GDA00030276591200001213
其中,TvT用于表示在动态目标在局部坐标系中的速度。
动态目标的状态向量真实值的导数如公式(15)所示。
Figure GDA0003027659120000131
在随机运动模型为局部匀速运动模型的情况下,FT和GT矩阵的表示分别如公式(15-1)以及公式(15-2)所示。
Figure GDA0003027659120000132
Figure GDA0003027659120000133
另一种可能的实现方式中,动态随机运动模型为局部平面运动模型,该模型的动态目标的运动被约束在一个平面上。此模型在平面估计中加入噪声,以使其适应平面约束发生变化的情况。
动态目标的状态向量请参考公式(16):
Figure GDA0003027659120000134
其中,ωz用于表示局部坐标系中z方向的角速度分量;
vx用于表示局部坐标系中x方向的速度分量;
vy用于表示局部坐标系中y方向的速度分量。
动态目标的状态向量真实值的导数的公式如公式(17)所示。
Figure GDA0003027659120000135
在随机运动模型为局部平面运动模型的情况下,FT和GT矩阵的表示分别如公式(17-1)以及公式(17-2)所示。
Figure GDA0003027659120000136
Figure GDA0003027659120000137
其中,
Figure GDA0003027659120000141
动态目标可以根据上一个时刻动态目标的状态向量预测当前时刻动态目标的状态向量,具体的请参考公式(18)。
Figure GDA0003027659120000142
其中,XT,k|k-1可以用于表示根据上一个时刻(k-1)更新后的XT预测当前时刻(k)的XT
XT,k-1|k-1用于表示(k-1)时刻更新后的XT
Figure GDA0003027659120000143
不同的运动模型对应的
Figure GDA0003027659120000144
不同,具体的请参考公式(13)、(15)、(17)。
本申请实施例中一步预测模块120预测的当前时刻整体状态向量可以表示为:
Figure GDA0003027659120000145
其中,XIMU表示IMU的状态向量;
XCi表示i时刻摄像头112的状态向量;
XTj表示第j个动态目标的状态向量;
N为滑动窗口中保存的摄像头112位姿的时刻数;
M为当前正在跟踪的动态目标的个数。
需要说明的是,整体状态向量也可以称为卡尔曼状态向量。
步骤430:计算协方差矩阵的预测结果。
一步预测模块120在根据上一个时刻的状态向量计算出当前时刻的状态向量,同时还可以根据上一个时刻的协方差矩阵预测出当前时刻的协方差矩阵。
上一时刻系统整体状态向量的协方差矩阵如公式(20)所示。
Figure GDA0003027659120000146
其中,Pk-1|k-1用于表示上一个时刻(k-1)更新后的协方差矩阵;
PII,k-1|k-1用于表示上一个时刻(k-1)更新后的IMU 111与IMU 111之间的协方差矩阵;
PIT,k-1|k-1用于表示上一个时刻(k-1)更新后的IMU 111与动态目标之间的协方差矩阵;
PIC,k-1|k-1用于表示上一个时刻(k-1)更新后的IMU 111与摄像头112之间的协方差矩阵;
PIT,k-1|k-1用于表示上一个时刻(k-1)更新后的IMU 111与动态目标之间的协方差矩阵;
PTT,k-1|k-1用于表示上一个时刻(k-1)更新后的动态目标与动态目标之间的协方差矩阵;
PTC,k-1|k-1用于表示上一个时刻(k-1)更新后的动态目标与摄像头112之间的协方差矩阵。
当前(k)时刻系统整体状态向量的协方差矩阵如下所示。
Figure GDA0003027659120000151
其中,Pk|k-1用于表示根据上一个时刻(k-1)更新后的Pk-1|k-1预测当前时刻(k)的协方差矩阵:
PII,k|k-1用于表示根据上一个时刻(k-1)更新后的PII,k-1|k-1预测当前时刻(k)的XIMUIMU 111与IMU 111之间的协方差矩阵;
PIT,k|k-1用于表示根据上一个时刻(k-1)更新后的PIT,k-1|k-1预测当前时刻(k)的XIMUIMU 111与动态目标之间的协方差矩阵;
PTT,k|k-1用于表示根据上一个时刻(k-1)更新后的PTT,k-1|k-1预测当前时刻(k)的动态目标与动态目标之间的协方差矩阵;
PCC,k-1|k-1用于表示上一个时刻(k-1)更新后的摄像头112与摄像头112之间的协方差矩阵;
Φ为状态转移矩阵,满足公式(21)-公式(22)所示的关系:
Figure GDA0003027659120000152
Figure GDA0003027659120000153
PII,k|k-1,PIT,k|k-1和PTT,k|k-1可利用如下公式(23)-公式(25)通过数值积分计算得到:
Figure GDA0003027659120000154
Figure GDA0003027659120000155
Figure GDA0003027659120000156
其中,QIMU和QT为噪声nIMU和nT对应的协方差矩阵
F矩阵如公式(26)所示,G矩阵如公式(27)所示。
Figure GDA0003027659120000157
其中,I3用于表示3×3的单位矩阵;
O3×3用于表示3×3的零矩阵;
Figure GDA0003027659120000158
用于表示将一个向量变为一个反对称矩阵的操作,
Figure GDA0003027659120000159
用于表示加速度的真实值。
Figure GDA00030276591200001510
(3)相机位姿估计模块130:
相机位姿估计模块130用于在新的一帧到来时,根据当前时刻IMU 111的状态向量的预测值XIMU,k|k-1确定当前时刻摄像头112的状态向量XCN,并将XCN加入到滑动窗口中。请参见图1中对相机位姿估计模块130的描述,此处不再赘述。
(4)状态扩展140:
请参见图1中对状态扩展140的描述,此处不再赘述。
(5)特征检测与跟踪模块150:
可以对图像中的特征点进行分类,得到动态特征点和静态特征点(背景特征点),具体的请参见图5。
图5是本申请实施例提供的另一种预测当前时刻的状态向量的示意性流程图。图5所示的方法可以包括步骤510-550,下面分别对步骤510-550进行详细描述。
步骤510:提取图像特征点。
采用FAST算法提取特征点。在实际场景中,特征点的分布通常并不均匀。为了在图像中取得尽量均匀分布的特征点,将图像分割成网格,并在图像网格中均匀提取特征点。
步骤520:对图像进行目标分割,得到动态目标的边界。
目标分割的算法有两类,一类是以边界框对目标进行框取,另一类是以像素级别的精度对目标进行分割。第一类方法的分割精度显然不如第二类方法的分割精度高,但是第二类方法的计算量较大,考虑到实时性要求,本申请利用第一类方法进行目标分割。
步骤530:利用目标检测结果对特征点进行分类。
边界框被用来对提取到的特征点进行分类。目标检测310将在边界框之内的特征点位于动态目标上,确定为动态特征点;不在边界框内的特征点属于静态的背景,确定为静态特征点。
(6)特征点测量值模块160:
特征点测量值模块160用于对处理静态特征点,具体的请参见图5中步骤540。
步骤540:处理静态特征点。
当特征点跟丢或者达到最大追踪数的时候,将其数据用于对状态向量的更新。
Figure GDA0003027659120000161
其中,П是一个将三维空间中特征点投影到平面图像上的投影函数,i为动态目标的编号
其残差方程为:
Figure GDA0003027659120000162
Figure GDA0003027659120000163
Figure GDA0003027659120000164
其中,J(i)
Figure GDA0003027659120000165
的表示如公式(33)-(34)所示。
Figure GDA0003027659120000166
Figure GDA0003027659120000167
为了在残差方程中去除
Figure GDA0003027659120000168
的影响,本申请实施例中将残差方程投影到Hfs的左零空间。设N是由Hfs的左零空间中的一组基构成的酉矩阵,有NTHfs=0。在残差方程的左右两端同时左乘NT,得到公式(35):
Figure GDA0003027659120000171
残差rS记作公式(36):
Figure GDA0003027659120000172
其中,HS用于表示雅克比矩阵。
(7)目标表征320:
目标表征320用于通过图像中的动态特征点表征动态目标。请参见步骤550中处理动态点测量值的描述。具体的有关处理动态点测量值的具体实现方式请参考图6中描述的方法。
图6是本申请实施例提供的另一种预测当前时刻的状态向量的示意性流程图。图6所示的方法可以包括步骤610-650,下面分别对步骤610-650进行详细描述。
步骤610:追踪动态特征点。
本申请实施例中采用KLT算法对特征点进行追踪。分别用于左目帧间匹配、右目帧间匹配以及立体匹配。
步骤620:第一次观测到动态特征点,
对首次观测到的动态目标,需要确定为了完整描述刚体运动所需要的参数。本申请利用其表面动态特征点对其进行初始化,将特征点分为“表征点”和“非表征点”对其进行表征。
本申请实施例中,动态目标初始化可以提高加入系统状态向量的动态目标的正确性,提升系统鲁棒性。
在本申请中假设待追踪的目标为刚体,也就是说目标在运动过程中不发生形变。一般来讲,可以用6个自由度来描述刚体的位姿。一种典型的表示方式是利用刚体上的特征点(表征点)及一个方向来表示刚体位姿。然而当表征点在目标的运动过程中被遮挡住以至无法被观测到时,这种表征方法便失效了,尽管刚体的未被遮挡的部分仍能被观测到。
本申请利用动态目标表面一组特征点对其进行表征,而不是单独的一个。为了明确表示刚体的位置,需要一个“表征点”,其在全局坐标系中的位置记为GpT。而除了一个“表征点”外,刚体上所有观测到的特征点均为“非表征点”。由于单独一个“表征点”无法表示刚体的6自由度的位姿,因此需要“非表征点”用于辅助“表征点”来表示刚体位姿。“非表征点”在刚体坐标系中的坐标记为Tpft
根据刚体的性质,这些特征点的相对位置关系不随着刚体的运动而改变,换言之,这些特征点在相对于刚体静止的坐标系中的位置不变,也即Tpft是一个不随时间改变的常量。这样的表示方法使得即使动态目标被部分遮挡,只要能够观测到其部分特征点,仍然能够计算出表征点的位置,并成功追踪刚体。
一种选取“表征点”与“非表征点”的可行的方案是采用首次观测到的特征点(中的一个)为刚体的“表征点”。
本申请实施例中,能够应对动态目标被部分遮挡的情况,增加系统鲁棒性。
(8)目标位姿估计340:
目标位姿估计340可以根据目标表征320输出的表征点在全局坐标系中的位置GpT以及非表征点在刚体坐标系中的坐标Tpft,确定是否观测到新的动态目标。如果新观测到动态目标,将该动态目标在当前时刻的状态向量加入到如公式(19)所示的整体状态向量中。具体的请参见图6中描述的方法。
步骤630:若持续观测到该动态目标,将动态目标状态向量加入整体状态向量中。
由于可能存在一闪而过的高速物体,以及目标错误检测的情况,因此只有在连续几帧观测到该动态目标后,才会将其加入整体状态向量,以确保加入的目标的正确性。
假设从Cj到CN几帧中观测到动态目标,j∈[1,N]。对观测到的目标上的特征点进行三角化,得到表征点和第i个非表征点在Cj坐标系中的位置
Figure GDA0003027659120000181
Figure GDA00030276591200001816
根据动态目标在这几帧之中的观测,对其状态向量进行初始化。
本申请实施例中,可以使得系统利用新的观测结果对状态向量(包括动态目标及自身位姿)进行不断更新,保证算法在动态的未知环境中对自身和动态目标的追踪定位。
下面给出不同的随机模型的初始化结果。
在一些实施例中,运行模型为全局匀速运动模型。选取第N帧(当前帧)坐标系的方向作为动态目标的初始方向,如公式(37)-(38)所示。
Figure GDA0003027659120000183
Figure GDA0003027659120000184
其中,
Figure GDA0003027659120000185
为Cj坐标系下,本征点指向第i非本征点方向的单位向量;
tj为第j帧的时间;
Figure GDA0003027659120000186
Figure GDA0003027659120000187
Figure GDA0003027659120000188
在一些实施例中,运行模型为局部匀速运动模型,只有速度的表示与前一个模型不同,其余变量相同。TvT的表示如公式(42)所示。
Figure GDA0003027659120000189
其中,
Figure GDA00030276591200001810
Figure GDA00030276591200001811
在一些实施例中,运行模型为局部平面运动模型,相关参数的计算如公式(45)-(53)所示。
Figure GDA00030276591200001812
ωz=||Gω|| (46)
Figure GDA00030276591200001813
Figure GDA00030276591200001814
Figure GDA00030276591200001815
Figure GDA0003027659120000191
Figure GDA0003027659120000192
Vy=0 (52)
Figure GDA0003027659120000193
其中,
Figure GDA0003027659120000194
表示T坐标系中坐标轴的方向向量(i=x,y,z)。
Figure GDA0003027659120000195
需要说明的是,本申请实施例中,由于三角化步骤中的误差取决于具体使用的方法,动态目标的初始化结果的协方差难以得到一个解析结果。因此可以考虑采用为协方差矩阵设置一个经验值作为初始值,后续的更新过程会对协方差不断修正。
(9)目标测量330:
目标测量330用于处理动态特征点,具体的请参见图6中步骤640。
步骤640:计算测量结果。
当动态目标跟丢或者达到了最大追踪长度的时候,利用它们的测量结果对状态向量进行更新。
本申请收集并采用图像中所检测到的目标上所有特征点的测量结果,包括“表征点”和“非表征点”。其中,表征点的测量模型为:
Figure GDA0003027659120000196
其中,П是一个将三维空间中特征点投影到平面图像上的投影函数,i为动态目标的编号
其残差方程为:
Figure GDA0003027659120000197
Figure GDA0003027659120000198
其中,
Figure GDA0003027659120000199
Figure GDA00030276591200001910
非表征点的测量模型为:
Figure GDA00030276591200001911
测量值的残差可表示为:
Figure GDA00030276591200001912
Figure GDA00030276591200001913
Figure GDA00030276591200001914
为了减低计算量,本申请实施例只保留与状态向量相关的项,边缘化特征点相关的项。故将上述残差方程分别投影到
Figure GDA0003027659120000201
Figure GDA0003027659120000202
的左零空间,以消除
Figure GDA0003027659120000203
Figure GDA0003027659120000204
的影响(具体方式与2.3相似),并将这些方程合成一个大矩阵方程,得到:
Figure GDA0003027659120000205
步骤650:若连续追踪不到该动态目标,将其从整体状态向量中删除,并相应地修改协方差矩阵。
可选地,系统不会在首次没有观测到动态目标的时候就将其从系统状态向量中去除,因为没有检测到动态目标的原因有很多,可能是单次错误检测,或者是目标暂时被遮挡。这种情况下草率地将动态目标删除对系统的正确性、连续性与鲁棒性都有影响。
另外,系统也不会一直在状态向量中保留动态目标的信息,因为这样会增加不必要的计算负担。
为避免这些负面影响,只有一段合适的时间之内一直追踪不到该动态目标的情况下,才会其从状态向量中删除,并相应地修改协方差矩阵。其中一种可能的实现方式中,只需要将动态目标对应的行和列删除即可。
本申请实施例中,控制系统状态向量的规模在一定范围,减少不必要的计算复杂度,保证算法能够实时处理。
(10)状态更新模块170:
将静态特征点与动态特征点测量结果的残差方程列写成一个方程,如公式(68)所下:
Figure GDA0003027659120000206
为了降低计算复杂度,对HX做QR分解以降维,得到:
Figure GDA0003027659120000207
将结果代入得到最终用于更新的残差方程,如公式(70):
Figure GDA0003027659120000208
即:
Figure GDA0003027659120000209
Figure GDA00030276591200002010
通过公式(73)计算卡尔曼增益K:
Figure GDA00030276591200002011
其中,Rn为噪声nn的协方差矩阵;
Pk|k-1用于表示根据上一个时刻(k-1)更新后的Pk-1|k-1预测当前时刻(k)的协方差矩阵:
Pk|k用于表示当前(k)时刻更新后的协方差矩阵。
通过公式(74)-(75)更新状态向量:
ΔX=Krn (74)
Xk|k=Xk|k-1+ΔX (75)
其中,Xk|k-1用于表示根据上一个时刻(k-1)更新后的Xk-1|k-1预测当前时刻(k)的整体状态向量;
Xk|k用于表示当前(k)时刻更新后的整体状态向量。
通过公式(76)更新协方差矩阵:
Pk|k=(I-KTH)Pk|k-1(I-KTH)T+KRnKT (76)
本申请实施例中,在复杂场景,如遮挡、观测不连续、快速运动等条件下仍能有较好的定位结果。
上文结合图1至图6,详细描述了本申请实施例提供的运动物体的追踪方法,下面将结合图7至图8,详细描述本申请装置的实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图7是本申请实施例提供的一种运动物体的追踪装置700的示意性框图。该装置700可以包括:
获取模块710,用于获取相机采集到的当前帧;
第一预测模块720,用于根据惯性测量单元IMU和所述当前帧,对所述相机的当前状态向量进行预测,得到所述相机的当前状态向量的预测值,所述相机的当前状态向量用于表示所述相机的当前位姿;
第二预测模块730,用于对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值,所述目标物体的当前状态向量用于表示所述目标物体的当前位姿;
更新模块740,用于根据所述当前帧中图像特征的测量结果对卡尔曼状态向量进行更新,得到更新后的卡尔曼状态向量,其中,所述更新后的卡尔曼状态向量用于表示对所述目标物体进行跟踪。
可选地,所述装置700还包括:
第一计算模块750,用于根据所述当前帧中的处于背景部分的图像特征和所述目标物体的图像特征,计算所述当前帧的图像特征的雅克比矩阵;
所述更新模块740具体用于:
根据所述当前帧的图像特征的雅克比矩阵,对所述卡尔曼状态向量中包括的目标物体的当前状态向量的预测值以及相机的当前状态向量的预测值进行更新。
可选地,所述第二预测模块730具体用于:
确定所述当前帧中的动态特征点,所述动态特征点中包括表征点和非表征点,所述表征点作为所述目标物体的坐标系的原点,所述非表征点用于表示所述目标物体上除了所述表征点之外的其他动态特征点;
根据所述表征点的姿态以及所述随机运动模型,对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值。
可选地,所述装置700还包括:
第二计算模块760,用于在所述表征点被遮挡的情况下,通过所述非表征点的姿态计算所述表征点的姿态。
可选地,第二预测模块730具体用于:
通过边界框框取所述当前帧中处于运动状态的目标物体;
将所述边界框内的特征点确定为所述动态特征点。
可选地,所述装置700还包括:
生成模块770,用于在所述当前帧之前的多帧图像中观测到所述处于运动状态的目标物体的情况下,将所述目标物体的当前状态向量的预测值加入滑动窗口,生成所述卡尔曼状态向量,其中,所述滑动窗口中包括所述相机的当前状态向量的预测值。
可选地,所述装置700还包括:
删除模块780,用于在预设时间内,所述当前帧中未观测到所述处于运动状态的目标物体,从所述卡尔曼状态向量中删除所述目标物体的当前状态向量的预测值。
图8是本申请实施例提供的一种运动物体的追踪装置800的示意性框图。该装置800可以包括:存储器810、处理器820、输入/输出接口830。
其中,存储器810、处理器820和输入/输出接口830通过内部连接通路相连,该存储器810用于存储程序指令,该处理器820用于执行该存储器810存储的程序指令,以控制输入/输出接口830接收输入的数据和信息,输出操作结果等数据。
应理解,在本申请实施例中,该处理器820可以采用中央处理单元(centralprocessing unit,CPU),该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器820采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器810可以包括只读存储器和随机存取存储器,并向处理器820提供指令和数据。处理器820的一部分还可以包括非易失性随机存取存储器。例如,处理器820还可以存储设备类型的信息。
存储器810可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器901可以存储程序,当存储器810中存储的程序被处理器820执行时,处理器810和用于执行本申请实施例的的各个步骤。
在实现过程中,上述方法的各步骤可以通过处理器820中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器810,处理器820读取存储器810中的信息,结合其硬件完成上述方法的步骤。
具体的,处理器820通过从存储器810中获取存储的指令,并执行以下步骤:
获取相机采集到的当前帧;
根据惯性测量单元IMU和所述当前帧,对所述相机的当前状态向量进行预测,得到所述相机的当前状态向量的预测值,所述相机的当前状态向量用于表示所述相机的当前位姿;
对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值,所述目标物体的当前状态向量用于表示所述目标物体的当前位姿;
根据所述相机的当前状态向量的预测值以及所述目标物体的当前状态向量的预测值生成卡尔曼状态向量;
根据所述当前帧中图像特征的测量结果对卡尔曼状态向量进行更新,得到更新后的卡尔曼状态向量,其中,所述更新后的卡尔曼状态向量用于表示对所述目标物体进行跟踪。
可选地,根据所述当前帧中的处于背景部分的图像特征和所述目标物体的图像特征,计算所述当前帧的图像特征的雅克比矩阵;根据所述当前帧的图像特征的雅克比矩阵,对所述卡尔曼状态向量中包括的目标物体的当前状态向量的预测值以及相机的当前状态向量的预测值进行更新。
可选地,确定所述当前帧中的动态特征点,所述动态特征点中包括表征点和非表征点,所述表征点作为所述目标物体的坐标系的原点,所述非表征点用于表示所述目标物体上除了所述表征点之外的其他动态特征点;根据所述表征点的姿态以及所述随机运动模型,对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值。
可选地,在所述表征点被遮挡的情况下,通过所述非表征点的姿态计算所述表征点的姿态。
可选地,通过边界框框取所述当前帧中处于运动状态的目标物体;将所述边界框内的特征点确定为所述动态特征点。
可选地,在所述当前帧之前的多帧图像中观测到所述处于运动状态的目标物体的情况下,将所述目标物体的当前状态向量的预测值加入滑动窗口,生成所述卡尔曼状态向量,其中,所述滑动窗口中包括所述相机的当前状态向量的预测值。
可选地,在预设时间内,所述当前帧中未观测到所述处于运动状态的目标物体,从所述卡尔曼状态向量中删除所述目标物体的当前状态向量的预测值。
需要说明的是,在图8所示的装置800中,处理器820可以通过调用存储器810中的计算机程序,实现各个模块执行的步骤。例如,可以由处理器820调用缓存中存储的计算机指令来执行各个模块所需要执行的步骤。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
可选地,本申请还提供了一种芯片,该芯片包括:存储器,用于存储程序;处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第一方面中的方法。
可选地,该处理器可以是通用处理器,可以通过硬件来实现也可以通过软件来实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
其中,存储器、处理器和输入/输出接口通过内部连接通路相连,该存储器用于存储程序指令,该处理器用于执行该存储器存储的程序指令,以控制输入/输出接口830接收输入的数据和信息,输出操作结果等数据。
应理解,在本申请实施例中,该处理器可以采用中央处理单元(centralprocessing unit,CPU),该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。处理器的一部分还可以包括非易失性随机存取存储器。例如,处理器还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
具体的,处理器通过从存储器中获取存储的指令,并执行以下步骤:
获取相机采集到的当前帧;
根据惯性测量单元IMU和所述当前帧,对所述相机的当前状态向量进行预测,得到所述相机的当前状态向量的预测值,所述相机的当前状态向量用于表示所述相机的当前位姿;
对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值,所述目标物体的当前状态向量用于表示所述目标物体的当前位姿;
根据所述相机的当前状态向量的预测值以及所述目标物体的当前状态向量的预测值生成卡尔曼状态向量;
根据所述当前帧中图像特征的测量结果对卡尔曼状态向量进行更新,得到更新后的卡尔曼状态向量,其中,所述更新后的卡尔曼状态向量用于表示对所述目标物体进行跟踪。
可选地,根据所述当前帧中的处于背景部分的图像特征和所述目标物体的图像特征,计算所述当前帧的图像特征的雅克比矩阵;根据所述当前帧的图像特征的雅克比矩阵,对所述卡尔曼状态向量中包括的目标物体的当前状态向量的预测值以及相机的当前状态向量的预测值进行更新。
可选地,确定所述当前帧中的动态特征点,所述动态特征点中包括表征点和非表征点,所述表征点作为所述目标物体的坐标系的原点,所述非表征点用于表示所述目标物体上除了所述表征点之外的其他动态特征点;根据所述表征点的姿态以及所述随机运动模型,对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值。
可选地,在所述表征点被遮挡的情况下,通过所述非表征点的姿态计算所述表征点的姿态。
可选地,通过边界框框取所述当前帧中处于运动状态的目标物体;将所述边界框内的特征点确定为所述动态特征点。
可选地,在所述当前帧之前的多帧图像中观测到所述处于运动状态的目标物体的情况下,将所述目标物体的当前状态向量的预测值加入滑动窗口,生成所述卡尔曼状态向量,其中,所述滑动窗口中包括所述相机的当前状态向量的预测值。
在另一种可能的实现方式中,在预设时间内,所述当前帧中未观测到所述处于运动状态的目标物体,从所述卡尔曼状态向量中删除所述目标物体的当前状态向量的预测值。
可选地,本申请还提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行图2中的方法。
可选地,本申请还提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行图2中的方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
应理解,本申请实施例中的方式、情况、类别以及实施例的划分仅是为了描述的方便,不应构成特别的限定,各种方式、类别、情况以及实施例中的特征在不矛盾的情况下可以相结合。
还应理解,在本申请的各实施例中,“第一”、“第二”、“第三”等仅是为了指代不同的对象,并不表示对指代的对象有其它限定。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (16)

1.一种运动物体的追踪方法,其特征在于,所述方法包括:
获取相机采集到的当前帧;
根据惯性测量单元IMU和所述当前帧,对所述相机的当前状态向量进行预测,得到所述相机的当前状态向量的预测值,所述相机的当前状态向量用于表示所述相机的当前位姿;
对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值,所述目标物体的当前状态向量用于表示所述目标物体的当前位姿;
根据所述当前帧中图像特征的测量结果对卡尔曼状态向量进行更新,得到更新后的卡尔曼状态向量,其中,所述卡尔曼状态向量中包括所述相机的当前状态向量的预测值以及所述目标物体的当前状态向量的预测值,所述更新后的卡尔曼状态向量用于表示对所述目标物体进行跟踪。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述当前帧中的处于背景部分的图像特征和所述目标物体的图像特征,计算所述当前帧的图像特征的雅克比矩阵;
所述当前帧中图像特征的测量结果,对卡尔曼状态向量进行更新,包括:
根据所述当前帧的图像特征的雅克比矩阵,对所述卡尔曼状态向量中包括的目标物体的当前状态向量的预测值以及相机的当前状态向量的预测值进行更新。
3.根据权利要求1所述的方法,其特征在于,对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值,包括:
确定所述当前帧中的动态特征点,所述动态特征点中包括表征点和非表征点,所述表征点作为所述目标物体的坐标系的原点,所述非表征点用于表示所述目标物体上除了所述表征点之外的其他动态特征点;
根据所述表征点的姿态以及随机运动模型,对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述表征点被遮挡的情况下,通过所述非表征点的姿态计算所述表征点的姿态。
5.根据权利要求3所述的方法,其特征在于,所述确定所述当前帧中的动态特征点,包括:
通过边界框框取所述当前帧中处于运动状态的目标物体;
将所述边界框内的特征点确定为所述动态特征点。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
在所述当前帧之前的多帧图像中观测到所述处于运动状态的目标物体的情况下,将所述目标物体的当前状态向量的预测值加入滑动窗口,生成所述卡尔曼状态向量,其中,所述滑动窗口中包括所述相机的当前状态向量的预测值。
7.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
在预设时间内,所述当前帧中未观测到所述处于运动状态的目标物体,从所述卡尔曼状态向量中删除所述目标物体的当前状态向量的预测值。
8.一种运动物体的追踪装置,其特征在于,所述装置包括:
获取模块,用于获取相机采集到的当前帧;
第一预测模块,用于根据惯性测量单元IMU和所述当前帧,对所述相机的当前状态向量进行预测,得到所述相机的当前状态向量的预测值,所述相机的当前状态向量用于表示所述相机的当前位姿;
第二预测模块,用于对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值,所述目标物体的当前状态向量用于表示所述目标物体的当前位姿;
更新模块,用于根据所述当前帧中图像特征的测量结果对卡尔曼状态向量进行更新,得到更新后的卡尔曼状态向量,其中,所述卡尔曼状态向量中包括所述相机的当前状态向量的预测值以及所述目标物体的当前状态向量的预测值,所述更新后的卡尔曼状态向量用于表示对所述目标物体进行跟踪。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第一计算模块,用于根据所述当前帧中的处于背景部分的图像特征和所述目标物体的图像特征,计算所述当前帧的图像特征的雅克比矩阵;
所述更新模块具体用于:
根据所述当前帧的图像特征的雅克比矩阵,对所述卡尔曼状态向量中包括的目标物体的当前状态向量的预测值以及相机的当前状态向量的预测值进行更新。
10.根据权利要求8所述的装置,其特征在于,所述第二预测模块具体用于:
确定所述当前帧中的动态特征点,所述动态特征点中包括表征点和非表征点,所述表征点作为所述目标物体的坐标系的原点,所述非表征点用于表示所述目标物体上除了所述表征点之外的其他动态特征点;
根据所述表征点的姿态以及随机运动模型,对所述当前帧中处于运动状态的目标物体的当前状态向量进行预测,得到所述目标物体的当前状态向量的预测值。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第二计算模块,用于在所述表征点被遮挡的情况下,通过所述非表征点的姿态计算所述表征点的姿态。
12.根据权利要求10所述的装置,其特征在于,第二预测模块具体用于:
通过边界框框取所述当前帧中处于运动状态的目标物体;
将所述边界框内的特征点确定为所述动态特征点。
13.根据权利要求8至12中任一项所述的装置,其特征在于,所述装置还包括:
生成模块,用于在所述当前帧之前的多帧图像中观测到所述处于运动状态的目标物体的情况下,将所述目标物体的当前状态向量的预测值加入滑动窗口,生成所述卡尔曼状态向量,其中,所述滑动窗口中包括所述相机的当前状态向量的预测值。
14.根据权利要求8至12中任一项所述的装置,其特征在于,所述装置还包括:
删除模块,用于在预设时间内,所述当前帧中未观测到所述处于运动状态的目标物体,从所述卡尔曼状态向量中删除所述目标物体的当前状态向量的预测值。
15.一种运动物体的的追踪装置,其特征在于,所述装置包括:输入输出接口、处理器和存储器,所述存储器用于存储程序指令,所述处理器用于从存储器中调用并运行所述程序指令以执行权利要求1至7中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行权利要求1至7中任一项所述的方法。
CN201910353672.3A 2019-04-29 2019-04-29 一种运动物体的追踪方法和装置 Active CN110211151B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910353672.3A CN110211151B (zh) 2019-04-29 2019-04-29 一种运动物体的追踪方法和装置
PCT/CN2020/087842 WO2020221307A1 (zh) 2019-04-29 2020-04-29 一种运动物体的追踪方法和装置
US17/513,859 US12073630B2 (en) 2019-04-29 2021-10-28 Moving object tracking method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910353672.3A CN110211151B (zh) 2019-04-29 2019-04-29 一种运动物体的追踪方法和装置

Publications (2)

Publication Number Publication Date
CN110211151A CN110211151A (zh) 2019-09-06
CN110211151B true CN110211151B (zh) 2021-09-21

Family

ID=67786663

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910353672.3A Active CN110211151B (zh) 2019-04-29 2019-04-29 一种运动物体的追踪方法和装置

Country Status (3)

Country Link
US (1) US12073630B2 (zh)
CN (1) CN110211151B (zh)
WO (1) WO2020221307A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110211151B (zh) 2019-04-29 2021-09-21 华为技术有限公司 一种运动物体的追踪方法和装置
CN110751677A (zh) * 2019-10-29 2020-02-04 西安邮电大学 一种基于改进cmt算法的视觉振动测量方法和设备
US11440196B1 (en) 2019-12-17 2022-09-13 X Development Llc Object association using machine learning models
CN111707997B (zh) * 2020-06-03 2022-05-27 南京慧尔视智能科技有限公司 雷达目标跟踪方法、装置、电子设备及存储介质
CN111815679B (zh) * 2020-07-27 2022-07-26 西北工业大学 一种基于双目相机的空间目标特征点丢失期间轨迹预测方法
CN112084458B (zh) * 2020-08-07 2024-08-09 深圳市瑞立视多媒体科技有限公司 刚体姿态追踪方法及其装置、设备、存储介质
CN112435294B (zh) * 2020-11-02 2023-12-08 中国科学院深圳先进技术研究院 目标物体的六自由度姿态跟踪方法及终端设备
US20230019731A1 (en) * 2021-07-01 2023-01-19 Naver Corporation Vehicle speed estimation systems and methods

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107656545A (zh) * 2017-09-12 2018-02-02 武汉大学 一种面向无人机野外搜救的自主避障与导航方法
CN108120438A (zh) * 2017-12-15 2018-06-05 北京工商大学 一种基于imu和rfid信息融合的室内目标快速跟踪方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140341465A1 (en) * 2013-05-16 2014-11-20 The Regents Of The University Of California Real-time pose estimation system using inertial and feature measurements
US9658070B2 (en) * 2014-07-11 2017-05-23 Regents Of The University Of Minnesota Inverse sliding-window filters for vision-aided inertial navigation systems
US20160140729A1 (en) * 2014-11-04 2016-05-19 The Regents Of The University Of California Visual-inertial sensor fusion for navigation, localization, mapping, and 3d reconstruction
CN105931275A (zh) * 2016-05-23 2016-09-07 北京暴风魔镜科技有限公司 基于移动端单目和imu融合的稳定运动跟踪方法和装置
US20180112985A1 (en) * 2016-10-26 2018-04-26 The Charles Stark Draper Laboratory, Inc. Vision-Inertial Navigation with Variable Contrast Tracking Residual
CN109387198B (zh) 2017-08-03 2022-07-15 北京自动化控制设备研究所 一种基于序贯检测的惯性/视觉里程计组合导航方法
CN107564061B (zh) * 2017-08-11 2020-11-20 浙江大学 一种基于图像梯度联合优化的双目视觉里程计算方法
CN108458745A (zh) * 2017-12-23 2018-08-28 天津国科嘉业医疗科技发展有限公司 一种基于智能检测设备的环境感知方法
CN108364304A (zh) * 2018-04-11 2018-08-03 湖南城市学院 一种用于单目机载目标检测的系统和方法
CN108921898B (zh) 2018-06-28 2021-08-10 北京旷视科技有限公司 摄像机位姿确定方法、装置、电子设备和计算机可读介质
CN112105893B (zh) * 2019-01-30 2023-08-22 百度时代网络技术(北京)有限公司 用于自动驾驶车辆的实时地图生成系统
CN110160522A (zh) 2019-04-16 2019-08-23 浙江大学 一种基于稀疏特征法的视觉惯导里程计的位姿估计方法
CN110211151B (zh) * 2019-04-29 2021-09-21 华为技术有限公司 一种运动物体的追踪方法和装置
US11768504B2 (en) * 2020-06-10 2023-09-26 AI Incorporated Light weight and real time slam for robots

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107656545A (zh) * 2017-09-12 2018-02-02 武汉大学 一种面向无人机野外搜救的自主避障与导航方法
CN108120438A (zh) * 2017-12-15 2018-06-05 北京工商大学 一种基于imu和rfid信息融合的室内目标快速跟踪方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
《Developing a Cubature Multi-state Constraint Kalman Filter for Visual-Inertial Navigation System》;Trung Nguyen,et al;《2017 14th Conference on Computer and Robot Vision》;20181231;第321-328页 *
《基于多状态约束的视觉/惯性组合导航算法研究》;蔡迎波;《光学与光电技术》;20151231;第13卷(第6期);第58-62页 *
《多状态多视图约束视觉/惯性组合导航算法研究》;文坤;《中国优秀硕士学位论文全文数据库 信息科技辑》;20190115(第1期);第I140-967页 *

Also Published As

Publication number Publication date
CN110211151A (zh) 2019-09-06
WO2020221307A1 (zh) 2020-11-05
US12073630B2 (en) 2024-08-27
US20220051031A1 (en) 2022-02-17

Similar Documents

Publication Publication Date Title
CN110211151B (zh) 一种运动物体的追踪方法和装置
US9996941B2 (en) Constrained key frame localization and mapping for vision-aided inertial navigation
Panahandeh et al. Vision-aided inertial navigation based on ground plane feature detection
Rambach et al. Learning to fuse: A deep learning approach to visual-inertial camera pose estimation
Indelman et al. Information fusion in navigation systems via factor graph based incremental smoothing
EP3451288A1 (en) Visual-inertial odometry with an event camera
EP3309751B1 (en) Image processing device, method, and program
Tian et al. Accurate human navigation using wearable monocular visual and inertial sensors
US10895458B2 (en) Method, apparatus, and system for determining a movement of a mobile platform
CN112567201A (zh) 距离测量方法以及设备
CN112815939B (zh) 移动机器人的位姿估计方法及计算机可读存储介质
KR102169309B1 (ko) 정보 처리장치 및 그 제어방법
CN112837352B (zh) 基于图像的数据处理方法、装置及设备、汽车、存储介质
US20180075614A1 (en) Method of Depth Estimation Using a Camera and Inertial Sensor
CN111623773B (zh) 一种基于鱼眼视觉和惯性测量的目标定位方法及装置
CN113160221B (zh) 图像处理方法、装置、计算机设备和存储介质
CN107942090B (zh) 一种基于模糊星图提取光流信息的航天器角速度估计方法
CN109785428A (zh) 一种基于多态约束卡尔曼滤波的手持式三维重建方法
CN114593735B (zh) 一种位姿预测方法及装置
CN108827287B (zh) 一种复杂环境下的鲁棒视觉slam系统
CN111811421B (zh) 一种高速实时形变监测方法及系统
JP6603993B2 (ja) 画像処理装置、画像処理方法、画像処理システム、及びプログラム
CN113670327A (zh) 视觉惯性里程计初始化方法、装置、设备和存储介质
CN114613002B (zh) 基于光线投影原理的运动视角下动态物体检测方法及系统
WO2022179047A1 (zh) 一种状态信息估计方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant