应用于飞行器中的位置检测方法和装置、飞行器与流程

文档序号:15048260发布日期:2018-07-27 23:17阅读:274来源:国知局

本发明涉及智能设备领域,具体而言,涉及一种应用于飞行器中的位置检测方法和装置、飞行器。



背景技术:

在相关技术中,飞行器为了实现对目标对象的测距(获取深度信息),实现方式包括如下三种:其一是在飞行器上加装超声测传感器,通过超声测传感器发出的超声波来测取与目标对象的测距;其二是飞行器上加装激光雷达传感器,通过激光雷达传感器发出的激光信号来测取与目标对象的测距;其三是在飞行器上加装深度摄像头,通过深度摄像头来测取与目标对象的测距。

对于以上三种技术方案,存在如下问题:

(1)成本高,购置超声测传感器、激光雷达传感器以及深度摄像头均需消耗较高成本,尤其是深度摄像头,价格比普通的摄像头贵很多;

(2)加装的设备(超声测传感器、激光雷达传感器以及深度摄像头)会进一步增加飞行器的重量;

(3)位置测量准确率较低,如当超声波的发射面和目标物体不是接近于垂直面,有一定的倾斜角度时,或者垂直面不平整,超声波到达物体表面时,并不能准确的朝发射端产生回波,这样就导致了测距不准;再如激光传感器工作时,在室外太阳光比较强的时候,很容易对激光光强度产生干扰,导致测距不准。

针对上述的技术问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种应用于飞行器中的位置检测方法和装置、飞行器,以至少解决相关技术中飞行器进行位置检测的准确率较低等技术问题。

根据本发明实施例的一个方面,提供了一种应用于飞行器中的位置检测方法,该方法包括:获取第一图像和第二图像,第一图像和第二图像是在飞行器位于不同的位置时飞行器上的同一采集装置所采集到的图像;识别出第一图像中的第一特征点和第二图像中的第二特征点,第一特征点在第一图像中所指示的对象和第二特征点在第二图像中所指示的对象为第一对象;基于第一特征点和第二特征点确定采集装置的转换矩阵;利用转换矩阵,将采集装置采集到的第三图像中目标像素点的位置转换为第二对象在第一三维坐标系中的位置,其中,第二对象为目标像素点所标识的对象。

根据本发明实施例的另一方面,还提供了一种应用于飞行器中的位置检测装置,该装置包括:获取单元,用于获取第一图像和第二图像,第一图像和第二图像是在飞行器位于不同的位置时飞行器上的同一采集装置所采集到的图像;识别单元,用于识别出第一图像中的第一特征点和第二图像中的第二特征点,第一特征点在第一图像中所指示的对象和第二特征点在第二图像中所指示的对象为第一对象;确定单元,用于基于第一特征点和第二特征点确定采集装置的转换矩阵;转换单元,用于利用转换矩阵,将采集装置采集到的第三图像中目标像素点的位置转换为第二对象在第一三维坐标系中的位置,其中,第二对象为目标像素点所标识的对象。

根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。

根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。

在本发明实施例中,获取飞行器位于不同的位置时飞行器上的同一采集装置所采集到的第一图像和第二图像,识别出第一图像中的第一特征点和第二图像中的第二特征点,第一特征点在第一图像中所指示的对象和第二特征点在第二图像中所指示的对象为第一对象;基于第一特征点和第二特征点确定采集装置的转换矩阵,无需为飞行器配置各类传感器或深度相机,可通过转换矩阵根据采集装置采集到的第三图像中目标像素点的位置确定目标像素点所标识的第二对象在第一三维坐标系中的位置,可以解决相关技术中飞行器进行位置检测的准确率较低等技术问题,进而达到了飞行器进行位置的准确检测的技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的应用于飞行器中的位置检测方法的硬件环境的示意图;

图2是根据本发明实施例的应用于飞行器中的位置检测方法的硬件环境的示意图;

图3是根据本发明实施例的一种可选的应用于飞行器中的位置检测方法的流程图;

图4是根据本发明实施例的一种可选的图像的示意图;

图5是根据本发明实施例的一种可选的图像特征点的示意图;

图6是根据本发明实施例的一种可选的图像的示意图;

图7是根据本发明实施例的一种可选的坐标系的示意图;

图8是根据本发明实施例的一种可选的双目视觉模型的示意图;

图9是根据本发明实施例的一种可选的景深图的示意图;

图10是根据本发明实施例的一种可选的应用于飞行器中的位置检测装置的示意图;以及

图11是根据本发明实施例的一种终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:

sift:即尺度不变特征变换(scale-invariantfeaturetransform,sift),是用于图像处理领域的一种描述,这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。

surf:surf(speeduprobustfeatures)是sift改进版也是加速版,提高了检测特征点的速度,综合性能要优于sift。

brisk:binaryrobustinvariantscalablekeypoints,brisk特征描述子。

orb:orientedfastandrotatedbrief(ofastandrbrief)的简称。

根据本发明实施例的一方面,提供了一种应用于飞行器中的位置检测方法的方法实施例。

可选地,在本实施例中,上述应用于飞行器中的位置检测方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于pc、手机、平板电脑等。上述的终端可以是飞行器上的控制终端,或与飞行器具有通信关系的终端(如与之连接的移动终端),上述的服务器为用于为飞行器106提供服务的服务器,飞行器可以利用该服务器提供的运算资源。本发明实施例的应用于飞行器中的位置检测方法可以由服务器102来执行,服务器可将执行结果发送到飞行器上的控制终端,以操控飞行器的飞行;也可以由终端104来执行,此时的控制终端可以是飞行器上的控制终端,也可是与飞行器分离的控制终端;还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的应用于飞行器中的位置检测方法也可以是由安装在其上的客户端来执行。

如图2所示,当在本发明实施例的应用于飞行器中的位置检测方法由终端来执行时:

步骤s202,飞行器按照规划路径飞行,在飞行过程中,在位于第一位置l1时通过安装在其上的图像采集装置201采集障碍物1的第一图像,并保存在飞行器的存储器203中。

步骤s204,飞行器继续按照规划路径飞行,在位于第二位置l2时再次通过安装在其上的图像采集装置201采集障碍物1的第二图像。飞行器的处理器205根据采集到的第一图像和第二图像建立自身坐标系(第二三维坐标系)与世界坐标系(第一三维坐标系)之间的映射关系。

步骤s206,飞行器继续按照规划路径飞行,在位于第三位置l3时再次通过安装在其上的图像采集装置201采集障碍物2的图像,并通过上述映射关系确定障碍物2是否在规划路径上。步骤s206的技术方案可以通过如下步骤实现:

步骤s2062,终端获取第一图像和第二图像,第一图像和第二图像是在飞行器位于不同的位置时飞行器上的同一采集装置所采集到的图像。

步骤s2064,终端识别出第一图像中的第一特征点和第二图像中的第二特征点,第一特征点在第一图像中所指示的对象和第二特征点在第二图像中所指示的对象为第一对象。

步骤s2066,终端基于第一特征点和第二特征点确定采集装置的转换矩阵,转换矩阵用于根据采集装置采集到的第三图像中目标像素点的位置确定目标像素点所标识的第二对象在第一三维坐标系中的位置。

步骤s208,若障碍物在规划路径上,则对规划路径进行修正,得到修正路径,并按照修正路径飞行(如飞行到位置l4),以绕开障碍物2。

对于步骤s206示出的应用于飞行器中的位置检测方法的实施例,图3是根据本发明实施例的一种可选的应用于飞行器中的位置检测方法的流程图,如图3所示,该方法可以包括以下步骤:

步骤s302,获取第一图像和第二图像,第一图像和第二图像是在飞行器位于不同的位置时飞行器上的同一采集装置所采集到的图像。

上述的采集装置可以是相机、摄像机等可以采集图像的装置,可以模块形式嵌入飞行器中,也可以独立设备的形式与飞行器通讯连接;第一图像和第二图像可以是指相机采集的相片,也可以是摄像机等采集到的视频中的视频帧。图片是指飞行器在飞行过程中,采集装置向飞行器周围进行图像采集所采集到的图像。

步骤s304,识别出第一图像中的第一特征点和第二图像中的第二特征点,第一特征点在第一图像中所指示的对象和第二特征点在第二图像中所指示的对象为第一对象。

特征点又称兴趣点或关键点,它是在图像中相对比较突出的一些点,常把角点作为特征点,在本申请的实施例中,所涉及的特征点包括但不局限于如sift、surf、harris、shi-tomasi、brisk、orb等特征点。

步骤s306,基于第一特征点和第二特征点确定采集装置的转换矩阵。

步骤s308,利用转换矩阵,将采集装置采集到的第三图像中目标像素点的位置转换为第二对象在第一三维坐标系中的位置,第二对象为目标像素点所标识的对象。

上述的转换矩阵是同于实现第二三维坐标系中的坐标点(由第三图像中目标像素点的位置确定)与第一三维坐标系中坐标点的坐标转换的矩阵,第二三维坐标系是采集装置的三维坐标系(随着飞行器的飞行,该坐标系会发生变化),第一三维坐标系是参考用的三维坐标系,不随飞行器的飞行而变化。

在确定转换矩阵之后,在采集到第三图像时,可通过转换矩阵根据采集装置采集到的第三图像中目标像素点的位置确定目标像素点所标识的第二对象在第一三维坐标系中的位置。

采用飞行器自带的摄像头,通过采集连续视频帧的方式,提取视野内物体的特征,并根据这些特征提取物体的深度信息。不会有上述的超声波,激光雷达这些传感器的缺陷,如成本较高、测量精度低、会增加飞行器重量的问题。同时采用飞行器自带的传感器,也不会产生额外的费用。

通过上述步骤s302至步骤s308,获取飞行器位于不同的位置时飞行器上的同一采集装置所采集到的第一图像和第二图像,识别出第一图像中的第一特征点和第二图像中的第二特征点,第一特征点在第一图像中所指示的对象和第二特征点在第二图像中所指示的对象为第一对象(同一个对象);基于第一特征点和第二特征点确定采集装置的转换矩阵,无需为飞行器配置各类传感器或深度相机,可通过转换矩阵根据采集装置采集到的第三图像中目标像素点的位置确定目标像素点所标识的第二对象在第一三维坐标系中的位置,可以解决相关技术中飞行器进行位置检测的准确率较低等技术问题,进而达到了飞行器进行位置的准确检测的技术效果。

在本申请的技术方案中,无人机一般都内置有摄像头,内置摄像头可以协助用户完成拍照的功能,在无人机飞行的过程中,可以借助此基础硬件(内置摄像头)实时连续采集视频帧,并针对连续视频帧进行处理,求取视频帧即视野范围内物体的相对深度信息(距离摄像头的相对距离),根据深度信息可以对物体进行三维重建或是预测障碍物的位置等。下面结合图3所示的步骤进行详述:

在步骤s302提供的技术方案中,获取第一图像和第二图像,第一图像和第二图像是在飞行器位于不同的位置时飞行器上的同一采集装置所采集到的图像。

上述的第一图像和第二图像可以是实时采集到的图像,也即飞行器在飞行过程中,可以实时计算出转换矩阵,以便于用于计算深度信息。

上述的第一图像和第二图像也可以是预先采集到的图像,计算出转换矩阵,以便在需要时利用该矩阵计算出深度信息。

在步骤s304提供的技术方案中,识别出第一图像中的第一特征点和第二图像中的第二特征点,可通过如下方式实现:获取第一图像的多个特征点中的第三特征点,其中,第三特征点为第一图像的多个特征点中的任意一个;在第二图像的多个特征点中存在与第三特征点匹配的特征点的情况下,将第三特征点作为识别出的第一特征点,将第二图像的多个特征点中与第三特征点匹配的特征点作为第二特征点。

一种可选的“获取第一图像的多个特征点中的第三特征点”的方式如下,以为例:

步骤s3041,确定描述子采样区域。

如sift描述子h(x,y,θ)是对特征点附近邻域内高斯图像梯度统计结果的一种表示,它是一个三维的阵列,但通常将它表示成一个矢量。矢量是通过对三维阵列按一定规律进行排列得到的。特征描述子与特征点所在的尺度有关,因此,对梯度的求取应在特征点对应的高斯图像上进行。将特征点附近邻域划分成bp*bp个子区域,每个子区域的尺寸为mσ个像元,其中,m=3,bp=4。σ为特征点的尺度值。考虑到实际计算时,需要采用双线性插值,计算的图像区域为mσ(bp+1)。如果再考虑旋转的因素,那么,实际计算的图像区域应大

步骤s3042,生成描述子。

旋转图像至主方向,为了保证特征矢量具有旋转不变性,需要以特征点为中心,将特征点附近邻域内图像梯度的位置和方向旋转一个方向角θ,即将原图像x轴转到与主方向相同的方向。旋转公式如下:

在特征点附近邻域图像梯度的位置和方向旋转后,再以特征点为中心,在旋转后的图像中取一个mσbp*mσbp大小的图像区域。并将它等间隔划分成bp*bp个子区域,每个间隔为mσ像元。

生成特征向量,在每子区域内计算8个方向的梯度方向直方图,绘制每个梯度方向的累加值,形成一个种子点。与求特征点主方向时有所不同,此时,每个子区域的梯度方向直方图将0-360度划分为8个方向范围,每个范围为45度,这样,每个种子点共有8个方向的梯度强度信息。由于存在4*4(bp*bp)个子区域,所以,共有4*4*8=128个数据,最终形成128维的sift特征矢量。同样,对于特征矢量需要进行高斯加权处理,加权采用方差为mσbp/2的标准高斯函数,其中距离为各点相对于特征点的距离。使用高斯权重的是为了防止位置微小的变化给特征向量带来很大的改变,并且给远离特征点的点赋予较小的权重,以防止错误的匹配。

步骤s3043,归一化特征向量。

为了去除光照变化的影响,可对上述生成的特征向量进行归一化处理,在归一化处理后,如对特征矢量大于0.2的要进行截断处理,即大于0.2的值只取0.2,然后重新进行一次归一化处理,其目的是为了提高鉴别性。

一种可选的“确定第二图像的多个特征点中是否存在与第三特征点匹配的特征点”的方式如下:

步骤s3044,获取用于描述第三特征点的第一向量和用于描述第二图像的特征点的第二向量,其中,用于描述第三特征点所指示的对象的第一向量的维度与用于描述第二图像的特征点所指示的对象的第二向量的维度相同。

步骤s3045,查找第二图像的多个特征点中的第四特征点和第五特征点,其中,第四特征点的第二向量与第三特征点的第一向量之间的第一欧氏距离小于第二图像的多个特征点中除第四特征点外的任意一个特征点的第二向量与第三特征点的第一向量之间的欧氏距离,第五特征点的第二向量与第三特征点的第一向量之间的第二欧氏距离仅大于第一欧氏距离。

步骤s3046,在第二欧氏距离与第一欧氏距离之间的比值小于阈值的情况下,确定第四特征点为与第三特征点匹配的用于描述第一对象的特征点。

步骤s3047,在第二欧氏距离与第一欧氏距离之间的比值不小于阈值的情况下,确定第四特征点不为与第三特征点匹配的特征点。

在步骤s306提供的技术方案中,基于第一特征点和第二特征点确定采集装置的转换矩阵可通过如下方式实现:根据第一特征点在第一图像中的位置和第二特征点在第二图像中的位置确定转换矩阵所包括的第一矩阵和第二矩阵,其中,第一矩阵用于对采集装置的第二三维坐标系中的坐标轴进行旋转,旋转后的第二三维坐标系中的每个轴与第一三维坐标系中对应的轴的方向相同,第二矩阵用于对第二三维坐标系的原点进行平移,平移后的第二三维坐标系的原点与第一三维坐标系的原点重合。

可选地,可按照如下方式根据第一特征点在第一图像中的位置和第二特征点在第二图像中的位置确定第一矩阵和第二矩阵:

根据第一特征点在第一图像中的位置和第二特征点在第二图像中的位置确定目标向量,其中,目标向量以第二三维坐标系的原点为起点、以第一特征点和第二特征点所标识的对象在第二三维坐标系中的坐标为终点;

根据目标向量在第二三维坐标系和第三三维坐标系中的x轴、y轴及z轴之间的夹角确定第一矩阵,其中,第三三维坐标系的原点与第二三维坐标系的原点相同,第三三维坐标系的x轴的方向与第一三维坐标系的x轴的方向相同,第三三维坐标系的y轴的方向与第一三维坐标系的y轴的方向相同,第三三维坐标系的z轴的方向与第一三维坐标系的z轴的方向相同,第一矩阵包括第一子矩阵、第二子矩阵以及第三子矩阵:

第一子矩阵其中,是目标向量和第二三维坐标系中x轴的夹角与目标向量和第三三维坐标系中x轴的夹角之间的差值,

第二子矩阵其中,θ是目标向量和第二三维坐标系中y轴的夹角与目标向量和第三三维坐标系中y轴的夹角之间的差值,

第三子矩阵其中,ψ是目标向量和第二三维坐标系中z轴的夹角与目标向量和第三三维坐标系中z轴的夹角之间的差值。

最后,若目标向量绕某一定轴旋转,从欧拉定律中可知,绕着固定轴做一个角值的旋转,可以被视为分别以坐标系的三个坐标轴x、y、z作为旋转轴的旋转的叠加。

对于第二矩阵t=[△x,△y,△y],△x为第一三维坐标系的原点与第二三维坐标系的原点在x轴方向上的差值(具体可以另外的一个参考坐标系确定),△y为第一三维坐标系的原点与第二三维坐标系的原点在y轴方向上的差值,△z为第一三维坐标系的原点与第二三维坐标系的原点在z轴方向上的差值。

在步骤s308提供的技术方案中,利用转换矩阵,将采集装置采集到的第三图像中目标像素点的位置转换为第二对象在第一三维坐标系中的位置可通过如下方式实现:识别出目标像素点在采集装置采集到的第三图像中的位置;将目标像素点在第三图像中的位置转换为在采集装置的第二三维坐标系中的第一三维坐标;通过转换矩阵所包括的第一矩阵和第二矩阵将第一三维坐标转换为在第一三维坐标系的第二三维坐标。

将目标像素点在第三图像中的位置转换为在采集装置的第二三维坐标系中的第一三维坐标可以通过内参矩阵k实现,参见后文。

可选地,在通过转换矩阵所包括的第一矩阵和第二矩阵将第一三维坐标转换为在第一三维坐标系的第二三维坐标之后,可获取飞行器在第一三维坐标系中的第三三维坐标(具体可根据飞行器在第一三维坐标系上的飞行速度和飞行时间计算得到);将第二三维坐标与第三三维坐标之间的距离作为第二对象的深度值。

在通过转换矩阵所包括的第一矩阵和第二矩阵将第一三维坐标转换为在第一三维坐标系的第二三维坐标之后,当第二三维坐标在飞行器的飞行路径上的情况下,确认目标像素点在第三图像中所标识的对象为障碍物,并调整飞行器的飞行路径,以避开障碍物。如图2所示,当飞行器位于位置l3时,可按照上述方法发现障碍物2位于规划路线,此时对规划路径进行修正,并按照修正路径飞行,以避开障碍物2。

需要说明的是,在知晓r和t矩阵之后,可以通过opencv中的库函数(如triangulatepoints)实现对上述第二三维坐标的求取。获取的在z方向的坐标值即相当于深度信息。

在本申请的技术方案中,从飞行器内置摄像头(图像采集装置)实时采集图像序列,先提取图像中物体的特征点,找出特征点的匹配关系,根据匹配关系求取运动参数r(rotaion,也即第一矩阵)和t(translation,也即第二矩阵),最后根据匹配的二维坐标点和运动参数求取物体的三维坐标,并提取深度信息。

作为一种可选的实施例,下面以飞行器为无人机为例进一步详述本申请的实施例:

利用本申请的技术方案,无人机在飞行同时,实时采集连续视频帧,如图4中连续时刻(t1,t2,t3,t4),采集到了4张视频帧画面,提取这些画面的特征点,因为是连续帧,所以帧画面中的物体对应的是物理世界中的同一个物体,及画面大部分的内容是相同的,所以特征点也是相同的,所以连续帧中匹配到的特征点也是很多的。如图4的t1,t2为相邻时刻,同一飞行器在不同位置上对同一景物拍照,所得到的图像,也可等同理解为飞行器于同一时刻,在不同位置上的两个相机对同一物体的拍照所得到的图像。根据匹配到的特征点和双目视觉原理,可以计算出这些二位坐标特征点的三维坐标值,由三维坐标值即可得到深度信息,图5为物体相对深度提取效果图(白框内的白点即特征点,其余区域亦是如此)。下面结合具体的步骤详述本申请的实施例:

步骤s11,无人机实时采集视频帧(或者图像帧)。

步骤s12,提取视频帧中的特征点。

特征点又称兴趣点或关键点,它是在图像中相对比较突出的一些点,常把角点作为特征点,在本申请的实施例中,寻找特征点的方法包括但不局限于如sift、surf、harris、shi-tomasi、brisk、orb等方法,不同的处理过程会导致对图像缩放,旋转的处理效果不同,一般效果强大,适用性强的处理速度相对较慢,因此可以根据实际的需求在上述方法中进行选择。

如图6所示,左侧为原始图,右侧为提取特征点后的特征点提取图,右侧的图中区别于左侧的图中的小点即特征点。

步骤s13,当前帧中的特征点和前一帧的特征点进行匹配。

可用一个n维的向量来描述一个特征点,可把它称作特征点的描述子。它记录了特征点周围的区域信息,通过描述子之间的欧式距离来衡量两个特征点之间的匹配程度。距离小的即认为这两个特征点是同一个物体的上的点。选择不同的特征点查找算法,会产生不同的描述子,如harris算法对平移、2d旋转、光照具有不变性,所以特征点在平移后,仍然可以匹配上,或对物体缩小后,物体上的特征点就匹配到了。sift具有对平移、2d旋转、3d旋转(最大约60度)、尺度具有不变性,在物体做平移和一定程度的旋转后,仍然可以匹配的上。

该步骤的具体实施方案如下:确定描述子采样区域;生成描述子,旋转图像至主方向,生成特征向量,如在每子区域内计算8个方向的梯度方向直方图,绘制每个梯度方向的累加值,形成一个种子点。与求特征点主方向时有所不同,此时,每个子区域的梯度方向直方图将0~360度划分为8个方向范围,每个范围为45度,这样,每个种子点共有8个方向的梯度强度信息。

步骤s14,根据匹配结果,求出变换矩阵r和t。

(1)三维空间点和二维图像点之间的关系

(1.1)坐标系

如图7所示,在图像坐标系中以图像的左上角为图像原点o,图像中心作为原点图像坐标系的原点ot,图像的水平方向为xt轴(像素的一个方向u与xt轴平行),图像的竖直方向为yt轴(像素的一个方向v与yt轴平行)的坐标系为图像坐标系。在相机坐标系中,以相机的光心oc作为原点,垂直于成像平面,并与光轴重合的坐标轴为zc轴,xc轴和图像坐标系的xt轴平行,yc轴和图像坐标系的yt轴平行。用户自定义的空间坐标系,符合右手坐标系,用来描述三维空间中的物体,为世界坐标系,世界坐标系中的点用pw描述,其映射在图像中的点用pt描述。

设空间中有一点pw,若世界坐标系与相机坐标系重合,则该点在空间中的坐标为(xt,yt,zt),其中zc为该点到相机光心的垂直距离。设该点在像面上的像为点pt,像素坐标为(u,v),图像的像素坐标系的原点在图像的左上角,光心在图像上投影的坐标为(cx,cy),根据的相似三角形原理有:

u-cx=f*xt/zt,即u=f*xt/zt+cx,其中,f为相机焦距;

v-cy=f*yt/zt,即v=f*yt/zt+cy。

用矩阵可表示为:

其中,称k为内参矩阵。根据内参矩阵k可以把三维空间点和二维坐标点联系起来。

(1.2)相机之间的变换关系

在如图8所示双目视觉模型中,左右两个坐标系相当于图7中右侧图的坐标系,设空间一点x到两个相机像面的垂直距离分别为s1和s2,且这两个相机具有相同的内参矩阵k,与世界坐标系之间的变换关系分别为[r1,t1]和[r2,t2],那么可以得到下面两个等式:

s1*x1=k(r1*x+t1),即s1*k-1*x1=r1*x+t1;

s2*x2=k(r2*x+t2),即s2*k-1*x2=r2*x+t2。

则上式变换为:

若r1=i,t1=0,即带入则:

则:

即可得出:

若两个相机的本征矩阵e=t2*r2,则

上式是同一点在两个相机中的像所满足的关系,它和点的空间坐标、点到相机的距离均没有关系,矩阵e则称为关于这两个相机的本征矩阵。从e中可分离出r1、r2,t1、t2,即可分离出两相机的变换矩阵。

可选地,上述的关于r和t的具体计算可以调用opencv的库函数(如findessentialmat)实现,在函数中会根据匹配的像素点(特征点)来求取e,并通过库函数(如recoverpose)实现对r和t的求取。

步骤s15,根据二维坐标点和变换矩阵求取三维坐标。

根据两相机之间的变换矩阵(r,t)(包括[r1,t1]和[r2,t2])和图像中匹配点的坐标,可计算出两匹配点对应的三维坐标点。

步骤s16,得到图像中的物体深度值。

三维坐标中的z值为距离相机的距离,如图9所示,对两个相机拍摄得到的图像(图9中左侧和中间的图像)进行处理得到的景深图如图9中右侧图所示。

通过本申请实施例所提供的技术方案,由于大多数飞行器自带摄像头,不需要额外的传感器,来获取图像中物体的深度信息,还可以减轻飞行器的重量;利用单目摄像头即可估计图像中的物体的相对摄像头的深度信息。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

根据本发明实施例的另一个方面,还提供了一种用于实施上述应用于飞行器中的位置检测方法的应用于飞行器中的位置检测装置。图10是根据本发明实施例的一种可选的应用于飞行器中的位置检测装置的示意图,如图10所示,该装置可以包括:获取单元1001、识别单元1003、确定单元1005以及转换单元1007。

获取单元1001,用于获取第一图像和第二图像,其中,第一图像和第二图像是在飞行器位于不同的位置时飞行器上的同一采集装置所采集到的图像。

上述的采集装置可以是相机、摄像机等可以采集图像的装置,可以模块形式嵌入飞行器中,也可以独立设备的形式与飞行器通讯连接;第一图像和第二图像可以是指相机采集的相片,也可以是摄像机等采集到的视频中的视频帧。图片是指飞行器在飞行过程中,采集装置向飞行器周围进行图像采集所采集到的图像。

识别单元1003,用于识别出第一图像中的第一特征点和第二图像中的第二特征点,其中,第一特征点在第一图像中所指示的对象和第二特征点在第二图像中所指示的对象为第一对象。

特征点又称兴趣点或关键点,它是在图像中相对比较突出的一些点,常把角点作为特征点,在本申请的实施例中,所涉及的特征点包括但不局限于如sift、surf、harris、shi-tomasi、brisk、orb等特征点。

确定单元1005,用于基于第一特征点和第二特征点确定采集装置的转换矩阵,其中,转换矩阵用于根据采集装置采集到的第三图像中目标像素点的位置确定目标像素点所标识的第二对象在第一三维坐标系中的位置。

转换单元1007,用于利用转换矩阵,将采集装置采集到的第三图像中目标像素点的位置转换为第二对象在第一三维坐标系中的位置,其中,第二对象为目标像素点所标识的对象。

上述的转换矩阵是同于实现第二三维坐标系中的坐标点(由第三图像中目标像素点的位置确定)与第一三维坐标系中坐标点的坐标转换的矩阵,第二三维坐标系是采集装置的三维坐标系(随着飞行器的飞行,该坐标系会发生变化),第一三维坐标系是参考用的三维坐标系,不随飞行器的飞行而变化。

在确定转换矩阵之后,在采集到第三图像时,可通过转换矩阵根据采集装置采集到的第三图像中目标像素点的位置确定目标像素点所标识的第二对象在第一三维坐标系中的位置。

采用飞行器自带的摄像头,通过采集连续视频帧的方式,提取视野内物体的特征,并根据这些特征提取物体的深度信息。不会有上述的超声波,激光雷达这些传感器的缺陷,如成本较高、测量精度低、会增加飞行器重量的问题。同时采用飞行器自带的传感器,也不会产生额外的费用。

需要说明的是,该实施例中的获取单元1001可以用于执行本申请实施例中的步骤s302,该实施例中的识别单元1003可以用于执行本申请实施例中的步骤s304,该实施例中的确定单元1005可以用于执行本申请实施例中的步骤s306,该实施例中的转换单元1007可以用于执行本申请实施例中的步骤s308。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1或2所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。

通过上述模块,获取飞行器位于不同的位置时飞行器上的同一采集装置所采集到的第一图像和第二图像,识别出第一图像中的第一特征点和第二图像中的第二特征点,第一特征点在第一图像中所指示的对象和第二特征点在第二图像中所指示的对象为第一对象;基于第一特征点和第二特征点确定采集装置的转换矩阵,无需为飞行器配置各类传感器或深度相机,可通过转换矩阵根据采集装置采集到的第三图像中目标像素点的位置确定目标像素点所标识的第二对象在第一三维坐标系中的位置,可以解决相关技术中飞行器进行位置检测的准确率较低等技术问题,进而达到了飞行器进行位置的准确检测的技术效果。

上述的识别单元可包括:获取模块,用于获取第一图像的多个特征点中的第三特征点,其中,第三特征点为第一图像的多个特征点中的任意一个;第一识别模块,用于在第二图像的多个特征点中存在与第三特征点匹配的特征点的情况下,将第三特征点作为识别出的第一特征点,将第二图像的多个特征点中与第三特征点匹配的特征点作为第二特征点。

可选地,第一识别模块还可用于:获取用于描述第三特征点的第一向量和用于描述第二图像的特征点的第二向量,其中,用于描述第三特征点所指示的对象的第一向量的维度与用于描述第二图像的特征点所指示的对象的第二向量的维度相同;查找第二图像的多个特征点中的第四特征点和第五特征点,其中,第四特征点的第二向量与第三特征点的第一向量之间的第一欧氏距离小于第二图像的多个特征点中除第四特征点外的任意一个特征点的第二向量与第三特征点的第一向量之间的欧氏距离,第五特征点的第二向量与第三特征点的第一向量之间的第二欧氏距离仅大于第一欧氏距离;在第二欧氏距离与第一欧氏距离之间的比值小于阈值的情况下,确定第四特征点为与第三特征点匹配的用于描述第一对象的特征点;在第二欧氏距离与第一欧氏距离之间的比值不小于阈值的情况下,确定第四特征点不为与第三特征点匹配的特征点。

上述的确定单元可包括:确定模块,用于根据第一特征点在第一图像中的位置和第二特征点在第二图像中的位置确定转换矩阵所包括的第一矩阵和第二矩阵,其中,第一矩阵用于对采集装置的第二三维坐标系中的坐标轴进行旋转,旋转后的第二三维坐标系中的每个轴与第一三维坐标系中对应的轴的方向相同,第二矩阵用于对第二三维坐标系的原点进行平移,平移后的第二三维坐标系的原点与第一三维坐标系的原点重合。

可选地,确定模块还可用于:

根据第一特征点在第一图像中的位置和第二特征点在第二图像中的位置确定目标向量,其中,目标向量以第二三维坐标系的原点为起点、以第一特征点和第二特征点所标识的对象在第二三维坐标系中的坐标为终点;

根据目标向量在第二三维坐标系和第三三维坐标系中的x轴、y轴及z轴之间的夹角确定第一矩阵,其中,第三三维坐标系的原点与第二三维坐标系的原点相同,第三三维坐标系的x轴的方向与第一三维坐标系的x轴的方向相同,第三三维坐标系的y轴的方向与第一三维坐标系的y轴的方向相同,第三三维坐标系的z轴的方向与第一三维坐标系的z轴的方向相同,第一矩阵包括第一子矩阵、第二子矩阵以及第三子矩阵:

第一子矩阵其中,是目标向量和第二三维坐标系中x轴的夹角与目标向量和第三三维坐标系中x轴的夹角之间的差值,

第二子矩阵其中,θ是目标向量和第二三维坐标系中y轴的夹角与目标向量和第三三维坐标系中y轴的夹角之间的差值,

第三子矩阵其中,ψ是目标向量和第二三维坐标系中z轴的夹角与目标向量和第三三维坐标系中z轴的夹角之间的差值。

可选地,本申请的转换单元可包括:第二识别模块,用于在基于第一特征点和第二特征点确定采集装置的转换矩阵之后,识别出目标像素点在采集装置采集到的第三图像中的位置;第一转换模块,用于将目标像素点在第三图像中的位置转换为在采集装置的第二三维坐标系中的第一三维坐标;第二转换模块,用于通过转换矩阵所包括的第一矩阵和第二矩阵将第一三维坐标转换为在第一三维坐标系的第二三维坐标。

可选地,本申请的装置还可包括:控制单元,用于当第二三维坐标在飞行器的飞行路径上的情况下,确认目标像素点在第三图像中所标识的对象为障碍物,并调整飞行器的飞行路径,以避开障碍物。

可选地,本申请的装置还可包括深度检测单元,用于在通过转换矩阵所包括的第一矩阵和第二矩阵将第一三维坐标转换为在第一三维坐标系的第二三维坐标之后,获取飞行器在第一三维坐标系中的第三三维坐标;将第二三维坐标与第三三维坐标之间的距离作为第二对象的深度值。

通过本申请实施例所提供的技术方案,由于大多数飞行器自带摄像头,不需要额外的传感器,来获取图像中物体的深度信息,还可以减轻飞行器的重量;利用单目摄像头即可估计图像中的物体的相对摄像头的深度信息。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1或2所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

根据本发明实施例的另一个方面,还提供了一种用于实施上述应用于飞行器中的位置检测方法的服务器或终端(也即电子装置)。

图11是根据本发明实施例的一种终端的结构框图,如图11所示,该终端可以包括:一个或多个(图11中仅示出一个)处理器1101、存储器1103、以及传输装置1105(如上述实施例中的发送装置),如图11所示,该终端还可以包括输入输出设备1107。

其中,存储器1103可用于存储软件程序以及模块,如本发明实施例中的应用于飞行器中的位置检测方法和装置对应的程序指令/模块,处理器1101通过运行存储在存储器1103内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用于飞行器中的位置检测方法。存储器1103可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1103可进一步包括相对于处理器1101远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置1105用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1105包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1105为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器1103用于存储应用程序。

处理器1101可以通过传输装置1105调用存储器1103存储的应用程序,以执行下述步骤:

获取第一图像和第二图像,其中,第一图像和第二图像是在飞行器位于不同的位置时飞行器上的同一采集装置所采集到的图像;

识别出第一图像中的第一特征点和第二图像中的第二特征点,其中,第一特征点在第一图像中所指示的对象和第二特征点在第二图像中所指示的对象为第一对象;

基于第一特征点和第二特征点确定采集装置的转换矩阵;

利用转换矩阵,将采集装置采集到的第三图像中目标像素点的位置转换为第二对象在第一三维坐标系中的位置,其中,第二对象为目标像素点所标识的对象。

处理器1101还用于执行下述步骤:

获取用于描述第三特征点的第一向量和用于描述第二图像的特征点的第二向量,其中,用于描述第三特征点所指示的对象的第一向量的维度与用于描述第二图像的特征点所指示的对象的第二向量的维度相同;

查找第二图像的多个特征点中的第四特征点和第五特征点,其中,第四特征点的第二向量与第三特征点的第一向量之间的第一欧氏距离小于第二图像的多个特征点中除第四特征点外的任意一个特征点的第二向量与第三特征点的第一向量之间的欧氏距离,第五特征点的第二向量与第三特征点的第一向量之间的第二欧氏距离仅大于第一欧氏距离;

在第二欧氏距离与第一欧氏距离之间的比值小于阈值的情况下,确定第四特征点为与第三特征点匹配的用于描述第一对象的特征点;

在第二欧氏距离与第一欧氏距离之间的比值不小于阈值的情况下,确定第四特征点不为与第三特征点匹配的特征点。

采用本发明实施例,获取飞行器位于不同的位置时飞行器上的同一采集装置所采集到的第一图像和第二图像,识别出第一图像中的第一特征点和第二图像中的第二特征点,第一特征点在第一图像中所指示的对象和第二特征点在第二图像中所指示的对象为第一对象;基于第一特征点和第二特征点确定采集装置的转换矩阵,无需为飞行器配置各类传感器或深度相机,可通过转换矩阵根据采集装置采集到的第三图像中目标像素点的位置确定目标像素点所标识的第二对象在第一三维坐标系中的位置,该位置可用于表示该对象的深度信息,可以解决相关技术中飞行器进行位置检测的准确率较低等技术问题,进而达到了飞行器进行位置的准确检测的技术效果。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图11所示的结构仅为示意,终端可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图11其并不对上述电子装置的结构造成限定。例如,终端还可包括比图11中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图11所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行应用于飞行器中的位置检测方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

s21,获取第一图像和第二图像,其中,第一图像和第二图像是在飞行器位于不同的位置时飞行器上的同一采集装置所采集到的图像;

s22,识别出第一图像中的第一特征点和第二图像中的第二特征点,其中,第一特征点在第一图像中所指示的对象和第二特征点在第二图像中所指示的对象为第一对象;

s23,基于第一特征点和第二特征点确定采集装置的转换矩阵,其中,转换矩阵用于根据采集装置采集到的第三图像中目标像素点的位置确定目标像素点所标识的第二对象在第一三维坐标系中的位置;

s24,利用转换矩阵,将采集装置采集到的第三图像中目标像素点的位置转换为第二对象在第一三维坐标系中的位置,其中,第二对象为目标像素点所标识的对象。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

s31,获取用于描述第三特征点的第一向量和用于描述第二图像的特征点的第二向量,其中,用于描述第三特征点所指示的对象的第一向量的维度与用于描述第二图像的特征点所指示的对象的第二向量的维度相同;

s32,查找第二图像的多个特征点中的第四特征点和第五特征点,其中,第四特征点的第二向量与第三特征点的第一向量之间的第一欧氏距离小于第二图像的多个特征点中除第四特征点外的任意一个特征点的第二向量与第三特征点的第一向量之间的欧氏距离,第五特征点的第二向量与第三特征点的第一向量之间的第二欧氏距离仅大于第一欧氏距离;

s33,在第二欧氏距离与第一欧氏距离之间的比值小于阈值的情况下,确定第四特征点为与第三特征点匹配的用于描述第一对象的特征点;

s34,在第二欧氏距离与第一欧氏距离之间的比值不小于阈值的情况下,确定第四特征点不为与第三特征点匹配的特征点。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1