本发明涉及无人驾驶领域,尤其涉及一种视觉定位方法以及装置。
背景技术:
视觉定位是机器人导航系统的重要组成部分。通常,视觉定位方法包括至少两个步骤:第一步是地点识别,也称为基于图像的定位,该步骤首先获取一个当前图像(queryimage),然后在预先构建的环境地图中进行查找,获取一个最相似的参考图像(referenceimage),根据所述参考图像的位置来识别当前图像的位置;第二步是度量定位,用于进一步获取当前图像的准确定位。所述度量定位建立当前图像和参考图像之间的匹配关系(特征点匹配),根据所述匹配关系并结合预先构建的环境地图,求解机器人的位姿,从而实现定位。所述视觉定位方法的关键是确定当前图像场景与预先构建的环境地图中先前访问的位置之间的匹配关系,并生成用于获取相机位姿的稳定的特征匹配。
由于计算机视觉技术中卷积神经网络(convolutionalneuralnetworks,cnns)技术的发展,对视觉位置定位的研究已经从利用手工建立的特征(hand-craftedfeatures)转变为从cnns中提取的基于深度学习的特征。尽管使用基于深度学习的方法在视觉位置定位方面取得了重大进展,但长期视觉定位仍然是一项具有挑战性的任务。比如,由于照明和天气条件的变化,当前图像场景的具体特征和预先构建的环境地图中的图像场景的具体特征可能非常不同。所述的照明条件变化,比如环境地图中预存的图像场景是白天,但当前的图像场景是在黑夜中获取的,则当前图像与参考图像的特征点就会存在较多不同。所述的天气条件的变化,比如环境地图中预存的图像场景是夏天,但当前的图像场景是在冬季获取的,则当前图像与参考图像的特征点就会存在本质的不同。由于图像场景的大幅度变化,无论是利用手工建立的特征还是从cnns中提取的基于深度学习的特征,都无法实现基于图像的准确定位。
为了解决上述问题,还有一种技术方案是:在预先构建的环境地图中,为所有环境条件构建多个环境地图。然而,构建多个地图非常耗时,而且构建的环境地图会占用大量内存。还有另外的一种方法,在预先构建的环境地图中增加相关的图像补丁(imagepatches),帮助在环境发生变化时稳定的获取图像特征点,然而,所述的图像补丁需要进行手动定义。此外,所有上述方法都将位置识别和度量定位视为两个独立的问题。
因此,我们需要一种新的视觉定位方法以及装置,以解决上述技术问题。
技术实现要素:
本申请的目的在于提供一种新的视觉定位方法以及装置,以解决环境条件发生较大变化时,当前图像的图像特征点与预先构建的环境地图中的图像特征点差别较大,从而无法进行准确视觉定位的技术问题。
本申请提出一种视觉定位方法,包括:步骤一:获取当前图像并识别所述当前图像的基础特征和表述特征;步骤二:将所述当前图像的表述特征与预先构建的环境图像的表述特征进行匹配,根据匹配程度从所述环境图像中选取匹配度最高的环境图像作为参考图像;步骤三:根据所述当前图像的基础特征,生成一个合成图像,所述合成图像与参考图像具有相同的环境状态;步骤四:从所述合成图像中提取一个以上的特征点,并与参考图像的特征点进行匹配,根据所述特征点的匹配程度判断所述当前图像的位置信息。
其中,获取所述合成图像与参考图像所述特征点的匹配程度的方法包括:获取合成图像中每个特征点的最优匹配特征点,所述的最优匹配特征点位于所述参考图像中;对所述合成图像与参考图像的所有匹配信息进行验证,保留正确的匹配对,过滤掉错误匹配对;如果正确匹配对数目大于等于一设定值,则合成图像和参考图像之间正确匹配,如果正确匹配对数目小于所述设定值,则合成图像与参考图像匹配不正确。
其中,获取所述合成图像与参考图像所述特征点的匹配程度的方法中,从合成图像中选取的特征点小于1000个,所述的设定值为15。
其中,将所述当前图像的表述特征与预先构建的环境图像的表述特征进行匹配后,根据匹配程度从所述环境图像中选取一个以上的参考图像,并将所述一个以上的参考图像按照与所述当前图像匹配度高低依次排列。
其中,根据匹配程度从所述环境图像中选取的一个以上的参考图像小于10个。
其中,根据所述特征点的匹配程度判断所述当前图像的位置信息的方法包括:若合成图像和参考图像之间正确匹配,则可根据参考图像的位置信息得到所述当前图像的位置信息;若合成图像和参考图像之间匹配不正确,从所述环境图像中选取另一个匹配度最高的环境图像作为参考图像,并再次执行步骤三和步骤四,直至匹配完从所述环境图像中选取的所有参考图像。
其中,识别所述当前图像的基础特征和表述特征的方法包括:
将所述当前图像通过第一图像编码器,获取所述当前图像的基础特征;
将所述当前图像的基础特征通过第二图像编码器,获取所述当前图像的表述特征。
其中,训练所述第一图像编码器和第二图像编码器,使其获取所述当前图像的基础特征和表述特征的方法包括:
1)根据当前图像a,获取当前图像的正样本图像b和负样本图像c,并将当前图像a,正样本图像b和负样本图像c分别输入第一图像编码器e1和第二图像编码器e2,分别得到其基础特征和表述特征,则:
fa=e2(e1(a))
fb=e2(e1(b))
fc=e2(e1(c))
其中,fa,fb,fc分别为当前图像a,正样本图像b和负样本图像c的表述特征,e1(a),e1(b),e1(c)分别为当前图像a,正样本图像b和负样本图像c通过第一图像编码器e1获取的基础特征;
2)计算当前图像表述特征和正样本图像表述特征之间的距离dab,当前图像表述特征和负样本图像表述特征之间的距离dac,其中,
dab=||fa-fb||2
dac=||fa-fc||2
3)构建损失函数loss=max(0,dab m-dac),其中,m为设定值,用于修订dab和dac之间的平衡关系;
4)循环执行步骤1)至步骤3),进行迭代训练,以使损失函数的损失值loss无限趋近于0,当所述迭代计算的次数达到设定值或者loss为0,停止所述迭代训练,当所述的当前图像通过所述第一图像编码器和第二图像编码器时,所述第一图像编码器和第二图像编码器即可获取所述当前图像的训练好的基础特征和表述特征。
其中,所述合成图像是通过将所述当前图像的基础特征输入图像生成器获取的。
其中,训练所述图像生成器,使其根据当前图像的基础特征生成合成图像的方法为:
a)将任意图像a和任意图像b输入第一编码器e1,得到所述图像a和图像b的基本特征e1(a),e1(b),其中所述图像a和图像b的拍摄环境状态不同,图像a处于第一环境状态,图像b处于第二环境状态;
b)将所述基本特征e1(a)输入初始第一图像生成器g12,得到合成图像a2,将所述基本特征e1(b)输入初始第二图像生成器g21,得到合成图像b1;
c)分别将合成图像a2和合成图像b1输入第一编码器e1,分别得到合成图像a2的基本特征e1(a2),合成图像b1的基本特征e1(b1);
d)将所述基本特征e1(a2)输入第二图像生成器g21,得到合成图像a′;将所述基本特征e1(b1)输入第一图像生成器g12,得到合成图像b′;
e)构建损失函数loss=ld lg,获取损失函数的损失值,其中ld为第一判别器d1和第二判别器d2的损失值总和,lg为第一图像生成器和第二图像生成器的损失值总和,
ld=ld1 ld2
ld1=||d1(a)-1|| ||d1(b1)||
ld2=||d2(b)-1|| ||d2(a2)||
其中,第一判别器d1用于判断输入图像是否处在第一环境状态,若是,则其输出值为1,若不是,则其输出值为0;第一判别器d2用于判断输入图像是否处在第二环境状态,若是,则其输出值为1,若不是,则其输出值为0。
lg=laa′ lbb′
laa′=a-a′
lbb′=b-b′
其中,laa′表示图像a与图像合成图像a′的像素值之差,a为图像a的像素值,a′为合成图像a′的像素值;lbb′表示图像b与图像合成图像b′的像素值之差,b为图像b的像素值,b′为合成图像b′的像素值;
f)循环执行所述步骤a)至步骤e),进行迭代运算,以使损失函数的损失值loss无限趋近于0,当所述迭代计算的次数达到设定值或者loss为0,停止所述迭代训练,认为所述的图像生成器根据当前图像的基础特征生成的合成图像与参考图像具有相同的环境状态。
本申请的另一方面还提供了一种视觉定位装置,包括至少一个处理器,所述处理器执行上述视觉定位方法中的任意一种。
综上,本申请的视觉定位方法,通过将所述的当前图像转变为一个与参考图像具有相同的环境状态的合成图像,从而减少环境状态的变化(例如光照,天气和季节条件的变化)的影响,然后再将合成图像的特征点与参考图像的特征点进行匹配,从而获得准确的当前图像定位。
更进一步,本申请通过对所述第一图像编码器和第二图像编码器进行训练,使其在输入当前图像后,能够获取所述当前图像相对准确的基础特征和表述特征,从而提高了获取的合成图像与参考图像的准确度,也提高了所述视觉定位方法对当前图像定位的准确率。
本申请中另外的特征将部分地在下面的描述中阐述。通过该阐述,使以下附图和实施例叙述的内容对本领域普通技术人员来说变得显而易见。本申请中的发明点可以通过实践或使用下面讨论的详细示例中阐述的方法、手段及其组合来得到充分阐释。
附图说明
以下附图详细描述了本申请中披露的示例性实施例。其中相同的附图标记在附图的若干视图中表示类似的结构。本领域的一般技术人员将理解这些实施例是非限制性的、示例性的实施例,附图仅用于说明和描述的目的,并不旨在限制本公开的范围,其他方式的实施例也可能同样的完成本申请中的发明意图。应当理解,附图未按比例绘制。其中:
图1示出了根据本申请的一些实施例所示的用于地点识别的方法的应用场景图;
图2示出了根据本申请的一些实施例所示的可以在其上实现用于地点识别的方法的示例性计算设备;
图3示出了根据本申请的一些实施例所示的用于视觉定位方法的流程图;
图4示出了根据本申请的一些实施例所示的用于视觉定位方法中获取基础特征和表述特征的流程图;
图5(a)示出了根据本申请的一些实施例中所示的nordland数据集上冬季对春季(wintervs.spring)的准确率召回率曲线;
图5(b)示出了根据本申请的一些实施例中所示的nordland数据集上冬季对春季(wintervs.fall)的准确率召回率曲线;
图5(c)示出了根据本申请的一些实施例中所示的黑夜对白天(nightvs.day)的准确率召回率曲线;
图6示出了根据本申请的一些实施例中所示的黑夜-白天条件对特征点匹配过程得到的内点的重投影误差的分布。
具体实施方式
以下描述提供了本申请的特定应用场景和要求,目的是使本领域技术人员能够制造和使用本申请中的内容。对于本领域技术人员来说,对所公开的实施例的各种局部修改是显而易见的,并且在不脱离本公开的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用。因此,本公开不限于所示的实施例,而是与权利要求一致的最宽范围。
这里使用的术语仅用于描述特定示例实施例的目的,而不是限制性的。比如,除非上下文另有明确说明,这里所使用的,单数形式″一″,″一个″和″该″也可以包括复数形式。当在本说明书中使用时,术语″包括″、″包含″和/或″合有″意思是指所关联的整数,步骤、操作、元素和/或组件存在,但不排除一个或多个其他特征、整数、步骤、操作、元素、组件和/或组的存在或在该系统/方法中可以添加其他特征、整数、步骤、操作、元素、组件和/或。
在本公开中,术语″自动驾驶车辆″可以指能够感知其环境并且在没有人(例如,驾驶员,飞行员等)输入和/或干预的情况下对外界环境自动进行感知、判断并进而做出决策的车辆。术语″自动驾驶车辆″和″车辆″可以互换使用。术语″自动驾驶″可以指没有人(例如,驾驶员,飞行员等)输入的对周边环境进行智能判断并进行导航的能力。
考虑到以下描述,本公开的这些特征和其他特征、以及结构的相关元件的操作和功能、以及部件的组合和制造的经济性可以得到明显提高。参考附图,所有这些形成本公开的一部分。然而,应该清楚地理解,附图仅用于说明和描述的目的,并不旨在限制本公开的范围。
本公开中使用的流程图示出了根据本公开中的一些实施例的系统实现的操作。应该清楚地理解,流程图的操作可以不按顺序实现。相反,操作可以以反转顺序或同时实现。此外,可以向流程图添加一个或多个其他操作。可以从流程图中移除一个或多个操作。
本公开中使用的定位技术可以基于全球定位系统(gps),全球导航卫星系统(glonass),罗盘导航系统(compass),伽利略定位系统,准天顶卫星系统(qzss),无线保真(wifi)定位技术等,或其任何组合。一个或多个上述定位系统可以在本公开中互换使用。
此外,尽管本公开主要描述了一种通过将当前图像转变为一个与参考图像具有相同的环境状态的合成图像,从而减少环境状态的变化(例如光照,天气和季节条件的变化)的影响,然后再将合成图像的特征点与参考图像的特征点进行匹配,从而获得准确的当前图像定位的视觉定位方法,但是应该理解,这仅是示例性实施例。本公开的系统或方法可以应用于任何其他类型的自动驾驶系统。包含有本自动驾驶系统的自动驾驶车辆可包括出租车,私家车,挂车,公共汽车,火车,子弹列车,高速铁路,地铁,船只等,或其任何组合。在一些实施例中,该系统或方法可以在例如物流仓库,军事事务中找到应用。
图1示出了根据本申请的一些实施例所示的用于视觉定位的方法的应用场景图。
当自动驾驶车辆130行驶在路面120时,自动驾驶车辆130经常需要确定自身所在的位置。由于一般的定位技术(例如,gps定位)的精确度不能满足自动驾驶车辆130的需求,此时可以结合视觉定位来确定自动驾驶车辆130的精确位置。
如图所示,自动驾驶车辆130可以包括一个或多个传感器,例如传感器142、传感器144和传感器146,以及视觉定位装置150。
上述一个或多个传感器可以包括摄像单元、定位单元、激光雷达、惯性传感器等。所述摄像单元可以获取自动驾驶车辆当前位置和当前拍摄方位下景物(例如,景物110)的图像,用于后续的视觉定位。
视觉定位装置150可以执行用于视觉定位的方法,对摄像单元获取的图像进行图像处理和计算,进而确定自动驾驶车辆130的当前位置。具体地,视觉定位装置150可以根据自动驾驶车辆130当前的模糊位置和当前的拍摄方位从数据库(例如,环境地图)中获取候选图像。然后,视觉定位装置150可以执行视觉定位方法,将摄像单元获取的当前图像转换成合成图像,与参考图像进行的特征点进行匹配,并根据匹配度确定当前图像的准确定位,进而确定自动驾驶车辆130的当前位置。
应当理解的是,视觉定位装置150可以安装在自动驾驶车辆130上,也可以安装在其他地方(例如,云计算中心)。此时,自动驾驶车辆130可以将摄像单元获取的图像发送给云计算中心,由云计算中心将视觉定位结果再发送给自动驾驶车辆130。
应当可以理解的是,上述对用于视觉定位的方法的应用场景的描述仅为示意性的,并不限制本申请保护的范围。上述用于视觉定位的方法可以应用在任何需要识别地点的领域中,例如,旅游自动讲解设备定位、共享单车定位。
图2示出了根据本申请的一些实施例所示的可以在其上实现用于视觉定位方法的示例性计算设备。计算设备200上可以承载实施自动驾驶车辆130的控制单元、视觉定位装置150等等。例如,视觉定位装置150可以在计算设备200上实现以执行本申请中公开的视觉定位装置150的功能。
例如,计算设备200可以包括连接到与其连接的网络的com端口250,以便于数据通信。计算设备200还可以包括处理器220,处理器220以一个或多个处理器的形式,用于执行计算机指令。计算机指令可以包括例如执行本文描述的特定功能的例程,程序,对象,组件,数据结构,过程,模块和功能。例如,处理器220可以获取待识别图像的特征图,并根据所述待识别图像的特征图生成所述待识别图像的响应图。又例如,处理器220可以根据上述响应图确定所述待识别图像的代表性特征,并根据所述代表性特征确定与所述待识别的图像最相似的图像,进而确定所述待识别特征对应的位置。
在一些实施例中,处理器220可以包括一个或多个硬件处理器,例如微控制器,微处理器,精简指令集计算机(risc),专用集成电路(asic),特定于应用的指令-集处理器(asip),中央处理单元(cpu),图形处理单元(gpu),物理处理单元(ppu),微控制器单元,数字信号处理器(dsp),现场可编程门阵列(fpga),高级risc机器(arm),可编程逻辑器件(pld),能够执行一个或多个功能的任何电路或处理器等,或其任何组合。
示例性计算机设备200可以包括内部通信总线210,程序存储和不同形式的数据存储(例如,磁盘270,只读存储器(rom)230,或随机存取存储器(ram)240)用于由计算机处理和/或发送的各种数据文件。示例性计算机设备200还可以包括存储在rom230,ram240和/或将由处理器220执行的其他类型的非暂时性存储介质中的程序指令。本申请的方法和/或过程可以作为程序指令实现。计算设备200还包括i/o组件260,支持计算机和其他组件(例如,用户界面元件)之间的输入/输出。计算设备200还可以通过网络通信接收编程和数据。
仅仅为了说明问题,在本申请中计算设备200中仅描述了一个处理器。然而,应当注意,本申请中计算设备200还可以包括多个处理器,因此,本申请中披露的操作和/或方法步骤可以如本公开所述的由一个处理器执行,也可以由多个处理器联合执行。例如,如果在本申请中计算设备200的处理器220执行步骤a和步骤b,则应该理解,步骤a和步骤b也可以由信息处理中的两个不同处理器联合或分开执行(例如,第一处理器执行步骤a,第二处理器执行步骤b,或者第一和第二处理器共同执行步骤a和b)。
图3示出了根据本申请的一些实施例所示的视觉定位方法的流程图。流程300可以实施为视觉定位装置150中的非临时性存储介质中的一组指令。视觉定位装置150可以执行该一组指令并且可以相应地执行过程300中的步骤。
以下呈现的所示流程300的操作,旨在是说明性的而非限制性的。在一些实施例中,流程300在实现时可以添加一个或多个未描述的额外操作,和/或删减一个或多个此处所描述的操作。此外,图3中所示的和下文描述的操作的顺序并不对此加以限制。
所示流程300提供的一种视觉定位方法包括:s310:获取当前图像并识别所述当前图像的基础特征和表述特征;s320:将所述当前图像的表述特征与预先构建的环境图像的表述特征进行匹配,根据匹配程度从所述环境图像中选取匹配度最高的环境图像作为参考图像;s330:根据所述当前图像的基础特征,生成一个合成图像,所述合成图像与参考图像具有相同的环境状态;s340:从所述合成图像中提取一个以上的特征点,并与参考图像的特征点进行匹配,根据所述特征点的匹配程度判断所述当前图像的位置信息。
下面我们将结合具体实施方式对每一步做详细的说明。
首先,执行步骤s310:获取当前图像并识别所述当前图像的基础特征和表述特征。
所述的当前图像指的是车辆行驶环境中获取的需要进行地点识别的图像,所述的当前图像同时可包括一张或者多张。在自动驾驶车辆定位领域中,所述待识别图像可以为自动驾驶车辆130在行驶过程中由传感器(例如,车载摄像单元)获取的图像。
获取所述当前图像之后,在本申请的一个实施例中,将所述的当前图像依次通过已经训练好的第一图像编码器和第二图像编码器,从而识别所述当前图像的相对准确的基础特征和表述特征。
参考附图4,在一个具体的实施例中,先将所述当前图像通过第一图像编码器410,通过卷积神经网络(convolutionalneuralnetworks,cnns)技术,获取所述当前图像的基础特征;将所述当前图像的基础特征通过第二图像编码器420,通过卷积神经网络(convolutionalneuralnetworks,cnns)技术,获取所述当前图像的表述特征。其中,所述的表述特征是将所述的基础特征通过第二编码器进行深层编码之后,获取的具有高度表达能力的特征(highlyrepresentedfeatures),其对周围环境的感受能力更深。
由上可知,所述的基础特征和表述特征都可通过卷积神经网络(convolutionalneuralnetworks,cnns)技术获取。由于来自cnns较低层的特征对应于基本结构信息,例如角落,边缘和连接处等,而在各种条件下,基本信息又相对稳定,因此,为了后续通过基础信息获取高质量的合成图像,从而对参考图像和合成图像的特征点进行准确匹配,本实施例主要使用来自较低卷积层的特征来生成合成图像。更具体的,假设当前图像包括一棵树,较高层的特征仅仅能获取图像包括有一棵树的信息,而来自cnns的较低卷积层的特征能够检测到图像的边缘并捕获所述树的形状,从而获取更精确的图像信息。
为了更准确的识别所述当前图像的基础特征和表述特征,需要对所述第一图像编码器和第二图像编码器进行提前训练。在一个具体实施例中,训练所述第一图像编码器和第二图像编码器,使其获取所述当前图像的基础特征和表述特征的方法包括:
1)根据当前图像a,获取当前图像的正样本图像b和负样本图像c,并将当前图像a,正样本图像b和负样本图像c分别输入第一图像编码器e1和第二图像编码器e2,通过cnns分别得到其基础特征和表述特征,则:
fa=e2(e1(a))
fb=e2(e1(b))
fc=e2(e1(c))
其中,fa,fb,fc分别为当前图像a,正样本图像b和负样本图像c的表述特征,e1(a),e1(b),e1(c)分别为当前图像a,正样本图像b和负样本图像c通过第一图像编码器e1获取的基础特征;
同样可以理解,e2(e1(a)),e2(e1(b)),e2(e1(c))为将当前图像a,正样本图像b和负样本图像c通过第一图像编码器e1获取的基础特征再次通过过第二图像编码器进行深层编码,从而得到当前图像a,正样本图像b和负样本图像c的表述特征fa,fb,fc。
所述的正样本图样b与所述的当前图像a表述相同的位置,也就是说,其拍摄位置接近,但是拍摄环境不同。例如当前图像a是在夏天拍摄,则正样本图样b为冬天在同一位置拍摄的图片。
所述的负样本图样c与所述的当前图像a表述不同的位置,也就是说,其拍摄位置不同,拍摄环境也不同。例如当前图像a是在夏天拍摄,则负样本图样c为冬天在距离当前图像a较远的位置拍摄的图片。
2)计算当前图像表述特征和正样本图像表述特征之间的距离dab,当前图像表述特征和负样本图像表述特征之间的距离dac,其中,
dab=||fa-fb||2
dac=||fa-fc||2
由于所述的正样本图样b与所述的当前图像a表述相同的位置,因此dab的值应该尽可能小,而所述的负样本图样c与所述的当前图像a表述不同的位置,所以dac的值应该尽可能大。
3)构建损失函数loss=max(0,dab m-dac),其中,m为设定值,用于修订dab和dac之间的平衡关系;
4)循环执行步骤1)至步骤3),进行迭代训练,以使损失函数的损失值loss无限趋近于0,当所述迭代计算的次数达到设定值或者loss为0,停止所述迭代训练,当所述的当前图像通过所述第一图像编码器和第二图像编码器时,所述第一图像编码器和第二图像编码器即可获取所述当前图像的训练好的基础特征和表述特征。
更具体的,虽然希望损失函数的损失值无限接近于0,但为了训练效率,可设定某一特定的迭代次数,当达到所述迭代次数时,立即停止所述迭代训练。若损失函数更早达到0,则损失函数达到0时优先停止迭代计算。
本实施例中,通过不同环境条件下的图像训l练所述第二图像编码器,可以使其学习特定位置的描述符,所述描述符在不同的环境条件下保持稳定,从而提高描述图像的准确性。
之后,执行步骤s320:将所述当前图像的表述特征与预先构建的环境图像的表述特征进行匹配,根据匹配程度从所述环境图像中选取匹配度最高的环境图像作为参考图像;
具体的,所述环境图像的表述特征同样通过卷积神经网络(convolutionalneuralnetworks,cnns)技术获取,通过将所有的环境图像通过训练好的第一图像编码器和第二图像编码器,获取其表述特征后,将所有环境图像的表述特征存入视觉定位装置150中,形成预先构建的具有所有环境图像的准确的表述特征的数据库。
其中,将所述当前图像的表述特征输入视觉定位装置150的数据库中,并与预先构建的环境图像的表述特征进行比对,并根据比对结果进行匹配后,根据匹配程度从所述环境图像中选取一个以上的参考图像,并将所述一个以上的参考图像按照与所述当前图像匹配度高低依次排列。
在本申请的一个优选的实施例中,根据匹配程度从所述环境图像中选取10参考图像,并按照所述10个参考图像与当前图像的表述特征的匹配程度从高到低的程度依次进行排列。当然,在其它实施例中,选取的参考图像的数量也可以根据需要进行其它设定,比如15个,20个,但是,所述的参考图像的数量在10个以下时,可以提高所述视觉定位装置的定位速度,当某次选定的10个以下的参考图像都不能与后续形成的合成图像匹配时,及时停止运算。重新获取当前图像的表述特征进行新一轮的定位,或者确定当前的视觉定位方法定位失败。
随后,执行步骤s330:根据所述当前图像的基础特征,生成一个合成图像,所述合成图像与参考图像具有相同的环境状态;
具体的,所述合成图像是通过将所述当前图像的基础特征输入图像生成器,通过生成对抗网络(generativeadversarialnetworks,gans)获取的。通过所述方法获取的合成图像,可直接用于与各种方法获取的图像的特征点进行匹配,而无需再次对其进行更改。
具体的,所述图像生成器预先进行过训练,以生成高质量的合成图像。在本申请的一个具体实施例中,训练所述图像生成器,使其根据当前图像的基础特征生成合成图像的方法为:
a)将任意图像a和任意图像b输入第一编码器e1,得到所述图像a和图像b的基本特征e1(a),e1(b),其中所述图像a和图像b的拍摄环境状态不同,图像a处于第一环境状态,图像b处于第二环境状态;所述的第一编码器为进行过训练的编码器。
b)将所述基本特征e1(a)输入初始第一图像生成器g12,得到合成图像a2,将所述基本特征e1(b)输入初始第二图像生成器g21,得到合成图像b1;
具体的,所述的第一图像生成器g12用于将处于第一环境状态的图像提取的基本特征e1(a)转换为第二环境状态的图像a2,第二图像生成器g21用于将处于第二环境状态的图像提取的基本特征e1(b)转换为第一环境状态的图像b1。
c)分别将合成图像a2和合成图像b1输入第一编码器e1,分别得到合成图像a2的基本特征e1(a2),合成图像b1的基本特征e1(b1);所述的第一编码器为进行过训练的编码器。
d)将所述基本特征e1(a2)输入第二图像生成器g21,得到合成图像a′;将所述基本特征e1(b1)输入第一图像生成器g12,得到合成图像b′;
e)构建损失函数loss=ld lg,获取损失函数的损失值,其中ld为第一判别器d1和第二判别器d2的损失值总和,lg为第一图像生成器和第二图像生成器的损失值总和,
ld=ld1 ld2
ld1=||d1(a)-1|| ||d1(b1)||
ld2=||d2(b)-1|| ||d2(a2)||
其中,第一判别器d1用于判断输入图像是否处在第一环境状态,若是,则其输出值为1,若不是,则其输出值为0;第一判别器d2用于判断输入图像是否处在第二环境状态,若是,则其输出值为1,若不是,则其输出值为0。
lg=laa′ lbb′
laa′=a-a′
lbb′=b-b′
其中,laa′表示图像a与合成图像a′的像素值之差,a为图像a的像素值,a′为合成图像a′的像素值;lbb′表示图像b与图像合成图像b′的像素值之差,b为图像b的像素值,b′为合成图像b′的像素值;
f)循环执行所述步骤a)至步骤e),进行迭代运算,以使损失函数的损失值loss无限趋近于0,当所述迭代计算的次数达到设定值或者loss为0,停止所述迭代训练,认为所述的图像生成器根据当前图像的基础特征生成的合成图像与参考图像具有相同的环境状态。
更具体的,虽然希望损失函数的损失值无限接近于0,但为了训练效率,可设定某一特定的迭代次数,当达到所述迭代次数时,立即停止所述迭代训练。若损失函数更早达到0,则损失函数达到0时优先停止迭代计算。
在本实施例中,图像生成器输入的是具有地理标记监督(geo-taggedsupervision)的基本特征(essentialfeatures),所述基本特征也即关键结构特征(essentialstructuralfeatures),是通过第一编码器从视觉位置识别的训练过程中学习到的,所述的第一编码器可以保留每个场景中的特有的结构信息。所述基本特征对环境变化是不变的,可以用于有效地描述特定的环境。因此,图像生成器只需要关注图像生成而不是特征映射。因此,与原始图像相比,使用基本特征对于外部环境的变化更加有效。
本实施例中通过修改当前图像,从不同的角度解决外部环境条件发生变化对于图像视觉定位的影响。并且通过训练对抗生成网络(generativeadversarialnetworks,gan)来进行当前图像的转换,所述的对抗生成网络用于将当前图像转换为预先构建的环境地图中地图图像的环境条件,并形成一个合成图像(syntheticimage)。因此,可以将合成图像与具有共同低级特征的参考图像执行特征点匹配。在获得足够的特征点匹配后,可以利用对极几何和perspective-n-point(pnp)算法恢复机器人的6自由度姿态。
之后,继续执行步骤s340:从所述合成图像中提取一个以上的特征点,并与参考图像的特征点进行匹配,根据所述特征点的匹配程度判断所述当前图像的位置信息。
所述参考图像的特征点为预先提取的。所述的特征点为能够代表图像具体特征的某些特定点。
更加具体的,为了提高运算速度,从所述合成图像中选取的特征点的数量小于1000个,更加优选的,为了使所述特征点的匹配结果准确,获取准确的当前图像的定位信息,所述特征点的数量大于等于15个。
具体的,获取所述合成图像与参考图像所述特征点的匹配程度的方法包括:将所述合成图像中每个特征点都与预先提取并存入数据库的参考图像的特征点进行比对,获取合成图像中每个特征点的最优匹配特征点,基于此,所述的最优匹配特征点位于所述参考图像中。
之后,对所述合成图像与参考图像的所有匹配信息进行验证,保留正确的匹配对,过滤掉错误匹配对;如果正确匹配对数目大于等于一设定值,则合成图像和参考图像之间正确匹配,如果正确匹配对数目小于所述设定值,则合成图像与参考图像匹配不正确。在一优选的实施例中,从所述合成图像中选取的特征点个数大于等于15,小于1000个。当正确匹配对数目大于等于15时,认为合成图像和参考图像之间正确匹配。
具体的,若合成图像和参考图像之间正确匹配,则所述当前图像的位置信息可利用对极几何和perspective-n-point(pnp)算法,根据所述参考图像的位置信息计算得到。若合成图像和参考图像之间匹配不正确,则说明步骤s320选取的参考图像不准确,因此,应该返回步骤s320,在一个优选实施例中,由于步骤s320选取了10个参考图像并将其按照匹配程度从高到底的顺序排列,因此,直接选取所述第二张参考图像,并再次执行步骤s330和步骤s340,判断合成图像和参考图像之间是否能正确匹配,若不能,则继续返回步骤s320,选取下一个参考图像,直至参考图像与合成图像之间正确匹配或者验证完毕所有的10个参考图像。若验证完毕所有的10个参考图像依然不能使参考图像与合成图像之间正确匹配,则说明本次视觉定位方法执行失败,需进行下一次视觉定位方法的执行。
综上,本申请的视觉定位方法,通过将所述的当前图像转变为一个与参考图像具有相同的环境状态的合成图像,从而减少环境状态的变化(例如光照,天气和季节条件的变化)的影响,然后再将合成图像的特征点与参考图像的特征点进行匹配,从而获得准确的当前图像定位。
更进一步,本申请通过对所述第一图像编码器和第二图像编码器进行训练,使其在输入当前图像后,能够获取所述当前图像相对准确的基础特征和表述特征,从而提高了获取的合成图像与参考图像的准确度,也提高了所述视觉定位方法对当前图像定位的准确率。
为了评估本实施例所述的视觉定位方法的准确度,本实施例在日常环境变化和季节变化这两个数据集上对所述视觉定位方法进行了训练和评估,所述的日常环境变化例如一天中的不同时间段,例如清晨,中午,黄昏,晚上等,反映了不同的光照情况。季节变化例如春夏秋冬等四季,再不同的季节,同一地理位置获取的图片的环境可能存在着明显的不同。
所述的记录日常环境变化的数据集为虚拟数据集,记录季节变化的数据集为诺德兰数据集。所述虚拟数据集和诺德兰数据集的实验条件如下所示:
虚拟数据集(theunrealdataset):虚拟数据集是从自动驾驶模拟器中收集的。我们选择在城市地区沿着相同路线进行三次行程。环境条件分别是白天,雨天和夜晚。每次行程大约有1000个图像。虚拟数据集的优点是可以使用所有图像的深度和位姿。我们可以通过测量特征点对的重投影误差来评估匹配质量。在实验中,每次行程中的一半图像用于训练,其他图像用于测试。所有图像的大小都调整为480×270。夜间和雨天图像被视为当前图像并被转换为白天的状态。
诺德兰数据集(nordlanddataset):nordland数据集由安装在火车上的摄像机记录春夏秋冬四个不同季节的四次行程。所述的每次行程所用时间都超过10小时,并且时间戳已根据gps信息同步。一次行程中的任意帧对应于其他三次形成中的相同帧。但是,这些帧不是像素对齐的。
在本次实施例中,生成三个条件对:冬季春季,冬季夏季,冬季秋季。在从02:02:00到02:32:00的每次行程中提取1800个图像,帧速率为1hz。然后,去除当列车停在车站,以及在隧道中行驶时的100张图像。接下来,左边的1700幅图像被分为2部分,其中的1020幅图像用于训练,另外的680幅图像用于测试。为了进一步评估所述视觉定位方法的泛化能力,我们另外从04:16:00开始提取1000个图像,每次行程的帧速率为1hz。所有图像的大小都调整为480×270。在实验中,冬季图像被视为当前图像,并被转换为与其他三个季节环境条件相同的合成地图。
不仅如此,本实施例还将所述视觉定位方法的训练和实施效果与现有技术进行了对比。在本实施例所述的对比实验中,给定在线当前图像,随后生成表述特征和合成图像,整个过程在nvidiagpu上运行大约150毫秒。地图图像的所有功能都是脱机提取的。
本实施例通过位置识别的频率和定位的质量来评估本实施例所述的视觉定位方法的定位性能。参考图5(a)至图5(c)所示,使用准确率召回率曲线(precision-recall(pr)curves)来对位置识别的结果进行基准测试。图5(a)至图5(c)显示了在nordland数据集上测试的包含1000个测试图像的pr曲线和unreal数据集的测试结果,其中图5(a)为在nordland数据集上冬季对春季(wintervs.spring)的准确率召回率曲线,图5(b)为在nordland数据集上冬季对春季(wintervs.fall)的准确率召回率曲线,图5(c)为在虚拟数据集上黑夜对白天(nightvs.day)的准确率召回率曲线。图5(a)至图5(c)中对比技术一为采用alexnet的准确率召回率曲线,对比技术二为采用hybridnet的准确率召回率曲线,其中,alexnet和hybridnet的定位方法可参考现有的公开资料。结果表明,采用本实施例所提出的视觉定位方法,位置识别的成功率显着增加。无论输入图像是在不同条件下(真实的春季对真实的冬季)还是在相似条件下(真实的春季与合成的春季),本实施例所提出的视觉定位方法的定位性能与现有技术比都具有极大的提高。因此,我们可以证明,采用本实施例所提出的视觉定位方法,第一图像编码器和第二图像编码器都学会从图像中准确提取基础特征和表述特征,并且可以有效地描述一个连续特征空间中的特定位置。
本实施例所述的视觉定位方法中,特征点的匹配准确度是影响定位质量的一个非常重要的因素,具体的,本实施例使用内点(inlier)的数量来衡量度视觉定位的质量。图6显示了在黑夜-白天条件对上测试的内点的重投影误差的分布(thedistributionofthereprojectionerrorsofinliers)。总的来说,我们观察到大多数内点的重投影误差小于2像素。其准确度完全满足进一步估计机器人的6自由度姿态(6-dofpose)的需要。
表1列出了采用不同的视觉定位方法计算的精确定位的成功率和内点的平均数。所述的不同的视觉定位方法包括:真实图像对真实图像进行特征点匹配,真实图像与合成图像(采用本实施例所述的视觉定位方法获取的合成图像)进行特征点匹配以及真实图像对合成图像(采用已知的cyclegan方法获取的合成图像)进行特征点匹配。在大多数情况下,对于真实图像和合成图像之间的匹配,精确定位的成功率和内点的平均数都大大增加。此外,采用本实施例所述的视觉定位方法实现了比cyclegan方法更好的性能,这表明了采用本实施例所述的视觉定位方法中,通过获取当前图像的基础特征,并将其转化为与参考图像具有相同图像环境的合成图像这一技术的有效性。其中,在所述cyclegan方法中,当前图像被直接送入生成器,并且两个生成器被分别训练,没有考虑同一位置环境不同图像之间的联系。
在表1所示的数据中存在一个例外,那就是春季-冬季条件对中测试的1000张真实图像对真实图像的结果优于本发明实施例的测试结果。这是由于春天的行程看起来类似于04:00:00到05:00:00之间的冬季行程,如雪没有融化。为了进一步验证,申请人进行了进一步的实验,从01:00:00开始提取另外1000张图像,帧率为1hz。结果如表2所示。
表1
表2
本实施例也测试了采用虚拟数据集和诺德兰数据集的图像特征点的匹配结果,测试结果显示,采用真实图像与真实图像匹配,大多数图像之间无法产生匹配结果,或者数据之间仅仅产生很少量的内点(inlier),比如路面上的标志。
此外,本实施例还提供一种视觉定位装置,包括至少一个处理器,所述处理器执行本实施例中所述的任意一种视觉定位方法。
综上所述,在阅读本详细公开内容之后,本领域技术人员可以明白,前述详细公开内容可以仅以示例的方式呈现,并且可以不是限制性的。尽管这里没有明确说明,本领域技术人员可以理解本申请意图囊括对实施例的各种合理改变,改进和修改。这些改变,改进和修改旨在由本公开提出,并且在本公开的示例性实施例的精神和范围内。
此外,本申请中的某些术语已被用于描述本公开的实施例。例如,″一个实施例″,″实施例″和/或″一些实施例″意味着结合该实施例描述的特定特征,结构或特性可以包括在本公开的至少一个实施例中。因此,可以强调并且应当理解,在本说明书的各个部分中对″实施例″或″一个实施例″或″替代实施例″的两个或更多个引用不一定都指代相同的实施例。此外,特定特征,结构或特性可以在本公开的一个或多个实施例中适当地组合。
应当理解,在本公开的实施例的前述描述中,为了帮助理解一个特征,出于简化本公开的目的,本申请有时将各种特征组合在单个实施例、附图或其描述中。或者,本申请又是将各种特征分散在多个本发明的实施例中。然而,这并不是说这些特征的组合是必须的,本领域技术人员在阅读本申请的时候完全有可能将其中一部分特征提取出来作为单独的实施例来理解。也就是说,本申请中的实施例也可以理解为多个次级实施例的整合。而每个次级实施例的内容在于少于单个前述公开实施例的所有特征的时候也是成立的。
在一些实施方案中,表达用于描述和要求保护本申请的某些实施方案的数量或性质的数字应理解为在某些情况下通过术语″约″,″近似″或″基本上″修饰。例如,除非另有说明,否则″约″,″近似″或″基本上″可表示其描述的值的±20%变化。因此,在一些实施方案中,书面描述和所附权利要求书中列出的数值参数是近似值,其可以根据特定实施方案试图获得的所需性质而变化。在一些实施方案中,数值参数应根据报告的有效数字的数量并通过应用普通的舍入技术来解释。尽管阐述本申请的一些实施方案列出了广泛范围的数值范围和参数是近似值,但具体实施例中都列出了尽可能精确的数值。
本文引用的每个专利,专利申请,专利申请的出版物和其他材料,例如文章,书籍,说明书,出版物,文件,物品等,可以通过引用结合于此。用于所有目的的全部内容,除了与其相关的任何起诉文件历史,可能与本文件不一致或相冲突的任何相同的,或者任何可能对权利要求的最宽范围具有限制性影响的任何相同的起诉文件历史。现在或以后与本文件相关联。举例来说,如果在与任何所包含的材料相关联的术语的描述、定义和/或使用与本文档相关的术语、描述、定义和/或之间存在任何不一致或冲突时,使用本文件中的术语为准。
最后,应理解,本文公开的申请的实施方案是对本申请的实施方案的原理的说明。其他修改后的实施例也在本申请的范围内。因此,本申请披露的实施例仅仅作为示例而非限制。本领域技术人员可以根据本申请中的实施例采取替代配置来实现本申请中的发明。因此,本申请的实施例不限于申请中被精确地描述过的哪些实施例。
1.一种视觉定位方法,其特征在于,包括:
步骤一:获取当前图像并识别所述当前图像的基础特征和表述特征;
步骤二:将所述当前图像的表述特征与预先构建的环境图像的表述特征进行匹配,根据匹配程度从所述环境图像中选取匹配度最高的环境图像作为参考图像;
步骤三:根据所述当前图像的基础特征,生成一个合成图像,所述合成图像与参考图像具有相同的环境状态;
步骤四:从所述合成图像中提取一个以上的特征点,并与参考图像的特征点进行匹配,根据所述特征点的匹配程度判断所述当前图像的位置信息。
2.如权利要求1所述的视觉定位方法,其特征在于,获取所述合成图像与参考图像所述特征点的匹配程度的方法包括:
获取合成图像中每个特征点的最优匹配特征点,所述的最优匹配特征点位于所述参考图像中;
对所述合成图像与参考图像的所有匹配信息进行验证,保留正确的匹配对,过滤掉错误匹配对;
如果正确匹配对数目大于等于一设定值,则合成图像和参考图像之间正确匹配,如果正确匹配对数目小于所述设定值,则合成图像与参考图像匹配不正确。
3.如权利要求2所述的视觉定位方法,其特征在于,获取所述合成图像与参考图像所述特征点的匹配程度的方法中,从合成图像中选取的特征点小于1000个,所述的设定值为15。
4.如权利要求1至3中任一项所述的视觉定位方法,其特征在于,将所述当前图像的表述特征与预先构建的环境图像的表述特征进行匹配后,根据匹配程度从所述环境图像中选取一个以上的参考图像,并将所述一个以上的参考图像按照与所述当前图像匹配度高低依次排列。
5.如权利要求4所述的视觉定位方法,其特征在于,根据匹配程度从所述环境图像中选取的一个以上的参考图像小于10个。
6.如权利要求5所述的视觉定位方法,其特征在于,根据所述特征点的匹配程度判断所述当前图像的位置信息的方法包括:
若合成图像和参考图像之间正确匹配,则可根据参考图像的位置信息得到所述当前图像的位置信息;
若合成图像和参考图像之间匹配不正确,从所述环境图像中选取另一个匹配度最高的环境图像作为参考图像,并再次执行步骤三和步骤四,直至匹配完从所述环境图像中选取的所有参考图像。
7.如权利要求1所述的视觉定位方法,其特征在于,识别所述当前图像的基础特征和表述特征的方法包括:
将所述当前图像通过第一图像编码器,获取所述当前图像的基础特征;
将所述当前图像的基础特征通过第二图像编码器,获取所述当前图像的表述特征。
8.如权利要求7所述的视觉定位方法,其特征在于,训练所述第一图像编码器和第二图像编码器,使其获取所述当前图像的基础特征和表述特征的方法包括:
1)根据当前图像a,获取当前图像的正样本图像b和负样本图像c,并将当前图像a,正样本图像b和负样本图像c分别输入第一图像编码器e1和第二图像编码器e2,分别得到其基础特征和表述特征,则:
fa=e2(e1(a))
fb=e2(e1(b))
fc=e2(e1(c))
其中,fa,fb,fc分别为当前图像a,正样本图像b和负样本图像c的表述特征,e1(a),e1(b),e1(c)分别为当前图像a,正样本图像b和负样本图像c通过第一图像编码器e1获取的基础特征;
2)计算当前图像表述特征和正样本图像表述特征之间的距离dab,当前图像表述特征和负样本图像表述特征之间的距离dac,其中,
dab=||fa-fb||2
dac=||fa-fc||2
3)构建损失函数loss=max(0,dab m-dac),其中,m为设定值,用于修订dab和dac之间的平衡关系;
4)循环执行步骤1)至步骤3),进行迭代训练,以使损失函数的损失值loss无限趋近于0,当所述迭代计算的次数达到设定值或者loss为0,停止所述迭代训练,当所述的当前图像通过所述第一图像编码器和第二图像编码器时,所述第一图像编码器和第二图像编码器即可获取所述当前图像的训练好的基础特征和表述特征。
9.如权利要求1所述的视觉定位方法,其特征在于,所述合成图像是通过将所述当前图像的基础特征输入图像生成器获取的。
10.如权利要求1所述的视觉定位方法,其特征在于,训练所述图像生成器,使其根据当前图像的基础特征生成合成图像的方法为:
a)将任意图像a和任意图像b输入第一编码器e1,得到所述图像a和图像b的基本特征e1(a),e1(b),其中所述图像a和图像b的拍摄环境状态不同,图像a处于第一环境状态,图像b处于第二环境状态;
b)将所述基本特征e1(a)输入初始第一图像生成器g12,得到合成图像a2,将所述基本特征e1(b)输入初始第二图像生成器g21,得到合成图像b1;
c)分别将合成图像a2和合成图像b1输入第一编码器e1,分别得到合成图像a2的基本特征e1(a2),合成图像b1的基本特征e1(b1);
d)将所述基本特征e1(a2)输入第二图像生成器g21,得到合成图像a,;将所述基本特征e1(b1)输入第一图像生成器g12,得到合成图像b′;
e)构建损失函数loss=ld lg,获取损失函数的损失值,其中ld为第一判别器d1和第二判别器d2的损失值总和,lg为第一图像生成器和第二图像生成器的损失值总和,
ld=ld1 ld2
ld1=||d1(a)-1|| ||d1(b1)||
ld2=||d2(b)-1|| ||d2(a2)||
其中,第一判别器d1用于判断输入图像是否处在第一环境状态,若是,则其输出值为1,若不是,则其输出值为0;第一判别器d2用于判断输入图像是否处在第二环境状态,若是,则其输出值为1,若不是,则其输出值为0。
lg=laa′ lbb′
laa′=a-a′
lbb′=b-b′
其中,laa′表示图像a与图像合成图像a′的像素值之差,a为图像a的像素值,a′为合成图像a′的像素值;lbb′表示图像b与图像合成图像b′的像素值之差,b为图像b的像素值,b′为合成图像b′的像素值;
f)循环执行所述步骤a)至步骤e),进行迭代运算,以使损失函数的损失值loss无限趋近于0,当所述迭代计算的次数达到设定值或者loss为0,停止所述迭代训练,认为所述的图像生成器根据当前图像的基础特征生成的合成图像与参考图像具有相同的环境状态。
11.一种视觉定位装置,包括至少一个处理器,所述处理器执行权利要求1-10中任一所述方法。
技术总结