CN111356903A - 视觉定位方法、装置及*** - Google Patents
视觉定位方法、装置及*** Download PDFInfo
- Publication number
- CN111356903A CN111356903A CN201980005639.XA CN201980005639A CN111356903A CN 111356903 A CN111356903 A CN 111356903A CN 201980005639 A CN201980005639 A CN 201980005639A CN 111356903 A CN111356903 A CN 111356903A
- Authority
- CN
- China
- Prior art keywords
- load
- directions
- processor
- algorithm
- target direction
- 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
- 230000000007 visual effect Effects 0.000 title claims abstract description 170
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 295
- 230000006870 function Effects 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 description 40
- 239000011159 matrix material Substances 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000013519 translation Methods 0.000 description 6
- 230000009466 transformation Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000005484 gravity Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000875 corresponding effect Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- RZVHIXYEVGDQDX-UHFFFAOYSA-N 9,10-anthraquinone Chemical compound C1=CC=C2C(=O)C3=CC=CC=C3C(=O)C2=C1 RZVHIXYEVGDQDX-UHFFFAOYSA-N 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010626 work up procedure Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/10—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
- G01C21/12—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
- G01C21/16—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
- G01C21/165—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Studio Devices (AREA)
Abstract
一种视觉定位方法、装置及***。视觉定位方法包括:获取处理器当前的负载信息;根据处理器当前的负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器(101);根据至少一个目标方向中各目标方向的视觉传感器获取到的图像,采用第一算法,确定可移动平台的位姿信息(102)。视觉定位方法可以避免处理器资源紧张的问题。
Description
技术领域
本发明涉及定位技术领域,尤其涉及一种视觉定位方法、装置及***。
背景技术
目前,算法在视觉定位中的应用越来越广泛,该算法例如可以为视觉惯性里程计(VIO,Visual-Inertial Odometry)算法。
现有技术中,在视觉定位的过程中,根据设置在可移动平台的所有方向上的视觉传感器分别采集到的图像,采用固定的一个算法,确定可移动平台的位置和姿态(简称:位姿)信息。具体的,所有方向上的视觉传感器分别采集到的图像可以作为该算法的输入,该算法的输出即为可移动平台的位置和姿态,从而实现视觉定位。
但是,现有技术中,存在处理器资源紧张的问题。
发明内容
本发明实施例提供一种视觉定位方法、装置及***,用于解决现有技术中处理器资源紧张的问题。
第一方面,本发明实施例提供一种视觉定位方法,包括:
获取处理器当前的负载信息;
根据所述负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器;
根据所述至少一个目标方向中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息。
第二方面,本发明实施例提供一种视觉定位装置,包括:处理器和存储器;
所述存储器,用于存储程序代码;
所述处理器,调用所述程序代码,当程序代码被执行时,用于执行以下操作:
获取处理器当前的负载信息;
根据所述负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器;
根据所述至少一个目标方向中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息。
第三方面,本发明实施例提供一种视觉定位***,包括:视觉传感器以及上述第二方面任一项所述的视觉定位装置。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包含至少一段代码,所述至少一段代码可由计算机执行,以控制所述计算机执行如上述第一方面任一项所述的视觉定位方法。
第五方面,本发明实施例提供一种计算机程序,其特征在于,当所述计算机程序被计算机执行时,用于实现如上述第一方面任一项所述的视觉定位方法。
本发明实施例提供的视觉定位方法、装置及***,通过获取处理器当前的负载信息,根据负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器,根据至少一个目标方向中各目标方向的视觉传感器获取到的图像,采用第一算法,确定可移动平台的位姿信息,实现了根据处理器的负载信息,确定在处理器的负载状况下能够处理的至少一个目标方向的视觉传感器,使得处理器在根据至少一个目标方向中各目标方向的视觉传感器获取到的图像,采用第一算法确定可移动平台的位姿信息时,可以避免处理器资源紧张的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的视觉定位方法的流程示意图;
图2为本发明另一实施例提供的视觉定位方法的流程示意图;
图3为本发明又一实施例提供的视觉定位方法的流程示意图;
图4为本发明又一实施例提供的视觉定位方法的流程示意图;
图5为本发明又一实施例提供的视觉定位方法的流程示意图;
图6本发明一实施例提供的视觉定位装置的结构示意图;
图7为本发明一实施例提供的视觉定位***的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的视觉定位方法,在进行视觉定位的过程中,考虑处理器的负载状况,以避免由于在视觉定位过程中所使用算法的算法复杂度较大,而导致处理器资源紧张的问题。
其中,可移动平台具体可以为能够在二维空间或三维空间中移动,并能够设置视觉传感器的任意类型的设备。可移动平台例如可以为无人机、机器人等。
其中,设置在可移动平台的视觉传感器的个数可以为多个,该多个视觉传感器在可移动平台上的位置,本发明并不作限定。例如,无人机的前方、下方、后方、左方和右方可以均设置有视觉传感器。
需要说明的是,对于视觉传感器的具体类型本发明不作限定。可选的,可移动平台上设置的视觉传感器可以均为单目视觉传感器;或者,可移动平台上设置的视觉传感器可以均为双目视觉传感器;或者,可移动平台上设置的视觉传感器可以既包括单目视觉传感器又包括双目视觉传感器。例如,无人机的前方、下方和后方设置的视觉传感器可以为双目视觉传感器,无人机的左方和右方设置的视觉传感器可以为单目视觉传感器。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
图1为本发明一实施例提供的视觉定位方法的流程示意图,本实施例的执行主体可以为可移动平台,具体可以为可移动平台的处理器。如图1所示,本实施例的方法可以包括:
步骤101,获取处理器当前的负载信息,根据所述负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器。
本步骤中,所述处理器具体可以是指所述可移动平台中用于根据视觉传感器获取到的图像,确定可移动平台的位姿信息的处理器。需要说明的是,所述处理器的个数可以为一个或多个,可以为单核或多核处理器,本发明对此可以不作限定。
其中,所述负载信息具体可以为能够用于指示负载状况的任意类型的信息。例如,负载信息可以为中央处理器(CPU,Central Processing Unit)使用率,CPU使用率越高可以表示负载越重。
可以理解的是,处理器的负载越大,可以表示处理器剩余资源越少,处理器资源的紧张程度越大。处理器的负载越小,可以表示处理器剩余资源越多,处理器资源的紧张程度越小。并且,由于计算量与执行步骤102视觉传感器的数目正相关,因此,可以根据处理器的负载信息确定执行后续步骤102的目标方向的视觉传感器。其中,处理器资源的紧张程度例如可以通过处理器的剩余资源表示,在处理器的剩余资源小于或等于资源阈值时,可以表示处理器资源紧张,在处理器的剩余资源大于资源阈值时,可以表示处理器资源不紧张。
可选的,根据负载信息,确定的至少一个目标方向的视觉传感器可以为可移动平台的所有方向的视觉传感器,或者,可以为可移动平台的所有方向中部分方向的视觉传感器。这里,根据处理器的负载信息,确定在处理器的负载状况下能够处理的至少一个目标方向的视觉传感器,使得处理器在根据至少一个目标方向中各目标方向的视觉传感器获取到的图像,采用第一算法确定可移动平台的位姿信息时,处理器计算量小于或等于一定阈值,从而可以避免处理器资源紧张的问题。
例如,假设无人机的前方、下方、后方、左方和右方可以均设置有视觉传感器,则在CPU占有率为10%时,可以根据处理器的负载信息,确定无人机的前方、下方、后方、左方和右方的视觉传感器,即至少一个目标方向包括前方、下方、后方、左方和右方;在CPU占有率为50%时,可以根据处理器的负载信息,确定无人机的前方、下方和后方的视觉传感器,即至少一个目标方向包括前方、后方和下方。
其中,无人机的前方设置的视觉传感器例如可以为双目视觉传感器,且双目视觉传感器的双目例如可以沿着无人机的左右方向依次设置在无人机的前方。无人机的下方设置的视觉传感器例如可以为双目视觉传感器,且双目视觉传感器的双目例如可以沿着无人机的前后方向依次设置在无人机的下方。无人机的后方设置的视觉传感器例如可以为双目视觉传感器,且双目视觉传感器的双目例如可以沿着无人机的上下方向依次设置在无人机的后方。无人机的左方设置的视觉传感器例如可以为单目视觉传感器,且单目视觉传感器例如可以设置在无人机的左方且靠近无人机的后方的位置。无人机的右方设置的视觉传感器例如可以为单目视觉传感器,且单目视觉传感器例如可以设置在无人机的右方且靠近无人机的后方的位置。
需要说明的是,上述无人机上设置的视觉传感器的数目、类型以及位置仅为举例,在实际应用中可以根据需求灵活设置。
步骤102,根据所述至少一个目标方向中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息。
本步骤中,在采用第一算法,确定可移动平台的位姿信息时,根据目标方向的视觉传感器获取到的图像,而并不根据除目标方向之外的其他方向的视觉传感器获取到的图像。例如,假设无人机的前方、下方、后方、左方和右方可以均设置有视觉传感器,则在确定目标方向包括前方、后方和下方后,可以根据前方的视觉传感器获取到的图像、后方的视觉传感器获取到的图像和下方的视觉传感器获取到的图像,采用第一算法,确定可移动平台的位置信息。
需要说明的是,可移动平台的所有方向的视觉传感器具体可以为可移动平台的能够获取图像的所有方向的视觉传感器。可选的,可移动平台的所有方向的视觉传感器均可以实时获取图像,进一步的,根据处理器当前的负载信息,确定使用所有方向中至少一个目标方向的视觉传感器获取到的图像。
本实施例中,通过获取处理器当前的负载信息,并根据负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器,根据至少一个目标方向中各目标方向的视觉传感器获取到的图像,采用第一算法,确定可移动平台的位姿信息,实现了根据处理器的负载信息,确定在处理器的负载状况下能够处理的至少一个目标方向的视觉传感器,使得处理器在根据至少一个目标方向中各目标方向的视觉传感器获取到的图像,采用第一算法确定可移动平台的位姿信息时,处理器在当前的负载信息所指示的当前负载状况下的计算量可接受,可以避免处理器资源紧张的问题。
图2为本发明另一实施例提供的视觉定位方法的流程示意图,本实施例在图2所示实施例的基础上,主要描述了步骤101的一种可选的实现方式。如图2所示,本实施例的方法可以包括:
步骤201,根据处理器当前的负载信息,判断所述处理器的负载是否小于或等于第一负载阈值。
本步骤中,所述第一负载阈值可以为预配置的阈值,或者,也可以预定义的阈值,或者还可以为动态指示的阈值等,本发明对此不作限定。可选的,第一负载阈值可以与第一算法的复杂度、所有方向的视觉传感器的个数,以及视觉传感器的类型相关。例如,第一算法的复杂度越大,第一负载阈值可以越小。又例如,所有方向的视觉传感器的个数越大,第一负载阈值可以越小。又例如,视觉传感器的类型为双目视觉传感器的视觉传感器的个数越多,第一负载阈值可以越小。
其中,算法的复杂度可以是指算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源。需要说明的是,当算法在不同处理器上运行时,复杂度可以不同,该不同处理器例如可以为飞控处理器和图像处理器。
具体的,若所述处理器的负载小于或等于所述第一负载阈值,则执行步骤202。这里,所述处理器的负载小于或等于第一负载阈值,可以表示所述处理器的负载较小。
步骤202,根据至少一个目标方向中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息;所述至少一个目标方向为所述所有方向的全部方向。
本步骤中,在处理器的负载较小时,可以根据可移动平台上设置的所有方向的视觉传感器获取到的图像,采用第一算法,确定可移动平台的位姿信息。这里,即使第一算法的算法复杂度较高,但是在处理器的负载小于或等于第一负载阈值的条件下,根据所有方向的视觉传感器获取到的图像,采用第一算法,确定可移动平台的位姿信息时,处理器在当前的负载信息所指示的当前负载状况下的计算量可接受,可以避免处理器资源紧张的问题。
可选的,第一算法可以为视觉惯性里程计(VIO,Visual-Inertial Odometry)算法。具体的,以VIO算法为例,所有方向上的视觉传感器分别获取到的图像可以作为VIO算法的输入,VIO算法的输出即为可移动平台的位姿信息。这里,由于VIO算法需要同时对所有方向上的视觉传感器分别采集到的图像进行处理,因此虽然准确度较高,但是计算量较大。
可以理解的是,若所述处理器的负载大于所述第一负载阈值,则可以表示处理器的负载较大,此时,可以不通过执行步骤202确定可移动平台的位姿信息。
本实施例中,通过在处理器的负载较小时,根据可移动平台上设置的所有方向的视觉传感器获取到的图像,采用第一算法,确定可移动平台的位姿信息,实现了即使第一算法的算法复杂度较高,但是在处理器的负载小于或等于第一负载阈值的条件下,根据所有方向的视觉传感器获取到的图像,采用第一算法,确定可移动平台的位姿信息时,处理器在负载信息所指示的当前负载状况下的计算量可接受,可以避免处理器资源紧张的问题。
图3为本发明又一实施例提供的视觉定位方法的流程示意图,本实施例在图3所示实施例的基础上,主要描述了步骤101的一种可选的实现方式。如图3所示,本实施例的方法可以包括:
步骤301,根据处理器当前的负载信息,判断所述处理器的负载是否小于或等于第一负载阈值。
本步骤中,所述第一负载阈值可以为预配置的阈值,或者,也可以预定义的阈值,或者还可以为动态指示的阈值等,本发明对此不作限定。
具体的,若所述处理器的负载大于所述第一负载阈值,则执行步骤302。这里,所述处理器的负载大于第一负载阈值,可以表示所述处理器的负载较大。
步骤302,对于所述至少一个目标方向中的部分方向的视觉传感器获取到的图像采用第一算法,对于所述至少一个目标方向中其他方向的视觉传感器获取到的图像采用第二算法,确定所述可移动平台的位姿信息;所述至少一个目标方向为所述所有方向的全部方向。
本步骤中,在处理器的负载较高时,对于上述所有方向中部分方向的视觉传感器获取到的图像采用第一算法,对于所有方向中其他方向(即,所有方向中除采用第一算法的部分方向之外的方向)的视觉传感器获取到的图像采用第二算法,确定可移动平台的位姿信息。其中,所述第一算法可以为算法复杂度较高的算法,所述第二算法为算法复杂度较低的算法,即第二算法的算法复杂度小于第一算法的算法复杂度。
这里,即使第一算法的算法复杂度较高,但是在处理器的负载大于第一负载阈值的条件下,对于所有方向中部分方向的视觉传感器获取到的图像采用第一算法,对于所有方向中其他方向的视觉传感器获取到的图像采用第二算法,确定可移动平台的位姿信息时,处理器在当前的负载信息所指示的当前负载状况下的计算量可接受,可以避免处理器资源紧张的问题。
可选的,第一算法可以为视觉算法中对于视觉传感器采集到的图像与惯性测量单元(IMU,Inertial measurement unit)信息紧耦合的算法,第二算法可以为视觉算法中对于视觉传感器采集到的图像与IMU信息松耦合的算法。进一步可选的,第一算法可以为视觉惯性里程计(VIO,Visual-Inertial Odometry)算法,第二算法可以为视觉里程计(VO,Visual Odometry)算法。
需要说明的是,本发明实施例中对于第一算法和第二算法可以不作限定,任何能够用于根据视觉传感器获取到的图像,确定可移动平台的位姿信息的两个算法中,算法复杂度较高的算法可以认为是第一算法,算法复杂度较低的算法可以认为是第二算法。考虑到可以通过复杂度的增加,提升准确度,可选的,第一算法的准确度可以大于第二算法。
可以理解的是,若所述处理器的负载小于或等于所述第一负载阈值,则可以表示处理器的负载较小,此时,可以不通过执行步骤302确定可移动平台的位姿信息。具体的,若所述处理器的负载小于或等于所述第一负载阈值,则可以通过计算量大于步骤302的方式,确定可移动平台的位姿信息的方式。
可以理解的是,步骤302中,通过降低所有方向中部分方向采用的算法的复杂度,以降低计算量,节省处理器资源,从而避免处理器资源紧张的问题。
需要说明的是,图3中主要描述了通过判断处理器的负载与一个负载阈值(即,第一负载阈值)的大小关系,并根据判断结果得到确定可移动平台的位姿信息的实现方式。可以理解的是,也可以根据实际需要判断处理器的负载与多个不同的负载阈值的大小关系,并根据判断结果得到确定可移动平台的位姿信息的实现方式。
可替换的,若所述处理器的负载大于所述第一负载阈值,则执行步骤A。
步骤A,判断所述处理器的负载是否小于或等于第二负载阈值。
这里,所述第二负载阈值大于所述第一负载阈值。
具体的,若所述处理器的负载小于或等于所述第二负载阈值,则执行步骤302。这里,处理器的负载小于或等于第二负载阈值,可以表示处理器的负载较大。
可选的,所述第二负载阈值可以为预配置的阈值,或者,也可以预定义的阈值,或者还可以为动态指示的阈值等,本发明对此不作限定。可选的,第二负载阈值可以与第一算法的复杂度、所有方向的视觉传感器的个数,以及视觉传感器的类型相关。例如,第一算法的复杂度越大,第二负载阈值可以越小。又例如,所有方向的视觉传感器的个数越大,第二负载阈值可以越小。又例如,视觉传感器的类型为双目视觉传感器的视觉传感器的个数越多,第二负载阈值可以越小。
进一步可选的,若所述处理器的负载大于所述第二负载阈值,则执行步骤B1。这里,处理器的负载大于第二负载阈值,可以表示处理器的负载大(其程度大于负载较大),此时,可以采用较步骤302计算量要小的方式确定可移动平台的位姿信息。
步骤B1、根据至少一个目标方向中部分目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息;所述至少一个目标方向为所述所有方向的部分方向。
这里,在处理器的负载大时,可以根据可移动平台上设置的部分方向的视觉传感器获取到的图像,采用第一算法,确定可移动平台的位姿信息。这里,即使第一算法的算法复杂度较高,但是在处理器的负载大于第二负载阈值的条件下,根据部分方向的视觉传感器获取到的图像,采用第一算法,确定可移动平台的位姿信息时,处理器在当前的负载信息所指示的当前负载状况下的计算量可接受,可以避免处理器资源紧张的问题。
可替换的,若所述处理器的负载大于所述第二负载阈值,则执行步骤B2。
可以理解的是,步骤B1和步骤B2与步骤302相比,通过减少目标方向,减少用于确定可移动平台的位姿信息的图像的数量,以降低计算量,节省处理器资源,从而避免处理器资源紧张的问题。
步骤B2、判断所述处理器的负载是否大于第三负载阈值。
这里,所述第三负载阈值大于所述第二负载阈值。
可选的,若所述处理器的负载小于或等于所述第三负载阈值,则执行步骤B1。这里,处理器的负载小于或等于第三负载阈值,可以表示处理器的负载较大。
可选的,所述第三负载阈值可以为预配置的阈值,或者,也可以预定义的阈值,或者还可以为动态指示的阈值等,本发明对此不作限定。可选的,第三负载阈值可以与第一算法的复杂度、所有方向的视觉传感器的个数,以及视觉传感器的类型相关。例如,第一算法的复杂度越大,第三负载阈值可以越小。又例如,所有方向的视觉传感器的个数越大,第三负载阈值可以越小。又例如,视觉传感器的类型为双目视觉传感器的视觉传感器的个数越多,第三负载阈值可以越小。
进一步可选的,若所述处理器的负载大于所述第三负载阈值,则执行步骤B21或B22。这里,处理器的负载大于第三负载阈值,可以表示处理器的负载很大(其程度大于负载大),此时,可以采用较步骤B1计算量要小的方式(即,步骤B21或步骤B22)确定可移动平台的位姿信息。
步骤B21、根据至少一个目标方向中第一方向的双目视觉传感器中单目获得的图像,以及所述至少一个目标方向中其他方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息;所述目标方向为所述所有方向的部分方向。
这里,在处理器的负载很大时,可以根据所有目标方向中第一方向双目视觉传感器中单目获得的图像,以及所有目标方向中其他方向(即,所有目标方向中除第一方向之外的其他方向)的视觉传感器获取到的图像,采用第一算法,确定可移动平台的位姿信息。这里,即使第一算法的算法复杂度较高,但是在处理器的负载大于第三负载阈值的条件下,根据所有目标方向中第一方向双目视觉传感器中单目获得的图像,以及所有目标方向中其他方向的视觉传感器获取到的图像,采用第一算法,确定可移动平台的位姿信息时,处理器在当前的负载信息所指示的当前负载状况下的计算量可接受,可以避免处理器资源紧张的问题。
需要说明的是,所述第一方向具体可以为所有目标方向中,视觉传感器为双目视觉传感器的一个或多个方向。
考虑到可移动平台在实现特定功能时,需要基于特定方向的视觉传感器获取到的图像进行处理。因此,可选的,所述至少一个目标方向的视觉传感器包括:用于实现特定功能的第二方向的视觉传感器,且所述特定功能开启。
可选的,为了提供特定功能的准确度,所述第二方向和所述第一方向可以为不同方向。也就是说,在所述第二方向的视觉传感器为双目视觉传感器的场景下,可以根据第二方向的双目视觉传感器中双目获得的图像,确定可移动平台的位姿信息。
需要说明的是,对于特定功能以及第二方向,本发明可以不作限定。进一步可选的,所述特定功能为侧向避障功能,所述第二方向为所述可移动平台的侧向。
可以理解的是,步骤B21和步骤B2相比,通过双目视觉传感器降为单目视觉传感器,减少用于确定可移动平台的位姿信息的图像的数量,以降低计算量,节省处理器资源,从而避免处理器资源紧张的问题。
步骤B22、对于所述至少一个目标方向中的部分方向的视觉传感器获取到的图像采用第一算法,对于所述至少一个目标方向中其他方向的视觉传感器获取到的图像采用第二算法,确定所述可移动平台的位姿信息;所述至少一个目标方向为所述所有方向的部分方向。
这里,在处理器的负载很大时,对于所有目标方向中部分方向的视觉传感器获取到的图像采用第一算法,对于所有目标方向中其他方向的视觉传感器获取到的图像采用第二算法,确定可移动平台的位姿信息。其中,所述第一算法可以为算法复杂度较高的算法,所述第二算法为算法复杂度较低的算法,即第二算法的算法复杂度小于第一算法的算法复杂度。需要说明的是,所有目标方向即所述至少一个目标方向,其为上述所有方向中的部分方向。
这里,即使第一算法的算法复杂度较高,但是在处理器的负载大于第三负载阈值的条件下,对于所有目标方向中部分方向的视觉传感器获取到的图像采用第一算法,对于所有目标方向中其他方向的视觉传感器获取到的图像采用第二算法,确定可移动平台的位姿信息时,处理器在当前的负载信息所指示的当前负载状况下的计算量可接受,可以避免处理器资源紧张的问题。
考虑到可移动平台在实现特定功能时,需要基于特定方向的视觉传感器获取到的图像进行处理。因此,可选的,所述至少一个目标方向的视觉传感器包括:用于实现特定功能的第二方向的视觉传感器,且所述特定功能开启。
可选的,在第一算法的准确度大于第二算法时,为了提供特定功能的准确度,所述第二方向的视觉传感器获取到的图像可以采用第一算法。
需要说明的是,对于特定功能以及第二方向,本发明可以不作限定。进可选的,所述特定功能可以为侧向避障功能,所述第二方向可以为所述可移动平台的侧向,例如第二方向可以包括可移动平台的左侧和/或右侧。
可以理解的是,步骤B22和步骤B2相比,通过降低目标方向中部分方向的视觉传感器的图像所采用的算法的复杂度,降低计算量,从而节省处理器资源。
需要说明的是,若所述处理器的负载小于或等于所述第一负载阈值,则可以表示处理器的负载较大,此时,可以不通过执行步骤302确定可移动平台的位姿信息。可选的,图3所示实施例可以与图2所示实施例结合,即在判断所述处理器的负载是否小于或等于第一负载阈值之后,若所述处理器的负载小于或等于所述第一负载阈值,则执行步骤202,若所述处理器的负载大于所述第一负载阈值,则执行步骤302。
本实施例中,通过若所述处理器的负载小于或等于所述第一负载阈值,则对于所述所有方向中的部分方向的视觉传感器获取到的图像采用第一算法,对于所述所有方向中其他方向的视觉传感器获取到的图像采用第二算法,确定所述可移动平台的位姿信息,实现了通过降低所有方向中部分方向采用的算法的复杂度,以降低计算量,节省处理器资源,从而避免处理器资源紧张的问题。
图4为本发明又一实施例提供的视觉定位方法的流程示意图,本实施例在图1所示实施例的基础上,主要描述了步骤101的一种可选的实现方式。如图4所示,本实施例的方法可以包括:
步骤401,根据处理器当前的负载信息,判断所述处理器的负载是否小于或等于第一负载阈值。
本步骤中,若所述处理器的负载大于所述第一负载阈值,则执行步骤402。这里,所述处理器的负载大于第一负载阈值,可以表示所述处理器的负载较大。
步骤402,根据至少一个目标方向中第一方向的双目视觉传感器中单目获得的图像,以及所述至少一个目标方向中其他方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息;所述目标方向为所述所有方向的全部方向。
本步骤中,所述第一方向的视觉传感器为双目视觉传感器。需要说明的是,所述第一方向具体可以为所有目标方向中,视觉传感器为双目视觉传感器的一个或多个方向。
在处理器的负载较大时,可以根据所有方向中第一方向双目视觉传感器中单目获得的图像,以及所有方向中其他方向(即,所有方向中除第一方向之外的其他方向)的视觉传感器获取到的图像,采用第一算法,确定可移动平台的位姿信息。这里,即使第一算法的算法复杂度较高,但是在处理器的负载大于第一负载阈值的条件下,根据所有方向中第一方向双目视觉传感器中单目获得的图像,以及所有方向中其他方向的视觉传感器获取到的图像,采用第一算法,确定可移动平台的位姿信息时,处理器在当前的负载信息所指示的当前负载状况下的计算量可接受,可以避免处理器资源紧张的问题。
可以理解的是,若所述处理器的负载小于或等于所述第一负载阈值,则可以表示处理器的负载较小,此时,可以不通过执行步骤402确定可移动平台的位姿信息。具体的,若所述处理器的负载小于或等于所述第一负载阈值,则可以通过计算量大于步骤402的方式,确定可移动平台的位姿信息的方式。
可以理解的是,步骤402通过双目视觉传感器降为单目视觉传感器,减少用于确定可移动平台的位姿信息的图像的数量,以降低计算量,节省处理器资源,从而避免处理器资源紧张的问题。
需要说明的是,图4中主要描述了通过判断处理器的负载与一个负载阈值(即,第一负载阈值)的大小关系,并根据判断结果得到确定可移动平台的位姿信息的实现方式。可以理解的是,也可以根据实际需要判断处理器的负载与多个不同的负载阈值的大小关系,并根据判断结果得到确定可移动平台的位姿信息的实现方式。
与图3所示实施例类似,可替换的,若所述处理器的负载大于所述第一负载阈值,则执行步骤C。
步骤C,判断所述处理器的负载是否小于或等于第二负载阈值。
这里,所述第二负载阈值大于所述第一负载阈值。
具体的,若所述处理器的负载小于或等于所述第二负载阈值,则执行步骤402。这里,处理器的负载小于或等于第二负载阈值,可以表示处理器的负载较大。需要说明的是,关于第二负载阈值的相关说明可以参见图3所示实施例的相关描述,在此不再赘述。
进一步可选的,若所述处理器的负载大于所述第二负载阈值,则执行步骤D1。这里,处理器的负载大于第二负载阈值,可以表示处理器的负载大(其程度大于负载较大),此时,可以采用较步骤402计算量要小的方式确定可移动平台的位姿信息。
D1、根据至少一个目标方向中部分目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息;所述至少一个目标方向为所述所有方向的部分方向。
需要说明的是,步骤D1与步骤B1类似,在此不再赘述。
可替换的,若所述处理器的负载小于或等于所述第二负载阈值,则执行步骤D2。
可以理解的是,步骤D1和步骤D2与步骤402相比,通过减少目标方向,减少用于确定可移动平台的位姿信息的图像的数量,以降低计算量,节省处理器资源,避免处理器资源紧张的问题。
步骤D2、判断所述处理器的负载是否大于第三负载阈值。
这里,所述第三负载阈值大于所述第二负载阈值。
可选的,若所述处理器的负载小于或等于所述第三负载阈值,则执行步骤C1。这里,处理器的负载小于或等于第三负载阈值,可以表示处理器的负载较大。
需要说明的是,关于第三负载阈值的相关说明可以参见图3所示实施例的相关描述,在此不再赘述。
进一步可选的,若所述处理器的负载大于所述第三负载阈值,则执行如下步骤D21或步骤D22。这里,处理器的负载大于第三负载阈值,可以表示处理器的负载很大(其程度大于负载大),此时,可以采用较步骤C1计算量要小的方式(即,步骤D21或步骤D22)确定可移动平台的位姿信息。
D21、根据至少一个目标方向中第一方向的双目视觉传感器中单目获得的图像,以及所述至少一个目标方向中其他方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息;所述目标方向为所述所有方向的部分方向。
步骤D22、对于所述至少一个目标方向中的部分方向的视觉传感器获取到的图像采用第一算法,对于所述至少一个目标方向中其他方向的视觉传感器获取到的图像采用第二算法,确定所述可移动平台的位姿信息;所述至少一个目标方向为所述所有方向的部分方向。
需要说明的是,步骤D2与步骤B2类似,步骤D21与步骤B21类似,步骤D22与步骤B22类似,在此不再赘述。
需要说明的是,若所述处理器的负载小于或等于所述第一负载阈值,则可以表示处理器的负载较大,此时,可以不通过执行步骤402确定可移动平台的位姿信息。可选的,图4所示实施例可以与图2所示实施例结合,即在判断所述处理器的负载是否小于或等于第一负载阈值之后,若所述处理器的负载小于或等于所述第一负载阈值,则执行步骤202,若所述处理器的负载大于所述第一负载阈值,则执行步骤402。
本实施例中,通过若所述处理器的负载小于或等于所述第一负载阈值,则根据所有方向中第一方向双目视觉传感器中单目获得的图像,以及所有方向中其他方向的视觉传感器获取到的图像,采用第一算法,确定可移动平台的位姿信息,实现了通过双目视觉传感器降为单目视觉传感器,减少用于确定可移动平台的位姿信息的图像的数量,以降低计算量,节省处理器资源,避免处理器资源紧张的问题。
图5为本发明又一实施例提供的视觉定位方法的流程示意图,本实施例在图1所示实施例的基础上,主要描述了步骤101的一种可选的实现方式。如图5所示,本实施例的方法可以包括:
步骤501,根据处理器当前的负载信息,判断所述处理器的负载是否小于或等于第一负载阈值。
本步骤中,若所述处理器的负载大于所述第一负载阈值,则执行如下步骤502。这里,所述处理器的负载大于第一负载阈值,可以表示所述处理器的负载较大。
步骤502,根据至少一个目标方向中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息;所述至少一个目标方向为所述所有方向的部分方向。
本步骤中,在处理器的负载较高时,可以根据可移动平台上设置的所有方向中部分方向的视觉传感器获取到的图像,采用第一算法,确定可移动平台的位姿信息。这里,即使第一算法的算法复杂度较高,但是在处理器的负载大于第一负载阈值的条件下,根据所有方向中部分方向的视觉传感器获取到的图像,采用第一算法,确定可移动平台的位姿信息时,处理器在当前的负载信息所指示的当前负载状况下的计算量可接受,可以避免处理器资源紧张的问题。
可以理解的是,若所述处理器的负载小于或等于所述第一负载阈值,则可以表示处理器的负载较小,此时,可以不通过执行步骤502确定可移动平台的位姿信息。具体的,若所述处理器的负载小于或等于所述第一负载阈值,则可以通过计算量大于步骤502的方式,确定可移动平台的位姿信息的方式。
可以理解的是,步骤502通过基于所有方向中部分方向的视觉传感器获取到的图像确定可移动平台的位姿信息,减少用于确定可移动平台的位姿信息的图像的数量,以降低计算量,节省处理器资源,从而避免处理器资源紧张的问题。
需要说明的是,图5中主要描述了通过判断处理器的负载与一个负载阈值(即,第一负载阈值)的大小关系,并根据判断结果得到确定可移动平台的位姿信息的实现方式。可以理解的是,也可以根据实际需要判断处理器的负载与多个不同的负载阈值的大小关系,并根据判断结果得到确定可移动平台的位姿信息的实现方式。
与图3所示实施例类似,可替换的,若所述处理器的负载大于所述第一负载阈值,则执行步骤E。
步骤E、判断所述处理器的负载是否小于或等于第三负载阈值。
这里,所述第三负载阈值大于所述第一负载阈值。
具体的,若所述处理器的负载小于或等于所述第三负载阈值,则执行步骤502。这里,处理器的负载小于或等于第三负载阈值,可以表示处理器的负载较大(其程度大于负载较小)。
进一步可选的,若所述处理器的负载大于所述第三负载阈值,则执行步骤F1或F2。这里,处理器的负载大于第三负载阈值,可以表示处理器的负载大(其程度大于负载较大),此时,可以采用较步骤502计算量要小的方式(即,步骤F1或步骤F2)确定可移动平台的位姿信息。
步骤F1、对于所述至少一个目标方向中的部分方向的视觉传感器获取到的图像采用第一算法,对于所述至少一个目标方向中其他方向的视觉传感器获取到的图像采用第二算法,确定所述可移动平台的位姿信息;所述至少一个目标方向为所述所有方向的部分方向。
步骤F2、根据至少一个目标方向中第一方向的双目视觉传感器中单目获得的图像,以及所述至少一个目标方向中其他方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息;所述目标方向为所述所有方向的部分方向。
需要说明的是,步骤F1与步骤B21类似,步骤F2与步骤B22类似,在此不再赘述。
需要说明的是,若所述处理器的负载小于或等于所述第一负载阈值,则可以表示处理器的负载较大,此时,可以不通过执行步骤402确定可移动平台的位姿信息。可选的,图5所示实施例可以与图2所示实施例结合,即在判断所述处理器的负载是否小于或等于第一负载阈值之后,若所述处理器的负载小于或等于所述第一负载阈值,则执行步骤202,若所述处理器的负载大于所述第一负载阈值,则执行步骤502。
本实施例中,通过若所述处理器的负载小于或等于所述第一负载阈值,则根据可移动平台上设置的所有方向中部分方向的视觉传感器获取到的图像,采用第一算法,确定可移动平台的位姿信息,实现了通过基于所有方向中部分方向的视觉传感器获取到的图像确定可移动平台的位姿信息,减少用于确定可移动平台的位姿信息的图像的数量,以降低计算量,节省处理器资源,从而避免处理器资源紧张的问题。
在上述实施例的基础上,考虑到在进行视觉定位时可以固定使用特定方向的视觉传感器获取到的图像,可选的,当所述目标方向为所述可移动平台的所有方向的部分方向时,所述部分方向可以包括第三方向。进一步可选的,考虑到下视一般都是可靠的,所述第三方向为所述可移动平台的下方。
在所述目标方向为所述可移动平台的所有方向的部分方向时,在上述方法实施例的基础上,可选的,还可以包括如下步骤:从多个方向中选择至少一个第四方向作为所述目标方向。其中,所述多个方向可以理解为能够作为所述目标方向的候选方向。
进一步可选的,所述从多个方向中选择至少一个第四方向作为所述目标方向,包括:根据所述多个方向中,各方向的特征点的平均深度以及匹配成功的特征点数目,从所述多个方向中选择至少一个第四方向作为所述目标方向。
可选的,多个方向中各方向的特征点的平均深度,可以满足如下三种情况中的任意一种。
(1)一个方向的最新的关键帧(Key frame)上双目匹配(Stereo Match,区别于帧间匹配Frame Match)成功的点数大于一定阈值,比如100个点,那就使用双目匹配计算的深度,求取特征点的平均深度。
(2)如果不满足(1),该方向的最新的关键帧与前一帧关键帧匹配成功的特征点在最新关键帧上的直方图统计的深度,作为特征点的平均深度。
(3)如果不满足(1)和(2),将该方向的特征点的平均深度赋一个比较大的值,比如500米(m)。这里,将该方向的特征点的平均深度赋一个比较大的值可以认为是将该方向不作为目标方向。
可选的,可以通过三角化(Trianglulation)测量法,确定最新的关键帧与前一帧关键帧匹配成功的特征点(以下可以记为三角化成功的特征点)
可选的,多个方向中各方向匹配成功的特征点数目,具体可以为一个方向的最新的关键帧与前一帧关键帧匹配成功的特征点的数目。
可以理解的是,当深度越小表示距离越近,深度越大表示距离越远时,一个方向的平均深度d0越大,则该方向作为目标方向的概率可以越小。一个方向匹配成功的特征点数目N越多,则该方向作为目标方向的概率可以越大。
因此,可选的,可以基于一个方向的匹配成功的特征点数目与该方向的特征点的平均深度的比值(以下记为G),确定第四方向。
进一步可选的,所述第四方向的匹配成功的特征点数目与第四方向的特征点的平均深度的比值,大于所述多个方向中其他方向的匹配成功的特征点数目与所述其他方向的特征点的平均深度的比值。例如,假设多个方向包括方向1、方向2、方向3和方向4,方向1的匹配成功的特征点数目与方向1的特征点的平均深度的比值为G1,方向2的匹配成功的特征点数目与方向2的特征点的平均深度的比值为G2,方向3的匹配成功的特征点数目与方向3的特征点的平均深度的比值为G3,方向4的匹配成功的特征点数目与方向4的特征点的平均深度的比值为G4,且G1>G2>G3>G4,则第四方向可以包括方向1,或者,第四方向可以包括方向1和方向2。
进一步可选的,为了确保所选择的第四方向足够好,所述第四方向还可以满足如下条件:所述第四方向的匹配成功的特征点数目与第四方向的特征点的平均深度的比值大于或等于比值阈值。
可选的,为了减小计算量,节省计算资源,可以在满足一定条件时,触发上述从多个方向中选择至少一个第四方向作为所述目标方向的步骤。
进一步可选的,上述从多个方向中选择至少一个第四方向作为所述目标方向之前,还包括:
判断所述目标方向中是否存在匹配成功的特征点数目与特征点的平均深度的比值小于或等于比值阈值的第四方向;
若所述目标方向中存在匹配成功的特征点数目与特征点的平均深度的比值小于或等于比值阈值的第四方向,则将所述第四方向从所述目标方向中去除,并触发执行所述从多个方向中选择至少一个第四方向作为所述目标方向的步骤。
以多个方向包括前方、后方、左方和右方为例,进行如下举例。
首先,对前方、后方、左方和右方分别计算G,并依次从高到低排列。假设对前方计算G得到前方的G值等于30,对右方计算G得到右方的G值等于28,对后方计算G得到后方的G值等于20,对左方计算G得到左方的G值等于16,则可以确定第四方向包括前方和后方。
然后,在飞行过程中,假设前方没有匹配点,或是离场景很远了,那么其G值就会逐渐降低。当低于一定值,比如阈值Gth=8时,下一次计算就不会使用前方的视觉传感器获取到的图像更新状态量,而依次尝试计算后方和左方的G值(这里,只计算前方、后方、左方的G值,而不参与更新状态量,计算量就比较小),重新根据后方和左方的G值选取出第四方向。
可选的,上述根据所述至少一个目标方向中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息,具体可以包括:
对于至少一个目标方向中各目标方向的视觉传感器获取到的图像,基于最小化第一算法残差的方式,确定所述可移动平台的位姿信息。
另外,根据视觉传感器采集到的图像,采用算法(例如,第一算法或第二算法)确定可移动平台的信息时,通常需要对图像进行特征点提取,获得图像的特征点,并进一步的基于获取到的特征点进行处理。需要说明的是,为了减小计算量,输入算法的图像通常为视觉传感器获得的关键帧。
以下,以第一算法为VIO算法为例,对于VIO算法残差进行如下说明:
根据位置转换关系,对于空间中的一个三维点Pf,有如下:
其中,表示某一个特征点(feature point)在相机(camera)坐标系下的三维位置,Rcw表示世界(world)坐标系到相机坐标系的旋转关系,表示该特征点在世界坐标系下的三维位置,表示相机在世界坐标系下的三维位置。标识的右上角标识是在以哪个坐标系为基准。f表示特征点,w表示世界坐标,c表示相机或是相机坐标系,i表示惯性测量单元(或是机身重心坐标系。Rcw表示世界坐标系到相机坐标系的旋转变换。
由于
所以
那么,这里就有如下五个变量:
Ric是相机到机身重心的旋转变换,由安装位置结构决定;
Rwi是无人机机身坐标系到世界坐标系的旋转变换,由无人机当前的姿态决定;
Pi w是无人机在到世界坐标系下的三维位置,由无人机当前的位置决定;
进一步的:
其中,pf表示图像上的二维点。
上面整个过程描述的是如何从一个空间中的三维点最终映射到某个相机中二维点的过程,这是通过针孔模型(物理模型)数学推导出来的理论位置,即预测的结果,而实际观测还有个二维点(例如,卡纳德-卢卡斯-托马西特征***(KLT,Kanade–Lucas–Tomasi feature tracker)算法匹配上的点),即观测值。
(u,v)T是KLT算法匹配得到的点(视觉传感器为单目时,根据点在前一张图像的位置,找出在下一张图像的位置;视觉传感器为双目时,可以根据点在一目图像的位置,找出在另一目图像的位置),(u0,v0)T是光心,与焦距f一起称为相机内参,是每个相机固有的属性参数,一般不会变化,出厂参数得到。
重投影误差error记为:
这里,就是要最优化上面五个变量,让重投影误差最小化。
进一步的,可以将此写成增量形式,以令残差residual表示:
写成矩阵形式:
同理可以得到residualy。
但是,这里我们并不关心特征点在世界坐标系下的位置,我们通过边缘化(Marginalization)去除是现有方法,得到新的残差记为r(可以理解为VIO算法中对于一个视觉传感器获得图像的残差),写成矩阵形式
那么Rwi是IMU到世界坐标系的旋转变换。
需要说明的是,上式得到新的残差r的公式是单目的公式。如果视觉传感器是双目视觉传感器,且只使用单目获得的图像,则可以只用左目获得的图像。如果视觉传感器是双目视觉传感器,且双目获得的图像都用,那么残差r可以写成如下公式2。
由公式(2)和公式(1)对比可以看出,双目相比单目需要加入左右目的旋转状态量ΔRlr以及位移状态量此时p-pf是在右目上的观测,所以还需要多做一次KLT,即左右目的立体匹配(stereo match)。
当VIO算法输入多个视觉传感器获得的图像时,其残差R可以如下公式(3)所示。
需要说明的是,公式(3)中以视觉传感器的个数为5为例,r1、r2、r3、r4、r5分别表示VIO算法中对于5个视觉传感器获得图像的分别的残差,具体可以通过如上公式(1)或公式(2)表示。
以所述第一算法为VIO算法,对于目标方向包括方向1、方向2、方向3、方向4和方向5,且各目标方向的视觉传感器的个数为1为例,上述对于至少一个目标方向中各目标方向的视觉传感器获取到的图像,基于最小化第一算法残差的方式,确定所述可移动平台的位姿信息,具体可以包括:基于最小化公式(3)所示的残差的方式,确定可移动平台的位姿信息。
具体的,基于最小化公式(3)所示的残差的方式,可以得到上述五个变量的值,进一步的,可以将该五个变量的值与观测值结合之后,得到最终的位姿信息。
基于最终的位置,再进一步的,可以得到相机的位姿。
以下,以第二算法为VO算法,且VO算法中使用透视n点(PnP,Perspective-n-Point)算法得到相机位姿为例,对于VO算法残差进行如下说明:
PnP算法是通过一系列世界坐标系(World Coordinates)的三维点以及图像中对应的像素坐标系(Pixel Coordinates)二维点,估算相机姿态。
αx=fmx,αy=fmy,f为焦距(focal length),mx为x方向上,单位距离的像素数(scale factors),my为y方向上,单位距离的像素数。γ为x、y轴之间的畸变参数(skewparameters)。u0,v0为光心位置(principal point)。
这里,矩阵R、T就是我们要求的。其中,R表示旋转矩阵(Rotation Matrix),T平移向量(Translation Vector),[R|T]表示的是相机(Camera)与世界坐标系(WorldCoordinates)中三维点的旋转、位移关系。
假设,C1为一个相机在时刻1的相机位姿,C2为该相机在时刻2的相机位姿,C1下估计的旋转矩阵为R1,平移向量为T1,C1下获取图像中与C2下获取图像匹配的二维点为p1,C1下获取图像中与C2下获取图像匹配的三维点为P1,C2对应的旋转矩阵为R2,平移向量为T2,C2下获取图像中与C1下获取图像匹配的二维点为p2,C2下获取图像中与C1下获取图像匹配的三维点为P2,以世界坐标系为基准C2到C1的旋转矩阵为R12,以C1为基准C2到C1的平移向量为则:
需要说明的是,R1、R2、P1和P2可以表示名义值(nominal)。
R1对应的真值(true)Rt1与R1的关系满足:Rt1=R1(I+[Δθ1]x)=R1ΔR1,其中,I为单位矩阵,x表示叉乘运算。
P1对应的真值(true)Pt1与P1的关系满足:Pt1=P1+ΔP1。
R2对应的真值(true)Rt2与R2的关系满足:Rt2=R2(I+[Δθ2]x)=R2ΔR2,其中,I为单位矩阵,x表示叉乘运算。
P2对应的真值(true)Pt2与P2的关系满足:Pt2=P2+ΔP2
则,R12=(Rt1)TRt2=[R1(I+[Δθ1]x)]T[R2(I+[Δθ2]x)]
整理之后,得到如下公式(4)
可选的,上述对于所述至少一个目标方向中的部分方向的视觉传感器获取到的图像采用第一算法,对于所述至少一个目标方向中其他方向的视觉传感器获取到的图像采用第二算法,确定所述可移动平台的位姿信息,具体可以包括:
对于所述部分方向的视觉传感器获取到的图像,基于最小化第一算法残差的方式,并且对于所述其他方向的视觉传感器获取到的图像,基于最小化第二算法残差的方式,确定所述可移动平台的位姿信息。
以所述第一算法为VIO算法、所述第二算法为VO算法,对于方向1和方向2的视觉传感器获取到的图像采用第一算法,对于方向3和方向4的视觉传感器采用第二算法,确定可移动平台的位姿信息,每个方向视觉传感器的个数均为1个为例,上述对于所述至少一个目标方向中的部分方向的视觉传感器获取到的图像采用第一算法,对于所述至少一个目标方向中其他方向的视觉传感器获取到的图像采用第二算法,确定所述可移动平台的位姿信息,具体可以包括:采用基于如下公式(5)所示残差r的方式,确定可移动平台的位姿信息。
其中,r1表示VIO算法中对于方向1视觉传感器双目获得图像的残差,具体残差计算方式可以参见公式(2)或公式(3);r2表示VIO算法中对于方向2视觉传感器双目获得图像的残差,具体残差计算方式可以参见公式(2)或公式(3);r3表示VO算法中对于方向3视觉传感器双目获得图像的残差,具体残差计算方式可以参见公式(4);r4表示VO算法中对于方向4视觉传感器单目获得图像的残差,具体残差计算方式可以参见公式(4)。
具体的,基于最小化公式(5)所示的残差的方式,可以得到上述状态量的值,进一步的,可以将得到的上述状态量的值与观测值结合之后,得到最终的位姿信息。可选的,状态量具体可以包括:ΔRic、ΔRwi、ΔPi w、ΔP、Δθ1和ΔP2。
以将处理器的负载通过两个负载阈值分为三个等级,且特定功能为侧向避障功能,两个阈值分别为60%和80%,可移动平台包括前方、后方、下方、左侧和右侧5个方向的视觉传感器,且前方、后方和下方的视觉传感器均为双目视觉传感器,左侧和右侧的视觉传感器为单目视觉传感器为例,上述根据处理器的负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器,根据至少一个目标方向中各目标方向的视觉传感器获取到的图像,采用第一算法,确定可移动平台的位姿信息具体可以包括:
情况1、在处理器的负载低,例如小于60%时,根据前方、后方、下方、左侧和右侧5个方向的视觉传感器获得的图像,采用VIO算法,确定可移动平台的位姿信息,且对于前方、后方和下方的视觉传感器均使用双目获得的图像。
具体的,可以基于最小化VIO算法残差的方式,确定可移动平台的位姿信息。这里,VIO算法残差r可以如下公式(6)所示。
其中,s表示双目(stereo),m表示单目(monocular);rdown,s表示VIO算法中对于下方视觉传感器双目获得图像的残差,具体残差计算方式可以参见公式(2);rfront,s表示VIO算法中对于前方视觉传感器双目获得图像的残差,具体残差计算方式可以参见公式(2);rrear,s表示VIO算法中对于后方视觉传感器双目获得图像的残差,具体残差计算方式可以参见公式(2);rleft,m表示VIO算法中对于左方视觉传感器单目获得图像的残差,具体残差计算方式可以参见公式(1);rright,m表示VIO算法中对于右方视觉传感器单目获得图像的残差,具体残差计算方式可以参见公式(1)。
情况2、在处理器的负载中等,例如60%~80%,且侧向避障功能开启时,对于下方、左方和右方的视觉传感器获取到的图像采用第一算法,对于前方和后方的视觉传感器获取到的图像采用第二算法,确定所述可移动平台的位姿信息,且对于前方、后方和下方的视觉传感器均使用双目获得的图像。
具体的,可以基于最小化VIO算法和VO算法残差的方式,确定可移动平台的位姿信息。这里,VIO算法和VO算法残差r可以如下公式(7)所示。
其中,s表示双目,m表示单目;rdown,s表示VIO算法中对于下方视觉传感器双目获得图像的残差,具体残差计算方式可以参见公式(2);rfront,PnP表示VO算法中对于前方视觉传感器双目获得图像的残差,具体残差计算方式可以参见公式(4);rrear,PnP表示VO算法中对于后方视觉传感器双目获得图像的残差,具体残差计算方式可以参见公式(4);rleft,m表示VIO算法中对于左方视觉传感器单目获得图像的残差,具体残差计算方式可以参见公式(1);rright,m表示VIO算法中对于右方视觉传感器单目获得图像的残差,具体残差计算方式可以参见公式(1)。
情况3、在处理器的负载中等,例如60%~80%,且侧向避障功能关闭时,根据前方、后方和下方3个方向的视觉传感器获得的图像,采用VIO算法,确定可移动平台的位姿信息,且对于前方、后方和下方的视觉传感器均使用双目获得的图像。
具体的,可以基于最小化VIO算法残差的方式,确定可移动平台的位姿信息。这里,VIO算法残差r可以如下公式(8)所示。
其中,s表示双目(stereo),m表示单目(monocular);rdown,s表示VIO算法中对于下方视觉传感器双目获得图像的残差,具体残差计算方式可以参见公式(2);rfront,s表示VIO算法中对于前方视觉传感器双目获得图像的残差,具体残差计算方式可以参见公式(2);rrear,s表示VIO算法中对于后方视觉传感器双目获得图像的残差,具体残差计算方式可以参见公式(2)。
情况4、在处理器的负载高,例如大于80%,且侧向避障功能开启时,根据下方、左方和右方3个方向的视觉传感器获得的图像,采用VIO算法,确定可移动平台的位姿信息,且对于下方的视觉传感器使用双目获得的图像。
具体的,可以基于最小化VIO算法残差的方式,确定可移动平台的位姿信息。这里,VIO算法残差r可以如下公式(9)所示。
其中,s表示双目,m表示单目;rdown,s表示VIO算法中对于下方视觉传感器双目获得图像的残差,具体残差计算方式可以参见公式(2);rleft,m表示VIO算法中对于左方视觉传感器单目获得图像的残差,具体残差计算方式可以参见公式(1);rright,m表示VIO算法中对于右方视觉传感器单目获得图像的残差,具体残差计算方式可以参见公式(1)。
情况5、在处理器的负载高,例如大于80%,且侧向避障功能关闭时,根据从前、后、左、右4个方向中选出的2个方向以及下方3个方向的视觉传感器获得的图像,采用VIO算法,确定可移动平台的位姿信息,且对于下方的视觉传感器使用双目获得的图像,选出的两个方向的视觉传感器均使用单目获得的图像。
具体的,可以基于最小化VIO算法残差的方式,确定可移动平台的位姿信息。这里,VIO算法残差r可以如下公式(10)所示。
其中,s表示双目,m表示单目;rdown,s表示VIO算法中对于下方视觉传感器双目获得图像的残差,具体残差计算方式可以参见公式(2);r1,m表示VIO算法中对于选出的2个方向中一个方向的视觉传感器单目获得图像的残差,具体残差计算方式可以参见公式(1);r2,m表示VIO算法中对于选出的2个方向中另一个方向的视觉传感器单目获得图像的残差,具体残差计算方式可以参见公式(1)。
本发明实施例中还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有程序指令,所述程序执行时可包括如上述各方法实施例中的视觉定位方法的部分或全部步骤。
本发明实施例提供一种计算机程序,当所述计算机程序被计算机执行时,用于实现上述任一方法实施例中的视觉定位方法。
图6本发明一实施例提供的视觉定位装置的结构示意图,如图6所示,本实施例的视觉定位装置600可以包括:存储器601和处理器602;上述存储器601和处理器602可以通过总线连接。存储器601可以包括只读存储器和随机存取存储器,并向处理器602提供指令和数据。存储器601的一部分还可以包括非易失性随机存取存储器。
所述存储器601,用于存储程序代码。
所述处理器602,调用所述程序代码,当程序代码被执行时,用于执行以下操作:
获取处理器602当前的负载信息;
根据所述负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器;
根据所述至少一个目标方向中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息。
在一种可能的实现中,所述处理器602用于根据所述负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器,具体包括:
根据所述处理器602的负载信息,判断所述处理器602的负载是否小于或等于第一负载阈值;
若所述处理器602的负载小于或等于所述第一负载阈值,则所述目标方向为所述所有方向的全部方向。
在一种可能的实现中,所述处理器602用于根据所述负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器,具体包括:
根据所述处理器602的负载信息,判断所述处理器602的负载是否小于或等于第一负载阈值;
若所述处理器602的负载大于所述第一负载阈值,则所述目标方向为所述所有方向的全部方向;
所述至少一个目标方向的数量为多个;
所述处理器602用于根据所述至少一个目标方向视觉传感器中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息,具体包括:
对于所述至少一个目标方向中的部分方向的视觉传感器获取到的图像采用第一算法,对于所述至少一个目标方向中其他方向的视觉传感器获取到的图像采用第二算法,确定所述可移动平台的位姿信息,所述第二算法的算法复杂度小于所述第一算法。
在一种可能的实现中,所述处理器602用于根据所述负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器,具体包括:
根据所述处理器602的负载信息,判断所述处理器602的负载是否小于或等于第一负载阈值;
若所述处理器602的负载大于所述第一负载阈值,则所述目标方向为所述所有方向的全部方向;
所述至少一个目标方向中第一方向的视觉传感器为双目视觉传感器;
所述处理器602用于根据所述至少一个目标方向中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息,具体包括:
根据所述第一方向的双目视觉传感器中单目获得的图像,以及所述至少一个目标方向中其他方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息。
在一种可能的实现中,所述处理器602用于若所述处理器602的负载大于所述第一负载阈值,则所述目标方向为所述所有方向的全部方向,具体包括:
若所述处理器602的负载大于所述第一负载阈值,则判断所述处理器602的负载是否小于或等于第二负载阈值;所述第二负载阈值大于所述第一负载阈值;
若所述处理器602的负载小于或等于所述第二负载阈值,则所述目标方向为所述所有方向的全部方向。
在一种可能的实现中,所述处理器602还用于:
若所述处理器602的负载大于所述第二负载阈值,则所述目标方向为所述所有方向的部分方向。
在一种可能的实现中,所述处理器602用于根据处理器602的负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器,具体包括:
根据所述处理器602的负载信息,判断所述处理器602的负载是否小于或等于第一负载阈值;
若所述处理器602的负载大于所述第一负载阈值,则所述目标方向为所述所有方向的部分方向。
在一种可能的实现中,所述处理器602用于根据所述至少一个目标方向视觉传感器中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息,具体包括:
判断所述处理器602的负载是否大于第三负载阈值;所述第三负载阈值大于所述第一负载阈值;
若所述处理器602的负载大于所述第三负载阈值,则对于所述至少一个目标方向中的部分方向的视觉传感器获取到的图像采用第一算法,对于所述至少一个目标方向中其他方向的视觉传感器获取到的图像采用第二算法,确定所述可移动平台的位姿信息;所述第二算法的算法复杂度小于所述第一算法
其中,所述至少一个目标方向的数量为多个。
在一种可能的实现中,所述至少一个目标方向的视觉传感器包括:用于实现特定功能的第二方向的视觉传感器,且所述特定功能开启。
在一种可能的实现中,所述第二方向的视觉传感器获取到的图像采用第一算法。
在一种可能的实现中,所述处理器602用于根据所述至少一个目标方向视觉传感器中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息,具体包括:
判断所述处理器602的负载是否大于第三负载阈值;所述第三负载阈值大于所述第一负载阈值;
若所述处理器602的负载大于所述第三负载阈值,则根据第一方向的双目视觉传感器中单目获得的图像,以及所述至少一个目标方向中其他方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息;
所述至少一个目标方向中所述第一方向的视觉传感器为双目视觉传感器。
在一种可能的实现中,所述至少一个目标方向的视觉传感器包括:用于实现特定功能的第二方向的视觉传感器,且所述特定功能开启。
在一种可能的实现中,所述第二方向和所述第一方向为不同方向。
在一种可能的实现中,所述特定功能为侧向避障功能,所述第二方向为所述可移动平台的侧向。
在一种可能的实现中,所述处理器602用于对于所述至少一个目标方向中的部分方向的视觉传感器获取到的图像采用第一算法,对于所述至少一个目标方向中其他方向的视觉传感器获取到的图像采用第二算法,确定所述可移动平台的位姿信息,具体包括:
对于所述部分方向的视觉传感器获取到的图像,基于最小化第一算法残差的方式,并且对于所述其他方向的视觉传感器获取到的图像,基于最小化第二算法残差的方式,确定所述可移动平台的位姿信息。
在一种可能的实现中,所述部分方向包括第三方向。
在一种可能的实现中,所述第三方向为所述可移动平台的下方。
在一种可能的实现中,所述处理器602还用于:从多个方向中选择至少一个第四方向作为所述目标方向。
在一种可能的实现中,所述处理器602用于从多个方向中选择至少一个第四方向作为所述目标方向,具体包括:
根据所述多个方向中,各方向的特征点的平均深度以及匹配成功的特征点数目,从所述多个方向中选择至少一个第四方向作为所述目标方向。
在一种可能的实现中,所述第四方向匹配成功的特征点数目与所述第四方向的特征点的平均深度的比值,大于所述多个方向中其他方向匹配成功的特征点数目与所述其他方向的特征点的平均深度的比值。
在一种可能的实现中,所述处理器602还用于:
判断所述目标方向中是否存在匹配成功的特征点数目与所述第四方向的特征点的平均深度的比值小于或等于比值阈值的第四方向;
若所述目标方向中存在匹配成功的特征点数目与所述第四方向的特征点的平均深度的比值小于或等于比值阈值的第四方向,则将所述第四方向从所述目标方向中去除,并触发执行所述从多个方向中选择至少一个第四方向作为所述目标方向的步骤。
在一种可能的实现中,所述第一算法为视觉惯性里程计VIO算法。
在一种可能的实现中,所述第一算法为视觉惯性里程计VIO算法,所述第二算法为视觉里程计VO算法。
在一种可能的实现中,所述可移动平台为无人机。
本实施例提供的视觉定位装置,可以用于执行本发明上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图7为本发明一实施例提供的视觉定位***的结构示意图,如图7所示,本实施例的视觉定位***700包括:视觉传感器701以及视觉定位装置702。其中,视觉定位装置702可以采用图6所示实施例的结构,其相应地,可以执行上述各方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (51)
1.一种视觉定位方法,应用于可移动平台,其特征在于,包括:
获取处理器当前的负载信息;
根据所述负载信息,确定所述可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器;
根据所述至少一个目标方向中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器,包括:
根据所述负载信息,判断所述处理器的负载是否小于或等于第一负载阈值;
若所述处理器的负载小于或等于所述第一负载阈值,则所述目标方向为所述所有方向的全部方向。
3.根据权利要求1所述的方法,其特征在于,所述根据所述负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器,包括:
根据所述负载信息,判断所述处理器的负载是否小于或等于第一负载阈值;
若所述处理器的负载大于所述第一负载阈值,则所述目标方向为所述所有方向的全部方向;
所述至少一个目标方向的数量为多个;
所述根据所述至少一个目标方向视觉传感器中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息,包括:
对于所述至少一个目标方向中的部分方向的视觉传感器获取到的图像采用第一算法,对于所述至少一个目标方向中其他方向的视觉传感器获取到的图像采用第二算法,确定所述可移动平台的位姿信息,所述第二算法的算法复杂度小于所述第一算法。
4.根据权利要求1所述的方法,其特征在于,所述根据所述负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器,包括:
根据所述负载信息,判断所述处理器的负载是否小于或等于第一负载阈值;
若所述处理器的负载大于所述第一负载阈值,则所述目标方向为所述所有方向的全部方向;
所述至少一个目标方向中第一方向的视觉传感器为双目视觉传感器;
所述根据所述至少一个目标方向中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息,包括:
根据所述第一方向的双目视觉传感器中单目获得的图像,以及所述至少一个目标方向中其他方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息。
5.根据权利要求3或4所述的方法,其特征在于,所述若所述处理器的负载大于所述第一负载阈值,则所述目标方向为所述所有方向的全部方向,包括:
若所述处理器的负载大于所述第一负载阈值,则判断所述处理器的负载是否小于或等于第二负载阈值;所述第二负载阈值大于所述第一负载阈值;
若所述处理器的负载小于或等于所述第二负载阈值,则所述目标方向为所述所有方向的全部方向。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述处理器的负载大于所述第二负载阈值,则所述目标方向为所述所有方向的部分方向。
7.根据权利要求1所述的方法,其特征在于,所述根据处理器的负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器,包括:
根据所述处理器的负载信息,判断所述处理器的负载是否小于或等于第一负载阈值;
若所述处理器的负载大于所述第一负载阈值,则所述目标方向为所述所有方向的部分方向。
8.根据权利要求6或7所述的方法,其特征在于,所述根据所述至少一个目标方向视觉传感器中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息,包括:
判断所述处理器的负载是否大于第三负载阈值;所述第三负载阈值大于所述第一负载阈值;
若所述处理器的负载大于所述第三负载阈值,则对于所述至少一个目标方向中的部分方向的视觉传感器获取到的图像采用第一算法,对于所述至少一个目标方向中其他方向的视觉传感器获取到的图像采用第二算法,确定所述可移动平台的位姿信息;所述第二算法的算法复杂度小于所述第一算法
其中,所述至少一个目标方向的数量为多个。
9.根据权利要求3或8所述的方法,其特征在于,所述至少一个目标方向的视觉传感器包括:用于实现特定功能的第二方向的视觉传感器,且所述特定功能开启。
10.根据权利要求9所述的方法,其特征在于,所述第二方向的视觉传感器获取到的图像采用第一算法。
11.根据权利要求6或7所述的方法,其特征在于,所述根据所述至少一个目标方向视觉传感器中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息,包括:
判断所述处理器的负载是否大于第三负载阈值;所述第三负载阈值大于所述第一负载阈值;
若所述处理器的负载大于所述第三负载阈值,则根据第一方向的双目视觉传感器中单目获得的图像,以及所述至少一个目标方向中其他方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息;
所述至少一个目标方向中所述第一方向的视觉传感器为双目视觉传感器。
12.根据权利要求4或11所述的方法,其特征在于,所述至少一个目标方向的视觉传感器包括:用于实现特定功能的第二方向的视觉传感器,且所述特定功能开启。
13.根据权利要求12所述的方法,其特征在于,所述第二方向和所述第一方向为不同方向。
14.根据权利要求9、10、12、13任一项所述的方法,其特征在于,所述特定功能为侧向避障功能,所述第二方向为所述可移动平台的侧向。
15.根据权利要求3或8所述的方法,其特征在于,所述对于所述至少一个目标方向中的部分方向的视觉传感器获取到的图像采用第一算法,对于所述至少一个目标方向中其他方向的视觉传感器获取到的图像采用第二算法,确定所述可移动平台的位姿信息,包括:
对于所述部分方向的视觉传感器获取到的图像,基于最小化第一算法残差的方式,并且对于所述其他方向的视觉传感器获取到的图像,基于最小化第二算法残差的方式,确定所述可移动平台的位姿信息。
16.根据权利要求6-8、11任一项所述的方法,其特征在于,所述部分方向包括第三方向。
17.根据权利要求16所述的方法,其特征在于,所述第三方向为所述可移动平台的下方。
18.根据权利要求6-8、11、16-17任一项所述的方法,其特征在于,所述方法还包括:从多个方向中选择至少一个第四方向作为所述目标方向。
19.根据权利要求18所述的方法,其特征在于,所述从多个方向中选择至少一个第四方向作为所述目标方向,包括:
根据所述多个方向中,各方向的特征点的平均深度以及匹配成功的特征点数目,从所述多个方向中选择至少一个第四方向作为所述目标方向。
20.根据权利要求19所述的方法,其特征在于,第四方向匹配成功的特征点数目与所述第四方向的特征点的平均深度的比值,大于所述多个方向中其他方向匹配成功的特征点数目与所述其他方向的特征点的平均深度的比值。
21.根据权利要求20所述的方法,其特征在于,所述从多个方向中选择至少一个第四方向作为所述目标方向之前,还包括:
判断所述目标方向中是否存在匹配成功的特征点数目与所述第四方向的特征点的平均深度的比值小于或等于比值阈值的第四方向;
若所述目标方向中存在匹配成功的特征点数目与所述第四方向的特征点的平均深度的比值小于或等于比值阈值的第四方向,则将所述第四方向从所述目标方向中去除,并触发执行所述从多个方向中选择至少一个第四方向作为所述目标方向的步骤。
22.根据权利要求1-21任一项所述的方法,其特征在于,所述第一算法为视觉惯性里程计VIO算法。
23.根据权利要求3、8、15任一项所述的方法,其特征在于,所述第一算法为视觉惯性里程计VIO算法,所述第二算法为视觉里程计VO算法。
24.根据权利要求1-23任一项所述的方法,其特征在于,所述可移动平台为无人机。
25.一种视觉定位装置,其特征在于,包括:处理器和存储器;
所述存储器,用于存储程序代码;
所述处理器,调用所述程序代码,当程序代码被执行时,用于执行以下操作:
获取处理器当前的负载信息;
根据所述负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器;
根据所述至少一个目标方向中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息。
26.根据权利要求25所述的装置,其特征在于,所述处理器用于根据所述负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器,具体包括:
根据所述负载信息,判断所述处理器的负载是否小于或等于第一负载阈值;
若所述处理器的负载小于或等于所述第一负载阈值,则所述目标方向为所述所有方向的全部方向。
27.根据权利要求25所述的装置,其特征在于,所述处理器用于根据所述负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器,具体包括:
根据所述负载信息,判断所述处理器的负载是否小于或等于第一负载阈值;
若所述处理器的负载大于所述第一负载阈值,则所述目标方向为所述所有方向的全部方向;
所述至少一个目标方向的数量为多个;
所述处理器用于根据所述至少一个目标方向视觉传感器中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息,具体包括:
对于所述至少一个目标方向中的部分方向的视觉传感器获取到的图像采用第一算法,对于所述至少一个目标方向中其他方向的视觉传感器获取到的图像采用第二算法,确定所述可移动平台的位姿信息,所述第二算法的算法复杂度小于所述第一算法。
28.根据权利要求25所述的装置,其特征在于,所述处理器用于根据所述负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器,具体包括:
根据所述负载信息,判断所述处理器的负载是否小于或等于第一负载阈值;
若所述处理器的负载大于所述第一负载阈值,则所述目标方向为所述所有方向的全部方向;
所述至少一个目标方向中第一方向的视觉传感器为双目视觉传感器;
所述处理器用于根据所述至少一个目标方向中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息,具体包括:
根据所述第一方向的双目视觉传感器中单目获得的图像,以及所述至少一个目标方向中其他方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息。
29.根据权利要求27或28所述的装置,其特征在于,所述处理器用于若所述处理器的负载大于所述第一负载阈值,则所述目标方向为所述所有方向的全部方向,具体包括:
若所述处理器的负载大于所述第一负载阈值,则判断所述处理器的负载是否小于或等于第二负载阈值;所述第二负载阈值大于所述第一负载阈值;
若所述处理器的负载小于或等于所述第二负载阈值,则所述目标方向为所述所有方向的全部方向。
30.根据权利要求29所述的装置,其特征在于,所述处理器还用于:
若所述处理器的负载大于所述第二负载阈值,则所述目标方向为所述所有方向的部分方向。
31.根据权利要求25所述的装置,其特征在于,所述处理器用于根据所述负载信息,确定可移动平台的所有方向的视觉传感器中至少一个目标方向的视觉传感器,具体包括:
根据所述负载信息,判断所述处理器的负载是否小于或等于第一负载阈值;
若所述处理器的负载大于所述第一负载阈值,则所述目标方向为所述所有方向的部分方向。
32.根据权利要求30或31所述的装置,其特征在于,所述处理器用于根据所述至少一个目标方向视觉传感器中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息,具体包括:
判断所述处理器的负载是否大于第三负载阈值;所述第三负载阈值大于所述第一负载阈值;
若所述处理器的负载大于所述第三负载阈值,则对于所述至少一个目标方向中的部分方向的视觉传感器获取到的图像采用第一算法,对于所述至少一个目标方向中其他方向的视觉传感器获取到的图像采用第二算法,确定所述可移动平台的位姿信息;所述第二算法的算法复杂度小于所述第一算法
其中,所述至少一个目标方向的数量为多个。
33.根据权利要求27或32所述的装置,其特征在于,所述至少一个目标方向的视觉传感器包括:用于实现特定功能的第二方向的视觉传感器,且所述特定功能开启。
34.根据权利要求33所述的装置,其特征在于,所述第二方向的视觉传感器获取到的图像采用第一算法。
35.根据权利要求30或31所述的装置,其特征在于,所述处理器用于根据所述至少一个目标方向视觉传感器中各目标方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息,具体包括:
判断所述处理器的负载是否大于第三负载阈值;所述第三负载阈值大于所述第一负载阈值;
若所述处理器的负载大于所述第三负载阈值,则根据第一方向的双目视觉传感器中单目获得的图像,以及所述至少一个目标方向中其他方向的视觉传感器获取到的图像,采用第一算法,确定所述可移动平台的位姿信息;
所述至少一个目标方向中所述第一方向的视觉传感器为双目视觉传感器。
36.根据权利要求28或35所述的装置,其特征在于,所述至少一个目标方向的视觉传感器包括:用于实现特定功能的第二方向的视觉传感器,且所述特定功能开启。
37.根据权利要求36所述的装置,其特征在于,所述第二方向和所述第一方向为不同方向。
38.根据权利要求33、34、36、37任一项所述的装置,其特征在于,所述特定功能为侧向避障功能,所述第二方向为所述可移动平台的侧向。
39.根据权利要求27或32所述的装置,其特征在于,所述处理器用于对于所述至少一个目标方向中的部分方向的视觉传感器获取到的图像采用第一算法,对于所述至少一个目标方向中其他方向的视觉传感器获取到的图像采用第二算法,确定所述可移动平台的位姿信息,具体包括:
对于所述部分方向的视觉传感器获取到的图像,基于最小化第一算法残差的方式,并且对于所述其他方向的视觉传感器获取到的图像,基于最小化第二算法残差的方式,确定所述可移动平台的位姿信息。
40.根据权利要求30-32、35任一项所述的装置,其特征在于,所述部分方向包括第三方向。
41.根据权利要求40所述的装置,其特征在于,所述第三方向为所述可移动平台的下方。
42.根据权利要求30-32、35、40-41任一项所述的装置,其特征在于,所述处理器还用于:从多个方向中选择至少一个第四方向作为所述目标方向。
43.根据权利要求42所述的装置,其特征在于,所述处理器用于从多个方向中选择至少一个第四方向作为所述目标方向,具体包括:
根据所述多个方向中,各方向的特征点的平均深度以及匹配成功的特征点数目,从所述多个方向中选择至少一个第四方向作为所述目标方向。
44.根据权利要求43所述的装置,其特征在于,所述第四方向匹配成功的特征点数目与所述第四方向的特征点的平均深度的比值,大于所述多个方向中其他方向匹配成功的特征点数目与所述其他方向的特征点的平均深度的比值。
45.根据权利要求44所述的装置,其特征在于,所述处理器还用于:
判断所述目标方向中是否存在匹配成功的特征点数目与所述第四方向的特征点的平均深度的比值小于或等于比值阈值的第四方向;
若所述目标方向中存在匹配成功的特征点数目与所述第四方向的特征点的平均深度的比值小于或等于比值阈值的第四方向,则将所述第四方向从所述目标方向中去除,并触发执行所述从多个方向中选择至少一个第四方向作为所述目标方向的步骤。
46.根据权利要求25-45任一项所述的装置,其特征在于,所述第一算法为视觉惯性里程计VIO算法。
47.根据权利要求27、32、39任一项所述的装置,其特征在于,所述第一算法为视觉惯性里程计VIO算法,所述第二算法为视觉里程计VO算法。
48.根据权利要求25-47任一项所述的装置,其特征在于,所述可移动平台为无人机。
49.一种视觉定位***,其特征在于,包括:视觉传感器以及权利要求25-48任一项所述的视觉定位装置。
50.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包含至少一段代码,所述至少一段代码可由计算机执行,以控制所述计算机执行如权利要求1-24任一项所述的视觉定位方法。
51.一种计算机程序,其特征在于,当所述计算机程序被计算机执行时,用于实现如权利要求1-24任一项所述的视觉定位方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/073147 WO2020150996A1 (zh) | 2019-01-25 | 2019-01-25 | 视觉定位方法、装置及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111356903A true CN111356903A (zh) | 2020-06-30 |
Family
ID=71196660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980005639.XA Pending CN111356903A (zh) | 2019-01-25 | 2019-01-25 | 视觉定位方法、装置及*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111356903A (zh) |
WO (1) | WO2020150996A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112050814A (zh) * | 2020-08-28 | 2020-12-08 | 国网智能科技股份有限公司 | 一种室内变电站无人机视觉导航***及方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1070563A (ja) * | 1996-08-27 | 1998-03-10 | Hitachi Ltd | インターネットワーク装置 |
JP2010076536A (ja) * | 2008-09-25 | 2010-04-08 | Toyota Motor Corp | 電子制御ユニット、インテリジェントセンサ、車両用制御システム、信号サンプリング方法 |
CN101954191A (zh) * | 2010-08-25 | 2011-01-26 | 颜小洋 | 一种智能娱乐移动机器人 |
JP2011123724A (ja) * | 2009-12-11 | 2011-06-23 | Mitsubishi Electric Corp | 情報処理装置及び処理情報縮退方法 |
CN103399789A (zh) * | 2013-08-09 | 2013-11-20 | 香港应用科技研究院有限公司 | 分布式流计算***中可构建的动态过载控制方法 |
CN103901774A (zh) * | 2012-12-28 | 2014-07-02 | 联想(北京)有限公司 | 高效鲁棒的基于多传感器的slam协调方法及*** |
CN104236459A (zh) * | 2014-09-24 | 2014-12-24 | 烟台拓伟机械有限公司 | 六点定位式相对位姿检测*** |
WO2015090248A1 (zh) * | 2013-12-16 | 2015-06-25 | 腾讯科技(深圳)有限公司 | 服务器的过载保护方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7447591B2 (en) * | 2004-10-18 | 2008-11-04 | Trex Enterprises Corp. | Daytime stellar imager for attitude determination |
CN103292807B (zh) * | 2012-03-02 | 2016-04-20 | 江阴中科矿业安全科技有限公司 | 基于单目视觉的钻车姿态测量方法 |
CN202869645U (zh) * | 2012-10-15 | 2013-04-10 | 杭州市特种设备检测院 | 基于Android平台手机的便携式振动测量仪 |
CN203069788U (zh) * | 2012-12-10 | 2013-07-17 | 中山大学 | 浮式及半潜式移动平台方位及三维姿态监测显示*** |
-
2019
- 2019-01-25 CN CN201980005639.XA patent/CN111356903A/zh active Pending
- 2019-01-25 WO PCT/CN2019/073147 patent/WO2020150996A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1070563A (ja) * | 1996-08-27 | 1998-03-10 | Hitachi Ltd | インターネットワーク装置 |
JP2010076536A (ja) * | 2008-09-25 | 2010-04-08 | Toyota Motor Corp | 電子制御ユニット、インテリジェントセンサ、車両用制御システム、信号サンプリング方法 |
JP2011123724A (ja) * | 2009-12-11 | 2011-06-23 | Mitsubishi Electric Corp | 情報処理装置及び処理情報縮退方法 |
CN101954191A (zh) * | 2010-08-25 | 2011-01-26 | 颜小洋 | 一种智能娱乐移动机器人 |
CN103901774A (zh) * | 2012-12-28 | 2014-07-02 | 联想(北京)有限公司 | 高效鲁棒的基于多传感器的slam协调方法及*** |
CN103399789A (zh) * | 2013-08-09 | 2013-11-20 | 香港应用科技研究院有限公司 | 分布式流计算***中可构建的动态过载控制方法 |
WO2015090248A1 (zh) * | 2013-12-16 | 2015-06-25 | 腾讯科技(深圳)有限公司 | 服务器的过载保护方法及装置 |
CN104236459A (zh) * | 2014-09-24 | 2014-12-24 | 烟台拓伟机械有限公司 | 六点定位式相对位姿检测*** |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112050814A (zh) * | 2020-08-28 | 2020-12-08 | 国网智能科技股份有限公司 | 一种室内变电站无人机视觉导航***及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2020150996A1 (zh) | 2020-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220237866A1 (en) | Vehicle environment modeling with cameras | |
CN106940704B (zh) | 一种基于栅格地图的定位方法及装置 | |
CN110363817B (zh) | 目标位姿估计方法、电子设备和介质 | |
WO2020029758A1 (zh) | 对象三维检测及智能驾驶控制的方法、装置、介质及设备 | |
CN111897349B (zh) | 一种基于双目视觉的水下机器人自主避障方法 | |
CN110992356A (zh) | 目标对象检测方法、装置和计算机设备 | |
CN110493488B (zh) | 视频稳像方法、视频稳像装置和计算机可读存储介质 | |
CN111210463A (zh) | 基于特征点辅助匹配的虚拟宽视角视觉里程计方法及*** | |
CN110223222B (zh) | 图像拼接方法、图像拼接装置和计算机可读存储介质 | |
JP2022519194A (ja) | 奥行き推定 | |
CN112837352B (zh) | 基于图像的数据处理方法、装置及设备、汽车、存储介质 | |
CN113052907B (zh) | 一种动态环境移动机器人的定位方法 | |
WO2020221307A1 (zh) | 一种运动物体的追踪方法和装置 | |
JP7345664B2 (ja) | 不確実性を有するランドマーク位置推定のための画像処理システムおよび方法 | |
WO2019191288A1 (en) | Direct sparse visual-inertial odometry using dynamic marginalization | |
CN112097732A (zh) | 一种基于双目相机的三维测距方法、***、设备及可读存储介质 | |
CN113012219A (zh) | 信息处理装置、信息处理方法及计算机可读介质 | |
CN115867940A (zh) | 从3d边界框的单眼深度监督 | |
CN114013449A (zh) | 针对自动驾驶车辆的数据处理方法、装置和自动驾驶车辆 | |
CN113269689A (zh) | 一种基于法向量和高斯权重约束的深度图像补全方法及*** | |
CN112967340A (zh) | 同时定位和地图构建方法、装置、电子设备及存储介质 | |
CN111356903A (zh) | 视觉定位方法、装置及*** | |
CN110175523B (zh) | 一种自移动机器人动物识别与躲避方法及其存储介质 | |
CN114648639B (zh) | 一种目标车辆的检测方法、***及装置 | |
CN111967484A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200630 |
|
WD01 | Invention patent application deemed withdrawn after publication |