发明内容
针对现有技术中存在的问题,本发明提出一种基于计算机视觉的无人机自动降落引导方法,耗费时间少,具有更高的降落精度和效率。
本发明的目的是通过以下技术方案予以实现,一种基于计算机视觉的无人机自动降落引导方法,其特征在于,所述方法包括以下步骤:
第一步骤,判断无人机是否到达预定位置,所述预定位置包括高度信息;
第二步骤,确定到达预定位置后,利用无人机上的摄像机获取的图像生成图像热度图;
第三步骤,基于级联深度学习网络识别无人机停机坪的位置信息,并基于图像热度图生成姿态信息,其中,所述级联深度学习网络包括依次级联的PNet深度学习网络、RNet深度学习网络和ONet深度学习网络,所述无人机停机坪上预先设置有停机坪的M个关键点;
第四步骤,基于所述位置信息和姿态信息引导无人机自动降落。
优选的,所述第三步骤通过如下方式识别无人机停机坪的位置信息:
PNet深度学习网络通过识别所述关键点从图像热度图中筛选出第一复数个包括停机坪的候选框;
RNet深度学习网络从PNet深度学习网络的输出中排除掉错误的候选框,并进一步的筛选以得到相比第一复数个候选框更少的第二复数个候选框,并调整所述第二复数个候选框中每一个候选框的位置和大小;
ONet深度学习网络从RNet深度学习网络的输出中进一步筛选以得到最终确定的1个停机坪的候选框。
优选的,当PNet为深度神经网络时,对其训练时,还包括如下步骤:
S301:对于每一张用于训练该深度神经网络的图像进行手工标注,标注关键点的位置,得到标注后的每张图像;
S302:构造一种辅助神经网络,以辅助深度神经网络对图像的学习和训练。
优选的,所述步骤S302具体包括如下步骤:
S3021:将标注后的每张图像作为深度神经网络的输入,并从所述深度神经网络选择适当的中间层,获取该中间层的输出;
S3022:建立一个由卷积函数构成的辅助神经网络;
S3023:将所述中间层的输出及对应的标注前的每张图像的姿态估计矩阵,均输入到辅助神经网络;
S3024:将辅助神经网络与所述深度神经网络的输出进行合并,共同输入到所述深度神经网络的损失函数以优化所述深度神经网络的学习。
优选的,步骤S3023中的姿态估计矩阵通过如下步骤获得:
S30231:对摄像头的相机进行标定,求解出相机的内参数,所述内参数包括:图像光轴主点、X和Y方向焦距、切向畸变系数、径向畸变系数;
S30232:进一步按如下方式求解姿态估计矩阵:
根据式x = M*[R|t]*X,求解姿态估计矩阵[R|t],
其中,M为相机的内参数,X为世界坐标系,x为已知被拍摄物体的图像像素坐标;R为姿态估计矩阵的旋转向量,t为姿态估计矩阵的平移向量。
优选的,通过拍摄在不同方向、不同位置、尺寸已知的棋盘格在图像坐标系中的像素坐标,求解出相机的内参数。
优选的,棋盘格取10cm*10cm。
优选的,所述深度神经网络选择ResNet50。
优选的,所述辅助神经网络选择ResNet18。
本发明相比于传统标记方法的优点在于自动快速降落且显著提高降落精度和效率。本方法实现了从离地约100米的空中引导无人机精确降落到专用的无人机停机坪上。本方法在无人机到达预置GPS或北斗定位点坐标后开启视觉引导算法。在视觉引导过程中,首先从搭载于无人机上的摄像机云台上获取图像,识别地面上的无人机专用停机坪,识别到停机坪后,启动关键点识别算法,识别停机坪上预先设置好的关键点,根据关键点引导无人机调整姿态并降落。
此外,本发明相比传统的训练,也创新性的引入了辅助神经网络,以提高鲁棒性。考虑到图像识别的最终结果是输出各个关键点在图像上的坐标。然而,如果按照现有技术的做法:深度神经网络对图像进行学习,直接输出二维坐标来进行优化学习,则是一个极其非线性的过程,而且在优化学习时,用以优化的损失函数对神经网络内的权重的约束也会比较弱。因此,我们根据训练的图像及手工标注的关键点的位置,通过构造一种辅助神经网络,最终构造了一种中间状态,用以辅助深度神经网络的训练及学习。
上述说明仅是本发明技术方案的概述,为了能够使得本发明的技术手段更加清楚明白,达到本领域技术人员可依照说明书的内容予以实施的程度,并且为了能够让本发明的上述和其它目的、特征和优点能够更明显易懂,下面以本发明的具体实施方式进行举例说明。
具体实施方式
下面将参照附图1至图3更详细地描述本发明的具体实施例。虽然附图中显示了本发明的具体实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
需要说明的是,在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可以理解,技术人员可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名词的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”或“包括”为一开放式用语,故应解释成“包含但不限定于”。说明书后续描述为实施本发明的较佳实施方式,然所述描述乃以说明书的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围当视所附权利要求所界定者为准。
为便于对本发明实施例的理解,下面将结合附图以具体实施例为例做进一步的解释说明,且各个附图并不构成对本发明实施例的限定。
结合图1,本发明揭示了一种基于计算机视觉的无人机自动降落引导方法,所述方法包括以下步骤:
第一步骤,判断无人机是否到达预定位置,所述预定位置包括高度信息;
能够理解,无人机在降落前,预定位置的目标值是降落地例如无人机停机坪,例如表现为作为目标的GPS或北斗的坐标。在整个飞行过程中,都要获取其GPS信息直至达到预定位置,通过GPS信息判断已经到达预定位置且解析其中高度信息。从该预定位置处,开始执行本方法。
第二步骤,确定到达预定位置后,利用无人机上的摄像机获取的图像生成图像热度图;
能够理解,在预定位置处,准备降落时,既然本发明是基于计算机视觉的引导降落方法,因此,开始通过摄像机获取图片。热度图往往利用近红外摄像机或者包括其他热敏传感器的摄像机来获得,这也是为了无人机适应白天和夜间的飞行以及降落。
第三步骤,基于级联深度学习网络识别无人机停机坪的位置信息,并基于图像热度图生成姿态信息,其中,所述级联深度学习网络包括依次级联的PNet深度学习网络、RNet深度学习网络和ONet深度学习网络,所述无人机停机坪上预先设置有停机坪的M个关键点;
需要示例性说明的是,本发明可以通过如下方式完成所述级联深度学习网络中参数的确定:
采集图像热度图的图像样本,根据停机坪的关键点截取出图像中的停机坪区域,组成训练集{x1,x2,…,xn};
标记出训练集中的xi对应的M个关键点,i从1取值到n;
根据如下方式生成包括所有M个关键点热度信息的关键点热度图,其中,对于M中的每个关键点:
hmn=exp(D(coli,rowi)/(2σ2)),
其中,hmn代表热度图的因变量,exp函数代表高斯分布,σ代表标准差,D(coli,rowi)代表图像中的第i个点与关键点之间的距离,D(coli,rowi)=(coli-col)2+(rowi-row) 2,其中,coli、rowi分别为热度图中第i个点的横纵坐标,col,row则为关键点的坐标,coli、rowi中的i从1取值到所述热度图的所有点的总数;
对级联深度学习网络中PNet深度学习网络、RNet深度学习网络和ONet深度学习网络的所有参数进行随机初始化;
将训练集与对应的图像热度图输入到级联深度学习网络中进行训练,计算级联深度学习网络输出的停机坪的位置信息与实际热度图上标记的停机坪的位置信息的MSE误差,通过误差的反向传播修正级联深度学习网络中的参数。
第四步骤,基于所述位置信息和姿态信息引导无人机自动降落。
能够发现,本申请通过计算机视觉和深度学习技术自动引导无人机降落,其中,PNet、RNet、ONet网络(本领域也称模型)的网络参数通过上述方式得以确定。自然的,如上所述,误差本身参与网络的参数的确定。
在另一个实施例中,所述第三步骤通过如下方式识别无人机停机坪的位置信息:
PNet深度学习网络通过识别所述关键点从图像热度图中筛选出第一复数个包括停机坪的候选框;
RNet深度学习网络从PNet深度学习网络的输出中排除掉错误的候选框,并进一步的筛选以得到相比第一复数个候选框更少的第二复数个候选框,并调整所述第二复数个候选框中每一个候选框的位置和大小;
ONet深度学习网络从RNet深度学习网络的输出中进一步筛选以得到最终确定的1个停机坪的候选框。
如图2所示,其示例性的说明了本申请在应用过程中,如何从起始的3个候选框直至最后2个候选框完成位置的确定。能够理解,当误差满足条件时,引导无人机降落。
就图2而言,该图通过4个方框示意,沿箭头方向阐述了本发明的构思:
图2中的方框a1示意无人机停机坪的原始图像,图中类似三角形的图案代表无人机停机坪上覆盖的丝印;
图2中的方框a2示意将原始图像输入到级联网络的PNet处理后,生成多个(例如3个)候选框,分别是候选框b1,b2,b3;
图2中的方框a3示意RNet对PNet的结果进行筛选以得到更少数量(例如2个,即b1和b2)的候选框,并调整相关候选框的位置,大小,使得更好的聚焦停机坪;
图2中的方框a4示意ONet对RNet的结果进行进一步的调整,以输出停机坪的最终位置,并以最终的1个候选框较为精确的框选该最终位置,例如最终将b1候选框调整为候选框b1’。
按照前文所述的实施例,本发明中公开的算法包含两部分,其一是基于级联深度卷积模型的无人机停机坪识别,其二是基于图像热度图的关键点识别。在基于级联深度卷积模型的无人机停机坪识别由3个深度学习卷积模型级联而成,分别为PNet,RNet,ONet。
进一步的,参见图3,其接收到前面步骤识别到的停机坪图像后,从停机坪图像中提取有序关键点(例如图3中的3个关键点)以便于无人机进行姿态调整。为便于区分各个关键点,在一个实施例中,本方法特示例性的设计停机坪上的丝印图片如图3所示。
需要说明的是,三个深度学习卷积模型的级联,仅识别关键点和位置,相较于可直接端到端输出结果的常规通过二维码,ARUCO等单个算法模型,可以在同等的精度下,极大的减小算法模型中的参数数量,并提高算法运行的实时性。也就是说:本方法首次公开了一种利用目标检测结合关键点检测实现引导无人机自动降落的算法,实现了一种基于计算机视觉的无人机自动降落引导方法。该算法具有实时性高,检测精度的优点。相较于常见的通过二维码,ARUCO等算法,本方法可在无人机离地15米至20米的情况下开启停机坪检测,引导无人机飞向停机坪附近;同时可在离地10米至15米的情况下开启停机坪关键点检测,引导无人机调整自身姿态准确降落在停机坪上。而目前的ARUCO等算法需要精确的看到停机坪上的二维码才能正确引导无人机调整自身姿态,对离地高度,摄像头的成像质量都有一定的要求,同时存在需要多个二维码辅助的情况。而本方法中公开的算法通过普通的摄像头在10米至15米,通过识别单个停机坪标识即可完成姿态引导。最高,本方法可以在距离地面约100米处开始实时、高效、精准的引导降落,高度主要取决于摄像头的拍照能力。
然而,需要说明的是,通过级联对无人机精准、高效引导其降落不是本发明的所有技术贡献。本发明的另一技术贡献在于训练深度神经网络时采取的辅助神经网络及其具体手段,见下文实施例。
在另一个实施例中,第三步骤还包括:训练PNet。当PNet为深度神经网络时,对其训练时,还包括如下步骤:
S301:对于每一张用于训练该深度神经网络的图像进行手工标注,标注关键点的位置,得到标注后的每张图像;
S302:构造一种辅助神经网络,以辅助深度神经网络对图像的学习和训练。
关于该实施例,除了前述的候选框,考虑到图像识别的最终也还要输出各个关键点在图像上的坐标,就这一点而言,如果按照现有技术的做法:深度神经网络对图像进行学习,直接输出二维坐标来进行优化学习,则是一个极其非线性的过程,而且在优化学习时,用以优化的损失函数对神经网络内的权重的约束也会比较弱。因此,在本实施例中,我们根据训练的图像及手工标注的关键点的位置,通过构造一种辅助神经网络,最终构造了一种中间状态,用以辅助深度神经网络的训练及学习。能够理解,当级联的其他模型也为深度神经网络时,同样可以采用上述辅助神经网络的方式,辅助相应的神经网络对图像进一步筛选进行学习和训练。
在另一个实施例中,步骤S302,包括:
S3021:将标注后的每张图像作为深度神经网络的输入,并从所述深度神经网络选择适当的中间层,获取该中间层的输出;
需要说明的是,所述适当的中间层,是指:网络中靠后的层。能够理解,一般将网络的输入一侧看作前侧,网络的输出一侧看作后侧,那么,网络中靠后的层也就是靠近输出的层。示例性的,网络总层数超过8层时,中间层优选靠后的层,例如第8层。
S3022:建立一个由卷积函数构成的辅助神经网络;
S3023:将所述中间层的输出及对应的标注前的每张图像的姿态估计矩阵,均输入到辅助神经网络;
S3024:将辅助神经网络与所述深度神经网络的输出进行合并,共同输入到所述深度神经网络的损失函数以优化所述深度神经网络的学习。
在另一个实施例中,
步骤S3023中的姿态估计矩阵通过如下步骤获得:
S30231:对摄像机的相机进行标定,求解出相机的内参数,所述内参数包括:图像光轴主点、X和Y方向焦距、切向畸变系数、径向畸变系数;
S30232:进一步按如下方式求解姿态估计矩阵:
根据式x = M*[R|t]*X,求解姿态估计矩阵[R|t],
其中,M为相机的内参数,X为世界坐标系,x为已知被拍摄物体的图像像素坐标;R为姿态估计矩阵的旋转向量,t为姿态估计矩阵的平移向量。
在另一个实施例中,
通过拍摄在不同方向、不同位置、尺寸已知的棋盘格在图像坐标系中的像素坐标,求解出相机的内参数。
在另一个实施例中,
棋盘格取10cm*10cm。
在另一个实施例中,
所述深度神经网络选择ResNet50。典型的,通过Python来实现本方法。
在另一个实施例中,
所述辅助神经网络选择ResNet18。
在另一个实施例中,
所述卷积函数为Conv(input,w),其中,input表示输入,w表示权重。
在另一个实施例中,损失函数选择均方误差函数。
对于前文所述的有关实施例,本公开有效降低了相关模型训练时拟合的难度,同时提高了模型的鲁棒性。在同样的测试集中,采用上述图像作为训练集及采用上述训练、优化方法后,模型的map@0.5精度高于未采用的模型2.76%。进一步需要指出的是,通过基于Ranssac算法的PNP求解姿态估计矩阵时,即使在实际场景验证中,发现PNP求解的平均误差在5%左右,但由于本公开有效降低了相关模型训练时拟合的难度,同时提高了模型的鲁棒性,这使得姿态估计矩阵的误差并不影响后续的实际场景验证。
在另一个实施例中,
对级联的相应模型参数进行随机初始化,
将训练集与对应的热度图输入到级联深度学习网络,例如从级联的第一个网络PNet输入,以进行训练,计算级联深度学习网络的输出与实际热度图的MSE误差,即均方误差,并通过误差的反向传播修正级联深度学习网络中的参数。
所述的方法的优选实施方式中,每张图片对应N个关键点,每张图片产生N张热度图。此N张热度图用于整个第三步骤。如果一个停机坪的关键点总数为M,则N应当小于等于M,最佳的,N等于M。
为了进一步理解本发明,在一个实施例,本方法中公开的算法实际上可以分离为两部分的识别,其一是基于级联深度卷积模型的无人机停机坪识别,其二是基于图像热度图的关键点识别。在基于级联深度卷积模型的无人机停机坪识别由3个深度学习卷积模型级联而成,分别为PNet,RNet,ONet,其中,PNet从图像中筛选出停机坪的候选位置,RNet从PNet的输出中进行进一步的筛选,排除部分错误结果,ONet对RNet的结果进行进一步的微调。而筛选停机坪的候选位置,则通过分离出的另一部分,即上述基于图像热度图的关键点识别。
在本方法中公开的基于图像热度图的关键点识别算法中,其接收到上一步算法识别到停机坪图像后,即基于上述第二步骤的热度图,在第三步骤中先识别到停机坪图像(备注:通过识别停机坪的位置信息识别到停机坪,特别需要说明的是,位置信息不仅仅可以是关键点,也可以是停机坪的地理信息,包括经纬度信息,还可以是二者的结合以便更加高效的识别停机坪),第三步骤的在后部分实现:从停机坪图像中提取关键点以便于无人机进行姿态调整。该第三步骤的算法优选由全卷积深度学习神经网络构成。
在训练完成后,将算法模型部署到无人机上;能够理解,算法模型被部署时,其必然部署到相关的、具有处理器的平台;
本发明部署后,获取无人机摄像头的输入,以此作为部署后的模型的输入,部署后的模型输出无人机停机坪的关键点坐标到无人机(例如将关键点坐标发送到飞控模块),指引无人机降落。
能够理解,本方法公开了一种基于计算机视觉的无人机自动降落引导方法。从实际应用效果来看,本方法实现了从离地约100米的空中引导无人机精确降落到专用的无人机停机坪上,相比现有技术提高了效率和精度。
在运行过程中,本方法在无人机到达预置GPS或北斗定位的坐标后开启视觉引导算法,在视觉引导过程中,无人机系统首先从搭载于无人机上的摄像机云台上获取图像,识别地面上的无人机专用停机坪;识别到停机坪的同时启动关键点识别算法,识别停机坪上预先设置好的关键点,根据关键点引导无人机调整姿态并降落。
尽管以上对本发明的实施方案进行了描述,但本发明不局限于上述的具体实施方案和应用领域,上述的具体实施方案仅仅是示意性的、指导性的,而不是限制性的。本领域普通技术人员在本说明书的启示下和在不脱离本发明权利要求所保护的范围的情况下,还可以做出很多种的形式,均属于本发明保护之列。