CN113034595B - 视觉定位的方法和相关装置、设备、存储介质 - Google Patents
视觉定位的方法和相关装置、设备、存储介质 Download PDFInfo
- Publication number
- CN113034595B CN113034595B CN202110297587.7A CN202110297587A CN113034595B CN 113034595 B CN113034595 B CN 113034595B CN 202110297587 A CN202110297587 A CN 202110297587A CN 113034595 B CN113034595 B CN 113034595B
- Authority
- CN
- China
- Prior art keywords
- image frame
- preset
- positioning
- processing
- condition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000000007 visual effect Effects 0.000 title claims abstract description 161
- 238000000034 method Methods 0.000 title claims abstract description 97
- 230000004807 localization Effects 0.000 title claims description 18
- 238000012545 processing Methods 0.000 claims abstract description 289
- 230000033001 locomotion Effects 0.000 claims description 272
- 238000009825 accumulation Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000010408 sweeping Methods 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 208000012661 Dyskinesia Diseases 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- 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
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20228—Disparity calculation for image-based rendering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本申请公开了一种视觉定位的方法和相关装置、设备、存储介质,视觉定位的方法包括:获取在对目标进行视觉定位过程中采集的当前图像帧;判断当前图像帧是否满足定位条件;在满足定位条件的情况下,利用当前图像帧进行视觉定位处理。上述方案,通过判断当前帧满足定位条件的情况下,才对当前图像帧进行视觉定位处理,从而实现动态调整视觉定位处理频次,使得视觉定位的精度更高。
Description
技术领域
本申请涉及定位导航技术领域,特别是涉及一种视觉定位的方法和相关装置、设备、存储介质。
背景技术
目前,视觉定位方法在计算机视觉、机器人、无人机、三维重建一级增强现实等领域中起着重要的作用。现有的视觉定位方法中采用了固定的处理频次,这种处理方式的弊端包括,若设备处理静止或低速运动的情况下,会带来大量的无用的计算,同时预积分和定位跟踪均存在一定的测量误差,高频率的处理可能进一步放大误差导致视觉定位的精度下降。
发明内容
本申请至少提供一种视觉定位的方法和相关装置、设备、存储介质。
本申请提供了一种视觉定位的方法,包括:获取在对目标进行视觉定位过程中采集的当前图像帧;判断当前图像帧是否满足定位条件;在满足定位条件的情况下,利用当前图像帧进行视觉定位处理。
因此,通过判断当前图像帧满足定位条件之后,再利用当前图像帧进行视觉定位处理,从而实现了动态调整视觉定位处理的频率,相对于固定频率调整视觉定位处理,可减少非必要的视觉定位处理,即减少计算量,提高定位处理的效率,且每次视觉定位处理可能会累积误差,故在满足定位条件下才进行视觉定位,可减少误差累积,提高视觉定位的精度。
其中,视觉定位处理包括图像处理和定位处理;在满足定位条件的情况下,利用当前图像帧进行视觉定位处理,包括:对当前图像帧进行图像处理,得到当前图像帧的处理结果;利用当前图像帧的处理结果进行定位处理;其中,图像处理和定位处理中的至少一个步骤是在满足对应的定位条件的情况下执行。
因此,通过为视觉定位过程的图像处理和/或定位处理设置定位条件,并通过对应定位条件来确定是否需要执行对应的处理步骤,由此实现更精细和灵活的视觉定位处理频率的动态调整,进而,可更精确减少视觉定位的一些非必要处理步骤,且保留执行一些必要处理步骤,在减少计算量的情况下,进一步提高视觉定位的精度。
其中,图像处理是在满足图像处理对应的定位条件的情况下执行,且定位处理按照第一预设频次执行;或者,图像处理按照第二预设频次执行,且定位处理是在满足定位处理对应的定位条件的情况下执行;或者,图像处理是在满足图像处理对应的定位条件的情况下执行,定位处理是在满足定位处理对应的定位条件的情况下执行,其中,图像处理和定位处理分别对应的定位条件相同或者不同。
因此,通过动态调整图像处理与定位处理中至少一个的处理频次,使得可更精确减少定位的一些非必要处理步骤,且保留执行一些必要处理步骤,在减少计算量的情况下,进一步提高定位的精度。
其中,判断当前图像帧是否满足定位条件,包括以下至少一个第一判断步骤:判断当前图像帧与第一历史图像帧之间的运动时间是否满足预设时间要求;判断当前图像帧与第一历史图像帧之间的运动幅度是否满足预设幅度要求,其中,第一历史图像帧为之前进行视觉定位处理的一图像帧;其中,若存在上述第一判断步骤的判断结果为是,则确定满足定位条件。
因此,通过利用运动时间或运动幅度来确定当前图像帧满足定位条件,进而是否进行定位,故定位的调整频率依赖于运动速度和/或运动频率,使得定位的调整频率更合理。
其中,判断当前图像帧与第一历史图像帧之间的运动时间是否满足预设时间要求,包括,包括以下至少一个第二判断步骤:判断运动时间是否大于第一预设时间;在确定目标处于预设运动状态的情况下,判断运动时间是否大于与预设运动状态对应的第二预设时间,其中,第二预设时间小于所第一预设时间,目标的预设运动状态有至少一种,每种预设运动状态对应一第二预设时间;其中,若存在上述第二判断步骤的判断结果为是,则确定满足预设时间要求;和/或,判断当前图像帧与第一历史图像帧之间的运动幅度是否满足预设幅度要求,包括:判断当前图像帧与第一历史图像帧之间的视差是否大于第一预设视差。
因此,通过设置多种运动状态,使得视觉定位方法能够在目标所处多种情况下都能进行准确的判断。且,利用当前图像帧与第一历史图像帧之间的视差来表征运动幅度,使得判断结果更准确。
其中,定位条件包括多个,不同的定位条件用于判断是否对当前图像帧进行定位的不同处理步骤,其中,每个定位条件中的第一预设时间、第二预设时间和第一预设视差中的至少一个不同;和/或,当前图像帧与第一历史图像帧之间的视差:当前图像帧与第一历史图像帧中若干匹配的二维点对之间的第一平均视差,或者,当前图像帧的若干预测点与第一历史图像帧的若干二维点之间的第二平均视差,其中,若干预测点为第二历史图像帧映射的跟踪三维点在当前图像帧上的投影点,若干二维点为跟踪三维点在第一历史图像帧对应的二维点。
因此,通过设置多个定位条件,使得能够多次对当前图像帧进行判断,使得能够在一定程度上降低对图像帧的视觉定位处理频次,增加视觉定位处理的精度。
其中,在预测点的数量小于第一数量的情况下,第二平均视差为第二预设视差,其中,第二预设视差大于第一预设视差。
因此,在预测点的数量小于第一数量的情况下,表明目标的运动幅度过大,若不对其进行视觉定位处理,则可能导致后续定位失败,即将第一平均视差设置为大于第一预设视差,使得当前图像帧能够参与视觉定位处理,提高视觉定位处理的稳定性。
其中,预设运动状态包括两种第一运动状态,其中,每种第一运动状态均大于预设速度,且第一种第一运动状态的运动速度小于第二种第一运动状态的运动速度;方法还包括以下至少一个步骤:在判断当前图像帧是否满足定位条件之前,若存在第二数量图像帧待进行图像处理,则增大第一预设视差;若确定目标处于第一种第一运动状态,则减小第一预设视差;若确定目标处于第二种第一运动状态,则增大第一预设视差。
因此,通过在判断当前图像帧是否满足定位条件之前根据当前图像帧的运动状态或设备的计算力,即是否存在第二数量图像帧待进行图像处理,灵活调整第一预设视差,以提高定位的精度和稳定性。
其中,预设运动状态包括至少一种第一运动状态,每种第一运动状态的运动速度均大于预设速度,且不同第一运动状态的运动速度不同;确定目标处于第一运动状态,包括以下至少一个步骤:确定当前图像帧与第一历史图像帧之间的视差大于第三预设视差;确定第二历史图像帧映射的跟踪三维点的数量小于第三数量;确定跟踪三维点在各第二历史图像帧中的平均重投影误差大于预设误差。
因此,通过当前图像帧与第一历史图像帧之间的视差或跟踪三维点的数量以及重投影误差确定目标的运动状态,使得运动状态的确定更加准确。
其中,不同第一运动状态对应的第三预设视差、第三数量和预设误差不同,其中,第一运动状态的运动速度越大,则对应的第三数量越小、第三预设视差和预设误差越大。
因此,目标的运动状态越大,则对应的第三数量越小,第三预设视差和预设误差越大,表明对预设状态的要求更加严格,使得能够适应目标更多的运动幅度。
其中,预设运动状态包括第二运动状态,第二运动状态出现在第一运动状态之后;确定目标处于第二运动状态,包括以下至少一个步骤:确定当前图像帧与第一历史图像帧之间的视差大于第三预设视差,且第二历史图像帧映射的跟踪三维点的数量大于或等于第四数量,其中,第四数量大于第三数量;确定跟踪三维点在各第二历史图像帧中的平均重投影误差大于预设误差,且第二历史图像帧映射的跟踪三维点的数量大于或等于第四数量。
因此,通过设置多种运动状态,且不同运动状态中能够用于视觉定位处理的信息不同,使得能够根据目标所处的运动状态调整对目标视觉定位处理的频次。
其中,确定目标不处于预设运动状态,包括以下至少一个步骤:确定连续第四数量进行视觉定位处理的图像帧的相邻图像帧视差均小于或等于第三预设视差;确定第二历史图像帧映射的跟踪三维点的数量大于或等于第三数量;确定跟踪三维点在各第二历史图像帧中的平均重投影误差小于或等于预设误差。
因此,通过确定目标不处于预设运动状态能够执行对应的定位条件判断,从而达到调整图像处理频次的目的。
其中,方法还包括:在不满足定位条件或存在预设数量图像帧待进行图像处理的情况下,不利用当前图像帧进行视觉定位处理,获取下一图像帧,并对下一图像帧进行判断是否满足定位条件以及后续步骤。
因此,通过在不满足定位条件或存在预设数量图像帧待进行图像处理得情况下,不对当前图像帧进行视觉定位处理,提高了定位的精度以及更适应设备的计算力。
本申请提供了一种视觉定位装置,包括:获取模块,用于获取在对目标进行视觉定位过程中采集的当前图像帧;条件判断模块,用于判断当前图像帧是否满足定位条件;定位模块,用于在满足定位条件的情况下,利用当前图像帧进行视觉定位处理。
本申请提供了一种电子设备,包括存储器和处理器,处理器用于执行存储器中存储的程序指令,以实现上述视觉定位的方法。
本申请提供了一种计算机可读存储介质,其上存储有程序指令,程序指令被处理器执行时实现上述视觉定位的方法。
上述方案,通过判断当前图像帧满足定位条件之后,再利用当前图像帧进行视觉定位处理,从而实现了动态调整视觉定位处理的频率,相对于固定频率调整视觉定位处理,可减少非必要的视觉定位处理,即减少计算量,提高视觉定位处理的效率,且每次视觉定位处理可能会累积误差,故在满足定位条件下才进行定位,可减少误差累积,提高定位的精度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1是本申请视觉定位的方法一实施例的第一流程示意图;
图2是本申请视觉定位的方法一实施例中的第二流程示意图;
图3是本申请视觉定位装置一实施例的结构示意图;
图4是本申请电子设备一实施例的结构示意图;
图5是本申请计算机可读存储介质一实施例的结构示意图。
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
本申请可应用于具备图像处理能力的设备。此外,该设备可以具备图像采集或是视频采集功能,比如,该设备可以包括诸如摄像头等用于采集图像或是视频的部件。或是该设备可以通过与其他设备进行数据传输或是数据交互的方式,以从其他设备中获取所需的视频流或是图像,或是从其他设备的存储资源中访问所需的视频流或是图像等。其中,其他设备具备图像采集或是视频采集功能,且与该设备之间具备通信连接,比如,该设备可以与其他设备之间通过蓝牙、无线网络等方式进行数据传输或是数据交互,在此对于二者之间的通信方式不予限定,可以包括但不限于上述例举的情况。在一种实现方式中,该设备可以包括手机、平板电脑、可交互屏幕等,在此不予限定。
请参阅图1,图1是本申请视觉定位的方法一实施例的第一流程示意图。具体而言,可以包括如下步骤:
步骤S11:获取在对目标进行视觉定位过程中采集的当前图像帧。
其中,对目标进行视觉定位过程中采集的当前图像帧可以是任意具有摄像组件的设备拍摄得到,当然还可以是从其他设备中获取到的图像,也可以是经过选帧、调整亮度、分辨率等的图像。目标可以是采集当前图像帧的设备本身。其中,其他设备指的是分别利用不同中央处理器才能进行操作的设备。例如,在无人机驾驶过程中,无人机即为本公开实施例所述的目标。或者扫地机器人在工作中,扫地机器人也是本公开实施例所述的目标。即设备在一环境中,实现对自己在环境中的位置进行定位和/或导航。
步骤S12:判断当前图像帧是否满足定位条件。
其中,定位条件可以是一个也可以是多个。当定位条件为多个时,则当前图像帧在满足所有定位条件的情况时,则认定当前图像帧满足定位条件。当然,在其他实施例中,若定位条件有多个,在当前图像帧满足其中一个或多个时,即可认定当前图像帧满足定位条件,无需满足所有的定位条件。
步骤S13:在满足定位条件的情况下,利用当前图像帧进行视觉定位处理。
利用当前图像帧进行视觉定位处理的方式可以是对当前图像帧中的特征提取并利用提取到的特征与上一图像帧中的特征进行匹配,然后根据特征匹配结果对设备或预设目标对象进行位姿的计算等,实现对设备或预设目标的定位。在一些公开实施例中,若当前帧为第一帧图像,则可以直接利用该当前帧图像的图像信息进行定位,若当前帧不是第一帧图像,则可以利用历史帧图像的定位信息以及相关帧图像的图像信息进行定位,即图像跟踪定位。
上述方案,通过判断当前图像帧满足定位条件之后,再利用当前图像帧进行视觉定位处理,从而实现了动态调整视觉定位处理的频率,相对于固定频率调整视觉定位处理,可减少非必要的视觉定位处理,即减少计算量,提高定位处理的效率,且每次视觉定位处理可能会累积误差,故在满足定位条件下才进行视觉定位,可减少误差累积,提高视觉定位的精度。
一些公开实施例中,判断当前图像帧是否满足定位条件,包括以下至少一个第一判断步骤:
其中,第一个第一判断步骤包括:判断当前图像帧与第一历史图像帧之间的运动时间是否满足预设时间要求。其中,第一历史图像帧为之前进行视觉定位处理的一图像帧。可选地,本公开实施例以当前图像帧的上一视觉定位处理的帧为第一历史图像帧。当然,在其他实施例中,可以选择当前图像帧以前的任一经过视觉定位处理的图像帧为第一历史图像帧。关于第一历史图像帧的选择此处不做具体规定。
其中,判断当前图像帧与第一历史图像帧之间的运动时间是否满足预设时间要求可以包括以下至少一个第二判断步骤:第一个第二判断步骤为判断运动时间是否大于第一预设时间。关于第一预设时间的设定可以是根据设备的计算力进行评估得到。可选地,获取设备最低每秒处理视觉定位的频次H1,则第一预设时间则为1/H1。当然,设定预设时间的方式可以不仅限于此种方式,还可以根据具体需求进行设定,或者随机设定等等。当然,还可综合参考预设每秒处理视觉定位的时间T1、获取设备最低每秒处理视觉定位的频次H1、预设运动状态每秒处理视觉定位的频次H3,对每一图像帧的图像处理时间t1,定位处理时间t2等信息确定第一预设时间以及第二预设时间。例如将第二预设时间设置为1/H3。可选地,若对每一图像帧的图像处理时间与定位处理时间的和与最低每秒处理视觉定位的频次的乘积大于或等于预设每秒处理视觉定位的时间,则将第一预设时间设置为无穷大。
判断当前图像帧与第一历史图像帧之间的运动时间是否满足预设时间要求的第二个第二判断步骤为,在确定目标处于预设运动状态的情况下,判断运动时间是否大于与预设运动状态对应的第二预设时间,目标的预设运动状态有至少一种,每种预设运动状态对应一第二预设时间。可选地,在目标处于预设运动状态的情况下,可以判断当前图像帧是否满足第一个第二判断步骤或第二个第二判断步骤中的其中一个,而当目标不处于预设运动状态的情况下,则仅判断当前图像帧是否满足第一个第二判断步骤。通过此种方式,可以在目标不处于预设运动状态的情况下,节省设备在此判断过程中的功耗。
预设运动状态可以是1种,也可以是2种及以上,关于预设运动状态的数量本申请不做具体规定。其中,预设运动状态包括至少一种第一运动状态,每种第一运动状态的运动速度均大于预设速度,且不同第一运动状态的运动速度不同。例如,预设运动状态包括两种第一运动状态。可选地,第一种第一运动状态的运动速度小于第二种第一运动状态的运动速度。其中,这里的运动速度可以是转动和/或移动的速度。其中,预设运动的第一运动状态可以是根据上一图像处理帧的运动状态决定,也可以根据当前图像帧的运动状态决定。例如,上一图像处理帧通过分析得到目标处于预设运动状态,则认定拍摄当前图像帧时,目标仍处于预设运动状态,而对当前帧的运动状态分析则影响下一图像帧运动状态的确定。可选地,不同的预设运动状态的第二预设时间可以不同。
可选地,确定目标处于第一运动状态的方式可以包括以下至少一个步骤:其一、确定当前图像帧与第一历史图像帧之间的视差大于第三预设视差。当前图像帧与第一历史图像帧之间的视差确定方式可以是确定当前图像帧与第一历史图像帧中匹配的真实二维点对之间的视差求平均。其中,第三预设视差大于目标处于正常运动状态下的视差。其中,这里的第一历史图像帧的确定方式如上所述,若两帧之间的视差过大,则说明目标移动速度或转动速度过快,属于非正常运动,则将其运动的进行状态列为预设运动状态。其二、确定第二历史图像帧映射的跟踪三维点的数量小于第三数量。其中,这里的第二历史图像帧可以是当前图像帧以前若干数量的历史图像帧。例如,设置一个预设大小的滑窗,滑窗内的所有图像帧均为第二历史图像帧。其中,滑窗的大小不限,本公开实施例将滑窗的大小设置为10,即滑窗中共包括10帧第二历史图像帧,也即是滑窗中保留了当前帧以前的10帧第二历史图像帧。第二历史图像帧映射跟踪三维点的方式可以是获取各个第二历史图像帧中的二维点,通过三角化的方式获取各个二维点对应的三维点,当然,这里的三维点指的是具有三维信息的三维点,即能够构成地图的内点。当跟踪三维点的数量小于第三数量,则表明目标的移动速度或者转动速度过快,无法形成正常数量的跟踪三维点,则认定目标属于非正常运动。关于第三数量的确定,可以根据具体需求,此处不做具体规定。其三、确定跟踪三维点在个第二历史图像帧中的平均重投影误差大于预设误差。即滑窗中各第二历史图像帧确定的跟踪三维点在各第二历史图像帧上的重投影的平均误差。重投影误差指的是各第二历史图像帧中观测到的真实的二维点与重投影二维点之间的距离。平均重投影误差指的是各重投影误差求平均。一些公开实施例中,可以根据与当前图像帧的距离对各第二历史图像帧对应的重投影误差设置权重。例如,可以设置更靠近当前图像帧的第二历史图像帧对应的重投影误差更大的权重,远离当前图像帧的第二历史图像帧对应得重投影误差对应更低的权重。当然,在其他实施例中,各个第二历史图像帧对应的重投影误差也可设置相同的权重。关于平均重投影误差的求解此处不做具体规定。若第一运动状态包含多个,则适当调整第三预设视差、第三数量、以及平均重投影的预设误差以适应更多的预设运动状态。
通过当前图像帧与第一历史图像帧之间的视差或跟踪三维点的数量以及重投影误差确定目标的运动状态,使得运动状态的确定更加准确。
本公开实施例中,不同第一运动状态对应的第三预设视差、第三数量和预设误差不同。其中,第一运动状态的运动速度越大,则对应的第三数量越小,第三预设视差和预设误差越大。其中,这里的运动速度包括移动速度和/或转动速度。其中,每种第一运动状态对应一种预设运动,对应的预设运动在运动进行时的速度,运动速度可以是运动期间最大速度或平均速度等。目标的运动速度越大,则对应的第三数量越小,第三预设视差和预设误差越大,表明对预设状态的要求更加严格,使得能够适应目标更多的运动幅度。
一些公开实施例中,预设运动状态包括第二运动状态。其中,第二运动状态出现在第一运动状态之后。也就是第二运动状态出现在第一运动状态和非预设运动状态之间。具体地,第二运动状态位于第一种第一运动状态与非预设运动状态之间。其中,非预设运动状态的判断参见以下确定目标不处于预设运动状态的过程。其中,确定目标处于第二运动状态的方式包括以下至少一个步骤,一是确定当前图像帧与第一历史图像帧之间的视差大于第三预设视差,且第二历史图像帧映射的跟踪三维点的数量大于或等于第四数量。其中,第四数量大于第三数量。二是确定跟踪三维点在各第二历史图像帧中的平均重投影误差大于预设误差,且第二历史图像帧映射的跟踪三维点的数量大于或等于第四数量。
对应地,确定目标不处于预设运动状态的方式可以包括以下至少一个步骤,第一个步骤:确定连续第四数量进行视觉定位处理的图像帧的相邻图像帧视差均小于或等于第三预设视差。其中,这里的第四数量可以是滑窗中包含的所有第二历史图像帧加上当前帧的数量,当前也可以是滑窗中部分第二历史图像帧加上当前帧的数量,或是滑窗中部分第二历史图像帧的数量,其中,此处的滑窗中部分第二历史图像帧指的是从靠近当前图像帧往远离当前图像帧方向确定的部分第二历史图像帧。当然,在其他实施例中,滑窗中部分第二历史图像帧也可以是滑窗中按照预设方式选择的若干第二历史图像帧,例如,按照相邻第二历史图像帧之间的视差选择。第二个步骤:确定第二历史图像帧映射的跟踪三维点的数量大于或等于第三数量。第二历史图像帧映射跟踪三维点的方式如上所述,第三数量的确定方式如上所述,此处不再赘述。第三个步骤是确定跟踪三维点在个第二历史图像帧中的平均重投影误差小于或等于预设误差。此处平均重投影误差的求解此处不做具体规定。通过连续第四数量的图像帧之间的第三预设视差确定目标不处于预设运动,得到的结果更准确。
判断当前图像帧是否满足定位条件的第二个第一判断步骤包括:判断当前图像帧与第一历史图像帧之间的运动幅度是否满足预设幅度要求。其中,第一历史图像帧为之前进行视觉定位处理的一图像帧。其中,判断当前图像帧与第一历史图像帧之间的运动幅度是否满足预设幅度要求的方式包括,判断当前图像帧与第一历史图像帧之间的视差是否大于第一预设视差。通过设置多种运动状态,使得视觉定位方法能够在目标所处多种情况下都能进行准确的判断。且,利用当前图像帧与第一历史图像帧之间的视差来表征运动幅度,使得判断结果更准确。
可选地,当前图像帧与第一历史图像帧之间的视差可以是当前图像帧与第一历史图像帧中若干匹配的二维点对之间的第一平均视差,或者当前图像帧的若干预测点与第一历史图像帧的若干二维点之间的第二平均视差。其中,若干预测点为第二历史图像帧映射的跟踪三维点在当前图像帧上的投影点,若干二维点为跟踪三维点在第一历史图像帧对应的二维点。其中,这里的二维点指的是相机真实观测到的二维点,并非投影点。当然,在其他实施例中,当前图像帧与第一历史图像帧之间的视差也可以是当前图像帧中若干预测点与第一历史图像帧的若干预测点之间的平均视差。因此,关于当前帧与第一历史图像帧之间的视差的确定方式此处不做具体规定。通过设置多个定位条件,使得能够多次对当前图像帧进行判断,使得能够在一定程度上降低对图像帧的视觉定位处理频次,增加视觉定位处理的精度。
可选地,在预测点的数量小于第一数量的情况下,第二平均视差为第二预设视差。其中,第二预设视差大于第一预设视差。可选地,将第二预设视差设置为极大值,无论将第一预设视差设置为多大,均认为当前图像帧满足定位条件。在预测点的数量小于第一数量的情况下,表明目标的运动幅度过大,若不对其进行视觉定位处理,则可能导致后续视觉定位失败,即将第二平均视差设置为大于第一预设视差,使得当前图像帧能够参与视觉定位处理,提高视觉定位处理的稳定性。
其中,若存在上述第一判断步骤的判断结果为是,则确定满足定位条件。即,只要满足上述第一个第一判断步骤或第二个第一判断步骤,则认定当前图像帧满足定位条件。
通过利用运动时间或运动幅度来确定当前图像帧满足定位条件,进而是否进行视觉定位,故视觉定位的调整频率依赖于运动速度和/或运动频率,使得视觉定位的调整频率更合理。
一些公开实施例中,定位条件包括多个,不同的定位条件用于判断是否对当前图像帧进行定位的不同处理步骤。其中,每个定位条件中的第一预设时间、第二预设时间和第一预设视差中的至少一个不同,即每个定位条件中第一预设时间相同或不同,每个定位条件中的第二预设时间相同或不同,每个定位条件中第一预设视差相同或不同。
一些公开实施例中,视觉定位处理可包括多个处理步骤,例如包括图像处理和定位处理两个处理步骤。上述步骤S13可具体包括:对当前图像帧进行图像处理,得到当前图像帧的处理结果;利用当前图像帧的处理结果进行定位处理;其中,图像处理和定位处理中的至少一个步骤是在满足对应的定位条件下执行。
可选地,图像处理是在满足图像处理对应的定位条件的情况下执行,且定位处理按照第一预设频次执行;或者,图像处理按照第二预设频次执行,且定位处理是在满足定位处理对应的定位条件的情况下执行;又或者,还可以是图像处理是在满足图像处理对应的定位条件下执行,定位处理是在满足定位处理对应的定位条件下执行,其中,图像处理和定位处理分别对应的定位条件相同或不同。也就是说,可以按照一定的频次执行图像处理和定位处理中的一个,另一个在满足对应的定位条件的情况下执行,也可以是图像处理和定位处理均在满足对应的定位条件的情况下执行。如上述,图像处理的定位条件和定位处理分别对应的定位条件可以相同也可以不同,例如,当图像处理和定位处理均在满足对应的定位条件的情况下执行时,图像处理和定位处理分别对应的定位条件不同,当然,这仅是举例,不用于限定本公开实施例提出的技术方案。可选地,无论图像处理是按照第一预设频次执行还是在满足对应的定位条件之下执行,其执行的频次均大于或等于执行定位处理的频次。
若各定位条件中的第一预设时间、第二预设时间以及第一预设视差相同,则表明图像处理和定位处理处于相同频次,若各定位条件中的第一预设时间、第二预设时间以及第一预设视差相同不同,则图像处理和定位处理没有处于相同频次。可选地,若定位处理对应的定位条件中的第一预设视差大于图像处理对应的定位条件中的第一预设视差。这样设置的结果会是经过图像处理的图像帧并不一定会进行定位处理。
下面结合图2对利用不同定位条件对视觉定位处理的不同处理步骤进行定位判断进行举例说明。参见图2,图2是本申请视觉定位的方法一实施例中的第二流程示意图。如图1和图2所示。
一些公开实施例中,步骤S12可具体分为步骤S121和步骤S122,步骤S13可具体包括步骤S131和步骤S132。具体地,步骤S121:判断当前图像帧是否满足图像处理对应的定位条件。若步骤S121的判断结果为不满足,则执行步骤S14:删除当前图像帧,直接处理下一图像帧。若满足则执行步骤S131:对当前图像帧进行图像处理,得到当前图像帧的处理结果。执行完步骤S131,执行步骤S122:判断当前图像帧是否满足定位处理对应的定位条件。若步骤S122的判断结果为不满足,则执行步骤S15:直接处理下一图像帧。若步骤S122的判断结果为满足,则执行步骤S132:利用当前图像帧的处理结果进行定位处理;其中,每个定位条件相同或不同。
具体地,图像处理可以为进行当前图像帧与其他图像帧之间的特征点匹配。特征点匹配可以是第一历史图像帧与当前图像帧中跟踪三维点对应的二维点之间的匹配。具体地特征点匹配方式包括:对当前图像帧进行特征点提取;对于能够通过跟踪三维点投影到当前图像帧的特征点,使用投影点作为当前图像帧跟踪的初始值,对于无法投影到当前图像帧的特征点,则利用当前图像帧与第一历史图像帧之间的运动信息计算一个预测点作为当前图像帧跟踪的初始值,其中,运动信息包括陀螺仪和/或加速度计的读数,例如角度信息以及加速度信息等。其中,初始值的作用是为了减少特征匹配的范围,即初始值能够指引第一历史图像帧中各二维点对应当前图像帧中二维点的大致范围,提高匹配速度以及匹配的精度。当然,特征点匹配的方式还可以是使用稀疏光流法对当前图像帧以及第一历史图像帧进行特征匹配。本公开实施例使用的稀疏光流法可以参见通常使用的稀疏光流法实施方式,因此,此处不对稀疏光流法做过多阐述。
如上所述,可以在满足图像处理对应的定位条件的情况下才会进行图像处理,即特征提取和匹配,而在定位条件中包括判断当前图像帧与第一历史图像帧之间的视差是否大于第一预设视差,因此,本公开实施例所述的图像处理对应的定位条件中,当前图像帧与第一历史图像帧之间的视差指的是当前图像帧的若干预测点与第一历史图像帧的若干二维点之间的第二平均视差。
且,本公开实施例中预设运动状态的确定需要确定当前图像帧与第一历史图像之间的视差,这里的视差指的是当前图像帧与第一历史图像帧中若干匹配的二维点对之间的第一平均视差,因此,关于预设运动状态的确定步骤位于图像处理步骤之后。即,每次执行图像处理步骤之后,需要对目标的运动状态进行确定。也就是说图像处理对应的定位条件中目标的运动状态是根据第一历史图像帧确定。即,当前图像帧的运动状态确定结果作为下一图像帧的图像处理对应的定位条件中预设运动状态的确定结果。例如,第一历史图像帧的运动状态为处于预设运动状态,则认定目标拍摄当前图像帧时处于预设运动状态。
本公开实施例中,在对当前图像帧进行图像处理之后且满足定位处理对应的定位条件的情况下,利用当前图像帧的处理结果进行定位处理。因此,通过为视觉定位处理过程中的不同处理步骤均设置定位条件,并通过对应定位条件来确定是否执行定位过程中的不同处理步骤,由此实现更精细和灵活的视觉定位处理频率的动态调整,进而,可更精确减少视觉定位的一些非必要处理步骤,且保留执行一些必要处理步骤,在减少计算量的情况下,进一步提高视觉定位的精度。
其中,定位处理主要是基于特征点匹配的结果和惯性传感器数据对目标进行定位。具体根据特征点匹配的结果和惯性传感器数据对目标进行定位的方式可参见通常的定位方式,本公开实施例不进行过多的叙述。
上述方案,视觉定位处理过程中的图像处理步骤和定位处理步骤可分别动态调整视觉定位处理的频率。由于图像处理步骤和定位处理步骤均存在误差累积,图像处理步骤和定位处理步骤分别动态调整处理频率,而不是固定统一频率,可将各自的误差隔离,进而进一步提高视觉定位的精度以及稳定性。
一些公开实施例中,对于目标所处运动状态的确定具体可以在对当前图像帧的图像处理之后,判断当前图像帧是否满足定位处理对应的定位条件之前。因为在进行定位处理对应的定位条件的判断之后,该目标的运动状态或许已经不同于第一历史图像帧得到的目标对应的运动状态,因此,在定位处理对应的定位条件中,确定目标对应的运动状态以通过当前图像帧得到的目标运动状态为准。
一些公开实施例中,在不满足定位条件或在存在预设数量图像帧待进行图像处理的情况下,不利用当前图像帧进行视觉定位处理。直接获取下一图像帧,并对下一图像帧进行判断是否满足定位条件以及后续步骤。在存在预设数量的图像帧需要进行图像处理,意味着设备的计算性能不够,则不再对当前图像帧进行处理。判断是否存在预设数量图像帧待进行图像处理的情况可以是在对当前图像帧进行第一个定位条件的判断之前,也可以是在对当前图像帧进行第一个定位条件的判断之后。因此,不利用当前图像帧进行视觉定位处理的意思可以是不对当前图像帧进行第一个定位条件的判断,直接删除当前图像帧,也可以是在对当前图像帧满足第一个定位条件之后,若存在此情况,直接删除当前图像帧。当然,若当前图像帧不满足定位条件,则也不利用当前图像帧进行视觉定位处理。直接获取下一图像帧,并对下一图像帧进行判断是否满足定位条件以及后续步骤。若,当前图像帧不满足图像处理对应的定位条件,则不对当前图像帧进行图像处理,直接进行对下一图像帧的判断。又或者,若当前图像帧满足图像处理对应的定位条件,进行图像处理之后,在进行定位处理对应的定位条件的判定时,发现当前图像帧不满足该定位条件,则不对当前图像帧进行定位处理,直接对下一图像帧进行定位条件的判断。当然,这里对下一图像帧进行定位条件的判断可以是对经过图像处理的图像帧进行定位处理对应的定位条件的判断。通过在不满足定位条件或存在预设数量图像帧待进行图像处理得情况下,不对当前图像帧进行视觉定位处理,提高了视觉定位的精度以及更适应设备的计算力。
一些公开实施例中,若确定目标拍摄当前图像帧时处于预设运动状态和/或在存在预设数量图像帧待进行图像处理的情况下,调整第一预设视差。具体地,在判断当前图像帧是否满足定位条件之前,若存在第二数量图像帧待进行图像处理,则增大第一预设视差;若确定目标处于第一种预设运动状态,则减小第一预设视差。若确定目标处于第二种第一运动状态,则增大第一预设视差,其中,第二种第一运动状态对应的运动速度大于第一种预设运动状态的运动速度。以及,若目标处于第二运动状态时,则减小第一预设视差。其中,这里增大或减小均是针对目标处于正常运动状态下的第一预设视差而言,正常运动状态包括非预设运动状态。由此可见,各个状态下的第一预设视差的关系如下,第一运动状态下的第一预设视差<第二运动状态下的第一预设视差<正常运动状态下的第一预设视差<第二种第一运动状态下的第一预设视差。调整第一预设视差相当于调整视觉定位处理的频率,原因在于,若第一预设视差越大,则对目标的运动时间和/或运动幅度要求更大,使得目标在短时间内和/或运动幅度过小时,不会进行定位,相当于降低了定位频率,从而减小了无用的计算,相反,若第一预设视差越小,则说明提高了定位的频率,在一定程度上提高了定位的精度。其中,第一种预设运动状态中,因为减小了第一预设视差,使得定位条件中,第一种第一运动状态对应的第二预设时间小于第一预设时间。同理,第二种第一运动状态增大了第一预设视差,使得定位条件中,第二种第一运动状态对应的第二预设时间大于第一预设时间。其中,调整第一预设视差将影响当前图像帧的第二个定位条件判断以及下一图像帧的第一个定位条件的判断。通过在判断当前图像帧是否满足定位条件之前根据当前图像帧的运动状态或设备的计算力,即是否存在第二数量图像帧待进行图像处理,灵活调整第一预设视差,以提高定位的精度和稳定性。
其中,视觉定位的方法的执行主体可以是视觉定位装置,例如,视觉定位的方法可以由终端设备或服务器或其它处理设备执行,其中,终端设备可以为:虚拟现实头盔,增强现实眼镜、无人车、移动机器人、扫地机器人、飞行设备、用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(Personal DigitalAssistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等同时具有图像传感器和惯性传感器的设备。在一些可能的实现方式中,该视觉定位的方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
请参阅图3,图3是本申请视觉定位装置一实施例的结构示意图。视觉定位装置30包括:获取模块31,条件判断模块32以及定位模块33。获取模块31,用于获取在对目标进行视觉定位过程中采集的当前图像帧;条件判断模块32,用于判断当前图像帧是否满足定位条件;定位模块33,用于在满足定位条件的情况下,利用当前图像帧进行视觉定位处理。
上述方案,通过判断当前图像帧满足定位条件之后,再利用当前图像帧进行视觉定位处理,从而实现了动态调整视觉定位处理的频率,相对于固定频率调整视觉定位处理,可减少非必要的视觉定位处理,即减少计算量,提高定位处理的效率,且每次视觉定位处理可能会累积误差,故在满足定位条件下才进行视觉定位,可减少误差累积,提高视觉定位的精度。
一些公开实施例中,视觉定位处理包括图像处理和定位处理;在满足定位条件的情况下,定位模块33利用当前图像帧进行定位处理,包括:对当前图像帧进行图像处理,得到当前图像帧的处理结果;利用当前图像帧的处理结果进行定位处理;其中,图像处理和定位处理中的至少一个步骤是在满足对应的定位条件的情况下执行。
上述方案,通过为视觉定位过程的图像处理和/或定位处理设置定位条件,并通过对应定位条件来确定是否需要执行对应的处理步骤,由此实现更精细和灵活的视觉定位处理频率的动态调整,进而,可更精确减少定位的一些非必要处理步骤,且保留执行一些必要处理步骤,在减少计算量的情况下,进一步提高定位的精度。
一些公开实施例中,图像处理是在满足图像处理对应的定位条件的情况下执行,且定位处理按照第一预设频次执行;或者,图像处理按照第二预设频次执行,且定位处理是在满足定位处理对应的定位条件的情况下执行;或者,图像处理是在满足图像处理对应的定位条件的情况下执行,定位处理是在满足定位处理对应的定位条件的情况下执行,其中,图像处理和定位处理分别对应的定位条件相同或者不同。
上述方案,通过动态调整图像处理与定位处理中至少一个的处理频次,使得可更精确减少定位的一些非必要处理步骤,且保留执行一些必要处理步骤,在减少计算量的情况下,进一步提高视觉定位的精度。
一些公开实施例中,条件判断模块32判断当前图像帧是否满足定位条件,包括以下至少一个第一判断步骤:判断当前图像帧与第一历史图像帧之间的运动时间是否满足预设时间要求;判断当前图像帧与第一历史图像帧之间的运动幅度是否满足预设幅度要求,其中,第一历史图像帧为之前进行视觉定位处理的一图像帧;其中,若存在上述第一判断步骤的判断结果为是,则确定满足定位条件。
上述方案,通过利用运动时间或运动幅度来确定当前图像帧满足定位条件,进而是否进行视觉定位,故视觉定位的调整频率依赖于运动速度和/或运动频率,使得视觉定位的调整频率更合理。
一些公开实施例中,条件判断模块32判断当前图像帧与第一历史图像帧之间的运动时间是否满足预设时间要求,包括,包括以下至少一个第二判断步骤:判断运动时间是否大于第一预设时间;在确定目标处于预设运动状态的情况下,判断运动时间是否大于与预设运动状态对应的第二预设时间,目标的预设运动状态有至少一种,每种预设运动状态对应一第二预设时间;其中,若存在上述第二判断步骤的判断结果为是,则确定满足预设时间要求;和/或,判断当前图像帧与第一历史图像帧之间的运动幅度是否满足预设幅度要求,包括:判断当前图像帧与第一历史图像帧之间的视差是否大于第一预设视差。
上述方案,通过设置多种运动状态,使得视觉定位方法能够在目标所处多种情况下都能进行准确的判断。且,利用当前图像帧与第一历史图像帧之间的视差来表征运动幅度,使得判断结果更准确。
一些公开实施例中,定位条件包括多个,不同的定位条件用于判断是否对当前图像帧进行视觉定位的不同处理步骤,其中,每个定位条件中的第一预设时间、第二预设时间和第一预设视差中的至少一个不同;和/或,当前图像帧与第一历史图像帧之间的视差:当前图像帧与第一历史图像帧中若干匹配的二维点对之间的第一平均视差,或者,当前图像帧的若干预测点与第一历史图像帧的若干二维点之间的第二平均视差,其中,若干预测点为第二历史图像帧映射的跟踪三维点在当前图像帧上的投影点,若干二维点为跟踪三维点在第一历史图像帧对应的二维点。
上述方案,通过设置多个定位条件,使得能够多次对当前图像帧进行判断,使得能够在一定程度上降低对图像帧的定位处理频次,增加定位处理的精度。
一些公开实施例中,在预测点的数量小于第一数量的情况下,第二平均视差为第二预设视差,其中,第二预设视差大于第一预设视差。
上述方案,在预测点的数量小于第一数量的情况下,表明目标的运动幅度过大,若不对其进行视觉定位处理,则可能导致后续视觉定位失败,即将第一平均视差设置为大于第一预设视差,使得当前图像帧能够参与定位处理,提高定位处理的稳定性。
一些公开实施例中,预设运动状态包括两种第一运动状态,其中,每种第一运动状态均大于预设速度,且第一种第一运动状态的运动速度小于第二种第一运动状态的运动速度;条件判断模块32还用于执行以下至少一个步骤:在判断当前图像帧是否满足定位条件之前,若存在第二数量图像帧待进行图像处理,则增大第一预设视差;若确定目标处于第一种第一运动状态,则减小第一预设视差;若确定目标处于第二种第一运动状态,则增大第一预设视差,其中,第二种第一运动状态对应的运动速度大于第一种预设运动状态的运动速度。
上述方案,通过在判断当前图像帧是否满足定位条件之前根据当前图像帧的运动状态或设备的计算力,即是否存在第二数量图像帧待进行图像处理,灵活调整第一预设视差,以提高定位的精度和稳定性。
一些公开实施例中,预设运动状态包括至少一种第一运动状态,每种第一运动状态的运动速度均大于预设速度,且不同第一运动状态的运动速度不同;条件判断模块32确定目标处于第一运动状态,包括以下至少一个步骤:确定当前图像帧与第一历史图像帧之间的视差大于第三预设视差;确定第二历史图像帧映射的跟踪三维点的数量小于第三数量;确定跟踪三维点在各第二历史图像帧中的平均重投影误差大于预设误差。
上述方案,通过当前图像帧与第一历史图像帧之间的视差或跟踪三维点的数量以及重投影误差确定目标的运动状态,使得运动状态的确定更加准确。
一些公开实施例中,不同第一运动状态对应的第三预设视差、第三数量和预设误差不同,其中,第一运动状态的运动速度越大,则对应的第三数量越小、第三预设视差和预设误差越大。
上述方案,目标的运动状态越大,则对应的第三数量越小,第三预设视差和预设误差越大,表明对预设状态的要求更加严格,使得能够适应目标更多的运动幅度。
一些公开实施例中,预设运动状态包括第二运动状态,第二运动状态出现在第一运动状态之后;条件判断模块32确定目标处于第二运动状态,包括以下至少一个步骤:确定当前图像帧与第一历史图像帧之间的视差大于第三预设视差,且第二历史图像帧映射的跟踪三维点的数量大于或等于第四数量,其中,第四数量大于第三数量;确定跟踪三维点在各第二历史图像帧中的平均重投影误差大于预设误差,且第二历史图像帧映射的跟踪三维点的数量大于或等于第四数量。
上述方案,通过设置多种运动状态,且不同运动状态中能够用于定位的信息不同,使得能够根据目标所处的运动状态调整对目标进行视觉定位处理的频次。
一些公开实施例中,条件判断模块32确定目标不处于预设运动状态,包括以下至少一个步骤:确定连续第四数量进行视觉定位处理的图像帧的相邻图像帧视差均小于或等于第三预设视差;确定第二历史图像帧映射的跟踪三维点的数量大于或等于第三数量;确定跟踪三维点在各第二历史图像帧中的平均重投影误差小于或等于预设误差。
上述方案,通过确定目标不处于预设运动状态能够执行对应的定位条件判断,从而达到调整图像处理频次的目的。
一些公开实施例中,定位装置30还用于执行以下步骤:在不满足定位条件或存在预设数量图像帧待进行图像处理的情况下,不利用当前图像帧进行视觉定位处理,获取模块31获取下一图像帧,并利用条件判断模块32对下一图像帧进行判断是否满足定位条件以及定位模块33执行后续步骤。
上述方案,通过在不满足定位条件或存在预设数量图像帧待进行图像处理得情况下,不对当前图像帧进行视觉定位处理,提高了视觉定位的精度以及更适应设备的计算力。
上述方案,通过判断当前图像帧满足定位条件之后,再利用当前图像帧进行视觉定位处理,从而实现了动态调整视觉定位处理的频率,相对于固定频率调整视觉定位处理,可减少非必要的视觉定位处理,即减少计算量,提高定位处理的效率,且每次视觉定位处理可能会累积误差,故在满足定位条件下才进行视觉定位,可减少误差累积,提高视觉定位的精度。
请参阅图4,图4是本申请电子设备一实施例的结构示意图。电子设备40包括存储器41和处理器42,处理器42用于执行存储器41中存储的程序指令,以实现上述任一视觉定位的方法实施例中的步骤。在一个具体的实施场景中,电子设备40可以包括但不限于:移动机器人、手持移动设备、扫地机器人、无人车、虚拟现实头盔、增强现实眼镜飞行设备、微型计算机、台式电脑、服务器等其他同时具有图像传感器和惯性传感器模组的设备,此外,电子设备40还可以包括笔记本电脑、平板电脑等移动设备,在此不做限定。
具体而言,处理器42用于控制其自身以及存储器41以实现上述任一视觉定位的方法实施例中的步骤。处理器42还可以称为CPU(Central Processing Unit,中央处理单元)。处理器42可能是一种集成电路芯片,具有信号的处理能力。处理器42还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器42可以由集成电路芯片共同实现。
上述方案,通过判断当前图像帧满足定位条件之后,再利用当前图像帧进行视觉定位处理,从而实现了动态调整视觉定位处理的频率,相对于固定频率调整视觉定位处理,可减少非必要的视觉定位处理,即减少计算量,提高定位处理的效率,且每次视觉定位处理可能会累积误差,故在满足定位条件下才进行视觉定位,可减少误差累积,提高视觉定位的精度。
请参阅图5,图5是本申请计算机可读存储介质一实施例的结构示意图。计算机可读存储介质50存储有能够被处理器运行的程序指令51,程序指令51用于实现上述任一视觉定位的方法实施例中的步骤。
上述方案,通过判断当前图像帧满足定位条件之后,再利用当前图像帧进行视觉定位处理,从而实现了动态调整视觉定位处理的频率,相对于固定频率调整视觉定位处理,可减少非必要的视觉定位处理,即减少计算量,提高定位处理的效率,且每次视觉定位处理可能会累积误差,故在满足定位条件下才进行视觉定位,可减少误差累积,提高视觉定位的精度。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (16)
1.一种视觉定位的方法,其特征在于,包括:
获取在对目标进行视觉定位过程中采集的当前图像帧;
判断所述当前图像帧是否满足定位条件;
在满足所述定位条件的情况下,利用所述当前图像帧进行视觉定位处理;
所述判断所述当前图像帧是否满足定位条件,包括:判断所述当前图像帧与第一历史图像帧之间的运动时间是否满足预设时间要求,若是,则确定满足所述定位条件,其中,所述第一历史图像帧为之前进行所述视觉定位处理的一图像帧,若所述目标处于预设运动状态的情况下所述运动时间大于与所述预设运动状态对应的第二预设时间,则确定所述运动时间满足所述预设时间要求,所述目标的预设运动状态有至少一种,每种所述预设运动状态对应一所述第二预设时间,所述预设运动状态包括至少一种第一运动状态,每种所述第一运动状态的运动速度均大于预设速度,且不同所述第一运动状态的运动速度不同;
其中,确定所述目标处于所述第一运动状态,包括以下至少一个步骤:确定第二历史图像帧映射的跟踪三维点的数量小于第三数量;确定所述跟踪三维点在各所述第二历史图像帧中的平均重投影误差大于预设误差。
2.根据权利要求1所述的方法,其特征在于,所述视觉定位处理包括图像处理和定位处理;所述在满足所述定位条件的情况下,利用所述当前图像帧进行视觉定位处理,包括:
对所述当前图像帧进行图像处理,得到所述当前图像帧的处理结果;
利用所述当前图像帧的处理结果进行定位处理;
其中,所述图像处理和所述定位处理中的至少一个步骤是在满足对应的所述定位条件的情况下执行。
3.根据权利要求2所述的方法,其特征在于,所述图像处理是在满足所述图像处理对应的所述定位条件的情况下执行,且所述定位处理按照第一预设频次执行;
或者,所述图像处理按照第二预设频次执行,且所述定位处理是在满足所述定位处理对应的所述定位条件的情况下执行;
或者,所述图像处理是在满足所述图像处理对应的所述定位条件的情况下执行,所述定位处理是在满足所述定位处理对应的所述定位条件的情况下执行,其中,所述图像处理和所述定位处理分别对应的所述定位条件相同或者不同。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述判断所述当前图像帧是否满足定位条件,还包括:
判断所述当前图像帧与所述第一历史图像帧之间的运动幅度是否满足预设幅度要求;
其中,若判断结果为是,则确定满足所述定位条件。
5.根据权利要求4所述的方法,其特征在于,所述判断所述当前图像帧与第一历史图像帧之间的运动时间是否满足预设时间要求,还包括以下第二判断步骤:
判断所述运动时间是否大于第一预设时间;
若上述第二判断步骤的判断结果为是,则确定满足所述预设时间要求;
和/或,所述判断所述当前图像帧与所述第一历史图像帧之间的运动幅度是否满足预设幅度要求,包括:
判断所述当前图像帧与第一历史图像帧之间的视差是否大于第一预设视差。
6.根据权利要求5所述的方法,其特征在于,所述定位条件包括多个,不同的所述定位条件用于判断是否对当前图像帧进行视觉定位的不同处理步骤,其中,每个所述定位条件中的所述第一预设时间、所述第二预设时间和所述第一预设视差中的至少一个不同;
和/或,所述当前图像帧与第一历史图像帧之间的视差:所述当前图像帧与第一历史图像帧中若干匹配的二维点对之间的第一平均视差,或者,所述当前图像帧的若干预测点与所述第一历史图像帧的若干二维点之间的第二平均视差,其中,所述若干预测点为第二历史图像帧映射的跟踪三维点在所述当前图像帧上的投影点,所述若干二维点为所述跟踪三维点在所述第一历史图像帧对应的二维点。
7.根据权利要求6所述的方法,其特征在于,在所述预测点的数量小于第一数量的情况下,所述第二平均视差为第二预设视差,其中,所述第二预设视差大于所述第一预设视差。
8.根据权利要求5至7任一项所述的方法,其特征在于,所述预设运动状态包括两种第一运动状态,其中,每种所述第一运动状态均大于预设速度,且第一种所述第一运动状态的运动速度小于第二种所述第一运动状态的运动速度;所述方法还包括以下至少一个步骤:
在判断当前图像帧是否满足所述定位条件之前,若存在第二数量图像帧待进行图像处理,则增大所述第一预设视差;
若确定所述目标处于第一种所述第一运动状态,则减小所述第一预设视差;
若确定所述目标处于第二种所述第一运动状态,则增大所述第一预设视差。
9.根据权利要求5至7任一项所述的方法,其特征在于,所述确定所述目标处于所述第一运动状态,还包括:
确定所述当前图像帧与第一历史图像帧之间的视差大于第三预设视差。
10.根据权利要求9所述的方法,其特征在于,不同所述第一运动状态对应的所述第三预设视差、第三数量和预设误差不同,其中,所述第一运动状态的所述运动速度越大,则对应的所述第三数量越小、所述第三预设视差和预设误差越大。
11.根据权利要求9所述的方法,其特征在于,所述预设运动状态包括第二运动状态,所述第二运动状态出现在所述第一运动状态之后;确定所述目标处于所述第二运动状态,包括以下至少一个步骤:
确定所述当前图像帧与第一历史图像帧之间的视差大于第三预设视差,且第二历史图像帧映射的跟踪三维点的数量大于或等于第四数量,其中,所述第四数量大于所述第三数量;
确定所述跟踪三维点在各所述第二历史图像帧中的平均重投影误差大于预设误差,且第二历史图像帧映射的跟踪三维点的数量大于或等于所述第四数量。
12.根据权利要求5至7任一项所述的方法,其特征在于,确定所述目标不处于预设运动状态,包括以下至少一个步骤:
确定连续第四数量进行所述视觉定位处理的图像帧的相邻图像帧视差均小于或等于第三预设视差;
确定第二历史图像帧映射的跟踪三维点的数量大于或等于第三数量;
确定所述跟踪三维点在各所述第二历史图像帧中的平均重投影误差小于或等于预设误差。
13.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
在不满足所述定位条件或存在预设数量图像帧待进行图像处理的情况下,不利用所述当前图像帧进行视觉定位处理,获取下一图像帧,并对所述下一图像帧进行判断是否满足所述定位条件以及后续步骤。
14.一种视觉定位装置,其特征在于,包括:
获取模块,用于获取在对目标进行视觉定位过程中采集的当前图像帧;
条件判断模块,用于判断所述当前图像帧是否满足定位条件;
定位模块,用于在满足所述定位条件的情况下,利用所述当前图像帧进行视觉定位处理;
所述条件判断模块,用于判断所述当前图像帧是否满足定位条件,包括:判断所述当前图像帧与第一历史图像帧之间的运动时间是否满足预设时间要求,若是,则确定满足所述定位条件,其中,所述第一历史图像帧为之前进行所述视觉定位处理的一图像帧,若所述目标处于预设运动状态的情况下所述运动时间大于与所述预设运动状态对应的第二预设时间,则确定所述运动时间满足所述预设时间要求,所述目标的预设运动状态有至少一种,每种所述预设运动状态对应一所述第二预设时间,所述预设运动状态包括至少一种第一运动状态,每种所述第一运动状态的运动速度均大于预设速度,且不同所述第一运动状态的运动速度不同;
其中,所述条件判断模块,确定所述目标处于所述第一运动状态,包括以下至少一个步骤:确定第二历史图像帧映射的跟踪三维点的数量小于第三数量;确定所述跟踪三维点在各所述第二历史图像帧中的平均重投影误差大于预设误差。
15.一种电子设备,其特征在于,包括存储器和处理器,所述处理器用于执行所述存储器中存储的程序指令,以实现权利要求1至13任一项所述的方法。
16.一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令被处理器执行时实现权利要求1至13任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110297587.7A CN113034595B (zh) | 2021-03-19 | 2021-03-19 | 视觉定位的方法和相关装置、设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110297587.7A CN113034595B (zh) | 2021-03-19 | 2021-03-19 | 视觉定位的方法和相关装置、设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113034595A CN113034595A (zh) | 2021-06-25 |
CN113034595B true CN113034595B (zh) | 2024-06-07 |
Family
ID=76471844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110297587.7A Active CN113034595B (zh) | 2021-03-19 | 2021-03-19 | 视觉定位的方法和相关装置、设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113034595B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101364046B1 (ko) * | 2012-11-05 | 2014-02-19 | 재단법인대구경북과학기술원 | 동영상에서 객체를 추적하는 방법 및 그 장치 |
CN103729860A (zh) * | 2013-12-31 | 2014-04-16 | 华为软件技术有限公司 | 一种图像目标跟踪的方法和装置 |
CN108846857A (zh) * | 2018-06-28 | 2018-11-20 | 清华大学深圳研究生院 | 视觉里程计的测量方法及视觉里程计 |
CN110298794A (zh) * | 2019-05-20 | 2019-10-01 | 上海联影智能医疗科技有限公司 | 医学成像系统、方法、计算机设备及可读存储介质 |
CN110555901A (zh) * | 2019-09-05 | 2019-12-10 | 亮风台(上海)信息科技有限公司 | 动静态场景的定位和建图方法、装置、设备和存储介质 |
CN111780763A (zh) * | 2020-06-30 | 2020-10-16 | 杭州海康机器人技术有限公司 | 一种基于视觉地图的视觉定位方法、装置 |
CN112509045A (zh) * | 2020-12-04 | 2021-03-16 | 江苏科技大学 | 一种机器人视觉同时定位与建图的闭环检测方法及系统 |
-
2021
- 2021-03-19 CN CN202110297587.7A patent/CN113034595B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101364046B1 (ko) * | 2012-11-05 | 2014-02-19 | 재단법인대구경북과학기술원 | 동영상에서 객체를 추적하는 방법 및 그 장치 |
CN103729860A (zh) * | 2013-12-31 | 2014-04-16 | 华为软件技术有限公司 | 一种图像目标跟踪的方法和装置 |
CN108846857A (zh) * | 2018-06-28 | 2018-11-20 | 清华大学深圳研究生院 | 视觉里程计的测量方法及视觉里程计 |
CN110298794A (zh) * | 2019-05-20 | 2019-10-01 | 上海联影智能医疗科技有限公司 | 医学成像系统、方法、计算机设备及可读存储介质 |
CN110555901A (zh) * | 2019-09-05 | 2019-12-10 | 亮风台(上海)信息科技有限公司 | 动静态场景的定位和建图方法、装置、设备和存储介质 |
CN111780763A (zh) * | 2020-06-30 | 2020-10-16 | 杭州海康机器人技术有限公司 | 一种基于视觉地图的视觉定位方法、装置 |
CN112509045A (zh) * | 2020-12-04 | 2021-03-16 | 江苏科技大学 | 一种机器人视觉同时定位与建图的闭环检测方法及系统 |
Non-Patent Citations (3)
Title |
---|
Prior Guided Dropout for Robust Visual Localization in Dynamic Environments;Zhaoyang Huang et al.;《CVF》;第2791-2800页 * |
商汤科技:面向增强现实的视觉定位技术的创新突破与应用;章国锋;《杭州科技》;第25-28页 * |
基于视觉的同时定位与地图构建的研究进展;陈常 等;《计算机应用研究》;第35卷(第3期);第641-647页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113034595A (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110322500B (zh) | 即时定位与地图构建的优化方法及装置、介质和电子设备 | |
US11285613B2 (en) | Robot vision image feature extraction method and apparatus and robot using the same | |
EP3378033B1 (en) | Systems and methods for correcting erroneous depth information | |
CN110246147B (zh) | 视觉惯性里程计方法、视觉惯性里程计装置及移动设备 | |
US12062210B2 (en) | Data processing method and apparatus | |
JP2021509515A (ja) | 測距方法、知能制御方法及び装置、電子機器ならびに記憶媒体 | |
US20200264011A1 (en) | Drift calibration method and device for inertial measurement unit, and unmanned aerial vehicle | |
WO2018151792A1 (en) | Camera auto-calibration with gyroscope | |
CN111060948B (zh) | 一种定位方法、装置、头盔及计算机可读存储介质 | |
CN105283905A (zh) | 使用点和线特征的稳健跟踪 | |
CN110349212B (zh) | 即时定位与地图构建的优化方法及装置、介质和电子设备 | |
CN113029128B (zh) | 视觉导航方法及相关装置、移动终端、存储介质 | |
EP3343242B1 (en) | Tracking system, tracking device and tracking method | |
CN113012224B (zh) | 定位初始化方法和相关装置、设备、存储介质 | |
CN114543797B (zh) | 位姿预测方法和装置、设备、介质 | |
CN113052897A (zh) | 定位初始化方法和相关装置、设备、存储介质 | |
CN111721305B (zh) | 定位方法和装置、自动驾驶车辆、电子设备和存储介质 | |
CN110720113A (zh) | 一种参数处理方法、装置及摄像设备、飞行器 | |
CN113034595B (zh) | 视觉定位的方法和相关装置、设备、存储介质 | |
CN111736190B (zh) | 一种无人机机载目标检测系统及方法 | |
CN115690119A (zh) | 一种数据处理方法及装置 | |
CN112154480B (zh) | 可移动平台的定位方法、装置、可移动平台及存储介质 | |
CN108322698A (zh) | 基于多摄像机和惯性测量单元融合的系统和方法 | |
CN111223139B (zh) | 目标定位方法及终端设备 | |
CN112595728A (zh) | 一种道路问题确定方法和相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |