CN117237399A - 一种物体跟踪方法以及相关设备 - Google Patents
一种物体跟踪方法以及相关设备 Download PDFInfo
- Publication number
- CN117237399A CN117237399A CN202211091076.0A CN202211091076A CN117237399A CN 117237399 A CN117237399 A CN 117237399A CN 202211091076 A CN202211091076 A CN 202211091076A CN 117237399 A CN117237399 A CN 117237399A
- Authority
- CN
- China
- Prior art keywords
- target object
- current frame
- tracking
- pose
- image
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 143
- 230000008859 change Effects 0.000 claims description 85
- 230000015654 memory Effects 0.000 claims description 47
- 238000012545 processing Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 9
- 230000003068 static effect Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 description 41
- 238000005457 optimization Methods 0.000 description 31
- 238000004422 calculation algorithm Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 16
- 230000010365 information processing Effects 0.000 description 10
- 238000013519 translation Methods 0.000 description 10
- 206010047289 Ventricular extrasystoles Diseases 0.000 description 9
- 230000000694 effects Effects 0.000 description 9
- 238000005129 volume perturbation calorimetry Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 8
- 230000003190 augmentative effect Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 4
- 239000011521 glass Substances 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000012216 screening Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本申请公开了一种物体跟踪方法,该方法中,终端设备向计算设备集群发送图像序列中的第一图像;然后,计算设备集群基于第一图像,生成目标物体的第一位姿信息并向终端设备发送第一位姿信息,其中,第一位姿信息用于描述所述目标物体在第一图像中对应的位姿。接着,终端设备根据第一位姿信息,在图像序列中对目标物体进行三维物体跟踪。这样,可以通过计算设备集群来实现获得目标物体在第一图像中对应的位姿的相关运算,从而减小三维物体跟踪时终端设备的运算压力,提高终端设备的运算速度,满足三维物体跟踪时的实时性要求。
Description
本申请要求于2022年6月08日提交的、中国申请号为202210646960.X、发明名称为“一种3D物体跟踪系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及物体跟踪技术领域,具体涉及一种物体跟踪方法以及相关设备。
背景技术
三维(three-dimensional,3D)物体跟踪是计算机视觉领域的一个重要研究方向,在诸如增强现实(augmented reality,AR)、人机交互、视觉伺服等领域具有广泛的应用前景。
而目前,传统的三维物体跟踪算法的架构通常较为复杂,计算复杂度较高,导致在AR眼镜、手机、平板电脑等计算资源较弱的终端设备上进行三维物体跟踪时运行速度较慢,跟踪效果较差。
发明内容
本申请提供一种物体跟踪方法,以解决目前在AR眼镜、手机、平板电脑等计算资源较弱的终端设备上进行三维物体跟踪时运行速度较慢,跟踪效果较差的问题。本申请还提供了相应的装置、设备、计算机可读存储介质和计算机程序产品等。
本申请第一方面提供一种物体跟踪方法,该方法应用于计算设备集群,该方法包括:接收终端设备发送的图像序列,图像序列中包括第一图像;基于第一图像,生成目标物体的第一位姿信息,第一位姿信息用于描述目标物体在第一图像中对应的位姿;向终端设备发送目标物体的第一位姿信息,以使得终端设备根据第一位姿信息,在图像序列中对目标物体进行三维物体跟踪。
在第一方面中,计算设备集群可以根据终端设备发送的图像序列中的第一图像,获得目标物体在第一图像中的第一位姿信息,从而使得终端设备根据计算设备集群发送的第一位姿信息,在图像序列中对目标物体进行三维跟踪。这样,可以通过计算设备集群来实现获得目标物体在第一图像对应的位姿的相关运算,从而减小三维物体跟踪时终端设备的运算压力,提高终端设备的运算速度,满足三维物体跟踪时的实时性要求。
在第一方面的一种可能的实现方式中,该方法还包括:接收终端设备发送的第一数据,第一数据指示目标物体处于跟丢状态,跟丢状态指示终端设备在图像序列中无法识别到目标物体;在接收终端设备发送的第一数据之后,若在图像序列的第三图像中识别到目标物体,则向终端设备发送第二数据,以使得终端设备根据第二数据对目标物体进行三维物体跟踪,第二数据包括第二位姿信息,并且,第二数据指示目标物体处于与跟丢状态对应的目标状态,第二位姿信息用于描述目标物体在第三图像对应的位姿。
该种可能的实现方式中,计算设备集群可以根据该第一数据,在二维物体跟踪中确定该目标物体是否确实跟丢,若跟丢,则对终端设备中目标物体进行重定位,从而重新获取该目标物体的初始位姿,并下发至终端设备,以继续对该目标物体进行三维物体跟踪。
其中,该第二数据指示目标物体处于与跟丢状态对应的目标状态,这样,终端设备在接收到第二数据之后,基于该目标状态,可以确定该第二数据为基于第一数据对目标物体进行重定位之后所获得的信息,因此,可以根据第二数据中目标物体的第二位姿信息,对目标物体进行三维物体跟踪。
在第一方面的一种可能的实现方式中,上述步骤:基于第一图像,生成目标物体的第一位姿信息,包括:根据图像序列中的至少一帧,在第一图像中进行二维物体跟踪,以获得第一图像中的目标物体对应的第三数据,第三数据包含目标物体的第一物体标识;若根据第三数据确定目标物体的跟踪状态为第一状态,则生成目标物体对应的第一位姿信息,第一状态指目标物体为新增的待跟踪物体,或者,指示目标物体为终端设备在图像序列中无法识别到的物体。
该种可能的实现方式中,对于第一图像中识别到的目标物体,可以在确定该目标物体为新增的待跟踪物体时,再通过该三维物体定位模块对该新增的待跟踪物体进行三维物体定位,获得该新增的待跟踪物体的第一位姿信息,以作为该新增的待跟踪物体的初始位姿,这样,终端设备可以基于该初始位姿,开始对该新增的待跟踪物体进行三维物体跟踪。或者,对于第一图像中识别到的目标物体,可以在结合终端设备上传的相关指示信息,确定该目标物体为终端设备中无法识别到的物体时,再通过该三维物体定位模块对该无法识别到的物体进行三维物体定位,获得该物体的第一位姿信息,以作为该无法识别到的物体的重定位位姿,这样,终端设备可以基于该重定位位姿,继续对该无法识别到的物体进行三维物体跟踪。
在第一方面的一种可能的实现方式中,上述步骤:若根据第三数据确定目标物体的跟踪状态为第一状态,则生成目标物体对应的第一位姿信息,包括:比对第一物体标识与每个第二物体标识,每个第二物体标识为图像序列中,第一图像的前M帧的每一帧中,基于二维物体跟踪而确定的一个物体的物体标识,M为正整数;若比对结果指示第一物体标识是相对于前M帧的新增的物体标识,则生成新增的物体标识对应的目标物体的第一位姿信息,新增的物体标识对应的目标物体为新增的待跟踪物体。
该种可能的实现方式中,通过比对第一物体标识与每个第二物体标识,可以确定第一图像中是否存在新增的待跟踪物体,若存在,则获得该新增的待跟踪物体的第一位姿信息并下发给终端设备,从而使得终端设备获得该新增的待跟踪物体的第一位姿信息以作为该新增的该跟踪物体的初始位姿并进行三维物体跟踪。
在第一方面的一种可能的实现方式中,上述步骤:若根据第三数据确定目标物体的跟踪状态为第一状态,则获得目标物体对应的第一位姿信息,包括:比对第一物体标识与每个第二物体标识,每个第二物体标识为图像序列中,第一图像的前M帧的每一帧中,基于二维物体跟踪而确定的一个物体的物体标识,M为正整数;若比对结果指示第一物体标识是相对于前M帧的非新增的物体标识,则:若非新增的物体标识对应的第三数据的第一字段中包含第一描述信息,则生成非新增的物体标识对应的目标物体的第一位姿信息,第一字段中包含的第一描述信息指示目标物体为终端设备在图像序列中无法识别到的物体。
该种可能的实现方式中,可以根据第三数据确定目标物体为终端设备在图像序列中无法识别到的物体,从而获得目标物体对应的第一位姿信息以作为该目标物体的重定位位姿并向终端设备发送,以使得终端设备根据该目标物体的第一位姿信息,继续进行三维物体跟踪。
本申请第二方面提供物体跟踪方法,该方法应用于终端设备,该方法包括:实时采集图像序列;向计算设备集群发送图像序列,图像序列中包括第一图像;接收计算设备集群发送的目标物体的第一位姿信息,第一位姿信息用于描述目标物体在第一图像中对应的位姿;根据第一位姿信息,在图像序列中对目标物体进行三维物体跟踪。
在第二方面中,计算设备集群可以根据终端设备发送的图像序列中的第一图像,获得目标物体在第一图像中的第一位姿信息,从而使得终端设备根据计算设备集群发送的第一位姿信息,在图像序列中对目标物体进行三维跟踪。这样,可以通过计算设备集群来实现获得目标物体在第一图像对应的位姿的相关运算,从而减小三维物体跟踪时终端设备的运算压力,提高终端设备的运算速度,满足三维物体跟踪时的实时性要求。
在第二方面的一种可能的实现方式中,第一位姿信息用于描述目标物体在第一图像对应的相机坐标系下的位姿。
在第二方面的一种可能的实现方式中,该方法还包括:在图像序列中对目标物体进行三维物体跟踪时,若在图像序列中的第二图像中无法识别到目标物体,则向计算设备集群发送目标物体对应的第一数据,第一数据指示目标物体处于跟丢状态;在无法识别到目标物体之后,若从计算设备集群接收到第二数据,且第二数据指示目标物体处于与跟丢状态对应的目标状态,则根据第二数据中目标物体的第二位姿信息,对目标物体进行三维物体跟踪。
该种可能的实现方式中,该第二数据指示目标物体处于与跟丢状态对应的目标状态,这样,终端设备在接收到第二数据之后,基于该目标状态,可以确定该第二数据为基于第一数据对目标物体进行重定位之后所获得的信息,因此,可以根据第二数据中目标物体的第二位姿信息,对目标物体进行三维物体跟踪。
在第二方面的一种可能的实现方式中,第一数据包括目标物体的物体标识,第一数据中通过第一字段包含的第一描述信息描述跟丢状态,第二数据包括目标物体的物体标识,并且第二数据中通过第二字段包含的第二描述信息描述目标状态。
在第二方面的一种可能的实现方式中,上述步骤:根据第一位姿信息,在图像序列中对目标物体进行三维物体跟踪,包括:在图像序列中的当前帧对目标物体进行三维物体跟踪时,根据目标物体在当前帧与当前帧之前的N帧之间的第一相对位姿变化,获得目标物体在当前帧中的三维跟踪结果,N为正整数。
在第二方面的一种可能的实现方式中,上述步骤:在图像序列中的当前帧对目标物体进行三维物体跟踪时,根据目标物体在当前帧与当前帧之前的N帧之间的第一相对位姿变化,获得目标物体在当前帧中的三维跟踪结果,包括:在图像序列中的当前帧对目标物体进行三维物体跟踪时,若第一相对位姿变化不满足第一预设条件,则根据与当前帧相匹配的关键帧中目标物体的第三位姿信息,和/或,当前帧中目标物体的轮廓信息,获得目标物体在当前帧中的三维跟踪结果,第三位姿信息用于描述目标物体在关键帧对应的位姿。
该种可能的实现方式中,第一相对位姿变化不满足第一预设条件指示目标物体在当前帧与当前帧之前的N帧之间的相对位姿变化较大。示例性地,该第一预设条件可以指第一相对位姿变化对应的平移矩阵所指示的平移量大于预设的平移量阈值,和/或,第一相对位姿变化对应的旋转矩阵所指示的旋转角度大于预设的旋转角度阈值等等。
该种可能的实现方式中,第一相对位姿变化不满足第一预设条件指示目标物体在当前帧与当前帧之前的N帧之间的相对位姿变化较大,此时,基于该第一相对位姿变化计算出的目标物体在当前帧所对应的位姿可能会存在较大误差。因此,可以进一步结合与当前帧相匹配的关键帧中目标物体的第三位姿信息,和/或,当前帧中目标物体的轮廓信息,来获得目标物体在当前帧中的三维跟踪结果,以降低跟踪误差,提升跟踪精度。
在第二方面的一种可能的实现方式中,上述步骤:在图像序列中的当前帧对目标物体进行三维物体跟踪时,若第一相对位姿变化不满足第一预设条件,则根据当前帧对应的关键帧中目标物体的第三位姿信息,和/或,当前帧中目标物体的轮廓信息,获得目标物体在当前帧中的三维跟踪结果,包括:在当前帧对目标物体进行三维物体跟踪时,若第一相对位姿变化不满足第一预设条件,则:若获得与当前帧相匹配的关键帧,则根据目标物体在当前帧与当前帧对应的关键帧之间的第二相对位姿变化,以及第三位姿信息,获得目标物体在当前帧中的三维跟踪结果。
该种可能的实现方式中,在实际应用过程中,还可以预先获得每个关键帧中待跟踪物体的位姿信息。通常来说,关键帧的质量通常较高,特征点数量较多,每个关键帧中待跟踪物体的位姿信息通常较为准确,从而可以为三维物体跟踪时的相关位姿优化过程提供较为准确的数据基础,使得终端设备可以基于关键帧对应的位姿信息,在各个图像帧获得较为准确的位姿优化结果。因此,若获得与当前帧相匹配的关键帧,则根据目标物体在当前帧与当前帧对应的关键帧之间的第二相对位姿变化,以及第三位姿信息,获得目标物体在当前帧中的三维跟踪结果。
在第二方面的一种可能的实现方式中,上述步骤:在图像序列中的当前帧对目标物体进行三维物体跟踪时,若第一相对位姿变化不满足第一预设条件,则根据当前帧对应的关键帧中目标物体的第三位姿信息,和/或,当前帧中目标物体的轮廓信息,获得目标物体在当前帧中的三维跟踪结果,包括:在当前帧对目标物体进行三维物体跟踪时,若第一相对位姿变化不满足第一预设条件,且不存在与当前帧相匹配的关键帧,则根据当前帧中目标物体的轮廓信息,获得目标物体在当前帧中的三维跟踪结果。
该种可能的实现方式中,在图像序列中的当前帧对目标物体进行三维物体跟踪时,若第一相对位姿变化不满足第一预设条件,且不存在与当前帧相匹配的关键帧,则可以结合目标物体的轮廓信息进行三维物体跟踪,从而可以在目标物体出现部分遮挡、表面纹理信息较少甚至无纹理等情况下依然可以进行跟踪,提升了三维物体跟踪的鲁棒性。
在第二方面的一种可能的实现方式中,上述步骤:根据第一位姿信息,在图像序列中对目标物体进行三维物体跟踪,包括:在图像序列中的当前帧对目标物体进行三维物体跟踪时,若目标物体为静止物体,则:根据目标物体的第一位姿信息、第一图像对应的相机位姿信息和当前帧对应的相机位姿信息,获得目标物体在当前帧对应的初始估计位姿信息,其中,相机位姿信息用于描述相应相机在世界坐标系下的位姿,初始估计位姿信息用于描述目标物体在当前帧中对应的初始估计位姿;根据初始估计位姿信息,获得目标物体在当前帧中的三维跟踪结果。
该种可能的实现方式中,若目标物体为静止物体,则该目标物体在世界坐标系下的位姿为固定值。此时,基于目标物体的第一位姿信息以及第一图像对应的相机位姿信息,可以获得该目标物体在世界坐标系下的位姿,从而在后续的三维跟踪过程中,基于该目标物体在世界坐标系下的位姿以及当前帧对应的相机位姿信息,获得目标物体在当前帧对应的初始估计位姿信息,从而为目标物体在当前帧中的三维物体跟踪过程提供一个偏差较小的初值,加速位姿优化过程。
在第二方面的一种可能的实现方式中,上述步骤:接收计算设备集群发送的目标物体的第一位姿信息,包括:接收计算设备集群发送的目标物体的第一位姿信息和目标物体的类型信息;该方法还包括:基于目标物体的类型信息,确定目标物体是否为静止物体。
该种可能的实现方式中,终端设备接收到目标物体的类型信息之后,可以基于目标物体的类型信息确定目标物体是否为静止物体,从而以较为合适的方式计算目标物体的初始估计位姿以进行位姿优化。
本申请第三方面提供一种物体跟踪方法,其特征在于,方法包括:终端设备实时采集图像序列;终端设备向计算设备集群发送图像序列,图像序列中包括第一图像;计算设备集群基于第一图像,生成目标物体的第一位姿信息,第一位姿信息用于描述目标物体在第一图像中对应的位姿;计算设备集群向终端设备发送目标物体的第一位姿信息;终端设备根据第一位姿信息,在图像序列中对目标物体进行三维物体跟踪。
在第三方面的一种可能的实现方式中,该方法还包括:终端设备在图像序列中对目标物体进行三维物体跟踪时,若终端设备在图像序列中的第二图像中无法识别到目标物体,则向计算设备集群发送目标物体对应的第一数据,第一数据指示目标物体处于跟丢状态;计算设备集群接收第一数据之后,若计算设备集群在图像序列的第三图像中识别到目标物体,则向终端设备发送第二数据,第二数据包括第二位姿信息,并且,第二数据指示目标物体处于与跟丢状态对应的目标状态,第二位姿信息用于描述目标物体在第三图像对应的位姿;终端设备在无法识别到目标物体之后,若从计算设备集群接收到第二数据,则根据第二数据中目标物体的第二位姿信息,对目标物体进行三维物体跟踪。
在第三方面的一种可能的实现方式中,终端设备根据第一位姿信息,在图像序列中对目标物体进行三维物体跟踪,包括:终端设备在图像序列中的当前帧对目标物体进行三维物体跟踪时,若目标物体在当前帧与当前帧之前的N帧之间的第一相对位姿变化不满足第一预设条件,则根据与当前帧相匹配的关键帧中目标物体的第三位姿信息,和/或,当前帧中目标物体的轮廓信息,获得目标物体在当前帧中的三维跟踪结果,第三位姿信息用于描述目标物体在关键帧对应的位姿,N为正整数。
在第三方面的一种可能的实现方式中,终端设备在图像序列中的当前帧对目标物体进行三维物体跟踪时,若目标物体在当前帧与当前帧之前的N帧之间的第一相对位姿变化不满足第一预设条件,则根据当前帧对应的关键帧中目标物体的第三位姿信息,和/或,当前帧中目标物体的轮廓信息,获得目标物体在当前帧中的三维跟踪结果,包括:终端设备在当前帧对目标物体进行三维物体跟踪时,若第一相对位姿变化不满足第一预设条件,则:若获得与当前帧相匹配的关键帧,则根据目标物体在当前帧与当前帧对应的关键帧之间的第二相对位姿变化,以及第三位姿信息,获得目标物体在当前帧中的三维跟踪结果。
在第三方面的一种可能的实现方式中,终端设备在图像序列中的当前帧对目标物体进行三维物体跟踪时,若目标物体在当前帧与当前帧之前的N帧之间的第一相对位姿变化不满足第一预设条件,则根据当前帧对应的关键帧中目标物体的第三位姿信息,和/或,当前帧中目标物体的轮廓信息,获得目标物体在当前帧中的三维跟踪结果,包括:终端设备在当前帧对目标物体进行三维物体跟踪时,若第一相对位姿变化不满足第一预设条件,且不存在与当前帧相匹配的关键帧,则根据当前帧中目标物体的轮廓信息,获得目标物体在当前帧中的三维跟踪结果。
在第三方面的一种可能的实现方式中,计算设备集群基于第一图像,生成目标物体的第一位姿信息,包括:计算设备集群根据图像序列中的至少一帧,在第一图像中进行二维物体跟踪,以获得第一图像中的目标物体对应的第三数据,第三数据包含目标物体的第一物体标识;若根据第三数据确定目标物体的跟踪状态为第一状态,则计算设备集群生成目标物体对应的第一位姿信息,第一状态指目标物体为新增的待跟踪物体,或者,指示目标物体为终端设备在图像序列中无法识别到的物体。
在第三方面的一种可能的实现方式中,若根据第三数据确定目标物体的跟踪状态为第一状态,则计算设备集群生成目标物体对应的第一位姿信息,包括:计算设备集群比对第一物体标识与每个第二物体标识,每个第二物体标识为图像序列中,第一图像的前M帧的每一帧中,基于二维物体跟踪而确定的一个物体的物体标识,M为正整数;若比对结果指示第一物体标识是相对于前M帧的新增的物体标识,则计算设备集群生成新增的物体标识对应的目标物体的第一位姿信息,新增的物体标识对应的目标物体为新增的待跟踪物体。
在第三方面的一种可能的实现方式中,若根据第三数据确定目标物体的跟踪状态为第一状态,则计算设备集群生成目标物体对应的第一位姿信息,包括:计算设备集群比对第一物体标识与每个第二物体标识,每个第二物体标识为图像序列中,第一图像的前M帧的每一帧中,基于二维物体跟踪而确定的一个物体的物体标识,M为正整数;若比对结果指示第一物体标识是相对于前M帧的非新增的物体标识,则:若非新增的物体标识对应的第三数据的第一字段中包含第一描述信息,则计算设备集群生成非新增的物体标识对应的目标物体的第一位姿信息,第一字段中包含的第一描述信息指示目标物体为终端设备在图像序列中无法识别到的物体。
本申请第四方面提供一种物体跟踪装置,该装置可以应用于计算设备集群,该装置具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,例如:接收模块、发送模块以及处理模块。
本申请第五方面提供一种计算设备集群,该计算设备集群包括至少一个处理器、存储器以及存储在存储器中并可在处理器上运行的计算机执行指令,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第六方面提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第七方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第八方面提供了一种芯片系统,该芯片系统包括处理器,用于支持服务器实现上述第一方面或第一方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片系统还可以包括存储器,存储器用于保存计算机设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本申请第九方面提供一种物体跟踪装置,应用于终端设备,该装置具有实现上述第二方面或第二方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,例如:采集模块、发送模块、接收模块以及跟踪模块。
本申请第十方面提供一种终端设备,该终端包括至少一个处理器、存储器以及存储在存储器中并可在处理器上运行的计算机执行指令,当计算机执行指令被处理器执行时,处理器执行如上述第二方面或第二方面任意一种可能的实现方式的方法。
本申请第十一方面提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,处理器执行如上述第二方面或第二方面任意一种可能的实现方式的方法。
本申请第十二方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当计算机执行指令被处理器执行时,处理器执行如上述第二方面或第二方面任意一种可能的实现方式的方法。
本申请第十三方面提供了一种芯片系统,该芯片系统包括处理器,用于支持终端实现上述第二方面或第二方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片系统还可以包括存储器,存储器用于保存计算机设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本申请第十四方面提供了一种物体跟踪系统,该物体跟踪系统包括终端设备和计算设备集群,计算设备集群能够执行如上述第一方面或第一方面任意一种可能的实现方式的方法,终端设备能够执行如上述第二方面或第二方面任意一种可能的实现方式的方法。
其中,第四方面至第八方面或者其中任一种可能实现方式所带来的技术效果可参见第一方面或第一方面的相关可能实现方式所带来的技术效果,第九方面至第十三方面或者其中任一种可能实现方式所带来的技术效果可参见第二方面或第二方面的相关可能实现方式所带来的技术效果,第三方面和第十四方面或者其中任一种可能实现方式所带来的技术效果可参见第一方面、第二方面、第一方面的相关可能实现方式或第二方面的相关可能实现方式所带来的技术效果,此处不再赘述。
附图说明
图1是本申请实施例提供的系统架构的一种示例性示意图;
图2是本申请实施例提供的物体跟踪方法的一示例性示意图;
图3是本申请实施例提供的信息处理流程的一示例性示意图;
图4是本申请实施例提供的终端设备中的信息处理流程的一种示例性示意图;
图5是本申请实施例提供的终端设备与计算设备集群之间的一种交互示意图;
图6是本申请实施例提供的信息处理流程的另一示例性示意图;
图7是本申请实施例提供的信息处理流程的又一示例性示意图;
图8是本申请实施例提供的物体跟踪装置的一实施例示意图;
图9是本申请实施例提供的物体跟踪装置的另一实施例示意图;
图10是本申请实施例提供的终端设备的一种结构示意图;
图11是本申请实施例提供的计算设备的一种结构示意图;
图12是本申请实施例提供的计算设备集群的一种结构示意图;
图13是本申请实施例提供的计算设备集群的另一种结构示意图;
图14是本申请实施例提供的物体跟踪系统的一种结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”或其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
目前,在对物体进行三维物体跟踪时,一种传统的三维物体跟踪算法是基于深度神经网络来对输入的视觉信息以及图像序列对应的相机的运动信息等来估计图像序列的连续帧中物体的位姿,从而实现三维物体跟踪。
然而,传统的三维物体跟踪算法中,由于涉及的数据量较大,计算复杂度较高,并且,用于实现三维物体跟踪的深度神经网络的结构也通常较为复杂,深度神经网络中各个模块之间深度耦合,需要整体部署在终端设备上,导致在AR眼镜、手机、平板电脑等计算资源较弱的终端设备上进行三维物体跟踪时运行速度较慢,跟踪效果较差。
而本申请实施例中,从三维物体跟踪的算法中拆解出交互频率较低且计算耗时较大的模块,并部署于云服务器或者边缘服务器等计算设备集群中,从而减小三维物体跟踪时终端设备的运算压力,提高终端设备的运算速度,满足三维物体跟踪时的实时性要求。
下面对本申请实施例的物体跟踪方法所涉及的系统架构进行介绍。
本申请实施例所涉及的系统架构包括终端设备与计算设备集群。
其中,示例性地,该终端设备可以是手机(mobile phone)、平板电脑(pad)、电脑、虚拟现实(virtual reality,VR)终端、增强现实(augmented reality,AR)终端、可穿戴设备、工业控制(industrial control)中的终端、无人驾驶(self driving)中的终端、远程医疗(remote medical)中的终端、智能电网(smart grid)中的终端、运输安全(transportation safety)中的终端、智慧城市(smart city)中的终端、智慧家庭(smarthome)中的终端、以及物联网(Internet of things,IoT)中的终端等。
计算设备集群可以包括至少一个计算设备。
该计算设备可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等。
如图1所示,为系统架构的一种示例性示意图。其中,个人电脑、手机、笔记本电脑等终端设备可以与计算设备集群进行信息交互,以在终端设备上实现三维物体跟踪。
在一种场景中,该计算设备集群可以位于云数据中心中,从而在云端为终端设备提供云服务。而在另一种场景中,该计算设备集群中的一个或多个计算设备可以为边缘服务器,以为终端设备提供边缘计算服务。
基于该系统架构,本申请实施例可以实现一种物体跟踪方法。
如图2所示,该物体跟踪方法可以包括步骤201-206。
步骤201,终端设备实时采集图像序列。
图像序列包括多帧具有先后顺序的图像。
该图像序列可以通过相机采集而得到。该相机可以位于终端设备上,也可以是外接于终端设备。在采集过程中,相机可以采集视频,该视频中可以包括该图像序列。该图像序列可以包含相机在指定时间段内采集的所有图像;或者,该图像序列可以包含相机在指定时间段内采集的部分图像,例如。例如,可以包含相机在指定时间段内采集的所有图像中,以指定帧数间隔采样而获得的图像等
步骤202,终端设备向计算设备集群发送图像序列。
图像序列中包括第一图像。
终端设备可以向计算设备集群发送图像序列。具体来说,终端设备发送图像序列的方式可以有多种。
示例性地,终端设备可以基于图像序列中的图像的先后顺序,依次发送图像序列中的每一帧图像,也可以将一段时间内需要发送的图像合并为一组图像子序列之后,在将该图像子序列发送至计算设备集群。第一图像可以为终端设备向计算设备集群发送的图像序列中的某一帧或多帧图像。
步骤203,计算设备集群接收终端设备发送的图像序列。
计算设备集群与终端设备之间的信息交互方式可以有多种,本申请实施例中对此不做限定。
步骤204,计算设备集群基于第一图像,生成目标物体的第一位姿信息。
第一位姿信息用于描述目标物体在第一图像中对应的位姿。
第一位姿信息用于描述目标物体在第一图像对应的位姿。
本申请实施例中,目标物体可以指待跟踪的物体,具体来说,可以指需要在终端设备中进行三维物体跟踪的物体。
目标物体的具体类型和形式可以有多种,不同应用场景中的目标物体可以不同。
例如,在维修场景中,需要对真实场景中的待维修器件进行三维物体跟踪,从而可以基于跟踪到的待维修器件,在AR眼镜等终端设备中,为用户演示对对待维修器件的拆卸、维修和/或组装流程,还可以在维修过程中进行步骤引导,从而提升维修人员的工作效率和操作准确率。此时,目标物体的类型可以为待维修器件等静态物体。
又如,在自动驾驶场景中,需要对道路情况进行识别,因此,需要对车辆的周围环境中的行人、其他车辆等进行三维物体跟踪。此时,目标物体的类型可以包括行人、车辆等动态物体。
再如,在增强现实的一种示例性应用场景中,需要将诸如虚拟动画形象等虚拟物体应用到真实世界中,从而实现对真实世界的“增强”。此时,目标物体可以为真实场景中与虚拟物体匹配的真实物体,例如,目标物体可以是虚拟动画形象对应的人或动物,还可以是用于与虚拟物体匹配的标识图形等。
第一图像中的目标物体的数量可以是一个或多个。本申请实施例中对此不做限制。
目标物体在第一图像中对应的位姿可以描述目标物体在第一图像对应的相机坐标系下的空间姿态。
在一些实施例中,第一位姿信息用于描述目标物体在第一图像对应的相机坐标系下的位姿。
相机坐标系是基于相机本身而建立的坐标系。其中,相机坐标系的原点可以为相机的光心,x轴与y轴可以分别与图像的X、Y轴平行,z轴可以为相机光轴并与图形平面垂直。在实际应用过程中,相机可能会在空间中不断移动,而随着相机的移动,相机坐标系在场景中的位姿也会随之变化。
图像对应的相机坐标系指拍摄该图像时,相机所对应的相机坐标系。
在一些示例中,该位姿可以为6自由度(degree of freedom,DoF)的位姿,具体包括3个自由度的平移(translation),以及3个自由度的空间旋转(rotation)。举例来说,可以通过目标物体在相应的空间坐标系(如相应的相机坐标系)下的平移矩阵和旋转矩阵来描述该目标物体在相应的空间坐标系下的位姿。在另一些示例中,该位姿也可以为3个自由度的位姿,具体包括3个自由度的平移,此时,可以通过目标物体在相应坐标系下的三维坐标等来描述该目标物体的位姿。
本申请实施例中,计算设备集群在获得图像序列的第一图像之后,可以基于第一图像,生成目标物体的第一位姿信息。
本申请实施例中,计算设备集群生成目标物体的第一位姿信息的方式在此不做限制。
举例来说,可以通过指定的目标跟踪算法从第一图像中识别目标物体,然后通过物体定位算法获得识别到的目标物体的第一位姿信息。
需要说明的是,在一些示例中,对于图像序列中的每一帧图像,计算设备集群中并不必须生成图像序列的每一帧中的识别到的每个物体的第一位姿信息,而可以在该物体的跟踪状态为指定的状态时,才获得该物体对应的第一位姿信息。
例如,对于第一图像中识别到的目标物体,可以在确定该目标物体为新增的待跟踪物体时,再对该新增的待跟踪物体进行三维物体定位,获得该新增的待跟踪物体的第一位姿信息,以作为该新增的待跟踪物体的初始位姿,这样,终端设备可以基于该初始位姿,开始对该新增的待跟踪物体进行三维物体跟踪。又如,对于第一图像中识别到的目标物体,可以在结合终端设备上传的相关指示信息,确定该目标物体为终端设备中无法识别到的物体时,再对该无法识别到的物体进行三维物体定位,获得该无法识别到的物体的第一位姿信息,以作为该无法识别到的物体的重定位位姿,这样,终端设备可以基于该重定位位姿,继续对该无法识别到的物体进行三维物体跟踪。
步骤205,计算设备集群向终端设备发送目标物体的第一位姿信息。
步骤206,终端设备根据第一位姿信息,在图像序列中对目标物体进行三维物体跟踪。
三维物体跟踪可以指在图像序列的每一帧中跟踪物体的位姿变化情况。此时,通过三维物体跟踪,可以获得目标物体在图像序列的各个帧对应的相机坐标系下的位姿。
其中,终端设备根据第一位姿信息,在图像序列中对目标物体进行三维物体跟踪的具体方法可以有多种,本申请实施例对此不做限定。
示例性地,目标物体的第一位姿信息可以作为目标物体进行三维物体跟踪时的初始位姿,终端设备可以基于该初始位姿,在图像序列中进行帧间跟踪。例如,在图像序列中的当前帧,可以从当前帧中提取特征点;然后,通过光流法等方式在当前帧与前一帧之间寻找对应点对,并根据对应点对建立重投影误差,并基于重投影误差进行位姿优化,并基于位姿优化结果,获得目标物体在当前帧中的三维跟踪结果。
本申请实施例中,可以通过计算设备集群,根据终端设备发送的图像序列中的第一图像,生成目标物体在第一图像中的第一位姿信息,从而使得终端设备根据计算设备集群发送的第一位姿信息,在图像序列中对目标物体进行三维跟踪。这样,可以通过计算设备集群来实现获得目标物体在第一图像对应的位姿的相关运算,从而减小三维物体跟踪时终端设备的运算压力,提高终端设备的运算速度,满足三维物体跟踪时的实时性要求。
下面对终端设备进行三维物体跟踪的过程进行示例性介绍。
其中,涉及对静止物体以及动态物体的三维物体跟踪过程的示例性介绍,以及对三维物体跟踪过程中的位姿优化过程的示例性介绍。
1、静止物体以及动态物体的三维物体跟踪过程
本申请实施例中,目标物体可以为静止物体,也可以为动态物体。其中,静止物体指在真实环境中保持静止的物体,该静止物体在世界坐标系下的位姿保持不变。动态物体指在真实环境中的位置和/或姿态会变化的物体,动态物体在世界坐标系下的位姿会随时间而变化。
在一些示例中,可以对静止物体的位姿优化过程进行改进。
具体地,在一些实施例中,根据第一位姿信息,在图像序列中对目标物体进行三维物体跟踪,包括:
在图像序列中的当前帧对目标物体进行三维物体跟踪时,若目标物体为静止物体,则:
根据目标物体的第一位姿信息、第一图像对应的相机位姿信息和当前帧对应的相机位姿信息,获得目标物体在当前帧对应的初始估计位姿信息,其中,相机位姿信息用于描述相应相机在世界坐标系下的位姿,初始估计位姿信息用于描述目标物体在当前帧中对应的初始估计位姿;
根据初始估计位姿信息,获得目标物体在当前帧中的三维跟踪结果。
本申请实施例中,当前帧对应的初始估计位姿指当前帧对应的相机坐标系下的初始估计位姿。
世界坐标系可以理解为场景的坐标系。在本申请实施例中,在进行三维物体跟踪时,可以将打开相机采集图像序列的第一帧图像时的相机坐标系作为世界坐标系。
本申请实施例中,若目标物体为静止物体,则该目标物体在世界坐标系下的位姿为固定值。此时,基于目标物体的第一位姿信息以及第一图像对应的相机位姿信息,可以获得该目标物体在世界坐标系下的位姿,从而在后续的三维跟踪过程中,基于该目标物体在世界坐标系下的位姿以及当前帧对应的相机位姿信息,获得目标物体在当前帧对应的初始估计位姿信息,从而为目标物体在当前帧中的三维物体跟踪过程提供一个偏差较小的初值,加速位姿优化过程。
下面通过一个具体示例进行说明。
终端设备在接收到目标物体的第一位姿信息之后,可以基于该第一位姿信息,在图像序列中对目标物体进行三维物体跟踪。
其中,若目标物体为静止物体,则该目标物体在世界坐标系下的位姿为固定值。
具体地,目标物体在第一图像对应的位姿可以称为Toc1。
终端设备可以通过视觉惯性里程计(visual-inertial odometry,VIO)、视觉里程计(visual odometry,VO)或者惯性里程计(inertial odometry,IO)等方式,获得第一图像对应的相机在世界坐标系下的位姿Tcw1。例如,在一种示例中,终端设备中可以包括惯性测量单元(inertial measurement unit,IMU),此时,可以通过IMU,采用VIO的方式获得第一图像对应的相机在世界坐标系下的位姿Tcw1。
此时,若目标物体为静止物体,则:
目标物体在世界坐标系下的位姿Tow为固定值。也即是说,Tow=Tcw1Toc1为固定值。
那么,在第一图像的下一帧对该目标物体进行三维物体跟踪的过程中,可以将第一图像的下一帧作为当前帧。
此时,可以确定:
Tcw2Toc2=Tcw1Toc1
其中,Tcw2为该下一帧对应的相机在世界坐标系下的位姿,Tcw2也可以通过VIO、VO或者IO等方式而得到。
因此,在获得第一图像对应的相机位姿信息Tcw1、目标物体的第一位姿信息Toc1以及当前帧对应的相机位姿信息Tcw2之后,可以求解出Toc2以作为目标物体在当前帧对应的初始估计位姿。
具体地,目标物体在当前帧对应的初始估计位姿Toc2可以通过以下公式进行求解:
Toc2=Tcw2-1Tcw1Toc1
其中,Tcw2-1为Tcw2的逆矩阵。
在求解出目标物体在当前帧对应的初始估计位姿Toc2之后,可以基于当前帧对应的初始估计位姿进行位姿优化,例如,可以基于该初始估计位姿,通过光流法等方式在当前帧与前一帧之间寻找对应点对,并根据对应点对建立重投影误差,并基于重投影误差进行位姿优化,并根据优化结果获得当前帧的三维物体跟踪结果。
静止物体在第一图像的下一帧之后的其他帧中的三维物体跟踪可以参考上述示例,在此不再赘述。其中,在一些示例中,计算静止物体在其他帧对应的初始估计位姿时,可以通过第一图像对应的相机位姿信息、目标物体的第一位姿信息以及其他帧对应的相机位姿信息直接计算静止物体在其他帧对应的初始估计位姿,或者,也可以基于其他帧的上一帧对应的相机位姿信息、目标物体在其他帧的上一帧对应的位姿信息以及其他帧对应的相机位姿信息计算静止物体在其他帧对应的初始估计位姿。
而在另一些示例中,目标物体可以为动态物体。此时,该动态物体在当前帧的初始估计位姿的计算方式可以有多种,在此不做限制。
例如,在当前帧对该动态物体进行三维物体跟踪时,可以参考该动态物体在该当前帧的上一帧对应的位姿来获得当前帧的初始估计位姿,并根据该初始估计位姿进行位姿优化。举例来说,可以将该动态物体在当前帧的上一帧所对应的位姿作为该动态物体在当前帧的初始估计位姿;或者,可以基于恒速运动模型等方式来计算该动态物体在当前帧的初始估计位姿。
本申请实施例中,确定目标物体为静止物体或者动态物体的方式可以有多种。
例如,在诸如AR维修等一些场景中,进行三维物体跟踪的物体均为静止物体,因此,可以预先设置目标物体的类型均为静止物体,此时,无需终端设备或计算设备集群对目标物体是否为静止物体进行判断,而可以人为预先配置目标物体为静止物体。此外,在一些场景中,进行三维物体跟踪的物体均为动态物体时,也可以人为预先配置目标物体为动态物体。
在一些实施例中,接收计算设备集群发送的目标物体的第一位姿信息,包括:
接收计算设备集群发送的目标物体的第一位姿信息和目标物体的类型信息;
该方法还包括:
基于目标物体的类型信息,确定目标物体是否为静止物体。
本申请实施例中,计算设备集群可以输出目标物体的类型信息,以使得终端设备根据目标物体的类型信息确定目标物体是否为静止物体。
其中,示例性地,计算设备集群可以通过二维物体跟踪,识别目标物体的类型,从而向终端设备输出目标物体的类型信息。计算设备集群向终端设备发送的信息的形式可以有多种。
举例来说,计算设备集群向终端设备发送的信息TrackInfo的一种示例性结构如下:
在该示例中,计算设备集群向终端设备发送的信息TrackInfo中,包括目标物体object_id_1、目标物体object_id_2以及目标物体object_id_3分别对应的结构体。并且,在每个目标物体对应的结构体中,通过“Init_Pose”字段存储目标物体的第一位姿信息,通过“is_relocation”字段指示是否对目标物体进行了重定位,并“object_model_name”字段指示目标物体的类型。其中,“is_relocation”字段的具体应用可以参考图6相关的实施例,在此不再赘述。
终端设备接收到目标物体的类型信息之后,可以基于目标物体的类型信息确定目标物体是否为静止物体,从而以较为合适的方式计算目标物体的初始估计位姿以进行位姿优化。
其中,终端设备根据基于目标物体的类型信息确定目标物体是否为静止物体的方式可以有多种。例如,终端设备中预先存储有指定的列表,列表中记录有哪些物体类型属于静止物体。这样,终端设备在获得目标物体的类型之后,可以通过查询该列表,确定该目标物体是否为静止物体。或者,还可以通过指定的分类器,根据目标物体的类型信息确定目标物体是否为静止物体。
在一些示例中,可以通过初始位姿估计线程来实现获得目标物体在当前帧中的初始估计位姿的功能。此时,可以在确定该目标物体为静止物体时,启动该初始位姿估计线程,以获得该目标物体在当前帧对应的初始估计位姿,从而为目标物体在当前帧中的三维物体跟踪过程提供一个偏差较小的初值,加速位姿优化过程。
此外,在一些示例中,若在当前帧中,对目标物体的位姿优化失败,则可以将该初始估计位姿作为当前帧的三维跟踪结果,这样,三维物体跟踪过程中,位姿优化过程出现短暂的问题时,可以通过相应的初始估计位姿进行短暂的跟踪。
2、三维物体跟踪过程中的位姿优化过程
在一些实施例中,根据第一位姿信息,在图像序列中对目标物体进行三维物体跟踪,包括:
在图像序列中的当前帧对目标物体进行三维物体跟踪时,根据目标物体在当前帧与当前帧之前的N帧之间的第一相对位姿变化,获得目标物体在当前帧中的三维跟踪结果,N为正整数。
本申请实施例中,终端设备在图像序列的每一帧中进行三维跟踪,而每次在图像序列的某一帧中对目标物体进行三维跟踪的过程中,该帧为本次处理过程中的当前帧。此时,该当前帧在图像序列中的前一帧通常已完成对目标物体的三维跟踪,而通常还未开始在终端设备中对该当前帧的下一帧进行目标物体的三维跟踪。
在图像序列中的当前帧对目标物体进行三维物体跟踪时,可以计算目标物体在当前帧与当前帧之前的N帧之间的第一相对位姿变化,以根据第一相对位姿变化,获得目标物体在当前帧中的三维跟踪结果。
其中,计算第一相对位姿变化的方式可以有多种,在此不做限制。此外,基于不同应用场景,N的取值也可以有多种。例如,N可以为1,此时,可以计算当前帧与当前帧的前一帧之间的第一相对位姿变化。或者,N可以为2,此时,可以计算当前帧与当前帧的前两帧中的每一帧之间的第一相对位姿变化,以根据该前两帧分别对应的第一相对位姿变化获得目标物体在当前帧中的三维跟踪结果。
下面以N为1进行举例介绍。
在一种示例中,可以从当前帧中提取特征点;然后,通过光流法等方式在当前帧与前一帧之间寻找对应点对,并根据对应点对建立重投影误差,并基于重投影误差进行位姿优化,并在优化后获得第一相对位姿变化,从而结合该第一相对位姿变化以及目标物体在前一帧对应的位姿,获得目标物体在当前帧对应的相机坐标系下的优化后的估计位姿。然后,可以将该估计位姿作为目标物体在当前帧中的三维跟踪结果;或者,还可以基于指定的规则评估该估计位姿是否准确。若评估认为该估计位姿的误差较小,则将该估计位姿作为目标物体在当前帧中的三维跟踪结果。若评估认为该估计位姿的误差较大,则可以基于与当前帧相匹配的关键帧中目标物体的第三位姿信息,和/或,当前帧中目标物体的轮廓信息等信息来估计当前帧中目标物体的位姿,从而获得目标物体在当前帧中的三维跟踪结果。
在一些实施例中,在图像序列中的当前帧对目标物体进行三维物体跟踪时,根据目标物体在当前帧与当前帧之前的N帧之间的第一相对位姿变化,获得目标物体在当前帧中的三维跟踪结果,包括:
在图像序列中的当前帧对目标物体进行三维物体跟踪时,若第一相对位姿变化不满足第一预设条件,则根据与当前帧相匹配的关键帧中目标物体的第三位姿信息,和/或,当前帧中目标物体的轮廓信息,获得目标物体在当前帧中的三维跟踪结果,第三位姿信息用于描述目标物体在关键帧对应的位姿。
本申请实施例中,第一相对位姿变化不满足第一预设条件指示目标物体在当前帧与当前帧之前的N帧之间的相对位姿变化较大。示例性地,该第一预设条件可以指第一相对位姿变化对应的平移矩阵所指示的平移量大于预设的平移量阈值,和/或,第一相对位姿变化对应的旋转矩阵所指示的旋转角度大于预设的旋转角度阈值等等。
本申请实施例中,第一相对位姿变化不满足第一预设条件指示目标物体在当前帧与当前帧之前的N帧之间的相对位姿变化较大,此时,基于该第一相对位姿变化计算出的目标物体在当前帧所对应的位姿可能会存在较大误差。因此,本申请实施例中,可以进一步结合与当前帧相匹配的关键帧中目标物体的第三位姿信息,和/或,当前帧中目标物体的轮廓信息,来获得目标物体在当前帧中的三维跟踪结果,以降低跟踪误差,提升跟踪精度。
在一些实施例中,参考图3所示的信息处理流程示意图,上述步骤:在图像序列中的当前帧对目标物体进行三维物体跟踪时,若第一相对位姿变化不满足第一预设条件,则根据当前帧对应的关键帧中目标物体的第三位姿信息,和/或,当前帧中目标物体的轮廓信息,获得目标物体在当前帧中的三维跟踪结果,包括:
步骤301-304,在当前帧对目标物体进行三维物体跟踪时,若第一相对位姿变化不满足第一预设条件,则:
若获得与当前帧相匹配的关键帧,则根据目标物体在当前帧与当前帧对应的关键帧之间的第二相对位姿变化,以及第三位姿信息,获得目标物体在当前帧中的三维跟踪结果。
其中,关键帧可以为普通帧中较具有代表性的帧。该关键帧的具体筛选方式可以基于实际应用场景需要来确定。举例来说,关键帧可以基于对待跟踪物体的观测方向,从普通帧中筛选而得到;或者,关键帧还可以基于帧间的对应点对的数量从普通帧中筛选而得到,例如,若某一帧与其前一帧之间的对应点对少于指定数量时,将该帧作为关键帧。当然,在其他一些示例中,还可以基于其他规则和约束对关键帧进行筛选,本申请实施例中对此不做限制。
此外,终端设备还可以维护关键帧数据库,以通过关键帧数据库实现关键帧的筛选、存储和删除等操作。
示例性地,在采集到图像序列的各个图像帧时,可以判断各个图像帧是否为某一待跟踪物体相关的关键帧,若任一图像帧为关键帧,则将该关键帧的信息(例如,该关键帧对于该待跟踪物体的观测方向)存储至关键帧数据库中,这样,可以获得该待跟踪物体的多个观测方向上对应的关键帧。然后,各个关键帧可以存储于关键帧数据库中。此外,还可以预先构建关于待跟踪物体的三维物体模型,并通过在各个观测方向上观测该三维物体模型,获得该待跟踪物体的多个观测方向上对应的关键帧。
其中,关键帧的存储结构可以有多种,例如,各个关键帧可以通过树形结构等方式存储于关键帧数据库中。
此外,在实际应用过程中,还可以预先获得每个关键帧中待跟踪物体的位姿信息。通常来说,关键帧的质量通常较高,特征点数量较多,每个关键帧中待跟踪物体的位姿信息通常较为准确,从而可以为三维物体跟踪时的相关位姿优化过程提供较为准确的数据基础,使得终端设备可以基于关键帧对应的位姿信息,在各个图像帧获得较为准确的位姿优化结果。
本申请实施例中,将当前帧与关键帧进行匹配的方式可以有多种。例如,与当前帧相匹配的关键帧可以指与当前帧的共视关系满足指定的共视条件的关键帧;再如,与当前帧相匹配的关键帧可以指与当前帧之间对应点对的数量大于预设数量的关键帧;又如,与当前帧相匹配的关键帧可以指与当前帧之间的时间间隔小于预设时间间隔的关键帧等等。
本申请实施例中,若获得与当前帧相匹配的关键帧,则可以认为存在与当前帧较为相似的关键帧,而通常来说,以预先存储有目标物体在该关键帧对应的相机坐标系的较为准确的位姿信息,因此,可以参考该较为准确的位姿信息来确定当前帧对应的相机坐标系下目标物体的位姿,从而在当前帧中获得较为准确的三维物体跟踪结果。
具体来说,在获得与当前帧相匹配的关键帧之后,可以根据目标物体在当前帧与当前帧对应的关键帧之间的第二相对位姿变化,以及目标物体在关键帧对应的相机坐标系下的位姿(即第三位姿信息),获得目标物体在当前帧中的三维跟踪结果。
其中,该第二相对位姿变化的具体计算方式参考与上述第一相对位姿变化的计算方式,在此不做限制。例如,可以通过光流法计算当前帧与关键帧之间的对应点对,然后,根据对应点对建立重投影误差,并基于重投影误差进行位姿优化,并在优化后获得第二相对位姿变化。在获得第二相对位姿变化之后,可以结合第二相对位姿变化以及第三位姿信息,获得目标物体在当前帧对应的位姿以作为目标物体在当前帧中的三维跟踪结果。
如图3所示的流程图中步骤306所示,若第一相对位姿变化满足第一预设条件,则可以基于第一相对位姿变化,获得目标物体在当前帧中的三维跟踪结果。
在一些实施例中,参考图3所示的信息处理流程示意图,上述步骤:在图像序列中的当前帧对目标物体进行三维物体跟踪时,若第一相对位姿变化不满足第一预设条件,则根据当前帧对应的关键帧中目标物体的第三位姿信息,和/或,当前帧中目标物体的轮廓信息,获得目标物体在当前帧中的三维跟踪结果,包括:
步骤301、302、303以及305,在当前帧对目标物体进行三维物体跟踪时,若第一相对位姿变化不满足第一预设条件,且不存在与当前帧相匹配的关键帧,则根据当前帧中目标物体的轮廓信息,获得目标物体在当前帧中的三维跟踪结果。
本申请实施例中,若没有获得与当前帧相匹配的关键帧,则可以认为不存在与当前帧较为相似的关键帧,因此,难以基于关键帧来对目标物体在该当前帧对应的位姿进行优化。对此,本申请实施例中,可以根据目标物体在当前帧中的轮廓信息,获得目标物体在当前帧中的三维跟踪结果。
其中,目标物体的轮廓信息用于描述目标物体的轮廓。示例性地,该轮廓信息可以包括轮廓边缘线特征、轮廓边缘点特征和/或轮廓所形成的区域特征等。
根据目标物体在当前帧中的轮廓信息,获得目标物体在当前帧中的三维跟踪结果的方式可以有多种。示例性地,可以通过region-based object tracking(RBOT)算法等基于轮廓特征的跟踪方法来获得目标物体在当前帧中的三维跟踪结果。此时,结合目标物体的轮廓信息进行三维物体跟踪,可以在目标物体出现部分遮挡、表面纹理信息较少甚至无纹理等情况下依然可以进行跟踪,提升了三维物体跟踪的鲁棒性。
如图4所示,为终端设备中的信息处理流程的一种示例性示意图。
其中,可以通过相机获得图像序列。
终端设备中可以包括初始位姿估计、帧间跟踪、基于关键帧的位姿优化和基于轮廓信息的位姿优化等多个功能模块以及关键帧数据库。
此外,本示例中,在进行位姿优化的过程中,基于相关算法的需要,还可以包含三维物体模型数据库。三维物体模型数据库的具体应用方式可以参考目前以及后续发展的相关算法,在此不再赘述。
其中,帧间跟踪、基于关键帧的位姿优化和基于轮廓信息的位姿优化的功能模块可以运行于同一线程,而初始位姿估计的功能模块可以运行于另一线程。
在图像序列的当前帧中对目标物体进行三维物体跟踪时,初始位姿估计的功能模块可以基于IMU输出的信息,通过VIO等方式获得目标物体的初始估计位姿,然后,基于该初始估计位姿进行帧间跟踪;在获得帧间跟踪的结果之后,若第一相对位姿变化满足第一预设条件,则根据帧间跟踪的结果获得当前帧的三维跟踪结果;若第一相对位姿变化不满足第一预设条件,则可以在关键帧数据库中,查询与当前帧匹配的关键帧,若查找到与当前帧匹配的关键帧,则执行基于关键帧的位姿优化,获得当前帧的三维跟踪结果;而若未查询到与当前帧匹配的关键帧,则执行基于轮廓信息的位姿优化,获得当前帧的三维跟踪结果。
下面对计算设备集群中的运行过程进行示例性介绍。
本申请实施例中,计算设备集群可以生成目标物体的第一位姿信息并向终端设备下发。
具体地,在一种实施例中,在向终端设备发送目标物体的第一位姿信息之前,方法还包括:
根据图像序列中的至少一帧,在第一图像中进行二维物体跟踪,以获得第一图像中的目标物体对应的第三数据,第三数据包含目标物体的第一物体标识;
若根据第三数据确定目标物体的跟踪状态为第一状态,则生成目标物体对应的第一位姿信息,第一状态指目标物体为新增的待跟踪物体,或者,指示目标物体为终端设备在图像序列中无法识别到的物体。
本申请实施例中,终端设备可以向计算设备集群上传图像序列中的每一帧或者部分帧,以使得计算设备集群基于接收到的帧进行二维物体跟踪。
其中,通过二维物体跟踪可以在图像序列的各个帧之间识别和跟踪物体。此时,通过二维物体跟踪,可以在计算设备集群接收到的图像序列的每一帧中,识别同一待跟踪物体。
示例性地,计算设备集群中可以包括两个功能,分别为:二维物体跟踪和三维物体定位。
为了描述方便,本示例中,将实现二维物体跟踪的功能模块称为二维物体跟踪模块,并将实现三维物体定位的功能模块称为三维物体定位模块。
其中,通过二维物体跟踪模块,可以在计算设备集群接收到的图像序列的每一帧中,识别同一待跟踪物体。也即是说,通过二维物体跟踪模块,可以输出在每一帧中的识别到的物体的物体标识,而若在相邻两帧中识别到同一物体,则这两帧对应的二维物体跟踪结果中,可以包括同一物体标识。
该二维物体跟踪模块中所采用的具体算法在此不做限制。示例性地,可以通过ByteTrack算法、CenterTrack算法、基于卡尔曼滤波的跟踪、基于粒子滤波的跟踪等算法中的一种或多种来实现二维物体跟踪。并且,二维物体跟踪模块可以对一个物体或者多个物体进行二维物体跟踪,还可以对同一类物体或者不同类物体进行二维物体跟踪,也可以对静止物体或者运动物体进行二维物体跟踪。
通过该二维物体跟踪模块,可以为终端设备提供要进行三维物体跟踪的物体的物体标识等信息。也即是说,通过该二维物体跟踪模块,可以识别出图像序列中的待跟踪物体,以使得终端设备根据每一个待跟踪物体进行三维物体跟踪。
而通过三维物体定位模块可以对物体进行三维物体定位,其中,三维物体定位指估计要进行三维物体跟踪的物体在相应图像中对应的位姿。
本申请实施例中,某一图像中对应的位姿可以是某一图像对应的相机坐标系下的位姿。
该三维物体定位模块中所采用的具体算法在此不做限制。示例性地,三维物体定位模块中所采用的具体算法可以包括基于对应点的方法(例如SingleShotPose算法、Pix2pose算法等)、基于模板的方法(例如PoseCNN算法、SSD6D算法等)、基于投票的方法(例如PVNet等算法)中的一种或多种。其中,在一些示例中,实现三维物体定位的一些算法需要结合物体对应的三维物体模型来实现,因此,计算设备集群中还可以预先存储有多种预设的物体类型对应的三维物体模型,这样,在识别出第一图像中的目标物体之后,根据相关算法以及目标物体对应的三维物体模型,获得目标物体的第一位姿信息。
在具体应用过程中,二维物体跟踪模块和三维物体定位模块可以是两个不同的服务,也可以是同一服务中的不同线程。二维物体跟踪模块与三维物体定位模块之间也可以进行信息传输,例如,二维物体跟踪模块在对图像序列中的某一帧进行二维物体跟踪,获得相应的二维物体跟踪结果之后,可以将该二维物体跟踪结果传输至三维物体定位模块,以使得三维物体定位模块基于该二维物体跟踪结果确定是否对相应的待跟踪物体进行三维物体定位。
本示例中,三维物体定位模块并不需要对图像序列的每一帧中的识别到的物体进行三维物体定位,而可以在该物体的跟踪状态为第一状态时,才对该物体进行三维物体定位。
例如,对于第一图像中识别到的目标物体,可以在确定该目标物体为新增的待跟踪物体时,再通过该三维物体定位模块对该新增的待跟踪物体进行三维物体定位,获得该新增的待跟踪物体的第一位姿信息,以作为该新增的待跟踪物体的初始位姿,这样,终端设备可以基于该初始位姿,开始对该新增的待跟踪物体进行三维物体跟踪。又如,对于第一图像中识别到的目标物体,可以在结合终端设备上传的相关指示信息,确定该目标物体为终端设备中无法识别到的物体时,再通过该三维物体定位模块对该新增的待跟踪物体进行三维物体定位,获得该无法识别到的物体的第一位姿信息,以作为该无法识别到的物体的重定位位姿,这样,终端设备可以基于该重定位位姿,继续对该无法识别到的物体进行三维物体跟踪。
其中,可以是通过二维物体跟踪模块确定目标物体的跟踪状态为第一状态,也可以通过三维物体定位模块确定目标物体的跟踪状态为第一状态,本申请实施例对此不做限制。
如图5所示,为计算设备集群和终端设备的一种示例性交互示意图。
其中,终端设备通过相机采集图像序列。然后,可以向计算设备集群发送图像序列,此外,在一些场景中还可以发送无法识别到的物体的信息。计算设备集群中的二维物体跟踪模块基于二维物体跟踪,从第一图像中识别到目标物体,并将该目标物体对应的第三数据发送至三维物体定位模块,若根据第三数据确定目标物体的跟踪状态为第一状态,则通过三维物体定位模块,获得目标物体对应的第一位姿信息,并发送给终端设备,以使得终端设备根据第一位姿信息,在图像序列中对目标物体进行三维物体跟踪,其中,在一些场景中,还可以结合IMU的输出数据通过VIO等方式获得目标物体的初始估计位姿以进行位姿优化,从而获得三维跟踪结果。
可见,在本示例中,通过二维物体跟踪模块和三维物体定位模块,可以在图像序列中对物体进行二维物体跟踪,并在跟踪到新增的物体,或者确定跟踪到终端设备无法识别到的物体等情况下,触发三维物体定位模块获得该物体的初始位姿并向终端设备下发,以使得终端设备根据相应物体的初始位姿进行三维物体跟踪。
其中,二维物体跟踪和三维物体定位在具体实现时的计算量较大,耗时较长,因此通过计算设备集群来实现可以大大减轻终端设备的计算压力,此外,通过三维物体定位获得物体的初始位姿或者重定位位姿并向终端设备下发的操作频率较低,因此,并不需要在计算设备集群与终端设备之间保持高频实时交互,交互方式较为简单。可见,通过本示例,可以使得计算资源较为有限的终端设备可以高效地实现三维物体跟踪。
下面举例对计算设备集群中的处理过程进行介绍。
其中,终端设备向计算设备集群上传图像序列中的每一帧,计算设备集群在接收到的图像序列的图像帧中,进行二维物体跟踪时,可以获得在每一帧中跟踪到的物体的物体标识等信息。
以第一图像为例。
计算设备集群在接收到第一图像之后,可以对第一图像进行二维物体跟踪。其中,若第一图像是图像序列中的第一帧图像,则可以理解为在该第一图像中开始进行二维物体跟踪。
在第一图像中跟踪到目标物体之后,可以生成每个目标物体对应的第三数据,每个第三数据包含目标物体的第一物体标识。
为便于描述和后续处理,第一图像中识别到的目标物体的第三数据可以包含于一个指定的信息结构中,以通过该指定的信息结构来描述第一图像对应的二维跟踪结果。
举例来说,在一些示例中,可以通过信息TrackInfo_A来描述第一图像对应的二维跟踪结果。
其中,TrackInfo_A的一种可能的实现方式如下:
可见,TrackInfo_A中,包含目标物体1对应的第三数据如下:
其中,目标物体1对应的第三数据包含目标物体1对应的第一物体标识"object_id_1"。目标物体2、目标物体3对应的第三数据以及第一物体标识可以参考目标物体1,在此不再一一说明。
在获得第一图像中的目标物体的第三数据之后,可以基于第三数据确定目标物体的跟踪状态,若确定目标物体的跟踪状态为第一状态,则获得目标物体对应的第一位姿信息。
也即是说,本申请实施例中,在目标物体的跟踪状态为第一状态时,触发计算设备集群获得目标物体对应的第一位姿信息;而若目标物体的跟踪状态不为第一状态,则通常不会触发计算设备集群获得目标物体对应的第一位姿信息,也就不会向终端设备下发第一位姿信息。
下面对目标物体的不同跟踪状态对应的示例进行介绍。
1、某一目标物体为新增的待跟踪物体。
本示例中,目标物体为新增的待跟踪物体时,需要通过计算设备集群获得该新增的待跟踪物体的第一位姿信息以作为该新增的待跟踪物体的初始位姿,并下发至终端设备。
本申请实施例中,可以根据第三数据确定目标物体的跟踪状态是否为第一状态,具体地,可以根据第三数据中目标物体的第一物体标识,确定目标物体的跟踪状态是否为第一状态。
在一些实施例中,参考图6所示的一种信息处理流程示意图,在步骤601:根据图像序列中的至少一帧,在第一图像中进行二维物体跟踪,以获得第一图像中的每个目标物体对应的第三数据之后,上述实施例中的步骤:若根据第三数据确定目标物体的跟踪状态为第一状态,则获得目标物体对应的第一位姿信息,包括:
步骤602,比对第一物体标识与每个第二物体标识,每个第二物体标识为图像序列中,第一图像的前M帧的每一帧中,基于二维物体跟踪而确定的一个物体的物体标识,M为正整数;
步骤603-604,若比对结果指示第一物体标识是相对于前M帧的新增的物体标识,则生成新增的物体标识对应的目标物体的第一位姿信息,新增的物体标识对应的目标物体为新增的待跟踪物体。
新增的物体标识对应的目标物体为新增的待跟踪物体。
本申请实施例中,在图像序列的不同帧中,新增的待跟踪物体可以有不同的比对情况,下面分别进行介绍。
A.在一种示例中,第一图像是图像序列中的第一帧,因此,图像序列中不存在第一图像的前M帧,此时,第二物体标识为空,也可以认为是不存在第二物体标识。因此,比对每个第一物体标识与第二物体标识的比对结果指示每个第一物体标识对应的目标物体均为新增的待跟踪物体。
B.在另一种示例中,第一图像不是图像序列中的第一帧,因此,图像序列中存在第一图像的前M帧,因此,可以获得该前M帧的每一帧中,基于二维物体跟踪而确定的物体的第二物体标识,从而比对每个第一物体标识和第二物体标识。
其中,M的取值可以为1。此时,可以是第一图像中的第一物体标识与第一图像的前一帧中的每个第二物体标识进行比对。若比对结果指示第一物体标识与所有的第二物体标识均不同,则可以认为该第一物体标识为新增的物体标识,从而可以获得该新增的物体标识对应的目标物体的第一位姿信息。
或者,M的取值也可以大于1。此时,可以将是第一图像中的第一物体标识与第一图像之前的多帧中的每个第二物体标识进行比对。
这样,可以比对连续多帧中的物体标识的变化情况,从而判断是否存在稳定新增的目标物体。举例来说,若M为5,第一图像之前的5帧分别为图像A1、图像A2、图像A3、图像A4、图像A5,比对结果指示第一图像中的第一物体标识B1与图像A1和图像A2对应的第二物体标识均不同,但在图像A3、图像A4、图像A5中,均存在与第一物体标识B1相同的第二物体标识,则可以认为该第一物体标识B1对应的目标物体从图像A3开始稳定地出现,因此,可以认为第一物体标识B1为新增的物体标识。
可见,通过比对连续多帧中的物体标识的变化情况来确定新增的物体标识,可以避免在相机运动过快或者物体运动过快的情况下,物体在相机视野中会一闪而过的情况而导致的新增,这样,检测到的新增的待跟踪物体通常为在相机视野中稳定存在了一段时间的物体。
可见,本申请实施例中,通过比对第一物体标识与每个第二物体标识,可以确定第一图像中是否存在新增的待跟踪物体,若存在,则获得该新增的待跟踪物体的第一位姿信息并下发给终端设备,从而使得终端设备获得该新增的待跟踪物体的第一位姿信息以作为该新增的该跟踪物体的初始位姿并进行三维物体跟踪。
2、某一目标物体为终端设备在图像序列中无法识别到的物体。
本申请实施例中,目标物体为终端设备在图像序列中无法识别到的物体时,需要通过计算设备集群获得该无法识别到的物体的第一位姿信息以作为该无法识别到的物体的重定位位姿,并下发至终端设备。
本申请实施例中,终端设备在图像序列中无法识别到的物体也可以认为是终端设备在图像序列中进行三维物体跟踪时跟丢的物体。
在获得该目标物体对应的第三数据之后,根据第三数据确定相应的目标物体是否为终端设备在图像序列中无法识别到的物体的方式可以有多种。
示例性地,可以基于第三数据中是否包含指定标识来判断该第三数据对应的目标物体是否为终端设备在图像序列中无法识别到的物体(如"is_relocation"字段的内容是否为“True”)。该指定标识的具体生成方式可以有多种。示例性地,在步骤201之前的阶段,终端设备在图像序列中跟丢某一物体,并反馈至计算设备集群中,以使得计算设备集群通过二维物体跟踪,在第一图像中识别到该目标物体之后,基于终端设备反馈的信息,确定该目标物体为终端设备在图像序列中无法识别到的物体,此时,该无法识别到的物体对应的第三数据中包含该指定标识。
这样,可以根据第三数据确定目标物体为终端设备在图像序列中无法识别到的物体,从而获得目标物体对应的第一位姿信息以作为该无法识别到的物体的重定位位姿并向终端设备发送,以使得终端设备根据该无法识别到的物体的第一位姿信息,继续进行三维物体跟踪。
在一些实施例中,参考图6所示的一种信息处理流程示意图,在步骤601:根据图像序列中的至少一帧,在第一图像中进行二维物体跟踪,以获得第一图像中的每个目标物体对应的第三数据之后,上述步骤:若根据第三数据确定目标物体的跟踪状态为第一状态,则获得目标物体对应的第一位姿信息,包括:
步骤602,比对第一物体标识与每个第二物体标识,每个第二物体标识为图像序列中,第一图像的前M帧的每一帧中,基于二维物体跟踪而确定的一个物体的物体标识,M为正整数;
步骤603、605以及606,若比对结果指示第一物体标识是相对于前M帧的非新增的物体标识,则:
若非新增的物体标识对应的第三数据的第一字段中包含第一描述信息,则生成非新增的物体标识对应的目标物体的第一位姿信息,第一字段中包含的第一描述信息指示目标物体为终端设备在图像序列中无法识别到的物体。
本申请实施例中,在获得该目标物体对应的第三数据之后,根据第三数据确定相应的目标物体是否为终端设备在图像序列中无法识别到的物体的方式可以有多种。
示例性地,可以基于第三数据的第一字段中是否包含第一描述信息来判断该第三数据对应的目标物体是否为终端设备在图像序列中无法识别到的物体。该第一描述信息的具体生成方式可以有多种。
例如,在步骤201之前的阶段,终端设备在图像序列中跟丢某一物体,并反馈至计算设备集群中,以使得计算设备集群通过二维物体跟踪,在第一图像中识别到该目标物体之后,基于终端设备反馈的信息,确定该目标物体为终端设备在图像序列中无法识别到的物体,此时,可以是终端设备反馈的信息中包含该第一描述信息,从而使得该无法识别到的物体对应的第三数据中包含该第一描述信息,也可以是在计算设备集群生成第三数据时添加该第一描述信息。
下面通过示例,描述第三数据相关的信息传递过程。
举例来说,在一种示例中,可以通过信息TrackInfo_A来描述第一图像对应的二维跟踪结果。
其中,TrackInfo_A的一种可能的形式如下:
本示例中,M的取值为1,则可以通过预先获得的信息TrackInfo_B来描述第一图像的前一帧对应的二维跟踪结果。
其中,TrackInfo_B的一种可能的形式如下:
通过比对TrackInfo_A中包含的第一物体标识"object_id_1"、"object_id_2"、"object_id_3"与TrackInfo_B中包含的第二物体标识"object_id_1"、"object_id_2",可以确定TrackInfo_A中的第一物体标识"object_id_3"为新增的物体标识,从而可以基于上述的目标物体为新增的待跟踪物体的相关示例来进行处理。
此外,通过比对可以确定第一物体标识"object_id_1"、"object_id_2"为非新增的物体标识,则可以基于非新增的物体标识对应的第三数据中的信息,进一步判断该非新增的物体标识是否为终端设备在图像序列中无法识别到的物体。
具体地,在本示例中,可以通过判断第三数据中的"is_relocation"字段的内容是否为“True”来确定该非新增的物体标识是否为终端设备在图像序列中无法识别到的物体,若第三数据中的"is_relocation"字段的内容为“True”,则该非新增的物体标识为终端设备在图像序列中无法识别到的物体。也即是说,本示例中,第一字段指"is_relocation"字段,第一描述信息为“True”。
具体来说,对于目标物体1的第三数据:
该第三数据中的"is_relocation"字段包含的信息为“True”,则可以确定该第三数据的第一字段包含第一描述信息,该第三数据对应的目标物体1为终端设备在图像序列中无法识别到的物体,则可以获取该目标物体1对应的第一位姿信息,并向终端设备下发。
而对于目标物体2的第三数据:
该第三数据中,"is_relocation"字段包含的信息为“False”,则可以确定该第三数据的第一字段不包含第一描述信息,该第三数据对应的目标物体2不是终端设备在图像序列中无法识别到的物体,则不需要获得该目标物体2的第一位姿信息并向终端设备下发。
如图6中的步骤607所示,在一种示例中,若非新增的物体标识对应的第一字段中不包含第一描述信息,则可以确定该非新增的物体标识对应的目标物体不是终端设备中无法识别到的物体,因此,无需获得该目标物体对应的第一位姿信息。
需要说明的是,本申请实施例中,某一目标物体为终端设备在图像序列中无法识别到的物体时,该目标物体通常是终端设备在第一图像之前的帧中无法识别到的物体,也即是说,通常是在步骤201之前的阶段,终端设备在图像序列中无法识别到某一物体,并反馈至计算设备集群中,以使得计算设备集群在第一图像中识别到该目标物体之后,基于终端设备反馈的信息,确定该目标物体为终端设备在图像序列中无法识别到的物体。
而后续的图7相关的示例中描述的是终端设备在第一图像之后的帧中无法识别到目标物体,可以理解为是终端设备在不同阶段无法识别到物体时的示例,也即是终端设备在不同阶段跟丢物体时的示例。
可以理解,本申请中,终端设备无法识别到物体相关的各个实施例之间可以相互结合、相互参考,本申请实施例中对不同阶段中终端设备无法识别到物体的实施例的结合方式不做具体限定。
举例来说,本申请实施例中,该无法识别到的物体对应的第三数据可以基于终端设备预先发送的、指示该物体已无法识别到的信息而生成,该信息可以参考图5相关的实施例中的第一数据。
具体来说,可以是终端设备在图像序列中对物体进行三维物体跟踪时,若无法识别到某一物体,则向计算设备集群发送该无法识别到的物体对应的指示信息,该指示信息指示终端设备在图像序列中跟丢该物体;计算设备集群在接收到该指示信息之后,若在图像序列的第一图像中识别到该无法识别到的物体,则生成该无法识别到的物体对应的第三数据,并基于该第三数据执行后续步骤,以获得无法识别到的物体对应的第一位姿信息。
可见,本申请实施例中,该无法识别到的物体的处理流程与图5相关的实施例中,无法识别到的目标物体的处理流程类似,只是处于不同的时序阶段,因此,本申请实施例与图5相关的实施例中的对应步骤可以相互参考、相互结合。
下面通过一个示例,介绍终端设备进行三维物体跟踪时,物体跟丢之后,终端设备与计算设备集群之间的信息交互以及相关信息处理流程。
如图7所示,在一些实施例中,该物体跟踪方法还包括以下步骤:
步骤701,终端设备在图像序列中对目标物体进行三维物体跟踪时,若终端设备在图像序列中的第二图像中无法识别到目标物体,则向计算设备集群发送目标物体对应的第一数据。
第一数据指示目标物体处于跟丢状态。
步骤702,计算设备集群接收终端设备发送的第一数据。
步骤703,计算设备集群接收第一数据之后,若计算设备集群在图像序列的第三图像中识别到目标物体,则向终端设备发送第二数据。
第二数据包括第二位姿信息,并且,第二数据指示目标物体处于与跟丢状态对应的目标状态,第二位姿信息用于描述目标物体在第三图像对应的位姿。
步骤704,终端设备在无法识别到目标物体之后,若从计算设备集群接收到第二数据,则根据第二数据中目标物体的第二位姿信息,对目标物体进行三维物体跟踪。
本申请实施例中,第二图像通常为图像序列中,第一图像之后的某一帧图像。
终端设备在第二图像中无法识别到目标物体,则可以向计算设备集群发送目标物体对应的第一数据,以指示目标物体处于跟丢状态,跟丢状态,跟丢状态指示终端设备在图像序列中无法识别到目标物体。
这样,计算设备集群可以根据该第一数据,在二维物体跟踪中确定该目标物体是否确实无法识别到,若无法识别到,则对终端设备中目标物体进行重定位,从而重新获取该目标物体的初始位姿,并下发至终端设备,以继续对该目标物体进行三维物体跟踪。
其中,计算设备集群下发的第二数据指示目标物体处于与跟丢状态对应的目标状态。该目标状态可以指已对目标物体进行重定位。
该第一数据的具体数据形式在此不做限定。
在一种示例中,对于终端设备在三维物体跟踪过程中无法识别到的目标物体4,该第一数据的数据形式可以为:
此时,该第一数据中"object_id_4"对应的"is_relocation"字段的内容为“True”,以指示该第一数据对应的目标物体4为处于跟丢状态。
当然,在其他一些示例中,第一数据还可以包括其他信息,本申请实施例对此不做限制。例如,第一数据中还可以包括第二图像中终端设备识别到的物体的信息。
计算设备集群在接收到第一数据之后,若在图像序列的第三图像中识别到该物体,则获得第二数据并向终端设备发送,其中,该第二数据包括第二位姿信息,并且,第二数据指示目标物体处于与跟丢状态对应的目标状态。
在一些示例中,该第三图像可以是终端设备跟丢目标物体时对应的第二图像,第二数据中可以不包括该第三图像的标识。而在另一些示例中,该第三图像也可以是与第二图像不同的其他图像,第二数据中可以包括该第三图像的标识,以便于终端设备根据该第三图像和第二数据,对目标物体进行三维物体跟踪。
在一些实施例中,第一数据包括目标物体的物体标识,第一数据中通过第一字段包含的第一描述信息描述跟丢状态,第二数据包括目标物体的物体标识,并且第二数据中通过第二字段包含的第二描述信息描述目标状态。
示例性地,第一数据的数据结构与第二数据的数据结构相同,此时,第一字段与第二字段相同,第一描述信息和第二描述信息也可以相同。而在另一些示例中,第一数据与第二数据的数据结构可以不同,第一字段和第二字段可以不同,第一描述信息和第二描述信息也可以不同,其中,第一描述信息与第二描述信息之间的对应关系可以是研发人员基于预设规则而确定。
这样,终端设备在接收到第二数据之后,基于该目标状态,可以确定该第二数据为基于第一数据对目标物体进行重定位之后所获得的信息,因此,可以根据第二数据中目标物体的第二位姿信息,对目标物体进行三维物体跟踪。
举例来说,终端设备在图像序列的第二图像中无法识别到目标物体4之后,可以暂停对目标物体4的三维物体跟踪,并向计算设备集群上传第一数据如下:
第一数据中的"is_relocation"字段作为第一字段,该字段的内容“True”作为第一描述信息。
在无法识别到目标物体之后,终端设备从计算设备集群接收数据时,需要判断接收到的数据是否为针对无法识别到的目标物体进行重定位之后所获得的数据。
例如,在无法识别到目标物体之后,终端设备从接收到以下数据:
其中,该数据中的"is_relocation"字段的内容为“False”,并不指示目标状态,因此,终端设备可以确定该数据不是计算设备集群基于第一数据而对目标物体4进行重定位而获得的数据,因此,不会基于该数据对目标物体进行三维物体跟踪。
而若在无法识别到目标物体之后,终端设备从接收到以下数据:
该数据中的"is_relocation"字段为第二字段,该数据中的"is_relocation"字段的内容为“True”为第二描述信息,说明该数据指示目标状态,因此,终端设备可以确定该数据为计算设备集群基于第一数据而对目标物体4进行重定位而获得的第二数据,因此,可以基于该数据对目标物体进行三维物体跟踪。
本申请实施例中,在图像序列的第三图像中识别到目标物体,则向终端设备发送第二数据的具体过程可以参考上述的目标物体为终端设备在图像序列中无法识别到的物体的示例的相关过程。
例如,参考上述的目标物体为终端设备在图像序列中无法识别到的物体的示例的一种具体实现方式,本申请实施例中,在接收终端设备发送的第一数据之后,若在图像序列的第三图像中识别到目标物体,则向终端设备发送第二数据的具体过程可以包括以下步骤:
在接收终端设备发送的第一数据之后,在第三图像中进行二维物体跟踪;
若在图像序列的第三图像中识别到目标物体,则获得目标物体对应的第五数据,第五数据包含目标物体的第一物体标识;
根据第五数据,确定相应物体为终端设备在图像序列中无法识别到的目标物体,则获得无法识别到的目标物体对应的第二位姿信息;
向终端设备发送第二数据,第二数据包括第二位姿信息,并且,第二数据指示目标物体处于与跟丢状态对应的目标状态。
上述步骤可以参考图6相关的实施例中终端设备在三维物体跟踪过程中无法识别到物体的相关示例。具体来说,第五数据与图6相关实施例中的第三数据类似,第二位姿信息与图6相关的实施例中的第一位姿信息类似。也即是说,图7所示实施例中的步骤703的一种具体实现过程可以参考图6所示的实施例中的计算设备集群中的相关实现方式,在此不再赘述。
此外,在一些示例中,终端设备在三维物体跟踪过程中,在无法识别到目标物体之后,可以仅暂停对该目标物体的三维物体跟踪,而对于其他能够识别到的物体,依然可以进行三维物体跟踪。
例如,在一些示例中,终端设备在三维物体跟踪过程中,可以分别创建每个目标物体对应的句柄(Handle),以基于每个目标物体对应的句柄分别对每个目标物体进行三维物体跟踪。此时,若某一目标物体无法被终端设备识别到的,其他目标物体依然可以基于各自对应的句柄进行三维物体跟踪。
终端设备在跟丢某一目标物体之后,若在一定时间段内从计算设备集群接收到的数据中,不包含该目标物体的数据,则可以认为该目标物体已在视野之外,可以停止对该目标物体的三维物体跟踪,并删除相应的句柄。
以上,本申请实施例从多个方面介绍了物体跟踪方法,下面结合附图,介绍本申请的应用于终端设备的物体跟踪装置,以及应用于计算设备集群的物体跟踪装置。
如图8所示,本申请实施例提供一种物体跟踪装置80,该装置80可以应用于上述实施例中的终端设备。
该装置80的一实施例包括:
采集模块801,用于实时采集图像序列;
发送模块802,用于向计算设备集群发送图像序列,图像序列中包括第一图像;
接收模块803,用于接收计算设备集群发送的目标物体的第一位姿信息,第一位姿信息用于描述目标物体在第一图像中对应的位姿;
跟踪模块804,用于用于根据第一位姿信息,在图像序列中对目标物体进行三维物体跟踪。
可选地,发送模块802还用于:
在图像序列中对目标物体进行三维物体跟踪时,若在图像序列中的第二图像中无法识别到目标物体,则向计算设备集群发送目标物体对应的第一数据,第一数据指示目标物体处于跟丢状态;
跟踪模块804还用于:
在无法识别到目标物体之后,若从计算设备集群接收到第二数据,且第二数据指示目标物体处于与跟丢状态对应的目标状态,则根据第二数据中目标物体的第二位姿信息,对目标物体进行三维物体跟踪。
可选地,跟踪模块804用于:
在图像序列中的当前帧对目标物体进行三维物体跟踪时,根据目标物体在当前帧与当前帧之前的N帧之间的第一相对位姿变化,获得目标物体在当前帧中的三维跟踪结果,N为正整数。
可选地,跟踪模块804用于:
在图像序列中的当前帧对任一目标物体进行三维物体跟踪时,若第一相对位姿变化不满足第一预设条件,则根据与当前帧相匹配的关键帧中目标物体的第三位姿信息,和/或,当前帧中目标物体的轮廓信息,获得目标物体在当前帧中的三维跟踪结果,第三位姿信息用于描述目标物体在关键帧对应的位姿。
可选地,跟踪模块804用于:
在当前帧对目标物体进行三维物体跟踪时,若第一相对位姿变化不满足第一预设条件,则:
若获得与当前帧相匹配的关键帧,则根据目标物体在当前帧与当前帧对应的关键帧之间的第二相对位姿变化,以及第三位姿信息,获得目标物体在当前帧中的三维跟踪结果。
可选地,跟踪模块804用于:
在当前帧对目标物体进行三维物体跟踪时,若第一相对位姿变化不满足第一预设条件,且不存在与当前帧相匹配的关键帧,则根据当前帧中目标物体的轮廓信息,获得目标物体在当前帧中的三维跟踪结果。
可选地,跟踪模块804用于:
在图像序列中的当前帧对目标物体进行三维物体跟踪时,若目标物体为静止物体,则:
根据目标物体的第一位姿信息、第一图像对应的相机位姿信息和当前帧对应的相机位姿信息,获得目标物体在当前帧对应的初始估计位姿信息,其中,相机位姿信息用于描述相应相机在世界坐标系下的位姿,初始估计位姿信息用于描述目标物体在当前帧中对应的初始估计位姿;
根据初始估计位姿信息,获得目标物体在当前帧中的三维跟踪结果。
可选地,接收模块803用于:
接收计算设备集群发送的目标物体的第一位姿信息和目标物体的类型信息;
跟踪模块804还用于:
基于目标物体的类型信息,确定目标物体是否为静止物体。
如图9所示,本申请实施例提供一种物体跟踪装置90,该装置90可以应用于上述实施例中的计算设备集群。
该装置90的一实施例包括:
接收模块901,用于接收终端设备发送的图像序列,图像序列中包括第一图像;
处理模块902,用于基于第一图像,生成目标物体的第一位姿信息,第一位姿信息用于描述目标物体在第一图像中对应的位姿;
发送模块903,用于向终端设备发送目标物体的第一位姿信息,以使得终端设备根据第一位姿信息,在图像序列中对目标物体进行三维物体跟踪。
可选地,接收模块901还用于:接收终端设备发送的第一数据,第一数据指示目标物体处于跟丢状态,跟丢状态指示终端设备在图像序列中无法识别到目标物体;
发送模块903还用于:在接收终端设备发送的第一数据之后,若在图像序列的第三图像中识别到目标物体,则向终端设备发送第二数据,以使得终端设备根据第二数据对目标物体进行三维物体跟踪,第二数据包括第二位姿信息,并且,第二数据指示目标物体处于与跟丢状态对应的目标状态,第二位姿信息用于描述目标物体在第三图像对应的位姿。
可选地,
处理模块902用于:
根据图像序列中的至少一帧,在第一图像中进行二维物体跟踪,以获得第一图像中的目标物体对应的第三数据,第三数据包含目标物体的第一物体标识;
若根据第三数据确定目标物体的跟踪状态为第一状态,则生成目标物体对应的第一位姿信息,第一状态指目标物体为新增的待跟踪物体,或者,指示目标物体为终端设备在图像序列中无法识别到的物体。
可选地,处理模块902用于:
比对第一物体标识与每个第二物体标识,每个第二物体标识为图像序列中,第一图像的前M帧的每一帧中,基于二维物体跟踪而确定的一个物体的物体标识,M为正整数;
若比对结果指示第一物体标识是相对于前M帧的新增的物体标识,则生成新增的物体标识对应的目标物体的第一位姿信息,新增的物体标识对应的目标物体为新增的待跟踪物体。
可选地,处理模块902用于:
比对第一物体标识与每个第二物体标识,每个第二物体标识为图像序列中,第一图像的前M帧的每一帧中,基于二维物体跟踪而确定的一个物体的物体标识,M为正整数;
若比对结果指示第一物体标识是相对于前M帧的非新增的物体标识,则:
若非新增的物体标识对应的第三数据的第一字段中包含第一描述信息,则生成非新增的物体标识对应的目标物体的第一位姿信息,第一字段中包含的第一描述信息指示目标物体为终端设备在图像序列中无法识别到的物体。
本实施例中,模块作为软件功能单元的一种举例,物体跟踪装置可以包括运行在计算实例上的代码。其中,计算实例可以是物理主机(计算设备)、虚拟机、容器等计算设备中的至少一种。进一步地,上述计算设备可以是一台或者多台。例如,物体跟踪装置可以包括运行在多个主机/虚拟机/容器上的代码。需要说明的是,用于运行该应用程序的多个主机/虚拟机/容器可以分布在相同的region中,也可以分布在不同的region中。用于运行该代码的多个主机/虚拟机/容器可以分布在相同的可用域(available zone,AZ)中,也可以分布在不同的AZ中,每个AZ包括一个数据中心或多个地理位置相近的数据中心。其中,通常一个region可以包括多个AZ。
同样,用于运行该代码的多个主机/虚拟机/容器可以分布在同一个虚拟私有云(virtual private cloud,VPC)中,也可以分布在多个VPC中。其中,通常一个VPC设置在一个region内。同一region内两个VPC之间,以及不同region的VPC之间跨区通信需在每个VPC内设置通信网关,经通信网关实现VPC之间的互连。
模块作为硬件功能单元的一种举例,物体跟踪装置可以包括至少一个计算设备,如服务器等。或者,物体跟踪装置也可以是利用专用集成电路(application specificintegrated circuit,ASIC)实现、或可编程逻辑器件(programmable logic device,PLD)实现的设备等。其中,上述PLD可以是复杂PLD(complex PLD,CPLD)、现成可编程门阵列(field programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合实现。
物体跟踪装置包括的多个计算设备可以分布在相同的region中,也可以分布在不同的region中。物体跟踪装置包括的多个计算设备可以分布在相同的AZ中,也可以分布在不同的AZ中。同样,物体跟踪装置包括的多个计算设备可以分布在同一个VPC中,也可以分布在多个VPC中。其中,多个计算设备可以是服务器、ASIC、PLD、CPLD、FPGA和GAL等计算设备的任意组合。
图10所示,是本申请实施例提供的终端设备100的一种可能的逻辑结构示意图。该终端设备100用于实现上述任一实施例中所涉及的终端设备的功能。该终端设备100包括:存储器1001、处理器1002、通信接口1003以及总线1004。其中,存储器1001、处理器1002、通信接口1003通过总线1004实现彼此之间的通信连接。
存储器1001可以是只读存储器(read only memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(random access memory,RAM)。存储器1001可以存储程序,当存储器1001中存储的程序被处理器1002执行时,处理器1002和通信接口1003用于执行上述的物体跟踪方法实施例中由终端设备执行的步骤等。
处理器1002可以采用中央处理器(central processing unit,CPU)、微处理器、应用专用集成电路(application specific integrated circuit,ASIC)、图形处理器(graphics processing unit,GPU)、数字信号处理器(digital signal processing,DSP)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意组合,用于执行相关程序,以实现上述实施例中应用于终端设备的物体跟踪装置中的采集模块、发送模块、接收模块以及跟踪模块等所需执行的功能,或者执行本申请方法实施例的物体跟踪方法实施例中由终端设备执行的步骤等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1001,处理器1002读取存储器1001中的信息,结合其硬件执行上述的物体跟踪方法实施例中由终端设备执行的步骤等。
通信接口1003使用例如但不限于收发器一类的收发装置,来实现终端设备100与其他设备或通信网络之间的通信。例如,可以通过通信接口1003与计算设备集群进行信息交互。
总线1004可实现在终端设备100各个部件(例如,存储器1001、处理器1002以及通信接口1003)之间传送信息的通路。总线1004可以是外设部件互连标准(PeripheralComponent Interconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请的另一实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的处理器执行该计算机执行指令时,设备执行上述图10中的处理器所执行的步骤。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;当设备的处理器执行该计算机执行指令时,设备执行上述图10中的处理器所执行的步骤。
在本申请的另一实施例中,还提供一种芯片系统,该芯片系统包括处理器,该处理器用于实现上述图10的处理器所执行的步骤。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存数据写入的装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本申请还提供一种计算设备110。如图11所示,计算设备110包括:总线112、处理器114、存储器116和通信接口118。处理器114、存储器116和通信接口118之间通过总线112通信。计算设备110可以是服务器或终端设备。应理解,本申请不限定计算设备110中的处理器、存储器的个数。
总线112可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线114可包括在计算设备110各个部件(例如,存储器116、处理器114、通信接口118)之间传送信息的通路。
处理器114可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器116可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。处理器114还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。
存储器116中存储有可执行的程序代码,处理器114执行该可执行的程序代码以分别实现前述发送模块、接收模块和处理模块的功能,从而实现上述实施例中应用于计算设备集群的物体跟踪方法。也即,存储器116上存有用于执行上述实施例中应用于计算设备集群的物体跟踪方法的指令。
通信接口118使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备110与其他设备或通信网络之间的通信。
本申请实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。
如图12所示,计算设备集群包括至少一个计算设备110,计算设备110包括:总线112、处理器114、存储器116和通信接口118。计算设备集群中的一个或多个计算设备110中的存储器116中可以存有相同的用于执行物体跟踪方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备110的存储器116中也可以分别存有用于执行物体跟踪方法的部分指令。换言之,一个或多个计算设备110的组合可以共同执行用于执行物体跟踪方法的指令。
需要说明的是,计算设备集群中的不同的计算设备110中的存储器116可以存储不同的指令,分别用于执行物体跟踪方法的部分功能。也即,不同的计算设备110中的存储器116存储的指令可以实现发送模块、接收模块和处理模块中的一个或多个模块的功能。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,网络可以是广域网或局域网等等。图13示出了一种可能的实现方式。如图13所示,两个计算设备110A和110B之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与网络进行连接。在这一类可能的实现方式中,计算设备110A中的存储器116中存有执行处理模块的部分功能(如二维物体跟踪的功能)的指令。同时,计算设备110B中的存储器116中存有执行处理模块的另一部分功能(如三维物体定位)的指令。
应理解,图13中示出的计算设备110A的功能也可以由多个计算设备110完成。同样,计算设备110B的功能也可以由多个计算设备110完成。
本申请实施例还提供了另一种计算设备集群。该计算设备集群中各计算设备之间的连接关系可以类似的参考图12和图13计算设备集群的连接方式。不同的是,该计算设备集群中的一个或多个计算设备110中的存储器116中可以存有相同的用于执行物体跟踪方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备110的存储器116中也可以分别存有用于执行物体跟踪方法的部分指令。换言之,一个或多个计算设备110的组合可以共同执行用于执行物体跟踪方法的指令。
需要说明的是,计算设备集群中的不同的计算设备110中的存储器116可以存储不同的指令,用于执行物体跟踪方法的部分功能。也即,不同的计算设备110中的存储器116存储的指令可以实现发送模块、接收模块和处理模块中的一个或多个模块的功能。
本申请实施例还提供了一种包含指令的计算机程序产品。计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当计算机程序产品在至少一个计算设备上运行时,使得至少一个计算设备执行物体跟踪方法。
本申请实施例还提供了一种计算机可读存储介质。计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,指令指示计算设备执行物体跟踪方法。
本申请实施例还提供一种物体跟踪系统,如图14所示,该物体跟踪系统140可以包括终端设备100以及计算设备集群120,该终端设备100可以实现上述任一实施例中终端设备的功能,该计算设备集群120包括一个或多个计算设备110,并且可以实现上述任一实施例中计算设备集群的功能。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的保护范围。
Claims (41)
1.一种物体跟踪方法,其特征在于,所述方法应用于计算设备集群,所述方法包括:
接收终端设备发送的图像序列,所述图像序列中包括第一图像;
基于所述第一图像,生成目标物体的第一位姿信息,所述第一位姿信息用于描述所述目标物体在所述第一图像中对应的位姿;
向所述终端设备发送所述目标物体的第一位姿信息,以使得所述终端设备根据所述第一位姿信息,在所述图像序列中对所述目标物体进行三维物体跟踪。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述终端设备发送的第一数据,所述第一数据指示所述目标物体处于跟丢状态,所述跟丢状态指示所述终端设备在所述图像序列中无法识别到所述目标物体;
在接收所述终端设备发送的第一数据之后,若在所述图像序列的第三图像中识别到所述目标物体,则向所述终端设备发送第二数据,以使得所述终端设备根据所述第二数据对所述目标物体进行三维物体跟踪,所述第二数据包括第二位姿信息,并且,所述第二数据指示所述目标物体处于与所述跟丢状态对应的目标状态,所述第二位姿信息用于描述所述目标物体在所述第三图像对应的位姿。
3.根据权利要求1或2所述的方法,其特征在于,所述基于所述第一图像,生成目标物体的第一位姿信息,包括:
根据所述图像序列中的至少一帧,在所述第一图像中进行二维物体跟踪,以获得所述第一图像中的所述目标物体对应的第三数据,所述第三数据包含所述目标物体的第一物体标识;
若根据所述第三数据确定所述目标物体的跟踪状态为第一状态,则生成所述目标物体对应的第一位姿信息,所述第一状态指所述目标物体为新增的待跟踪物体,或者,指示所述目标物体为所述终端设备在所述图像序列中无法识别到的物体。
4.根据权利要求3所述的方法,其特征在于,所述若根据所述第三数据确定所述目标物体的跟踪状态为第一状态,则生成所述目标物体对应的第一位姿信息,包括:
比对所述第一物体标识与每个第二物体标识,每个所述第二物体标识为所述图像序列中,所述第一图像的前M帧的每一帧中,基于二维物体跟踪而确定的一个物体的物体标识,M为正整数;
若比对结果指示所述第一物体标识是相对于所述前M帧的新增的物体标识,则生成所述新增的物体标识对应的目标物体的第一位姿信息,所述新增的物体标识对应的目标物体为新增的待跟踪物体。
5.根据权利要求3所述的方法,其特征在于,所述若根据所述第三数据确定所述目标物体的跟踪状态为第一状态,则生成所述目标物体对应的第一位姿信息,包括:
比对所述第一物体标识与每个第二物体标识,每个所述第二物体标识为所述图像序列中,所述第一图像的前M帧的每一帧中,基于二维物体跟踪而确定的一个物体的物体标识,M为正整数;
若比对结果指示所述第一物体标识是相对于所述前M帧的非新增的物体标识,则:
若所述非新增的物体标识对应的第三数据的第一字段中包含第一描述信息,则生成所述非新增的物体标识对应的目标物体的第一位姿信息,所述第一字段中包含的第一描述信息指示所述目标物体为所述终端设备在所述图像序列中无法识别到的物体。
6.一种物体跟踪方法,其特征在于,所述方法应用于终端设备,所述方法包括:
实时采集图像序列;
向计算设备集群发送所述图像序列,所述图像序列中包括第一图像;
接收所述计算设备集群发送的目标物体的第一位姿信息,所述第一位姿信息用于描述所述目标物体在所述第一图像中对应的位姿;
根据所述第一位姿信息,在所述图像序列中对所述目标物体进行三维物体跟踪。
7.根据权利要求6所述的方法,其特征在于,所述第一位姿信息用于描述所述目标物体在所述第一图像对应的相机坐标系下的位姿。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
在所述图像序列中对所述目标物体进行三维物体跟踪时,若在所述图像序列中的第二图像中无法识别到所述目标物体,则向所述计算设备集群发送所述目标物体对应的第一数据,所述第一数据指示所述目标物体处于跟丢状态;
在无法识别到所述目标物体之后,若从所述计算设备集群接收到第二数据,且所述第二数据指示所述目标物体处于与所述跟丢状态对应的目标状态,则根据所述第二数据中所述目标物体的第二位姿信息,对所述目标物体进行三维物体跟踪。
9.根据权利要求8所述的方法,其特征在于,所述第一数据包括所述目标物体的物体标识,所述第一数据中通过第一字段包含的第一描述信息描述所述跟丢状态,所述第二数据包括所述目标物体的物体标识,并且所述第二数据中通过第二字段包含的第二描述信息描述所述目标状态。
10.根据权利要求6-9任一项所述的方法,其特征在于,所述根据所述第一位姿信息,在所述图像序列中对所述目标物体进行三维物体跟踪,包括:
在所述图像序列中的当前帧对所述目标物体进行三维物体跟踪时,根据所述目标物体在所述当前帧与所述当前帧之前的N帧之间的第一相对位姿变化,获得所述目标物体在所述当前帧中的三维跟踪结果,N为正整数。
11.根据权利要求10所述的方法,其特征在于,所述在所述图像序列中的当前帧对所述目标物体进行三维物体跟踪时,根据所述目标物体在所述当前帧与所述当前帧之前的N帧之间的第一相对位姿变化,获得所述目标物体在所述当前帧中的三维跟踪结果,包括:
在所述图像序列中的当前帧对所述目标物体进行三维物体跟踪时,若所述第一相对位姿变化不满足第一预设条件,则根据与所述当前帧相匹配的关键帧中所述目标物体的第三位姿信息,和/或,所述当前帧中所述目标物体的轮廓信息,获得所述目标物体在所述当前帧中的三维跟踪结果,所述第三位姿信息用于描述所述目标物体在所述关键帧对应的位姿。
12.根据权利要求11所述的方法,其特征在于,所述在所述图像序列中的当前帧对所述目标物体进行三维物体跟踪时,若所述第一相对位姿变化不满足第一预设条件,则根据所述当前帧对应的关键帧中所述目标物体的第三位姿信息,和/或,所述当前帧中所述目标物体的轮廓信息,获得目标物体在所述当前帧中的三维跟踪结果,包括:
在所述当前帧对所述目标物体进行三维物体跟踪时,若所述第一相对位姿变化不满足第一预设条件,则:
若获得与所述当前帧相匹配的关键帧,则根据所述目标物体在所述当前帧与所述当前帧对应的关键帧之间的第二相对位姿变化,以及所述第三位姿信息,获得所述目标物体在所述当前帧中的三维跟踪结果。
13.根据权利要求11所述的方法,其特征在于,所述在所述图像序列中的当前帧对所述目标物体进行三维物体跟踪时,若所述第一相对位姿变化不满足第一预设条件,则根据所述当前帧对应的关键帧中所述目标物体的第三位姿信息,和/或,所述当前帧中所述目标物体的轮廓信息,获得目标物体在所述当前帧中的三维跟踪结果,包括:
在所述当前帧对所述目标物体进行三维物体跟踪时,若所述第一相对位姿变化不满足第一预设条件,且不存在与所述当前帧相匹配的关键帧,则根据所述当前帧中所述目标物体的轮廓信息,获得所述目标物体在所述当前帧中的三维跟踪结果。
14.根据权利要求6-13任一项所述的方法,其特征在于,所述根据所述第一位姿信息,在所述图像序列中对所述目标物体进行三维物体跟踪,包括:
在所述图像序列中的当前帧对所述目标物体进行三维物体跟踪时,若所述目标物体为静止物体,则:
根据所述目标物体的第一位姿信息、所述第一图像对应的相机位姿信息和所述当前帧对应的相机位姿信息,获得所述目标物体在所述当前帧对应的初始估计位姿信息,其中,所述相机位姿信息用于描述相应相机在世界坐标系下的位姿,所述初始估计位姿信息用于描述所述目标物体在所述当前帧中对应的初始估计位姿;
根据所述初始估计位姿信息,获得所述目标物体在所述当前帧中的三维跟踪结果。
15.根据权利要求14所述的方法,其特征在于,所述接收所述计算设备集群发送的目标物体的第一位姿信息,包括:
接收所述计算设备集群发送的目标物体的第一位姿信息和所述目标物体的类型信息;
所述方法还包括:
基于所述目标物体的类型信息,确定所述目标物体是否为静止物体。
16.一种物体跟踪方法,其特征在于,所述方法包括:
终端设备实时采集图像序列;
所述终端设备向计算设备集群发送所述图像序列,所述图像序列中包括第一图像;
所述计算设备集群基于所述第一图像,生成目标物体的第一位姿信息,所述第一位姿信息用于描述所述目标物体在所述第一图像中对应的位姿;
所述计算设备集群向所述终端设备发送所述目标物体的第一位姿信息;
所述终端设备根据所述第一位姿信息,在所述图像序列中对所述目标物体进行三维物体跟踪。
17.根据权利要求16所述的方法,其特征在于,所述方法还包括:
所述终端设备在所述图像序列中对所述目标物体进行三维物体跟踪时,若所述终端设备在所述图像序列中的第二图像中无法识别到所述目标物体,则向所述计算设备集群发送所述目标物体对应的第一数据,所述第一数据指示所述目标物体处于跟丢状态;
所述计算设备集群接收所述第一数据之后,若所述计算设备集群在所述图像序列的第三图像中识别到所述目标物体,则向所述终端设备发送第二数据,所述第二数据包括第二位姿信息,并且,所述第二数据指示所述目标物体处于与所述跟丢状态对应的目标状态,所述第二位姿信息用于描述所述目标物体在所述第三图像对应的位姿;
所述终端设备在无法识别到所述目标物体之后,若从所述计算设备集群接收到所述第二数据,则根据所述第二数据中所述目标物体的第二位姿信息,对所述目标物体进行三维物体跟踪。
18.根据权利要求16或17所述的方法,其特征在于,所述终端设备根据所述第一位姿信息,在所述图像序列中对所述目标物体进行三维物体跟踪,包括:
所述终端设备在所述图像序列中的当前帧对所述目标物体进行三维物体跟踪时,若所述目标物体在所述当前帧与所述当前帧之前的N帧之间的第一相对位姿变化不满足第一预设条件,则根据与所述当前帧相匹配的关键帧中所述目标物体的第三位姿信息,和/或,所述当前帧中所述目标物体的轮廓信息,获得所述目标物体在所述当前帧中的三维跟踪结果,所述第三位姿信息用于描述所述目标物体在所述关键帧对应的位姿,N为正整数。
19.根据权利要求18所述的方法,其特征在于,所述终端设备在所述图像序列中的当前帧对所述目标物体进行三维物体跟踪时,若所述目标物体在所述当前帧与所述当前帧之前的N帧之间的第一相对位姿变化不满足第一预设条件,则根据所述当前帧对应的关键帧中所述目标物体的第三位姿信息,和/或,所述当前帧中所述目标物体的轮廓信息,获得目标物体在所述当前帧中的三维跟踪结果,包括:
所述终端设备在所述当前帧对所述目标物体进行三维物体跟踪时,若所述第一相对位姿变化不满足第一预设条件,则:
若获得与所述当前帧相匹配的关键帧,则根据所述目标物体在所述当前帧与所述当前帧对应的关键帧之间的第二相对位姿变化,以及所述第三位姿信息,获得所述目标物体在所述当前帧中的三维跟踪结果。
20.根据权利要求18所述的方法,其特征在于,所述终端设备在所述图像序列中的当前帧对所述目标物体进行三维物体跟踪时,若所述目标物体在所述当前帧与所述当前帧之前的N帧之间的第一相对位姿变化不满足第一预设条件,则根据所述当前帧对应的关键帧中所述目标物体的第三位姿信息,和/或,所述当前帧中所述目标物体的轮廓信息,获得目标物体在所述当前帧中的三维跟踪结果,包括:
所述终端设备在所述当前帧对所述目标物体进行三维物体跟踪时,若所述第一相对位姿变化不满足第一预设条件,且不存在与所述当前帧相匹配的关键帧,则根据所述当前帧中所述目标物体的轮廓信息,获得所述目标物体在所述当前帧中的三维跟踪结果。
21.根据权利要求16-20任一项所述的方法,其特征在于,所述计算设备集群基于所述第一图像,生成目标物体的第一位姿信息,包括:
所述计算设备集群根据所述图像序列中的至少一帧,在所述第一图像中进行二维物体跟踪,以获得所述第一图像中的所述目标物体对应的第三数据,所述第三数据包含所述目标物体的第一物体标识;
若根据所述第三数据确定所述目标物体的跟踪状态为第一状态,则所述计算设备集群生成所述目标物体对应的第一位姿信息,所述第一状态指所述目标物体为新增的待跟踪物体,或者,指示所述目标物体为所述终端设备在所述图像序列中无法识别到的物体。
22.根据权利要求21所述的方法,其特征在于,所述若根据所述第三数据确定所述目标物体的跟踪状态为第一状态,则所述计算设备集群生成所述目标物体对应的第一位姿信息,包括:
所述计算设备集群比对所述第一物体标识与每个第二物体标识,每个所述第二物体标识为所述图像序列中,所述第一图像的前M帧的每一帧中,基于二维物体跟踪而确定的一个物体的物体标识,M为正整数;
若比对结果指示所述第一物体标识是相对于所述前M帧的新增的物体标识,则所述计算设备集群生成所述新增的物体标识对应的目标物体的第一位姿信息,所述新增的物体标识对应的目标物体为新增的待跟踪物体。
23.根据权利要求21所述的方法,其特征在于,所述若根据所述第三数据确定所述目标物体的跟踪状态为第一状态,则所述计算设备集群生成所述目标物体对应的第一位姿信息,包括:
所述计算设备集群比对所述第一物体标识与每个第二物体标识,每个所述第二物体标识为所述图像序列中,所述第一图像的前M帧的每一帧中,基于二维物体跟踪而确定的一个物体的物体标识,M为正整数;
若比对结果指示所述第一物体标识是相对于所述前M帧的非新增的物体标识,则:
若所述非新增的物体标识对应的第三数据的第一字段中包含第一描述信息,则所述计算设备集群生成所述非新增的物体标识对应的目标物体的第一位姿信息,所述第一字段中包含的第一描述信息指示所述目标物体为所述终端设备在所述图像序列中无法识别到的物体。
24.一种物体跟踪装置,其特征在于,应用于计算设备集群,所述装置包括:
接收模块,用于接收终端设备发送的图像序列,所述图像序列中包括第一图像;
处理模块,用于基于所述第一图像,生成目标物体的第一位姿信息,所述第一位姿信息用于描述所述目标物体在所述第一图像中对应的位姿;
发送模块,用于向所述终端设备发送所述目标物体的第一位姿信息,以使得所述终端设备根据所述第一位姿信息,在所述图像序列中对所述目标物体进行三维物体跟踪。
25.根据权利要求24所述的装置,其特征在于,
所述接收模块还用于:接收所述终端设备发送的第一数据,所述第一数据指示所述目标物体处于跟丢状态,所述跟丢状态指示所述终端设备在所述图像序列中无法识别到所述目标物体;
所述发送模块还用于:在接收所述终端设备发送的第一数据之后,若在所述图像序列的第三图像中识别到所述目标物体,则向所述终端设备发送第二数据,以使得所述终端设备根据所述第二数据对所述目标物体进行三维物体跟踪,所述第二数据包括第二位姿信息,并且,所述第二数据指示所述目标物体处于与所述跟丢状态对应的目标状态,所述第二位姿信息用于描述所述目标物体在所述第三图像对应的位姿。
26.根据权利要求24或25所述的装置,其特征在于,
所述处理模块用于:
根据所述图像序列中的至少一帧,在所述第一图像中进行二维物体跟踪,以获得所述第一图像中的所述目标物体对应的第三数据,所述第三数据包含所述目标物体的第一物体标识;
若根据所述第三数据确定所述目标物体的跟踪状态为第一状态,则生成所述目标物体对应的第一位姿信息,所述第一状态指所述目标物体为新增的待跟踪物体,或者,指示所述目标物体为所述终端设备在所述图像序列中无法识别到的物体。
27.根据权利要求26所述的装置,其特征在于,
所述处理模块用于:
比对所述第一物体标识与每个第二物体标识,每个所述第二物体标识为所述图像序列中,所述第一图像的前M帧的每一帧中,基于二维物体跟踪而确定的一个物体的物体标识,M为正整数;
若比对结果指示所述第一物体标识是相对于所述前M帧的新增的物体标识,则生成所述新增的物体标识对应的目标物体的第一位姿信息,所述新增的物体标识对应的目标物体为新增的待跟踪物体。
28.根据权利要求26所述的装置,其特征在于,
所述处理模块用于:
比对所述第一物体标识与每个第二物体标识,每个所述第二物体标识为所述图像序列中,所述第一图像的前M帧的每一帧中,基于二维物体跟踪而确定的一个物体的物体标识,M为正整数;
若比对结果指示所述第一物体标识是相对于所述前M帧的非新增的物体标识,则:
若所述非新增的物体标识对应的第三数据的第一字段中包含第一描述信息,则生成所述非新增的物体标识对应的目标物体的第一位姿信息,所述第一字段中包含的第一描述信息指示所述目标物体为所述终端设备在所述图像序列中无法识别到的物体。
29.一种物体跟踪装置,其特征在于,应用于终端设备,所述装置包括:
采集模块,用于实时采集图像序列;
发送模块,用于向计算设备集群发送所述图像序列,所述图像序列中包括第一图像;
接收模块,用于接收所述计算设备集群发送的目标物体的第一位姿信息,所述第一位姿信息用于描述所述目标物体在所述第一图像中对应的位姿;
跟踪模块,用于根据所述第一位姿信息,在所述图像序列中对所述目标物体进行三维物体跟踪。
30.根据权利要求29所述的装置,其特征在于,
所述发送模块还用于:
在所述图像序列中对所述目标物体进行三维物体跟踪时,若在所述图像序列中的第二图像中无法识别到所述目标物体,则向所述计算设备集群发送所述目标物体对应的第一数据,所述第一数据指示所述目标物体处于跟丢状态;
所述跟踪模块还用于:
在无法识别到所述目标物体之后,若从所述计算设备集群接收到第二数据,且所述第二数据指示所述目标物体处于与所述跟丢状态对应的目标状态,则根据所述第二数据中所述目标物体的第二位姿信息,对所述目标物体进行三维物体跟踪。
31.根据权利要求29或30所述的装置,其特征在于,
所述跟踪模块用于:
在所述图像序列中的当前帧对所述目标物体进行三维物体跟踪时,根据所述目标物体在所述当前帧与所述当前帧之前的N帧之间的第一相对位姿变化,获得所述目标物体在所述当前帧中的三维跟踪结果,N为正整数。
32.根据权利要求31所述的装置,其特征在于,
所述跟踪模块用于:
在所述图像序列中的当前帧对任一所述目标物体进行三维物体跟踪时,若所述第一相对位姿变化不满足第一预设条件,则根据与所述当前帧相匹配的关键帧中所述目标物体的第三位姿信息,和/或,所述当前帧中所述目标物体的轮廓信息,获得所述目标物体在所述当前帧中的三维跟踪结果,所述第三位姿信息用于描述所述目标物体在所述关键帧对应的位姿。
33.根据权利要求32所述的装置,其特征在于,
所述跟踪模块用于:
在所述当前帧对所述目标物体进行三维物体跟踪时,若所述第一相对位姿变化不满足第一预设条件,则:
若获得与所述当前帧相匹配的关键帧,则根据所述目标物体在所述当前帧与所述当前帧对应的关键帧之间的第二相对位姿变化,以及所述第三位姿信息,获得所述目标物体在所述当前帧中的三维跟踪结果。
34.根据权利要求32所述的装置,其特征在于,
所述跟踪模块用于:
在所述当前帧对所述目标物体进行三维物体跟踪时,若所述第一相对位姿变化不满足第一预设条件,且不存在与所述当前帧相匹配的关键帧,则根据所述当前帧中所述目标物体的轮廓信息,获得所述目标物体在所述当前帧中的三维跟踪结果。
35.根据权利要求29-34任一项所述的装置,其特征在于,
所述跟踪模块用于:
在所述图像序列中的当前帧对所述目标物体进行三维物体跟踪时,若所述目标物体为静止物体,则:
根据所述目标物体的第一位姿信息、所述第一图像对应的相机位姿信息和所述当前帧对应的相机位姿信息,获得所述目标物体在所述当前帧对应的初始估计位姿信息,其中,所述相机位姿信息用于描述相应相机在世界坐标系下的位姿,所述初始估计位姿信息用于描述所述目标物体在所述当前帧中对应的初始估计位姿;
根据所述初始估计位姿信息,获得所述目标物体在所述当前帧中的三维跟踪结果。
36.根据权利要求35所述的装置,其特征在于,
所述接收模块用于:
接收所述计算设备集群发送的目标物体的第一位姿信息和所述目标物体的类型信息;
所述跟踪模块还用于:
基于所述目标物体的类型信息,确定所述目标物体是否为静止物体。
37.一种计算设备集群,其特征在于,包括计算设备,每个计算设备包括处理器和存储器;
所述计算设备的处理器用于执行所述计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1-5任一项所述的方法。
38.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1-5任一项所述的方法。
39.一种终端设备,其特征在于,所述终端设备包括处理器、存储器及存储在所述存储器上并可被所述处理器执行的指令,所述处理器用于执行所述指令,以实现权利要求6-15任一项所述的方法的步骤。
40.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由终端设备执行时,所述终端设备执行如权利要求6-15任一项所述的方法。
41.一种物体跟踪系统,其特征在于,包括如权利要求37所述的计算设备集群和如权利要求39所述的终端设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2023/091494 WO2023236684A1 (zh) | 2022-06-08 | 2023-04-28 | 一种物体跟踪方法以及相关设备 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210646960X | 2022-06-08 | ||
CN202210646960 | 2022-06-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117237399A true CN117237399A (zh) | 2023-12-15 |
Family
ID=89085037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211091076.0A Pending CN117237399A (zh) | 2022-06-08 | 2022-09-07 | 一种物体跟踪方法以及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117237399A (zh) |
WO (1) | WO2023236684A1 (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9495760B2 (en) * | 2010-09-20 | 2016-11-15 | Qualcomm Incorporated | Adaptable framework for cloud assisted augmented reality |
CN109671105B (zh) * | 2018-12-19 | 2020-11-20 | 青岛小鸟看看科技有限公司 | 一种视觉导航系统的跟踪恢复方法和装置 |
CN110109535A (zh) * | 2019-03-18 | 2019-08-09 | 国网浙江省电力有限公司信息通信分公司 | 增强现实生成方法及装置 |
CN112752119B (zh) * | 2019-10-31 | 2023-12-01 | 中兴通讯股份有限公司 | 一种时延误差校正方法、终端设备、服务器及存储介质 |
US20210158561A1 (en) * | 2019-11-26 | 2021-05-27 | Nvidia Corporation | Image volume for object pose estimation |
CN111192293B (zh) * | 2019-12-27 | 2022-07-26 | 深圳市越疆科技有限公司 | 一种运动目标位姿跟踪方法及装置 |
CN113382365B (zh) * | 2021-05-21 | 2022-06-10 | 北京索为云网科技有限公司 | 移动终端的位姿跟踪方法及设备 |
CN113420719B (zh) * | 2021-07-20 | 2022-07-22 | 北京百度网讯科技有限公司 | 生成动作捕捉数据的方法、装置、电子设备以及存储介质 |
-
2022
- 2022-09-07 CN CN202211091076.0A patent/CN117237399A/zh active Pending
-
2023
- 2023-04-28 WO PCT/CN2023/091494 patent/WO2023236684A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023236684A1 (zh) | 2023-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Huang et al. | ClusterVO: Clustering moving instances and estimating visual odometry for self and surroundings | |
Dai et al. | Rgb-d slam in dynamic environments using point correlations | |
Sahu et al. | Artificial intelligence (AI) in augmented reality (AR)-assisted manufacturing applications: a review | |
Liu et al. | Learning auxiliary monocular contexts helps monocular 3d object detection | |
US11313684B2 (en) | Collaborative navigation and mapping | |
Tanskanen et al. | Live metric 3D reconstruction on mobile phones | |
CN109682385A (zh) | 一种基于orb特征的即时定位与地图构建的方法 | |
Peng et al. | Globally-optimal contrast maximisation for event cameras | |
Sun et al. | Improving monocular visual odometry using learned depth | |
CN110052020B (zh) | 便携式装置或机器人系统中运行的设备、控制设备和方法 | |
Singh et al. | Fusing semantics and motion state detection for robust visual SLAM | |
Zhao et al. | Visual odometry-A review of approaches | |
Zhou et al. | PointSLOT: Real-Time Simultaneous Localization and Object Tracking for Dynamic Environment | |
Zhang et al. | A stereo SLAM system with dense mapping | |
Jin et al. | Keyframe-based dynamic elimination SLAM system using YOLO detection | |
Li et al. | Intelligent vehicle visual pose estimation algorithm based on deep learning and parallel computing for dynamic scenes | |
CN117237399A (zh) | 一种物体跟踪方法以及相关设备 | |
Xu et al. | DOS-SLAM: A real-time dynamic object segmentation visual SLAM system | |
Li et al. | Multimodal Feature Association-based Stereo Visual SLAM Method | |
Langguth et al. | Guided Capturing of Multi-view Stereo Datasets. | |
Tian et al. | DynaQuadric: Dynamic Quadric SLAM for Quadric Initialization, Mapping, and Tracking | |
Porzi et al. | An automatic image-to-DEM alignment approach for annotating mountains pictures on a smartphone | |
Luo et al. | Improving large pose face alignment by regressing 2d and 3d landmarks simultaneously and visibility refinement | |
Du et al. | Fast Scene Reconstruction Based on Improved SLAM. | |
Lau et al. | Real-Time Object Pose Tracking System With Low Computational Cost for Mobile Devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |