【技术领域】
本发明属于计算机视觉、模式识别与机器学习领域,涉及基于无监督深度学习的rgb-d室内无人机定位实现方法。
背景技术:
近些年来,无人机技术快速发展,其广泛应用在各种领域,如航拍,安防,农业等。对于复杂未知的环境,无人实现自主定位导航的能力仍有待提高。在室外飞行的过程中,gps能够提供精准的定位服务。但在室内飞行的过程中,由于存在导航信号被屏蔽遮挡的情况,卫星导航不能发挥出很好的作用。目前基于室内无人机的定位方法主要有基于声呐传感器的定位、基于测距仪的定位、基于视觉的定位、以及其他多智能传感器的组合定位。基于视觉的定位技术因价格低廉,不存在信号屏蔽、安装简单等优点被研究人员广泛关注。其中依赖于视觉里程计的导航技术是目前比较新颖且研究火热的一种室内定位方法。
传统的基于视觉里程计定位主要可分为:特征点法、直接法或光流法。基于特征点法的视觉里程计定位的实现过程大概分为:提取特征点、特征点匹配、计算变换矩阵和对数据进行优化。有关于特征点提取、匹配的算法有很多,sift算法在提取特征点方面有着不错的效果,但其算法运算速度问题是一大诟病,surf算法在一定程度上提高了速度,但还是很难解决实时性的问题。fast算法则比较暴力,在提取特征点速度方面有着惊人的表现力,不过由于没有描述子,在特征点匹配的时候效果差强人意。orb算法基于fast算法,增加了改进的brief描述子,在特征点的提取速度和特征点的匹配效果上都有着不错的表现,是视觉里程计特征点法中的典型算法之一。光流法基于灰度不变假设,通过光流跟踪求解平移和旋转矩阵,直接法是光流法的衍生,基于灰度不变假设,计算最小光度误差来优化平移和旋转矩阵。
随着人工智能的蓬勃发展,将深度学习的框架部署在视觉里程计定位系统也变得火热起来。很多研究都是基于有监督的深度学习框架来实现的,这样的框架所需的训练数据需要消耗大量的人力、物力以及时间来标记,增加整个定位系统的实现难度。
技术实现要素:
为了解决上述问题,本发明提出了基于无监督深度学习的rgb-d室内无人机定位实现方法。
本发明所采用的技术方案是:基于无监督深度学习的rgb-d室内无人机定位实现方法,其特征在于,包括以下步骤:
步骤1:获取用于神经网络训练的数据;
所述的数据是经过以下处理得到的:首先从通过室内无人机拍摄数据集,然后采用以下3种方法拓展数据集的大小,①在一定范围内随机调整初始数据集中图片的亮度;②在一定范围内随机对图像的宽和高进行拉伸,然后裁剪成标准图像;③在一定范围内将图像绕其中心随机旋转。最后对数据作初步处理,将rgb图像按其红色通道、绿色通道、蓝色通道分解,将深度图像复制成对应的3通道,再将图像调整为标准大小(416×128)。这样,每一帧rgb-d图像(rgb图像和深度图像)就会形成416×128×3的rgb图像和416×128×3的深度图像。
步骤2:搭建cnn网络,用于提取rgb图像和深度图像的特征提取;
步骤3:搭建rnn网络,基于图像的特征输出相机的位姿;
步骤4:设计损失函数用于rcnn网络训练。
所述的损失函数包括2d损失函数和3d损失函数,2d损失函数是由真实rgb图像与通过预测数据计算得出的rgb图像之间的差异来评估的,3d损失函数是由真实点云图与通过预测数据得出的点云图之间的差异来评估的。
2d损失函数的计算公式如(4)所示:
式中,it为t时刻的rgb图像,it 1为t 1时刻的rgb图像,
3d损失函数的计算公式如(5)所示:
式中,ct为t时刻的点云图,ct 1为t 1时刻的点云图,
损失函数的计算公式如(6)所示:
l=λ2dl2d λ3dl3d(6)
式中,l2d、l3d分别为2d、3d损失函数。λ2d、λ3d分别为2d损失函数、3d损失函数所占的权重,l为总的损失函数。
本发明受益于无监督的网络,不需要大量的人工去标记数据集,并且将深度图像作为神经网络的输入,大大提高了室内无人机定位系统的精度和鲁棒性。相较于传统的室内无人机定位系统,本发明基于深度学习的框架,能够充分利用硬件资源,从而实现提高定位系统的实时性。
【附图说明】
图1为本发明基于无监督深度学习的rgb-d室内无人机定位系统流程图;
图2为本发明基于无监督深度学习的rgb-d室内无人机定位系统cnn网络结构示意图;
图3为本发明基于无监督深度学习的rgb-d室内无人机定位系统rnn网络结构示意图;
图4为本发明基于无监督深度学习的rgb-d室内无人机定位系统cnn网络的各层结构示意图。
【具体实现方式】
下面结合附图对本发明做进一步详细说明。
图1为基于基于无监督深度学习的rgb-d室内无人机定位系统流程图,包括以下几个步骤:
步骤1:获取用于神经网络训练的数据;
步骤1.1:通过室内无人机拍摄数据集;
步骤1.2:拓展数据集;
采用以下3种方法拓展数据集的大小:
①在一定范围内随机调整初始数据集中图片的亮度,调整公式如(7)所示:
image’(x,y)=(image(x,y)/255)γ*255(7)
式中image(x,y)表示输入图像的像素值,image'(x,y)表示输出图像的像素值,其中参数γ∈[0.7,1.3],从而实现调整图像亮度的目的。
②在一定范围内随机对图像的宽和高进行拉伸,然后裁剪成标准图像,调整公式如(8)所示:
式中image(x,y)表示输入图像的像素值,
③在一定范围内将图像绕其中心随机旋转,然后剪切成标准图像,调整公式如(9)(10)(11)所示:
image’(x',y')=image(x,y)(9)
x’=(x-xc)cosθ-(y-yc)sinθ xc(10)
y’=(x-xc)sinθ (y-yc)cosθ yc(11)
式(9)中image(x,y)表示输入图像的像素值,image’(x',y')表示输出图像的像素值,式(10)(11)中(xc,yc)表示图像的中心点,参数θ∈[-5,5],调整后再对图像进行剪切,从而实现通过旋转图像来拓展数据集。
步骤1.3:对数据作初步处理。
将rgb图像按其红色通道、绿色通道、蓝色通道分解,将深度图像复制成对应的3通道,再将图像调整为标准大小(416×128)。这样,每一帧rgb-d图像(rgb图像和深度图像)就会形成416×128×3的rgb图像和416×128×3的深度图像。
步骤2:搭建cnn网络,获取图像特征;
请见图2cnn网络结构图,步骤2的具体实现包括以下几个步骤:
步骤2.1:每次被提取的图像为相邻两帧的rgb-d图像,也就是416×128×6的rgb图像和416×128×6的深度图像,分别经过rgb流与深度流,形成双流结构;
请再结合图4。
步骤2.2:cnn网络以7×7的卷积层开始,紧接着是一个5×5的卷积层,这两个卷积层用于获取双流输入的基本分量;
步骤2.3:再接着是5个3×3的卷积层,用来捕获精细的局部特征;
步骤2.4:由于图像尺寸较小,不需要快速的减小图像的维数,所以,我们将步长都设置为2,给予图像填充,且填充大小随内核下降而下降;
步骤2.5:每个卷积层后面都有一个线性修正单元(relu)作为激活函数,将非线性引入网络;
步骤2.6:为了将cnn输出的特征作为rnn的输入,将4×1×512的rgb特征与深度特征分别平铺为2048维特征向量。
步骤3:搭建rnn网络,输出图像位姿;
请见图3rnn网络结构图,步骤3的具体实现包括以下几个步骤:
步骤3.1:对rgb2048维特征向量与深度2048维特征向量进行整合,首先使用一个连接层将rgb和深度图像特性连接在一起,接着用一个全连接层来平衡这两个特性的权重;
步骤3.2:使用长短时记忆(lstm)来代替标准的rnn,以避免长期依赖问题,lstm由一个单元和三个调节器组成,即输入、输出和遗忘门。细胞在一定的时间间隔内记忆数值,三个门控制信息进出细胞,这是lstm单元的关键;
步骤3.3:再使用一个全连接层,利用旋转与平移相比是高度非线性的特点,输出旋转向量和平移向量。
步骤4:设计损失函数。
步骤4.1:2d损失函数;
2d损失函数的计算公式(12)如所示:
式中,it为t时刻的rgb图像,it 1为t 1时刻的rgb图像,
步骤4.2:3d损失函数;
3d损失函数的计算公式如(13)所示:
式中,ct为t时刻的点云图,ct 1为t 1时刻的点云图,
步骤4.3:损失函数;
损失函数的计算公式如(14)所示:
l=λ2dl2d λ3dl3d(14)
式中,l2d、l3d分别为2d、3d损失函数。λ2d、λ3d分别为2d损失函数、3d损失函数所占的权重,l为总的损失函数。
1.基于无监督深度学习的rgb-d室内无人机定位实现方法,其特征在于,包括以下步骤:
步骤1:拍摄用于神经网络训练的rgb-d数据集,并对数据作初步处理;
步骤2:搭建无监督rcnn网络,提取图像特征,进而输出相机位姿;
步骤3:设计损失函数。
2.根据权利要求1所述的基于无监督深度学习的rgb-d视觉里程计实现方法,其特征在于,所述的步骤1的具体实施方法为:
步骤1.1:利用室内无人机拍摄用于神经网络训练的rgb-d数据集;
步骤1.2:采用以下3种方法拓展数据集的大小,①在一定范围内随机调整初始数据集中图片的亮度;②在一定范围内随机对图像的宽和高进行拉伸,然后裁剪成标准图像;③在一定范围内将图像绕其中心随机旋转;
步骤1.3:对数据作初步处理,首先将rgb图像按其红色通道、绿色通道、蓝色通道分解,然后将深度图像复制成对应的3通道,最后将图像调整为标准大小416×128,每一帧rgb-d图像就会形成416×128×3的rgb图像和416×128×3的深度图像。
3.根据权利要求1所述的基于无监督深度学习的rgb-d室内无人机定位实现方法,其特征在于,所述的步骤2的具体实施方法为:
步骤2.1:搭建cnn网络,用于提取图像的特征,每次被提取的图像为相邻两帧的rgb-d图像,其为416×128×6的rgb图像和416×128×6的深度图像;
步骤2.2:每次输入的rgb图像与深度图像分别经过rgb流和深度流,形成双流结构,经过cnn网络分别输出4×1×512的rgb特征与深度特征;
步骤2.3:为了将cnn输出的特征作为rnn的输入,将4×1×512的rgb特征与深度特征分别平铺为2048维特征向量;
步骤2.4:对rgb2048维特征向量与深度2048维特征向量进行整合,首先使用一个连接层将rgb和深度图像特性连接在一起,接着用一个全连接层来平衡这两个特性的权重;
步骤2.5:搭建rnn网络,用于相机位姿的输出,即平移和旋转矩阵的输出,使用长短时记忆lstm来代替标准的rnn,以避免长期依赖问题,lstm由一个单元和三个调节器组成,即输入、输出和遗忘门;细胞在一定的时间间隔内记忆数值,三个门控制信息进出细胞;
步骤2.6:再使用一个全连接层,利用旋转与平移相比是高度非线性的特点,输出旋转向量和平移向量。
4.根据权利要求1所述的基于无监督深度学习的rgb-d室内无人机定位实现方法,其特征在于,所述的步骤2的具体实施方法为:
步骤3.1:设计损失函数,损失函数包括2d损失函数和3d损失函数两个部分;
步骤3.2:2d损失函数的计算公式如(1)所示:
式中,it为t时刻的rgb图像,it 1为t 1时刻的rgb图像,
步骤3.3:3d损失函数的计算公式如(2)所示:
式中,ct为t时刻的点云图,ct 1为t 1时刻的点云图,
步骤3.4:损失函数的计算公式如(3)所示:
l=λ2dl2d λ3dl3d(3)
式中,l2d、l3d分别为2d、3d损失函数。λ2d、λ3d分别为2d损失函数、3d损失函数所占的权重,l为总的损失函数。
技术总结