CN109697753B - 一种基于rgb-d slam的无人机三维重建方法、无人机 - Google Patents
一种基于rgb-d slam的无人机三维重建方法、无人机 Download PDFInfo
- Publication number
- CN109697753B CN109697753B CN201811500426.8A CN201811500426A CN109697753B CN 109697753 B CN109697753 B CN 109697753B CN 201811500426 A CN201811500426 A CN 201811500426A CN 109697753 B CN109697753 B CN 109697753B
- Authority
- CN
- China
- Prior art keywords
- camera
- coordinate system
- unmanned aerial
- aerial vehicle
- rgb
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000009466 transformation Effects 0.000 claims abstract description 22
- 238000007781 pre-processing Methods 0.000 claims abstract description 11
- 238000003384 imaging method Methods 0.000 claims description 46
- 238000012937 correction Methods 0.000 claims description 29
- 239000002245 particle Substances 0.000 claims description 16
- 230000003287 optical effect Effects 0.000 claims description 12
- 238000001514 detection method Methods 0.000 claims description 10
- 239000011159 matrix material Substances 0.000 claims description 8
- 238000005457 optimization Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 7
- 238000002366 time-of-flight method Methods 0.000 claims description 7
- 230000033001 locomotion Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 4
- 238000000605 extraction Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 abstract description 15
- 238000010276 construction Methods 0.000 abstract description 6
- 239000003086 colorant Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013075 data extraction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/80—Geometric correction
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- 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/10024—Color image
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本发明属于图像数据处理技术领域,公开了一种基于RGB‑D SLAM的无人机三维重建方法;Kinect相机数据提取与预处理;RGB‑D SLAM算法的实现,最终得到的最优相机位姿进行相机定位与三维地图环境重建;地图转化与路径规划。本发明对比于只有前端时得到有效的改善,环境已经可以被直观的认出,基本达到预先的要求;同时通过使用预处理数据原则,有效的解决了数据维度过大的问题,使得构建出的地图趋于真实场景。本发明减少数据集的维度,有效的提升算法的处理性能,并且不会对全局地图的构建与无人机的定位产生明显的影响;提升整个SLAM的构图精度,同时也会降低数据集的维度,提高运行效率。
Description
技术领域
本发明属于图像数据处理技术领域,尤其涉及一种基于RGB-D SLAM的无人机三维重建方法、无人机。
背景技术
目前,业内常用的现有技术是这样的:
多旋翼无人机是一种具备垂直起降,悬停并具有优良低速飞行性能的无人驾驶飞行器,在航拍,农业植保,电力巡线以及快递运输等诸多领域,得到了广泛的应用和发展。但是,无人机是一种科技含量很高的产品,未经过培训的普通大众很难正确理解和掌握,容易造成一定的损失和危害,不利于无人机的普及和发展。当前,大多数无人机都是室外飞行,不便于课堂讲授和演示。一款室内飞行性能优良,便于课堂教学的无人机,成为无人机教育领域的刚需。
无人机室内飞行一直是无人机领域的研究热点,室内应用也暂时是无人机应用的空白区域,这是因为室内环境相对复杂,人员走动,色调单一,光线多变,没有GPS信号等诸多因素,无人机难于定位和完成路径规划。以上问题促使大部分无人机在室内的飞行性能并不稳定,所以研究人员就需要应用其他方法为无人机的位置进行精确定位,与此同时还能够构建出环境地图。
由于室内无人机无法较好的接收卫星信号,所以无法通过卫星定位,其需要依靠自身所携带的传感器来进行定位,比如激光雷达,彩色相机等等。通过上述传感器接收到的信息如何转变为无人机的位置信息,需要复杂的处理过程。在室内环境未知的条件下,人们根据已有传感器信息来进行无人机定位更是难上加难。SLAM(Simultaneous Localizationand Mapping)问题就是在这样的需求背景下提出的,是当前无人机定位技术研究的一个重要课题。SLAM技术的重要意义是它很好的解决了无人机定位与环境地图构建之间的耦合问题,使二者能够同时被求解出来。SLAM问题基本包括视觉里程计、后端、回环检测、构建地图这四部分,其中视觉里程计被称作为前端部分,在这部分中,SLAM技术很好的融合了计算机视觉与信号处理、刚体运动学等领域相关的内容;SLAM算法的后端又与几何学,图优化以及概率论等学科相融合。此外,现有技术中,点云地图的误差是比较大的,甚至后面还有多出的部分,这是与实际严重不符的;现有技术中无人机转弯过快或者飞行过快而导致的数据丢失问题,是无人机飞行过慢导致数据重复而使得算法运行速率降低的问题;现有技术中,构图精度较低,降低运行效率。在转弯的过程中,无人机需要考虑飞行安全性能,降低了无人机的飞行速度,而相机采集的帧率是没有改变的,导致在该处采集的数据重复,解决该问题的方法是将采集的帧率与无人机的飞行速度结合起来,能够以不同的帧率满足高速和低速状态下不同的数据采集需求,提高了数据集的精度。
综上所述,现有技术存在的问题是:现有技术中无人机转弯过快或者飞行过快而导致的数据丢失,构图精度较低,运行效率低。
解决上述技术问题的难度和意义:难度在于如何将相机的采集帧率与无人机的飞行速度结合起来,同时在结合的过程中其中的参数如何设计,即多高的速度对应多少帧率,保证数据不丢失,不重复。解决该问题的意义重大,能够解决当前大多采用固定帧率采集数据不够精确的问题。
发明内容
针对现有技术存在的问题,本发明提供了一种基于RGB-D SLAM的无人机三维重建方法。
本发明是这样实现的,一种基于RGB-D SLAM的无人机三维重建方法,具体包括以下步骤:
步骤一:Kinect相机数据提取与预处理:采用开源OPENNI程序框架进行Kinect相机数据的提取,采用通讯方式,对提取到的彩色RGB图片信息与深度Depth图片信息进行储存;
步骤二:RGB-D SLAM算法的实现:利用前端算法对RGB-D图像进行特征检测与描述符提取,对提取到的描述进行特征匹配,根据匹配结果估算运动变换并进行优化;后端算法根据前端算法的结果构建位姿图,然后进行闭环检测与位姿图优化,最终得到的最优相机位姿进行相机定位与三维地图环境重建;
步骤三:地图转化与路径规划:在生成的三维点云的基础上,将其转化成为八叉树地图,进而生成环境空间的二维地图,对无人机的路径进行规划。
进一步,步骤一中,数据预处理包括有相机针孔模型和深度信息获取模型。
进一步,步骤一中,相机针孔模型具体为:
物体所在的环境为世界坐标系O-X-Y-Z,所成倒立像的平面称之为成像坐标系o′-x′-y′-z,相机本身又有着自己的坐标系,称之为相机坐标系o-x-y-z;本发明取相机坐标系o-x-y-z与成像坐标系o′-x′-y′-z′的z轴重合,x轴向右,y轴由右手定则确定,o称为相机光心;
为了简化模型,将现实中的物体抽象为一个质点A。该质点在相机坐标系o-x-y-z的坐标为[x,y,z]T,其反射的光通过相机光心o成像在成像坐标系o′-x′-y′-z,坐标为[x′,y′,z′]T,同时成像的平面距离相机光心距离为相机的焦距f0;根据三角形相似规则,可得到下式所示:
通常,在成像之后,相机内部会自动将倒立的像转变成为正的图像,所以公式中并未出现负号,默认相机已经自动调节完成,这也是为了后文处理方便。下面将成像坐标系下的坐标单独放到等号的一侧,可得到如式(2)所示:
上式就是质点坐标从相机坐标系o-x-y-z到成像坐标系o′-x′-y′-z′的变换公式;既然是彩色相机成像,就需要储存彩色信息;通畅彩色图片的信息是以像素的形式进行储存的;在计算机中,每个像素点存储着对应的二进制数值,二进制数值也就表示着每个点的颜色;
下面定义像素坐标系c-u-v,其中c为像素坐标系的原心,相对于成像坐标系o′-x′-y′-z′的原心o′平移了[cx,cy]T;u相当于成像坐标系o′-x′-y′-z′的x′轴,但与之不同的是,图像在u轴上缩放了α倍。同理,v相当于成像坐标系o′-x′-y′-z′的y′轴,图像在v轴上缩放了β倍;这样,由图像坐标转换为像素坐标可由式(3)表示:
结合式(2)与式(3),可得到质点坐标从相机坐标系o-x-y-z到像素坐标系c-u-v的变换公式,如式(4)所示:
下面,令fx=αf0、fy=βf0,f0为相机的焦距,单位为米,α、β单位均为像素/米,所以fx、fy的单位均为像素,整理式(4)可得:
上式即为针孔模型的数学表述,描述了物体坐标从相机坐标系转换到像素坐标系,如果考虑到畸变影响,则需对式(5)进行一定的矫正。
畸变主要分为两种,即径向畸变与切向畸变,二者均是由于光线穿过透镜所引起的,透镜自身对光线的影响以及在安装时透镜不能完全平行于像素平面,这两点因素均会造成畸变;引入畸变纠正系数对其进行修正,不加证明的给出畸变修正方程:
其中,是归一化后的坐标值,即为式(5)中的[x/z,y/z]T,[xcorrect,ycorrect]T是经过修正后的坐标;称修正系数k1、k2、k3为径向修正系数,称修正系数p1、p2为切向修正系数;在得到了修正后的坐标后,只需将式(5)中的坐标[x/z,y/z]T替换成为[xcorrect,ycorrect]T即可;
通过上述变换,得到彩色相机成像的基本模型;实际上,每个像素坐标[u,v]T会储存一个数值矩阵I(u,v)∈RL×h,数值矩阵I中存储着二进制数值,这些二进制数通过确定的关系与计算机中红绿蓝三个通道对应,通过这三种颜色的搭配来组合出实际物体的颜色。
进一步,步骤一中,深度信息获取模型具体为:
选用的传感器为Kinect2.0相机,其测量像素深度的原理是飞行时间法;所谓飞行时间法,相机的发射端发出一束脉冲,经过物体的反射再回到相机的接收端,相机通过这个过程所消耗的时间t来计算出飞行距离s,进而得到像素点的深度值;如下式所示。
d=s/2=vt/2 (7)
进一步,步骤一中,基于相机针孔模型和深度信息获取模型获得数据处理的原则具体为:
(1)由于Kinect2.0输入帧频为每秒30帧,设定一个阈值,若无人机的移动距离或者转弯角度没有达到该阈值,则认为采集到的数据集有重复,舍弃到采集到的数据;
(2)由于Kinect2.0相机对于彩色RGB图像与深度Depth图像的采集是分为两个通道进行的,若在一次采集周期中,彩色RGB图像与深度Depth图像时间相差为1/30秒,则认为数据异步,忽略掉采集的数据;
(3)Kinect2.0相机的有效采集范围是0.5m~4.5m,超过此范围所采集的数据集均认为是无效数据集;这种做法能够提升整个SLAM的构图精度,同时也会降低数据集的维度,提高运行效率。
进一步,步骤二中,RGB-D SLAM算法可以分为前端与后端两部分。
进一步,步骤二中,RGB-D SLAM算法前端的任务为提取不同观察结果之间的空间关系,后段的任务为使用非线性误差函数优化位姿图中相机的位姿信息。
进一步,步骤三中,八叉树转二维地图具体包括:
(1)建立八叉树模型;
(2)假设相机在深度图中测量到了一个空间点的深度为d,这就代表八叉树模型中d的深度范围之内是没有任何八叉树结点的,说明该条路径没有被占据,可以通过;
(3)取某一高度下的八叉树平面,将某物体所占据的小立方体的最远距离计算出来,以此距离作为半径做圆,将该圆作为无人机的禁飞区,在此基础上进行路径规划。
综上所述,本发明的优点及积极效果为:本发明对比于只有前端时得到了有效的改善,环境已经可以被直观的认出,基本达到预先的要求;同时通过使用预处理数据原则,有效的解决了数据维度过大的问题,使得构建出的地图趋于真实场景。本发明与激光扫描不同的是,飞行时间法可以一次性得到整个图像的深度信息,并不需要逐点扫描,这也增加了效率。本发明Kinect2.0输入帧频为每秒30帧,设定一个阈值,若无人机的移动距离或者转弯角度没有达到该阈值,则认为采集到的数据集有重复,舍弃到采集到的数据;此种做法会减少数据集的维度,有效的提升算法的处理性能,并且不会对全局地图的构建与无人机的定位产生明显的影响。
本发明Kinect2.0相机的有效采集范围是0.5m~4.5m,超过此范围所采集的数据集均认为是无效数据集;能够提升整个SLAM的构图精度,同时也会降低数据集的维度,提高运行效率。
附图说明
图1是本发明实施例提供的基于RGB-D SLAM的无人机三维重建方法流程图。
图2是本发明实施例提供的针孔相机模型示意图。
图3是本发明实施例提供的成像相似三角形示意图。
图4是本发明实施例提供的飞行时间原理示意图。
图5是本发明实施例提供的八叉树模型示意图。
图6是本发明实施例提供的二维地图的建立示意图。
图7是本发明实施例提供的无人机转角限制示意图。
图8是本发明实施例提供的改进A*搜索路径示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
下面结合附图对本发明的应用原理做详细描述。
如图1所示,本发明实施例提供的基于RGB-D SLAM的无人机三维重建方法,具体包括以下步骤:
S101:Kinect相机数据提取与预处理:采用开源OPENNI程序框架进行Kinect相机数据的提取,采用通讯方式,对提取到的彩色RGB图片信息与深度Depth图片信息进行储存;
S102:RGB-D SLAM算法的实现:利用前端算法对RGB-D图像进行特征检测与描述符提取,对提取到的描述进行特征匹配,根据匹配结果估算运动变换并进行优化;后端算法根据前端算法的结果构建位姿图,然后进行闭环检测与位姿图优化,最终得到的最优相机位姿进行相机定位与三维地图环境重建;
S103:地图转化与路径规划:在生成的三维点云的基础上,将其转化成为八叉树地图,进而生成环境空间的二维地图,对无人机的路径进行规划。
步骤S101中,本发明实施例提供的数据预处理包括有相机针孔模型和深度信息获取模型。
步骤S101中,本发明实施例提供的相机针孔模型具体为:
物体所在的环境为世界坐标系O-X-Y-Z,所成倒立像的平面称之为成像坐标系o′-x′-y′-z′,相机本身又有着自己的坐标系,称之为相机坐标系o-x-y-z;本发明取相机坐标系o-x-y-z与成像坐标系o′-x′-y′-z′的z轴重合,x轴向右,y轴由右手定则确定,o称为相机光心;
为了简化模型,将现实中的物体抽象为一个质点A。该质点在相机坐标系o-x-y-z的坐标为[x,y,z]T,其反射的光通过相机光心o成像在成像坐标系o′-x′-y′-z′,坐标为[x′,y′,z′]T,同时成像的平面距离相机光心距离为相机的焦距f0;根据三角形相似规则,可得到下式所示:
通常,在成像之后,相机内部会自动将倒立的像转变成为正的图像,所以公式中并未出现负号,默认相机已经自动调节完成,这也是为了后文处理方便。下面将成像坐标系下的坐标单独放到等号的一侧,可得到如式(2)所示:
上式就是质点坐标从相机坐标系o-x-y-z到成像坐标系o′-x′-y′-z′的变换公式;既然是彩色相机成像,就需要储存彩色信息;通畅彩色图片的信息是以像素的形式进行储存的;在计算机中,每个像素点存储着对应的二进制数值,二进制数值也就表示着每个点的颜色;
下面定义像素坐标系c-u-v,其中c为像素坐标系的原心,相对于成像坐标系o′-x′-y′-z′的原心o′平移了[cx,cy]T;u相当于成像坐标系o′-x′-y′-z′的x′轴,但与之不同的是,图像在u轴上缩放了α倍。同理,v相当于成像坐标系o′-x′-y′-z′的y′轴,图像在v轴上缩放了β倍;这样,由图像坐标转换为像素坐标可由式(3)表示:
结合式(2)与式(3),可得到质点坐标从相机坐标系o-x-y-z到像素坐标系c-u-v的变换公式,如式(4)所示:
下面,令fx=αf0、fy=βf0,f0为相机的焦距,单位为米,α、β单位均为像素/米,所以fx、fy的单位均为像素,整理式(4)可得:
上式即为针孔模型的数学表述,描述了物体坐标从相机坐标系转换到像素坐标系,如果考虑到畸变影响,则需对式(5)进行一定的矫正。
畸变主要分为两种,即径向畸变与切向畸变,二者均是由于光线穿过透镜所引起的,透镜自身对光线的影响以及在安装时透镜不能完全平行于像素平面,这两点因素均会造成畸变;引入畸变纠正系数对其进行修正,不加证明的给出畸变修正方程:
其中,是归一化后的坐标值,即为式(5)中的[x/z,y/z]T,[xcorrect,ycorrect]T是经过修正后的坐标;称修正系数k1、k2、k3为径向修正系数,称修正系数p1、p2为切向修正系数;在得到了修正后的坐标后,只需将式(5)中的坐标[x/z,y/z]T替换成为[xcorrect,ycorrect]T即可;
通过上述变换,得到彩色相机成像的基本模型;实际上,每个像素坐标[u,v]T会储存一个数值矩阵I(u,v)∈RL×h,数值矩阵I中存储着二进制数值,这些二进制数通过确定的关系与计算机中红绿蓝三个通道对应,通过这三种颜色的搭配来组合出实际物体的颜色。
步骤S101中,本发明实施例提供的深度信息获取模型具体为:
选用的传感器为Kinect2.0相机,其测量像素深度的原理是飞行时间法;所谓飞行时间法,相机的发射端发出一束脉冲,经过物体的反射再回到相机的接收端,相机通过这个过程所消耗的时间t来计算出飞行距离s,进而得到像素点的深度值;如下式所示。
d=s/2=vt/2 (7)
步骤S101中,本发明实施例提供的基于相机针孔模型和深度信息获取模型获得数据处理的原则具体为:
(1)由于Kinect2.0输入帧频为每秒30帧,设定一个阈值,若无人机的移动距离或者转弯角度没有达到该阈值,则认为采集到的数据集有重复,舍弃到采集到的数据;
(2)由于Kinect2.0相机对于彩色RGB图像与深度Depth图像的采集是分为两个通道进行的,若在一次采集周期中,彩色RGB图像与深度Depth图像时间相差为1/30秒,则认为数据异步,忽略掉采集的数据;
(3)Kinect2.0相机的有效采集范围是0.5m~4.5m,超过此范围所采集的数据集均认为是无效数据集;这种做法能够提升整个SLAM的构图精度,同时也会降低数据集的维度,提高运行效率。
步骤S102中,本发明实施例提供的RGB-D SLAM算法可以分为前端与后端两部分。
步骤S102中,本发明实施例提供的RGB-D SLAM算法前端的任务为提取不同观察结果之间的空间关系,后段的任务为使用非线性误差函数优化位姿图中相机的位姿信息。
步骤S103中,本发明实施例提供的八叉树转二维地图具体包括:
(1)建立八叉树模型;
(2)假设相机在深度图中测量到了一个空间点的深度为d,这就代表八叉树模型中d的深度范围之内是没有任何八叉树结点的,说明该条路径没有被占据,可以通过;
(3)取某一高度下的八叉树平面,将某物体所占据的小立方体的最远距离计算出来,以此距离作为半径做圆,将该圆作为无人机的禁飞区,在此基础上进行路径规划。
下面结合而具体实施例对本发明的应用原理做详细说明;
实施例1:
(一)本发明实施例提供的基于RGB-D SLAM的无人机三维重建方法,具体包括以下步骤:
S101:Kinect相机数据提取与预处理:采用开源OPENNI程序框架进行Kinect相机数据的提取,采用通讯方式,对提取到的彩色RGB图片信息与深度Depth图片信息进行储存;
S102:RGB-D SLAM算法的实现:利用前端算法对RGB-D图像进行特征检测与描述符提取,对提取到的描述进行特征匹配,根据匹配结果估算运动变换并进行优化;后端算法根据前端算法的结果构建位姿图,然后进行闭环检测与位姿图优化,最终得到的最优相机位姿进行相机定位与三维地图环境重建;
S103:地图转化与路径规划:在生成的三维点云的基础上,将其转化成为八叉树地图,进而生成环境空间的二维地图,对无人机的路径进行规划。
具体的原理及公式如下所示:
1、预处理数据原则:
如图2所示,相机针孔模型;物体所在的环境为世界坐标系O-X-Y-Z,所成倒立像的平面称之为成像坐标系o′-x′-y′-z,相机本身又有着自己的坐标系,称之为相机坐标系o-x-y-z;本发明取相机坐标系o-x-y-z与成像坐标系o′-x′-y′-z′的z轴重合,x轴向右,y轴由右手定则确定,o称为相机光心;
如图3所示,为了简化模型,将现实中的物体抽象为一个质点A。该质点在相机坐标系o-x-y-z的坐标为[x,y,z]T,其反射的光通过相机光心o成像在成像坐标系o′-x′-y′-z,坐标为[x′,y′,z′]T,同时成像的平面距离相机光心距离为相机的焦距f0;根据三角形相似规则,可得到下式所示:
通常,在成像之后,相机内部会自动将倒立的像转变成为正的图像,所以公式中并未出现负号,默认相机已经自动调节完成,这也是为了后文处理方便。下面将成像坐标系下的坐标单独放到等号的一侧,可得到如式(2)所示:
上式就是质点坐标从相机坐标系o-x-y-z到成像坐标系o′-x′-y′-z′的变换公式;既然是彩色相机成像,就需要储存彩色信息;通畅彩色图片的信息是以像素的形式进行储存的;在计算机中,每个像素点存储着对应的二进制数值,二进制数值也就表示着每个点的颜色;
下面定义像素坐标系c-u-v,其中c为像素坐标系的原心,相对于成像坐标系o′-x′-y′-z′的原心o′平移了[cx,cy]T;u相当于成像坐标系o′-x′-y′-z′的x′轴,但与之不同的是,图像在u轴上缩放了α倍。同理,v相当于成像坐标系o′-x′-y′-z′的y′轴,图像在v轴上缩放了β倍;这样,由图像坐标转换为像素坐标可由式(3)表示:
结合式(2)与式(3),可得到质点坐标从相机坐标系o-x-y-z到像素坐标系c-u-v的变换公式,如式(4)所示:
下面,令fx=αf0、fy=βf0,f0为相机的焦距,单位为米,α、β单位均为像素/米,所以fx、fy的单位均为像素,整理式(4)可得:
上式即为针孔模型的数学表述,描述了物体坐标从相机坐标系转换到像素坐标系,如果考虑到畸变影响,则需对式(5)进行一定的矫正。
畸变主要分为两种,即径向畸变与切向畸变,二者均是由于光线穿过透镜所引起的,透镜自身对光线的影响以及在安装时透镜不能完全平行于像素平面,这两点因素均会造成畸变;引入畸变纠正系数对其进行修正,不加证明的给出畸变修正方程:
其中,是归一化后的坐标值,即为式(5)中的[x/z,y/z]T,[xcorrect,ycorrect]T是经过修正后的坐标;称修正系数k1、k2、k3为径向修正系数,称修正系数p1、p2为切向修正系数;在得到了修正后的坐标后,只需将式(5)中的坐标[x/z,y/z]T替换成为[xcorrect,ycorrect]T即可;
通过上述变换,得到彩色相机成像的基本模型;实际上,每个像素坐标[u,v]T会储存一个数值矩阵I(u,v)∈RL×h,数值矩阵I中存储着二进制数值,这些二进制数通过确定的关系与计算机中红绿蓝三个通道对应,通过这三种颜色的搭配来组合出实际物体的颜色。
深度信息获取模型:选用的传感器为Kinect2.0相机,其测量像素深度的原理是飞行时间法。
如图4所示,所谓飞行时间法,就是相机的发射端发出一束脉冲,经过物体的反射再回到相机的接收端,相机通过这个过程所消耗的时间t来计算出飞行距离s,进而得到像素点的深度值。如式(7)所示:
d=s/2=vt/2 (7)
与激光扫描不同的是,飞行时间法可以一次性得到整个图像的深度信息,并不需要逐点扫描,这也增加了效率。
基于上述模型提出针对Kinect2.0相机采集到的数据的处理原则为:
(1)由于Kinect2.0输入帧频为每秒30帧,以本发明中无人机的飞行性能来看,本发明不需要考虑无人机转弯过快或者飞行过快而导致的数据丢失问题,需要考虑的是无人机飞行过慢导致数据重复而使得算法运行速率降低的问题,该问题会影响SLAM的实时性,处理方式为:设定一个阈值,若无人机的移动距离或者转弯角度没有达到该阈值,则认为采集到的数据集有重复,舍弃到采集到的数据。此种做法会减少数据集的维度,有效的提升算法的处理性能,并且不会对全局地图的构建与无人机的定位产生明显的影响。
(2)由于Kinect2.0相机对于彩色RGB图像与深度Depth图像的采集是分为两个通道进行的,所以不得不考虑采集数据的同步性问题,处理方式为:若在一次采集周期中,彩色RGB图像与深度Depth图像时间相差为1/30秒,则认为数据异步,忽略掉采集的数据。
(3)如前文所述,Kinect2.0相机的有效采集范围是0.5m~4.5m,超过此范围所采集的数据集均认为是无效数据集。这种做法能够提升整个SLAM的构图精度,同时也会降低数据集的维度,提高运行效率。
2、八叉树转二维地图:
如图5所示,八叉树是指将一个立方体的每个面四等分,这样就得到了八个小立方体。在定义了分割精度以后,可以将空间全部用小立方体表示,比如定义深度d=8,一个小立方体的精度为1cm3,这样所分割整个空间的大小为88cm3=16.78m3。整个空间从大到小细分的过程,就是八叉树模型建立的过程。
假设相机在深度图中测量到了一个空间点的深度为d,这就代表八叉树模型中d的深度范围之内是没有任何八叉树结点的,说明该条路径没有被占据,可以通过。
根据此思想,取某一高度下的八叉树平面,将某物体所占据的小立方体的最远距离计算出来,以此距离作为半径做圆,将该圆作为无人机的禁飞区,在此基础上进行路径规划。
(二)结果
RGB-D算法前端与后端产生的地图中,点云地图的误差是比较大的,甚至后面还有多出的部分,这是与实际严重不符的。在后端非线性优化,并且使用了回环检测后,整个地图较只有前端时得到了改善,环境已经可以被直观的认出,基本达到了预先的要求。该结果使用了上述预处理数据原则,有效的解决数据维度过大的问题,使得构建出的地图趋于真实场景。
使用数据集继续进行仿真实验,可得到八叉树地图。
由图可知看出每个障碍物出现的位置,一般情况下,无人机在飞行阶段只考虑横向运动,所以可以将无人机三维航路规划问题转换成为在某一确定高度下的无人机二维航路规划。因此,所要规划的问题为:在某一确定高度下,无人机始末位置之间的路径。考虑到环境中出现的障碍物,可以考虑将其设定为某一平面下的圆来近似,该圆所围成的区域是最小涵盖障碍物的。通过对障碍的简化处理,得到障碍分布平面,在此基础上进行航路规划。主要目标是:尽可能规避各障碍,并考虑无人机飞行性能限制,达到预期飞行目的。
如图6所示,该仓库在高度为1.2m时的障碍分布平面,后文的部分将依据此二维地图进行仿真。图中左下角为无人机起点,右上角为无人机终点,黑色曲线为无人机可能飞行的路径,两个圆代表障碍区域。该地图长为4米,宽为6米,起点位置坐标(0m,0m),终点位置坐标(4m,6m),两个障碍区域的圆心坐标为(1.5m,3m)和(4m,3m),半径分别为1.2m和0.8m。
根据图6所构建出的二维平面地图进行路径规划,采用A*搜索算法进行搜索。
A*算法是有效的寻路搜索算法,其基本思路是给定一个代价函数f(n),代价函数由下面两个部分组成,分别为起始点到当前点的代价g(n)、当前点到目标点的代价h(n)。具体公式如式(8)所示:
f(n)=g(n)+h(n) (8)
此处的代价函数选用的是欧式距离,即h(n)与g(n)均采用两点之间距离。虽然A*算法搜索效率很高,但是直接应用到无人机上面会面临很多问题,比如A*只考虑到实际代价并未考虑无人机的最大转弯角度的限制。基于此问题,提出一种改进A*算法,将无人机的最大转角考虑进去。
如图7所示,假设无人机在每次制导周期内的转角大小为θmax。
如图8所示,改进A*搜索路径的示意图。
依照上述改进模型,同时采用图6所示二维地图,改进A*算法产生的路径如图8所示。图8的横纵坐标并不代表真实长度,而是A*算法中用到的网格,图8与实际长度的换算关系为:一单位网格等于0.05m。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于RGB-D SLAM的无人机三维重建方法,其特征在于,所述的基于RGB-D SLAM的无人机三维重建方法包括以下步骤:
步骤一,采用开源OPENNI程序框架对Kinect相机数据的提取;采用通讯方式对提取到的彩色RGB图片信息与深度Depth图片信息进行储存;
步骤二,利用前端算法对RGB-D图像进行特征检测与描述符提取,对提取到的描述进行特征匹配,根据匹配结果估算运动变换并进行优化;后端算法根据前端算法的结果构建位姿图,进行闭环检测与位姿图优化;最终得到的最优相机位姿进行相机定位与三维地图环境重建;
步骤三,生成的三维点云转化成为八叉树地图,生成环境空间的二维地图,对无人机的路径进行规划;
所述步骤一中,数据预处理包括有相机针孔模型和深度信息获取模型;
所述步骤一中,相机针孔模型具体为:
物体所在的环境为世界坐标系O-X-Y-Z,所成倒立像的平面称之为成像坐标系o′-x′-y′-z,相机坐标系o-x-y-z;取相机坐标系o-x-y-z与成像坐标系o′-x′-y′-z′的z轴重合,x轴向右,y轴由右手定则确定,o称为相机光心;
将现实中的物体抽象为一个质点A,质点在相机坐标系o-x-y-z的坐标为[x,y,z]T,其反射的光通过相机光心o成像在成像坐标系o′-x′-y′-z′,坐标为[x′,y′,z′]T,同时成像的平面距离相机光心距离为相机的焦距f0;根据三角形相似规则,得到:
将成像坐标系下的坐标单独放到等号的一侧,得到:
质点坐标从相机坐标系o-x-y-z到成像坐标系o′-x′-y′-z′的变换公式;既然是彩色相机成像,每个像素点存储着对应的二进制数值,二进制数值也就表示着每个点的颜色;
像素坐标系c-u′-v,其中c为像素坐标系的原心,相对于成像坐标系o′-x′-y′-z′的原心o′平移了[cx,cy]T;u相当于成像坐标系o′-x′-y′-z′的x′轴,但与之不同的是,图像在u轴上缩放了α倍;同理,v相当于成像坐标系o′-x′-y′-z′的y′轴,图像在v轴上缩放了β倍;由图像坐标转换为像素坐标:
得到质点坐标从相机坐标系o-x-y-z到像素坐标系c-u-v的变换公式:
令fx=αf0、fy=βf0,f0为相机的焦距,单位为米,α、β单位均为像素/米,所以fx、fy的单位均为像素得:
畸变修正方程:
其中,是归一化后的坐标值,[x/z,y/z]T,[xcorrect,ycorrect]T是经过修正后的坐标;称修正系数k1、k2、k3为径向修正系数,称修正系数p1、p2为切向修正系数;在得到了修正后的坐标后,将坐标[x/z,y/z]T替换成为[xcorrect,ycorrect]T;得到彩色相机成像的基本模型;每个像素坐标[u,v]T会储存一个数值矩阵I(u,v)∈RL×h,数值矩阵I中存储着二进制数值。
2.如权利要求1所述的基于RGB-D SLAM的无人机三维重建方法,其特征在于,所述步骤一中,深度信息获取模型具体为:
选用的传感器为Kinect2.0相机,其测量像素深度的原理是飞行时间法;所谓飞行时间法,相机的发射端发出一束脉冲,经过物体的反射再回到相机的接收端,相机通过这个过程所消耗的时间t来计算出飞行距离s,得到像素点的深度值:
d=s/2=vt/2。
3.如权利要求1所述的基于RGB-D SLAM的无人机三维重建方法,其特征在于,所述步骤一中,基于相机针孔模型和深度信息获取模型获得数据处理具体为:
(1)由于Kinect2.0输入帧频为每秒30帧,设定一个阈值;若无人机的移动距离或者转弯角度没有达到该阈值,则采集到的数据集有重复,舍弃到采集到的数据;
(2)由于Kinect2.0相机对于彩色RGB图像与深度Depth图像的采集是分为两个通道进行;若在一次采集周期中,彩色RGB图像与深度Depth图像时间相差为1/30秒,则认为数据异步,忽略掉采集的数据;
(3)Kinect2.0相机的有效采集范围是0.5m~4.5m,超过此范围所采集的数据集均认为是无效数据集。
4.如权利要求1所述的基于RGB-D SLAM的无人机三维重建方法,其特征在于,所述步骤二中,RGB-D SLAM算法可以分为前端与后端两部分。
5.如权利要求1所述的基于RGB-D SLAM的无人机三维重建方法,其特征在于,所述步骤二中,RGB-D SLAM算法前端的任务为提取不同观察结果之间的空间关系,后段的任务为使用非线性误差函数优化位姿图中相机的位姿信息。
6.如权利要求1所述的基于RGB-D SLAM的无人机三维重建方法,其特征在于,所述步骤三中,八叉树转二维地图具体包括:
(1)建立八叉树模型;
(2)相机在深度图中测量到了一个空间点的深度为d,这就代表八叉树模型中d的深度范围之内是没有任何八叉树结点的,说明该条路径没有被占据,可以通过;
(3)取某一高度下的八叉树平面,将某物体所占据的小立方体的最远距离计算出来,以此距离作为半径做圆,将该圆作为无人机的禁飞区,在此基础上进行路径规划。
7.一种应用权利要求1~6任意一项所述基于RGB-D SLAM的无人机三维重建方法的无人机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811500426.8A CN109697753B (zh) | 2018-12-10 | 2018-12-10 | 一种基于rgb-d slam的无人机三维重建方法、无人机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811500426.8A CN109697753B (zh) | 2018-12-10 | 2018-12-10 | 一种基于rgb-d slam的无人机三维重建方法、无人机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109697753A CN109697753A (zh) | 2019-04-30 |
CN109697753B true CN109697753B (zh) | 2023-10-03 |
Family
ID=66230429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811500426.8A Active CN109697753B (zh) | 2018-12-10 | 2018-12-10 | 一种基于rgb-d slam的无人机三维重建方法、无人机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109697753B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110322511B (zh) * | 2019-06-28 | 2021-03-26 | 华中科技大学 | 一种基于物体和平面特征的语义slam方法和系统 |
CN110324585B (zh) * | 2019-07-15 | 2021-05-04 | 清华大学 | 基于高速移动平台的slam系统的实现方法 |
CN110514198B (zh) * | 2019-08-28 | 2021-05-04 | 电子科技大学 | 一种基于计算机视觉技术的前后端架构地图定位方法 |
CN110853095B (zh) * | 2019-10-11 | 2021-06-18 | 北京达佳互联信息技术有限公司 | 相机定位方法、装置、电子设备及存储介质 |
CN112950527B (zh) * | 2019-11-25 | 2022-06-14 | 哈尔滨工业大学 | 一种基于限定几何关联约束的立体匹配形貌测量方法 |
CN111080659A (zh) * | 2019-12-19 | 2020-04-28 | 哈尔滨工业大学 | 一种基于视觉信息的环境语义感知方法 |
CN111199578B (zh) * | 2019-12-31 | 2022-03-15 | 南京航空航天大学 | 基于视觉辅助激光雷达的无人机三维环境建模方法 |
CN112184812B (zh) * | 2020-09-23 | 2023-09-22 | 广东海洋大学 | 提升无人机相机对AprilTag识别定位精度方法及定位方法和系统 |
CN112378397B (zh) * | 2020-11-02 | 2023-10-10 | 中国兵器工业计算机应用技术研究所 | 无人机跟踪目标的方法、装置及无人机 |
CN114518767A (zh) * | 2020-11-19 | 2022-05-20 | 复旦大学 | 一种基于倾斜摄影模型的无人机三维路径规划方法 |
CN114529800A (zh) * | 2022-01-12 | 2022-05-24 | 华南理工大学 | 一种旋翼无人机避障方法、系统、装置及介质 |
CN114593738B (zh) * | 2022-05-09 | 2022-07-26 | 山东大学 | 基于八叉树搜索反光柱的机器人全局定位方法及系统 |
CN114972640A (zh) * | 2022-05-20 | 2022-08-30 | 天津理工大学 | 一种基于点云的线缆三维重建与参数计算的方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103247075A (zh) * | 2013-05-13 | 2013-08-14 | 北京工业大学 | 基于变分机制的室内环境三维重建方法 |
EP3086283A1 (en) * | 2015-04-21 | 2016-10-26 | Hexagon Technology Center GmbH | Providing a point cloud using a surveying instrument and a camera device |
CN106940186A (zh) * | 2017-02-16 | 2017-07-11 | 华中科技大学 | 一种机器人自主定位与导航方法及系统 |
CN107240129A (zh) * | 2017-05-10 | 2017-10-10 | 同济大学 | 基于rgb‑d相机数据的物体及室内小场景恢复与建模方法 |
CN107292921A (zh) * | 2017-06-19 | 2017-10-24 | 电子科技大学 | 一种基于kinect相机的快速三维重建方法 |
CN107590827A (zh) * | 2017-09-15 | 2018-01-16 | 重庆邮电大学 | 一种基于Kinect的室内移动机器人视觉SLAM方法 |
CN108564616A (zh) * | 2018-03-15 | 2018-09-21 | 中国科学院自动化研究所 | 快速鲁棒的rgb-d室内三维场景重建方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9037396B2 (en) * | 2013-05-23 | 2015-05-19 | Irobot Corporation | Simultaneous localization and mapping for a mobile robot |
CN103914874B (zh) * | 2014-04-08 | 2017-02-01 | 中山大学 | 一种无特征提取的紧致sfm三维重建方法 |
US10382699B2 (en) * | 2016-12-01 | 2019-08-13 | Varjo Technologies Oy | Imaging system and method of producing images for display apparatus |
US10977818B2 (en) * | 2017-05-19 | 2021-04-13 | Manor Financial, Inc. | Machine learning based model localization system |
-
2018
- 2018-12-10 CN CN201811500426.8A patent/CN109697753B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103247075A (zh) * | 2013-05-13 | 2013-08-14 | 北京工业大学 | 基于变分机制的室内环境三维重建方法 |
EP3086283A1 (en) * | 2015-04-21 | 2016-10-26 | Hexagon Technology Center GmbH | Providing a point cloud using a surveying instrument and a camera device |
CN106940186A (zh) * | 2017-02-16 | 2017-07-11 | 华中科技大学 | 一种机器人自主定位与导航方法及系统 |
CN107240129A (zh) * | 2017-05-10 | 2017-10-10 | 同济大学 | 基于rgb‑d相机数据的物体及室内小场景恢复与建模方法 |
CN107292921A (zh) * | 2017-06-19 | 2017-10-24 | 电子科技大学 | 一种基于kinect相机的快速三维重建方法 |
CN107590827A (zh) * | 2017-09-15 | 2018-01-16 | 重庆邮电大学 | 一种基于Kinect的室内移动机器人视觉SLAM方法 |
CN108564616A (zh) * | 2018-03-15 | 2018-09-21 | 中国科学院自动化研究所 | 快速鲁棒的rgb-d室内三维场景重建方法 |
Non-Patent Citations (4)
Title |
---|
许晓东 ; 陈国良 ; 李晓园 ; 周文振 ; 杜珊珊 ; .一种采用图像特征匹配技术的RGB-D SLAM算法.测绘通报.2017,(10),全文. * |
许晓东等.一种采用图像特征匹配技术的RGB-D SLAM算法.《测绘通报》.2017,(第10期), * |
黄金鑫 ; 赵勇 ; .一种改进的未知环境无人机三维地图实时创建方法.机械与电子.2015,(01),全文. * |
黄金鑫等.一种改进的未知环境无人机三维地图实时创建方法.《机械与电子》.2015,(第01期), * |
Also Published As
Publication number | Publication date |
---|---|
CN109697753A (zh) | 2019-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109697753B (zh) | 一种基于rgb-d slam的无人机三维重建方法、无人机 | |
CN111599001B (zh) | 基于图像三维重建技术的无人机导航地图构建系统及方法 | |
CN108428255B (zh) | 一种基于无人机的实时三维重建方法 | |
WO2020135446A1 (zh) | 一种目标定位方法和装置、无人机 | |
CN105203084B (zh) | 一种无人机3d全景视觉装置 | |
Varga et al. | Super-sensor for 360-degree environment perception: Point cloud segmentation using image features | |
CN110842940A (zh) | 一种建筑测量机器人多传感器融合三维建模方法及系统 | |
CN111060924B (zh) | 一种slam与目标跟踪方法 | |
CN110988912A (zh) | 自动驾驶车辆的道路目标与距离检测方法、系统、装置 | |
JP2019179021A (ja) | 地図生成及び移動主体の位置決めの方法及び装置 | |
CN113743391A (zh) | 应用于低速自主驾驶机器人的三维障碍物检测系统与方法 | |
CN105225269A (zh) | 基于运动机构的三维物体建模系统 | |
Sanfourche et al. | Perception for UAV: Vision-Based Navigation and Environment Modeling. | |
CN113050074B (zh) | 无人驾驶环境感知中相机与激光雷达标定系统及标定方法 | |
CN112991433B (zh) | 基于双目深度感知和车辆位置的货车外廓尺寸测量方法 | |
WO2023155580A1 (zh) | 一种对象识别方法和装置 | |
WO2024114119A1 (zh) | 一种基于双目相机引导的传感器融合方法 | |
CN112767461A (zh) | 激光点云与序列全景影像自动配准方法 | |
CN114693787A (zh) | 停车库建图与定位方法、系统及车辆 | |
Ivanovas et al. | Block matching based obstacle avoidance for unmanned aerial vehicle | |
CN117036300A (zh) | 基于点云-rgb异源图像多级配准映射的路面裂缝识别方法 | |
CN114923477A (zh) | 基于视觉与激光slam技术的多维度空地协同建图系统和方法 | |
Florea et al. | Wilduav: Monocular uav dataset for depth estimation tasks | |
CN111654626B (zh) | 一种包含深度信息的高分辨率相机 | |
CN112767459A (zh) | 基于2d-3d转换的无人机激光点云与序列影像配准方法 |
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 | ||
GR01 | Patent grant |