一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种深度视频空间平面检测方法及系统与流程

2021-12-04 01:45:00 来源:中国专利 TAG:


1.本发明涉及深度视频空间平面检测技术领域,尤其涉及一种深度视频空间平面检测方法及系统。


背景技术:

2.在增强现实(augmented reality,简称ar)的应用场景中,往往需要在空间平面(即拍摄场景中的真实平面对象)上放置虚拟对象,以用于与用户交互。此外,对于日常三维场景,平面作为物品或对象的主要构成部分或形态,即平面是日常三维场景中常见的特征,可用于场景、对象识别等图像处理算法,以提高算法准确度和速度,例如,在slam算法中,可以将平面作为特征,提高位姿估计的效率。
3.因此,为了获取空间平面的平面信息,现有技术中的平面检测方法按照图像信息的格式不同被分为两类:一类是基于rgb图像的平面检测方法,另一类是基于深度图的平面检测方法。
4.基于rgb图像的平面检测方法通常提取rgb图像中的关键点,并计算关键点的空间位置以拟合出平面。但关键点的提取往往是基于纹理进行的,无法获取无纹理平面,导致出现漏检的情况。
5.基于深度图的平面检测方法按照实现方式又可以分为迭代拟合方法、霍夫变换方法以及聚类方法,其中迭代拟合方法和霍夫变换方法虽然实现方式不同,但结果类似,在当存在多个平面时,仍容易出现误检的问题;而现有聚类方法的运算量巨大,不能输出平面范围,导致该现有的聚类方法无法直接应用于ar设备中。


技术实现要素:

6.本发明的实施例的目的之一在于提供一种深度视频空间平面检测方法,通过该平面检测方法能够快速检测平面,效率高且稳定性好。
7.为实现上述发明目的,本发明采用下述技术方案予以实现:本技术涉及一种深度视频空间平面检测方法,其特征在于,包括如下步骤:s1:对深度视频中当前帧的rgb图和深度图进行预处理,以得到所述当前帧的点云数据及位姿信息;s2:从所述点云数据中选取满足如下方程的多组候选点,每组候选点包括三个候选点p1、p2及p3,拟合得到多个候选平面,并从多个候选平面中获取初始平面p;其中,,r1、r2及r3分别是预设限值;s3:基于所述初始平面p及其内点p
i
,对所有内点p
i
进行空间聚类,获取点数最多的
类,所述类中的点为所述当前帧的检测平面的检测平面数据;以及s4:根据所述深度视频中历史帧的历史输出平面数据及所述检测平面,获取当前输出平面。
8.在本技术中,s2具体为:s21:从所述点云数据中选取满足如下方程的多组候选点,每组候选点包括三个候选点p1、p2及p3; ;s22:针对多组候选点拟合得到多个候选平面;s23:针对多个候选平面中每个,遍历所述点云数据,获取所述候选平面上的内点;s24:选择内点数量最多的内点所属的候选平面为初始平面p。
9.在本技术中,s3中对所有内点p
i
进行空间聚类,具体为:s31:在初始平面p中选择一点作为初始类的中心点p
ci
,半径b
i
为预设初始半径;s32:遍历初始平面p上内点,计算所遍历点p
k
与各中心点p
ci
的距离s;s33:判断s的大小,若s位于第一预设范围内,则将p
k
聚类至中心点p
ci
所属的类中;若s位于第二预设范围内,则将p
k
聚类至中心点p
ci
所属的类中,且采用如下公式更新中心点p
ci
和半径b
i
;若s位于第三预设范围内,则构建新类,并将p
k
作为所述新类的中心点p
ci
,且设定所述新类的半径b
i
为所述预设初始半径;为所述预设初始半径;其中为的归一化向量,所述第一预设范围、第二预设范围及第三预设范围依次增大;s34:是否遍历完所述初始平面p上的内点,若否,返回s32,若是,结束。
10.在本技术中,所述初始类的中心点p
ci
能够采用如下方程计算:,其中n表示初始平面p上内点p
i
的数量。
11.在本技术中,所述第一预设范围为[0,0.5],第二预设范围为[0.5,0.8],第三预设范围为[0.8, ∞)。
[0012]
在本技术中,s4具体为:s41:根据所述位姿信息,对所述检测平面数据进行配准处理,以获得所述当前帧的所述检测平面在世界坐标系下的平面点数据;s42:至少选择所述平面点数据中不共线的三个点,拟合在世界坐标系下的平面;s43:在所述世界坐标系下,判断所述当前帧的所述平面与所述历史帧的历史输出平面是否为同一个平面,若是,以将合并后的平面作为当前输出平面,若否,则将所述平面
作为当前输出平面。
[0013]
在本技术中,s43具体为:s431:在所述世界坐标系下,判断所述平面与所述历史输出平面之间的法向量之间的夹角是否小于第一阈值、所述平面的平面中心点距所述历史输出平面的距离是否小于第二阈值、以及所述平面的平面中心点和所述历史输出平面的平面中心点之间的距离是否小于两者的半径之和;s432:若均是,则将所述平面与所述历史输出平面合并,以将合并后的平面作为当前输出平面,否则,则将所述平面作为当前输出平面。
[0014]
在本技术中,所述深度视频空间平面检测方法还会更新合并后的平面的平面中心点和半径。
[0015]
在本技术中,采用如下方式更新合并后的平面的平面中心点和半径:,,其中n表示合并后的平面上、在世界坐标系下的内点的数量;表示遍历合并后的平面上内点的第一个点。
[0016]
与现有技术相比,本技术涉及的深度视频空间平面检测方法,具有如下优点和有益效果:(1)对获取候选平面的的候选点采用角度和距离的限制,优化候选点,使获取到候选平面更稳定,进而从候选平面中获取的初始平面也更稳定;(2)基于初始平面p上内点,对所有内点进行空间聚类,进一步优化检测当前帧的平面的平面数据,有效剔除点云噪点,提高平面检测的准确性,且噪点减少使检测平面的结果更稳定;且基于所获取的初始平面p上的内点,而非整体点云数据,并仅需要遍历一遍初始平面p上内点,即可获取检测平面,使得检测平面过程速度快。
[0017]
此外,本技术还涉及一种深度视频空间平面检测系统,其特征在于,包括:预处理模块,其用于对深度视频中当前帧的rgb图像和深度图像进行预处理,以获取当前帧的点云数据和位姿信息;第一获取模块,其根据所述点云数据选取满足如下方程的多组候选点,每组候选点包括三个候选点p1、p2及p3,拟合得到多个候选平面,并从所述多个候选平面中获取初始平面p,其中,,r1、r2及r3分别是预设限值;第二获取模块,对所有内点pi进行空间聚类,获取点数最多的类,所述类中的点为所述当前帧的检测平面的检测平面数据;帧间处理模块,其根据所述深度视频中历史帧的历史输出平面数据及所述检测平
面,获取当前输出平面。
[0018]
结合附图阅读本发明的具体实施方式后,本发明的其他特点和优点将变得更加清楚。
附图说明
[0019]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0020]
图1是本发明提出的基于点云空间聚类的深度视频空间平面检测方法一实施例的流程图;图2是本发明提出的基于点云空间聚类的深度视频空间平面检测方法中对内点进行空间聚类的流程图。
具体实施方式
[0021]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
[0022]
基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在本发明的描述中,需要理解的是,术语“中心”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0023]
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0024]
术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0025]
随着ar技术的飞速发展,ar技术的应用场景越来越丰富。在ar场景中,由于需要在空间平面上放置虚拟对象,以便与用户交互,因此需要获取空间平面的信息,如空间平面的中心点、法向量以及平面范围等等。
[0026]
出于对深度视频中平面检测的准确性、稳定性及快速性,参见图1,本技术涉及一种深度视频空间平面检测方法。
[0027]
图1其示出了深度视频空间平面检测方法的流程图。
[0028]
图1中示出的方法基于系统的架构来实现的,因此,如下,结合图1和系统的结构对深度视频中空间平面进行检测。
[0029]
s1:对深度视频中当前帧的rgb图和深度图进行预处理,以得到当前帧的点云数据及位姿信息。
[0030]
本技术中的深度视频指的是连续的多帧深度图序列,其中深度图被实施为具有深度信息的二维图像,其与二维图像类似,但像素值为被拍摄点到检测相机的距离的深度,以便通过坐标转换模型将深度图转化为点云数据。
[0031]
本技术中提到的历史帧是指深度视频中当前帧之前的所有帧。
[0032]
本技术中的检测相机指的是深度摄像头,其能够获取当前帧的rgb图像和深度图,利用现有成熟的rgbd

slam算法基于rgbd图像和深度图,获取当前帧的点云数据和位姿信息。
[0033]
位姿信息的使用将在如下过程中使用。
[0034]
将深度图转换为点云数据的方式是本领域技术人员熟知的技术。
[0035]
根据检测相机的内参,通过坐标转换模块对当前帧的深度图进行转换,以获取当前帧的点云数据。
[0036]
更详细地,该坐标转换模块可以但不限于被实施为:其中,(i,j)为深度图中像素点的像素坐标,i为像素点的深度值;(x,y,z)为与像素点对应的点云坐标,c
x
、c
x
、f
x
及fx为检测相机的内参。
[0037]
如上所述的过程是通过预处理模块处理得到的。
[0038]
s2:从点云数据中选取满足如下方程的多组候选点,每组候选点包括三个候选点p1、p2及p3,拟合得到多个候选平面,并从多个候选平面中获取初始平面p;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)其中,,r1、r2及r3分别是预设限值。
[0039]
在本技术中,可以选择r1=10
°
,r2=0.1m,r3=1m。在s2中,采用公式(1)进行规则约束,提高所选取的候选点的稳定性。
[0040]
对于很多点云数据,可能会存在多组如上所述的候选点,每组候选点具有三个候选点。
[0041]
针对当前的点云数据,为了获取到一个能够包括较多点的粗略的初始平面,在本技术中,利用公式(1)循环获取每组中三个候选点时,采用循环次数(例如50次)作为约束条件,以此获取有限组候选点。
[0042]
需要说明的是,如上三个候选点p1、p2及p3为未被历史帧标记的点,且不能共线。
[0043]
针对每组候选点,利用待定系数法求取平面方程,获取多个候选平面。
[0044]
例如,循环50次,获取50组候选点、及对应的50个候选平面。
[0045]
初始平面p需要从该多个候选平面中选取。
[0046]
如下举例说明如何获取初始平面p及其上的内点。
[0047]
在本技术中,采用距离限定条件进行约束,遍历所有点云数据,将点距离各平面的
距离小于例如0.05m的点记录为该候选平面上的内点。
[0048]
如此,针对50个候选平面中每个候选平面,在遍历完所有点云数据后,会获取到属于该候选平面的一组内点。
[0049]
即,一组候选点对应一个候选平面,一个候选平面对应一组内点。
[0050]
比较多组内点中各组内点的数量,将内点的数量最多的一组内点对应的候选平面认为是初始平面p,该组内点为初始平面p上的内点。
[0051]
在s2中,采用一定规则约束候选点的选取,保证候选点选取的准确性,从而有助于获取准确的初始平面p。
[0052]
如上获取初始平面p的过程,采用第一获取模块来实现的。
[0053]
s3:基于初始平面p及其内点p
i
,对内点p
i
进行空间聚类,获取点数最多的类,类中的点为当前帧的检测平面的检测平面数据。
[0054]
s2中获取到的初始平面p为粗平面,为了准确获取到空间平面,剔除噪点,在s3中对其内点p
i
后进行筛选,以便保证空间平面检测准确性。
[0055]
s3用于获取检测平面的精确信息,例如中心点、半径及内点。
[0056]
如上获取检测平面的过程,采用第二获取模块来实现的。
[0057]
具体地,图2示出了对内点p
i
进行空间聚类的流程图。
[0058]
s31:在初始平面p中选择一点作为初始类的中心点p
ci
,半径b
i
为预设初始半径。
[0059]
如上所述的初始类的中心点p
ci
可以任意选取(例如,可以选择为第一个遍历的点),可以根据s2中获取到的初始平面p上的内点p
i
利用如下方程(2)计算得到。
[0060]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)其中,n表示初始平面p上内点p
i
的数量。
[0061]
在本技术中,预设初始半径可以选择为0.5m。
[0062]
s32:遍历初始平面p上的内点,计算所遍历点p
k
与各中心点p
ci
的距离s。
[0063]
在仅存在一个类时,其具有一个中心点p
ci
,遍历初始平面p上的点,计算所遍历点p
k
与中心点p
ci
的距离s。
[0064]
在存在至少两个类时,其每个类具有一个中心点p
ci
,遍历初始平面p上的点,计算所遍历点p
k
与各中心点p
ci
的距离s。
[0065]
s33:判断s的大小,若s位于第一预设范围内,则将p
k
聚类至中心点p
ci
所属的类中;若s位于第二预设范围内,则将p
k
聚类至中心点p
ci
所属的类中,且采用如下公式更新中心点p
ci
和半径b
i
;若s位于第三预设范围内,则构建新类,并将p
k
作为新类的中心点p
ci
,且设定新类的半径b
i
为所述预设初始半径。
[0066][0066]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)其中为的归一化向量,所述第一预设范围、第二预设范围及第三预设范围依
次增大。
[0067]
如上方程(3),用于更新聚类后的类及新类的p
ci
和半径b
i

[0068]
在s33中,实现对内点p
i
的聚类,且获取类的中心点和半径。
[0069]
s34:是否遍历完初始平面p上的内点,若否,返回s32,若是,结束。
[0070]
在遍历完所有的内点后,获取到多个类,以及每个类中的点、类的中心点及半径。
[0071]
选择类中点数最多的类作为检测平面上的内点,该类中的点为检测平面上的内点,该类的中心点作为该检测平面的中心点,该类的半径作为该检测平面的半径。
[0072]
在本技术中,第一预设范围、第二预设范围和第三预设范围依次增大,例如,第一预设范围为[0,0.5m],第二预设范围为[0.5m,0.8m],第三预设范围为[0.8m, ∞)。
[0073]
通过s3将粗平面上的数据,通过点云空间聚类算法,有效过滤掉噪点,获取更精确的平面数据,提高了检测平面的检测精度。
[0074]
且点云空间聚类算法只需要遍历一遍初始平面p上的内点,即可获取较精确的平面数据,运算快速,节省运算时间。
[0075]
s4:根据深度视频中历史帧的历史输出平面数据及检测平面,获取当前输出平面。
[0076]
在s3中对当前帧的深度图进行处理,以获取到当前帧的检测平面之后,则会根据历史输出平面进行帧间合并,以在移动过程中获得稳定的检测结果。
[0077]
此获取帧间合并的过程,采用帧间处理模块来实现。
[0078]
由于当前帧的检测平面是在相机坐标系下的数据,因此,需要通过检测相机的位姿信息对检测平面的数据进行配准,以获得当前帧的检测平面在世界坐标系下的数据,包括检测平面上、在世界坐标系下的内点、中心点及半径。
[0079]
具体地,采用如下方式进行帧间合并处理。
[0080]
s41:根据位姿信息,对检测平面数据进行配准处理,以获得当前帧的检测平面在世界坐标系下的平面点数据。
[0081]
如上s1所述,在s1中获取到位姿信息,记为t
wi
,其包括旋转信息和平移信息。
[0082]
利用位姿信息t
wi
将相机坐标系下的检测平面上的内点转换为世界坐标系下的平面点数据。
[0083]
例如,p
w
=t
wi
*p
i
;其中p
i
是相机坐标系下的检测平面上的内点的坐标,t
wi
是当前帧在世界坐标系中的位姿信息,p
w
是p
i
在世界坐标系下的点的坐标。
[0084]
如此,获取到p
w
,p
w
形成如上所述的平面点数据。
[0085]
s42:至少选择平面点数据中不共线的三个点,拟合在世界坐标系下的平面。
[0086]
任选平面点数据中三个不共线点形成,利用待定系数法求取平面方程,即,获取到在世界坐标系下的平面方程。
[0087]
s43:在世界坐标系下,判断当前帧的平面与历史输出平面是否为同一个平面,若是,以将合并后的平面作为当前输出平面,若否,则将平面作为当前输出平面。
[0088]
历史帧的历史输出平面可以存储于平面地图中,且每个历史输出平面都有平面信息,该平面信息是在世界坐标系下的。
[0089]
例如,平面信息包括平面方程、平面上内点、平面的中心点及平面的半径等,判断当前帧的(s42中获取到的)平面与历史输出平面是否为同一个平面的方式很
多,例如,可以判断两个平面的法向量是否相似(相似的法向量不一定是同一平面,也可能是平行平面)、两者是否重合、以及两者之间的距离来判断是否为同一个平面。
[0090]
在判断两者为同一个平面时,合并该平面和历史输出平面,并将合并后的平面作为当前输出平面。
[0091]
在判断两者不为同一个平面时,将该平面作为当前输出平面,并将该平面添加至平面地图中。
[0092]
在本技术中,判断当前帧的平面与历史输出平面是否为同一个平面采用如下方式实现。
[0093]
s431:在世界坐标系下,判断平面与历史输出平面之间的法向量之间的夹角是否小于第一阈值、平面的平面中心点距历史输出平面的距离是否小于第二阈值、以及平面的平面中心点和历史输出平面的平面中心点之间的距离是否小于两者的半径之和。
[0094]
如上所述的,能够获取到所检测到的平面/历史输出平面的平面方程、平面上内点、平面的中心点及半径。
[0095]
因此,能够判断是否满足(1)所检测到的平面和历史输出平面之间的法向量之间的夹角是否小于第一阈值;(2)该平面的平面中心点距历史输出平面的距离是否小于第二阈值;(3)该平面的平面中心点和历史输出平面的平面中心点之间的距离是否小于两者的半径之和。
[0096]
在本技术中,第一阈值选择为10
°
,第二阈值选择为0.2m。
[0097]
s432:若均是,则将平面与历史输出平面合并,以将合并后的平面作为当前输出平面,否则,则将平面作为当前输出平面。
[0098]
若满足s431中的(1)、(2)及(3)三个条件,则说明平面与历史输出平面属于同一个平面,此时,将平面与历史输出平面合并。
[0099]
在合并之前,平面和历史输出平面都具有在世界坐标系下的平面信息,例如,平面方程、平面上内点、平面中心点及半径等。
[0100]
因此,在合并之后,需要重新计算合并后的平面在世界坐标系下的平面信息,例如平面方程、平面上内点、平面中心点及半径等。
[0101]
例如,需要重新计算中合并后平面的平面信息。
[0102]
在本技术中,采用如下方式更新合并后的平面的平面中心点和半径:,,其中n表示合并后的平面上、在世界坐标系下的内点的数量;表示遍历合并后的平面上内点的第一个点。
[0103]
若不满足s431中的(1)、(2)及(3)三个条件中任一个,则说明平面与历史输出平面不属于同一个平面,此时,将平面作为当前输出平面,并添加至平面地图中。
[0104]
需要说明的是,在当前帧为深度视频中的第一帧时,深度视频中将不存在历史帧,直接将当前帧的检测平面作为当前输出平面即可;接着,在进行下一帧的平面检测时,当前输出平面则被作为历史帧的历史输出平面。
[0105]
即,本技术中所提及的历史输出平面包括从深度视频的历史帧中检测出来的所有检测平面。
[0106]
本技术涉及的深度视频空间平面检测方法,能够快速、准确地检测到深度视频中空间平面,效率及准确度高。
[0107]
本技术还涉及一种深度视频空间平面检测系统,其包括如上所述的预处理模块、第一获取模块、第二获取模块和帧间处理模块。
[0108]
采用如上所述的系统来实现如上所述的空间平面检测方法,参见如上所述,在此不做赘述。
[0109]
以上实施例仅用以说明本发明的技术方案,而非对其进行限制;尽管参照前述实施例对本发明进行了详细的说明,对于本领域的普通技术人员来说,依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明所要求保护的技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献