首页> 中国专利> 一种单目彩色相机的姿态估算方法及系统

一种单目彩色相机的姿态估算方法及系统

摘要

本发明实施例提供一种单目彩色相机的姿态估算方法及系统,所述的方法包括:将待检测场景图像输入预先训练后的深度卷积网络,以输出所述待检测场景图像的多个场景点对应的多个特征检测热图;提取每一个特征检测热图的二维位置;根据提取的每一个特征检测热图的二维位置以及对应的场景点的三维位置,估算出单目彩色相机的姿态。本发明实施例将机器学习中的深度卷积网络引入到相机姿态估算方法中,通过深度卷积网络检测相机场景图像中的特定特征,相比于传统的估算方法,深度卷积网络可以更为准确地对场景图像的特征进行检测,提高相机姿态估算的精度。

著录项

  • 公开/公告号CN108447094A

    专利类型发明专利

  • 公开/公告日2018-08-24

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN201810231960.7

  • 发明设计人 孙延奎;陈锋;

    申请日2018-03-20

  • 分类号G06T7/73(20170101);

  • 代理机构11002 北京路浩知识产权代理有限公司;

  • 代理人王莹;吴欢燕

  • 地址 100084 北京市海淀区清华园北京100084-82信箱

  • 入库时间 2023-06-19 06:14:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-28

    授权

    授权

  • 2018-09-18

    实质审查的生效 IPC(主分类):G06T7/73 申请日:20180320

    实质审查的生效

  • 2018-08-24

    公开

    公开

说明书

技术领域

本发明实施例涉及计算机视觉技术领域,尤其涉及一种单目彩色相机的姿态估算方法及系统。

背景技术

单目彩色相机定位算法是增强现实、机器人导航等系统中的关键技术,传统对单目彩色相机的姿态定位方法是通过在待检测图像中提取多个SIFT(Scale-invariantfeature transform,尺度不变特征变换)特征,将提取的多个SIFT特征与数据库中存储的每一个三维场景点的SIFT特征进行匹配,进而找到该多个SIFT特征对应的三维场景点的三维位置,根据待检测图像的二维位置与对应的三维位置,采用solve-pnp算法计算出相机的六自由度姿态。

采用上述方法的问题在于,在光照条件不佳或者相机拍摄角度变化较大时,可能存在提取不到待检测图像的SIFT特征,或者提取的SIFT特征与数据库中保存的特征相差较大,因此,导致后续的匹配过程以及计算过程都会出错,计算出来的相机的姿态也是不准确的,影响了相机姿态估算的精度。

发明内容

本发明实施例提供一种单目彩色相机的姿态估算方法及系统,用以解决现有技术中由于光照条件不佳或是相机拍摄角度变化较大时,影响相机姿态估算精度。

根据本发明实施例的第一方面,提供一种单目彩色相机的姿态估算方法,包括:

将待检测场景图像输入预先训练后的深度卷积网络,以输出所述待检测场景图像的多个场景点对应的多个特征检测热图;

提取每一个特征检测热图的二维位置;

根据提取的每一个特征检测热图的二维位置以及对应的场景点的三维位置,估算出单目彩色相机的姿态。

根据本发明实施例的第二方面,提供一种单目彩色相机的姿态估算系统,包括:

输入模块,用于将待检测场景图像输入预先训练后的深度卷积网络,以输出所述待检测场景图像的多个场景点对应的多个特征检测热图;

提取模块,用于提取每一个特征检测热图的二维位置;

估算模块,用于根据提取的每一个特征检测热图的二维位置以及对应的场景点的三维位置,估算出单目彩色相机的姿态。

根据本发明实施例的第三方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行单目彩色相机的姿态估算方法。

本发明实施例提供的一种单目彩色相机的姿态估算方法及系统,将机器学习中的深度卷积网络引入到相机姿态估计方法中,通过深度卷积网络检测相机场景图像中的特定特征,将传统方法中的特征检测、特征描述和特征匹配集成到深度卷积网络中,深度卷积网络直接输出待检测场景图像的不同特征点的二维位置和三维场景点的映射关系以对相机的姿态进行准确估算,相比于传统的估算方法,深度卷积网络可以更为准确地对场景图像的特征进行检测,提高相机姿态估算的精度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一个实施例的单目彩色相机的姿态估算方法流程图;

图2为不同的待检测场景图像以及对应的特征检测热图的示意图;

图3为根据不同待检测场景图像估算出的相机姿态结果图;

图4为本发明一种实施例的单目彩色相机的姿态估算系统连接框图;

图5为本发明另一个实施例的单目彩色相机的姿态估算系统连接框图;

图6为本发明一个实施例的一种服务器的实体结构示意图。

具体实施方式

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

参见图1,提供了本发明一个实施例的单目彩色相机的姿态估算方法,利用深度卷积网络对相机姿态进行估算,提高特殊条件下的相机姿态估计的精度。单目彩色相机的姿态估算方法包括:将待检测场景图像输入预先训练后的深度卷积网络,以输出所述待检测场景图像的多个场景点对应的多个特征检测热图;提取每一个特征检测热图的二维位置;根据提取的每一个特征检测热图的二维位置以及对应的场景点的三维位置,估算出单目彩色相机的姿态。

本发明实施例中,根据待检测场景图像来估算相机的姿态,首先,将待检测图片输入到已经训练好的深度卷积网络中,深度卷积网络输出待检测场景图像的与多个场景点对应的多个特征检测热图,即待检测场景图像经过深度卷积网络后得到多个特征检测热图,每一个特征检测热图与每一个场景点对应。当得到待检测图片的多个特征检测热图,提取每一个特征检测热图的二维位置,并根据每一个特征检测热图的二维位置和该特征检测热图对应的场景点的三维位置,计算出相机的姿态。

本发明实施例提供的一种单目彩色相机的姿态估算方法,将机器学习中的深度卷积网络引入到相机姿态估计方法中,通过深度卷积网络检测相机场景图像中的特定特征,将传统方法中的特征检测、特征描述和特征匹配集成到深度卷积网络中,深度卷积网络直接输出特征点的二维位置和三维场景点的映射关系以对相机的姿态进行准确估算,并不需要对待检测场景图像的特征进行检测,相比于传统的估算方法,深度卷积网络可以更为准确地对场景图像的特征进行检测,提高相机姿态估算的精度。

在上述实施例的基础上,本发明的另一个实施例中,所述将待检测场景图像输入预先训练后的深度卷积网络,以输出所述待检测场景图像的多个场景点一一对应的多个特征检测热图之前还包括:根据场景图像样本中的每一张场景图像以及每一张场景图像对应的多个特征检测热图对深度卷积网络进行训练。

在将待检测场景图像输入到训练好的深度卷积网络之前,需要对该深度卷积网络进行训练,对深度卷积网络训练的过程为,从该相机的很多个场景图像中选取一些场景图像,作为训练时的场景图像样本。根据场景图像样本中的每一张场景图像以及每一张场景图像对应的多个特征检测热图对深度卷积网络进行训练。

其中,需要说明的是,不同场景图像对应的相机的姿态数据可能相同,也可能不同,本发明实施例中为了更好地对深度卷积网络进行训练,场景图像样本的多张场景图像尽量对应相机的不同姿态数据,这样经过训练的深度卷积网络就能够识别不同相机姿态数据下的特征检测热图,使得深度卷积网络的可靠性更高,最终根据一张场景图像估算出的相机的姿态也会更准确。

在上述实施例的基础上,本发明一个实施例中,所述基于场景图像样本中的每一张场景图像以及每一张场景图像对应的多个特征检测热图对深度卷积网络进行训练还包括:从数据库提供的三维模型中选取在空间中均匀分布的多个三维场景点;根据所述场景图像样本中的每一张场景图像以及每一个所述场景点的三维位置,生成每一张场景图像的多个特征检测热图,其中,特征检测热图与场景点一一对应。

在对深度卷积网络的训练过程为,从数据库提供的三维模型中选取在空间中均匀分布的多个三维场景点,根据场景图像样本中的每一张场景图像以及多个三维场景点的每一个三维场景点的三维位置,生成每一张场景图像的多个特征检测热图,其中,特征检测热图与三维场景点一一对应,即针对一个场景点,对应生成一个特征检测热图。

举例说明,从数据库提供的三维模型中选取在空间上均匀分布的100个三维场景点,对于相机的每一个姿态数据,对应有一张场景图像,比如,相机的一个姿态数据对应1张场景图像,则训练样本中包括相机的10个姿态数据就对应有10张场景图像。对于每一张场景图像,根据100个三维场景点的三维位置,生成每一张场景图像的100个特征检测热图。

本发明实施例中,从数据库的三维模型选取在空间上均匀分布的多个场景点,使得在空间上不同空间位置均存在三维场景点,更能反映整个三维空间的场景情况。

在上述实施例的基础上,本发明另一个实施例中,根据所述场景图像样本中的每一张场景图像以及每一个所述场景点的三维位置,通过如下公式生成每一张场景图像的多个特征检测热图:

其中,(i,j)为特征检测热图中每一个像素点的二维坐标,α为特征检测热图的圆斑的亮度参数,σ为特征检测热图的圆斑的大小参数,(u,v)为特征检测热图中生成的高斯圆斑的中心点的二维坐标;

通过如下公式计算u和v:

μ[u v>T=k[R>w>w>w>T;(2)

其中,(xw,yw,zw)为每一个所述场景点的三维位置坐标,k为单目彩色相机参数,R为单目彩色相机的旋转矩阵,T为单目彩色相机的偏移向量。

根据上述的公式(1)和(2)能够计算出每一张场景图像中与每一个场景点对应的特征检测热图中的每一个像素点,最终得到对应的特征检测热图。

在对深度卷积网络进行训练前,根据多个三维场景点的三维位置,计算每一张场景图像对应的多个特征检测热图,其中,场景图像的特征检测热图是通过上述公式(1)和公式(2)计算而来的,因此,即使光照条件不佳或相机拍摄角度变化大,也不会影响场景图像的特征检测热图的提取,因而对于同一个场景点,神经网络可以学习到其在更多视角以及光照条件下的表示。

在上述实施例的基础上,本发明的一个实施例中,所述提取每一个特征检测热图的二维位置具体包括:对每一个所述特征检测热图进行二值化处理;对二值化处理后的特征检测热图进行轮廓检测,得到检测后的多个轮廓;提取每一个轮廓的中心点,得到多个所述轮廓对应的多个中心点;将所有中心点中亮度最高的中心点的二维位置作为对应特征检测热图的二维位置。

上述实施例中,对深度卷积网络训练后,将待检测场景图像输入训练后的深度卷积网络,输出待检测场景图像的多个特征检测热图,随后需要提取每一个特征检测热图的二维位置,具体的提取方法为,对于每一个特征检测热图,对其进行二值化处理,对二值化处理后的特征检测热图进行轮廓的检测,由于光照、角度等原因,对每一个特征检测热图检测的轮廓通常有多个。求取每一个轮廓的中心,记为{C1,C2,…,Cn},查找亮度最高的轮廓中心Cmax。将中心点Cmax的亮度值与预设亮度阈值进行比较,若中心点Cmax的亮度值大于预设亮度阈值,则将中心点Cmax的二维位置作为该特征检测热图的二维位置。若中心点Cmax的亮度值小于预设亮度阈值,则表明该特征检测热图的二维位置检测不到,无法利用该特征检测热图,出现这种情况,通常是由于光照不足,此时,该特征检测热图就不能参数后续的计算。

在上述实施例的基础上,本发明的一个实施例中,所述从数据库提供的三维模型中选取在空间中均匀分布的多个三维场景点具体包括:若数据库中包含三维点云,则从所述三维点云中选取三维空间中均匀分布的多个三维点云作为多个三维场景点;若数据库中包括多张彩色图像以及每一张彩色图像对应的深度图像,则选取预设数量的彩色图像,并提取每一张所述彩色图像的多个特征点的ORB特征;根据每一张彩色图像的多个特征点的ORB特征、对应的深度图像以及相机姿态信息,计算出每一个特征点的三维位置;从所有特征点中选取三维空间中均匀分布的多个特征点作为多个三维场景点。

其中,从数据库提供的三维模型中选取在空间上均匀分布的三维场景点时,根据数据库中提供的不同数据,选择的方法会有所不同,原则是尽量选取在空间中均匀分布的三维场景点。

按照上述实施例对深度卷积网络进行训练,输入待检测场景图像,深度卷积网络将输出待检测场景图像的特征检测热图。特征检测热图的结果如图2所示,其中,图2中第一列为输入的待检测场景图像,第二到五列为待检测场景图像对于不同三维场景点的特征检测热图,同一列表示对于同一个三维场景点的特征检测热图结果。为了便于观察,图2将特征检测热图结果叠加于原待检测场景图像上。从图2中可以看出,尽管输入的待检测场景图像的光照条件、观察角度有很大变化,依然可以准确地提取出特征检测热图。

检测出待检测场景图像的特征检测热图之后,可以求取待检测场景图像所对应的相机姿态,不同场景图像姿态估计结果如图3所示,其中,图3-a估算出的相机的姿态误差为Epos=1.02m,Eang=1.48°,图3-b中估算出的相机的姿态结果为Epos=0.37m,Eang=2.36°,图3-c中估算出的相机的姿态结果为Epos=0.32m,Eang=0.35°,图3-d中估算出的相机的姿态结果Epos=0.33m,Eang=0.46°,Epos表示姿态估计结果的相机位置偏差,Eang表示相机角度偏差,从图3中可以看出,对于不同的光照条件与观察角度,均可得到较为准确的相机姿态估计结果。

参见图4,提供了本发明一个实施例的单目彩色相机的姿态估算系统,包括输入模块41、提取模块42和估算模块43。

输入模块41,用于将待检测场景图像输入预先训练后的深度卷积网络,以输出所述待检测场景图像的多个场景点对应的多个特征检测热图;

提取模块42,用于提取每一个特征检测热图的二维位置。

估算模块43,用于根据提取的每一个特征检测热图的二维位置以及对应的场景点的三维位置,计算出单目彩色相机的姿态。

参见图5,提供了本发明另一个实施例的单目彩色相机的姿态估算系统,包括输入模块41、提取模块42、估算模块43、选取模块44、生成模块45、训练模块46和判断模块47。

输入模块41,用于将待检测场景图像输入预先训练后的深度卷积网络,以输出所述待检测场景图像的多个场景点对应的多个特征检测热图;

提取模块42,用于提取每一个特征检测热图的二维位置。

估算模块43,用于根据提取的每一个特征检测热图的二维位置以及对应的场景点的三维位置,计算出单目彩色相机的姿态。

其中,训练模块46,用于根据场景图像样本中的每一张场景图像以及每一张场景图像对应的多个特征检测热图对深度卷积网络进行训练。

选取模块44,用于从数据库提供的三维模型中选取在空间中均匀分布的多个三维场景点;相应的,生成模块45,用于根据所述场景图像样本中的每一张场景图像以及每一个所述场景点的三维位置,生成每一张场景图像的多个特征检测热图,其中,特征检测热图与场景点一一对应。

其中,生成模块45,具体用于通过如下公式生成每一张场景图像的多个特征检测热图:

其中,(i,j)为特征检测热图中每一个像素点的二维坐标,α为特征检测热图的圆斑的亮度参数,σ为特征检测热图的圆斑的大小参数,(u,v)为特征检测热图中生成的高斯圆斑的中心点的二维坐标;

通过如下公式计算u和v:

μ[u v>T=k[R>w>w>w>T;

其中,(xw,yw,zw)为每一个所述场景点的三维位置坐标,k为单目彩色相机参数,R为单目彩色相机的旋转矩阵,T为单目彩色相机的偏移向量。

提取模块42,具体用于对每一个所述特征检测热图进行二值化处理;对二值化处理后的特征检测热图进行轮廓检测,得到检测后的多个轮廓;提取每一个轮廓的中心点,得到多个所述轮廓对应的多个中心点;将所有中心点中亮度最高的中心点的二维位置作为所述特征检测热图的二维置。

判断模块47,用于判断所有中心点中亮度最高的中心点的亮度值是否大于预设亮度值,若是,则将所述亮度最高的中心点的二维位置作为对应特征检测热图的二维位置;否则,检测不到所述特征检测热图的二维位置。

参见图6,选取模块44包括第一选取单元441和第二选取单元442,其中,第一选取单元441,用于若数据库中包含三维点云,则从所述三维点云中选取三维空间中均匀分布的多个三维点云作为多个三维场景点;第二选取单元442,用于若数据库中包括多张彩色图像以及每一张彩色图像对应的深度图像,则选取预设数量的彩色图像,并提取每一张所述彩色图像的多个特征点的ORB特征;根据每一张彩色图像的多个特征点的ORB特征、对应的深度图像以及相机姿态信息,计算出每一个特征点的三维位置;从所有特征点中选取三维空间中均匀分布的多个特征点作为多个三维场景点。

参见图7,示例了一种服务器的实体结构示意图,如图7所示,该服务器可以包括:包括处理器(processor)710、存储器(memory)720和总线730;其中,所述处理器710和存储器720通过所述总线730完成相互间的通信。

所述处理器710用于调用所述存储器720中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:将待检测场景图像输入预先训练后的深度卷积网络,以输出所述待检测场景图像的多个场景点对应的多个特征检测热图;提取每一个特征检测热图的二维位置;根据提取的每一个特征检测热图的二维位置以及对应的场景点的三维位置,估算出单目彩色相机的姿态。

此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明提供了一种单目彩色相机的姿态估算方法及系统,将机器学习中的深度卷积网络引入到相机姿态估计方法中,通过深度卷积网络检测相机场景图像中的特定特征,将传统方法中的特征检测、特征描述和特征匹配集成到深度卷积网络中,深度卷积网络直接输出特征点的二维位置和三维场景点的映射关系以对相机的姿态进行准确估算,相比于传统的估算方法,深度卷积网络可以更为准确地对场景图像的特征进行检测,提高相机姿态估算的精度。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

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

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号